net-libs/libmicrohttpd: update to 0.9.76

Update net-libs/libmicrohttpd to 0.9.76, mainly to address CVE-2023-27371.

Gentoo ref: ac43ea5b0915bd4bafc5e7f4a32235a69d0d6324
This commit is contained in:
Dongsu Park 2023-06-29 13:09:03 +02:00
parent a9f25e36c8
commit 198ce33de9
9 changed files with 288 additions and 167 deletions

View File

@ -1,3 +1,3 @@
DIST libmicrohttpd-0.9.68.tar.gz 1884342 BLAKE2B 3f74c48917fa19753a617242fa07b99a69510a14a802609d038964d927516f8f52b4330d0eee2c7b98096b2d840158e4945310edef290224ea256d9616fb4d94 SHA512 9daaab5fb35fef6f2a19b7e08eeb8473aeb0a67631808a8d7a7f78a09cb621ca5d32dbbbca616865a40afb92f8c6495f9e2ba1674880af8011a2bc798c070a13
DIST libmicrohttpd-0.9.72.tar.gz 1693553 BLAKE2B 24d9284d8cab65d4a5b6b7f3a5b860dfd8cf69b21e44ee05ae2f7561b766a72d2dbb7f57849a31c22454e211befa74e058f78814b79e7876b3d14c7252ab5800 SHA512 9695e2fb08785e4b60342226ef3a0af22da4d80f127e7db9ec80ce844f70d0d781b30af207d58d8eb691b85a5fe4691cb9ecf887ca86f5e059a05259ae041316
DIST libmicrohttpd-0.9.73.tar.gz 1738675 BLAKE2B 63845b1b7fa0aa8ce29e9917521e10bd59fa0d27658e87ef3273d5014adf5cd9514a2d84465a573df03b44dcd50da7d157ef9c4952107ebba49efdfb398476c2 SHA512 473996b087ac6734ab577a1c7681c6c0b0136e04e34e13c3b50fd758358c1516017ad79097e0c57792786f6dd0208834374c09238113efed13bb4be11ef649d3
DIST libmicrohttpd-0.9.75.tar.gz 1952076 BLAKE2B 419d7b7113edbcc54eec3e3b6da92d040e15b451bde4e1372b368fdd87277c85daddc295bc71d25bf02135921a8716876e9536c9dee286fa29b66bfb8167ebd2 SHA512 4dc62ed191342a61cc2767171bb1ff4050f390db14ef7100299888237b52ea0b04b939c843878fe7f5daec2b35a47b3c1b7e7c11fb32d458184fe6b19986a37c
DIST libmicrohttpd-0.9.76.tar.gz 2199858 BLAKE2B 2c2de77d731ff130bb1491733b91e9e0b0c68bc30ea1a826f7f1d97aaf83fa7f6bec3c219f81c5293de72595b26d1e6eb66cdd4bfe3b16bd37a10e3acd3c6446 SHA512 9ff8a837892142376eaeaf50c0b0dba76697d0ff44b908434cba8db4324c57dfb8bbcc1a922b97d825891ac10f50693dee9388531856e0fa81fa2cfeac538581
DIST libmicrohttpd-0.9.77.tar.gz 1896679 BLAKE2B 09a07c7da77d6072e5aa0fb121aedffb66b6cfdb2da30d1809583469282365832beb935417e779ddb31876949358d25c10bf79616079393503ca5860d88ac052 SHA512 001025c023dd94c4a0cf017ed575e65a577b5ce595e7e450346bfb75def77eaa8a4cfbeffb9f4b912e34165c2cfca147c02c895e067a4f6c5a321a12035758a5

View File

@ -1,35 +0,0 @@
Disable usage of SSLv3 in testing
Integrated uptream version 0.9.74
diff --git a/src/testcurl/https/test_tls_options.c b/src/testcurl/https/test_tls_options.c
--- a/src/testcurl/https/test_tls_options.c
+++ b/src/testcurl/https/test_tls_options.c
@@ -119,11 +119,6 @@ main (int argc, char *const *argv)
fprintf (stderr, "Curl does not support SSL. Cannot run the test.\n");
return 77;
}
- if (0 != strncmp (ssl_version, "GnuTLS", 6))
- {
- fprintf (stderr, "This test can be run only with libcurl-gnutls.\n");
- return 77;
- }
if (! testsuite_curl_global_init ())
return 99;
@@ -152,10 +147,10 @@ main (int argc, char *const *argv)
fprintf (stderr,
"The following handshake should fail (and print an error message)...\n");
if (0 !=
- test_wrap ("TLS1.0 vs SSL3",
+ test_wrap ("TLS1.1 vs TLS1.0",
&test_unmatching_ssl_version, NULL, port, daemon_flags,
aes256_sha,
- CURL_SSLVERSION_SSLv3,
+ CURL_SSLVERSION_TLSv1_1,
MHD_OPTION_HTTPS_MEM_KEY, srv_key_pem,
MHD_OPTION_HTTPS_MEM_CERT, srv_self_signed_cert_pem,
MHD_OPTION_HTTPS_PRIORITIES,

View File

@ -0,0 +1,60 @@
Fixed incorrect function redeclaration in the testsuite.
This fixes 'make check' with LTO.
Author: Karlson2k (Evgeny Grin)
Gentoo bug: https://bugs.gentoo.org/877447
diff --git a/src/testcurl/https/test_https_get_parallel.c b/src/testcurl/https/test_https_get_parallel.c
index 47f644d2..786918f2 100644
--- a/src/testcurl/https/test_https_get_parallel.c
+++ b/src/testcurl/https/test_https_get_parallel.c
@@ -46,7 +46,7 @@
extern const char srv_key_pem[];
extern const char srv_self_signed_cert_pem[];
-int curl_check_version (const char *req_version, ...);
+int curl_check_version (const char *req_version);
/**
diff --git a/src/testcurl/https/test_https_get_parallel_threads.c b/src/testcurl/https/test_https_get_parallel_threads.c
index 4853e7eb..5f4d0486 100644
--- a/src/testcurl/https/test_https_get_parallel_threads.c
+++ b/src/testcurl/https/test_https_get_parallel_threads.c
@@ -48,7 +48,7 @@
extern const char srv_key_pem[];
extern const char srv_self_signed_cert_pem[];
-int curl_check_version (const char *req_version, ...);
+int curl_check_version (const char *req_version);
/**
* used when spawning multiple threads executing curl server requests
diff --git a/src/testcurl/https/test_tls_options.c b/src/testcurl/https/test_tls_options.c
index d5aa8310..8fbc540a 100644
--- a/src/testcurl/https/test_tls_options.c
+++ b/src/testcurl/https/test_tls_options.c
@@ -36,7 +36,7 @@
extern const char srv_key_pem[];
extern const char srv_self_signed_cert_pem[];
-int curl_check_version (const char *req_version, ...);
+int curl_check_version (const char *req_version);
/**
* test server refuses to negotiate connections with unsupported protocol versions
diff --git a/src/testcurl/https/tls_test_common.h b/src/testcurl/https/tls_test_common.h
index a9af504d..e3f552a8 100644
--- a/src/testcurl/https/tls_test_common.h
+++ b/src/testcurl/https/tls_test_common.h
@@ -72,7 +72,7 @@ struct CipherDef
int
-curl_check_version (const char *req_version, ...);
+curl_check_version (const char *req_version);
int
curl_tls_is_gnutls (void);

View File

@ -1,58 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit multilib-minimal
MY_P="${P/_/}"
DESCRIPTION="Small C library to run an HTTP server as part of another application"
HOMEPAGE="https://www.gnu.org/software/libmicrohttpd/"
SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz"
PATCHES=( "${FILESDIR}"/${PN}-0.9.73-test-ssl3.patch )
LICENSE="LGPL-2.1"
SLOT="0/12"
KEYWORDS="amd64 x86"
IUSE="+epoll ssl static-libs test"
RESTRICT="!test? ( test )"
RDEPEND="ssl? ( >net-libs/gnutls-2.12.20:= )"
# We disable tests below because they're broken,
# but if enabled, we'll need this.
DEPEND="${RDEPEND}
test? ( net-misc/curl[ssl?] )"
S=${WORKDIR}/${MY_P}
DOCS="AUTHORS NEWS README ChangeLog"
multilib_src_configure() {
ECONF_SOURCE="${S}" \
econf \
--enable-bauth \
--enable-dauth \
--disable-examples \
--enable-messages \
--enable-postprocessor \
--disable-thread-names \
$(use_enable epoll) \
$(use_enable test curl) \
$(use_enable ssl https) \
$(use_with ssl gnutls) \
$(use_enable static-libs static)
}
# tests are broken in the portage environment.
src_test() {
:
}
multilib_src_install_all() {
default
use static-libs || find "${ED}" -name '*.la' -delete
}

View File

@ -1,57 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit multilib-minimal
MY_P="${P/_/}"
DESCRIPTION="Small C library to run an HTTP server as part of another application"
HOMEPAGE="https://www.gnu.org/software/libmicrohttpd/"
SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0/12"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv sparc x86"
IUSE="+epoll ssl static-libs test thread-names"
RESTRICT="!test? ( test )"
RDEPEND="ssl? ( >net-libs/gnutls-2.12.20:= )"
DEPEND="${RDEPEND}
test? ( net-misc/curl[ssl?] )
virtual/pkgconfig
"
PATCHES=( "${FILESDIR}"/${PN}-0.9.73-test-ssl3.patch )
S=${WORKDIR}/${MY_P}
DOCS="AUTHORS NEWS README ChangeLog"
multilib_src_configure() {
ECONF_SOURCE="${S}" \
econf \
--enable-shared \
$(use_enable static-libs static) \
--disable-nls \
--enable-bauth \
--enable-dauth \
--disable-examples \
--enable-messages \
--enable-postprocessor \
--enable-httpupgrade \
--disable-experimental \
$(use_enable thread-names) \
$(use_enable epoll) \
$(use_enable test curl) \
$(use_enable ssl https) \
$(use_with ssl gnutls)
}
multilib_src_install_all() {
default
use static-libs || find "${ED}" -name '*.la' -delete
}

View File

@ -1,7 +1,7 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
EAPI="8"
inherit multilib-minimal
@ -12,21 +12,59 @@ HOMEPAGE="https://www.gnu.org/software/libmicrohttpd/"
SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz"
S="${WORKDIR}"/${MY_P}
PATCHES=( "${FILESDIR}"/${PN}-0.9.73-test-ssl3.patch )
LICENSE="LGPL-2.1+"
LICENSE="|| ( LGPL-2.1+ !ssl? ( GPL-2+-with-eCos-exception-2 ) )"
SLOT="0/12"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv sparc x86"
IUSE="+epoll ssl static-libs test thread-names"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="+epoll ssl static-libs test +thread-names"
RESTRICT="!test? ( test )"
RDEPEND="ssl? ( >net-libs/gnutls-2.12.20:= )"
RDEPEND="ssl? ( >net-libs/gnutls-2.12.20:=[${MULTILIB_USEDEP}] )"
# libcurl and the curl binary are used during tests on CHOST
DEPEND="${RDEPEND}
test? ( net-misc/curl[ssl?] )"
BDEPEND="ssl? ( virtual/pkgconfig )"
DOCS=( AUTHORS NEWS README ChangeLog )
DOCS=( AUTHORS NEWS COPYING README ChangeLog )
PATCHES=( "${FILESDIR}"/${P}-fix-testsuite-with-lto.patch )
# All checks in libmicrohttpd's configure are correct
# Gentoo Bug #898662
QA_CONFIG_IMPL_DECL_SKIP=(
'pthread_sigmask'
'CreateThread'
'pthread_attr_init'
'pthread_attr_setname_np'
'pthread_setname_np'
'__builtin_bswap32'
'__builtin_bswap64'
'WSAPoll'
'epoll_create1'
'eventfd'
'pipe'
'pipe2'
'socketpair'
'gmtime_s'
'host_get_clock_service'
'clock_get_time'
'mach_port_deallocate'
'gethrtime'
'timespec_get'
'gettimeofday'
'sendfile'
'gnutls_privkey_import_x509_raw'
'calloc'
'fork'
'waitpid'
'random'
'rand'
'getsockname'
'sysconf'
'sysctl'
'sysctlbyname'
'usleep'
'nanosleep'
)
multilib_src_configure() {
ECONF_SOURCE="${S}" \

View File

@ -0,0 +1,96 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
inherit multilib-minimal
MY_P="${P/_/}"
DESCRIPTION="Small C library to run an HTTP server as part of another application"
HOMEPAGE="https://www.gnu.org/software/libmicrohttpd/"
SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz"
S="${WORKDIR}"/${MY_P}
LICENSE="|| ( LGPL-2.1+ !ssl? ( GPL-2+-with-eCos-exception-2 ) )"
SLOT="0/12"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="+epoll ssl static-libs test +thread-names"
RESTRICT="!test? ( test )"
RDEPEND="ssl? ( >net-libs/gnutls-2.12.20:=[${MULTILIB_USEDEP}] )"
# libcurl and the curl binary are used during tests on CHOST
DEPEND="${RDEPEND}
test? ( net-misc/curl[ssl?] )"
BDEPEND="ssl? ( virtual/pkgconfig )"
DOCS=( AUTHORS NEWS COPYING README ChangeLog )
PATCHES=( "${FILESDIR}"/${PN}-0.9.75-fix-testsuite-with-lto.patch )
# All checks in libmicrohttpd's configure are correct
# Gentoo Bug #898662
QA_CONFIG_IMPL_DECL_SKIP=(
'pthread_sigmask'
'CreateThread'
'pthread_attr_init'
'pthread_attr_setname_np'
'pthread_setname_np'
'__builtin_bswap32'
'__builtin_bswap64'
'WSAPoll'
'epoll_create1'
'eventfd'
'pipe'
'pipe2'
'socketpair'
'gmtime_s'
'host_get_clock_service'
'clock_get_time'
'mach_port_deallocate'
'gethrtime'
'timespec_get'
'gettimeofday'
'sendfile'
'gnutls_privkey_import_x509_raw'
'calloc'
'fork'
'waitpid'
'random'
'rand'
'getsockname'
'sysconf'
'sysctl'
'sysctlbyname'
'usleep'
'nanosleep'
)
multilib_src_configure() {
ECONF_SOURCE="${S}" \
econf \
--enable-shared \
$(use_enable static-libs static) \
--disable-nls \
--enable-bauth \
--enable-dauth \
--disable-examples \
--enable-messages \
--enable-postprocessor \
--enable-httpupgrade \
--disable-experimental \
--disable-heavy-tests \
$(use_enable thread-names) \
$(use_enable epoll) \
$(use_enable test curl) \
$(use_enable ssl https) \
$(use_with ssl gnutls)
}
multilib_src_install_all() {
default
if ! use static-libs; then
find "${ED}" -name '*.la' -delete || die
fi
}

View File

@ -0,0 +1,76 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
inherit linux-info multilib-minimal
MY_P="${P/_/}"
DESCRIPTION="Small C library to run an HTTP server as part of another application"
HOMEPAGE="https://www.gnu.org/software/libmicrohttpd/"
SRC_URI="mirror://gnu/${PN}/${MY_P}.tar.gz"
S="${WORKDIR}"/${MY_P}
LICENSE="|| ( LGPL-2.1+ !ssl? ( GPL-2+-with-eCos-exception-2 ) )"
SLOT="0/12"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="+epoll +eventfd ssl static-libs test +thread-names"
REQUIRED_USE="epoll? ( kernel_linux )"
RESTRICT="!test? ( test )"
RDEPEND="ssl? ( >net-libs/gnutls-2.12.20:=[${MULTILIB_USEDEP}] )"
# libcurl and the curl binary are used during tests on CHOST
DEPEND="${RDEPEND}
test? ( net-misc/curl[ssl?] )"
BDEPEND="ssl? ( virtual/pkgconfig )"
DOCS=( AUTHORS NEWS COPYING README ChangeLog )
pkg_pretend() {
if use kernel_linux ; then
CONFIG_CHECK=""
use epoll && CONFIG_CHECK+=" ~EPOLL"
ERROR_EPOLL="EPOLL is not enabled in kernel, but enabled in libmicrohttpd."
ERROR_EPOLL+=" libmicrohttpd will fail to start with 'automatic' configuration."
use eventfd && CONFIG_CHECK+=" EVENTFD"
ERROR_EVENTFD="EVENTFD is not enabled in kernel, but enabled in libmicrohttpd."
ERROR_EVENTFD+=" libmicrohttpd will not work."
check_extra_config
fi
}
multilib_src_configure() {
local itc_type
if use eventfd ; then
itc_type="eventfd"
else
itc_type="pipe"
fi
ECONF_SOURCE="${S}" \
econf \
--enable-shared \
$(use_enable static-libs static) \
--disable-nls \
--enable-bauth \
--enable-dauth \
--disable-examples \
--enable-messages \
--enable-postprocessor \
--enable-httpupgrade \
--disable-experimental \
--disable-heavy-tests \
--enable-itc=${itc_type} \
$(use_enable thread-names) \
$(use_enable epoll) \
$(use_enable test curl) \
$(use_enable ssl https)
}
multilib_src_install_all() {
default
if ! use static-libs; then
find "${ED}" -name '*.la' -delete || die
fi
}

View File

@ -1,16 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>blueness@gentoo.org</email>
<name>Anthony G. Basile</name>
</maintainer>
<maintainer type="person" proxied="yes">
<email>k2k@narod.ru</email>
<name>Evgeny Grin</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<use>
<flag name="epoll">Use epoll() system call</flag>
<flag name="epoll">Support epoll() system call</flag>
<flag name="eventfd">Use EventFD for efficient inter-thread communication</flag>
<flag name="thread-names">Assign thread names to internal threads, useful for dependent apps debugging</flag>
</use>
<upstream>