* [gentoo-commits] repo/gentoo:master commit in: dev-libs/libevent/files/, dev-libs/libevent/
@ 2023-05-02 20:50 Sam James
0 siblings, 0 replies; 3+ messages in thread
From: Sam James @ 2023-05-02 20:50 UTC (permalink / raw
To: gentoo-commits
commit: ae11d4beef4f60804707d74f07e0c25fe6c59b5b
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Tue May 2 17:14:37 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue May 2 20:47:07 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ae11d4be
dev-libs/libevent: fix the build with clang-16
Closes: https://bugs.gentoo.org/880381
Upstream-Commit: https://github.com/libevent/libevent/commit/35375101e741d78bf49642c6929c1eb69a7c3d79
Signed-off-by: orbea <orbea <AT> riseup.net>
Closes: https://github.com/gentoo/gentoo/pull/30840
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../libevent/files/libevent-2.1.12-clang16.patch | 105 +++++++++++++++++++++
dev-libs/libevent/libevent-2.1.12-r1.ebuild | 1 +
2 files changed, 106 insertions(+)
diff --git a/dev-libs/libevent/files/libevent-2.1.12-clang16.patch b/dev-libs/libevent/files/libevent-2.1.12-clang16.patch
new file mode 100644
index 000000000000..2ecf2472079f
--- /dev/null
+++ b/dev-libs/libevent/files/libevent-2.1.12-clang16.patch
@@ -0,0 +1,105 @@
+https://bugs.gentoo.org/880381
+https://github.com/libevent/libevent/commit/35375101e741d78bf49642c6929c1eb69a7c3d79
+
+From 35375101e741d78bf49642c6929c1eb69a7c3d79 Mon Sep 17 00:00:00 2001
+From: Azat Khuzhin <azat@libevent.org>
+Date: Fri, 27 Jan 2023 08:57:33 +0100
+Subject: [PATCH] Fixes some new warnings under clang-15
+
+- -Wdeprecated-non-prototype
+
+ /src/le/libevent/strlcpy.c:48:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
+ event_strlcpy_(dst, src, siz)
+
+- -Wstrict-prototypes
+
+ /src/le/libevent/evthread.c:82:70: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
+ struct evthread_condition_callbacks *evthread_get_condition_callbacks()
+
+- -Wunused-but-set-variable
+
+ /src/le/libevent/test/regress_buffer.c:130:6: warning: variable 'n' set but not used [-Wunused-but-set-variable]
+ int n = 0;
+ ^
+---
+ evthread.c | 4 ++--
+ strlcpy.c | 6 +-----
+ test/regress_buffer.c | 5 -----
+ 3 files changed, 3 insertions(+), 12 deletions(-)
+
+diff --git a/evthread.c b/evthread.c
+index 3eac594d64..c2da914da1 100644
+--- a/evthread.c
++++ b/evthread.c
+@@ -74,12 +74,12 @@ evthread_set_id_callback(unsigned long (*id_fn)(void))
+ evthread_id_fn_ = id_fn;
+ }
+
+-struct evthread_lock_callbacks *evthread_get_lock_callbacks()
++struct evthread_lock_callbacks *evthread_get_lock_callbacks(void)
+ {
+ return evthread_lock_debugging_enabled_
+ ? &original_lock_fns_ : &evthread_lock_fns_;
+ }
+-struct evthread_condition_callbacks *evthread_get_condition_callbacks()
++struct evthread_condition_callbacks *evthread_get_condition_callbacks(void)
+ {
+ return evthread_lock_debugging_enabled_
+ ? &original_cond_fns_ : &evthread_cond_fns_;
+diff --git a/strlcpy.c b/strlcpy.c
+index 3876475f5a..04c74298dc 100644
+--- a/strlcpy.c
++++ b/strlcpy.c
+@@ -44,11 +44,7 @@ static char *rcsid = "$OpenBSD: strlcpy.c,v 1.5 2001/05/13 15:40:16 deraadt Exp
+ * will be copied. Always NUL terminates (unless siz == 0).
+ * Returns strlen(src); if retval >= siz, truncation occurred.
+ */
+-size_t
+-event_strlcpy_(dst, src, siz)
+- char *dst;
+- const char *src;
+- size_t siz;
++size_t event_strlcpy_(char *dst, const char *src, size_t siz)
+ {
+ register char *d = dst;
+ register const char *s = src;
+diff --git a/test/regress_buffer.c b/test/regress_buffer.c
+index 5683810e26..b0a9e0c162 100644
+--- a/test/regress_buffer.c
++++ b/test/regress_buffer.c
+@@ -127,19 +127,16 @@ evbuffer_get_waste(struct evbuffer *buf, size_t *allocatedp, size_t *wastedp, si
+ {
+ struct evbuffer_chain *chain;
+ size_t a, w, u;
+- int n = 0;
+ u = a = w = 0;
+
+ chain = buf->first;
+ /* skip empty at start */
+ while (chain && chain->off==0) {
+- ++n;
+ a += chain->buffer_len;
+ chain = chain->next;
+ }
+ /* first nonempty chain: stuff at the end only is wasted. */
+ if (chain) {
+- ++n;
+ a += chain->buffer_len;
+ u += chain->off;
+ if (chain->next && chain->next->off)
+@@ -148,7 +145,6 @@ evbuffer_get_waste(struct evbuffer *buf, size_t *allocatedp, size_t *wastedp, si
+ }
+ /* subsequent nonempty chains */
+ while (chain && chain->off) {
+- ++n;
+ a += chain->buffer_len;
+ w += (size_t)chain->misalign;
+ u += chain->off;
+@@ -158,7 +154,6 @@ evbuffer_get_waste(struct evbuffer *buf, size_t *allocatedp, size_t *wastedp, si
+ }
+ /* subsequent empty chains */
+ while (chain) {
+- ++n;
+ a += chain->buffer_len;
+ }
+ *allocatedp = a;
diff --git a/dev-libs/libevent/libevent-2.1.12-r1.ebuild b/dev-libs/libevent/libevent-2.1.12-r1.ebuild
index bc2c6da3c012..52b0dc8fd562 100644
--- a/dev-libs/libevent/libevent-2.1.12-r1.ebuild
+++ b/dev-libs/libevent/libevent-2.1.12-r1.ebuild
@@ -38,6 +38,7 @@ MULTILIB_WRAPPED_HEADERS=(
S=${WORKDIR}/${P/_/-}-stable
PATCHES=(
+ "${FILESDIR}"/${P}-clang16.patch #880381
"${FILESDIR}"/${P}-libressl.patch #903001
)
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/libevent/files/, dev-libs/libevent/
@ 2023-05-02 20:50 Sam James
0 siblings, 0 replies; 3+ messages in thread
From: Sam James @ 2023-05-02 20:50 UTC (permalink / raw
To: gentoo-commits
commit: 339d581366252f59abd7b6a9fe06d4c5c08af0c2
Author: orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Tue May 2 16:45:03 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue May 2 20:47:06 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=339d5813
dev-libs/libevent: add upstream libressl patch
This fixes the build with LibreSSL >= 3.5 when the BIO_get_init()
function became available.
Bug: https://bugs.gentoo.org/903001
Upstream-Issue: https://github.com/libevent/libevent/issues/1277
Upstream-PR: https://github.com/libevent/libevent/pull/1227
Upstream-Commit: https://github.com/libevent/libevent/commit/883630f76cbf512003b81de25cd96cb75c6cf0f9
Signed-off-by: orbea <orbea <AT> riseup.net>
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../libevent/files/libevent-2.1.12-libressl.patch | 30 ++++++++++++++++++++++
dev-libs/libevent/libevent-2.1.12-r1.ebuild | 4 +++
2 files changed, 34 insertions(+)
diff --git a/dev-libs/libevent/files/libevent-2.1.12-libressl.patch b/dev-libs/libevent/files/libevent-2.1.12-libressl.patch
new file mode 100644
index 000000000000..4c809aface12
--- /dev/null
+++ b/dev-libs/libevent/files/libevent-2.1.12-libressl.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/903001
+https://github.com/libevent/libevent/issues/1277
+https://github.com/libevent/libevent/pull/1227
+https://github.com/libevent/libevent/commit/883630f76cbf512003b81de25cd96cb75c6cf0f9
+
+From 883630f76cbf512003b81de25cd96cb75c6cf0f9 Mon Sep 17 00:00:00 2001
+From: Theo Buehler <tb@openbsd.org>
+Date: Sun, 21 Nov 2021 21:38:20 +0100
+Subject: [PATCH] Don't define BIO_get_init() for LibreSSL 3.5+
+
+BIO_get_init() is available in LibreSSL 3.5 and later. The BIO type
+will become opaque, so the existing macro will break the build.
+---
+ openssl-compat.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/openssl-compat.h b/openssl-compat.h
+index a23e34251b..f5de25539f 100644
+--- a/openssl-compat.h
++++ b/openssl-compat.h
+@@ -40,7 +40,8 @@ static inline BIO_METHOD *BIO_meth_new(int type, const char *name)
+ #endif /* (OPENSSL_VERSION_NUMBER < 0x10100000L) || \
+ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L) */
+
+-#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x20700000L
++#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x20700000L && \
++ LIBRESSL_VERSION_NUMBER < 0x30500000L
+ #define BIO_get_init(b) (b)->init
+ #endif
+
diff --git a/dev-libs/libevent/libevent-2.1.12-r1.ebuild b/dev-libs/libevent/libevent-2.1.12-r1.ebuild
index 2077b9fd606f..bc2c6da3c012 100644
--- a/dev-libs/libevent/libevent-2.1.12-r1.ebuild
+++ b/dev-libs/libevent/libevent-2.1.12-r1.ebuild
@@ -37,6 +37,10 @@ MULTILIB_WRAPPED_HEADERS=(
)
S=${WORKDIR}/${P/_/-}-stable
+PATCHES=(
+ "${FILESDIR}"/${P}-libressl.patch #903001
+)
+
src_prepare() {
default
# bug #767472
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/libevent/files/, dev-libs/libevent/
@ 2023-07-11 5:52 Michał Górny
0 siblings, 0 replies; 3+ messages in thread
From: Michał Górny @ 2023-07-11 5:52 UTC (permalink / raw
To: gentoo-commits
commit: 0edb96f7d0518fd8498cd6f019335195c5368dc3
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 11 04:30:03 2023 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul 11 05:51:41 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0edb96f7
dev-libs/libevent: Disable signalfd by default in 2.2.1
Backport the upstream pull request that disables signalfd by default,
as it turned out to cause lots of unexpected breakage. In particular,
app-misc/tmux was broken and it can't be trivially fixed.
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
.../files/libevent-2.2.1-disable-signalfd.patch | 152 +++++++++++++++++++++
...nt-2.2.1-r1.ebuild => libevent-2.2.1-r2.ebuild} | 8 +-
2 files changed, 159 insertions(+), 1 deletion(-)
diff --git a/dev-libs/libevent/files/libevent-2.2.1-disable-signalfd.patch b/dev-libs/libevent/files/libevent-2.2.1-disable-signalfd.patch
new file mode 100644
index 000000000000..6dfce3db3497
--- /dev/null
+++ b/dev-libs/libevent/files/libevent-2.2.1-disable-signalfd.patch
@@ -0,0 +1,152 @@
+From 594ab34f1dfc73db85e8f95ec51892cadecaa76c Mon Sep 17 00:00:00 2001
+From: Azat Khuzhin <azat@libevent.org>
+Date: Mon, 10 Jul 2023 10:40:49 +0200
+Subject: [PATCH] Disable signalfd by default
+
+signalfd may behave differently to sigaction/signal, so to avoid
+breaking libevent users (like [1], [2]) disable it by default.
+
+ [1]: https://github.com/tmux/tmux/pull/3621
+ [2]: https://github.com/tmux/tmux/pull/3626
+
+Also signalfd is not that perfect:
+- you need to SIG_BLOCK the signal before
+ - blocked signals are not reset on exec
+ - blocked signals are allowed to coalesce - so in case of multiple
+ signals sent you may get the signal only once (ok for most of the
+ signals, but may be a problem for SIGCHLD, though you may call
+ waitpid() in a loop or use pidfd)
+- and also one implementation problem -
+ sigprocmask is unspecified in a multithreaded process
+
+Refs:
+- https://lwn.net/Articles/415684/
+- https://ldpreload.com/blog/signalfd-is-useless
+
+Refs: https://github.com/libevent/libevent/issues/1460
+Refs: #1342 (cc @dmantipov)
+---
+ CMakeLists.txt | 1 +
+ include/event2/event.h | 6 ++++--
+ signalfd.c | 4 ++--
+ test/include.am | 2 ++
+ test/test.sh | 11 +++++++++--
+ 5 files changed, 18 insertions(+), 6 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cd41d16e57..9c402ec0c1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1509,6 +1509,7 @@ if (NOT EVENT__DISABLE_TESTS)
+ else()
+ add_backend_test(${BACKEND} "${BACKEND_ENV_VARS}")
+ endif()
++ add_backend_test(signalfd_${BACKEND} "${BACKEND_ENV_VARS};EVENT_USE_SIGNALFD=1")
+ endforeach()
+
+ #
+diff --git a/include/event2/event.h b/include/event2/event.h
+index 384a84178b..9b971edf1d 100644
+--- a/include/event2/event.h
++++ b/include/event2/event.h
+@@ -599,9 +599,11 @@ enum event_base_config_flag {
+ */
+ EVENT_BASE_FLAG_EPOLL_DISALLOW_TIMERFD = 0x40,
+
+- /** Do not use signalfd(2) to handle signals even if supported.
++ /** Use signalfd(2) to handle signals over sigaction/signal.
++ *
++ * But note, that in some edge cases signalfd() may works differently.
+ */
+- EVENT_BASE_FLAG_DISALLOW_SIGNALFD = 0x80,
++ EVENT_BASE_FLAG_USE_SIGNALFD = 0x80,
+ };
+
+ /**
+diff --git a/signalfd.c b/signalfd.c
+index 376a04d539..ed31014e5f 100644
+--- a/signalfd.c
++++ b/signalfd.c
+@@ -205,8 +205,8 @@ sigfd_del(struct event_base *base, int signo, short old, short events, void *p)
+ int sigfd_init_(struct event_base *base)
+ {
+ EVUTIL_ASSERT(base != NULL);
+- if ((base->flags & EVENT_BASE_FLAG_DISALLOW_SIGNALFD) ||
+- getenv("EVENT_DISALLOW_SIGNALFD"))
++ if (!(base->flags & EVENT_BASE_FLAG_USE_SIGNALFD) &&
++ !getenv("EVENT_USE_SIGNALFD"))
+ return -1;
+ base->evsigsel = &sigfdops;
+ return 0;
+diff --git a/test/include.am b/test/include.am
+index e061c937b7..9b50759da7 100644
+--- a/test/include.am
++++ b/test/include.am
+@@ -80,6 +80,8 @@ test_runner_changelist: $(top_srcdir)/test/test.sh
+ $(top_srcdir)/test/test.sh -b "" -c
+ test_runner_timerfd_changelist: $(top_srcdir)/test/test.sh
+ $(top_srcdir)/test/test.sh -b "" -T
++test_runner_timerfd_changelist: $(top_srcdir)/test/test.sh
++ $(top_srcdir)/test/test.sh -b "" -S
+
+ DISTCLEANFILES += test/regress.gen.c test/regress.gen.h
+
+diff --git a/test/test.sh b/test/test.sh
+index dfdd2bf098..79362888c5 100755
+--- a/test/test.sh
++++ b/test/test.sh
+@@ -50,6 +50,7 @@ setup () {
+ done
+ unset EVENT_EPOLL_USE_CHANGELIST
+ unset EVENT_PRECISE_TIMER
++ unset EVENT_USE_SIGNALFD
+ }
+
+ announce () {
+@@ -138,10 +139,12 @@ do_test() {
+ EVENT_EPOLL_USE_CHANGELIST=yes; export EVENT_EPOLL_USE_CHANGELIST
+ elif test "$2" = "(timerfd)" ; then
+ EVENT_PRECISE_TIMER=1; export EVENT_PRECISE_TIMER
++ elif test "$2" = "(signalfd)" ; then
++ EVENT_USE_SIGNALFD=1; export EVENT_USE_SIGNALFD
+ elif test "$2" = "(timerfd+changelist)" ; then
+ EVENT_EPOLL_USE_CHANGELIST=yes; export EVENT_EPOLL_USE_CHANGELIST
+ EVENT_PRECISE_TIMER=1; export EVENT_PRECISE_TIMER
+- fi
++ fi
+
+ run_tests
+ }
+@@ -153,6 +156,7 @@ usage()
+ -t - run timerfd test
+ -c - run changelist test
+ -T - run timerfd+changelist test
++ -S - run signalfd test
+ EOL
+ }
+ main()
+@@ -161,13 +165,15 @@ main()
+ timerfd=0
+ changelist=0
+ timerfd_changelist=0
++ signalfd=0
+
+- while getopts "b:tcT" c; do
++ while getopts "b:tcTS" c; do
+ case "$c" in
+ b) backends="$OPTARG";;
+ t) timerfd=1;;
+ c) changelist=1;;
+ T) timerfd_changelist=1;;
++ S) signalfd=1;;
+ ?*) usage && exit 1;;
+ esac
+ done
+@@ -179,6 +185,7 @@ main()
+ [ $timerfd_changelist -eq 0 ] || do_test EPOLL "(timerfd+changelist)"
+ for i in $backends; do
+ do_test $i
++ [ $signalfd -eq 0 ] || do_test $i "(signalfd)"
+ done
+
+ if test "$FAILED" = "yes"; then
diff --git a/dev-libs/libevent/libevent-2.2.1-r1.ebuild b/dev-libs/libevent/libevent-2.2.1-r2.ebuild
similarity index 90%
rename from dev-libs/libevent/libevent-2.2.1-r1.ebuild
rename to dev-libs/libevent/libevent-2.2.1-r2.ebuild
index 63ff06976ccb..ea1d05922dfd 100644
--- a/dev-libs/libevent/libevent-2.2.1-r1.ebuild
+++ b/dev-libs/libevent/libevent-2.2.1-r2.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
S=${WORKDIR}/${MY_P}
LICENSE="BSD"
-SLOT="0/2.2"
+SLOT="0/2.2.1-r2"
KEYWORDS=""
IUSE="
+clock-gettime debug malloc-replacement mbedtls +ssl static-libs
@@ -49,6 +49,12 @@ MULTILIB_WRAPPED_HEADERS=(
)
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/libevent.asc
+PATCHES=(
+ # signalfd-by-default breaks at least app-misc/tmux
+ # https://github.com/libevent/libevent/pull/1486
+ "${FILESDIR}/${P}-disable-signalfd.patch"
+)
+
multilib_src_configure() {
# fix out-of-source builds
mkdir -p test || die
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-07-11 5:52 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-02 20:50 [gentoo-commits] repo/gentoo:master commit in: dev-libs/libevent/files/, dev-libs/libevent/ Sam James
-- strict thread matches above, loose matches on Subject: below --
2023-05-02 20:50 Sam James
2023-07-11 5:52 Michał Górny
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox