Index: head/net/libzmq4/Makefile =================================================================== --- head/net/libzmq4/Makefile (revision 491259) +++ head/net/libzmq4/Makefile (revision 491260) @@ -1,73 +1,75 @@ # $FreeBSD$ PORTNAME= libzmq4 DISTVERSIONPREFIX= v -DISTVERSION= 4.2.3 +DISTVERSION= 4.3.1 CATEGORIES= net MASTER_SITES= https://github.com/zeromq/libzmq/releases/download/${DISTVERSIONFULL}/ DISTNAME= zeromq-${DISTVERSION} MAINTAINER= koobs@FreeBSD.org COMMENT= ZeroMQ core library (Version 4) LICENSE= LGPL3 LICENSE_FILE= ${WRKSRC}/COPYING -CONFLICTS= zmq-[0-9]* libzmq[^4]-[0-9]* - USES= gmake libtool pkgconfig USE_LDCONFIG= yes + +CONFLICTS= zmq-[0-9]* libzmq[^4]-[0-9]* + GNU_CONFIGURE= yes INSTALL_TARGET= install-strip TEST_TARGET= check OPTIONS_DEFINE= DEBUG LIBUNWIND MANPAGES OPTIONS_RADIO= CURVE OPTIONS_RADIO_CURVE= SODIUM TWEETNACL OPTIONS_GROUP= MULTICAST OPTIONS_GROUP_MULTICAST= NORM PGM OPTIONS_DEFAULT= MANPAGES NORM PGM TWEETNACL OPTIONS_SUB= yes LIBUNWIND_DESC= Use libunwind to print stack trace in case of error CURVE_DESC= CURVE security backend MULTICAST_DESC= Reliable Multicast Transports TWEETNACL_DESC= Use tweetnacl SODIUM_DESC= Use libsodium PGM_DESC= Enable PGM transport via OpenPGM NORM_DESC= Enable NORM via NRL DEBUG_CONFIGURE_ENABLE= debug DEBUG_VARS= WITH_DEBUG=yes PGM_CONFIGURE_WITH= pgm PGM_LIB_DEPENDS= libpgm.so:net/openpgm LIBUNWIND_LIB_DEPENDS= libunwind.so:devel/libunwind LIBUNWIND_CONFIGURE_ENABLE= libunwind MANPAGES_BUILD_DEPENDS= xmlto:textproc/xmlto \ asciidoc:textproc/asciidoc MANPAGES_CONFIGURE_WITH= docs NORM_CONFIGURE_WITH= norm=${PREFIX} NORM_LIB_DEPENDS= libnorm.so:net/norm SODIUM_CONFIGURE_WITH= libsodium SODIUM_LIB_DEPENDS= libsodium.so:security/libsodium SODIUM_PLIST_FILES= bin/curve_keygen TWEETNACL_PLIST_FILES= bin/curve_keygen -CONFIGURE_ARGS+= --with-pkgconfigdir=${PREFIX}/libdata/pkgconfig --disable-static +CONFIGURE_ARGS+= --with-pkgconfigdir=${PREFIX}/libdata/pkgconfig \ + --disable-static \ + --disable-Werror \ + --disable-silent-rules CFLAGS+= -Wno-long-long -CPPFLAGS+= -Wno-error -MAKE_ENV= V=1 .include .if !${PORT_OPTIONS:MSODIUM} && !${PORT_OPTIONS:MTWEETNACL} CONFIGURE_ARGS+= --disable-curve .endif .include Index: head/net/libzmq4/distinfo =================================================================== --- head/net/libzmq4/distinfo (revision 491259) +++ head/net/libzmq4/distinfo (revision 491260) @@ -1,3 +1,5 @@ -TIMESTAMP = 1513839554 -SHA256 (zeromq-4.2.3.tar.gz) = 8f1e2b2aade4dbfde98d82366d61baef2f62e812530160d2e6d0a5bb24e40bc0 -SIZE (zeromq-4.2.3.tar.gz) = 1326780 +TIMESTAMP = 1548469918 +SHA256 (zeromq-4.3.1.tar.gz) = bcbabe1e2c7d0eec4ed612e10b94b112dd5f06fcefa994a0c79a45d835cd21eb +SIZE (zeromq-4.3.1.tar.gz) = 1490122 +SHA256 (/usr/home/koobs/repos/freebsd/ports/net/libzmq4/files/PR3358) = 63572ed3a8fa7e1d0f3d251b0aab32a94d1b9b841a53a0a715a8cafccca3289d +SIZE (/usr/home/koobs/repos/freebsd/ports/net/libzmq4/files/PR3358) = 6240 Index: head/net/libzmq4/files/patch-PR3358 =================================================================== --- head/net/libzmq4/files/patch-PR3358 (nonexistent) +++ head/net/libzmq4/files/patch-PR3358 (revision 491260) @@ -0,0 +1,179 @@ +From 4147957a5eec57ec7a2a416dca74c3c0299a3432 Mon Sep 17 00:00:00 2001 +From: Luca Boccassi +Date: Sun, 13 Jan 2019 13:08:10 +0000 +Subject: [PATCH 1/2] Problem: test_security_zap fails on architectures that + disallow unaligned pointer access + +Solution: use memcpy instead of doing pointer arithmetics with casting +and dereferencing to fix the error on sparc64 +--- + tests/testutil_security.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git tests/testutil_security.hpp tests/testutil_security.hpp +index 90999118c..437bfb298 100644 +--- tests/testutil_security.hpp ++++ tests/testutil_security.hpp +@@ -345,7 +345,7 @@ static int get_monitor_event_internal (void *monitor_, + uint8_t *data = (uint8_t *) zmq_msg_data (&msg); + uint16_t event = *(uint16_t *) (data); + if (value_) +- *value_ = *(uint32_t *) (data + 2); ++ memcpy (value_, data + 2, sizeof (uint32_t)); + + // Second frame in message contains event address + zmq_msg_init (&msg); + +From f64b697095c6d8862bdfd2a159857e915bbf20ee Mon Sep 17 00:00:00 2001 +From: Luca Boccassi +Date: Sun, 13 Jan 2019 14:50:07 +0000 +Subject: [PATCH 2/2] Problem: tests use hard-coded fixed IPC file path + +Solution: use wildcards or random directories to avoid races when +multiple users are running the same test on the same machine +--- + tests/test_pair_ipc.cpp | 9 +++++++-- + tests/test_rebind_ipc.cpp | 13 ++++++++----- + tests/test_reconnect_ivl.cpp | 10 +++++++--- + tests/test_use_fd.cpp | 24 +++++++++++++++++++----- + 4 files changed, 41 insertions(+), 15 deletions(-) + +diff --git tests/test_pair_ipc.cpp tests/test_pair_ipc.cpp +index c9a216dd2..ab4dde350 100644 +--- tests/test_pair_ipc.cpp ++++ tests/test_pair_ipc.cpp +@@ -44,11 +44,16 @@ void tearDown () + + void test_roundtrip () + { ++ char my_endpoint[256]; ++ size_t len = sizeof (my_endpoint); ++ + void *sb = test_context_socket (ZMQ_PAIR); +- TEST_ASSERT_SUCCESS_ERRNO (zmq_bind (sb, "ipc:///tmp/test_pair_ipc")); ++ TEST_ASSERT_SUCCESS_ERRNO (zmq_bind (sb, "ipc://*")); ++ TEST_ASSERT_SUCCESS_ERRNO ( ++ zmq_getsockopt (sb, ZMQ_LAST_ENDPOINT, my_endpoint, &len)); + + void *sc = test_context_socket (ZMQ_PAIR); +- TEST_ASSERT_SUCCESS_ERRNO (zmq_connect (sc, "ipc:///tmp/test_pair_ipc")); ++ TEST_ASSERT_SUCCESS_ERRNO (zmq_connect (sc, my_endpoint)); + + bounce (sb, sc); + +diff --git tests/test_rebind_ipc.cpp tests/test_rebind_ipc.cpp +index 830d18030..784641270 100644 +--- tests/test_rebind_ipc.cpp ++++ tests/test_rebind_ipc.cpp +@@ -42,24 +42,27 @@ void tearDown () + teardown_test_context (); + } + +-static const char *SOCKET_ADDR = "ipc:///tmp/test_rebind_ipc"; +- + void test_rebind_ipc () + { ++ char my_endpoint[256]; ++ size_t len = sizeof (my_endpoint); ++ + void *sb0 = test_context_socket (ZMQ_PUSH); + void *sb1 = test_context_socket (ZMQ_PUSH); + +- TEST_ASSERT_SUCCESS_ERRNO (zmq_bind (sb0, SOCKET_ADDR)); ++ TEST_ASSERT_SUCCESS_ERRNO (zmq_bind (sb0, "ipc://*")); ++ TEST_ASSERT_SUCCESS_ERRNO ( ++ zmq_getsockopt (sb0, ZMQ_LAST_ENDPOINT, my_endpoint, &len)); + + void *sc = test_context_socket (ZMQ_PULL); +- TEST_ASSERT_SUCCESS_ERRNO (zmq_connect (sc, SOCKET_ADDR)); ++ TEST_ASSERT_SUCCESS_ERRNO (zmq_connect (sc, my_endpoint)); + + send_string_expect_success (sb0, "42", 0); + recv_string_expect_success (sc, "42", 0); + + test_context_socket_close (sb0); + +- TEST_ASSERT_SUCCESS_ERRNO (zmq_bind (sb1, SOCKET_ADDR)); ++ TEST_ASSERT_SUCCESS_ERRNO (zmq_bind (sb1, my_endpoint)); + + send_string_expect_success (sb1, "42", 0); + recv_string_expect_success (sc, "42", 0); +diff --git tests/test_reconnect_ivl.cpp tests/test_reconnect_ivl.cpp +index b67b40e5f..6dd0e4cd2 100644 +--- tests/test_reconnect_ivl.cpp ++++ tests/test_reconnect_ivl.cpp +@@ -71,11 +71,15 @@ void test_reconnect_ivl_against_pair_socket (const char *my_endpoint_, + #if !defined(ZMQ_HAVE_WINDOWS) && !defined(ZMQ_HAVE_GNU) + void test_reconnect_ivl_ipc (void) + { +- const char *ipc_endpoint = "ipc:///tmp/test_reconnect_ivl"; ++ char my_endpoint[256]; ++ size_t len = sizeof (my_endpoint); ++ + void *sb = test_context_socket (ZMQ_PAIR); +- TEST_ASSERT_SUCCESS_ERRNO (zmq_bind (sb, ipc_endpoint)); ++ TEST_ASSERT_SUCCESS_ERRNO (zmq_bind (sb, "ipc://*")); ++ TEST_ASSERT_SUCCESS_ERRNO ( ++ zmq_getsockopt (sb, ZMQ_LAST_ENDPOINT, my_endpoint, &len)); + +- test_reconnect_ivl_against_pair_socket (ipc_endpoint, sb); ++ test_reconnect_ivl_against_pair_socket (my_endpoint, sb); + test_context_socket_close (sb); + } + #endif +diff --git tests/test_use_fd.cpp tests/test_use_fd.cpp +index 67414f5bf..e9852b13d 100644 +--- tests/test_use_fd.cpp ++++ tests/test_use_fd.cpp +@@ -237,24 +237,38 @@ void pre_allocate_sock_ipc_int (void *zmq_socket_, const char *path_) + sizeof (struct sockaddr_un)); + } + ++char ipc_endpoint[16]; ++ + void pre_allocate_sock_ipc (void *sb_, char *my_endpoint_) + { +- pre_allocate_sock_ipc_int (sb_, "/tmp/test_use_fd_ipc"); +- strcpy (my_endpoint_, "ipc:///tmp/test_use_fd_ipc"); ++ strcpy (ipc_endpoint, "tmpXXXXXX"); ++ ++#ifdef HAVE_MKDTEMP ++ TEST_ASSERT_TRUE (mkdtemp (ipc_endpoint)); ++ strcat (ipc_endpoint, "/ipc"); ++#else ++ int fd = mkstemp (ipc_endpoint); ++ TEST_ASSERT_TRUE (fd != -1); ++ close (fd); ++#endif ++ ++ pre_allocate_sock_ipc_int (sb_, ipc_endpoint); ++ strcpy (my_endpoint_, "ipc://"); ++ strcat (my_endpoint_, ipc_endpoint); + } + + void test_req_rep_ipc () + { + test_req_rep (pre_allocate_sock_ipc); + +- TEST_ASSERT_SUCCESS_ERRNO (unlink ("/tmp/test_use_fd_ipc")); ++ TEST_ASSERT_SUCCESS_ERRNO (unlink (ipc_endpoint)); + } + + void test_pair_ipc () + { + test_pair (pre_allocate_sock_ipc); + +- TEST_ASSERT_SUCCESS_ERRNO (unlink ("/tmp/test_use_fd_ipc")); ++ TEST_ASSERT_SUCCESS_ERRNO (unlink (ipc_endpoint)); + } + + void test_client_server_ipc () +@@ -262,7 +276,7 @@ void test_client_server_ipc () + #if defined(ZMQ_SERVER) && defined(ZMQ_CLIENT) + test_client_server (pre_allocate_sock_ipc); + +- TEST_ASSERT_SUCCESS_ERRNO (unlink ("/tmp/test_use_fd_ipc")); ++ TEST_ASSERT_SUCCESS_ERRNO (unlink (ipc_endpoint)); + #endif + } + Property changes on: head/net/libzmq4/files/patch-PR3358 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net/libzmq4/files/patch-PR3359 =================================================================== --- head/net/libzmq4/files/patch-PR3359 (nonexistent) +++ head/net/libzmq4/files/patch-PR3359 (revision 491260) @@ -0,0 +1,45 @@ +From d55956574d3b98268ec31045b012029ffc4b1a8c Mon Sep 17 00:00:00 2001 +From: Luca Boccassi +Date: Mon, 14 Jan 2019 00:10:08 +0000 +Subject: [PATCH] Problem: test_rebind_ipc still fails + +Solution: create manually the random IPC file to reuse +--- + tests/test_rebind_ipc.cpp | 20 +++++++++++++++----- + 1 file changed, 15 insertions(+), 5 deletions(-) + +diff --git tests/test_rebind_ipc.cpp tests/test_rebind_ipc.cpp +index 784641270..b14cb81d9 100644 +--- tests/test_rebind_ipc.cpp ++++ tests/test_rebind_ipc.cpp +@@ -44,15 +44,25 @@ void tearDown () + + void test_rebind_ipc () + { +- char my_endpoint[256]; +- size_t len = sizeof (my_endpoint); ++ char my_endpoint[32], random_file[16]; ++ strcpy (random_file, "tmpXXXXXX"); ++ ++#ifdef HAVE_MKDTEMP ++ TEST_ASSERT_TRUE (mkdtemp (random_file)); ++ strcat (random_file, "/ipc"); ++#else ++ int fd = mkstemp (random_file); ++ TEST_ASSERT_TRUE (fd != -1); ++ close (fd); ++#endif ++ ++ strcpy (my_endpoint, "ipc://"); ++ strcat (my_endpoint, random_file); + + void *sb0 = test_context_socket (ZMQ_PUSH); + void *sb1 = test_context_socket (ZMQ_PUSH); + +- TEST_ASSERT_SUCCESS_ERRNO (zmq_bind (sb0, "ipc://*")); +- TEST_ASSERT_SUCCESS_ERRNO ( +- zmq_getsockopt (sb0, ZMQ_LAST_ENDPOINT, my_endpoint, &len)); ++ TEST_ASSERT_SUCCESS_ERRNO (zmq_bind (sb0, my_endpoint)); + + void *sc = test_context_socket (ZMQ_PULL); + TEST_ASSERT_SUCCESS_ERRNO (zmq_connect (sc, my_endpoint)); Property changes on: head/net/libzmq4/files/patch-PR3359 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/net/libzmq4/pkg-plist =================================================================== --- head/net/libzmq4/pkg-plist (revision 491259) +++ head/net/libzmq4/pkg-plist (revision 491260) @@ -1,70 +1,72 @@ include/zmq_utils.h include/zmq.h lib/libzmq.so lib/libzmq.so.5 -lib/libzmq.so.5.1.3 +lib/libzmq.so.5.2.1 libdata/pkgconfig/libzmq.pc %%MANPAGES%%man/man3/zmq_atomic_counter_dec.3.gz %%MANPAGES%%man/man3/zmq_atomic_counter_destroy.3.gz %%MANPAGES%%man/man3/zmq_atomic_counter_inc.3.gz %%MANPAGES%%man/man3/zmq_atomic_counter_new.3.gz %%MANPAGES%%man/man3/zmq_atomic_counter_set.3.gz %%MANPAGES%%man/man3/zmq_atomic_counter_value.3.gz %%MANPAGES%%man/man3/zmq_bind.3.gz %%MANPAGES%%man/man3/zmq_close.3.gz %%MANPAGES%%man/man3/zmq_connect.3.gz %%MANPAGES%%man/man3/zmq_ctx_get.3.gz %%MANPAGES%%man/man3/zmq_ctx_new.3.gz %%MANPAGES%%man/man3/zmq_ctx_set.3.gz %%MANPAGES%%man/man3/zmq_ctx_shutdown.3.gz %%MANPAGES%%man/man3/zmq_ctx_term.3.gz %%MANPAGES%%man/man3/zmq_curve_keypair.3.gz %%MANPAGES%%man/man3/zmq_curve_public.3.gz %%MANPAGES%%man/man3/zmq_disconnect.3.gz %%MANPAGES%%man/man3/zmq_errno.3.gz %%MANPAGES%%man/man3/zmq_getsockopt.3.gz %%MANPAGES%%man/man7/zmq_gssapi.7.gz %%MANPAGES%%man/man3/zmq_has.3.gz %%MANPAGES%%man/man3/zmq_msg_close.3.gz %%MANPAGES%%man/man3/zmq_msg_copy.3.gz %%MANPAGES%%man/man3/zmq_msg_data.3.gz %%MANPAGES%%man/man3/zmq_msg_get.3.gz %%MANPAGES%%man/man3/zmq_msg_gets.3.gz %%MANPAGES%%man/man3/zmq_msg_init.3.gz %%MANPAGES%%man/man3/zmq_msg_init_data.3.gz %%MANPAGES%%man/man3/zmq_msg_init_size.3.gz %%MANPAGES%%man/man3/zmq_msg_more.3.gz %%MANPAGES%%man/man3/zmq_msg_move.3.gz %%MANPAGES%%man/man3/zmq_msg_recv.3.gz %%MANPAGES%%man/man3/zmq_msg_routing_id.3.gz %%MANPAGES%%man/man3/zmq_msg_send.3.gz %%MANPAGES%%man/man3/zmq_msg_set.3.gz %%MANPAGES%%man/man3/zmq_msg_set_routing_id.3.gz %%MANPAGES%%man/man3/zmq_msg_size.3.gz %%MANPAGES%%man/man3/zmq_poll.3.gz +%%MANPAGES%%man/man3/zmq_poller.3.gz %%MANPAGES%%man/man3/zmq_proxy.3.gz %%MANPAGES%%man/man3/zmq_proxy_steerable.3.gz %%MANPAGES%%man/man3/zmq_recv.3.gz %%MANPAGES%%man/man3/zmq_recvmsg.3.gz %%MANPAGES%%man/man3/zmq_send.3.gz %%MANPAGES%%man/man3/zmq_send_const.3.gz %%MANPAGES%%man/man3/zmq_sendmsg.3.gz %%MANPAGES%%man/man3/zmq_setsockopt.3.gz %%MANPAGES%%man/man3/zmq_socket.3.gz %%MANPAGES%%man/man3/zmq_socket_monitor.3.gz %%MANPAGES%%man/man3/zmq_strerror.3.gz +%%MANPAGES%%man/man3/zmq_timers.3.gz %%MANPAGES%%man/man3/zmq_unbind.3.gz %%MANPAGES%%man/man3/zmq_version.3.gz %%MANPAGES%%man/man3/zmq_z85_decode.3.gz %%MANPAGES%%man/man3/zmq_z85_encode.3.gz %%MANPAGES%%man/man7/zmq_curve.7.gz %%MANPAGES%%man/man7/zmq_inproc.7.gz %%MANPAGES%%man/man7/zmq_ipc.7.gz %%MANPAGES%%man/man7/zmq_null.7.gz %%MANPAGES%%man/man7/zmq_pgm.7.gz %%MANPAGES%%man/man7/zmq_plain.7.gz %%MANPAGES%%man/man7/zmq_tcp.7.gz %%MANPAGES%%man/man7/zmq_tipc.7.gz %%MANPAGES%%man/man7/zmq_udp.7.gz %%MANPAGES%%man/man7/zmq_vmci.7.gz %%MANPAGES%%man/man7/zmq.7.gz