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 <khem.raj@oss.qualcomm.com>
This commit is contained in:
Khem Raj
2026-08-06 13:41:01 +00:00
parent 83294dcfbc
commit bdc9913b3f
2 changed files with 40 additions and 29 deletions
@@ -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})"
@@ -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})"