summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Deutschmann <whissi@gentoo.org>2017-05-15 12:00:50 +0200
committerThomas Deutschmann <whissi@gentoo.org>2017-05-15 12:00:50 +0200
commita48ec0a85e36706424dbdac3192a508c6206f3c1 (patch)
tree06fd97e0463bfb565d16007fbb6d9cebaee6e350 /net-libs/zeromq
parentdev-python/urllib3: Bump to version 1.21.1 (diff)
downloadgentoo-a48ec0a85e36706424dbdac3192a508c6206f3c1.tar.gz
gentoo-a48ec0a85e36706424dbdac3192a508c6206f3c1.tar.bz2
gentoo-a48ec0a85e36706424dbdac3192a508c6206f3c1.zip
net-libs/zeromq: Rev bump to disable exp. zmq_poll implementation
A feature under development has sneaked in as active by default in the recent releases of libzmq. This feature completely changes the internal implementation for zmq_poll, a very widely used API, and as such upstream do not believe this should be shipped yet, hence the initial severity choice. Debian-Bug: https://bugs.debian.org/861416 Package-Manager: Portage-2.3.5, Repoman-2.3.2
Diffstat (limited to 'net-libs/zeromq')
-rw-r--r--net-libs/zeromq/files/zeromq-4.2.1-disable-experimental-zmq_poll-implementation.patch35
-rw-r--r--net-libs/zeromq/zeromq-4.2.2-r1.ebuild57
2 files changed, 92 insertions, 0 deletions
diff --git a/net-libs/zeromq/files/zeromq-4.2.1-disable-experimental-zmq_poll-implementation.patch b/net-libs/zeromq/files/zeromq-4.2.1-disable-experimental-zmq_poll-implementation.patch
new file mode 100644
index 000000000000..3efe2153bfa9
--- /dev/null
+++ b/net-libs/zeromq/files/zeromq-4.2.1-disable-experimental-zmq_poll-implementation.patch
@@ -0,0 +1,35 @@
+From 90c76fbd6069b8e1e98236f31317ed22792ab739 Mon Sep 17 00:00:00 2001
+From: Luca Boccassi <luca.boccassi@gmail.com>
+Date: Fri, 28 Apr 2017 16:08:46 +0100
+Subject: [PATCH] Problem: new zmq_poller used by zmq_poll without DRAFTs
+
+Solution: do not define ZMQ_HAVE_POLLER in src/zmq_drafts.h otherwise
+src/zmq.cpp will implement zmq_poll using the new poller classes.
+Same for ZMQ_HAVE_TIMERS, even though it has no internal effect, but
+to be safe against future development.
+---
+ src/zmq_draft.h | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/src/zmq_draft.h b/src/zmq_draft.h
+index bfbf9e3..9aed6dd 100644
+--- a/src/zmq_draft.h
++++ b/src/zmq_draft.h
+@@ -67,8 +67,6 @@ const char *zmq_msg_group(zmq_msg_t *msg);
+ /* Poller polling on sockets,fd and thread-safe sockets */
+ /******************************************************************************/
+
+-#define ZMQ_HAVE_POLLER
+-
+ typedef struct zmq_poller_event_t
+ {
+ void *socket;
+@@ -103,8 +101,6 @@ int zmq_poller_remove_fd (void *poller, int fd);
+ /* Scheduling timers */
+ /******************************************************************************/
+
+-#define ZMQ_HAVE_TIMERS
+-
+ typedef void (zmq_timer_fn)(int timer_id, void *arg);
+
+ void *zmq_timers_new (void);
diff --git a/net-libs/zeromq/zeromq-4.2.2-r1.ebuild b/net-libs/zeromq/zeromq-4.2.2-r1.ebuild
new file mode 100644
index 000000000000..995ecf31a705
--- /dev/null
+++ b/net-libs/zeromq/zeromq-4.2.2-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit autotools
+
+DESCRIPTION="A brokerless kernel"
+HOMEPAGE="http://www.zeromq.org/"
+SRC_URI="https://github.com/zeromq/libzmq/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0/5"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="pgm +sodium static-libs test"
+
+RDEPEND="
+ sys-libs/libunwind
+ sodium? ( dev-libs/libsodium:= )
+ pgm? ( =net-libs/openpgm-5.2.122 )"
+DEPEND="${RDEPEND}
+ app-text/asciidoc
+ app-text/xmlto
+ sys-apps/util-linux
+ pgm? ( virtual/pkgconfig )"
+
+PATCHES=( "${FILESDIR}"/${PN}-4.2.1-disable-experimental-zmq_poll-implementation.patch )
+
+src_prepare() {
+ sed \
+ -e '/libzmq_werror=/s:yes:no:g' \
+ -i configure.ac || die
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ --enable-shared
+ $(use_enable static-libs static)
+ $(use_with sodium libsodium)
+ $(use_with pgm)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ # Restricting to one job because multiple tests are using the same port.
+ # Upstream knows the problem and says it doesn't support parallel test
+ # execution, see ${S}/INSTALL.
+ emake -j1 check
+}
+
+src_install() {
+ default
+ find "${ED}"usr/lib* -name '*.la' -delete || die
+}