]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
libarchive: Fix build with newer glibc
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Dec 2022 11:55:06 +0000 (11:55 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Dec 2022 11:55:06 +0000 (11:55 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
libarchive/libarchive.nm
libarchive/patches/libarchive-Do-not-include-sys-mount.h-when-linux-fs..patch [new file with mode: 0644]

index 993154f832efb5e7faef4d045e9da1e08285f8d8..337c9afaea2a360a154cfbf0cacfe7619bcbcc7c 100644 (file)
@@ -5,7 +5,7 @@
 
 name       = libarchive
 version    = 3.6.1
-release    = 1
+release    = 2
 
 groups     = System/Libraries
 url        = http://www.libarchive.org/
@@ -44,13 +44,12 @@ build
                --disable-static \
                --disable-bsdtar \
                --disable-bsdcpio \
-               --with-bzip2 \
                --with-expat \
                --with-lzo2 \
                --with-nettle \
+               --with-xz \
                --with-zlib \
-               --with-zstd \
-               --without-lzmadec
+               --with-zstd
 
        test
                LD_LIBRARY_PATH=$(pwd)/src/.libs make check || :
diff --git a/libarchive/patches/libarchive-Do-not-include-sys-mount.h-when-linux-fs..patch b/libarchive/patches/libarchive-Do-not-include-sys-mount.h-when-linux-fs..patch
new file mode 100644 (file)
index 0000000..0ce2d8d
--- /dev/null
@@ -0,0 +1,40 @@
+From a2f68263a1da5ad227bcb9cd8fa91b93c8b6c99f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 25 Jul 2022 10:56:53 -0700
+Subject: [PATCH] libarchive: Do not include sys/mount.h when linux/fs.h is present
+
+These headers are in conflict and only one is needed by
+archive_read_disk_posix.c therefore include linux/fs.h if it exists
+otherwise include sys/mount.h
+
+It also helps compiling with glibc 2.36
+where sys/mount.h conflicts with linux/mount.h see [1]
+
+[1] https://sourceware.org/glibc/wiki/Release/2.36
+---
+ libarchive/archive_read_disk_posix.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/libarchive/archive_read_disk_posix.c b/libarchive/archive_read_disk_posix.c
+index 2b39e672..a96008db 100644
+--- a/libarchive/archive_read_disk_posix.c
++++ b/libarchive/archive_read_disk_posix.c
+@@ -34,9 +34,6 @@ __FBSDID("$FreeBSD$");
+ #ifdef HAVE_SYS_PARAM_H
+ #include <sys/param.h>
+ #endif
+-#ifdef HAVE_SYS_MOUNT_H
+-#include <sys/mount.h>
+-#endif
+ #ifdef HAVE_SYS_STAT_H
+ #include <sys/stat.h>
+ #endif
+@@ -54,6 +51,8 @@ __FBSDID("$FreeBSD$");
+ #endif
+ #ifdef HAVE_LINUX_FS_H
+ #include <linux/fs.h>
++#elif HAVE_SYS_MOUNT_H
++#include <sys/mount.h>
+ #endif
+ /*
+  * Some Linux distributions have both linux/ext2_fs.h and ext2fs/ext2_fs.h.