diff options
author | orbea <orbea@riseup.net> | 2024-09-06 09:45:37 -0700 |
---|---|---|
committer | orbea <orbea@riseup.net> | 2024-09-06 09:45:37 -0700 |
commit | 8fbe92da4d556b1a16e8944f5c68c094f37ab0f1 (patch) | |
tree | 6ca9b1386dd3a2f84fa75aa72af5ae2611013163 /dev-cpp | |
parent | dev-lang/python: add correct ebuild for 3.12.5_p1 (diff) | |
download | libressl-8fbe92da4d556b1a16e8944f5c68c094f37ab0f1.tar.gz libressl-8fbe92da4d556b1a16e8944f5c68c094f37ab0f1.tar.bz2 libressl-8fbe92da4d556b1a16e8944f5c68c094f37ab0f1.zip |
dev-cpp/cpp-httplib: new package, add 0.15.3-r1, 0.16.0
Signed-off-by: orbea <orbea@riseup.net>
Diffstat (limited to 'dev-cpp')
-rw-r--r-- | dev-cpp/cpp-httplib/Manifest | 2 | ||||
-rw-r--r-- | dev-cpp/cpp-httplib/cpp-httplib-0.15.3-r1.ebuild | 87 | ||||
-rw-r--r-- | dev-cpp/cpp-httplib/cpp-httplib-0.16.0.ebuild | 93 | ||||
-rw-r--r-- | dev-cpp/cpp-httplib/files/cpp-httplib-0.16.0-libressl.patch | 27 | ||||
-rw-r--r-- | dev-cpp/cpp-httplib/metadata.xml | 20 |
5 files changed, 229 insertions, 0 deletions
diff --git a/dev-cpp/cpp-httplib/Manifest b/dev-cpp/cpp-httplib/Manifest new file mode 100644 index 0000000..a46a395 --- /dev/null +++ b/dev-cpp/cpp-httplib/Manifest @@ -0,0 +1,2 @@ +DIST cpp-httplib-0.15.3.tar.gz 1151398 BLAKE2B 8ce7d7e59c0954efb14a11e565f9cdf02c007a3b6d39dbdcb21b412906eed3ceeca3182096f4b4eadb32a5886e839e64774ae9a1110ddb60fb7cdea35b5b7d50 SHA512 f7fc9c9eb71f091b82958e023a7b417b30d2590fd5d1a920d1c98361f34bcaca796dbeda7f9fdb8b2c722a8968977b77463c6cbb252cba9823a79c22471fa439 +DIST cpp-httplib-0.16.0.tar.gz 1156790 BLAKE2B 4a75059f16f6e46685c2cf028c6fa4c9cd50c35273795a8dbb6ca9d2997146b04b305893ad50adbb62c39db14ab3f589e902353bb199ee167d2648fe3621aee1 SHA512 63dc5a50f425e7be909d60db138caa1b9d7260c5d4db26603011a329f0d6a645d56f436c79466fbe662f24a94bc0f72926062b3ed49cb658eb91a6bdb2ddf25b diff --git a/dev-cpp/cpp-httplib/cpp-httplib-0.15.3-r1.ebuild b/dev-cpp/cpp-httplib/cpp-httplib-0.15.3-r1.ebuild new file mode 100644 index 0000000..526f3e0 --- /dev/null +++ b/dev-cpp/cpp-httplib/cpp-httplib-0.15.3-r1.ebuild @@ -0,0 +1,87 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +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="amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" +fi + +LICENSE="MIT" +SLOT="0/$(ver_cut 1-2)" # soversion + +IUSE="brotli ssl test zlib" +REQUIRED_USE="test? ( brotli ssl zlib )" +RESTRICT="!test? ( test )" + +RDEPEND=" + brotli? ( app-arch/brotli:=[${MULTILIB_USEDEP}] ) + ssl? ( >=dev-libs/openssl-3.0.13:=[${MULTILIB_USEDEP}] ) + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + ${PYTHON_DEPS} +" + +PATCHES=( "${FILESDIR}"/${PN}-0.16.0-libressl.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_REQUIRE_BROTLI=$(usex brotli) + -DHTTPLIB_REQUIRE_OPENSSL=$(usex ssl) + -DHTTPLIB_REQUIRE_ZLIB=$(usex zlib) + -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 + + # https://github.com/yhirose/cpp-httplib/issues/1798 + # Filed by mgorny's testing, fails on openssl >=3.2: + SSLClientServerTest.ClientCertPresent + SSLClientServerTest.ClientEncryptedCertPresent + SSLClientServerTest.CustomizeServerSSLCtx + SSLClientServerTest.MemoryClientCertPresent + SSLClientServerTest.MemoryClientEncryptedCertPresent + SSLClientServerTest.TrustDirOptional + ) + + # Little dance to please the GTEST filter (join array using ":"). + failing_tests_str="${failing_tests[@]}" + failing_tests_filter="${failing_tests_str// /:}" + + GTEST_FILTER="-${failing_tests_filter}" emake -C test \ + CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS} -I." +} diff --git a/dev-cpp/cpp-httplib/cpp-httplib-0.16.0.ebuild b/dev-cpp/cpp-httplib/cpp-httplib-0.16.0.ebuild new file mode 100644 index 0000000..9c87852 --- /dev/null +++ b/dev-cpp/cpp-httplib/cpp-httplib-0.16.0.ebuild @@ -0,0 +1,93 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..13} ) + +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 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc x86" +fi + +LICENSE="MIT" +SLOT="0/$(ver_cut 1-2)" # soversion + +IUSE="brotli ssl test zlib" +REQUIRED_USE="test? ( brotli ssl zlib )" +RESTRICT="!test? ( test )" + +RDEPEND=" + brotli? ( + app-arch/brotli:=[${MULTILIB_USEDEP}] + ) + ssl? ( + >=dev-libs/openssl-3.0.13:=[${MULTILIB_USEDEP}] + ) + zlib? ( + sys-libs/zlib[${MULTILIB_USEDEP}] + ) +" +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + ${PYTHON_DEPS} +" + +PATCHES=( "${FILESDIR}"/${P}-libressl.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_REQUIRE_BROTLI=$(usex brotli) + -DHTTPLIB_REQUIRE_OPENSSL=$(usex ssl) + -DHTTPLIB_REQUIRE_ZLIB=$(usex zlib) + -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 + + # https://github.com/yhirose/cpp-httplib/issues/1798 + # Filed by mgorny's testing, fails on openssl >=3.2: + SSLClientServerTest.ClientCertPresent + SSLClientServerTest.ClientEncryptedCertPresent + SSLClientServerTest.CustomizeServerSSLCtx + SSLClientServerTest.MemoryClientCertPresent + SSLClientServerTest.MemoryClientEncryptedCertPresent + SSLClientServerTest.TrustDirOptional + ) + + # Little dance to please the GTEST filter (join array using ":"). + failing_tests_str="${failing_tests[@]}" + failing_tests_filter="${failing_tests_str// /:}" + + GTEST_FILTER="-${failing_tests_filter}" emake -C test \ + CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS} -I." +} diff --git a/dev-cpp/cpp-httplib/files/cpp-httplib-0.16.0-libressl.patch b/dev-cpp/cpp-httplib/files/cpp-httplib-0.16.0-libressl.patch new file mode 100644 index 0000000..f23ea82 --- /dev/null +++ b/dev-cpp/cpp-httplib/files/cpp-httplib-0.16.0-libressl.patch @@ -0,0 +1,27 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -81,7 +81,7 @@ project(httplib + + # Change as needed to set an OpenSSL minimum version. + # This is used in the installed Cmake config file. +-set(_HTTPLIB_OPENSSL_MIN_VER "3.0.0") ++set(_HTTPLIB_OPENSSL_MIN_VER "2.0.0") + + # Lets you disable C++ exception during CMake configure time. + # The value is used in the install CMake config file. +--- a/httplib.h ++++ b/httplib.h +@@ -269,9 +269,13 @@ using socket_t = int; + #include <iostream> + #include <sstream> + ++#ifdef LIBRESSL_VERSION_NUMBER ++#define SSL_get1_peer_certificate SSL_get_peer_certificate ++#else + #if OPENSSL_VERSION_NUMBER < 0x30000000L + #error Sorry, OpenSSL versions prior to 3.0.0 are not supported + #endif ++#endif + + #endif + diff --git a/dev-cpp/cpp-httplib/metadata.xml b/dev-cpp/cpp-httplib/metadata.xml new file mode 100644 index 0000000..2c799a5 --- /dev/null +++ b/dev-cpp/cpp-httplib/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>xgqt@gentoo.org</email> + <name>Maciej Barć</name> + </maintainer> + <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> + <upstream> + <remote-id type="github">yhirose/cpp-httplib</remote-id> + <bugs-to>https://github.com/yhirose/cpp-httplib/issues</bugs-to> + </upstream> +</pkgmetadata> |