summaryrefslogtreecommitdiff
path: root/libre/pacman
diff options
context:
space:
mode:
authorOmar Vega Ramos <ovruni@gnu.org.pe>2018-06-23 18:16:01 -0500
committerOmar Vega Ramos <ovruni@gnu.org.pe>2018-06-23 18:16:01 -0500
commitdc36473e3972c73314fcb9bc09811871050a4645 (patch)
treef005ac4df795a48554e37eb382e793ac5ac8b868 /libre/pacman
parent30574b6dbf7aa33d6c068bbf1030ce8c23a0ebb3 (diff)
downloadabslibre-dc36473e3972c73314fcb9bc09811871050a4645.tar.gz
abslibre-dc36473e3972c73314fcb9bc09811871050a4645.tar.bz2
abslibre-dc36473e3972c73314fcb9bc09811871050a4645.zip
pacman-5.1.0-2.parabola1: rebuild
Diffstat (limited to 'libre/pacman')
-rw-r--r--libre/pacman/0001-makepkg-Clear-ERR-trap-before-trying-to-restore-it.patch27
-rw-r--r--libre/pacman/0002-makepkg-Don-t-use-parameterless-return.patch93
-rw-r--r--libre/pacman/PKGBUILD14
3 files changed, 131 insertions, 3 deletions
diff --git a/libre/pacman/0001-makepkg-Clear-ERR-trap-before-trying-to-restore-it.patch b/libre/pacman/0001-makepkg-Clear-ERR-trap-before-trying-to-restore-it.patch
new file mode 100644
index 000000000..b4a5f16ae
--- /dev/null
+++ b/libre/pacman/0001-makepkg-Clear-ERR-trap-before-trying-to-restore-it.patch
@@ -0,0 +1,27 @@
+From 842bdfbb622db0673d4952812a490e10f61fa3bd Mon Sep 17 00:00:00 2001
+Message-Id: <842bdfbb622db0673d4952812a490e10f61fa3bd.1527784094.git.jan.steffens@gmail.com>
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Thu, 31 May 2018 17:01:16 +0200
+Subject: [PATCH 1/2] makepkg: Clear ERR trap before trying to restore it
+
+$restoretrap is empty if the trap was not set. This caused the trap
+handler to remain and override later exit codes.
+---
+ scripts/makepkg.sh.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
+index e9080a70..d67fd853 100644
+--- a/scripts/makepkg.sh.in
++++ b/scripts/makepkg.sh.in
+@@ -432,6 +432,7 @@ run_function_safe() {
+
+ run_function "$1"
+
++ trap - ERR
+ eval "$restoretrap"
+ eval "$restoreset"
+ eval "$restoreshopt"
+--
+2.17.0
+
diff --git a/libre/pacman/0002-makepkg-Don-t-use-parameterless-return.patch b/libre/pacman/0002-makepkg-Don-t-use-parameterless-return.patch
new file mode 100644
index 000000000..c919e4f09
--- /dev/null
+++ b/libre/pacman/0002-makepkg-Don-t-use-parameterless-return.patch
@@ -0,0 +1,93 @@
+From bd164585f1a815a9f57b0c5bd2365d251500bc9f Mon Sep 17 00:00:00 2001
+Message-Id: <bd164585f1a815a9f57b0c5bd2365d251500bc9f.1527784094.git.jan.steffens@gmail.com>
+In-Reply-To: <842bdfbb622db0673d4952812a490e10f61fa3bd.1527784094.git.jan.steffens@gmail.com>
+References: <842bdfbb622db0673d4952812a490e10f61fa3bd.1527784094.git.jan.steffens@gmail.com>
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Thu, 31 May 2018 17:46:51 +0200
+Subject: [PATCH 2/2] makepkg: Don't use parameterless return
+
+It's especially dangerous in trap handlers since the return value of the
+function becomes the return value of the last command before the trap,
+not the last command in the current function. This applies to any
+function executed in a trap handler, nested functions included.
+
+In one case, install_packages failed (via return 14), which was inside a
+conditional that then ran exit 14, which triggered the EXIT handler,
+which called clean_up, which called remove_deps, which had !RMDEPS and
+thus returned. The return value of remove_deps became the return value
+of install_packages, triggering the ERR handler, which (due to another
+problem) was still the user function handler, which then printed a
+misleading error message and overrode the exit code with 4.
+---
+ scripts/makepkg.sh.in | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
+index d67fd853..15524dc0 100644
+--- a/scripts/makepkg.sh.in
++++ b/scripts/makepkg.sh.in
+@@ -133,7 +133,7 @@ clean_up() {
+
+ if (( INFAKEROOT )); then
+ # Don't clean up when leaving fakeroot, we're not done yet.
+- return
++ return 0
+ fi
+
+ if (( (EXIT_CODE == E_OK || EXIT_CODE == E_INSTALL_FAILED) && CLEANUP )); then
+@@ -313,7 +313,7 @@ resolve_deps() {
+ }
+
+ remove_deps() {
+- (( ! RMDEPS )) && return
++ (( ! RMDEPS )) && return 0
+
+ # check for packages removed during dependency install (e.g. due to conflicts)
+ # removing all installed packages is risky in this case
+@@ -519,7 +519,7 @@ find_libdepends() {
+
+ if (( sodepends == 0 )); then
+ (( ${#depends[@]} )) && printf '%s\n' "${depends[@]}"
+- return;
++ return 0;
+ fi
+
+ local libdeps filename soarch sofile soname soversion;
+@@ -721,7 +721,7 @@ list_package_files() {
+ }
+
+ create_package() {
+- (( NOARCHIVE )) && return
++ (( NOARCHIVE )) && return 0
+
+ if [[ ! -d $pkgdir ]]; then
+ error "$(gettext "Missing %s directory.")" "\$pkgdir/"
+@@ -784,14 +784,14 @@ create_package() {
+ create_debug_package() {
+ # check if a debug package was requested
+ if ! check_option "debug" "y" || ! check_option "strip" "y"; then
+- return
++ return 0
+ fi
+
+ pkgdir="$pkgdirbase/$pkgbase-@DEBUGSUFFIX@"
+
+ # check if we have any debug symbols to package
+ if dir_is_empty "$pkgdir/usr/lib/debug"; then
+- return
++ return 0
+ fi
+
+ unset groups depends optdepends provides conflicts replaces backup install changelog
+@@ -875,7 +875,7 @@ create_srcpackage() {
+ }
+
+ install_package() {
+- (( ! INSTALL )) && return
++ (( ! INSTALL )) && return 0
+
+ if (( ! SPLITPKG )); then
+ msg "$(gettext "Installing package %s with %s...")" "$pkgname" "$PACMAN -U"
+--
+2.17.0
+
diff --git a/libre/pacman/PKGBUILD b/libre/pacman/PKGBUILD
index 3fd2a3dde..4533617ee 100644
--- a/libre/pacman/PKGBUILD
+++ b/libre/pacman/PKGBUILD
@@ -11,7 +11,7 @@
pkgname=pacman
pkgver=5.1.0
-pkgrel=1
+pkgrel=2
pkgrel+=.parabola1
pkgdesc="A library-based package manager with dependency support"
arch=('x86_64')
@@ -25,6 +25,7 @@ depends=('bash' 'glibc' 'libarchive' 'curl'
depends+=('parabola-keyring' 'archlinuxarm-keyring' 'archlinux32-keyring')
makedepends=('asciidoc')
checkdepends=('python2' 'fakechroot')
+optdpepends=('perl-locale-gettext: translation support in makepkg-template')
provides=('pacman-parabola')
conflicts=('pacman-parabola')
replaces=('pacman-parabola')
@@ -33,6 +34,8 @@ options=('strip' 'debug')
validpgpkeys=('6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD' # Allan McRae <allan@archlinux.org>
'B8151B117037781095514CA7BBDFFC92306B1121') # Andrew Gregory (pacman) <andrew@archlinux.org>
source=(https://sources.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz{,.sig}
+ 0001-makepkg-Clear-ERR-trap-before-trying-to-restore-it.patch
+ 0002-makepkg-Don-t-use-parameterless-return.patch
"${arch[@]/#/pacman.conf.}"
makepkg.conf.in
pacman-keyring.service
@@ -43,10 +46,12 @@ source=(https://sources.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz{,.sig
0001-makepkg-treat-pkgrel-more-similarly-to-pkgver.patch)
sha256sums=('9f5993fc8923530713742f15df284677f297b3eca15ed7a24758c98ac7399bd3'
'SKIP'
- '19853ea9a2138157bbb334eb7f3a9b3098b88e513678b54b7b4f19d2ffd6ecad'
+ '9b2304141582a421e812c76760a74f360a3cbd780472cbb60cf023a34d6fcb3d'
+ '2a31d4db5f6e19e0148d4892de14317514f2b2dfb5369c7972a641ca8be89e5a'
'1b2c8f4ec84d0dc496516880a54b5e4deb78798618c9cf5e284a45303f156e58'
+ '19853ea9a2138157bbb334eb7f3a9b3098b88e513678b54b7b4f19d2ffd6ecad'
'b2cb3ba229edba338c0af7d7f5bb1a6ef6143bcd453c693bfee0c02fa1cfa18a'
- '31565aae027a26bb0e9074aca89a012483dc078e0239dc225c3c15fced526607'
+ 'ecef1e98eaaf207f4f2c3d07cfe13533866e1e774240eb833e8b3bd691ada95f'
'220f1b25a64727041dc6fa3fd486b0a043f735a3f6cecedc4e2f7c47ec6ce66d'
'2a857061f032ff5485f5c75ab74e6f6532621e08963ef48640a792cca16cacd6'
'635ef682073878b6273e3376b00a89a572c4f5f39b118f7b0b4c7497a265a16c'
@@ -56,6 +61,9 @@ sha256sums=('9f5993fc8923530713742f15df284677f297b3eca15ed7a24758c98ac7399bd3'
prepare() {
cd "$pkgname-$pkgver"
+ # Fix install_packages failure exit code, required by makechrootpkg
+ patch -Np1 -i ../0001-makepkg-Clear-ERR-trap-before-trying-to-restore-it.patch
+ patch -Np1 -i ../0002-makepkg-Don-t-use-parameterless-return.patch
# From Arch ARM
if [ "${CARCH}" = "armv7h" ]; then