[pacman-dev] [PATCH] makepkg: keep PACMAN_OPTS in environment

Matthew Farkas-Dyck strake888 at gmail.com
Wed Jul 27 12:23:03 EDT 2011


Patch to make makepkg keep PACMAN_OPTS environment variable, thus
allowing operation to be better controlled, e.g. by an AUR- or other
helper script to build packages on and install packages to a mounted
guest filesystem.

Signed-off-by: strake <strake888 at gmail.com>
---
 doc/makepkg.8.txt     |    3 ++
 scripts/makepkg.sh.in |   75 +++++++++++++++++++++++++-----------------------
 2 files changed, 42 insertions(+), 36 deletions(-)

diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
index ffc01cd..cc10e3a 100644
--- a/doc/makepkg.8.txt
+++ b/doc/makepkg.8.txt
@@ -118,6 +118,9 @@ Options
 	Read the package script `buildscript` instead of the `PKGBUILD` default;
 	see linkman:PKGBUILD[5].

+*--pass-pacman_opts*::
+	Pass PACMAN_OPTS environment variable to `pacman` as arguments.
+
 *-r, \--rmdeps*::
 	Upon successful build, remove any dependencies installed by makepkg
 	during dependency auto-resolution and installation when using `-s`.
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index a4e7156..c8bebce 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -78,6 +78,8 @@ SIGNPKG=''
 # when dealing with svn/cvs/etc PKGBUILDs.
 FORCE_VER=""

+# Keep pacman opts in case user should tell us to pass them through
+PACMAN_OPTS_ENV=${PACMAN_OPTS}
 PACMAN_OPTS=

 ### SUBROUTINES ###
@@ -1764,45 +1766,46 @@ unset OPT_SHORT OPT_LONG OPT_TEMP
 while true; do
 	case "$1" in
 		# Pacman Options
-		--noconfirm)      PACMAN_OPTS+=" --noconfirm" ;;
-		--noprogressbar)  PACMAN_OPTS+=" --noprogressbar" ;;
+		--noconfirm)        PACMAN_OPTS+=" --noconfirm" ;;
+		--noprogressbar)    PACMAN_OPTS+=" --noprogressbar" ;;

 		# Makepkg Options
-		--allsource)      SOURCEONLY=2 ;;
-		--asroot)         ASROOT=1 ;;
-		-A|--ignorearch)  IGNOREARCH=1 ;;
-		-c|--clean)       CLEANUP=1 ;;
-		--check)          RUN_CHECK='y' ;;
-		--config)         shift; MAKEPKG_CONF=$1 ;;
-		-d|--nodeps)      NODEPS=1 ;;
-		-e|--noextract)   NOEXTRACT=1 ;;
-		-f|--force)       FORCE=1 ;;
+		--allsource)        SOURCEONLY=2 ;;
+		--asroot)           ASROOT=1 ;;
+		-A|--ignorearch)    IGNOREARCH=1 ;;
+		-c|--clean)         CLEANUP=1 ;;
+		--check)            RUN_CHECK='y' ;;
+		--config)           shift; MAKEPKG_CONF=$1 ;;
+		-d|--nodeps)        NODEPS=1 ;;
+		-e|--noextract)     NOEXTRACT=1 ;;
+		-f|--force)         FORCE=1 ;;
 		#hidden opt used by fakeroot call for svn/cvs/etc PKGBUILDs to set pkgver
-		--forcever)       shift; FORCE_VER=$1;;
-		-F)               INFAKEROOT=1 ;;
-		-g|--geninteg)    GENINTEG=1 ;;
-		--holdver)        HOLDVER=1 ;;
-		-i|--install)     INSTALL=1 ;;
-		--key)            shift; GPGKEY=$1 ;;
-		-L|--log)         LOGGING=1 ;;
-		-m|--nocolor)     USE_COLOR='n' ;;
-		--nocheck)        RUN_CHECK='n' ;;
-		--nosign)         SIGNPKG='n' ;;
-		-o|--nobuild)     NOBUILD=1 ;;
-		-p)               shift; BUILDFILE=$1 ;;
-		--pkg)            shift; PKGLIST=($1) ;;
-		-r|--rmdeps)      RMDEPS=1 ;;
-		-R|--repackage)   REPKG=1 ;;
-		--skipinteg)      SKIPINTEG=1 ;;
-		--sign)           SIGNPKG='y' ;;
-		--source)         SOURCEONLY=1 ;;
-		-s|--syncdeps)    DEP_BIN=1 ;;
-
-		-h|--help)        usage; exit 0 ;; # E_OK
-		-V|--version)     version; exit 0 ;; # E_OK
-
-		--)               OPT_IND=0; shift; break;;
-		*)                usage; exit 1 ;; # E_INVALID_OPTION
+		--forcever)         shift; FORCE_VER=$1;;
+		-F)                 INFAKEROOT=1 ;;
+		-g|--geninteg)      GENINTEG=1 ;;
+		--holdver)          HOLDVER=1 ;;
+		-i|--install)       INSTALL=1 ;;
+		--key)              shift; GPGKEY=$1 ;;
+		-L|--log)           LOGGING=1 ;;
+		-m|--nocolor)       USE_COLOR='n' ;;
+		--nocheck)          RUN_CHECK='n' ;;
+		--nosign)           SIGNPKG='n' ;;
+		-o|--nobuild)       NOBUILD=1 ;;
+		-p)                 shift; BUILDFILE=$1 ;;
+                --pass-pacman_opts) shift; PACMAN_OPTS+="
${PACMAN_OPTS_ENV}" ;;
+		--pkg)              shift; PKGLIST=($1) ;;
+		-r|--rmdeps)        RMDEPS=1 ;;
+		-R|--repackage)     REPKG=1 ;;
+		--skipinteg)        SKIPINTEG=1 ;;
+		--sign)             SIGNPKG='y' ;;
+		--source)           SOURCEONLY=1 ;;
+		-s|--syncdeps)      DEP_BIN=1 ;;
+
+		-h|--help)          usage; exit 0 ;; # E_OK
+		-V|--version)       version; exit 0 ;; # E_OK
+
+		--)                 OPT_IND=0; shift; break;;
+		*)                  usage; exit 1 ;; # E_INVALID_OPTION
 	esac
 	shift
 done
-- 
1.7.6


More information about the pacman-dev mailing list