This fixes two issues:
1) using "sudo -l" results in excess password asking under certian
configurations. Revert to the pre 3.4 behaviour of always using
sudo if it is installed.
2) Properly escape the command so that that versioned dependencies,
such as "foo>4", do not get treated as output redirection. This
also unifies the generation of the pacman line and its privilege
escalation.
Based on patches supplied by Andres P with minor
adjustments for suitability for the maint branch.
Signed-off-by: Allan McRae
---
This is a fix for the maint branch. The reworking of the privilege
escalation to a configurable option will need to go on the master
branch at a later date.
scripts/makepkg.sh.in | 12 +++++-------
1 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index f3c7217..25bbc74 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -368,17 +368,15 @@ download_file() {
}
run_pacman() {
- local ret=0
+ local cmd=$(printf "%q " "$PACMAN" $PACMAN_OPTS "$@")
if (( ! ASROOT )) && [[ $1 != "-T" && $1 != "-Qq" ]]; then
- if [ "$(type -p sudo)" ] && sudo -l $PACMAN &>/dev/null; then
- sudo $PACMAN $PACMAN_OPTS "$@" || ret=$?
+ if [ "$(type -p sudo)" ]; then
+ cmd="sudo $cmd"
else
- su -c "$PACMAN $PACMAN_OPTS $*" || ret=$?
+ cmd="su -c '$cmd'"
fi
- else
- $PACMAN $PACMAN_OPTS "$@" || ret=$?
fi
- return $ret
+ eval "$cmd"
}
check_deps() {
--
1.7.1