Date: Tuesday, November 1, 2022 @ 11:48:01
Author: foutrelis
Revision: 459797
archrelease: copy trunk to staging-x86_64
Added:
libevent/repos/staging-x86_64/
libevent/repos/staging-x86_64/EVENT__SIZEOF_TIME_T.patch
(from rev 459796, libevent/trunk/EVENT__SIZEOF_TIME_T.patch)
libevent/repos/staging-x86_64/PKGBUILD
(from rev 459796, libevent/trunk/PKGBUILD)
libevent/repos/staging-x86_64/keys/
libevent/repos/staging-x86_64/libevent-2.1.12-openssl-compat.patch
(from rev 459796, libevent/trunk/libevent-2.1.12-openssl-compat.patch)
--------------------------------------+
EVENT__SIZEOF_TIME_T.patch | 37 ++++++++++++++++
PKGBUILD | 70 +++++++++++++++++++++++++++++++
libevent-2.1.12-openssl-compat.patch | 74 +++++++++++++++++++++++++++++++++
3 files changed, 181 insertions(+)
Copied: libevent/repos/staging-x86_64/EVENT__SIZEOF_TIME_T.patch (from rev
459796, libevent/trunk/EVENT__SIZEOF_TIME_T.patch)
===================================================================
--- staging-x86_64/EVENT__SIZEOF_TIME_T.patch (rev 0)
+++ staging-x86_64/EVENT__SIZEOF_TIME_T.patch 2022-11-01 11:48:01 UTC (rev
459797)
@@ -0,0 +1,37 @@
+From f5ad737d73ed18b95ce63f1d8e933a89a26653e9 Mon Sep 17 00:00:00 2001
+From: Azat Khuzhin <[email protected]>
+Date: Sat, 9 Jul 2022 14:22:38 +0300
+Subject: [PATCH] Add -Wundef for cmake and fix EVENT__SIZEOF_TIME_T usage
+
+Note, autotools already supports it.
+---
+ CMakeLists.txt | 1 +
+ event-config.h.cmake | 3 +++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5ee0df2f7..9237252c7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -295,6 +295,7 @@ if (${GNUC})
+
+ list(APPEND __FLAGS
+ -Wall -Wextra -Wno-unused-parameter -Wstrict-aliasing
-Wstrict-prototypes
++ -Wundef
+
+ -fno-strict-aliasing # gcc 2.9.5+
+ -Wmissing-prototypes
+diff --git a/event-config.h.cmake b/event-config.h.cmake
+index 9fff34877..4a6267017 100644
+--- a/event-config.h.cmake
++++ b/event-config.h.cmake
+@@ -485,6 +485,9 @@
+ /* The size of 'void *', as computer by sizeof */
+ #define EVENT__SIZEOF_VOID_P @EVENT__SIZEOF_VOID_P@
+
++/* The size of 'time_t', as computer by sizeof */
++#define EVENT__SIZEOF_TIME_T @EVENT__SIZEOF_TIME_T@
++
+ /* Define to `__inline__' or `__inline' if that's what the C compiler
+ calls it, or to nothing if 'inline' is not supported under any name. */
+ #ifndef __cplusplus
Copied: libevent/repos/staging-x86_64/PKGBUILD (from rev 459796,
libevent/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD (rev 0)
+++ staging-x86_64/PKGBUILD 2022-11-01 11:48:01 UTC (rev 459797)
@@ -0,0 +1,70 @@
+# Contributor: Tom Gundersen <[email protected]>
+# Contributor: Judd <[email protected]>
+
+pkgbase=libevent
+pkgname=(libevent libevent-docs)
+pkgver=2.1.12
+pkgrel=3
+pkgdesc="Event notification library"
+url="https://libevent.org/"
+arch=(x86_64)
+license=(BSD)
+depends=(openssl)
+makedepends=(cmake ninja python zlib doxygen)
+options=(debug)
+source=(
+
https://github.com/libevent/libevent/releases/download/release-$pkgver-stable/libevent-$pkgver-stable.tar.gz{,.asc}
+ EVENT__SIZEOF_TIME_T.patch
+ libevent-2.1.12-openssl-compat.patch
+)
+sha256sums=('92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb'
+ 'SKIP'
+ '945fc885b15692721bc7ae52f5774ef4fab8cc0f6108baa8860ab368de8675cf'
+ 'e41527c55f6dacc6453b13eeeea2664798496896b796abcd2a5c8304c9eb2bae')
+validpgpkeys=('B35BF85BF19489D04E28C33C21194EBB165733EA'
+ '9E3AC83A27974B84D1B3401DB86086848EF8686D')
+
+prepare() {
+ cd libevent-$pkgver-stable
+
+ # Fix Firefox build
+ patch -Np1 -i ../EVENT__SIZEOF_TIME_T.patch
+
+ # Fix build with OpenSSL 3.0
+ patch -Np1 -i ../libevent-2.1.12-openssl-compat.patch
+}
+
+build() {
+ cmake -S libevent-$pkgver-stable -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_INSTALL_RPATH=TRUE \
+ -DEVENT__LIBRARY_TYPE=SHARED \
+ -DEVENT__DISABLE_REGRESS=OFF \
+ -DEVENT__DOXYGEN=ON
+ cmake --build build
+}
+
+check() {
+ cd build
+ ctest --output-on-failure --stop-on-failure -j$(nproc)
+}
+
+package_libevent() {
+ provides=(libevent{,_core,_extra,_openssl,_pthreads}-2.1.so)
+ optdepends=('python: event_rpcgen.py')
+
+ DESTDIR="$pkgdir" cmake --install build
+
+ mkdir -p doc/usr/share
+ mv {"$pkgdir",doc}/usr/share/doc
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644
libevent-$pkgver-stable/LICENSE
+}
+
+package_libevent-docs() {
+ pkgdesc+=" (documentation)"
+ depends=()
+
+ mv doc/* "$pkgdir"
+}
Copied: libevent/repos/staging-x86_64/libevent-2.1.12-openssl-compat.patch
(from rev 459796, libevent/trunk/libevent-2.1.12-openssl-compat.patch)
===================================================================
--- staging-x86_64/libevent-2.1.12-openssl-compat.patch
(rev 0)
+++ staging-x86_64/libevent-2.1.12-openssl-compat.patch 2022-11-01 11:48:01 UTC
(rev 459797)
@@ -0,0 +1,74 @@
+commit 7f4684c0d362fefee8697ceed3f4f8642ed147ce
+Author: William Marlow <[email protected]>
+Date: Sat Jun 18 21:43:31 2022 +0100
+
+ Initial OpenSSL 3.0 support
+
+ * Don't use deprecated functions when building against OpenSSL 3.0.
+ * Recognise that OpenSSL 3.0 can signal a dirty shutdown as a protocol.
+ error in addition to the expected IO error produced by OpenSSL 1.1.1
+ * Update regress_mbedtls.c for compatibility with OpenSSL 3
+
+ (cherry picked from commit 29c420c418aeb497e5e8b7abd45dee39194ca5fc)
+
+ Conflicts:
+ bufferevent_openssl.c
+ sample/becat.c
+ test/regress_mbedtls.c
+
+diff --git a/bufferevent_openssl.c b/bufferevent_openssl.c
+index b51b834b..520e2d6f 100644
+--- a/bufferevent_openssl.c
++++ b/bufferevent_openssl.c
+@@ -514,7 +514,9 @@ conn_closed(struct bufferevent_openssl *bev_ssl, int when,
int errcode, int ret)
+ put_error(bev_ssl, errcode);
+ break;
+ case SSL_ERROR_SSL:
+- /* Protocol error. */
++ /* Protocol error; possibly a dirty shutdown. */
++ if (ret == 0 && SSL_is_init_finished(bev_ssl->ssl) == 0)
++ dirty_shutdown = 1;
+ put_error(bev_ssl, errcode);
+ break;
+ case SSL_ERROR_WANT_X509_LOOKUP:
+diff --git a/sample/le-proxy.c b/sample/le-proxy.c
+index 13e0e2ae..e9af3c68 100644
+--- a/sample/le-proxy.c
++++ b/sample/le-proxy.c
+@@ -112,10 +112,15 @@ eventcb(struct bufferevent *bev, short what, void *ctx)
+ ERR_reason_error_string(err);
+ const char *lib = (const char*)
+ ERR_lib_error_string(err);
++#if OPENSSL_VERSION_MAJOR >= 3
++ fprintf(stderr,
++ "%s in %s\n", msg, lib);
++#else
+ const char *func = (const char*)
+ ERR_func_error_string(err);
+ fprintf(stderr,
+ "%s in %s %s\n", msg, lib, func);
++#endif
+ }
+ if (errno)
+ perror("connection error");
+diff --git a/test/regress_ssl.c b/test/regress_ssl.c
+index 37dc334d..490be9b2 100644
+--- a/test/regress_ssl.c
++++ b/test/regress_ssl.c
+@@ -374,7 +374,16 @@ eventcb(struct bufferevent *bev, short what, void *ctx)
+ ++n_connected;
+ ssl = bufferevent_openssl_get_ssl(bev);
+ tt_assert(ssl);
++#if OPENSSL_VERSION_MAJOR >= 3
++ /* SSL_get1_peer_certificate() means we want
++ * to increase the reference count on the cert
++ * and so we will need to free it ourselves later
++ * when we're done with it. The non-reference count
++ * increasing version is not available in OpenSSL 1.1.1. */
++ peer_cert = SSL_get1_peer_certificate(ssl);
++#else
+ peer_cert = SSL_get_peer_certificate(ssl);
++#endif
+ if (type & REGRESS_OPENSSL_SERVER) {
+ tt_assert(peer_cert == NULL);
+ } else {