From 8ecadfbfdddbc3a5fd48e45d03f6e95136f3a1d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralf=20Cors=C3=A9pius?= Date: Mon, 26 Aug 2013 18:12:55 +0200 Subject: [PATCH] Add alternatives (Mimic Debian's behavior). --- fakeroot.spec | 97 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file 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 - 1.18.4-2 +- Add alternatives (Mimic Debian's behavior). + * Fri Jul 26 2013 Ralf Corsépius - 1.18.4-1 - Upstream update. - Spec cleanup.