[fakeroot] Add alternatives (Mimic Debian's behavior).

corsepiu corsepiu at fedoraproject.org
Mon Aug 26 16:13:11 UTC 2013


commit 8ecadfbfdddbc3a5fd48e45d03f6e95136f3a1d0
Author: Ralf Corsépius <corsepiu at fedoraproject.org>
Date:   Mon Aug 26 18:12:55 2013 +0200

    Add alternatives (Mimic Debian's behavior).

 fakeroot.spec |   97 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 82 insertions(+), 15 deletions(-)
---
diff --git a/fakeroot.spec b/fakeroot.spec
index e933d0e..ea4221c 100644
--- a/fakeroot.spec
+++ b/fakeroot.spec
@@ -1,7 +1,7 @@
 Summary: Gives a fake root environment
 Name: fakeroot
 Version: 1.18.4
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPL+
 Group: Development/Tools
 URL: http://fakeroot.alioth.debian.org/
@@ -15,6 +15,10 @@ BuildRequires: /usr/bin/getopt
 BuildRequires: sharutils
 Requires: /usr/bin/getopt
 Requires: fakeroot-libs = %{version}-%{release}
+Requires(post): /usr/sbin/alternatives
+Requires(post): /usr/bin/readlink
+Requires(preun): /usr/sbin/alternatives
+
 
 %description
 fakeroot runs a command in an environment wherein it appears to have
@@ -69,8 +73,8 @@ for type in sysv tcp; do
   rm -f %{buildroot}%{_libdir}/libfakeroot/libfakeroot.*la
 done
 
+# FIXME: Likely should be handled through alternatives
 ln -s faked-tcp %{buildroot}%{_bindir}/faked
-ln -s fakeroot-tcp %{buildroot}%{_bindir}/fakeroot
 ln -s libfakeroot-tcp.so %{buildroot}%{_libdir}/libfakeroot/libfakeroot-0.so
 
 %check
@@ -78,25 +82,85 @@ for type in sysv tcp; do
   make -C obj-$type check
 done
 
+%post
+link=$(readlink -e "/usr/bin/fakeroot")
+if [ "$link" = "/usr/bin/fakeroot" ]; then
+  rm -f /usr/bin/fakeroot
+fi
+
+/usr/sbin/alternatives --install "%{_bindir}/fakeroot" fakeroot \
+  "%{_bindir}/fakeroot-tcp" 50 \
+  --slave %{_mandir}/man1/fakeroot.1.gz fakeroot.1.gz %{_mandir}/man1/fakeroot-tcp.1.gz \
+  --slave %{_mandir}/man1/faked.1.gz faked.1.gz %{_mandir}/man1/faked-tcp.1.gz \
+  --slave %{_mandir}/de/man1/fakeroot.1.gz fakeroot.de.1.gz %{_mandir}/de/man1/fakeroot-tcp.1.gz \
+  --slave %{_mandir}/de/man1/faked.1.gz faked.de.1.gz %{_mandir}/de/man1/faked-tcp.1.gz \
+  --slave %{_mandir}/es/man1/fakeroot.1.gz fakeroot.es.1.gz %{_mandir}/es/man1/fakeroot-tcp.1.gz \
+  --slave %{_mandir}/es/man1/faked.1.gz faked.es.1.gz %{_mandir}/es/man1/faked-tcp.1.gz \
+  --slave %{_mandir}/fr/man1/fakeroot.1.gz fakeroot.fr.1.gz %{_mandir}/fr/man1/fakeroot-tcp.1.gz \
+  --slave %{_mandir}/fr/man1/faked.1.gz faked.fr.1.gz %{_mandir}/fr/man1/faked-tcp.1.gz \
+  --slave %{_mandir}/nl/man1/fakeroot.1.gz fakeroot.nl.1.gz %{_mandir}/nl/man1/fakeroot-tcp.1.gz \
+  --slave %{_mandir}/nl/man1/faked.1.gz faked.nl.1.gz %{_mandir}/nl/man1/faked-tcp.1.gz \
+  --slave %{_mandir}/sv/man1/fakeroot.1.gz fakeroot.sv.1.gz %{_mandir}/sv/man1/fakeroot-tcp.1.gz \
+  --slave %{_mandir}/sv/man1/faked.1.gz faked.sv.1.gz %{_mandir}/sv/man1/faked-tcp.1.gz
+
+/usr/sbin/alternatives --install "%{_bindir}/fakeroot" fakeroot \
+  "%{_bindir}/fakeroot-sysv" 40 \
+  --slave %{_mandir}/man1/fakeroot.1.gz fakeroot.1.gz %{_mandir}/man1/fakeroot-sysv.1.gz \
+  --slave %{_mandir}/man1/faked.1.gz faked.1.gz %{_mandir}/man1/faked-sysv.1.gz \
+  --slave %{_mandir}/de/man1/fakeroot.1.gz fakeroot.de.1.gz %{_mandir}/de/man1/fakeroot-sysv.1.gz \
+  --slave %{_mandir}/de/man1/faked.1.gz faked.de.1.gz %{_mandir}/de/man1/faked-sysv.1.gz \
+  --slave %{_mandir}/es/man1/fakeroot.1.gz fakeroot.es.1.gz %{_mandir}/es/man1/fakeroot-sysv.1.gz \
+  --slave %{_mandir}/es/man1/faked.1.gz faked.es.1.gz %{_mandir}/es/man1/faked-sysv.1.gz \
+  --slave %{_mandir}/fr/man1/fakeroot.1.gz fakeroot.fr.1.gz %{_mandir}/fr/man1/fakeroot-sysv.1.gz \
+  --slave %{_mandir}/fr/man1/faked.1.gz faked.fr.1.gz %{_mandir}/fr/man1/faked-sysv.1.gz \
+  --slave %{_mandir}/nl/man1/fakeroot.1.gz fakeroot.nl.1.gz %{_mandir}/nl/man1/fakeroot-sysv.1.gz \
+  --slave %{_mandir}/nl/man1/faked.1.gz faked.nl.1.gz %{_mandir}/nl/man1/faked-sysv.1.gz \
+  --slave %{_mandir}/sv/man1/fakeroot.1.gz fakeroot.sv.1.gz %{_mandir}/sv/man1/fakeroot-sysv.1.gz \
+  --slave %{_mandir}/sv/man1/faked.1.gz faked.sv.1.gz %{_mandir}/sv/man1/faked-sysv.1.gz
+
+%preun
+if [ $1 = 0 ]; then
+  /usr/sbin/alternatives --remove fakeroot "%{_bindir}/fakeroot-tcp"
+  /usr/sbin/alternatives --remove fakeroot "%{_bindir}/fakeroot-sysv"
+fi
+
 %files
 %defattr(-,root,root,-)
 %doc COPYING AUTHORS BUGS DEBUG doc/README.saving
 %{_bindir}/faked-*
 %{_bindir}/faked
 %{_bindir}/fakeroot-*
-%{_bindir}/fakeroot
-%{_mandir}/man1/faked-*.1*
-%{_mandir}/man1/fakeroot-*.1*
-%lang(de) %{_mandir}/de/man1/faked-*.1*
-%lang(de) %{_mandir}/de/man1/fakeroot-*.1*
-%lang(es) %{_mandir}/es/man1/faked-*.1*
-%lang(es) %{_mandir}/es/man1/fakeroot-*.1*
-%lang(fr) %{_mandir}/fr/man1/faked-*.1*
-%lang(fr) %{_mandir}/fr/man1/fakeroot-*.1*
-%lang(sv) %{_mandir}/sv/man1/faked-*.1*
-%lang(sv) %{_mandir}/sv/man1/fakeroot-*.1*
-%lang(nl) %{_mandir}/nl/man1/faked-*.1*
-%lang(nl) %{_mandir}/nl/man1/fakeroot-*.1*
+%ghost %{_bindir}/fakeroot
+%{_mandir}/man1/faked-sysv.1*
+%{_mandir}/man1/faked-tcp.1*
+%{_mandir}/man1/fakeroot-sysv.1*
+%{_mandir}/man1/fakeroot-tcp.1*
+%ghost %{_mandir}/man1/fakeroot.1.gz
+%lang(de) %{_mandir}/de/man1/faked-sysv.1*
+%lang(de) %{_mandir}/de/man1/faked-tcp.1*
+%lang(de) %{_mandir}/de/man1/fakeroot-sysv.1*
+%lang(de) %{_mandir}/de/man1/fakeroot-tcp.1*
+%ghost %lang(de) %{_mandir}/de/man1/fakeroot.1.gz
+%lang(es) %{_mandir}/es/man1/faked-sysv.1*
+%lang(es) %{_mandir}/es/man1/faked-tcp.1*
+%lang(es) %{_mandir}/es/man1/fakeroot-sysv.1*
+%lang(es) %{_mandir}/es/man1/fakeroot-tcp.1*
+%ghost %lang(es) %{_mandir}/es/man1/fakeroot.1.gz
+%lang(fr) %{_mandir}/fr/man1/faked-sysv.1*
+%lang(fr) %{_mandir}/fr/man1/faked-tcp.1*
+%lang(fr) %{_mandir}/fr/man1/fakeroot-sysv.1*
+%lang(fr) %{_mandir}/fr/man1/fakeroot-tcp.1*
+%ghost %lang(fr) %{_mandir}/fr/man1/fakeroot.1.gz
+%lang(sv) %{_mandir}/sv/man1/faked-sysv.1*
+%lang(sv) %{_mandir}/sv/man1/faked-tcp.1*
+%lang(sv) %{_mandir}/sv/man1/fakeroot-sysv.1*
+%lang(sv) %{_mandir}/sv/man1/fakeroot-tcp.1*
+%ghost %lang(sv) %{_mandir}/sv/man1/fakeroot.1.gz
+%lang(nl) %{_mandir}/nl/man1/faked-sysv.1*
+%lang(nl) %{_mandir}/nl/man1/faked-tcp.1*
+%lang(nl) %{_mandir}/nl/man1/fakeroot-sysv.1*
+%lang(nl) %{_mandir}/nl/man1/fakeroot-tcp.1*
+%ghost %lang(nl) %{_mandir}/nl/man1/fakeroot.1.gz
 
 %files libs
 %dir %{_libdir}/libfakeroot
@@ -105,6 +169,9 @@ done
 %{_libdir}/libfakeroot/libfakeroot-0.so
 
 %changelog
+* Mon Aug 26 2013 Ralf Corsépius <corsepiu at fedoraproject.org> - 1.18.4-2
+- Add alternatives (Mimic Debian's behavior).
+
 * Fri Jul 26 2013 Ralf Corsépius <corsepiu at fedoraproject.org> - 1.18.4-1
 - Upstream update.
 - Spec cleanup.


More information about the scm-commits mailing list