commit:     a48ec0a85e36706424dbdac3192a508c6206f3c1
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Mon May 15 10:00:50 2017 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Mon May 15 10:00:50 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a48ec0a8

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

 ...able-experimental-zmq_poll-implementation.patch | 35 +++++++++++++
 net-libs/zeromq/zeromq-4.2.2-r1.ebuild             | 57 ++++++++++++++++++++++
 2 files changed, 92 insertions(+)

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 00000000000..3efe2153bfa
--- /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.bocca...@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 00000000000..995ecf31a70
--- /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
+}

Reply via email to