2
0
mirror of https://github.com/sudo-project/sudo.git synced 2025-08-22 01:49:11 +00:00

Only use --with-sssd-lib on Debian/Ubuntu w/ multipackage.

Use dpkg-query to determine the name of the audit package
for proper dependencies.
This commit is contained in:
Todd C. Miller 2015-07-08 18:13:39 -06:00
parent c3b4e4ce3e
commit 2d0699a070
2 changed files with 16 additions and 6 deletions

12
mkpkg
View File

@ -190,13 +190,18 @@ case "$osversion" in
configure_opts="${configure_opts}${configure_opts+$tab}--enable-admin-flag${tab}--without-lecture" configure_opts="${configure_opts}${configure_opts+$tab}--enable-admin-flag${tab}--without-lecture"
;; ;;
esac 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 # Note, must indent with tabs, not spaces due to IFS trickery
if test "$flavor" = "ldap"; then if test "$flavor" = "ldap"; then
configure_opts="${configure_opts}${configure_opts+$tab}--with-ldap configure_opts="${configure_opts}${configure_opts+$tab}--with-ldap
--with-ldap-conf-file=/etc/sudo-ldap.conf" --with-ldap-conf-file=/etc/sudo-ldap.conf"
else else
configure_opts="${configure_opts}${configure_opts+$tab}--with-sssd configure_opts="${configure_opts}${configure_opts+$tab}--with-sssd"
--with-sssd-lib=/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)" 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 fi
configure_opts="--prefix=/usr configure_opts="--prefix=/usr
--with-all-insults --with-all-insults
@ -217,6 +222,9 @@ case "$osversion" in
--with-selinux --with-selinux
--with-linux-audit --with-linux-audit
$configure_opts" $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*) macos*)
case "$osversion" in case "$osversion" in

10
sudo.pp
View File

@ -246,10 +246,11 @@ still allow people to get their work done."
fi fi
%depend [deb] %depend [deb]
libc6, libpam0g, libpam-modules, zlib1g, libselinux1, libaudit1 libc6, libpam0g, libpam-modules, zlib1g, libselinux1
%fixup [deb] %fixup [deb]
# Add Conflicts, Replaces headers and add libldap depedency as needed. # Add Conflicts, Replaces headers and add libldap depedency as needed.
DEPENDS="${linux_audit}"
if test -z "%{flavor}"; then if test -z "%{flavor}"; then
echo "Conflicts: sudo-ldap" >> %{pp_wrkdir}/%{name}/DEBIAN/control echo "Conflicts: sudo-ldap" >> %{pp_wrkdir}/%{name}/DEBIAN/control
echo "Replaces: 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 "Conflicts: sudo" >> %{pp_wrkdir}/%{name}/DEBIAN/control
echo "Replaces: sudo" >> %{pp_wrkdir}/%{name}/DEBIAN/control echo "Replaces: sudo" >> %{pp_wrkdir}/%{name}/DEBIAN/control
echo "Provides: 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.$$ DEPENDS="${DEPENDS}, libldap-2.4-2"
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.$$
fi 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 "Homepage: http://www.sudo.ws/sudo/" >> %{pp_wrkdir}/%{name}/DEBIAN/control
echo "Bugs: http://www.sudo.ws/bugs/" >> %{pp_wrkdir}/%{name}/DEBIAN/control echo "Bugs: http://www.sudo.ws/bugs/" >> %{pp_wrkdir}/%{name}/DEBIAN/control