From ab3a450b0bddf0f2eeb892606cc1d228bdb99c28 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 6 Aug 2026 13:41:01 +0000 Subject: [PATCH] restinio: upgrade 0.6.19 -> 0.7.9.1 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 --- .../restinio/restinio_0.6.19.bb | 29 -------------- .../restinio/restinio_0.7.9.1.bb | 40 +++++++++++++++++++ 2 files changed, 40 insertions(+), 29 deletions(-) delete mode 100644 meta-networking/recipes-connectivity/restinio/restinio_0.6.19.bb create mode 100644 meta-networking/recipes-connectivity/restinio/restinio_0.7.9.1.bb diff --git a/meta-networking/recipes-connectivity/restinio/restinio_0.6.19.bb b/meta-networking/recipes-connectivity/restinio/restinio_0.6.19.bb deleted file mode 100644 index 22dd4ada13..0000000000 --- a/meta-networking/recipes-connectivity/restinio/restinio_0.6.19.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Header-only C++14 library that gives you an embedded HTTP server" -DESCRIPTION = "Cross-platform, efficient, customizable, and robust \ - asynchronous HTTP/WebSocket server C++14 library with the \ - right balance between performance and ease of use" -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" - -SRC_URI = "https://github.com/Stiffstream/restinio/releases/download/v.${PV}/${BP}.tar.bz2" -SRC_URI[sha256sum] = "7f21eebeb966e170d6ab54e9b198ac927d439090121739e037c0fa3bb367b240" - -S = "${UNPACKDIR}/${BP}/dev" - -inherit cmake - -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 \ - " - -# Header-only library -RDEPENDS:${PN}-dev = "" -RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" diff --git a/meta-networking/recipes-connectivity/restinio/restinio_0.7.9.1.bb b/meta-networking/recipes-connectivity/restinio/restinio_0.7.9.1.bb new file mode 100644 index 0000000000..193e9de81a --- /dev/null +++ b/meta-networking/recipes-connectivity/restinio/restinio_0.7.9.1.bb @@ -0,0 +1,40 @@ +SUMMARY = "Header-only C++14 library that gives you an embedded HTTP server" +DESCRIPTION = "Cross-platform, efficient, customizable, and robust \ + asynchronous HTTP/WebSocket server C++14 library with the \ + right balance between performance and ease of use" +HOMEPAGE = "https://stiffstream.com/en/products/restinio.html" +SECTION = "libs" +LICENSE = "BSD-3-Clause" +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] = "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_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 +RDEPENDS:${PN}-dev = "" +RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"