[pacman-dev] [PATCH] makepkg: fall back to su if sudo is not available
Allan McRae
allan at archlinux.org
Sat Mar 6 17:28:09 EST 2010
On 05/03/10 12:57, Ray Kohler wrote:
> I just came across a nuisance with this patch: it warns about the use
> of su both inside, and outside, of the fakeroot run. Here's another
> version that checks INFAKEROOT before printing that, such that it'll
> only do so outside of the fakeroot.
>
>> From 94840c1c5f1fc0f3b4699bcb174f615042ff1cf1 Mon Sep 17 00:00:00 2001
> From: Ray Kohler<ataraxia937 at gmail.com>
> Date: Sat, 20 Feb 2010 21:08:25 -0500
> Subject: [PATCH] makepkg: fall back to su if sudo is not available
>
> Signed-off-by: Ray Kohler<ataraxia937 at gmail.com>
> ---
> scripts/makepkg.sh.in | 15 ++++++++-------
> 1 files changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 5bd294c..75ce7e9 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -344,8 +344,12 @@ 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
> + su -c "$PACMAN $PACMAN_OPTS $*" || ret=$?
> + fi
> else
> $PACMAN $PACMAN_OPTS "$@" || ret=$?
> fi
> @@ -1687,12 +1691,9 @@ else
> fi
>
> # check for sudo if we will need it during makepkg execution
> -if (( ! ASROOT&& ( DEP_BIN || RMDEPS || INSTALL ) )); then
> +if (( ! ( ASROOT || INFAKEROOT )&& ( 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.")"
That message looked a bit ugly in a standard 80 wide terminal so I
changed it to:
"Sudo can not be found. Using su to acquire root privileges."
Otherwise, this looks fine. Pulled to my working branch.
Allan
More information about the pacman-dev
mailing list