Hi Khem,

On Sat, Jul 25, 2026 at 1:44 AM Khem Raj <[email protected]> wrote:
>
> I am good with this moving to core, it justifies its existence there. Couple 
> of things I would ask for.
> Please look into adding ptest support, it does have unit tests. I assume you 
> will send a removal patch to oe-devel
> once its merged here.

Thank you for taking a look at this.

I looked into adding ptest support. It turns out libzip's test suite
can't be run with ctest alone:
all 182 test cases are declarative .test files executed by nihtest
[1], a test driver written by the
libzip author. CMake hard-disables the suite when nihtest is not found
(find_program(NIHTEST nihtest) ->
"nihtest not found, regression testing disabled"), and every
add_test() entry the suite registers
is just an invocation of nihtest -v <case>.test.

So ptest support for libzip implies a bit of overhead - pulling one
more package into OE-Core:
a python3-nihtest recipe (pure Python, around 1.5k LOC, no
dependencies beyond the python3 stdlib,
BSD-3-Clause). It also means the ptest image needs python3 to test a C library.

Are you fine with the additional recipe? If so, I'll send a v2 as a
two-patch series (python3-nihtest +
libzip with ptest support).

Regarding the removal patch to oe-devel - sure, this is already in my todo list.

[1] https://github.com/nih-at/nihtest

> On Fri, Jul 24, 2026 at 6:15 AM Igor Opaniuk via lists.openembedded.org 
> <[email protected]> wrote:
>>
>> Recent versions of the qdl tool [1], used for flashing and provisioning
>> Qualcomm-based boards, depend on libzip in order to flash images
>> directly from zip-compressed flat builds without unpacking them: the
>> device requests individual images on demand (in Sahara/Firehose
>> device-driven order), which requires random access to archive members
>> by name. Neither zlib (byte-stream compression only, no container
>> format support) nor libarchive (streaming, sequential access only)
>> covers this use case.
>>
>> qdl recipes are provided by the Qualcomm BSP layer (e.g. meta-qcom [2])
>> and board flashing is core BSP functionality. Recipes from other layers
>> also depend on libzip (libsigrok, idevicerestore and php in meta-oe,
>> localsearch in meta-gnome), so it makes sense to move libzip to
>> OE-Core in order to reduce inter-layer dependencies, following the
>> example of commit 1a0196a794 ("libconfig: import recipe from meta-oe").
>>
>> Changes between meta-oe and this recipe:
>> - Added SUMMARY, BUGTRACKER and SECTION
>> - Fixed the tools and examples PACKAGECONFIGs to use the actual
>>   BUILD_TOOLS and BUILD_EXAMPLES CMake options (ENABLE_TOOLS and
>>   ENABLE_EXAMPLES do not exist and were silently ignored)
>> - Fixed the tests PACKAGECONFIG to use BUILD_REGRESS consistently
>> - Dropped the mbedtls PACKAGECONFIG, as mbedtls is not in OE-Core
>> - Extended BBCLASSEXTEND with nativesdk
>>
>> [1] https://github.com/linux-msm/qdl
>> [2] https://github.com/qualcomm-linux/meta-qcom
>> Signed-off-by: Igor Opaniuk <[email protected]>
>> ---
>>  meta/conf/distro/include/maintainers.inc      |  1 +
>>  meta/recipes-extended/libzip/libzip_1.11.4.bb | 30 +++++++++++++++++++
>>  2 files changed, 31 insertions(+)
>>  create mode 100644 meta/recipes-extended/libzip/libzip_1.11.4.bb
>>
>> diff --git a/meta/conf/distro/include/maintainers.inc 
>> b/meta/conf/distro/include/maintainers.inc
>> index b49386a27d..eac288126a 100644
>> --- a/meta/conf/distro/include/maintainers.inc
>> +++ b/meta/conf/distro/include/maintainers.inc
>> @@ -469,6 +469,7 @@ RECIPE_MAINTAINER:pn-libxv = "Unassigned 
>> <[email protected]>"
>>  RECIPE_MAINTAINER:pn-libxvmc = "Unassigned <[email protected]>"
>>  RECIPE_MAINTAINER:pn-libxxf86vm = "Unassigned <[email protected]>"
>>  RECIPE_MAINTAINER:pn-libyaml = "Wang Mingyu <[email protected]>"
>> +RECIPE_MAINTAINER:pn-libzip = "Igor Opaniuk <[email protected]>"
>>  RECIPE_MAINTAINER:pn-lighttpd = "Unassigned <[email protected]>"
>>  RECIPE_MAINTAINER:pn-linux-dummy = "Unassigned 
>> <[email protected]>"
>>  RECIPE_MAINTAINER:pn-linux-firmware = "Vivek Puar <[email protected]>"
>> diff --git a/meta/recipes-extended/libzip/libzip_1.11.4.bb 
>> b/meta/recipes-extended/libzip/libzip_1.11.4.bb
>> new file mode 100644
>> index 0000000000..36f7d1faf5
>> --- /dev/null
>> +++ b/meta/recipes-extended/libzip/libzip_1.11.4.bb
>> @@ -0,0 +1,30 @@
>> +SUMMARY = "C library for reading, creating, and modifying zip archives"
>> +DESCRIPTION = "libzip is a C library for reading, creating, and modifying \
>> +zip archives. Files can be added from data buffers, files, or compressed \
>> +data copied directly from other zip archives. Changes made without closing \
>> +the archive can be reverted."
>> +HOMEPAGE = "https://libzip.org/";
>> +BUGTRACKER = "https://github.com/nih-at/libzip/issues";
>> +SECTION = "libs"
>> +
>> +LICENSE = "BSD-3-Clause"
>> +LIC_FILES_CHKSUM = "file://LICENSE;md5=d8a9d2078f35e61cf1122ccd440687cf"
>> +
>> +DEPENDS = "zlib bzip2"
>> +
>> +SRC_URI = "https://libzip.org/download/libzip-${PV}.tar.xz";
>> +SRC_URI[sha256sum] = 
>> "8a247f57d1e3e6f6d11413b12a6f28a9d388de110adc0ec608d893180ed7097b"
>> +
>> +inherit cmake
>> +
>> +PACKAGECONFIG ?= "ssl lzma tools examples"
>> +
>> +PACKAGECONFIG[ssl] = "-DENABLE_OPENSSL=ON,-DENABLE_OPENSSL=OFF,openssl"
>> +PACKAGECONFIG[gnutls] = "-DENABLE_GNUTLS=ON,-DENABLE_GNUTLS=OFF,gnutls 
>> nettle"
>> +PACKAGECONFIG[lzma] = "-DENABLE_LZMA=ON,-DENABLE_LZMA=OFF,xz"
>> +PACKAGECONFIG[zstd] = "-DENABLE_ZSTD=ON,-DENABLE_ZSTD=OFF,zstd"
>> +PACKAGECONFIG[tools] = "-DBUILD_TOOLS=ON,-DBUILD_TOOLS=OFF"
>> +PACKAGECONFIG[examples] = "-DBUILD_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF"
>> +PACKAGECONFIG[tests] = "-DBUILD_REGRESS=ON,-DBUILD_REGRESS=OFF"
>> +
>> +BBCLASSEXTEND = "native nativesdk"
>> --
>> 2.53.0
>>
>>
>> 
>>

Best regards,
Igor
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#242014): 
https://lists.openembedded.org/g/openembedded-core/message/242014
Mute This Topic: https://lists.openembedded.org/mt/120425404/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to