From 407e682a374789c4dc7cb41719224fb1a73fee40 Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Mon, 26 Oct 2020 14:15:12 +0100 Subject: [PATCH] app-arch: Import from Gentoo An updated systemd will need it. --- .../portage-stable/app-arch/zstd/Manifest | 2 + .../zstd/files/zstd-1.4.4-make43.patch | 60 +++++ .../files/zstd-1.4.4-pkgconfig_libdir.patch | 215 ++++++++++++++++++ .../zstd/files/zstd-1.4.5-fix-uclibc-ng.patch | 28 +++ .../portage-stable/app-arch/zstd/metadata.xml | 11 + .../app-arch/zstd/zstd-1.4.4-r4.ebuild | 75 ++++++ .../app-arch/zstd/zstd-1.4.5.ebuild | 73 ++++++ 7 files changed, 464 insertions(+) create mode 100644 sdk_container/src/third_party/portage-stable/app-arch/zstd/Manifest create mode 100644 sdk_container/src/third_party/portage-stable/app-arch/zstd/files/zstd-1.4.4-make43.patch create mode 100644 sdk_container/src/third_party/portage-stable/app-arch/zstd/files/zstd-1.4.4-pkgconfig_libdir.patch create mode 100644 sdk_container/src/third_party/portage-stable/app-arch/zstd/files/zstd-1.4.5-fix-uclibc-ng.patch create mode 100644 sdk_container/src/third_party/portage-stable/app-arch/zstd/metadata.xml create mode 100644 sdk_container/src/third_party/portage-stable/app-arch/zstd/zstd-1.4.4-r4.ebuild create mode 100644 sdk_container/src/third_party/portage-stable/app-arch/zstd/zstd-1.4.5.ebuild diff --git a/sdk_container/src/third_party/portage-stable/app-arch/zstd/Manifest b/sdk_container/src/third_party/portage-stable/app-arch/zstd/Manifest new file mode 100644 index 0000000000..2619752ef2 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/zstd/Manifest @@ -0,0 +1,2 @@ +DIST zstd-1.4.4.tar.gz 1962617 BLAKE2B e21841a53b6c60703e5500cfc2a02923c4c3e57975aa57e1060310171e0d83d7c8eda1bd0510d5736db5c310d76847d2105ac5f614867fc3a9dc3086a035dfd7 SHA512 8209837e8eb14e474dfe21d5511085f46cef93b03ab77613fd41e7b8be652418231c38852669c8e0b55b78ad41ea2cb8008d0da122a83f8f27e32b5c86f045cf +DIST zstd-1.4.5.tar.gz 1987927 BLAKE2B 1497d4e87040e5c71466468ebf1a57f4073666f2b005229925bc1d95a4b4fcb2a51d88bb79be20f21860e5750da42f8aac21d2997421d07ba37bd6bb12a28b55 SHA512 b03c497c3e0590c3d384cb856e3024f144b2bfac0d805d80e68deafa612c68237f12a2d657416d476a28059e80936c79f099fc42331464b417593895ea214387 diff --git a/sdk_container/src/third_party/portage-stable/app-arch/zstd/files/zstd-1.4.4-make43.patch b/sdk_container/src/third_party/portage-stable/app-arch/zstd/files/zstd-1.4.4-make43.patch new file mode 100644 index 0000000000..679e0b791e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/zstd/files/zstd-1.4.4-make43.patch @@ -0,0 +1,60 @@ +From 06a57cf57e3c4e887cadcf688e3081154f3f6db4 Mon Sep 17 00:00:00 2001 +From: Bimba Shrestha +Date: Thu, 6 Feb 2020 14:10:51 -0800 +Subject: [PATCH] [build-issue] More portable header prefix usage (#) (#1987) + +* make 4.3 build issue fix + +* Changing header name and adding comment +--- + programs/Makefile | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/programs/Makefile b/programs/Makefile +index b75314a8..a9ee3cb5 100644 +--- a/programs/Makefile ++++ b/programs/Makefile +@@ -94,9 +94,12 @@ endif + + VOID = /dev/null + ++# Make 4.3 doesn't support '\#' anymore (https://lwn.net/Articles/810071/) ++NUM_SYMBOL := \# ++ + # thread detection + NO_THREAD_MSG := ==> no threads, building without multithreading support +-HAVE_PTHREAD := $(shell printf '\#include \nint main(void) { return 0; }' > have_pthread.c && $(CC) $(FLAGS) -o have_pthread$(EXT) have_pthread.c -pthread 2> $(VOID) && rm have_pthread$(EXT) && echo 1 || echo 0; rm have_pthread.c) ++HAVE_PTHREAD := $(shell printf '$(NUM_SYMBOL)include \nint main(void) { return 0; }' > have_pthread.c && $(CC) $(FLAGS) -o have_pthread$(EXT) have_pthread.c -pthread 2> $(VOID) && rm have_pthread$(EXT) && echo 1 || echo 0; rm have_pthread.c) + HAVE_THREAD := $(shell [ "$(HAVE_PTHREAD)" -eq "1" -o -n "$(filter Windows%,$(OS))" ] && echo 1 || echo 0) + ifeq ($(HAVE_THREAD), 1) + THREAD_MSG := ==> building with threading support +@@ -108,7 +111,7 @@ endif + + # zlib detection + NO_ZLIB_MSG := ==> no zlib, building zstd without .gz support +-HAVE_ZLIB := $(shell printf '\#include \nint main(void) { return 0; }' > have_zlib.c && $(CC) $(FLAGS) -o have_zlib$(EXT) have_zlib.c -lz 2> $(VOID) && rm have_zlib$(EXT) && echo 1 || echo 0; rm have_zlib.c) ++HAVE_ZLIB := $(shell printf '$(NUM_SYMBOL)include \nint main(void) { return 0; }' > have_zlib.c && $(CC) $(FLAGS) -o have_zlib$(EXT) have_zlib.c -lz 2> $(VOID) && rm have_zlib$(EXT) && echo 1 || echo 0; rm have_zlib.c) + ifeq ($(HAVE_ZLIB), 1) + ZLIB_MSG := ==> building zstd with .gz compression support + ZLIBCPP = -DZSTD_GZCOMPRESS -DZSTD_GZDECOMPRESS +@@ -119,7 +122,7 @@ endif + + # lzma detection + NO_LZMA_MSG := ==> no liblzma, building zstd without .xz/.lzma support +-HAVE_LZMA := $(shell printf '\#include \nint main(void) { return 0; }' > have_lzma.c && $(CC) $(FLAGS) -o have_lzma$(EXT) have_lzma.c -llzma 2> $(VOID) && rm have_lzma$(EXT) && echo 1 || echo 0; rm have_lzma.c) ++HAVE_LZMA := $(shell printf '$(NUM_SYMBOL)include \nint main(void) { return 0; }' > have_lzma.c && $(CC) $(FLAGS) -o have_lzma$(EXT) have_lzma.c -llzma 2> $(VOID) && rm have_lzma$(EXT) && echo 1 || echo 0; rm have_lzma.c) + ifeq ($(HAVE_LZMA), 1) + LZMA_MSG := ==> building zstd with .xz/.lzma compression support + LZMACPP = -DZSTD_LZMACOMPRESS -DZSTD_LZMADECOMPRESS +@@ -130,7 +133,7 @@ endif + + # lz4 detection + NO_LZ4_MSG := ==> no liblz4, building zstd without .lz4 support +-HAVE_LZ4 := $(shell printf '\#include \n\#include \nint main(void) { return 0; }' > have_lz4.c && $(CC) $(FLAGS) -o have_lz4$(EXT) have_lz4.c -llz4 2> $(VOID) && rm have_lz4$(EXT) && echo 1 || echo 0; rm have_lz4.c) ++HAVE_LZ4 := $(shell printf '$(NUM_SYMBOL)include \n\#include \nint main(void) { return 0; }' > have_lz4.c && $(CC) $(FLAGS) -o have_lz4$(EXT) have_lz4.c -llz4 2> $(VOID) && rm have_lz4$(EXT) && echo 1 || echo 0; rm have_lz4.c) + ifeq ($(HAVE_LZ4), 1) + LZ4_MSG := ==> building zstd with .lz4 compression support + LZ4CPP = -DZSTD_LZ4COMPRESS -DZSTD_LZ4DECOMPRESS +-- +2.24.1 + diff --git a/sdk_container/src/third_party/portage-stable/app-arch/zstd/files/zstd-1.4.4-pkgconfig_libdir.patch b/sdk_container/src/third_party/portage-stable/app-arch/zstd/files/zstd-1.4.4-pkgconfig_libdir.patch new file mode 100644 index 0000000000..e8d745a56a --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/zstd/files/zstd-1.4.4-pkgconfig_libdir.patch @@ -0,0 +1,215 @@ +From e668c9b52896e1cf92c99da3b01e3bdbbae77100 Mon Sep 17 00:00:00 2001 +From: "W. Felix Handte" +Date: Tue, 18 Feb 2020 10:50:38 -0500 +Subject: [PATCH 1/3] Fix pkg-config File Generation Again + +Revises #1851. Fixes #1900. Replaces #1930. + +Thanks to @orbea, @neheb, @Polynomial-C, and particularly @eli-schwartz for +pointing out the problem and suggesting solutions. + +Tested with + + ``` + make -C lib clean libzstd.pc + cat lib/libzstd.pc + + # should fail + make -C lib clean libzstd.pc LIBDIR=/foo + make -C lib clean libzstd.pc INCLUDEDIR=/foo + make -C lib clean libzstd.pc LIBDIR=/usr/localfoo + make -C lib clean libzstd.pc INCLUDEDIR=/usr/localfoo + make -C lib clean libzstd.pc LIBDIR=/usr/local/lib prefix=/foo + make -C lib clean libzstd.pc INCLUDEDIR=/usr/local/include prefix=/foo + + # should succeed + make -C lib clean libzstd.pc LIBDIR=/usr/local/foo + make -C lib clean libzstd.pc INCLUDEDIR=/usr/local/foo + make -C lib clean libzstd.pc LIBDIR=/usr/local/ + make -C lib clean libzstd.pc INCLUDEDIR=/usr/local/ + make -C lib clean libzstd.pc LIBDIR=/usr/local + make -C lib clean libzstd.pc INCLUDEDIR=/usr/local + make -C lib clean libzstd.pc LIBDIR=/tmp/foo prefix=/tmp + make -C lib clean libzstd.pc INCLUDEDIR=/tmp/foo prefix=/tmp + make -C lib clean libzstd.pc LIBDIR=/tmp/foo prefix=/tmp/foo + make -C lib clean libzstd.pc INCLUDEDIR=/tmp/foo prefix=/tmp/foo + + # should also succeed + make -C lib clean libzstd.pc prefix=/foo LIBDIR=/foo/bar INCLUDEDIR=/foo/ + cat lib/libzstd.pc + + mkdir out + cd out + cmake ../build/cmake + make + cat lib/libzstd.pc + ``` +--- + build/cmake/lib/CMakeLists.txt | 5 +++-- + lib/Makefile | 14 ++++++++++++-- + lib/libzstd.pc.in | 4 ++-- + 3 files changed, 17 insertions(+), 6 deletions(-) + +diff --git a/build/cmake/lib/CMakeLists.txt b/build/cmake/lib/CMakeLists.txt +index e92647bf1..29ff57aa0 100644 +--- a/build/cmake/lib/CMakeLists.txt ++++ b/build/cmake/lib/CMakeLists.txt +@@ -134,11 +134,12 @@ endif () + if (UNIX) + # pkg-config + set(PREFIX "${CMAKE_INSTALL_PREFIX}") +- set(LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}") ++ set(LIBDIR "${CMAKE_INSTALL_LIBDIR}") ++ set(INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}") + set(VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}") + add_custom_target(libzstd.pc ALL + ${CMAKE_COMMAND} -DIN="${LIBRARY_DIR}/libzstd.pc.in" -DOUT="libzstd.pc" +- -DPREFIX="${PREFIX}" -DVERSION="${VERSION}" ++ -DPREFIX="${PREFIX}" -DLIBDIR="${LIBDIR}" -DINCLUDEDIR="${INCLUDEDIR}" -DVERSION="${VERSION}" + -P "${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig.cmake" + COMMENT "Creating pkg-config file") + +diff --git a/lib/Makefile b/lib/Makefile +index fd1710cf1..dbd64994c 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -224,6 +224,16 @@ LIBDIR ?= $(libdir) + includedir ?= $(PREFIX)/include + INCLUDEDIR ?= $(includedir) + ++PCLIBDIR ?= $(shell echo "$(LIBDIR)" | sed -n -e "s@^$(exec_prefix)\\(/\\|$$\\)@@p") ++PCINCDIR ?= $(shell echo "$(INCLUDEDIR)" | sed -n -e "s@^$(prefix)\\(/\\|$$\\)@@p") ++ ++ifeq (,$(shell echo "$(LIBDIR)" | sed -n -e "\\@^$(exec_prefix)\\(/\\|$$\\)@ p")) ++$(error configured libdir ($(LIBDIR)) is outside of prefix ($(prefix)), can't generate pkg-config file) ++endif ++ifeq (,$(shell echo "$(INCLUDEDIR)" | sed -n -e "\\@^$(prefix)\\(/\\|$$\\)@ p")) ++$(error configured includedir ($(INCLUDEDIR)) is outside of exec_prefix ($(exec_prefix)), can't generate pkg-config file) ++endif ++ + ifneq (,$(filter $(shell uname),FreeBSD NetBSD DragonFly)) + PKGCONFIGDIR ?= $(PREFIX)/libdata/pkgconfig + else +@@ -239,11 +249,11 @@ endif + INSTALL_PROGRAM ?= $(INSTALL) + INSTALL_DATA ?= $(INSTALL) -m 644 + +- +-libzstd.pc: + libzstd.pc: libzstd.pc.in + @echo creating pkgconfig + @sed -e 's|@PREFIX@|$(PREFIX)|' \ ++ -e 's|@LIBDIR@|$(PCLIBDIR)|' \ ++ -e 's|@INCLUDEDIR@|$(PCINCDIR)|' \ + -e 's|@VERSION@|$(VERSION)|' \ + $< >$@ + +diff --git a/lib/libzstd.pc.in b/lib/libzstd.pc.in +index e7880be47..8ec0235ad 100644 +--- a/lib/libzstd.pc.in ++++ b/lib/libzstd.pc.in +@@ -4,8 +4,8 @@ + + prefix=@PREFIX@ + exec_prefix=${prefix} +-includedir=${prefix}/include +-libdir=${exec_prefix}/lib ++includedir=${prefix}/@INCLUDEDIR@ ++libdir=${exec_prefix}/@LIBDIR@ + + Name: zstd + Description: fast lossless compression algorithm library + +From 73737231b95976f24b7b9bff96240976b11dcce0 Mon Sep 17 00:00:00 2001 +From: "W. Felix Handte" +Date: Tue, 18 Feb 2020 13:17:17 -0500 +Subject: [PATCH 2/3] Allow Manual Overriding of pkg-config Lib and Include + Dirs + +When the `PCLIBDIR` or `PCINCDIR` is non-empty (either because we succeeded +in removing the prefix, or because it was manually set), we don't need to +perform the check. This lets us trust users who go to the trouble of setting +a manual override, rather than still blindly failing the make. + +They'll still be prefixed with `${prefix}/` / `${exec_prefix}/` in the +pkg-config file though. +--- + lib/Makefile | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/lib/Makefile b/lib/Makefile +index dbd64994c..b067c11a2 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -227,12 +227,21 @@ INCLUDEDIR ?= $(includedir) + PCLIBDIR ?= $(shell echo "$(LIBDIR)" | sed -n -e "s@^$(exec_prefix)\\(/\\|$$\\)@@p") + PCINCDIR ?= $(shell echo "$(INCLUDEDIR)" | sed -n -e "s@^$(prefix)\\(/\\|$$\\)@@p") + ++ifeq (,$(PCLIBDIR)) ++# Additional prefix check is required, since the empty string is technically a ++# valid PCLIBDIR + ifeq (,$(shell echo "$(LIBDIR)" | sed -n -e "\\@^$(exec_prefix)\\(/\\|$$\\)@ p")) + $(error configured libdir ($(LIBDIR)) is outside of prefix ($(prefix)), can't generate pkg-config file) + endif ++endif ++ ++ifeq (,$(PCINCDIR)) ++# Additional prefix check is required, since the empty string is technically a ++# valid PCINCDIR + ifeq (,$(shell echo "$(INCLUDEDIR)" | sed -n -e "\\@^$(prefix)\\(/\\|$$\\)@ p")) + $(error configured includedir ($(INCLUDEDIR)) is outside of exec_prefix ($(exec_prefix)), can't generate pkg-config file) + endif ++endif + + ifneq (,$(filter $(shell uname),FreeBSD NetBSD DragonFly)) + PKGCONFIGDIR ?= $(PREFIX)/libdata/pkgconfig + +From e5ef935cf6160768e20cd73db3d9450aa8b7f8cf Mon Sep 17 00:00:00 2001 +From: "W. Felix Handte" +Date: Tue, 18 Feb 2020 13:40:58 -0500 +Subject: [PATCH 3/3] Fix Variable Capitalization + +--- + lib/Makefile | 15 ++++++++------- + 1 file changed, 8 insertions(+), 7 deletions(-) + +diff --git a/lib/Makefile b/lib/Makefile +index b067c11a2..db35207bb 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -219,27 +219,28 @@ DESTDIR ?= + prefix ?= /usr/local + PREFIX ?= $(prefix) + exec_prefix ?= $(PREFIX) +-libdir ?= $(exec_prefix)/lib ++EXEC_PREFIX ?= $(exec_prefix) ++libdir ?= $(EXEC_PREFIX)/lib + LIBDIR ?= $(libdir) + includedir ?= $(PREFIX)/include + INCLUDEDIR ?= $(includedir) + +-PCLIBDIR ?= $(shell echo "$(LIBDIR)" | sed -n -e "s@^$(exec_prefix)\\(/\\|$$\\)@@p") +-PCINCDIR ?= $(shell echo "$(INCLUDEDIR)" | sed -n -e "s@^$(prefix)\\(/\\|$$\\)@@p") ++PCLIBDIR ?= $(shell echo "$(LIBDIR)" | sed -n -e "s@^$(EXEC_PREFIX)\\(/\\|$$\\)@@p") ++PCINCDIR ?= $(shell echo "$(INCLUDEDIR)" | sed -n -e "s@^$(PREFIX)\\(/\\|$$\\)@@p") + + ifeq (,$(PCLIBDIR)) + # Additional prefix check is required, since the empty string is technically a + # valid PCLIBDIR +-ifeq (,$(shell echo "$(LIBDIR)" | sed -n -e "\\@^$(exec_prefix)\\(/\\|$$\\)@ p")) +-$(error configured libdir ($(LIBDIR)) is outside of prefix ($(prefix)), can't generate pkg-config file) ++ifeq (,$(shell echo "$(LIBDIR)" | sed -n -e "\\@^$(EXEC_PREFIX)\\(/\\|$$\\)@ p")) ++$(error configured libdir ($(LIBDIR)) is outside of prefix ($(PREFIX)), can't generate pkg-config file) + endif + endif + + ifeq (,$(PCINCDIR)) + # Additional prefix check is required, since the empty string is technically a + # valid PCINCDIR +-ifeq (,$(shell echo "$(INCLUDEDIR)" | sed -n -e "\\@^$(prefix)\\(/\\|$$\\)@ p")) +-$(error configured includedir ($(INCLUDEDIR)) is outside of exec_prefix ($(exec_prefix)), can't generate pkg-config file) ++ifeq (,$(shell echo "$(INCLUDEDIR)" | sed -n -e "\\@^$(PREFIX)\\(/\\|$$\\)@ p")) ++$(error configured includedir ($(INCLUDEDIR)) is outside of exec_prefix ($(EXEC_PREFIX)), can't generate pkg-config file) + endif + endif + diff --git a/sdk_container/src/third_party/portage-stable/app-arch/zstd/files/zstd-1.4.5-fix-uclibc-ng.patch b/sdk_container/src/third_party/portage-stable/app-arch/zstd/files/zstd-1.4.5-fix-uclibc-ng.patch new file mode 100644 index 0000000000..e4c2335d19 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/zstd/files/zstd-1.4.5-fix-uclibc-ng.patch @@ -0,0 +1,28 @@ +From 1dcc4787965aa8f4af48ed5a2154185750bbaff5 Mon Sep 17 00:00:00 2001 +From: Yann Collet +Date: Mon, 13 Jul 2020 14:16:33 -0700 +Subject: [PATCH] fix uclibc's st_mtim + +reported and suggested by @ewildgoose (#1872) +--- + programs/platform.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/programs/platform.h b/programs/platform.h +index 2b4b9f2d8..68be70bb3 100644 +--- a/programs/platform.h ++++ b/programs/platform.h +@@ -102,6 +102,12 @@ extern "C" { + # define PLATFORM_POSIX_VERSION 1 + # endif + ++# ifdef __UCLIBC__ ++# ifndef __USE_MISC ++# define __USE_MISC /* enable st_mtim on uclibc */ ++# endif ++# endif ++ + # else /* non-unix target platform (like Windows) */ + # define PLATFORM_POSIX_VERSION 0 + # endif + diff --git a/sdk_container/src/third_party/portage-stable/app-arch/zstd/metadata.xml b/sdk_container/src/third_party/portage-stable/app-arch/zstd/metadata.xml new file mode 100644 index 0000000000..b9782eebc3 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/zstd/metadata.xml @@ -0,0 +1,11 @@ + + + + + patrick@gentoo.org + Patrick Lauer + + + facebook/zstd + + diff --git a/sdk_container/src/third_party/portage-stable/app-arch/zstd/zstd-1.4.4-r4.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/zstd/zstd-1.4.4-r4.ebuild new file mode 100644 index 0000000000..ebb7e04a9c --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/zstd/zstd-1.4.4-r4.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit flag-o-matic multilib-minimal toolchain-funcs + +DESCRIPTION="zstd fast compression library" +HOMEPAGE="https://facebook.github.io/zstd/" +SRC_URI="https://github.com/facebook/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="|| ( BSD GPL-2 )" +SLOT="0/1" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="lz4 static-libs +threads" + +RDEPEND="app-arch/xz-utils + lz4? ( app-arch/lz4 )" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}/${P}-pkgconfig_libdir.patch" #700780 + "${FILESDIR}/${P}-make43.patch" #708110 + "${FILESDIR}/${PN}-1.4.5-fix-uclibc-ng.patch" #741972 +) + +src_prepare() { + default + multilib_copy_sources + + # Workaround #713940 / https://github.com/facebook/zstd/issues/2045 + # where upstream build system does not add -pthread for Makefile-based + # build system. + use threads && append-flags $(test-flags-CCLD -pthread) +} + +mymake() { + emake \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + AR="$(tc-getAR)" \ + PREFIX="${EPREFIX}/usr" \ + LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ + "${@}" +} + +multilib_src_compile() { + local libzstd_targets=( libzstd{,.a}$(usex threads '-mt' '') ) + + mymake -C lib ${libzstd_targets[@]} libzstd.pc + + if multilib_is_native_abi ; then + mymake HAVE_LZ4="$(usex lz4 1 0)" zstd + + mymake -C contrib/pzstd + fi +} + +multilib_src_install() { + mymake -C lib DESTDIR="${D}" install + + if multilib_is_native_abi ; then + mymake -C programs DESTDIR="${D}" install + + mymake -C contrib/pzstd DESTDIR="${D}" install + fi +} + +multilib_src_install_all() { + einstalldocs + + if ! use static-libs; then + find "${ED}" -name "*.a" -delete || die + fi +} diff --git a/sdk_container/src/third_party/portage-stable/app-arch/zstd/zstd-1.4.5.ebuild b/sdk_container/src/third_party/portage-stable/app-arch/zstd/zstd-1.4.5.ebuild new file mode 100644 index 0000000000..110b0378b7 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/app-arch/zstd/zstd-1.4.5.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit flag-o-matic multilib-minimal toolchain-funcs + +DESCRIPTION="zstd fast compression library" +HOMEPAGE="https://facebook.github.io/zstd/" +SRC_URI="https://github.com/facebook/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="|| ( BSD GPL-2 )" +SLOT="0/1" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="lz4 static-libs +threads" + +RDEPEND="app-arch/xz-utils + lz4? ( app-arch/lz4 )" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}/${P}-fix-uclibc-ng.patch" #741972 +) + +src_prepare() { + default + multilib_copy_sources + + # Workaround #713940 / https://github.com/facebook/zstd/issues/2045 + # where upstream build system does not add -pthread for Makefile-based + # build system. + use threads && append-flags $(test-flags-CCLD -pthread) +} + +mymake() { + emake \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + AR="$(tc-getAR)" \ + PREFIX="${EPREFIX}/usr" \ + LIBDIR="${EPREFIX}/usr/$(get_libdir)" \ + "${@}" +} + +multilib_src_compile() { + local libzstd_targets=( libzstd{,.a}$(usex threads '-mt' '') ) + + mymake -C lib ${libzstd_targets[@]} libzstd.pc + + if multilib_is_native_abi ; then + mymake HAVE_LZ4="$(usex lz4 1 0)" zstd + + mymake -C contrib/pzstd + fi +} + +multilib_src_install() { + mymake -C lib DESTDIR="${D}" install + + if multilib_is_native_abi ; then + mymake -C programs DESTDIR="${D}" install + + mymake -C contrib/pzstd DESTDIR="${D}" install + fi +} + +multilib_src_install_all() { + einstalldocs + + if ! use static-libs; then + find "${ED}" -name "*.a" -delete || die + fi +}