[pacman-dev] [PATCH] Add --with-sudo configure option
Allows you to specify an alternate command for running things as root, such as OpenBSD's doas. Signed-off-by: Drew DeVault <sir@cmpwn.com> --- configure.ac | 9 +++++++++ scripts/Makefile.am | 1 + scripts/makepkg.sh.in | 8 ++++---- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 10e4415c..825b29b9 100644 --- a/configure.ac +++ b/configure.ac @@ -114,6 +114,12 @@ AC_ARG_WITH(scriptlet-shell, [set the full path to the shell used to run install scriptlets]), [SCRIPTLET_SHELL=$withval], [SCRIPTLET_SHELL=/bin/sh]) +# Help line for changing sudo command +AC_ARG_WITH(sudo, + AS_HELP_STRING([--with-sudo=sudo], + [set the command used to run pacman as root]), + [SUDOCMD=$withval], [SUDOCMD=sudo]) + # Help line for ldconfig path AC_ARG_WITH(ldconfig, AS_HELP_STRING([--with-ldconfig=path], @@ -509,6 +515,9 @@ AC_DEFINE_UNQUOTED([TEMPLATE_DIR], "$TEMPLATE_DIR", [The template directory used # Set makepkg split debugging symbol package suffix AC_SUBST(DEBUGSUFFIX) AC_DEFINE_UNQUOTED([DEBUGSUFFIX], "$DEBUGSUFFIX", [The suffix for debugging symbol packages used by makepkg]) +# Set sudo command +AC_SUBST(SUDOCMD) +AC_DEFINE_UNQUOTED([SUDOCMD], "$SUDOCMD", [The command used to run pacman as root]) # Set shell used by install scriptlets AC_SUBST(SCRIPTLET_SHELL) AC_DEFINE_UNQUOTED([SCRIPTLET_SHELL], "$SCRIPTLET_SHELL", [The full path of the shell used to run install scriptlets]) diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 4bb08a24..ccfe7384 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -148,6 +148,7 @@ edit = sed \ -e 's|@BUILDSCRIPT[@]|$(BUILDSCRIPT)|g' \ -e 's|@TEMPLATE_DIR[@]|$(TEMPLATE_DIR)|g' \ -e 's|@DEBUGSUFFIX[@]|$(DEBUGSUFFIX)|g' \ + -e 's|@SUDOCMD[@]|$(SUDOCMD)|g' \ -e "s|@INODECMD[@]|$(INODECMD)|g" \ -e "s|@OWNERCMD[@]|$(OWNERCMD)|g" \ -e "s|@MODECMD[@]|$(MODECMD)|g" \ diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 29408929..5128216a 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -212,8 +212,8 @@ run_pacman() { cmd=("$PACMAN_PATH" "$@") fi if [[ $1 != -@(T|Qq|Q) ]]; then - if type -p sudo >/dev/null; then - cmd=(sudo "${cmd[@]}") + if type -p @SUDOCMD@ >/dev/null; then + cmd=(@SUDOCMD@ "${cmd[@]}") else cmd=(su root -c "$(printf '%q ' "${cmd[@]}")") fi @@ -1015,8 +1015,8 @@ check_software() { # check for sudo if we will need it during makepkg execution if (( DEP_BIN || RMDEPS || INSTALL )); then - if ! type -p sudo >/dev/null; then - warning "$(gettext "Cannot find the %s binary. Will use %s to acquire root privileges.")" "sudo" "su" + if ! type -p @SUDOCMD@ >/dev/null; then + warning "$(gettext "Cannot find the %s binary. Will use %s to acquire root privileges.")" "@SUDOCMD@" "su" fi fi -- 2.12.0
On 13/03/17 10:49, Drew DeVault wrote:
Allows you to specify an alternate command for running things as root, such as OpenBSD's doas.
Signed-off-by: Drew DeVault <sir@cmpwn.com> --- configure.ac | 9 +++++++++ scripts/Makefile.am | 1 + scripts/makepkg.sh.in | 8 ++++---- 3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac index 10e4415c..825b29b9 100644 --- a/configure.ac +++ b/configure.ac @@ -114,6 +114,12 @@ AC_ARG_WITH(scriptlet-shell, [set the full path to the shell used to run install scriptlets]), [SCRIPTLET_SHELL=$withval], [SCRIPTLET_SHELL=/bin/sh])
+# Help line for changing sudo command +AC_ARG_WITH(sudo, + AS_HELP_STRING([--with-sudo=sudo], + [set the command used to run pacman as root]), + [SUDOCMD=$withval], [SUDOCMD=sudo]) +
I find the help string a bit vague. How about: [command used to elevate privileges for pacman using within makepkg] I'm also not convinced with the name. --with-root-command? Allan
participants (2)
-
Allan McRae
-
Drew DeVault