[pacman-dev] [PATCH] makepkg: disable extglob when sourcing BUILDSCRIPT

Allan McRae allan at archlinux.org
Fri Feb 10 23:27:29 EST 2012


PKGBUILDs are advertised as being pure bash so it would be expected
that the default bash options are in effect when sourcing it.

This inadvertantly "fixes" FS#27780 where enabling extglob causes
the bash parser to error on non-valid bash function names like
package_libxml++(). Note that these function names are unsupported
in bash and could break again even with this "fix" in future bash
releases.

Signed-off-by: Allan McRae <allan at archlinux.org>
---
 scripts/makepkg.sh.in |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index a10dc5d..80bb1c9 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -2106,7 +2106,9 @@ if [[ ! -f $BUILDFILE ]]; then
 	else
 		# PKGBUILD passed through a pipe
 		BUILDFILE=/dev/stdin
+		shopt -u extglob
 		source "$BUILDFILE"
+		shopt -s extglob
 	fi
 else
 	crlftest=$(file "$BUILDFILE" | grep -F 'CRLF' || true)
@@ -2118,7 +2120,9 @@ else
 	if [[ ${BUILDFILE:0:1} != "/" ]]; then
 		BUILDFILE="$startdir/$BUILDFILE"
 	fi
+	shopt -u extglob
 	source "$BUILDFILE"
+	shopt -s extglob
 fi
 
 # set defaults if they weren't specified in buildfile
-- 
1.7.9



More information about the pacman-dev mailing list