net-libs/zeromq: Rev bump to disable exp. zmq_poll implementation
authorThomas Deutschmann <whissi@gentoo.org>
Mon, 15 May 2017 10:00:50 +0000 (12:00 +0200)
committerThomas Deutschmann <whissi@gentoo.org>
Mon, 15 May 2017 10:00:50 +0000 (12:00 +0200)
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

net-libs/zeromq/files/zeromq-4.2.1-disable-experimental-zmq_poll-implementation.patch [new file with mode: 0644]
net-libs/zeromq/zeromq-4.2.2-r1.ebuild [new file with mode: 0644]

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 (file)
index 0000000..3efe215
--- /dev/null
@@ -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 (file)
index 0000000..995ecf3
--- /dev/null
@@ -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
+}