[pacman-dev] [PATCH] makepkg: fix sudo/su calling of pacman
Allan McRae
allan at archlinux.org
Wed Jun 30 07:25:31 EDT 2010
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 at gmail.com> with minor
> adjustments for suitability for the maint branch.
>
> Signed-off-by: Allan McRae<allan at 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() {
More information about the pacman-dev
mailing list