[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