2
0
mirror of https://github.com/sudo-project/sudo.git synced 2025-08-22 09:57:41 +00:00

Only package parent directories that match a non-default prefix

For example, if sudo is installed into /opt/sudo we only want to
package directories under /opt and not /var.
This commit is contained in:
Todd C. Miller 2025-02-08 10:24:11 -07:00
parent 43f16c1d24
commit a9e1120791
3 changed files with 21 additions and 3 deletions

View File

@ -5,7 +5,7 @@
from sudo clients. from sudo clients.
This makes it possible to have all sudo I/O logs on a central server." This makes it possible to have all sudo I/O logs on a central server."
vendor="Todd C. Miller" vendor="Todd C. Miller"
copyright="Copyright 2019-2024 Todd C. Miller" copyright="Copyright 2019-2025 Todd C. Miller"
%if [aix] %if [aix]
# Convert to 4 part version for AIX, including patch level # Convert to 4 part version for AIX, including patch level
@ -167,10 +167,16 @@ This makes it possible to have all sudo I/O logs on a central server."
extradirs="$extradirs `dirname $docdir` `dirname $rundir`" extradirs="$extradirs `dirname $docdir` `dirname $rundir`"
test "`dirname $exampledir`" != "$docdir" && extradirs="$extradirs `dirname $exampledir`" test "`dirname $exampledir`" != "$docdir" && extradirs="$extradirs `dirname $exampledir`"
for dir in $sbindir $extradirs; do for dir in $sbindir $extradirs; do
# Only package directories that match the prefix,
# otherwise we could package directories like /var.
case "$dir" in
${prefix}*)
while test "$dir" != "/"; do while test "$dir" != "/"; do
parentdirs="${parentdirs}${parentdirs+ }$dir/" parentdirs="${parentdirs}${parentdirs+ }$dir/"
dir=`dirname $dir` dir=`dirname $dir`
done done
;;
esac
done done
parentdirs=`echo $parentdirs | tr " " "\n" | sort -u` parentdirs=`echo $parentdirs | tr " " "\n" | sort -u`
fi fi

View File

@ -3,7 +3,7 @@
summary="Sudo Python plugin framework" summary="Sudo Python plugin framework"
description="The sudo Python plugin allows you to extend sudo using Python." description="The sudo Python plugin allows you to extend sudo using Python."
vendor="Todd C. Miller" vendor="Todd C. Miller"
copyright="Copyright 2019-2024 Todd C. Miller" copyright="Copyright 2019-2025 Todd C. Miller"
%if [aix] %if [aix]
# Convert to 4 part version for AIX, including patch level # Convert to 4 part version for AIX, including patch level
@ -117,10 +117,16 @@
extradirs="$extradirs `dirname $docdir`" extradirs="$extradirs `dirname $docdir`"
test "`dirname $exampledir`" != "$docdir" && extradirs="$extradirs `dirname $exampledir`" test "`dirname $exampledir`" != "$docdir" && extradirs="$extradirs `dirname $exampledir`"
for dir in $libexecdir $extradirs; do for dir in $libexecdir $extradirs; do
# Only package directories that match the prefix,
# otherwise we could package directories like /var.
case "$dir" in
${prefix}*)
while test "$dir" != "/"; do while test "$dir" != "/"; do
parentdirs="${parentdirs}${parentdirs+ }$dir/" parentdirs="${parentdirs}${parentdirs+ }$dir/"
dir=`dirname $dir` dir=`dirname $dir`
done done
;;
esac
done done
parentdirs=`echo $parentdirs | tr " " "\n" | sort -u` parentdirs=`echo $parentdirs | tr " " "\n" | sort -u`
fi fi

View File

@ -10,7 +10,7 @@ limited root privileges to users and log root activity. \
The basic philosophy is to give as few privileges as possible but \ The basic philosophy is to give as few privileges as possible but \
still allow people to get their work done." still allow people to get their work done."
vendor="Todd C. Miller" vendor="Todd C. Miller"
copyright="Copyright 1994-1996,1998-2024 Todd C. Miller" copyright="Copyright 1994-1996,1998-2025 Todd C. Miller"
sudoedit_man=`echo ${pp_destdir}$mandir/*/sudoedit.*|sed "s:^${pp_destdir}::"` sudoedit_man=`echo ${pp_destdir}$mandir/*/sudoedit.*|sed "s:^${pp_destdir}::"`
sudoedit_man_target=`basename $sudoedit_man | sed 's/edit//'` sudoedit_man_target=`basename $sudoedit_man | sed 's/edit//'`
@ -295,10 +295,16 @@ still allow people to get their work done."
test "`dirname $exampledir`" != "$docdir" && extradirs="$extradirs `dirname $exampledir`" test "`dirname $exampledir`" != "$docdir" && extradirs="$extradirs `dirname $exampledir`"
test -d ${pp_destdir}${localedir} && extradirs="$extradirs $localedir" test -d ${pp_destdir}${localedir} && extradirs="$extradirs $localedir"
for dir in $bindir $sbindir $libexecdir $includedir $extradirs; do for dir in $bindir $sbindir $libexecdir $includedir $extradirs; do
# Only package directories that match the prefix,
# otherwise we could package directories like /var.
case "$dir" in
${prefix}*)
while test "$dir" != "/"; do while test "$dir" != "/"; do
parentdirs="${parentdirs}${parentdirs+ }$dir/" parentdirs="${parentdirs}${parentdirs+ }$dir/"
dir=`dirname $dir` dir=`dirname $dir`
done done
;;
esac
done done
parentdirs=`echo $parentdirs | tr " " "\n" | sort -u` parentdirs=`echo $parentdirs | tr " " "\n" | sort -u`
fi fi