commit:     f1c864205d96d4c513341ab7b21f48fe3fa19a81
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Aug  3 02:22:15 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Aug  3 02:25:03 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f1c86420

app-arch/libarchive: fix build w/ glibc 2.36

Closes: https://bugs.gentoo.org/863227
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/libarchive-3.6.1-glibc-2.36.patch        | 39 ++++++++++++++++++++++
 app-arch/libarchive/libarchive-3.6.1.ebuild        |  4 +++
 2 files changed, 43 insertions(+)

diff --git a/app-arch/libarchive/files/libarchive-3.6.1-glibc-2.36.patch 
b/app-arch/libarchive/files/libarchive-3.6.1-glibc-2.36.patch
new file mode 100644
index 000000000000..e45d891e2a17
--- /dev/null
+++ b/app-arch/libarchive/files/libarchive-3.6.1-glibc-2.36.patch
@@ -0,0 +1,39 @@
+https://github.com/libarchive/libarchive/pull/1761
+https://bugs.gentoo.org/863227
+
+From a2f68263a1da5ad227bcb9cd8fa91b93c8b6c99f Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+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
+--- 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.
+

diff --git a/app-arch/libarchive/libarchive-3.6.1.ebuild 
b/app-arch/libarchive/libarchive-3.6.1.ebuild
index 41cfc71f5a04..dbe62127a118 100644
--- a/app-arch/libarchive/libarchive-3.6.1.ebuild
+++ b/app-arch/libarchive/libarchive-3.6.1.ebuild
@@ -45,6 +45,10 @@ BDEPEND="
        verify-sig? ( sec-keys/openpgp-keys-libarchive )
 "
 
+PATCHES=(
+       "${FILESDIR}"/${P}-glibc-2.36.patch
+)
+
 multilib_src_configure() {
        export ac_cv_header_ext2fs_ext2_fs_h=$(usex e2fsprogs) #354923
 

Reply via email to