[iptables/f17] install everything in /usr

Harald Hoyer harald at fedoraproject.org
Wed Feb 29 15:52:17 UTC 2012


commit f586a1b81924270121d1abc30ff0d104a9f66997
Author: Harald Hoyer <harald at redhat.com>
Date:   Wed Feb 29 16:49:18 2012 +0100

    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.

 iptables.spec |   52 +++++++++++++++++++++-------------------------------
 1 files changed, 21 insertions(+), 31 deletions(-)
---
diff --git a/iptables.spec b/iptables.spec
index dafc05a..377bbb8 100644
--- a/iptables.spec
+++ b/iptables.spec
@@ -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


More information about the scm-commits mailing list