diff options
Diffstat (limited to 'app-arch/libarchive')
-rw-r--r-- | app-arch/libarchive/files/libressl.patch | 25 | ||||
-rw-r--r-- | app-arch/libarchive/libarchive-3.3.2-r1.ebuild | 125 | ||||
-rw-r--r-- | app-arch/libarchive/metadata.xml | 36 |
3 files changed, 186 insertions, 0 deletions
diff --git a/app-arch/libarchive/files/libressl.patch b/app-arch/libarchive/files/libressl.patch new file mode 100644 index 0000000..277f69b --- /dev/null +++ b/app-arch/libarchive/files/libressl.patch @@ -0,0 +1,25 @@ +diff -Naur libarchive-3.3.2/libarchive/archive_openssl_hmac_private.h libarchive-3.3.2_patched/libarchive/archive_openssl_hmac_private.h +--- libarchive-3.3.2/libarchive/archive_openssl_hmac_private.h 2017-05-08 03:38:09.000000000 +0300 ++++ libarchive-3.3.2_patched/libarchive/archive_openssl_hmac_private.h 2018-03-19 16:26:58.769729201 +0300 +@@ -28,21 +28,4 @@ + #include <openssl/hmac.h> + #include <openssl/opensslv.h> + +-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) +-#include <stdlib.h> /* malloc, free */ +-#include <string.h> /* memset */ +-static inline HMAC_CTX *HMAC_CTX_new(void) +-{ +- HMAC_CTX *ctx = (HMAC_CTX *)calloc(1, sizeof(HMAC_CTX)); +- return ctx; +-} +- +-static inline void HMAC_CTX_free(HMAC_CTX *ctx) +-{ +- HMAC_CTX_cleanup(ctx); +- memset(ctx, 0, sizeof(*ctx)); +- free(ctx); +-} +-#endif +- + #endif diff --git a/app-arch/libarchive/libarchive-3.3.2-r1.ebuild b/app-arch/libarchive/libarchive-3.3.2-r1.ebuild new file mode 100644 index 0000000..2f242c8 --- /dev/null +++ b/app-arch/libarchive/libarchive-3.3.2-r1.ebuild @@ -0,0 +1,125 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit eutils libtool multilib-minimal toolchain-funcs + +DESCRIPTION="BSD tar command" +HOMEPAGE="http://www.libarchive.org/" +SRC_URI="http://www.libarchive.org/downloads/${P}.tar.gz" + +LICENSE="BSD BSD-2 BSD-4 public-domain" +SLOT="0/13" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="acl +bzip2 +e2fsprogs expat +iconv kernel_linux libressl lz4 +lzma lzo nettle static-libs +threads xattr +zlib" + +RDEPEND=" + acl? ( virtual/acl[${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}] ) + ) + !libressl? ( dev-libs/openssl:0=[${MULTILIB_USEDEP}] ) + libressl? ( =dev-libs/libressl-scm:0=[${MULTILIB_USEDEP}] ) + lz4? ( >=app-arch/lz4-0_p131:0=[${MULTILIB_USEDEP}] ) + lzma? ( app-arch/xz-utils[threads=,${MULTILIB_USEDEP}] ) + lzo? ( >=dev-libs/lzo-2[${MULTILIB_USEDEP}] ) + nettle? ( dev-libs/nettle:0=[${MULTILIB_USEDEP}] ) + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND} + kernel_linux? ( + virtual/os-headers + e2fsprogs? ( sys-fs/e2fsprogs ) + )" + +# Various test problems, starting with the fact that sandbox +# explodes on long paths. https://bugs.gentoo.org/598806 +RESTRICT="test" + +src_prepare() { + default + use libressl && eapply "${FILESDIR}/libressl.patch" + elibtoolize # is required for Solaris sol2_ld linker fix +} + +multilib_src_configure() { + export ac_cv_header_ext2fs_ext2_fs_h=$(usex e2fsprogs) #354923 + + local myconf=() + myconf=( + $(use_enable acl) + $(use_enable static-libs static) + $(use_enable xattr) + $(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) + $(use_with zlib) + ) + 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) + ) + else + myconf+=( + --disable-bsdcat + --disable-bsdcpio + --disable-bsdtar + ) + fi + + ECONF_SOURCE="${S}" econf "${myconf[@]}" +} + +multilib_src_compile() { + if multilib_is_native_abi ; then + emake + else + emake libarchive.la + fi +} + +multilib_src_test() { + # Replace the default src_test so that it builds tests in parallel + multilib_is_native_abi && 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 + install-libLTLIBRARIES + install-pkgconfigDATA + ) + emake DESTDIR="${D}" "${install_targets[@]}" + fi + + # Libs.private: should be used from libarchive.pc instead + prune_libtool_files +} + +multilib_src_install_all() { + cd "${S}" || die + einstalldocs +} diff --git a/app-arch/libarchive/metadata.xml b/app-arch/libarchive/metadata.xml new file mode 100644 index 0000000..126e3e2 --- /dev/null +++ b/app-arch/libarchive/metadata.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>bsd@gentoo.org</email> + <name>BSD Project</name> + </maintainer> + <longdescription lang="en"> + The bsdtar program creates and manipulates streaming archive files. + It has a number of advantages over previous tar implementations. + </longdescription> + <use> + <flag name="bzip2"> + Allow accessing bzip2-compressed archives through libbz2 (which + comes with <pkg>app-arch/bzip2</pkg>). This only affects + libarchive's native support: bsdtar will keep using bunzip2 as a + filter if that's not built-in. + </flag> + <flag name="e2fsprogs"> + Use file flags from <pkg>sys-fs/e2fsprogs</pkg> headers instead of <pkg>virtual/os-headers</pkg> headers + </flag> + <flag name="lz4"> + Enable support for LZ4 compression using <pkg>app-arch/lz4</pkg> + </flag> + <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> +</pkgmetadata> |