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

Khem Raj <[email protected]>
Newsgroups org.openembedded.lists.openembedded-devel
Message-ID <[email protected]>
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 <[email protected]>
---
 ...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 --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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.