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 <al...@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