[pacman-dev] Add --with-sudo configure option
diff mbox

Message ID 20170313004934.GA30118@homura
State Changes Requested
Headers show

Commit Message

Drew DeVault March 13, 2017, 12:49 a.m. UTC
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(-)

Comments

Allan McRae April 12, 2017, 3:20 a.m. UTC | #1
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

Patch
diff mbox

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