]> granicus.if.org Git - sudo/commitdiff
Only use --with-sssd-lib on Debian/Ubuntu w/ multipackage.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 9 Jul 2015 00:13:39 +0000 (18:13 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 9 Jul 2015 00:13:39 +0000 (18:13 -0600)
Use dpkg-query to determine the name of the audit package
for proper dependencies.

mkpkg
sudo.pp

diff --git a/mkpkg b/mkpkg
index 6fc2916dcf45b2766ca092f584df225bdaaa5190..abeef1ea04f3400ea37b1733a7a0fea84fedaeac 100755 (executable)
--- a/mkpkg
+++ b/mkpkg
@@ -190,13 +190,18 @@ case "$osversion" in
                configure_opts="${configure_opts}${configure_opts+$tab}--enable-admin-flag${tab}--without-lecture"
                ;;
        esac
+       # Newer Debian uses arch-specific lib dirs
+       MULTIARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null)
        # Note, must indent with tabs, not spaces due to IFS trickery
        if test "$flavor" = "ldap"; then
            configure_opts="${configure_opts}${configure_opts+$tab}--with-ldap
                --with-ldap-conf-file=/etc/sudo-ldap.conf"
        else
-           configure_opts="${configure_opts}${configure_opts+$tab}--with-sssd
-               --with-sssd-lib=/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)"
+           configure_opts="${configure_opts}${configure_opts+$tab}--with-sssd"
+           if test -n "$MULTIARCH"; then
+               # SSSD backend needs to know where to find the sssd lib
+               configure_opts="${configure_opts}${configure_opts+$tab}--with-sssd-lib=/usr/lib/$MULTIARCH"
+           fi
        fi
        configure_opts="--prefix=/usr
                --with-all-insults
@@ -217,6 +222,9 @@ case "$osversion" in
                --with-selinux
                --with-linux-audit
                $configure_opts"
+       # Use correct libaudit dependency
+       linux_audit=`dpkg-query -S /lib/$MULTIARCH/libaudit.so.[0-9]* | sed -e 's/:.*//' -e q`
+       PPVARS="${PPVARS}${PPVARS+$space}linux_audit=$linux_audit"
        ;;
     macos*)
        case "$osversion" in
diff --git a/sudo.pp b/sudo.pp
index 3cd57f8062a7887e3e3b7bd9540b9ab440c132de..7a181b54bc381da1cd3c16342e612e0baa13b67f 100644 (file)
--- a/sudo.pp
+++ b/sudo.pp
@@ -246,10 +246,11 @@ still allow people to get their work done."
        fi
 
 %depend [deb]
-       libc6, libpam0g, libpam-modules, zlib1g, libselinux1, libaudit1
+       libc6, libpam0g, libpam-modules, zlib1g, libselinux1
 
 %fixup [deb]
        # Add Conflicts, Replaces headers and add libldap depedency as needed.
+       DEPENDS="${linux_audit}"
        if test -z "%{flavor}"; then
            echo "Conflicts: sudo-ldap" >> %{pp_wrkdir}/%{name}/DEBIAN/control
            echo "Replaces: sudo-ldap" >> %{pp_wrkdir}/%{name}/DEBIAN/control
@@ -257,10 +258,11 @@ still allow people to get their work done."
            echo "Conflicts: sudo" >> %{pp_wrkdir}/%{name}/DEBIAN/control
            echo "Replaces: sudo" >> %{pp_wrkdir}/%{name}/DEBIAN/control
            echo "Provides: sudo" >> %{pp_wrkdir}/%{name}/DEBIAN/control
-           cp -p %{pp_wrkdir}/%{name}/DEBIAN/control %{pp_wrkdir}/%{name}/DEBIAN/control.$$
-           sed 's/^\(Depends:.*\) *$/\1, libldap-2.4-2/' %{pp_wrkdir}/%{name}/DEBIAN/control.$$ > %{pp_wrkdir}/%{name}/DEBIAN/control
-           rm -f %{pp_wrkdir}/%{name}/DEBIAN/control.$$
+           DEPENDS="${DEPENDS}, libldap-2.4-2"
        fi
+       cp -p %{pp_wrkdir}/%{name}/DEBIAN/control %{pp_wrkdir}/%{name}/DEBIAN/control.$$
+       sed "s/^\(Depends:.*\) *$/\1, ${DEPENDS}/" %{pp_wrkdir}/%{name}/DEBIAN/control.$$ > %{pp_wrkdir}/%{name}/DEBIAN/control
+       rm -f %{pp_wrkdir}/%{name}/DEBIAN/control.$$
        echo "Homepage: http://www.sudo.ws/sudo/" >> %{pp_wrkdir}/%{name}/DEBIAN/control
        echo "Bugs: http://www.sudo.ws/bugs/" >> %{pp_wrkdir}/%{name}/DEBIAN/control