summaryrefslogtreecommitdiffstats
path: root/archive-libs/libarchive
diff options
context:
space:
mode:
authorPavel Vinogradov2022-08-31 13:23:39 -0400
committerPavel Vinogradov2022-08-31 13:24:37 -0400
commit0236aac1eac5b304190b9d880b3e6fe0895b701e (patch)
treef43f44ba6bcf34b4fd8f932fe4ab6c338338b324 /archive-libs/libarchive
parentf14c66f8172ae236e587fead3f6178bfd93fd87e (diff)
archive-libs/libarchive: added fix to build with glibc 2.36
Diffstat (limited to 'archive-libs/libarchive')
-rw-r--r--archive-libs/libarchive/HISTORY4
-rwxr-xr-xarchive-libs/libarchive/PRE_BUILD4
-rw-r--r--archive-libs/libarchive/patches/0001-libarchive-Do-not-include-sys-mount.h.patch41
3 files changed, 49 insertions, 0 deletions
diff --git a/archive-libs/libarchive/HISTORY b/archive-libs/libarchive/HISTORY
index 03e0a495e6..db90fef40c 100644
--- a/archive-libs/libarchive/HISTORY
+++ b/archive-libs/libarchive/HISTORY
@@ -1,3 +1,7 @@
+2022-08-31 Pavel Vinogradov <public@sourcemage.org>
+ * PRE_BUILD, patches/0001-libarchive-Do-not-include-sys-mount.h.patch:
+ added fix to build with glibc 2.36
+
2022-04-18 Florian Franzmann <bwlf@bandrate.org>
* DETAILS: version 3.6.1, SECURITY_PATCH++, fixes multiple
use-after-free and read-out-of-bounds bugs
diff --git a/archive-libs/libarchive/PRE_BUILD b/archive-libs/libarchive/PRE_BUILD
new file mode 100755
index 0000000000..f80ee7decc
--- /dev/null
+++ b/archive-libs/libarchive/PRE_BUILD
@@ -0,0 +1,4 @@
+default_pre_build &&
+cd "${SOURCE_DIRECTORY}" &&
+
+apply_patch_dir patches
diff --git a/archive-libs/libarchive/patches/0001-libarchive-Do-not-include-sys-mount.h.patch b/archive-libs/libarchive/patches/0001-libarchive-Do-not-include-sys-mount.h.patch
new file mode 100644
index 0000000000..7c88ca1b1c
--- /dev/null
+++ b/archive-libs/libarchive/patches/0001-libarchive-Do-not-include-sys-mount.h.patch
@@ -0,0 +1,41 @@
+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 2b39e672b..a96008db7 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.