diff options
Diffstat (limited to 'libre/pacman/0001-Revert-makepkg-use-the-declare-builtin-when-backing-.patch')
-rw-r--r-- | libre/pacman/0001-Revert-makepkg-use-the-declare-builtin-when-backing-.patch | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/libre/pacman/0001-Revert-makepkg-use-the-declare-builtin-when-backing-.patch b/libre/pacman/0001-Revert-makepkg-use-the-declare-builtin-when-backing-.patch new file mode 100644 index 000000000..d3d96b87d --- /dev/null +++ b/libre/pacman/0001-Revert-makepkg-use-the-declare-builtin-when-backing-.patch @@ -0,0 +1,66 @@ +From 10ca4f48311370cdd580f66096d5e94858fde467 Mon Sep 17 00:00:00 2001 +From: Allan McRae <allan@archlinux.org> +Date: Tue, 19 Jun 2018 21:08:28 +1000 +Subject: [PATCH] Revert "makepkg: use the `declare` builtin when backing up + variables to eval" + +This reverts commit 9e52a36794552b77ecf26f7f34b226d096978f1e. + +The change to use declare for the split package metadata backup/restore +resulted in variables being declared at a local scope. When these variables +were unset (mostly noticed with debug packaging) this left the variable at +global scope defined. The decided fix for this requires the use of +bash-4.2 features, which is greater than our current minimum version and so +is not suitable for a maint release. Revert the change in the meantime. + +Signed-off-by: Allan McRae <allan@archlinux.org> +--- + scripts/makepkg.sh.in | 20 ++++++++++++++++---- + 1 file changed, 16 insertions(+), 4 deletions(-) + +diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in +index 32423262..d35dd62d 100644 +--- a/scripts/makepkg.sh.in ++++ b/scripts/makepkg.sh.in +@@ -1125,22 +1125,34 @@ 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" ++ local indirect="${var}_backup" ++ eval "${indirect}=(\"\${$var[@]}\")" ++ done ++} ++ ++restore_package_variables() { ++ local var ++ for var in ${splitpkg_overrides[@]}; do ++ local indirect="${var}_backup" ++ if [[ -n ${!indirect} ]]; then ++ eval "${var}=(\"\${$indirect[@]}\")" ++ else ++ unset ${var} ++ fi + done + } + + run_split_packaging() { + local pkgname_backup=("${pkgname[@]}") +- local restore_package_variables + for pkgname in ${pkgname_backup[@]}; do + pkgdir="$pkgdirbase/$pkgname" + mkdir "$pkgdir" +- restore_package_variables="$(backup_package_variables)" ++ backup_package_variables + run_package $pkgname + tidy_install + lint_package || exit $E_PACKAGE_FAILED + create_package +- eval "$restore_package_variables" ++ restore_package_variables + done + pkgname=("${pkgname_backup[@]}") + create_debug_package +-- +2.17.1 + |