diff options
Diffstat (limited to 'app-arch/libarchive')
-rw-r--r-- | app-arch/libarchive/Manifest | 5 | ||||
-rw-r--r-- | app-arch/libarchive/files/libarchive-3.5.0-darwin-strnlen.patch | 27 | ||||
-rw-r--r-- | app-arch/libarchive/files/libarchive-3.7.2-lrzip.patch | 26 | ||||
-rw-r--r-- | app-arch/libarchive/libarchive-3.7.3.ebuild (renamed from app-arch/libarchive/libarchive-3.5.2.ebuild) | 96 | ||||
-rw-r--r-- | app-arch/libarchive/libarchive-3.7.4.ebuild | 176 | ||||
-rw-r--r-- | app-arch/libarchive/metadata.xml | 7 |
6 files changed, 274 insertions, 63 deletions
diff --git a/app-arch/libarchive/Manifest b/app-arch/libarchive/Manifest index 3a03eb163b0c..aa151c417a12 100644 --- a/app-arch/libarchive/Manifest +++ b/app-arch/libarchive/Manifest @@ -1 +1,4 @@ -DIST libarchive-3.5.2.tar.gz 7054934 BLAKE2B 1fc6ee0166573658dc5e0f170113c07ecdaa76b287cbf68bdee63ccd198dad615b3f2803a3fc1aed303cd1f7f32033e6d8e782ef6a8a991562cdc2a375894c9e SHA512 2003ec9b24086373451bd7317bdab86d81627f087c14a6f7df1a92e131a216749f9aa352504c3d04dc82b62078b59aeea5aad5543b7e6c1c21fcafa2955d3762 +DIST libarchive-3.7.3.tar.xz 5428992 BLAKE2B c53672c8cdbe8f406f00bf4fc6b36e4dffcd23a33909dbec6ef06b86dceefc6062840eff629ba3bd19c36121720e16a8ba10dfa1a35ebed186cc92eb144f55d0 SHA512 984e7c61010b9555bafe54d5f52ff2d089e28afe5cea3a14615e2aca8539075293789d18f17f8915882ec328bcbdca7b3d1536d6dc19620ca226e8b6d802ef63 +DIST libarchive-3.7.3.tar.xz.asc 659 BLAKE2B bfe18e36ef2e96ad46ab2cd1236701b4b80f41ebb840681c1baf7eac72f38444cc0619645fac17d3acdda6553b294483d87f0a92d9575138d117934e838d85d2 SHA512 9f340b41fc9db34f1c4e0823d559b666196d3031249e05981cfb43a401aa8a85710f14ba1cc784ab3ca367439e4c485668dffe7020f38f50b3ed35810df504a1 +DIST libarchive-3.7.4.tar.xz 5417660 BLAKE2B 128f72235da61e112201046c0cfe62a8c580cf73b426c4cfe270ae913356f6ad430ba33a663dcd617b082c7baf45ada8d1c9928c45fea16fd57e8020693a60bc SHA512 84bc346ba15861ab10aa54a3d687de955178e4efbe12bf3a49a467181e7f819673949f131f4c8338de8ed6e319a8565af376e5a540380bda08e60dffbc7c8686 +DIST libarchive-3.7.4.tar.xz.asc 659 BLAKE2B 77e705194f6e9a9f97da0ac43c9b3157e1a8a490d26da34079e4ef3f2bcf98d6f6e95567e110287fab0ec26d3fc27e5bbeff7569c9ca138de2caf47af737c6d0 SHA512 82caa18a78661ea717ce93cdcb0806eed48450c20fb4d45cb4c33001f2d4d0fb5a791552acbb24ad8c41772e1d0b66c76c9cb86946bc862109721a0c986f5331 diff --git a/app-arch/libarchive/files/libarchive-3.5.0-darwin-strnlen.patch b/app-arch/libarchive/files/libarchive-3.5.0-darwin-strnlen.patch deleted file mode 100644 index 8f540e4aa07b..000000000000 --- a/app-arch/libarchive/files/libarchive-3.5.0-darwin-strnlen.patch +++ /dev/null @@ -1,27 +0,0 @@ -https://github.com/macports/macports-ports/blob/master/archivers/libarchive/files/patch-libarchive-3.5-strnlen.diff - -next release should have a fix for this - ---- a/libarchive/archive_read_support_format_mtree.c -+++ b/libarchive/archive_read_support_format_mtree.c -@@ -65,6 +65,20 @@ __FBSDID("$FreeBSD: head/lib/libarchive/archive_read_support_format_mtree.c 2011 - #define O_CLOEXEC 0 - #endif - -+#ifdef __APPLE__ -+#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070 -+static size_t strnlen(const char *s, size_t maxlen) { -+ size_t l = 0; -+ while (l < maxlen && *s) { -+ l++; -+ s++; -+ } -+ return l; -+} -+#endif -+#endif -+ -+ - #define MTREE_HAS_DEVICE 0x0001 - #define MTREE_HAS_FFLAGS 0x0002 - #define MTREE_HAS_GID 0x0004 diff --git a/app-arch/libarchive/files/libarchive-3.7.2-lrzip.patch b/app-arch/libarchive/files/libarchive-3.7.2-lrzip.patch new file mode 100644 index 000000000000..f05b46c1a340 --- /dev/null +++ b/app-arch/libarchive/files/libarchive-3.7.2-lrzip.patch @@ -0,0 +1,26 @@ +diff --git a/libarchive/archive_read_support_filter_lrzip.c b/libarchive/archive_read_support_filter_lrzip.c +index a562d538..f3ec40c4 100644 +--- a/libarchive/archive_read_support_filter_lrzip.c ++++ b/libarchive/archive_read_support_filter_lrzip.c +@@ -109,7 +109,7 @@ lrzip_bidder_init(struct archive_read_filter *self) + { + int r; + +- r = __archive_read_program(self, "lrzip -d -q"); ++ r = __archive_read_program(self, "lrzip -d -Q"); + /* Note: We set the format here even if __archive_read_program() + * above fails. We do, after all, know what the format is + * even if we weren't able to read it. */ +diff --git a/libarchive/archive_write_add_filter_lrzip.c b/libarchive/archive_write_add_filter_lrzip.c +index fe974c93..8fe498dd 100644 +--- a/libarchive/archive_write_add_filter_lrzip.c ++++ b/libarchive/archive_write_add_filter_lrzip.c +@@ -133,7 +133,7 @@ archive_write_lrzip_open(struct archive_write_filter *f) + int r; + + archive_string_init(&as); +- archive_strcpy(&as, "lrzip -q"); ++ archive_strcpy(&as, "lrzip -Q"); + + /* Specify compression type. */ + switch (data->compression) { diff --git a/app-arch/libarchive/libarchive-3.5.2.ebuild b/app-arch/libarchive/libarchive-3.7.3.ebuild index 4693ba4bc318..7c609d3a3f58 100644 --- a/app-arch/libarchive/libarchive-3.5.2.ebuild +++ b/app-arch/libarchive/libarchive-3.7.3.ebuild @@ -1,19 +1,30 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 -inherit libtool multilib-minimal toolchain-funcs +EAPI=8 +inherit libtool multilib-minimal toolchain-funcs verify-sig DESCRIPTION="Multi-format archive and compression library" -HOMEPAGE="https://www.libarchive.org/" -SRC_URI="https://www.libarchive.org/downloads/${P}.tar.gz" +HOMEPAGE=" + https://www.libarchive.org/ + https://github.com/libarchive/libarchive/ +" +SRC_URI=" + https://www.libarchive.de/downloads/${P}.tar.xz + verify-sig? ( https://www.libarchive.de/downloads/${P}.tar.xz.asc ) +" LICENSE="BSD BSD-2 BSD-4 public-domain" SLOT="0/13" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" -IUSE="acl blake2 +bzip2 +e2fsprogs expat +iconv kernel_linux lz4 +lzma lzo nettle static-libs xattr +zlib zstd" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE=" + acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle + static-libs test xattr +zstd +" +RESTRICT="!test? ( test )" RDEPEND=" + sys-libs/zlib[${MULTILIB_USEDEP}] acl? ( virtual/acl[${MULTILIB_USEDEP}] ) blake2? ( app-crypt/libb2[${MULTILIB_USEDEP}] ) bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] ) @@ -28,21 +39,48 @@ RDEPEND=" lzma? ( >=app-arch/xz-utils-5.2.5-r1[${MULTILIB_USEDEP}] ) lzo? ( >=dev-libs/lzo-2[${MULTILIB_USEDEP}] ) nettle? ( dev-libs/nettle:0=[${MULTILIB_USEDEP}] ) - zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) - zstd? ( app-arch/zstd[${MULTILIB_USEDEP}] )" + zstd? ( app-arch/zstd[${MULTILIB_USEDEP}] ) +" DEPEND="${RDEPEND} kernel_linux? ( virtual/os-headers - e2fsprogs? ( sys-fs/e2fsprogs ) - )" + e2fsprogs? ( sys-fs/e2fsprogs[${MULTILIB_USEDEP}] ) + ) + test? ( + app-arch/lrzip + app-arch/lz4 + app-arch/lzip + app-arch/lzop + app-arch/xz-utils + app-arch/zstd + lzma? ( app-arch/xz-utils[extra-filters(+)] ) + ) +" +BDEPEND=" + verify-sig? ( >=sec-keys/openpgp-keys-libarchive-20221209 ) + elibc_musl? ( sys-libs/queue-standalone ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libarchive.org.asc + +# false positives (checks for libc-defined hash functions) +QA_CONFIG_IMPL_DECL_SKIP=( + SHA256_Init SHA256_Update SHA256_Final + SHA384_Init SHA384_Update SHA384_Final + SHA512_Init SHA512_Update SHA512_Final +) PATCHES=( - "${FILESDIR}"/${PN}-3.5.0-darwin-strnlen.patch # drop on next release + # https://github.com/libarchive/libarchive/issues/2069 + # (we can simply update the command since we don't support old lrzip) + "${FILESDIR}/${PN}-3.7.2-lrzip.patch" ) src_prepare() { default - elibtoolize # is required for Solaris sol2_ld linker fix + + # Needed for flags to be respected w/ LTO + elibtoolize } multilib_src_configure() { @@ -61,7 +99,7 @@ multilib_src_configure() { $(use_with lzma) $(use_with lzo lzo2) $(use_with nettle) - $(use_with zlib) + --with-zlib $(use_with zstd) # Windows-specific @@ -69,15 +107,17 @@ multilib_src_configure() { ) if multilib_is_native_abi ; then myconf+=( - --enable-bsdcat=$(tc-is-static-only && echo static || echo shared) - --enable-bsdcpio=$(tc-is-static-only && echo static || echo shared) - --enable-bsdtar=$(tc-is-static-only && echo static || echo shared) + --enable-bsdcat="$(tc-is-static-only && echo static || echo shared)" + --enable-bsdcpio="$(tc-is-static-only && echo static || echo shared)" + --enable-bsdtar="$(tc-is-static-only && echo static || echo shared)" + --enable-bsdunzip="$(tc-is-static-only && echo static || echo shared)" ) else myconf+=( --disable-bsdcat --disable-bsdcpio --disable-bsdtar + --disable-bsdunzip ) fi @@ -96,6 +136,13 @@ src_test() { mkdir -p "${T}"/bin || die # tests fail when lbzip2[symlink] is used in place of ref bunzip2 ln -s "${BROOT}/bin/bunzip2" "${T}"/bin || die + # workaround lrzip broken on 32-bit arches with >= 10 threads + # https://bugs.gentoo.org/927766 + cat > "${T}"/bin/lrzip <<-EOF || die + #!/bin/sh + exec "$(type -P lrzip)" -p1 "\${@}" + EOF + chmod +x "${T}/bin/lrzip" || die local -x PATH=${T}/bin:${PATH} multilib-minimal_src_test } @@ -105,23 +152,13 @@ multilib_src_test() { local -x SANDBOX_ON=0 local -x LD_PRELOAD= # some locales trigger different output that breaks tests - local -x LC_ALL=C + local -x LC_ALL=C.UTF-8 emake check } multilib_src_install() { if multilib_is_native_abi ; then emake DESTDIR="${D}" install - - # Create symlinks for FreeBSD - if ! use prefix && [[ ${CHOST} == *-freebsd* ]]; then - # Exclude cat for the time being #589876 - for bin in cpio tar; do - dosym bsd${bin} /usr/bin/${bin} - echo '.so bsd${bin}.1' > "${T}"/${bin}.1 - doman "${T}"/${bin}.1 - done - fi else local install_targets=( install-includeHEADERS @@ -133,4 +170,7 @@ multilib_src_install() { # Libs.private: should be used from libarchive.pc instead find "${ED}" -type f -name "*.la" -delete || die + # https://github.com/libarchive/libarchive/issues/1766 + sed -e '/Requires\.private/s:iconv::' \ + -i "${ED}/usr/$(get_libdir)/pkgconfig/libarchive.pc" || die } diff --git a/app-arch/libarchive/libarchive-3.7.4.ebuild b/app-arch/libarchive/libarchive-3.7.4.ebuild new file mode 100644 index 000000000000..4e1429fdc70c --- /dev/null +++ b/app-arch/libarchive/libarchive-3.7.4.ebuild @@ -0,0 +1,176 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit libtool multilib-minimal toolchain-funcs verify-sig + +DESCRIPTION="Multi-format archive and compression library" +HOMEPAGE=" + https://www.libarchive.org/ + https://github.com/libarchive/libarchive/ +" +SRC_URI=" + https://www.libarchive.de/downloads/${P}.tar.xz + verify-sig? ( https://www.libarchive.de/downloads/${P}.tar.xz.asc ) +" + +LICENSE="BSD BSD-2 BSD-4 public-domain" +SLOT="0/13" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE=" + acl blake2 +bzip2 +e2fsprogs expat +iconv lz4 +lzma lzo nettle + static-libs test xattr +zstd +" +RESTRICT="!test? ( test )" + +RDEPEND=" + sys-libs/zlib[${MULTILIB_USEDEP}] + acl? ( virtual/acl[${MULTILIB_USEDEP}] ) + blake2? ( app-crypt/libb2[${MULTILIB_USEDEP}] ) + bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] ) + expat? ( dev-libs/expat[${MULTILIB_USEDEP}] ) + !expat? ( dev-libs/libxml2[${MULTILIB_USEDEP}] ) + iconv? ( virtual/libiconv[${MULTILIB_USEDEP}] ) + kernel_linux? ( + xattr? ( sys-apps/attr[${MULTILIB_USEDEP}] ) + ) + dev-libs/openssl:0=[${MULTILIB_USEDEP}] + lz4? ( >=app-arch/lz4-0_p131:0=[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.2.5-r1[${MULTILIB_USEDEP}] ) + lzo? ( >=dev-libs/lzo-2[${MULTILIB_USEDEP}] ) + nettle? ( dev-libs/nettle:0=[${MULTILIB_USEDEP}] ) + zstd? ( app-arch/zstd[${MULTILIB_USEDEP}] ) +" +DEPEND="${RDEPEND} + kernel_linux? ( + virtual/os-headers + e2fsprogs? ( sys-fs/e2fsprogs[${MULTILIB_USEDEP}] ) + ) + test? ( + app-arch/lrzip + app-arch/lz4 + app-arch/lzip + app-arch/lzop + app-arch/xz-utils + app-arch/zstd + lzma? ( app-arch/xz-utils[extra-filters(+)] ) + ) +" +BDEPEND=" + verify-sig? ( >=sec-keys/openpgp-keys-libarchive-20221209 ) + elibc_musl? ( sys-libs/queue-standalone ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libarchive.org.asc + +# false positives (checks for libc-defined hash functions) +QA_CONFIG_IMPL_DECL_SKIP=( + SHA256_Init SHA256_Update SHA256_Final + SHA384_Init SHA384_Update SHA384_Final + SHA512_Init SHA512_Update SHA512_Final +) + +PATCHES=( + # https://github.com/libarchive/libarchive/issues/2069 + # (we can simply update the command since we don't support old lrzip) + "${FILESDIR}/${PN}-3.7.2-lrzip.patch" +) + +src_prepare() { + default + + # Needed for flags to be respected w/ LTO + elibtoolize +} + +multilib_src_configure() { + export ac_cv_header_ext2fs_ext2_fs_h=$(usex e2fsprogs) #354923 + + local myconf=( + $(use_enable acl) + $(use_enable static-libs static) + $(use_enable xattr) + $(use_with blake2 libb2) + $(use_with bzip2 bz2lib) + $(use_with expat) + $(use_with !expat xml2) + $(use_with iconv) + $(use_with lz4) + $(use_with lzma) + $(use_with lzo lzo2) + $(use_with nettle) + --with-zlib + $(use_with zstd) + + # Windows-specific + --without-cng + ) + if multilib_is_native_abi ; then + myconf+=( + --enable-bsdcat="$(tc-is-static-only && echo static || echo shared)" + --enable-bsdcpio="$(tc-is-static-only && echo static || echo shared)" + --enable-bsdtar="$(tc-is-static-only && echo static || echo shared)" + --enable-bsdunzip="$(tc-is-static-only && echo static || echo shared)" + ) + else + myconf+=( + --disable-bsdcat + --disable-bsdcpio + --disable-bsdtar + --disable-bsdunzip + ) + fi + + ECONF_SOURCE="${S}" econf "${myconf[@]}" +} + +multilib_src_compile() { + if multilib_is_native_abi ; then + emake + else + emake libarchive.la + fi +} + +src_test() { + mkdir -p "${T}"/bin || die + # tests fail when lbzip2[symlink] is used in place of ref bunzip2 + ln -s "${BROOT}/bin/bunzip2" "${T}"/bin || die + # workaround lrzip broken on 32-bit arches with >= 10 threads + # https://bugs.gentoo.org/927766 + cat > "${T}"/bin/lrzip <<-EOF || die + #!/bin/sh + exec "$(type -P lrzip)" -p1 "\${@}" + EOF + chmod +x "${T}/bin/lrzip" || die + local -x PATH=${T}/bin:${PATH} + multilib-minimal_src_test +} + +multilib_src_test() { + # sandbox is breaking long symlink behavior + local -x SANDBOX_ON=0 + local -x LD_PRELOAD= + # some locales trigger different output that breaks tests + local -x LC_ALL=C.UTF-8 + emake check +} + +multilib_src_install() { + if multilib_is_native_abi ; then + emake DESTDIR="${D}" install + else + local install_targets=( + install-includeHEADERS + install-libLTLIBRARIES + install-pkgconfigDATA + ) + emake DESTDIR="${D}" "${install_targets[@]}" + fi + + # Libs.private: should be used from libarchive.pc instead + find "${ED}" -type f -name "*.la" -delete || die + # https://github.com/libarchive/libarchive/issues/1766 + sed -e '/Requires\.private/s:iconv::' \ + -i "${ED}/usr/$(get_libdir)/pkgconfig/libarchive.pc" || die +} diff --git a/app-arch/libarchive/metadata.xml b/app-arch/libarchive/metadata.xml index d3de9d873aa0..a8ad4ecadcd9 100644 --- a/app-arch/libarchive/metadata.xml +++ b/app-arch/libarchive/metadata.xml @@ -24,13 +24,6 @@ <flag name="nettle"> Use <pkg>dev-libs/nettle</pkg> as crypto backend </flag> - <flag name="zlib"> - Allow accessing gzip-compressed archives through - <pkg>sys-libs/zlib</pkg>. This only affects libarchive's native - support: bsdtar will keep using gunzip as a filter if that's not - built-in. It's also needed for supporting extraction of ZIP - files. - </flag> </use> <upstream> <remote-id type="cpe">cpe:/a:libarchive:libarchive</remote-id> |