diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
| commit | b590c8d7572b727d565cc0b8ff660d43569845de (patch) | |
| tree | 06f7a4102ea4e845df8b66660f252920d52952f9 /dev-cpp/cpp-httplib | |
| parent | 24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff) | |
| download | baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip | |
Diffstat (limited to 'dev-cpp/cpp-httplib')
| -rw-r--r-- | dev-cpp/cpp-httplib/Manifest | 6 | ||||
| -rw-r--r-- | dev-cpp/cpp-httplib/cpp-httplib-0.26.0.ebuild | 88 | ||||
| -rw-r--r-- | dev-cpp/cpp-httplib/cpp-httplib-0.27.0.ebuild | 92 | ||||
| -rw-r--r-- | dev-cpp/cpp-httplib/cpp-httplib-0.28.0.ebuild | 89 | ||||
| -rw-r--r-- | dev-cpp/cpp-httplib/cpp-httplib-0.32.0.ebuild | 103 | ||||
| -rw-r--r-- | dev-cpp/cpp-httplib/cpp-httplib-0.37.0.ebuild | 100 | ||||
| -rw-r--r-- | dev-cpp/cpp-httplib/cpp-httplib-0.38.0.ebuild | 100 | ||||
| -rw-r--r-- | dev-cpp/cpp-httplib/files/0.27.0-fixpidtest.patch | 109 | ||||
| -rw-r--r-- | dev-cpp/cpp-httplib/files/cpp-httplib-0.32.0-cmake-mbedtls.patch | 181 | ||||
| -rw-r--r-- | dev-cpp/cpp-httplib/metadata.xml | 19 |
10 files changed, 887 insertions, 0 deletions
diff --git a/dev-cpp/cpp-httplib/Manifest b/dev-cpp/cpp-httplib/Manifest new file mode 100644 index 000000000000..e0a3b636789a --- /dev/null +++ b/dev-cpp/cpp-httplib/Manifest @@ -0,0 +1,6 @@ +DIST cpp-httplib-0.26.0.tar.gz 1305573 BLAKE2B 4fcb11a4d3af71fa5b67f2dac7c0f3e0a5cae6ed2bf527686ca05dd03b4a91042dfdcfb068b5dc7dd58fd31a537a44ae6f38df7c5d87a1973e3ff738a51dd946 SHA512 b364500f76e2ecb0fe21b032d831272e3f1dfeea71af74e325f8fc4ce9dcdb3c941b97a5b422bdeafb9facd058597b90f8bfc284fb9afe3c33fefa15dd5a010b +DIST cpp-httplib-0.27.0.tar.gz 1311061 BLAKE2B b273d9ac6a79d74b47d27b49357f0d9ae61501cecba21b61cd53a74d056b9acdaeba530cdfd02111debaadab15c9076e44727997be32de3947eaf16ecdc846c5 SHA512 884d6be8209d8128af2b11c35d7fc592d8a236a65cdcd9b123a77aa73fbd0dbd03c1cbe17cf4dd92797b06d312c9476d59646b9034d8e559095852b021138acc +DIST cpp-httplib-0.28.0.tar.gz 1312543 BLAKE2B af3d76280bf7299575e04cafd058f7bc223481d5c0316cc8a5d87850de6243174e138be0625e5939ff1c815003ba45c556d14f04b20a26c67bdca313b75e133c SHA512 e7a8877d489c97669a8ee536e1498575be921e558ed947253013fe6b67a49d4569eedd01f543caa70183b92d8ac0e8687d662a70d880954412e387317008a239 +DIST cpp-httplib-0.32.0.tar.gz 1380621 BLAKE2B 501e9f6f4076d2a6b2b1526d9b2d39effdd382d9967d546f157472ac4ec9943d6b35fdb66825a3e000698f6be5b7ead6d5ddd658841f24c6da0e8babc424a89f SHA512 09ab022b36ac6a7faf73863a504c460edb975669edfbf6323a4d42d3e4e38e4b6e63bc95ee39b29871730abf5205f9a3bd1ff9a04fc8ba921f1ecf6c357deef4 +DIST cpp-httplib-0.37.0.tar.gz 1448679 BLAKE2B 393286afc934b9ee2355cea504ff9ddcbecab3b3237c3c35292737a73e20c6f2338157abc8b8922126c3a360eeb43475262bf3f24250751374082cf172412d90 SHA512 5efa8140aadffe105dcf39935b732476e95755f6c7473ada3d0b64df2bc02c557633ae3948a25b45e1cf67e89a3ff6329fb30362e4ac033b9a1d1e453aa2eded +DIST cpp-httplib-0.38.0.tar.gz 1458103 BLAKE2B d94aad7aeef09770473e93c7ef88951a9911f98a2d0d77bc3a0ae9bd0e7868eb92ad57b49d381c1e6b5ea8229e1f3c5a9f28823277c20daa994d17e212176bbd SHA512 d8dfd5a447db4d6eb2a92c498af18cb3bf999ed43ef9a9552a8781f9c23597a3d178d2a15f5fa0afb68f2ec278080e6d4808cef5cfa68a8ed5f0c57b42bdbee7 diff --git a/dev-cpp/cpp-httplib/cpp-httplib-0.26.0.ebuild b/dev-cpp/cpp-httplib/cpp-httplib-0.26.0.ebuild new file mode 100644 index 000000000000..a153bd018b9f --- /dev/null +++ b/dev-cpp/cpp-httplib/cpp-httplib-0.26.0.ebuild @@ -0,0 +1,88 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit cmake-multilib python-any-r1 toolchain-funcs + +DESCRIPTION="C++ HTTP/HTTPS server and client library" +HOMEPAGE="https://github.com/yhirose/cpp-httplib/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/yhirose/${PN}.git" +else + SRC_URI="https://github.com/yhirose/${PN}/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +fi + +LICENSE="MIT" +SLOT="0/$(ver_cut 0-2)" # soversion + +IUSE="brotli ssl test zlib zstd" +RESTRICT="!test? ( test )" + +RDEPEND=" + brotli? ( + app-arch/brotli:=[${MULTILIB_USEDEP}] + ) + ssl? ( + >=dev-libs/openssl-3.0.13:=[${MULTILIB_USEDEP}] + ) + zlib? ( + virtual/zlib:=[${MULTILIB_USEDEP}] + ) + zstd? ( + app-arch/zstd[${MULTILIB_USEDEP}] + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + ${PYTHON_DEPS} + virtual/pkgconfig +" + +src_configure() { + local -a mycmakeargs=( + -DHTTPLIB_COMPILE=yes + -DBUILD_SHARED_LIBS=yes + -DHTTPLIB_USE_BROTLI_IF_AVAILABLE=no + -DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=no + -DHTTPLIB_USE_ZLIB_IF_AVAILABLE=no + -DHTTPLIB_USE_ZSTD_IF_AVAILABLE=no + -DHTTPLIB_REQUIRE_BROTLI=$(usex brotli) + -DHTTPLIB_REQUIRE_OPENSSL=$(usex ssl) + -DHTTPLIB_REQUIRE_ZLIB=$(usex zlib) + -DHTTPLIB_REQUIRE_ZSTD=$(usex zstd) + -DPython3_EXECUTABLE="${PYTHON}" + ) + cmake-multilib_src_configure +} + +multilib_src_test() { + cp -p -R --reflink=auto "${S}/test" ./test || die + + local -a failing_tests=( + # Disable all online tests. + "*.*_Online" + + # Fails on musl x86: + ServerTest.GetRangeWithMaxLongLength + ServerTest.GetStreamedWithTooManyRanges + ) + + # Little dance to please the GTEST filter (join array using ":"). + failing_tests_str="${failing_tests[@]}" + failing_tests_filter="${failing_tests_str// /:}" + + # PREFIX is . to avoid calling "brew" and relying on stuff in /opt + GTEST_FILTER="-${failing_tests_filter}" emake -C test \ + CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS} -I." PREFIX=. +} diff --git a/dev-cpp/cpp-httplib/cpp-httplib-0.27.0.ebuild b/dev-cpp/cpp-httplib/cpp-httplib-0.27.0.ebuild new file mode 100644 index 000000000000..e43532a47cfe --- /dev/null +++ b/dev-cpp/cpp-httplib/cpp-httplib-0.27.0.ebuild @@ -0,0 +1,92 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit cmake-multilib python-any-r1 toolchain-funcs + +DESCRIPTION="C++ HTTP/HTTPS server and client library" +HOMEPAGE="https://github.com/yhirose/cpp-httplib/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/yhirose/${PN}.git" +else + SRC_URI="https://github.com/yhirose/${PN}/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="MIT" +SLOT="0/$(ver_cut 0-2)" # soversion + +IUSE="brotli ssl test zlib zstd" +RESTRICT="!test? ( test )" + +RDEPEND=" + brotli? ( + app-arch/brotli:=[${MULTILIB_USEDEP}] + ) + ssl? ( + >=dev-libs/openssl-3.0.13:=[${MULTILIB_USEDEP}] + ) + zlib? ( + virtual/zlib:=[${MULTILIB_USEDEP}] + ) + zstd? ( + app-arch/zstd[${MULTILIB_USEDEP}] + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + ${PYTHON_DEPS} + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/${PV}-fixpidtest.patch +) + +src_configure() { + local -a mycmakeargs=( + -DHTTPLIB_COMPILE=yes + -DBUILD_SHARED_LIBS=yes + -DHTTPLIB_USE_BROTLI_IF_AVAILABLE=no + -DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=no + -DHTTPLIB_USE_ZLIB_IF_AVAILABLE=no + -DHTTPLIB_USE_ZSTD_IF_AVAILABLE=no + -DHTTPLIB_REQUIRE_BROTLI=$(usex brotli) + -DHTTPLIB_REQUIRE_OPENSSL=$(usex ssl) + -DHTTPLIB_REQUIRE_ZLIB=$(usex zlib) + -DHTTPLIB_REQUIRE_ZSTD=$(usex zstd) + -DPython3_EXECUTABLE="${PYTHON}" + ) + cmake-multilib_src_configure +} + +multilib_src_test() { + cp -p -R --reflink=auto "${S}/test" ./test || die + + local -a failing_tests=( + # Disable all online tests. + "*.*_Online" + + # Fails on musl x86: + ServerTest.GetRangeWithMaxLongLength + ServerTest.GetStreamedWithTooManyRanges + ) + + # Little dance to please the GTEST filter (join array using ":"). + failing_tests_str="${failing_tests[@]}" + failing_tests_filter="${failing_tests_str// /:}" + + # PREFIX is . to avoid calling "brew" and relying on stuff in /opt + GTEST_FILTER="-${failing_tests_filter}" emake -C test \ + CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS} -I." PREFIX=. +} diff --git a/dev-cpp/cpp-httplib/cpp-httplib-0.28.0.ebuild b/dev-cpp/cpp-httplib/cpp-httplib-0.28.0.ebuild new file mode 100644 index 000000000000..2da8a068abbb --- /dev/null +++ b/dev-cpp/cpp-httplib/cpp-httplib-0.28.0.ebuild @@ -0,0 +1,89 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit cmake-multilib python-any-r1 toolchain-funcs + +DESCRIPTION="C++ HTTP/HTTPS server and client library" +HOMEPAGE="https://github.com/yhirose/cpp-httplib/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/yhirose/${PN}.git" +else + SRC_URI="https://github.com/yhirose/${PN}/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="MIT" +SLOT="0/$(ver_cut 0-2)" # soversion + +IUSE="brotli ssl test zlib zstd" +REQUIRED_USE="test? ( brotli zlib zstd )" +RESTRICT="!test? ( test )" + +RDEPEND=" + brotli? ( + app-arch/brotli:=[${MULTILIB_USEDEP}] + ) + ssl? ( + >=dev-libs/openssl-3.0.13:=[${MULTILIB_USEDEP}] + ) + zlib? ( + virtual/zlib:=[${MULTILIB_USEDEP}] + ) + zstd? ( + app-arch/zstd[${MULTILIB_USEDEP}] + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + ${PYTHON_DEPS} + virtual/pkgconfig +" + +src_configure() { + local -a mycmakeargs=( + -DHTTPLIB_COMPILE=yes + -DHTTPLIB_SHARED=yes + -DHTTPLIB_USE_BROTLI_IF_AVAILABLE=no + -DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=no + -DHTTPLIB_USE_ZLIB_IF_AVAILABLE=no + -DHTTPLIB_USE_ZSTD_IF_AVAILABLE=no + -DHTTPLIB_REQUIRE_BROTLI=$(usex brotli) + -DHTTPLIB_REQUIRE_OPENSSL=$(usex ssl) + -DHTTPLIB_REQUIRE_ZLIB=$(usex zlib) + -DHTTPLIB_REQUIRE_ZSTD=$(usex zstd) + -DPython3_EXECUTABLE="${PYTHON}" + ) + cmake-multilib_src_configure +} + +multilib_src_test() { + cp -p -R --reflink=auto "${S}/test" ./test || die + + local -a failing_tests=( + # Disable all online tests. + "*.*_Online" + + # Fails on musl x86: + ServerTest.GetRangeWithMaxLongLength + ServerTest.GetStreamedWithTooManyRanges + ) + + # Little dance to please the GTEST filter (join array using ":"). + failing_tests_str="${failing_tests[@]}" + failing_tests_filter="${failing_tests_str// /:}" + + # PREFIX is . to avoid calling "brew" and relying on stuff in /opt + GTEST_FILTER="-${failing_tests_filter}" emake -C test \ + CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS} -I." PREFIX=. +} diff --git a/dev-cpp/cpp-httplib/cpp-httplib-0.32.0.ebuild b/dev-cpp/cpp-httplib/cpp-httplib-0.32.0.ebuild new file mode 100644 index 000000000000..49fb3b4535f6 --- /dev/null +++ b/dev-cpp/cpp-httplib/cpp-httplib-0.32.0.ebuild @@ -0,0 +1,103 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit cmake-multilib python-any-r1 toolchain-funcs + +DESCRIPTION="C++ HTTP/HTTPS server and client library" +HOMEPAGE="https://github.com/yhirose/cpp-httplib/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/yhirose/${PN}.git" +else + SRC_URI="https://github.com/yhirose/${PN}/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="MIT" +SLOT="0/$(ver_cut 0-2)" # soversion + +IUSE="brotli mbedtls ssl test zlib zstd" +REQUIRED_USE="test? ( brotli zlib zstd )" +RESTRICT="!test? ( test )" + +RDEPEND=" + brotli? ( + app-arch/brotli:=[${MULTILIB_USEDEP}] + ) + ssl? ( + mbedtls? ( net-libs/mbedtls:3=[${MULTILIB_USEDEP}] ) + !mbedtls? ( >=dev-libs/openssl-3.0.13:=[${MULTILIB_USEDEP}] ) + ) + zlib? ( + virtual/zlib:=[${MULTILIB_USEDEP}] + ) + zstd? ( + app-arch/zstd[${MULTILIB_USEDEP}] + ) +" +DEPEND=" + ${RDEPEND} + test? ( + dev-cpp/gtest + dev-libs/openssl + net-misc/curl + ) +" +BDEPEND=" + ${PYTHON_DEPS} + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}/cpp-httplib-0.32.0-cmake-mbedtls.patch" +) + +src_configure() { + local -a mycmakeargs=( + -DHTTPLIB_COMPILE=yes + -DHTTPLIB_SHARED=yes + -DHTTPLIB_USE_BROTLI_IF_AVAILABLE=no + -DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=no + -DHTTPLIB_USE_MBEDTLS_IF_AVAILABLE=no + -DHTTPLIB_USE_ZLIB_IF_AVAILABLE=no + -DHTTPLIB_USE_ZSTD_IF_AVAILABLE=no + -DHTTPLIB_REQUIRE_BROTLI=$(usex brotli) + -DHTTPLIB_REQUIRE_OPENSSL=$(usex ssl $(usex mbedtls no yes)) + -DHTTPLIB_REQUIRE_MBEDTLS=$(usex ssl $(usex mbedtls)) + -DHTTPLIB_REQUIRE_ZLIB=$(usex zlib) + -DHTTPLIB_REQUIRE_ZSTD=$(usex zstd) + -DPython3_EXECUTABLE="${PYTHON}" + ) + cmake-multilib_src_configure +} + +multilib_src_test() { + if [[ ${ABI} == x86 ]]; then + ewarn "Upstream no longer supports 32 bits:" + ewarn https://github.com/yhirose/cpp-httplib/issues/2148 + return + fi + + cp -p -R --reflink=auto "${S}/test" ./test || die + + local -a failing_tests=( + # Disable all online tests. + "*.*_Online" + ) + + # Little dance to please the GTEST filter (join array using ":"). + failing_tests_str="${failing_tests[@]}" + failing_tests_filter="${failing_tests_str// /:}" + + # PREFIX is . to avoid calling "brew" and relying on stuff in /opt + GTEST_FILTER="-${failing_tests_filter}" emake -C test \ + CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS} -I." PREFIX=. +} diff --git a/dev-cpp/cpp-httplib/cpp-httplib-0.37.0.ebuild b/dev-cpp/cpp-httplib/cpp-httplib-0.37.0.ebuild new file mode 100644 index 000000000000..b1a767b33e4d --- /dev/null +++ b/dev-cpp/cpp-httplib/cpp-httplib-0.37.0.ebuild @@ -0,0 +1,100 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit cmake-multilib python-any-r1 toolchain-funcs + +DESCRIPTION="C++ HTTP/HTTPS server and client library" +HOMEPAGE="https://github.com/yhirose/cpp-httplib/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/yhirose/${PN}.git" +else + SRC_URI="https://github.com/yhirose/${PN}/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="MIT" +SLOT="0/$(ver_cut 0-2)" # soversion + +IUSE="brotli mbedtls ssl test zlib zstd" +REQUIRED_USE="test? ( brotli zlib zstd )" +RESTRICT="!test? ( test )" + +RDEPEND=" + brotli? ( + app-arch/brotli:=[${MULTILIB_USEDEP}] + ) + ssl? ( + mbedtls? ( net-libs/mbedtls:3=[${MULTILIB_USEDEP}] ) + !mbedtls? ( >=dev-libs/openssl-3.0.13:=[${MULTILIB_USEDEP}] ) + ) + zlib? ( + virtual/zlib:=[${MULTILIB_USEDEP}] + ) + zstd? ( + app-arch/zstd[${MULTILIB_USEDEP}] + ) +" +DEPEND=" + ${RDEPEND} + test? ( + dev-cpp/gtest + dev-libs/openssl + net-misc/curl + ) +" +BDEPEND=" + ${PYTHON_DEPS} + virtual/pkgconfig +" + +src_configure() { + local -a mycmakeargs=( + -DHTTPLIB_COMPILE=yes + -DHTTPLIB_SHARED=yes + -DHTTPLIB_USE_BROTLI_IF_AVAILABLE=no + -DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=no + -DHTTPLIB_USE_MBEDTLS_IF_AVAILABLE=no + -DHTTPLIB_USE_WOLFSSL_IF_AVAILABLE=no + -DHTTPLIB_USE_ZLIB_IF_AVAILABLE=no + -DHTTPLIB_USE_ZSTD_IF_AVAILABLE=no + -DHTTPLIB_REQUIRE_BROTLI=$(usex brotli) + -DHTTPLIB_REQUIRE_OPENSSL=$(usex ssl $(usex mbedtls no yes)) + -DHTTPLIB_REQUIRE_MBEDTLS=$(usex ssl $(usex mbedtls)) + -DHTTPLIB_REQUIRE_ZLIB=$(usex zlib) + -DHTTPLIB_REQUIRE_ZSTD=$(usex zstd) + -DPython3_EXECUTABLE="${PYTHON}" + ) + cmake-multilib_src_configure +} + +multilib_src_test() { + if [[ ${ABI} == x86 ]]; then + ewarn "Upstream no longer supports 32 bits:" + ewarn https://github.com/yhirose/cpp-httplib/issues/2148 + return + fi + + cp -p -R --reflink=auto "${S}/test" ./test || die + + local -a failing_tests=( + # Disable all online tests. + "*.*_Online" + ) + + # Little dance to please the GTEST filter (join array using ":"). + failing_tests_str="${failing_tests[@]}" + failing_tests_filter="${failing_tests_str// /:}" + + # PREFIX is . to avoid calling "brew" and relying on stuff in /opt + GTEST_FILTER="-${failing_tests_filter}" emake -C test \ + CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS} -I." PREFIX=. +} diff --git a/dev-cpp/cpp-httplib/cpp-httplib-0.38.0.ebuild b/dev-cpp/cpp-httplib/cpp-httplib-0.38.0.ebuild new file mode 100644 index 000000000000..cbf82650708a --- /dev/null +++ b/dev-cpp/cpp-httplib/cpp-httplib-0.38.0.ebuild @@ -0,0 +1,100 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit cmake-multilib python-any-r1 toolchain-funcs + +DESCRIPTION="C++ HTTP/HTTPS server and client library" +HOMEPAGE="https://github.com/yhirose/cpp-httplib/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/yhirose/${PN}.git" +else + SRC_URI="https://github.com/yhirose/${PN}/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + + KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" +fi + +LICENSE="MIT" +SLOT="0/$(ver_cut 0-2)" # soversion + +IUSE="brotli mbedtls ssl test zlib zstd" +REQUIRED_USE="test? ( brotli zlib zstd )" +RESTRICT="!test? ( test )" + +RDEPEND=" + brotli? ( + app-arch/brotli:=[${MULTILIB_USEDEP}] + ) + ssl? ( + mbedtls? ( net-libs/mbedtls:3=[${MULTILIB_USEDEP}] ) + !mbedtls? ( >=dev-libs/openssl-3.0.13:=[${MULTILIB_USEDEP}] ) + ) + zlib? ( + virtual/zlib:=[${MULTILIB_USEDEP}] + ) + zstd? ( + app-arch/zstd[${MULTILIB_USEDEP}] + ) +" +DEPEND=" + ${RDEPEND} + test? ( + dev-cpp/gtest + dev-libs/openssl + net-misc/curl + ) +" +BDEPEND=" + ${PYTHON_DEPS} + virtual/pkgconfig +" + +src_configure() { + local -a mycmakeargs=( + -DHTTPLIB_COMPILE=yes + -DHTTPLIB_SHARED=yes + -DHTTPLIB_USE_BROTLI_IF_AVAILABLE=no + -DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=no + -DHTTPLIB_USE_MBEDTLS_IF_AVAILABLE=no + -DHTTPLIB_USE_WOLFSSL_IF_AVAILABLE=no + -DHTTPLIB_USE_ZLIB_IF_AVAILABLE=no + -DHTTPLIB_USE_ZSTD_IF_AVAILABLE=no + -DHTTPLIB_REQUIRE_BROTLI=$(usex brotli) + -DHTTPLIB_REQUIRE_OPENSSL=$(usex ssl $(usex mbedtls no yes)) + -DHTTPLIB_REQUIRE_MBEDTLS=$(usex ssl $(usex mbedtls)) + -DHTTPLIB_REQUIRE_ZLIB=$(usex zlib) + -DHTTPLIB_REQUIRE_ZSTD=$(usex zstd) + -DPython3_EXECUTABLE="${PYTHON}" + ) + cmake-multilib_src_configure +} + +multilib_src_test() { + if [[ $(tc-get-ptr-size) == 4 ]] ; then + ewarn "Upstream no longer supports 32 bits:" + ewarn "https://github.com/yhirose/cpp-httplib/issues/2148" + return + fi + + cp -p -R --reflink=auto "${S}/test" ./test || die + + local -a failing_tests=( + # Disable all online tests. + "*.*_Online" + ) + + # Little dance to please the GTEST filter (join array using ":"). + failing_tests_str="${failing_tests[@]}" + failing_tests_filter="${failing_tests_str// /:}" + + # PREFIX is . to avoid calling "brew" and relying on stuff in /opt + GTEST_FILTER="-${failing_tests_filter}" emake -C test \ + CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS} -I." PREFIX=. +} diff --git a/dev-cpp/cpp-httplib/files/0.27.0-fixpidtest.patch b/dev-cpp/cpp-httplib/files/0.27.0-fixpidtest.patch new file mode 100644 index 000000000000..8d6d38b6a42b --- /dev/null +++ b/dev-cpp/cpp-httplib/files/0.27.0-fixpidtest.patch @@ -0,0 +1,109 @@ +From 551f96d4a2a07a56d72a13d4837b31eead884d34 Mon Sep 17 00:00:00 2001 +From: yhirose <yuji.hirose.bug@gmail.com> +Date: Mon, 27 Oct 2025 20:40:12 -0400 +Subject: [PATCH] Remove REMOTE_PORT dependency from UnixSocketTest.PeerPid + +--- + .gitignore | 2 ++ + test/test.cc | 26 +++++++++++++------------- + 2 files changed, 15 insertions(+), 13 deletions(-) + +diff --git a/.gitignore b/.gitignore +index b9acdca78e..21839782df 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -23,6 +23,8 @@ example/one_time_request + !example/one_time_request.* + example/server_and_client + !example/server_and_client.* ++example/accept_header ++!example/accept_header.* + example/*.pem + test/httplib.cc + test/httplib.h +diff --git a/test/test.cc b/test/test.cc +index e5b3639629..c9d6421719 100644 +--- a/test/test.cc ++++ b/test/test.cc +@@ -196,7 +196,7 @@ TEST_F(UnixSocketTest, PeerPid) { + std::string remote_port_val; + svr.Get(pattern_, [&](const httplib::Request &req, httplib::Response &res) { + res.set_content(content_, "text/plain"); +- remote_port_val = req.get_header_value("REMOTE_PORT"); ++ remote_port_val = std::to_string(req.remote_port); + }); + + std::thread t{[&] { +@@ -11236,7 +11236,8 @@ TEST(ForwardedHeadersTest, NoProxiesSetting) { + EXPECT_EQ(StatusCode::OK_200, res->status); + + EXPECT_EQ(observed_xff, "203.0.113.66"); +- EXPECT_TRUE(observed_remote_addr == "::1" || observed_remote_addr == "127.0.0.1"); ++ EXPECT_TRUE(observed_remote_addr == "::1" || ++ observed_remote_addr == "127.0.0.1"); + } + + TEST(ForwardedHeadersTest, NoForwardedHeaders) { +@@ -11269,7 +11270,8 @@ TEST(ForwardedHeadersTest, NoForwardedHeaders) { + EXPECT_EQ(StatusCode::OK_200, res->status); + + EXPECT_EQ(observed_xff, ""); +- EXPECT_TRUE(observed_remote_addr == "::1" || observed_remote_addr == "127.0.0.1"); ++ EXPECT_TRUE(observed_remote_addr == "::1" || ++ observed_remote_addr == "127.0.0.1"); + } + + TEST(ForwardedHeadersTest, SingleTrustedProxy_UsesIPBeforeTrusted) { +@@ -11296,7 +11298,8 @@ TEST(ForwardedHeadersTest, SingleTrustedProxy_UsesIPBeforeTrusted) { + svr.wait_until_ready(); + + Client cli(HOST, PORT); +- auto res = cli.Get("/ip", {{"X-Forwarded-For", "198.51.100.23, 203.0.113.66"}}); ++ auto res = ++ cli.Get("/ip", {{"X-Forwarded-For", "198.51.100.23, 203.0.113.66"}}); + + ASSERT_TRUE(res); + EXPECT_EQ(StatusCode::OK_200, res->status); +@@ -11330,8 +11333,7 @@ TEST(ForwardedHeadersTest, MultipleTrustedProxies_UsesClientIP) { + + Client cli(HOST, PORT); + auto res = cli.Get( +- "/ip", +- {{"X-Forwarded-For", "198.51.100.23, 203.0.113.66, 192.0.2.45"}}); ++ "/ip", {{"X-Forwarded-For", "198.51.100.23, 203.0.113.66, 192.0.2.45"}}); + + ASSERT_TRUE(res); + EXPECT_EQ(StatusCode::OK_200, res->status); +@@ -11364,8 +11366,8 @@ TEST(ForwardedHeadersTest, TrustedProxyNotInHeader_UsesFirstFromXFF) { + svr.wait_until_ready(); + + Client cli(HOST, PORT); +- auto res = cli.Get("/ip", +- {{"X-Forwarded-For", "198.51.100.23, 198.51.100.24"}}); ++ auto res = ++ cli.Get("/ip", {{"X-Forwarded-For", "198.51.100.23, 198.51.100.24"}}); + + ASSERT_TRUE(res); + EXPECT_EQ(StatusCode::OK_200, res->status); +@@ -11399,8 +11401,7 @@ TEST(ForwardedHeadersTest, LastHopTrusted_SelectsImmediateLeftIP) { + + Client cli(HOST, PORT); + auto res = cli.Get( +- "/ip", +- {{"X-Forwarded-For", "198.51.100.23, 203.0.113.66, 192.0.2.45"}}); ++ "/ip", {{"X-Forwarded-For", "198.51.100.23, 203.0.113.66, 192.0.2.45"}}); + + ASSERT_TRUE(res); + EXPECT_EQ(StatusCode::OK_200, res->status); +@@ -11433,9 +11434,8 @@ TEST(ForwardedHeadersTest, HandlesWhitespaceAroundIPs) { + svr.wait_until_ready(); + + Client cli(HOST, PORT); +- auto res = cli.Get( +- "/ip", +- {{"X-Forwarded-For", " 198.51.100.23 , 203.0.113.66 , 192.0.2.45 "}}); ++ auto res = cli.Get("/ip", {{"X-Forwarded-For", ++ " 198.51.100.23 , 203.0.113.66 , 192.0.2.45 "}}); + + ASSERT_TRUE(res); + EXPECT_EQ(StatusCode::OK_200, res->status); diff --git a/dev-cpp/cpp-httplib/files/cpp-httplib-0.32.0-cmake-mbedtls.patch b/dev-cpp/cpp-httplib/files/cpp-httplib-0.32.0-cmake-mbedtls.patch new file mode 100644 index 000000000000..e2f50bb64f03 --- /dev/null +++ b/dev-cpp/cpp-httplib/files/cpp-httplib-0.32.0-cmake-mbedtls.patch @@ -0,0 +1,181 @@ +https://github.com/yhirose/cpp-httplib/pull/2360 + +From 6f34a08c6e5df97481b926fdbfe650fd6faeb36f Mon Sep 17 00:00:00 2001 +From: Matheus Gabriel Werny <matheusgwdl@protonmail.com> +Date: Wed, 11 Feb 2026 14:18:24 +0100 +Subject: [PATCH 1/2] [CMake] New component MbedTLS + +New component MbedTLS. +--- + CMakeLists.txt | 27 ++++++++++++++++++++++++++- + cmake/httplibConfig.cmake.in | 7 +++++++ + 2 files changed, 33 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 45a0e16b98..a11d0c66a9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -2,11 +2,13 @@ + Build options: + * Standard BUILD_SHARED_LIBS is supported and sets HTTPLIB_SHARED default value. + * HTTPLIB_USE_OPENSSL_IF_AVAILABLE (default on) ++ * HTTPLIB_USE_MBEDTLS_IF_AVAILABLE (default off) + * HTTPLIB_USE_ZLIB_IF_AVAILABLE (default on) + * HTTPLIB_USE_BROTLI_IF_AVAILABLE (default on) + * HTTPLIB_USE_ZSTD_IF_AVAILABLE (default on) + * HTTPLIB_BUILD_MODULES (default off) + * HTTPLIB_REQUIRE_OPENSSL (default off) ++ * HTTPLIB_REQUIRE_MBEDTLS (default off) + * HTTPLIB_REQUIRE_ZLIB (default off) + * HTTPLIB_REQUIRE_BROTLI (default off) + * HTTPLIB_REQUIRE_ZSTD (default off) +@@ -21,7 +23,7 @@ + + ------------------------------------------------------------------------------- + +- After installation with Cmake, a find_package(httplib COMPONENTS OpenSSL ZLIB Brotli zstd) is available. ++ After installation with Cmake, a find_package(httplib COMPONENTS OpenSSL MbedTLS ZLIB Brotli zstd) is available. + This creates a httplib::httplib target (if found and if listed components are supported). + It can be linked like so: + +@@ -48,6 +50,7 @@ + These variables are available after you run find_package(httplib) + * HTTPLIB_HEADER_PATH - this is the full path to the installed header (e.g. /usr/include/httplib.h). + * HTTPLIB_IS_USING_OPENSSL - a bool for if OpenSSL support is enabled. ++ * HTTPLIB_IS_USING_MBEDTLS - a bool for if MbedTLS support is enabled. + * HTTPLIB_IS_USING_ZLIB - a bool for if ZLIB support is enabled. + * HTTPLIB_IS_USING_BROTLI - a bool for if Brotli support is enabled. + * HTTPLIB_IS_USING_ZSTD - a bool for if ZSTD support is enabled. +@@ -95,10 +98,12 @@ set(_HTTPLIB_OPENSSL_MIN_VER "3.0.0") + option(HTTPLIB_NO_EXCEPTIONS "Disable the use of C++ exceptions" OFF) + # Allow for a build to require OpenSSL to pass, instead of just being optional + option(HTTPLIB_REQUIRE_OPENSSL "Requires OpenSSL to be found & linked, or fails build." OFF) ++option(HTTPLIB_REQUIRE_MBEDTLS "Requires MbedTLS to be found & linked, or fails build." OFF) + option(HTTPLIB_REQUIRE_ZLIB "Requires ZLIB to be found & linked, or fails build." OFF) + # Allow for a build to casually enable OpenSSL/ZLIB support, but silently continue if not found. + # Make these options so their automatic use can be specifically disabled (as needed) + option(HTTPLIB_USE_OPENSSL_IF_AVAILABLE "Uses OpenSSL (if available) to enable HTTPS support." ON) ++option(HTTPLIB_USE_MBEDTLS_IF_AVAILABLE "Uses MbedTLS (if available) to enable HTTPS support." OFF) + option(HTTPLIB_USE_ZLIB_IF_AVAILABLE "Uses ZLIB (if available) to enable Zlib compression support." ON) + # Lets you compile the program as a regular library instead of header-only + option(HTTPLIB_COMPILE "If ON, uses a Python script to split the header into a compilable header & source file (requires Python v3)." OFF) +@@ -120,6 +125,15 @@ else() + message(WARNING "HTTPLIB_BUILD_MODULES requires CMake 3.28 or later. Current version is ${CMAKE_VERSION}. Modules support has been disabled.") + endif() + endif() ++ ++if(HTTPLIB_REQUIRE_OPENSSL AND HTTPLIB_REQUIRE_MBEDTLS) ++ message(FATAL_ERROR "HTTPLIB_REQUIRE_OPENSSL and HTTPLIB_REQUIRE_MBEDTLS are mutually exclusive.") ++endif() ++ ++if(HTTPLIB_USE_OPENSSL_IF_AVAILABLE AND HTTPLIB_USE_MBEDTLS_IF_AVAILABLE) ++ message(FATAL_ERROR "HTTPLIB_USE_OPENSSL_IF_AVAILABLE and HTTPLIB_USE_MBEDTLS_IF_AVAILABLE are mutually exclusive.") ++endif() ++ + # Defaults to static library but respects standard BUILD_SHARED_LIBS if set + include(CMakeDependentOption) + cmake_dependent_option(HTTPLIB_SHARED "Build the library as a shared library instead of static. Has no effect if using header-only." +@@ -173,6 +187,15 @@ elseif(HTTPLIB_USE_OPENSSL_IF_AVAILABLE) + endif() + endif() + ++if(HTTPLIB_REQUIRE_MBEDTLS) ++ find_package(MbedTLS REQUIRED) ++ set(HTTPLIB_IS_USING_MBEDTLS TRUE) ++elseif(HTTPLIB_USE_MBEDTLS_IF_AVAILABLE) ++ find_package(MbedTLS QUIET) ++ message(WARNING ${MbedTLS_FOUND}) # TODO ++ set(HTTPLIB_IS_USING_MBEDTLS ${MbedTLS_FOUND}) ++endif() ++ + if(HTTPLIB_REQUIRE_ZLIB) + find_package(ZLIB REQUIRED) + set(HTTPLIB_IS_USING_ZLIB TRUE) +@@ -327,6 +350,7 @@ target_link_libraries(${PROJECT_NAME} ${_INTERFACE_OR_PUBLIC} + $<$<BOOL:${HTTPLIB_IS_USING_ZSTD}>:zstd::libzstd> + $<$<BOOL:${HTTPLIB_IS_USING_OPENSSL}>:OpenSSL::SSL> + $<$<BOOL:${HTTPLIB_IS_USING_OPENSSL}>:OpenSSL::Crypto> ++ $<$<BOOL:${HTTPLIB_IS_USING_MBEDTLS}>:MbedTLS::mbedtls> + ) + + # Set the definitions to enable optional features +@@ -336,6 +360,7 @@ target_compile_definitions(${PROJECT_NAME} ${_INTERFACE_OR_PUBLIC} + $<$<BOOL:${HTTPLIB_IS_USING_ZLIB}>:CPPHTTPLIB_ZLIB_SUPPORT> + $<$<BOOL:${HTTPLIB_IS_USING_ZSTD}>:CPPHTTPLIB_ZSTD_SUPPORT> + $<$<BOOL:${HTTPLIB_IS_USING_OPENSSL}>:CPPHTTPLIB_OPENSSL_SUPPORT> ++ $<$<BOOL:${HTTPLIB_IS_USING_MBEDTLS}>:CPPHTTPLIB_MBEDTLS_SUPPORT> + $<$<AND:$<PLATFORM_ID:Darwin>,$<BOOL:${HTTPLIB_IS_USING_OPENSSL}>,$<BOOL:${HTTPLIB_IS_USING_CERTS_FROM_MACOSX_KEYCHAIN}>>:CPPHTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN> + $<$<BOOL:${HTTPLIB_USE_NON_BLOCKING_GETADDRINFO}>:CPPHTTPLIB_USE_NON_BLOCKING_GETADDRINFO> + ) +diff --git a/cmake/httplibConfig.cmake.in b/cmake/httplibConfig.cmake.in +index 8ca8b991a2..0790f456d8 100644 +--- a/cmake/httplibConfig.cmake.in ++++ b/cmake/httplibConfig.cmake.in +@@ -4,6 +4,7 @@ + # Setting these here so they're accessible after install. + # Might be useful for some users to check which settings were used. + set(HTTPLIB_IS_USING_OPENSSL @HTTPLIB_IS_USING_OPENSSL@) ++set(HTTPLIB_IS_USING_MBEDTLS @HTTPLIB_IS_USING_MBEDTLS@) + set(HTTPLIB_IS_USING_ZLIB @HTTPLIB_IS_USING_ZLIB@) + set(HTTPLIB_IS_COMPILED @HTTPLIB_COMPILE@) + set(HTTPLIB_IS_USING_BROTLI @HTTPLIB_IS_USING_BROTLI@) +@@ -25,11 +26,17 @@ if(@HTTPLIB_IS_USING_OPENSSL@) + endif() + set(httplib_OpenSSL_FOUND ${OpenSSL_FOUND}) + endif() ++ + if(@HTTPLIB_IS_USING_ZLIB@) + find_dependency(ZLIB) + set(httplib_ZLIB_FOUND ${ZLIB_FOUND}) + endif() + ++if(@HTTPLIB_IS_USING_MBEDTLS@) ++ find_dependency(MbedTLS) ++ set(httplib_MbedTLS_FOUND ${MbedTLS_FOUND}) ++endif() ++ + if(@HTTPLIB_IS_USING_BROTLI@) + # Needed so we can use our own FindBrotli.cmake in this file. + # Note that the FindBrotli.cmake file is installed in the same dir as this file. + +From 8682189e5929abecb5e8e41b43180d931995154a Mon Sep 17 00:00:00 2001 +From: Matheus Gabriel Werny <matheusgwdl@protonmail.com> +Date: Wed, 11 Feb 2026 14:46:36 +0100 +Subject: [PATCH 2/2] Fix case + +Fix case: HTTPLIB_REQUIRE_OPENSSL=OFF; HTTPLIB_REQUIRE_MBEDTLS=ON +--- + CMakeLists.txt | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a11d0c66a9..a2864a6ce1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -126,6 +126,7 @@ else() + endif() + endif() + ++# Incompatibility between OpenSSL and MbedTLS + if(HTTPLIB_REQUIRE_OPENSSL AND HTTPLIB_REQUIRE_MBEDTLS) + message(FATAL_ERROR "HTTPLIB_REQUIRE_OPENSSL and HTTPLIB_REQUIRE_MBEDTLS are mutually exclusive.") + endif() +@@ -134,6 +135,10 @@ if(HTTPLIB_USE_OPENSSL_IF_AVAILABLE AND HTTPLIB_USE_MBEDTLS_IF_AVAILABLE) + message(FATAL_ERROR "HTTPLIB_USE_OPENSSL_IF_AVAILABLE and HTTPLIB_USE_MBEDTLS_IF_AVAILABLE are mutually exclusive.") + endif() + ++if(HTTPLIB_REQUIRE_MBEDTLS) ++ set(HTTPLIB_USE_OPENSSL_IF_AVAILABLE OFF) ++endif() ++ + # Defaults to static library but respects standard BUILD_SHARED_LIBS if set + include(CMakeDependentOption) + cmake_dependent_option(HTTPLIB_SHARED "Build the library as a shared library instead of static. Has no effect if using header-only." +@@ -192,7 +197,6 @@ if(HTTPLIB_REQUIRE_MBEDTLS) + set(HTTPLIB_IS_USING_MBEDTLS TRUE) + elseif(HTTPLIB_USE_MBEDTLS_IF_AVAILABLE) + find_package(MbedTLS QUIET) +- message(WARNING ${MbedTLS_FOUND}) # TODO + set(HTTPLIB_IS_USING_MBEDTLS ${MbedTLS_FOUND}) + endif() + diff --git a/dev-cpp/cpp-httplib/metadata.xml b/dev-cpp/cpp-httplib/metadata.xml new file mode 100644 index 000000000000..9b6e0e3f3874 --- /dev/null +++ b/dev-cpp/cpp-httplib/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>alexey+gentoo@asokolov.org</email> + <name>Alexey Sokolov</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <use> + <flag name="mbedtls">Use <pkg>net-libs/mbedtls</pkg> instead of <pkg>dev-libs/openssl</pkg>.</flag> + </use> + <upstream> + <bugs-to>https://github.com/yhirose/cpp-httplib/issues</bugs-to> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> |
