[pacman-dev] [PATCH] makepkg: save and restore shell options before and after build()

Dan McGee dan at archlinux.org
Thu Dec 4 21:51:40 EST 2008


On Thu, Dec 4, 2008 at 8:48 PM, Dan McGee <dan at archlinux.org> wrote:
> Fix the issue uncovered by FS#12344. In this instance, the dotglob shopt was
> being set in the build() function but never cleared, causing issues in the
> remaining parts of the makepkg script.
>
> Signed-off-by: Dan McGee <dan 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 4cc255c..25e4cc8 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -675,6 +675,8 @@ run_build() {
>
>        # ensure all necessary build variables are exported
>        export CFLAGS CXXFLAGS MAKEFLAGS CHOST
> +       # save our shell options so build() can't override what we need
> +       local $shellopts=$(shopts -p)
I could have used this as a litmus test to see if anyone actually
tried this, but assume I put "shopt" (drop the s) here instead. Fixed
locally. :)

>
>        local ret=0
>        if [ "$LOGGING" = "1" ]; then
> @@ -695,6 +697,8 @@ run_build() {
>        else
>                build 2>&1 || ret=$?
>        fi
> +       # reset our shell options
> +       eval "$shellopts"
>
>        if [ $ret -gt 0 ]; then
>                error "$(gettext "Build Failed.")"
> --
> 1.6.0.4
>
>


More information about the pacman-dev mailing list