diff mbox series

[meta-networking,107/109] restinio: upgrade 0.6.19 -> 0.7.9.1

Message ID 20260815025044.437694-8-khem.raj@oss.qualcomm.com
State New
Headers show
Series [meta-python] python3-pystemd: add python3-wheel-native to DEPENDS | expand

Commit Message

Khem Raj Aug. 15, 2026, 2:50 a.m. UTC
restinio 0.7.x is a major architectural change from 0.6.x: the release
tarball no longer bundles any of its third-party dependencies
(http_parser, expected-lite, fmt, catch2, sobjectizer). They must now
be supplied externally and resolved through find_package()/system
linkage. This requires two new supporting recipes added in prior
commits: llhttp (replacement for the now-dropped http_parser) and
expected-lite (nonstd::expected backport, now required unconditionally
instead of restinio's old embedded fallback). asio, fmt and catch2
dependencies are already satisfied by existing recipes in the tree.

Recipe changes:
- Release tag format changed from "v.X.Y.Z" to "vX.Y.Z"; update
  SRC_URI and SRC_URI[sha256sum] accordingly.
- LIC_FILES_CHKSUM md5 updated for the new tarball's root LICENSE file.
- DEPENDS: drop http-parser, add llhttp and expected-lite.
- EXTRA_OECMAKE: RESTINIO_FIND_DEPS and RESTINIO_USE_EXTERNAL_HTTP_PARSER
  were removed upstream. RESTINIO_BENCH renamed to RESTINIO_BENCHMARK,
  RESTINIO_ALLOW_SOBJECTIZER renamed to RESTINIO_WITH_SOBJECTIZER (kept
  disabled). Added RESTINIO_DEP_STANDALONE_ASIO=find,
  RESTINIO_DEP_FMT=find and RESTINIO_DEP_EXPECTED_LITE=find so restinio's
  CMakeLists.txt resolves these via find_package() instead of trying to
  add_subdirectory() vendored sources that no longer exist in the
  tarball. RESTINIO_DEP_LLHTTP=system is used instead of "find" because
  llhttp's own CMakeLists.txt only exports an "llhttp::llhttp_shared"
  imported target (llhttp::llhttp is just a build-tree ALIAS, never
  installed/exported), which restinio's dependency-resolution logic
  does not recognize as a valid find_package() target name.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
---
 ...restinio_0.6.19.bb => restinio_0.7.9.1.bb} | 27 +++++++++++++------
 1 file changed, 19 insertions(+), 8 deletions(-)
 rename meta-networking/recipes-connectivity/restinio/{restinio_0.6.19.bb => restinio_0.7.9.1.bb} (38%)
diff mbox series

Patch

diff --git a/meta-networking/recipes-connectivity/restinio/restinio_0.6.19.bb b/meta-networking/recipes-connectivity/restinio/restinio_0.7.9.1.bb
similarity index 38%
rename from meta-networking/recipes-connectivity/restinio/restinio_0.6.19.bb
rename to meta-networking/recipes-connectivity/restinio/restinio_0.7.9.1.bb
index 22dd4ada13..193e9de81a 100644
--- a/meta-networking/recipes-connectivity/restinio/restinio_0.6.19.bb
+++ b/meta-networking/recipes-connectivity/restinio/restinio_0.7.9.1.bb
@@ -5,23 +5,34 @@  DESCRIPTION = "Cross-platform, efficient, customizable, and robust \
 HOMEPAGE = "https://stiffstream.com/en/products/restinio.html"
 SECTION = "libs"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=bfe2747443b7875eaaaa94b55b611f49"
-DEPENDS = "asio fmt http-parser"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=d9ef67870895758240c3889695ad2558"
+DEPENDS = "asio fmt llhttp expected-lite"
 
-SRC_URI = "https://github.com/Stiffstream/restinio/releases/download/v.${PV}/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "7f21eebeb966e170d6ab54e9b198ac927d439090121739e037c0fa3bb367b240"
+SRC_URI = "https://github.com/Stiffstream/restinio/releases/download/v${PV}/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "4a0429e2ea4ece200228226f0c628ecf9ac111cb6a6b12ad857de84c0576bf80"
 
 S = "${UNPACKDIR}/${BP}/dev"
 
 inherit cmake
 
+# restinio 0.7.x no longer bundles its third-party dependencies in the
+# release tarball (unlike 0.6.x). fmt and expected-lite are resolved via
+# find_package() against externally-provided packages. llhttp's upstream
+# CMakeLists.txt only exports an "llhttp::llhttp_shared" imported target
+# (llhttp::llhttp is merely a build-tree ALIAS, never installed/exported),
+# which restinio's dev/restinio/CMakeLists.txt does not recognize as a
+# valid find_package() target name, so llhttp is consumed in "system"
+# mode instead (plain -lllhttp against the sysroot). The optional
+# sobjectizer integration is disabled since we don't need it.
 EXTRA_OECMAKE += "\
                   -DRESTINIO_TEST=OFF \
                   -DRESTINIO_SAMPLE=OFF \
-                  -DRESTINIO_BENCH=OFF \
-                  -DRESTINIO_FIND_DEPS=ON \
-                  -DRESTINIO_ALLOW_SOBJECTIZER=OFF \
-                  -DRESTINIO_USE_EXTERNAL_HTTP_PARSER=ON \
+                  -DRESTINIO_BENCHMARK=OFF \
+                  -DRESTINIO_WITH_SOBJECTIZER=OFF \
+                  -DRESTINIO_DEP_STANDALONE_ASIO=find \
+                  -DRESTINIO_DEP_LLHTTP=system \
+                  -DRESTINIO_DEP_FMT=find \
+                  -DRESTINIO_DEP_EXPECTED_LITE=find \
                   "
 
 # Header-only library