On 30/06/10 21:18, Allan McRae wrote:
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
when using su
. This also unifies the generation of the pacman line and its privilege escalation.
Based on patches supplied by Andres P<aepd87@gmail.com> with minor adjustments for suitability for the maint branch.
Signed-off-by: Allan McRae<allan@archlinux.org> ---
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() {