[pacman-dev] [PATCH] makepkg: fix regression which broke split pkgbase-debug package metadata
Allan McRae
allan at archlinux.org
Mon Jun 4 11:47:58 UTC 2018
On 01/06/18 10:31, Eli Schwartz wrote:
> In commit 9e52a36794552b77ecf26f7f34b226d096978f1e the split package
> metadata backup/restore was refactored to use declare, which actually
> declares variables in a local scope when in a function. This did not
> play nicely with debug packages, which unset most metadata variables,
> thereby reverting to the global scope rather than resulting in unset
> metadata.
>
> Fix by explicitly marking the variables as global.
>
This requires bash-4.2. We released pacman-5.1 with bash-4.1 as the
minimum required version.
This might work:
printf '%s\n' "printf -v \"$var\" \"${!var}\""
> Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
> ---
> scripts/makepkg.sh.in | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 21737af8..fe3891ce 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -1124,7 +1124,12 @@ check_build_status() {
> backup_package_variables() {
> local var
> for var in ${splitpkg_overrides[@]}; do
> - declare -p $var 2>/dev/null || printf '%s\n' "unset $var"
> + if [[ ${!var} ]]; then
> + printf '%s\n' "declare -g $var"
> + declare -p $var
> + else
> + printf '%s\n' "unset $var"
> + fi
> done
> }
>
>
More information about the pacman-dev
mailing list