Date: Tuesday, February 8, 2022 @ 10:58:47
  Author: eworm
Revision: 436466

upgpkg: libarchive 3.5.3-2: fix extracting link, again

The release was from a maintenance branch, missing this fix.

Added:
  libarchive/trunk/0001-unescape-when-extracting-link.patch
Modified:
  libarchive/trunk/PKGBUILD

------------------------------------------+
 0001-unescape-when-extracting-link.patch |   21 +++++++++++++++++++++
 PKGBUILD                                 |   23 ++++++++++++++++-------
 2 files changed, 37 insertions(+), 7 deletions(-)

Added: 0001-unescape-when-extracting-link.patch
===================================================================
--- 0001-unescape-when-extracting-link.patch                            (rev 0)
+++ 0001-unescape-when-extracting-link.patch    2022-02-08 10:58:47 UTC (rev 
436466)
@@ -0,0 +1,21 @@
+commit d6e57967495107d6c85880f8514bed5c6d20e9d6
+Author: Christian Hesse <[email protected]>
+Date:   Mon Dec 20 10:36:50 2021 +0100
+
+    unescape when extracting link
+    
+    The file name is escaped when archiving, so it needs to be unescaped
+    when extracting.
+
+diff --git a/libarchive/archive_read_support_format_mtree.c 
b/libarchive/archive_read_support_format_mtree.c
+index 9c46cfae..88bca76f 100644
+--- a/libarchive/archive_read_support_format_mtree.c
++++ b/libarchive/archive_read_support_format_mtree.c
+@@ -1675,6 +1675,7 @@ parse_keyword(struct archive_read *a, struct mtree 
*mtree,
+               break;
+       case 'l':
+               if (strcmp(key, "link") == 0) {
++                      parse_escapes(val, NULL);
+                       archive_entry_copy_symlink(entry, val);
+                       return (ARCHIVE_OK);
+               }

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2022-02-08 10:42:32 UTC (rev 436465)
+++ PKGBUILD    2022-02-08 10:58:47 UTC (rev 436466)
@@ -3,7 +3,7 @@
 
 pkgname=libarchive
 pkgver=3.5.3
-pkgrel=1
+pkgrel=2
 pkgdesc='Multi-format archive and compression library'
 arch=('x86_64')
 url='https://libarchive.org/'
@@ -12,12 +12,20 @@
 provides=('libarchive.so')
 options=('debug')
 validpgpkeys=('A5A45B12AD92D964B89EEE2DEC560C81CEC2276E') # Martin Matuska 
<[email protected]>
-source=("https://github.com/${pkgname}/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.xz"{,.asc})
+source=("https://github.com/${pkgname}/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.xz"{,.asc}
+        '0001-unescape-when-extracting-link.patch')
 sha256sums=('5cac725dd4be31c4a10b65d30f29dc957ea29ef3d758df6e46e8ae90a996a19a'
-            'SKIP')
+            'SKIP'
+            '5e5c5f080cb58d1d621ab8b39a2c1565b6dad826a18dbb3ac7d88357f95fb359')
 
+prepare() {
+  cd "${pkgname}-${pkgver}"
+
+  patch -Np1 < ../0001-unescape-when-extracting-link.patch
+}
+
 build() {
-  cd $pkgname-$pkgver 
+  cd "${pkgname}-${pkgver}"
 
   ./configure \
       --prefix=/usr \
@@ -24,17 +32,18 @@
       --without-xml2 \
       --without-nettle \
       --disable-static
-
   make
 }
 
 check() {
-  cd $pkgname-$pkgver
+  cd "${pkgname}-${pkgver}"
+
   make check
 }
 
 package() {
-  cd $pkgname-$pkgver
+  cd "${pkgname}-${pkgver}"
+
   make DESTDIR="$pkgdir" install
   install -Dm0644 COPYING "$pkgdir/usr/share/licenses/libarchive/COPYING"
 }

Reply via email to