summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/makepkg.8.txt9
-rw-r--r--scripts/makepkg.sh.in19
2 files changed, 20 insertions, 8 deletions
diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index 18ee6ed2..7e89fa27 100644
--- a/doc/makepkg.8.txt
+++ b/doc/makepkg.8.txt
@@ -170,6 +170,15 @@ separate utility 'versionpkg'. See linkman:PKGBUILD[5] for details on how to
set up a development PKGBUILD.
+Environment Variables
+---------------------
+*PACMAN*::
+ The command that will be used to check for missing dependencies and to
+ install and remove packages. Pacman's -U, -T, -S and -Rns operations
+ must be supported by this command. If the variable is not set or
+ empty, makepkg will fall back to `pacman'.
+
+
Configuration
-------------
See linkman:makepkg.conf[5] for more details on configuring makepkg using the
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index ba2758ba..ef884b76 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -344,9 +344,9 @@ download_file() {
run_pacman() {
local ret=0
if (( ! ASROOT )) && [[ $1 != "-T" ]]; then
- sudo pacman $PACMAN_OPTS "$@" || ret=$?
+ sudo $PACMAN $PACMAN_OPTS "$@" || ret=$?
else
- pacman $PACMAN_OPTS "$@" || ret=$?
+ $PACMAN $PACMAN_OPTS "$@" || ret=$?
fi
return $ret
}
@@ -360,7 +360,7 @@ check_deps() {
if (( ret == 127 )); then #unresolved deps
echo "$pmout"
elif (( ret )); then
- error "$(gettext "Pacman returned a fatal error (%i): %s")" "$ret" "$pmout"
+ error "$(gettext "'%s' returned a fatal error (%i): %s")" "$PACMAN" "$ret" "$pmout"
exit 1
fi
}
@@ -382,7 +382,7 @@ handle_deps() {
msg "$(gettext "Installing missing dependencies...")"
if ! run_pacman -S --asdeps $deplist; then
- error "$(gettext "Pacman failed to install missing dependencies.")"
+ error "$(gettext "'%s' failed to install missing dependencies.")" "$PACMAN"
exit 1 # TODO: error code
fi
fi
@@ -1124,9 +1124,9 @@ install_package() {
(( ! INSTALL )) && return
if (( ! SPLITPKG )); then
- msg "$(gettext "Installing package ${pkgname} with pacman -U...")"
+ msg "$(gettext "Installing package %s with %s -U...")" "$pkgname" "$PACMAN"
else
- msg "$(gettext "Installing ${pkgbase} package group with pacman -U...")"
+ msg "$(gettext "Installing %s package group with %s -U...")" "$pkgbase" "$PACMAN"
fi
local pkglist
@@ -1592,6 +1592,9 @@ if [[ -r ~/.makepkg.conf ]]; then
source ~/.makepkg.conf
fi
+# set pacman command if not already defined
+PACMAN=${PACMAN:-pacman}
+
# check if messages are to be printed using color
unset ALL_OFF BOLD BLUE GREEN RED YELLOW
if [[ -t 2 && ! $USE_COLOR = "n" && $(check_buildenv color) = "y" ]]; then
@@ -1850,7 +1853,7 @@ if (( NODEPS || NOBUILD || REPKG )); then
if (( NODEPS )); then
warning "$(gettext "Skipping dependency checks.")"
fi
-elif [ $(type -p pacman) ]; then
+elif [ $(type -p "${PACMAN%% *}") ]; then
unset pkgdeps # Set by resolve_deps() and used by remove_deps()
deperr=0
@@ -1865,7 +1868,7 @@ elif [ $(type -p pacman) ]; then
exit 1
fi
else
- warning "$(gettext "pacman was not found in PATH; skipping dependency checks.")"
+ warning "$(gettext "%s was not found in PATH; skipping dependency checks.")" "${PACMAN%% *}"
fi
# ensure we have a sane umask set