new blfs: dev-libs/libevent-2.1.12
This commit is contained in:
40
dev-libs/libevent-2.1.12.PKGBUILD
Normal file
40
dev-libs/libevent-2.1.12.PKGBUILD
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
pkgname=libevent
|
||||||
|
pkgver=2.1.12
|
||||||
|
pkgdesc="Event notification library"
|
||||||
|
homepage="https://libevent.org/"
|
||||||
|
arch=(x86_64)
|
||||||
|
license=(BSD-3-Clause-Modification)
|
||||||
|
sources=("${pkgname}-${pkgver}-stable.tar.gz"
|
||||||
|
"libevent-2.1.12-openssl-compat.patch"
|
||||||
|
)
|
||||||
|
urls=("https://github.com/libevent/libevent/releases/download/release-${pkgver}-stable/${sources[0]}"
|
||||||
|
"libevent-2.1.12-openssl-compat.patch"
|
||||||
|
)
|
||||||
|
md5sums=("b5333f021f880fe76490d8a799cd79f4"
|
||||||
|
"09ad6d62f6d7861c20df28a8a0ede1e0"
|
||||||
|
)
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
tar -xf ${distdir}/${sources[0]} --strip-components=1
|
||||||
|
patch -p1 -i ${filedir}/${sources[1]}
|
||||||
|
sed -i 's/python/&3/' event_rpcgen.py
|
||||||
|
}
|
||||||
|
|
||||||
|
src_build() {
|
||||||
|
./configure --prefix=/usr \
|
||||||
|
--disable-static \
|
||||||
|
--disable-libevent-regress # skip regress tests, following Arch
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
src_check() {
|
||||||
|
make verify
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
make DESTDIR="${pkgdir}" install
|
||||||
|
install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 LICENSE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# vim:ft=sh syn=sh et sw=2:
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
commit 7f4684c0d362fefee8697ceed3f4f8642ed147ce
|
||||||
|
Author: William Marlow <william.marlow@ibm.com>
|
||||||
|
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 {
|
||||||
|
|
||||||
Reference in New Issue
Block a user