From b2fdd8fbf36e01818925cd30723e066a732148d1 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Wed, 25 Jan 2012 15:07:47 +0100 Subject: [PATCH] install everything in /usr This patch is needed for the /usr-move feature https://fedoraproject.org/wiki/Features/UsrMove This package requires now 'filesystem' >= 3, which is only installable on a system which has /bin, /sbin, /lib, /lib64 as symlinks to /usr and not regular directories. The 'filesystem' package acts as a guard, to prevent *this* package to be installed on old unconverted systems. New installations will have the 'filesystem' >=3 layout right away, old installations need to be converted with anaconda or dracut first; only after that, the 'filesystem' package, and also *this* package can be installed. Packages *should* not install files in /bin, /sbin, /lib, /lib64, but only in the corresponding directories in /usr. Packages *must* not install conflicting files with the same names in the corresponding directories in / and /usr. Especially compatibilty symlinks must not be installed. Feel free to modify any of the changes to the spec file, but keep the above in mind. --- util-linux.spec | 142 +++++++++++++++++++++++------------------------- 1 file changed, 68 insertions(+), 74 deletions(-) diff --git a/util-linux.spec b/util-linux.spec index 6c60ce2..8108f7d 100644 --- a/util-linux.spec +++ b/util-linux.spec @@ -2,7 +2,7 @@ Summary: A collection of basic system utilities Name: util-linux Version: 2.20.1 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv2 and GPLv2+ and GPLv3+ and LGPLv2+ and BSD with advertising and Public Domain Group: System Environment/Base URL: http://kernel.org/~kzak/util-linux/ @@ -22,7 +22,7 @@ URL: http://kernel.org/~kzak/util-linux/ %define floppyver 0.18 %define cytune_archs %{ix86} alpha %{arm} -### Dependences +### Dependencies BuildRequires: audit-libs-devel >= 1.0.6 BuildRequires: gettext-devel BuildRequires: libselinux-devel @@ -51,6 +51,17 @@ Conflicts: e2fsprogs < 1.41.8-5 # rename from util-linux-ng back to util-linux Obsoletes: util-linux-ng < 2.19 Provides: util-linux-ng = %{version}-%{release} +Conflicts: filesystem < 3 +Provides: /bin/dmesg +Provides: /bin/kill +Provides: /bin/more +Provides: /bin/mount +Provides: /bin/umount +Provides: /sbin/blkid +Provides: /sbin/blockdev +Provides: /sbin/findfs +Provides: /sbin/fsck +Provides: /sbin/nologin Requires(post): coreutils Requires: pam >= 1.1.3-7, /etc/pam.d/system-auth @@ -60,7 +71,7 @@ Requires: libblkid = %{version}-%{release} Requires: libmount = %{version}-%{release} %if %{include_raw} -Requires: udev +Requires: udev >= 176 %endif ### Floppy patches (Fedora/RHEL specific) @@ -98,6 +109,7 @@ Summary: Device mounting library Group: Development/Libraries License: LGPLv2+ Requires: libblkid = %{version}-%{release} +Conflicts: filesystem < 3 %description -n libmount This is the device mounting library, part of util-linux. @@ -120,6 +132,7 @@ Summary: Block device ID library Group: Development/Libraries License: LGPLv2+ Requires: libuuid = %{version}-%{release} +Conflicts: filesystem < 3 %description -n libblkid This is block device identification library, part of util-linux. @@ -141,6 +154,7 @@ part of util-linux. Summary: Universally unique ID library Group: Development/Libraries License: BSD +Conflicts: filesystem < 3 %description -n libuuid This is the universally unique ID library, part of e2fsprogs. @@ -207,9 +221,6 @@ export CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 export SUID_CFLAGS="-fpie" export SUID_LDFLAGS="-pie" %configure \ - --bindir=/bin \ - --sbindir=/sbin \ - --libdir=/%{_lib} \ --disable-silent-rules \ --disable-wall \ --enable-partx \ @@ -241,7 +252,6 @@ gcc $CFLAGS -o nologin nologin.c %install rm -rf ${RPM_BUILD_ROOT} -mkdir -p ${RPM_BUILD_ROOT}/{bin,sbin} mkdir -p ${RPM_BUILD_ROOT}%{_bindir} mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man{1,6,8,5} mkdir -p ${RPM_BUILD_ROOT}%{_sbindir} @@ -259,15 +269,15 @@ make install DESTDIR=${RPM_BUILD_ROOT} popd # install nologin -install -m 755 nologin ${RPM_BUILD_ROOT}/sbin +install -m 755 nologin ${RPM_BUILD_ROOT}%{_sbindir} install -m 644 nologin.8 ${RPM_BUILD_ROOT}%{_mandir}/man8 %if %{include_raw} echo '.so man8/raw.8' > $RPM_BUILD_ROOT%{_mandir}/man8/rawdevices.8 { # see RH bugzilla #216664 - mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/udev/rules.d - pushd ${RPM_BUILD_ROOT}%{_sysconfdir}/udev/rules.d + mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/lib/udev/rules.d + pushd ${RPM_BUILD_ROOT}%{_prefix}/lib/udev/rules.d install -m 644 %{SOURCE4} ./60-raw.rules popd } @@ -309,8 +319,7 @@ chmod 755 ${RPM_BUILD_ROOT}%{_bindir}/sunhostid popd } -ln -sf ../../sbin/hwclock ${RPM_BUILD_ROOT}/usr/sbin/hwclock -ln -sf hwclock ${RPM_BUILD_ROOT}/sbin/clock +ln -sf hwclock ${RPM_BUILD_ROOT}%{_sbindir}/clock echo ".so man8/hwclock.8" > ${RPM_BUILD_ROOT}%{_mandir}/man8/clock.8 # unsupported on ix86 alpha armv4l @@ -322,8 +331,7 @@ rm -f $RPM_BUILD_ROOT%{_bindir}/cytune $RPM_BUILD_ROOT%{_mandir}/man8/cytune.8* %ifarch s390 s390x for I in /usr/{bin,sbin}/{fdformat,tunelp,floppy} \ %{_mandir}/man8/{fdformat,tunelp,floppy}.8* \ - /sbin/{hwclock,clock} \ - /usr/sbin/hwclock \ + /usr/sbin/{hwclock,clock} \ %{_mandir}/man8/{hwclock,clock}.8*; do rm -f $RPM_BUILD_ROOT$I @@ -343,9 +351,9 @@ done %endif # deprecated commands -for I in /sbin/fsck.minix /sbin/mkfs.{bfs,minix} /sbin/sln \ +for I in /usr/sbin/fsck.minix /usr/sbin/mkfs.{bfs,minix} /usr/sbin/sln \ /usr/bin/chkdupexe %{_bindir}/line %{_bindir}/pg %{_bindir}/newgrp \ - /sbin/shutdown /usr/sbin/vipw /usr/sbin/vigr; do + /usr/sbin/shutdown /usr/sbin/vipw /usr/sbin/vigr; do rm -f $RPM_BUILD_ROOT$I done @@ -369,28 +377,12 @@ chmod 644 getopt/getopt-*.{bash,tcsh} rm -f ${RPM_BUILD_ROOT}%{_datadir}/getopt/* rmdir ${RPM_BUILD_ROOT}%{_datadir}/getopt -ln -sf ../../bin/kill $RPM_BUILD_ROOT%{_bindir}/kill - %if %{mtab_symlink} ln -s /proc/mounts %{buildroot}/etc/mtab %else touch %{buildroot}/etc/mtab %endif -# /usr/sbin -> /sbin -for I in addpart delpart partx; do - if [ -e $RPM_BUILD_ROOT/usr/sbin/$I ]; then - mv $RPM_BUILD_ROOT/usr/sbin/$I $RPM_BUILD_ROOT/sbin/$I - fi -done - -# /usr/bin -> /bin -for I in taskset; do - if [ -e $RPM_BUILD_ROOT/usr/bin/$I ]; then - mv $RPM_BUILD_ROOT/usr/bin/$I $RPM_BUILD_ROOT/bin/$I - fi -done - # /sbin -> /bin for I in raw; do if [ -e $RPM_BUILD_ROOT/sbin/$I ]; then @@ -483,9 +475,9 @@ fi %config(noreplace) %{_sysconfdir}/pam.d/login %config(noreplace) %{_sysconfdir}/pam.d/remote -%attr(4755,root,root) /bin/mount -%attr(4755,root,root) /bin/umount -%attr(755,root,root) /bin/login +%attr(4755,root,root) %{_bindir}/mount +%attr(4755,root,root) %{_bindir}/umount +%attr(755,root,root) %{_bindir}/login %attr(4711,root,root) %{_bindir}/chfn %attr(4711,root,root) %{_bindir}/chsh %attr(2755,root,tty) %{_bindir}/write @@ -493,38 +485,37 @@ fi %ghost %attr(0644,root,root) %verify(not md5 size mtime) /var/log/lastlog %ghost %verify(not md5 size mtime) %config(noreplace,missingok) /etc/mtab -/bin/dmesg -/bin/findmnt -/bin/kill -/bin/lsblk -/bin/more -/bin/mountpoint -/bin/taskset +%{_bindir}/dmesg +%{_bindir}/findmnt +%{_bindir}/lsblk +%{_bindir}/more +%{_bindir}/mountpoint +%{_bindir}/taskset -/sbin/addpart -/sbin/agetty -/sbin/blkid -/sbin/blockdev -/sbin/ctrlaltdel -/sbin/delpart -/sbin/fdisk -/sbin/findfs -/sbin/fsck -/sbin/fsck.cramfs -/sbin/fsfreeze -/sbin/fstrim -/sbin/losetup -/sbin/mkfs -/sbin/mkfs.cramfs -/sbin/mkswap -/sbin/nologin -/sbin/partx -/sbin/pivot_root -/sbin/swaplabel -/sbin/swapoff -/sbin/swapon -/sbin/switch_root -/sbin/wipefs +%{_sbindir}/addpart +%{_sbindir}/agetty +%{_sbindir}/blkid +%{_sbindir}/blockdev +%{_sbindir}/ctrlaltdel +%{_sbindir}/delpart +%{_sbindir}/fdisk +%{_sbindir}/findfs +%{_sbindir}/fsck +%{_sbindir}/fsck.cramfs +%{_sbindir}/fsfreeze +%{_sbindir}/fstrim +%{_sbindir}/losetup +%{_sbindir}/mkfs +%{_sbindir}/mkfs.cramfs +%{_sbindir}/mkswap +%{_sbindir}/nologin +%{_sbindir}/partx +%{_sbindir}/pivot_root +%{_sbindir}/swaplabel +%{_sbindir}/swapoff +%{_sbindir}/swapon +%{_sbindir}/switch_root +%{_sbindir}/wipefs %{_bindir}/cal %{_bindir}/chrt @@ -641,15 +632,14 @@ fi %{_mandir}/man8/wipefs.8* %if %{include_raw} -/bin/raw +%{_bindir}/raw %config(noreplace) %{_sysconfdir}/udev/rules.d/60-raw.rules %{_mandir}/man8/raw.8* %{_mandir}/man8/rawdevices.8* %endif %ifnarch s390 s390x -/sbin/clock -/sbin/hwclock +%{_sbindir}/clock %{_bindir}/floppy %{_sbindir}/fdformat %{_sbindir}/hwclock @@ -663,8 +653,8 @@ fi %ifnarch %{sparc} %doc fdisk/sfdisk.examples -/sbin/cfdisk -/sbin/sfdisk +%{_sbindir}/cfdisk +%{_sbindir}/sfdisk %{_mandir}/man8/cfdisk.8* %{_mandir}/man8/sfdisk.8* %endif @@ -692,7 +682,7 @@ fi %files -n libmount %defattr(-,root,root) %doc libmount/COPYING.libmount -/%{_lib}/libmount.so.* +%{_libdir}/libmount.so.* %files -n libmount-devel %defattr(-,root,root) @@ -706,7 +696,7 @@ fi %defattr(-,root,root) %doc libblkid/COPYING.libblkid %dir /etc/blkid -/%{_lib}/libblkid.so.* +%{_libdir}/libblkid.so.* %files -n libblkid-devel %defattr(-,root,root) @@ -720,7 +710,7 @@ fi %files -n libuuid %defattr(-,root,root) %doc libuuid/COPYING.libuuid -/%{_lib}/libuuid.so.* +%{_libdir}/libuuid.so.* %files -n libuuid-devel %defattr(-,root,root) @@ -743,6 +733,10 @@ fi %changelog +* Wed Jan 25 2012 Harald Hoyer 2.20.1-5 +- install everything in /usr + https://fedoraproject.org/wiki/Features/UsrMove + * Sat Jan 14 2012 Fedora Release Engineering - 2.20.1-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild