[pacman-dev] [PATCH] makepkg: fall back to su if sudo is not available

Allan McRae allan at archlinux.org
Thu Feb 25 19:25:47 EST 2010


On 21/02/10 12:20, Ray Kohler wrote:
> There's a bit of a hack here with the "fullcmd" temporary
> variable to get around the need to pass the entire command line
> to su -c as one argument.
>
> Signed-off-by: Ray Kohler<ataraxia937 at gmail.com>
> ---
>   scripts/makepkg.sh.in |   19 +++++++------------
>   1 files changed, 7 insertions(+), 12 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 5bd294c..2dc9262 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -344,8 +344,13 @@ download_file() {
>
>   run_pacman() {
>   	local ret=0
> -	if (( ! ASROOT ))&&  [[ $1 != "-T" ]]&&  sudo -l $PACMAN&>/dev/null; then
> -		sudo $PACMAN $PACMAN_OPTS "$@" || ret=$?
> +	if (( ! ASROOT ))&&  [[ $1 != "-T" ]]; then
> +		if [ "$(type -p sudo)" ]&&  sudo -l $PACMAN&>/dev/null; then
> +			sudo $PACMAN $PACMAN_OPTS "$@" || ret=$?
> +		else
> +			fullcmd="$PACMAN $PACMAN_OPTS $@"
> +			su -c "$fullcmd" || ret=$?

does:
su -c "$PACMAN $PACMAN_OPTS $@"
not work?

> +		fi
>   	else
>   		$PACMAN $PACMAN_OPTS "$@" || ret=$?
>   	fi
> @@ -1686,16 +1691,6 @@ else
>   	fi
>   fi
>
> -# check for sudo if we will need it during makepkg execution
> -if (( ! ASROOT&&  ( DEP_BIN || RMDEPS || INSTALL ) )); then
> -	if [ ! "$(type -p sudo)" ]; then
> -		error "$(gettext "Cannot find the sudo binary! Is sudo installed?")"
> -		plain "$(gettext "Missing dependencies cannot be installed or removed as a normal user")"
> -		plain "$(gettext "without sudo; install and configure sudo to auto-resolve dependencies.")"
> -		exit 1
> -	fi
> -fi
> -

Maybe we should keep this somewhat...  With this patch I will be asked 
for a password.  It could be my user password if I have sudo install or 
it could be the root password if not.  That there is no indication which 
password is needed does not seem great from a usability perspective.  We 
could keep the check for sudo and print that we are falling back to 
using su.

Allan


More information about the pacman-dev mailing list