minizip-ng: Add new recipe

minizip-ng is a zip manipulation library written in C that is supported
on Windows, macOS, and Linux.

minizip-ng has new features and bug fixes compared to the original library
minizip [1] which had not been maintained for a long period of time.

[1] https://github.com/madler/zlib/tree/master/contrib/minizip

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Mingli Yu
2025-04-02 15:45:40 +08:00
committed by Khem Raj
parent f452fa2fce
commit 7840c5e2c7
2 changed files with 71 additions and 0 deletions
@@ -0,0 +1,35 @@
From 469beab0747549599959a30188deb3b27df3a346 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Wed, 2 Apr 2025 11:19:54 +0800
Subject: [PATCH] crypt.h: Remove register keyword
Fixes:
| In file included from /buildarea/tmp/work/core2-64-poky-linux/minizip-ng/4.0.8/git/test/test_compat.cc:17:
| /buildarea/tmp/work/core2-64-poky-linux/minizip-ng/4.0.8/git/compat/crypt.h:62:9: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
| 62 | register int keyshift = (int)((*(pkeys + 1)) >> 24);
| | ^~~~~~~~
| 1 error generated.
Upstream-Status: Submitted [https://github.com/zlib-ng/minizip-ng/pull/853]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
compat/crypt.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/compat/crypt.h b/compat/crypt.h
index 41c6454..ccdd83a 100644
--- a/compat/crypt.h
+++ b/compat/crypt.h
@@ -59,7 +59,7 @@ static int update_keys(unsigned long *pkeys, const z_crc_t *pcrc_32_tab, int c)
(*(pkeys + 1)) += (*(pkeys + 0)) & 0xff;
(*(pkeys + 1)) = (*(pkeys + 1)) * 134775813L + 1;
{
- register int keyshift = (int)((*(pkeys + 1)) >> 24);
+ int keyshift = (int)((*(pkeys + 1)) >> 24);
(*(pkeys + 2)) = CRC32((*(pkeys + 2)), keyshift);
}
return c;
--
2.34.1
@@ -0,0 +1,36 @@
SUMMARY = "Zlib manipulation Library"
DESCRIPTION = "minizip-ng is a zip manipulation library written in C that is supported \
on Windows, macOS, and Linux."
HOMEPAGE = "https://github.com/zlib-ng/minizip-ng"
SECTION = "libs"
LICENSE = "Zlib"
LIC_FILES_CHKSUM = "file://LICENSE;md5=36964f044224efeedd694983c34e716f"
SRC_URI = "git://github.com/zlib-ng/minizip-ng.git;protocol=https;branch=master \
file://0001-crypt.h-Remove-register-keyword.patch \
"
SRCREV = "55db144e03027b43263e5ebcb599bf0878ba58de"
S = "${WORKDIR}/git"
RCONFLICTS:${PN} += "minizip"
DEPENDS = "xz openssl bzip2"
inherit cmake pkgconfig
EXTRA_OECMAKE = "-DMZ_FORCE_FETCH_LIBS=OFF \
-DBUILD_SHARED_LIBS=ON \
"
PACKAGECONFIG ??= "zlib"
PACKAGECONFIG[zlib] = "-DMZ_ZLIB=ON,-DMZ_ZLIB=OFF, zlib"
PACKAGECONFIG[zlib-ng] = "-DMZ_ZLIB=ON,-DMZ_ZLIB=OFF, zlib-ng"
do_install:append () {
# remove absolute paths
sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/minizip/minizip.cmake
}