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.
This commit is contained in:
Harald Hoyer 2012-01-25 15:07:47 +01:00
parent d1bad96edd
commit b2fdd8fbf3

View File

@ -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 <harald@redhat.com> 2.20.1-5
- install everything in /usr
https://fedoraproject.org/wiki/Features/UsrMove
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.20.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild