summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Klausmann <klausman@gentoo.org>2015-10-15 09:38:47 +0200
committerTobias Klausmann <klausman@gentoo.org>2015-10-15 09:38:47 +0200
commit9183fd4b8989b9411c96db8b7f71780422af4b2e (patch)
tree6ea54785c3c924d4b348f2b8009801c71547da56 /dev-libs/libevent
parentsys-kernel/vanilla-sources: Automated version bump to 3.2.72 - remove old. (diff)
downloadgentoo-9183fd4b8989b9411c96db8b7f71780422af4b2e.tar.gz
gentoo-9183fd4b8989b9411c96db8b7f71780422af4b2e.tar.bz2
gentoo-9183fd4b8989b9411c96db8b7f71780422af4b2e.zip
dev-libs/libevent: Add patch to fix Zombie leftovers
When-if upstream makes a release that contains this patch, we can drop it. But since it has been six months without a release, let'suse it directly ourselves. Gentoo-Bug: 540456 Libevent-Bug: http://sourceforge.net/p/levent/bugs/350/ Package-Manager: portage-2.2.23
Diffstat (limited to 'dev-libs/libevent')
-rw-r--r--dev-libs/libevent/files/event_signals_ordering.patch36
-rw-r--r--dev-libs/libevent/libevent-2.1.5-r4.ebuild70
2 files changed, 106 insertions, 0 deletions
diff --git a/dev-libs/libevent/files/event_signals_ordering.patch b/dev-libs/libevent/files/event_signals_ordering.patch
new file mode 100644
index 000000000000..d0cb2b3b4bcf
--- /dev/null
+++ b/dev-libs/libevent/files/event_signals_ordering.patch
@@ -0,0 +1,36 @@
+diff --git a/event.c b/event.c
+index acef2b2..ad4c7f0 100644
+--- a/event.c
++++ b/event.c
+@@ -926,13 +926,13 @@ event_reinit(struct event_base *base)
+ event_del_nolock_(&base->sig.ev_signal, EVENT_DEL_AUTOBLOCK);
+ event_debug_unassign(&base->sig.ev_signal);
+ memset(&base->sig.ev_signal, 0, sizeof(base->sig.ev_signal));
+- if (base->sig.ev_signal_pair[0] != -1)
+- EVUTIL_CLOSESOCKET(base->sig.ev_signal_pair[0]);
+- if (base->sig.ev_signal_pair[1] != -1)
+- EVUTIL_CLOSESOCKET(base->sig.ev_signal_pair[1]);
+ had_signal_added = 1;
+ base->sig.ev_signal_added = 0;
+ }
++ if (base->sig.ev_signal_pair[0] != -1)
++ EVUTIL_CLOSESOCKET(base->sig.ev_signal_pair[0]);
++ if (base->sig.ev_signal_pair[1] != -1)
++ EVUTIL_CLOSESOCKET(base->sig.ev_signal_pair[1]);
+ if (base->th_notify_fn != NULL) {
+ was_notifiable = 1;
+ base->th_notify_fn = NULL;
+@@ -981,8 +981,12 @@ event_reinit(struct event_base *base)
+ if (evmap_reinit_(base) < 0)
+ res = -1;
+ } else {
+- if (had_signal_added)
+ res = evsig_init_(base);
++ if (res == 0 && had_signal_added) {
++ res = event_add_nolock_(&base->sig.ev_signal, NULL, 0);
++ if (res == 0)
++ base->sig.ev_signal_added = 1;
++ }
+ }
+
+ /* If we were notifiable before, and nothing just exploded, become
diff --git a/dev-libs/libevent/libevent-2.1.5-r4.ebuild b/dev-libs/libevent/libevent-2.1.5-r4.ebuild
new file mode 100644
index 000000000000..e55213f0d758
--- /dev/null
+++ b/dev-libs/libevent/libevent-2.1.5-r4.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils libtool multilib-minimal
+
+MY_P="${P}-beta"
+
+DESCRIPTION="A library to execute a function when a specific event occurs on a file descriptor"
+HOMEPAGE="http://libevent.org/"
+SRC_URI="mirror://sourceforge/levent/files/${MY_P}.tar.gz"
+
+LICENSE="BSD"
+# libevent-2.1.so.5
+SLOT="0/2.1-5"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="debug libressl +ssl static-libs test +threads"
+
+DEPEND="
+ ssl? (
+ !libressl? ( >=dev-libs/openssl-1.0.1h-r2:0[${MULTILIB_USEDEP}] )
+ libressl? ( dev-libs/libressl[${MULTILIB_USEDEP}] )
+ )
+"
+RDEPEND="
+ ${DEPEND}
+ !<=dev-libs/9libs-1.0
+"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/event2/event-config.h
+)
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ elibtoolize
+ epatch "${FILESDIR}/event_signals_ordering.patch"
+ # don't waste time building tests
+ # https://github.com/libevent/libevent/pull/144
+ sed -i -e '/^all:/s|tests||g' Makefile.nmake || die
+}
+
+multilib_src_configure() {
+ # fix out-of-source builds
+ mkdir -p test || die
+
+ ECONF_SOURCE="${S}" \
+ econf \
+ $(use_enable debug debug-mode) \
+ $(use_enable debug malloc-replacement) \
+ $(use_enable ssl openssl) \
+ $(use_enable static-libs static) \
+ $(use_enable threads thread-support)
+}
+
+src_test() {
+ # The test suite doesn't quite work (see bug #406801 for the latest
+ # installment in a riveting series of reports).
+ :
+ # emake -C test check | tee "${T}"/tests
+}
+
+DOCS=( ChangeLog{,-1.4,-2.0} )
+
+multilib_src_install_all() {
+ einstalldocs
+ prune_libtool_files
+}