diff mbox series

libzip: import recipe from meta-oe

Message ID 20260724131537.1058940-1-igor.opaniuk@oss.qualcomm.com
State Under Review
Headers show
Series libzip: import recipe from meta-oe | expand

Commit Message

Igor Opaniuk July 24, 2026, 1:15 p.m. UTC
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 <igor.opaniuk@oss.qualcomm.com>
---
 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

Comments

Khem Raj July 24, 2026, 11:43 p.m. UTC | #1
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.

On Fri, Jul 24, 2026 at 6:15 AM Igor Opaniuk via lists.openembedded.org
<igor.opaniuk=oss.qualcomm.com@lists.openembedded.org> 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 <igor.opaniuk@oss.qualcomm.com>
> ---
>  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 <
> unassigned@yoctoproject.org>"
>  RECIPE_MAINTAINER:pn-libxvmc = "Unassigned <unassigned@yoctoproject.org>"
>  RECIPE_MAINTAINER:pn-libxxf86vm = "Unassigned <
> unassigned@yoctoproject.org>"
>  RECIPE_MAINTAINER:pn-libyaml = "Wang Mingyu <wangmy@fujitsu.com>"
> +RECIPE_MAINTAINER:pn-libzip = "Igor Opaniuk <
> igor.opaniuk@oss.qualcomm.com>"
>  RECIPE_MAINTAINER:pn-lighttpd = "Unassigned <unassigned@yoctoproject.org
> >"
>  RECIPE_MAINTAINER:pn-linux-dummy = "Unassigned <
> unassigned@yoctoproject.org>"
>  RECIPE_MAINTAINER:pn-linux-firmware = "Vivek Puar <vpuar@qti.qualcomm.com
> >"
> 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
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#241932):
> https://lists.openembedded.org/g/openembedded-core/message/241932
> Mute This Topic: https://lists.openembedded.org/mt/120425404/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
diff mbox series

Patch

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 <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libxvmc = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libxxf86vm = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libyaml = "Wang Mingyu <wangmy@fujitsu.com>"
+RECIPE_MAINTAINER:pn-libzip = "Igor Opaniuk <igor.opaniuk@oss.qualcomm.com>"
 RECIPE_MAINTAINER:pn-lighttpd = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-linux-dummy = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-linux-firmware = "Vivek Puar <vpuar@qti.qualcomm.com>"
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"