From 7840c5e2c7f71346dbd0e43bf1c87c0616ed653a Mon Sep 17 00:00:00 2001 From: Mingli Yu Date: Wed, 2 Apr 2025 15:45:40 +0800 Subject: [PATCH] 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 Signed-off-by: Khem Raj --- ...0001-crypt.h-Remove-register-keyword.patch | 35 ++++++++++++++++++ .../minizip-ng/minizip-ng_4.0.8.bb | 36 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 meta-oe/recipes-core/minizip-ng/minizip-ng/0001-crypt.h-Remove-register-keyword.patch create mode 100644 meta-oe/recipes-core/minizip-ng/minizip-ng_4.0.8.bb diff --git a/meta-oe/recipes-core/minizip-ng/minizip-ng/0001-crypt.h-Remove-register-keyword.patch b/meta-oe/recipes-core/minizip-ng/minizip-ng/0001-crypt.h-Remove-register-keyword.patch new file mode 100644 index 0000000000..c471b098d4 --- /dev/null +++ b/meta-oe/recipes-core/minizip-ng/minizip-ng/0001-crypt.h-Remove-register-keyword.patch @@ -0,0 +1,35 @@ +From 469beab0747549599959a30188deb3b27df3a346 Mon Sep 17 00:00:00 2001 +From: Mingli Yu +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 +--- + 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 + diff --git a/meta-oe/recipes-core/minizip-ng/minizip-ng_4.0.8.bb b/meta-oe/recipes-core/minizip-ng/minizip-ng_4.0.8.bb new file mode 100644 index 0000000000..14363d2278 --- /dev/null +++ b/meta-oe/recipes-core/minizip-ng/minizip-ng_4.0.8.bb @@ -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 +} +