From e374e165c2ee372e9c6d10860ea6ef47f180f6b2 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 2 Oct 2022 07:12:21 +0100 Subject: gentoo auto-resync : 02:10:2022 - 07:12:21 --- sys-libs/Manifest.gz | Bin 14229 -> 14402 bytes sys-libs/minizip-ng/Manifest | 5 + ...-getrandom-and-arc4random_buf-usage-order.patch | 68 +++++++++++ .../files/minizip-ng-3.0.6-test-temporary.patch | 129 +++++++++++++++++++++ sys-libs/minizip-ng/metadata.xml | 16 +++ sys-libs/minizip-ng/minizip-ng-3.0.6-r1.ebuild | 86 ++++++++++++++ sys-libs/zlib-ng/Manifest | 4 +- sys-libs/zlib-ng/zlib-ng-2.0.5.ebuild | 75 ------------ sys-libs/zlib-ng/zlib-ng-2.0.6.ebuild | 4 +- 9 files changed, 307 insertions(+), 80 deletions(-) create mode 100644 sys-libs/minizip-ng/Manifest create mode 100644 sys-libs/minizip-ng/files/minizip-ng-3.0.6-Switch-getrandom-and-arc4random_buf-usage-order.patch create mode 100644 sys-libs/minizip-ng/files/minizip-ng-3.0.6-test-temporary.patch create mode 100644 sys-libs/minizip-ng/metadata.xml create mode 100644 sys-libs/minizip-ng/minizip-ng-3.0.6-r1.ebuild delete mode 100644 sys-libs/zlib-ng/zlib-ng-2.0.5.ebuild (limited to 'sys-libs') diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz index add71caf80b8..42acc302dd93 100644 Binary files a/sys-libs/Manifest.gz and b/sys-libs/Manifest.gz differ diff --git a/sys-libs/minizip-ng/Manifest b/sys-libs/minizip-ng/Manifest new file mode 100644 index 000000000000..ae6ee5bf9d19 --- /dev/null +++ b/sys-libs/minizip-ng/Manifest @@ -0,0 +1,5 @@ +AUX minizip-ng-3.0.6-Switch-getrandom-and-arc4random_buf-usage-order.patch 2040 BLAKE2B 679a4c8878b06eb28352942e6b0f8285daf0f2d1cc3315071e3592f10fcfaaa11caf1b67e4a73c83201a85bf63750bbf7d3d0d4d7c2a5b2dd1b317eb5beac9f6 SHA512 b1913d03a49931b929435372b2e07d63ec13bf0513ac39549612514443efcd114d143848e6d0a6de751f1ed8499ecae4ecbfb0fce579e6e66549ea90f862417d +AUX minizip-ng-3.0.6-test-temporary.patch 6922 BLAKE2B 65bc4803aec94e56d7d868096320bac78f425485cff9c0d8d7214e5321e136e239100c292356be69e638f34bba6104bbca95e3db7e8b9f71ccec5e60cab92510 SHA512 e52ebc658cf1bc6df0fcff481562fe61527fbae6fd4a1477ef0a9185e967d9eb0ea7678e6f330429f993fae97a639baf82df672fc1a71275c7f3d7f1c83c8596 +DIST minizip-ng-3.0.6.tar.gz 642138 BLAKE2B 3faddeef035da0417671ef5578b90ad9ec9a69f376d04fb8095f93e27e3276931ef432e179613e841e754ff6e915e8c631eeaa48795aaa87773e45465bd14afa SHA512 92aaad655e7dbec60ab8075435ccdc72314f75f0516aa4a16094215df2b14b108c2b49cdf6c876e396f0f43f52ad63f52ce7db2e119efe25c55b8b873bef9d4f +EBUILD minizip-ng-3.0.6-r1.ebuild 2493 BLAKE2B 8a8e100a651d7557535991fc3c93dea319a21f95384625d30130c8b29a3c895193f054f65506bb88be56b80f18465a8adce7fd5ea2e2bc643811da5607facb8b SHA512 a0b261602e0fe1d4f0dc2a620d677c4d4f9cf1df88eec77e640f2eb08e327e88cd8fa2cb1b63171223fa92c9dd6854d8b3934a39e75026be1d04dba634ff4db3 +MISC metadata.xml 638 BLAKE2B 8a74cb73b53a8fa34aa5ad31ff7770fe47a6224161b6cce692d837004ffcbad15de7d318b3eb9dfa6db0f6f83eae0ed6238df19c27a82daeb7d958113f96478f SHA512 596d4f19cd3680b59ba2f94a8ebedb1fa84f5ca9e3d5125c76b5e787cd8b2e560152bf8151bfe140d03beae6a244b7a87210cc211c8493e0766852c776eef721 diff --git a/sys-libs/minizip-ng/files/minizip-ng-3.0.6-Switch-getrandom-and-arc4random_buf-usage-order.patch b/sys-libs/minizip-ng/files/minizip-ng-3.0.6-Switch-getrandom-and-arc4random_buf-usage-order.patch new file mode 100644 index 000000000000..92db9c05b5d1 --- /dev/null +++ b/sys-libs/minizip-ng/files/minizip-ng-3.0.6-Switch-getrandom-and-arc4random_buf-usage-order.patch @@ -0,0 +1,68 @@ +https://github.com/zlib-ng/minizip-ng/pull/651 + +From 1be6ea22e127a99786aefd2896e08bab43ad1333 Mon Sep 17 00:00:00 2001 +From: Sam James +Date: Sun, 2 Oct 2022 01:39:17 +0100 +Subject: [PATCH] Switch getrandom() and arc4random_buf() usage order + +We need to match the order of inclusions at the top of the file +otherwise we might end up trying to use arc4random_buf() when +available (because HAVE_ARC4RANODM_BUF is set) even though +we hit HAVE_GETRANDOM first above and only included + because of it. + +Besides, if getrandom() is available, we should really prefer +it anyway. + +Fixes an implicit function declaration: +``` +minizip-ng-3.0.6/mz_os_posix.c:124:5: error: implicit declaration of function 'arc4random_buf' [-Werror=implicit-function-declaration] +``` +--- a/mz_os_posix.c ++++ b/mz_os_posix.c +@@ -117,7 +117,22 @@ void mz_os_utf8_string_delete(uint8_t **string) { + + /***************************************************************************/ + +-#if defined(HAVE_ARC4RANDOM_BUF) ++#if defined(HAVE_GETRANDOM) ++int32_t mz_os_rand(uint8_t *buf, int32_t size) { ++ int32_t left = size; ++ int32_t written = 0; ++ ++ while (left > 0) { ++ written = getrandom(buf, left, 0); ++ if (written < 0) ++ return MZ_INTERNAL_ERROR; ++ ++ buf += written; ++ left -= written; ++ } ++ return size - left; ++} ++#elif defined(HAVE_ARC4RANDOM_BUF) + int32_t mz_os_rand(uint8_t *buf, int32_t size) { + if (size < 0) + return 0; +@@ -139,21 +154,6 @@ int32_t mz_os_rand(uint8_t *buf, int32_t size) { + } + return size - left; + } +-#elif defined(HAVE_GETRANDOM) +-int32_t mz_os_rand(uint8_t *buf, int32_t size) { +- int32_t left = size; +- int32_t written = 0; +- +- while (left > 0) { +- written = getrandom(buf, left, 0); +- if (written < 0) +- return MZ_INTERNAL_ERROR; +- +- buf += written; +- left -= written; +- } +- return size - left; +-} + #else + int32_t mz_os_rand(uint8_t *buf, int32_t size) { + static unsigned calls = 0; diff --git a/sys-libs/minizip-ng/files/minizip-ng-3.0.6-test-temporary.patch b/sys-libs/minizip-ng/files/minizip-ng-3.0.6-test-temporary.patch new file mode 100644 index 000000000000..d38603ac7378 --- /dev/null +++ b/sys-libs/minizip-ng/files/minizip-ng-3.0.6-test-temporary.patch @@ -0,0 +1,129 @@ +https://github.com/zlib-ng/minizip-ng/issues/623 +https://github.com/zlib-ng/minizip-ng/commit/6261d6f5ec5bd275257354c048f68ad9723c3231 + +From 6261d6f5ec5bd275257354c048f68ad9723c3231 Mon Sep 17 00:00:00 2001 +From: Nathan Moinvaziri +Date: Sat, 11 Jun 2022 10:36:42 -0700 +Subject: [PATCH] Generate test files in binary temp directory. + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -804,6 +804,8 @@ if(MZ_BUILD_TESTS AND MZ_BUILD_UNIT_TESTS) + endif() + endif() + ++ set(TEST_TEMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/Testing/Temporary) ++ + add_test(NAME test_cmd COMMAND test_cmd WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + + function(create_compress_tests EXTRA_NAME EXTRA_ARGS) +@@ -840,33 +842,43 @@ if(MZ_BUILD_TESTS AND MZ_BUILD_UNIT_TESTS) + foreach(INDEX RANGE ${COMPRESS_METHOD_COUNT}) + list(GET COMPRESS_METHOD_NAMES ${INDEX} COMPRESS_METHOD_NAME) + list(GET COMPRESS_METHOD_ARGS ${INDEX} COMPRESS_METHOD_ARG) ++ ++ set(COMPRESS_METHOD_DEST_DIR ++ ${TEST_TEMP_DIR}/${COMPRESS_METHOD_NAME}-${EXTRA_NAME}) ++ set(COMPRESS_METHOD_PATH ++ ${TEST_TEMP_DIR}/${COMPRESS_METHOD_NAME}-${EXTRA_NAME}.zip) ++ + add_test(NAME ${COMPRESS_METHOD_NAME}-zip-${EXTRA_NAME} + COMMAND minizip_cmd ${COMPRESS_METHOD_ARG} -o ${EXTRA_ARGS} +- result.zip test.c test.h empty.txt random.bin uniform.bin fuzz ++ ${COMPRESS_METHOD_PATH} ++ test.c test.h empty.txt random.bin uniform.bin fuzz + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) + add_test(NAME ${COMPRESS_METHOD_NAME}-list-${EXTRA_NAME} +- COMMAND minizip_cmd -l ${EXTRA_ARGS} result.zip ++ COMMAND minizip_cmd -l ${EXTRA_ARGS} ${COMPRESS_METHOD_PATH} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) + if(NOT MZ_COMPRESS_ONLY) + add_test(NAME ${COMPRESS_METHOD_NAME}-unzip-${EXTRA_NAME} +- COMMAND minizip_cmd -x -o ${EXTRA_ARGS} -d out result.zip ++ COMMAND minizip_cmd -x -o ${EXTRA_ARGS} ++ -d ${COMPRESS_METHOD_DEST_DIR} ${COMPRESS_METHOD_PATH} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) + endif() + add_test(NAME ${COMPRESS_METHOD_NAME}-append-${EXTRA_NAME} + COMMAND minizip_cmd ${COMPRESS_METHOD_ARG} -a ${EXTRA_ARGS} +- result.zip single.txt ++ ${COMPRESS_METHOD_PATH} single.txt + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) + if(NOT MZ_COMPRESS_ONLY) + add_test(NAME ${COMPRESS_METHOD_NAME}-append-unzip-${EXTRA_NAME} +- COMMAND minizip_cmd -x -o ${EXTRA_ARGS} -d out result.zip ++ COMMAND minizip_cmd -x -o ${EXTRA_ARGS} ++ -d ${COMPRESS_METHOD_DEST_DIR} ${COMPRESS_METHOD_PATH} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) + endif() + add_test(NAME ${COMPRESS_METHOD_NAME}-erase-${EXTRA_NAME} +- COMMAND minizip_cmd -o -e result.zip test.c test.h ++ COMMAND minizip_cmd -o -e ${COMPRESS_METHOD_PATH} test.c test.h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) + if(NOT MZ_COMPRESS_ONLY) + add_test(NAME ${COMPRESS_METHOD_NAME}-erase-unzip-${EXTRA_NAME} +- COMMAND minizip_cmd -x -o ${EXTRA_ARGS} -d out result.zip ++ COMMAND minizip_cmd -x -o ${EXTRA_ARGS} ++ -d ${COMPRESS_METHOD_DEST_DIR} ${COMPRESS_METHOD_PATH} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) + endif() + endforeach() +@@ -891,43 +903,49 @@ if(MZ_BUILD_TESTS AND MZ_BUILD_UNIT_TESTS) + if(NOT MZ_COMPRESS_ONLY) + if(MZ_ZLIB OR MZ_LIBCOMP) + add_test(NAME unzip-tiny +- COMMAND minizip_cmd -x -o ${EXTRA_ARGS} -d out ++ COMMAND minizip_cmd -x -o ${EXTRA_ARGS} ++ -d ${TEST_TEMP_DIR}/unzip-tiny + fuzz/unzip_fuzzer_seed_corpus/tiny.zip + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) + endif() + if(MZ_BZIP2) + add_test(NAME unzip-bzip2 +- COMMAND minizip_cmd -x -o ${EXTRA_ARGS} -d out ++ COMMAND minizip_cmd -x -o ${EXTRA_ARGS} ++ -d ${TEST_TEMP_DIR}/unzip-bzip2 + fuzz/unzip_fuzzer_seed_corpus/bzip2.zip + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) + endif() + if(MZ_LZMA) + add_test(NAME unzip-lzma +- COMMAND minizip_cmd -x -o ${EXTRA_ARGS} -d out ++ COMMAND minizip_cmd -x -o ${EXTRA_ARGS} ++ -d ${TEST_TEMP_DIR}/unzip-lzma + fuzz/unzip_fuzzer_seed_corpus/lzma.zip + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) + endif() + if(MZ_PKCRYPT) + add_test(NAME unzip-pkcrypt +- COMMAND minizip_cmd -x -o ${EXTRA_ARGS} -d out -p test123 ++ COMMAND minizip_cmd -x -o ${EXTRA_ARGS} ++ -d ${TEST_TEMP_DIR}/unzip-pkcrypt -p test123 + fuzz/unzip_fuzzer_seed_corpus/encrypted_pkcrypt.zip + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) + endif() + if(MZ_WZAES) + add_test(NAME unzip-wzaes +- COMMAND minizip_cmd -x -o ${EXTRA_ARGS} -d out -p test123 ++ COMMAND minizip_cmd -x -o ${EXTRA_ARGS} ++ -d ${TEST_TEMP_DIR}/unzip-wzaes -p test123 + fuzz/unzip_fuzzer_seed_corpus/encrypted_wzaes.zip + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) + endif() + endif() + if(NOT MZ_COMPRESS_ONLY AND NOT MZ_DECOMPRESS_ONLY) + if(MZ_ZLIB AND NOT MZ_LIBCOMP) ++ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test/random.bin DESTINATION ${TEST_TEMP_DIR}) + add_test(NAME gz + COMMAND minigzip_cmd random.bin +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) ++ WORKING_DIRECTORY ${TEST_TEMP_DIR}) + add_test(NAME ungz +- COMMAND minigzip_cmd -x -d out random.bin.gz +- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test) ++ COMMAND minigzip_cmd -x -d ${TEST_TEMP_DIR} random.bin.gz ++ WORKING_DIRECTORY ${TEST_TEMP_DIR}) + endif() + endif() + endif() + diff --git a/sys-libs/minizip-ng/metadata.xml b/sys-libs/minizip-ng/metadata.xml new file mode 100644 index 000000000000..f1896c5bcb81 --- /dev/null +++ b/sys-libs/minizip-ng/metadata.xml @@ -0,0 +1,16 @@ + + + + + base-system@gentoo.org + Gentoo Base System + + + Enable compatibility with sys-libs/zlib's USE=minizip + Use dev-libs/openssl for further encryption capabilities + Add Zstandard compression support via app-arch/zstd + + + zlib-ng/minizip-ng + + diff --git a/sys-libs/minizip-ng/minizip-ng-3.0.6-r1.ebuild b/sys-libs/minizip-ng/minizip-ng-3.0.6-r1.ebuild new file mode 100644 index 000000000000..42790b51b0d3 --- /dev/null +++ b/sys-libs/minizip-ng/minizip-ng-3.0.6-r1.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Fork of the popular zip manipulation library found in the zlib distribution" +HOMEPAGE="https://github.com/zlib-ng/minizip-ng" +SRC_URI="https://github.com/zlib-ng/minizip-ng/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="ZLIB" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="compat openssl test zstd" +RESTRICT="!test? ( test )" + +# Automagically prefers sys-libs/zlib-ng if installed, so let's +# just depend on it as presumably it's better tested anyway. +RDEPEND=" + app-arch/bzip2 + app-arch/xz-utils + sys-libs/zlib-ng + virtual/libiconv + compat? ( !sys-libs/zlib[minizip] ) + openssl? ( dev-libs/openssl:= ) + zstd? ( app-arch/zstd:= ) +" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-3.0.6-Switch-getrandom-and-arc4random_buf-usage-order.patch + "${FILESDIR}"/${P}-test-temporary.patch +) + +src_configure() { + local mycmakeargs=( + -DMZ_COMPAT=$(usex compat) + -DMZ_BUILD_TESTS=$(usex test) + -DMZ_BUILD_UNIT_TESTS=$(usex test) + -DMZ_FETCH_LIBS=OFF + -DMZ_FORCE_FETCH_LIBS=OFF + + # Compression library options + -DMZ_ZLIB=ON + -DMZ_BZIP2=ON + -DMZ_LZMA=ON + -DMZ_ZSTD=$(usex zstd) + -DMZ_LIBCOMP=OFF + + # Encryption support options + -DMZ_PKCRYPT=ON + -DMZ_WZAES=ON + -DMZ_OPENSSL=$(usex openssl) + # TODO: Re-enable, ideally unconditionally, for arc4random + # Revisit when https://github.com/zlib-ng/minizip-ng/pull/648 fixed + -DMZ_LIBBSD=ON + -DMZ_SIGNING=ON + + # Character conversion options + -DMZ_ICONV=ON + ) + + cmake_src_configure +} + +src_test() { + local myctestargs=( + # TODO: investigate + -E "(raw-unzip-pkcrypt|raw-append-unzip-pkcrypt|raw-erase-unzip-pkcrypt|deflate-unzip-pkcrypt|deflate-append-unzip-pkcrypt|deflate-erase-unzip-pkcrypt|bzip2-unzip-pkcrypt|bzip2-append-unzip-pkcrypt|bzip2-erase-unzip-pkcrypt|lzma-unzip-pkcrypt|lzma-append-unzip-pkcrypt|lzma-erase-unzip-pkcrypt|xz-unzip-pkcrypt|xz-append-unzip-pkcrypt|xz-erase-unzip-pkcrypt|zstd-unzip-pkcrypt|zstd-append-unzip-pkcrypt|zstd-erase-unzip-pkcrypt)" + ) + + # TODO: A bunch of tests end up looping and writing over each other's files + # It gets better with a patch applied (see https://github.com/zlib-ng/minizip-ng/issues/623#issuecomment-1264518994) + # but still hangs. + cmake_src_test -j1 +} + +src_install() { + cmake_src_install + + if use compat ; then + ewarn "minizip-ng is experimental and replacing the system zlib[minizip] is dangerous" + ewarn "Please be careful!" + fi +} diff --git a/sys-libs/zlib-ng/Manifest b/sys-libs/zlib-ng/Manifest index 4d4cb0a359ac..73ff3ca26501 100644 --- a/sys-libs/zlib-ng/Manifest +++ b/sys-libs/zlib-ng/Manifest @@ -1,5 +1,3 @@ -DIST zlib-ng-2.0.5.tar.gz 810110 BLAKE2B 70a7a4a4f5bcc792fcf5f41487160aa15481bc5512ddd567f59ac96ebd1b8ff7c1edb7e5887f16ee502a75fabb36caf88f0d88563a0d860679b0bfd0e0b9f12a SHA512 a643089a8189bf8bd24d679b84f07ae14932b4d88b88e94c44cca23350d6a9bbdaa411822d3651c2b0bf79f30c9f99514cc252cf9e9ab0b3a840540206466654 DIST zlib-ng-2.0.6.tar.gz 817951 BLAKE2B 52993caadf14817e328b180d728586e1332ea04504288264934ef49441cb8b8c4a2412d4c11d1982f3764fef5e4fb7ebab442b407e57d9d5f08a5b2ed890bba9 SHA512 4888f17160d0a87a9b349704047ae0d0dc57237a10e11adae09ace957afa9743cce5191db67cb082991421fc961ce68011199621034d2369c0e7724fad58b4c5 -EBUILD zlib-ng-2.0.5.ebuild 1971 BLAKE2B 6c6f5f9b1af80c9a7dfa525c849990a590d140c382ee99a9c7965426f4974e34bffc6a18e6b047b336b5d41bf3939e4e6a039f29837ea6add42f0b9dac64b68e SHA512 6305b130787419a29e6c70a7af35e24ed04fb2365898e6a38c46894f6e2660686805d381f30dda00377db30c2088010c1308a9aa3665f678cb518dc4b5f0928b -EBUILD zlib-ng-2.0.6.ebuild 1971 BLAKE2B c165390bac57c8a5627f24b7bfa169ed6f5ae3f3a77b66796f74627640ac9f739cf1db4a7ba74568fe87d393d2eea8522e0aa4cd88831ed997868736026ce212 SHA512 1237b6fb1f97f421214ab10fd16c8ce961935b3bca20370e82491f4c681c1a5a72d68953a705ac82c11e4b4eadf703145b0b6577cd7cd9bbd641fa33b857b72a +EBUILD zlib-ng-2.0.6.ebuild 1970 BLAKE2B a9d6e0225a11ad9bdb35221ba1847a3d56a322188c9fe6e4801aa1088263d373982d29b67c61ae09654d8d6c9ec5cfc838d059f4c2ca20d68a5af59673c38221 SHA512 1deaa597f60bcd5b3d3f8e665d6e2eac5baa792f8e6a21ec71232af84dafd937aefe7878b9f6622969dafd31c6678e431873baff426d4cadedf505149ae2a9e4 MISC metadata.xml 431 BLAKE2B 49465a63458ac9b7d807d699d45046fd7dc849796f039956effee297fd4da30109bc6f0644cc46aec680f6a94fb6b839d857b17a2699907fd43317794a12cf78 SHA512 16c8b051776ba1ba37b01eac4127d3a84811b3f4cc9f733480ddd12992bb7119cf3c8a22dc18e4086cf71fe7a16266c21684bc7040070eaf1a8dde1783c8d59e diff --git a/sys-libs/zlib-ng/zlib-ng-2.0.5.ebuild b/sys-libs/zlib-ng/zlib-ng-2.0.5.ebuild deleted file mode 100644 index 35316b265096..000000000000 --- a/sys-libs/zlib-ng/zlib-ng-2.0.5.ebuild +++ /dev/null @@ -1,75 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit cmake - -DESCRIPTION="Fork of the zlib data compression library" -HOMEPAGE="https://github.com/zlib-ng/zlib-ng" -SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="ZLIB" -SLOT="0" -#KEYWORDS="~amd64 ~x86" - -CPU_USE=( cpu_flags_{x86_{avx2,sse2,ssse3,sse4a,pclmul},arm_{crc32,neon},ppc_vsx2} ) -IUSE="compat ${CPU_USE[@]} test" - -RESTRICT="!test? ( test )" - -RDEPEND="compat? ( !sys-libs/zlib )" - -src_configure() { - local mycmakeargs=( - -DZLIB_COMPAT="$(usex compat)" - -DZLIB_ENABLE_TESTS="$(usex test)" - # Unaligned access is controversial and undefined behaviour - # Let's keep it off for now - # https://github.com/gentoo/gentoo/pull/17167 - -DWITH_UNALIGNED="OFF" - ) - - # The intrinsics options are all defined conditionally, so we need - # to enable them on/off per-arch here for now. - if use amd64 || use x86 ; then - mycmakeargs+=( - -DWITH_AVX2=$(usex cpu_flags_x86_avx2) - -DWITH_SSE2=$(usex cpu_flags_x86_sse2) - -DWITH_SSSE3=$(usex cpu_flags_x86_ssse3) - -DWITH_SSE4=$(usex cpu_flags_x86_sse4a) - -DWITH_PCLMULQDQ=$(usex cpu_flags_x86_pclmul) - ) - fi - - if use arm || use arm64 ; then - mycmakeargs+=( - -DWITH_ACLE=$(usex cpu_flags_arm_crc32) - -DWITH_NEON=$(usex cpu_flags_arm_neon) - ) - fi - - if use ppc || use ppc64 ; then - # The POWER8 support is VSX which was introduced - # VSX2 was introduced with POWER8, so use that as a proxy for it - mycmakeargs+=( - -DWITH_POWER8=$(usex cpu_flags_ppc_vsx2) - ) - fi - - # TODO: There's no s390x USE_EXPAND yet - - cmake_src_configure -} - -src_install() { - cmake_src_install - - if use compat ; then - ewarn "zlib-ng is experimental and replacing the system zlib is dangerous" - ewarn "Please be careful!" - ewarn - ewarn "The following link explains the guarantees (and what is NOT guaranteed):" - ewarn "https://github.com/zlib-ng/zlib-ng/blob/2.0.x/PORTING.md" - fi -} diff --git a/sys-libs/zlib-ng/zlib-ng-2.0.6.ebuild b/sys-libs/zlib-ng/zlib-ng-2.0.6.ebuild index 5abbd8a2ea61..4347d46652d3 100644 --- a/sys-libs/zlib-ng/zlib-ng-2.0.6.ebuild +++ b/sys-libs/zlib-ng/zlib-ng-2.0.6.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit cmake @@ -11,7 +11,7 @@ SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" LICENSE="ZLIB" SLOT="0" -#KEYWORDS="~amd64 ~x86" +KEYWORDS="~amd64 ~x86" CPU_USE=( cpu_flags_{x86_{avx2,sse2,ssse3,sse4a,pclmul},arm_{crc32,neon},ppc_vsx2} ) IUSE="compat ${CPU_USE[@]} test" -- cgit v1.2.3