Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions sys-libs/minizip-ng/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
DIST minizip-ng-4.0.10-f3ed731.tar.gz 773362 BLAKE2B a21f2d31cbe674d53f5da8037eebc02782d0973051e519a88417fe0e4f7a39583898633a438667052c35de2d8fae1de08617c252dcf0d0e306fba786ba61848a SHA512 97d87c9868038c018e0ac87e750d9d103ace843d552f9ceb91800255d4a0ad2b533168561fd151ff345dcf2dd12a6bb20257fa56c6f2b72940ced41925ae8974
DIST minizip-ng-4.0.8-55db144.tar.gz 771754 BLAKE2B da8cc94e7a6539f402a95e8f7ac43295703f2a57e55a2cfe4fc828fa6724e56b24534e10b2afd31987295fef646c03a2c563362efca25e6ce5a66f0c0647cebd SHA512 0539b5deb6a02be3bac7b0dfe277cfc263ff925cd67867bd849cdc37ffc421566499de300f5905d260147d58c86571c24c43d428c61431a8815c5561cfacae40
91 changes: 91 additions & 0 deletions sys-libs/minizip-ng/minizip-ng-4.0.10.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# Distributed under the terms of the GNU General Public License v2

EAPI=7

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/tarball/f3ed731e27a97e30dffe076ed5e0537daae5c1bd -> minizip-ng-4.0.10-f3ed731.tar.gz"

LICENSE="ZLIB"
SLOT="0"
KEYWORDS="*"
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}
test? ( dev-cpp/gtest )
"

post_src_unpack() {
mv ${WORKDIR}/zlib-ng-minizip-ng-* ${S} || die
}


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)
# MZ_LIBBSD -- Builds with libbsd crypto random
# Turning this option on breaks compilation on Funtoo next
# https://bugs.funtoo.org/browse/FL-10883
-DMZ_LIBBSD=OFF
-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
}