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-02-29 16:49:18 +01:00
parent ba28c6a8b0
commit f586a1b819

View File

@ -34,6 +34,8 @@ Requires(post): systemd-units
Requires(post): systemd-sysv
Requires(preun): systemd-units
Requires(postun): systemd-units
Conflicts: systemd < 38
Conflicts: filesystem < 3
%else
Requires(post): chkconfig
Requires(preun): chkconfig
@ -71,8 +73,8 @@ stable and may change with every new version. It is therefore unsupported.
%patch5 -p1 -b .cloexec
%build
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \
./configure --enable-devel --enable-libipq --bindir=/bin --sbindir=/sbin --sysconfdir=/etc --libdir=/%{_lib} --libexecdir=/%{_lib} --mandir=%{_mandir} --includedir=%{_includedir} --with-kernel=/usr --with-kbuild=/usr --with-ksource=/usr
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing " \
./configure --enable-devel --enable-libipq --bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=/etc --libdir=%{_libdir} --libexecdir=%{_libdir} --mandir=%{_mandir} --includedir=%{_includedir} --with-kernel=/usr --with-kbuild=/usr --with-ksource=/usr
# do not use rpath
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
@ -87,7 +89,7 @@ rm -rf %{buildroot}
make install DESTDIR=%{buildroot}
# remove la file(s)
rm -f %{buildroot}/%{_lib}/*.la
rm -f %{buildroot}/%{_libdir}/*.la
# install ip*tables.h header files
install -m 644 include/ip*tables.h %{buildroot}%{_includedir}/
@ -98,15 +100,6 @@ install -m 644 include/iptables/internal.h %{buildroot}%{_includedir}/iptables/
install -d -m 755 %{buildroot}%{_includedir}/libipulog/
install -m 644 include/libipulog/*.h %{buildroot}%{_includedir}/libipulog/
# create symlinks for devel so libs
install -d -m 755 %{buildroot}%{_libdir}
for i in %{buildroot}/%{_lib}/*.so; do
ln -s ../../%{_lib}/${i##*/} %{buildroot}%{_libdir}/${i##*/}
done
# move pkgconfig to %{_libdir}
mv %{buildroot}/%{_lib}/pkgconfig %{buildroot}/%{_libdir}/
# install init scripts and configuration files
install -d -m 755 %{buildroot}%{script_path}
install -c -m 755 %{SOURCE1} %{buildroot}%{script_path}/iptables.init
@ -119,10 +112,10 @@ install -c -m 755 ip6tables-config %{buildroot}/etc/sysconfig/ip6tables-config
%if %{with systemd}
# install systemd service files
install -d -m 755 %{buildroot}/lib/systemd/system
install -c -m 755 %{SOURCE3} %{buildroot}/lib/systemd/system/
install -d -m 755 %{buildroot}/%{_unitdir}
install -c -m 755 %{SOURCE3} %{buildroot}/%{_unitdir}
sed -e 's;iptables;ip6tables;g' -e 's;IPv4;IPv6;g' < %{SOURCE3} > ip6tables.service
install -c -m 755 ip6tables.service %{buildroot}/lib/systemd/system/
install -c -m 755 ip6tables.service %{buildroot}/%{_unitdir}
%endif
%clean
@ -208,23 +201,23 @@ fi
%config(noreplace) %attr(0600,root,root) /etc/sysconfig/iptables-config
%config(noreplace) %attr(0600,root,root) /etc/sysconfig/ip6tables-config
%if %{with systemd}
/lib/systemd/system/iptables.service
/lib/systemd/system/ip6tables.service
%{_unitdir}/iptables.service
%{_unitdir}/ip6tables.service
%endif
/sbin/iptables*
/sbin/ip6tables*
/sbin/xtables-multi
/bin/iptables-xml
%{_sbindir}/iptables*
%{_sbindir}/ip6tables*
%{_sbindir}/xtables-multi
%{_bindir}/iptables-xml
%{_mandir}/man1/iptables-xml*
%{_mandir}/man8/iptables*
%{_mandir}/man8/ip6tables*
%dir /%{_lib}/xtables
/%{_lib}/xtables/libipt*
/%{_lib}/xtables/libip6t*
/%{_lib}/xtables/libxt*
/%{_lib}/libip*tc.so.*
/%{_lib}/libipq.so.*
/%{_lib}/libxtables.so.*
%dir %{_libdir}/xtables
%{_libdir}/xtables/libipt*
%{_libdir}/xtables/libip6t*
%{_libdir}/xtables/libxt*
%{_libdir}/libip*tc.so.*
%{_libdir}/libipq.so.*
%{_libdir}/libxtables.so.*
%files devel
%defattr(-,root,root)
@ -236,9 +229,6 @@ fi
%dir %{_includedir}/libipulog
%{_includedir}/libipulog/*.h
%{_mandir}/man3/*
/%{_lib}/libip*tc.so
/%{_lib}/libipq.so
/%{_lib}/libxtables.so
%{_libdir}/libip*tc.so
%{_libdir}/libipq.so
%{_libdir}/libxtables.so