From a51294d753b4fccd40b3cbd681e736bd23cb82b184ee56dd5424232d633bbb59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Mon, 8 Jun 2015 07:04:16 +0000 Subject: [PATCH 1/3] Accepting request 311103 from home:mvyskocil:branches:devel:libraries:c_c++ - Update to 4.1.1, bugfix release - drop unecessary zeromq_4.0.5_avoid_curve_test_hang_on_ppc64.patch OBS-URL: https://build.opensuse.org/request/show/311103 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/zeromq?expand=0&rev=29 --- zeromq-4.0.5.tar.gz | 3 - zeromq-4.1.1.tar.gz | 3 + zeromq.changes | 7 + zeromq.spec | 7 +- ...4.0.5_avoid_curve_test_hang_on_ppc64.patch | 474 ------------------ 5 files changed, 14 insertions(+), 480 deletions(-) delete mode 100644 zeromq-4.0.5.tar.gz create mode 100644 zeromq-4.1.1.tar.gz delete mode 100644 zeromq_4.0.5_avoid_curve_test_hang_on_ppc64.patch diff --git a/zeromq-4.0.5.tar.gz b/zeromq-4.0.5.tar.gz deleted file mode 100644 index 21b7d2f..0000000 --- a/zeromq-4.0.5.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3bc93c5f67370341428364ce007d448f4bb58a0eaabd0a60697d8086bc43342b -size 2153667 diff --git a/zeromq-4.1.1.tar.gz b/zeromq-4.1.1.tar.gz new file mode 100644 index 0000000..52235f9 --- /dev/null +++ b/zeromq-4.1.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43d61e5706b43946aad4a661400627bcde9c63cc25816d4749c67b64c3dab8db +size 1383196 diff --git a/zeromq.changes b/zeromq.changes index 581bef0..6d3270f 100644 --- a/zeromq.changes +++ b/zeromq.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sun Jun 7 16:53:26 UTC 2015 - mvyskocil@opensuse.org + +- Update to 4.1.1, bugfix release +- drop unecessary + zeromq_4.0.5_avoid_curve_test_hang_on_ppc64.patch + ------------------------------------------------------------------- Wed Jan 28 14:26:13 UTC 2015 - normand@linux.vnet.ibm.com diff --git a/zeromq.spec b/zeromq.spec index 5595510..45748be 100644 --- a/zeromq.spec +++ b/zeromq.spec @@ -21,22 +21,24 @@ %define with_pgm 1 %endif Name: zeromq -Version: 4.0.5 +Version: 4.1.1 Release: 0 Summary: Lightweight messaging kernel License: LGPL-3.0+ Group: Productivity/Networking/Web/Servers Url: http://www.zeromq.org/ Source: http://download.zeromq.org/%{name}-%{version}.tar.gz -Patch1: zeromq_4.0.5_avoid_curve_test_hang_on_ppc64.patch +BuildRequires: asciidoc BuildRequires: gcc-c++ BuildRequires: libuuid-devel +BuildRequires: xmlto BuildRoot: %{_tmppath}/%{name}-%{version}-build # Required for tests only %if 0%{?suse_version} > 1310 BuildRequires: libsodium-devel %endif %if 0%{?with_pgm} +BuildRequires: libpgm-devel >= 5.1 BuildRequires: pkgconfig BuildRequires: python BuildRequires: pkgconfig(glib-2.0) >= 2.8 @@ -101,7 +103,6 @@ This package holds the development files for ZeroMQ. %prep %setup -q -%patch1 -p1 %build %configure \ diff --git a/zeromq_4.0.5_avoid_curve_test_hang_on_ppc64.patch b/zeromq_4.0.5_avoid_curve_test_hang_on_ppc64.patch deleted file mode 100644 index e69906d..0000000 --- a/zeromq_4.0.5_avoid_curve_test_hang_on_ppc64.patch +++ /dev/null @@ -1,474 +0,0 @@ -From: Michel Normand -Subject: avoid curve test to hang on ppc64 architecture -Date: Wed, 28 Jan 2015 13:46:07 +0100 - -Avoid curve test to hang on ppc64 architecture -At least no problem anymore with those commits: - Merge pull request #101 from hintjens/master - Problem: issue #1273, protocol downgrade attack - Merge pull request #100 from hintjens/master - Problem: zmq_ctx_term has insane behavior by default - -extracted from https://github.com/zeromq/zeromq4-x.git -=== -$git diff -u v4.0.5 b6e3e0f601e2c1ec1f3aac880ed6a3fe63043e51 >/tmp/x -and remove the change of version (to keep 4.0.5) -=== - -Signed-off-by: Michel Normand -diff --git a/NEWS b/NEWS -index 6341e36..b18ea7a 100644 ---- a/NEWS -+++ b/NEWS -@@ -1,3 +1,7 @@ -+ -+* Fixed #1273 - V3 protocol handler vulnerable to downgrade attacks. -+ -+ - 0MQ version 4.0.5 stable, released on 2014/10/14 - ================================================ - -diff --git a/doc/zmq_ctx_term.txt b/doc/zmq_ctx_term.txt -index 50951cd..44c667b 100644 ---- a/doc/zmq_ctx_term.txt -+++ b/doc/zmq_ctx_term.txt -@@ -23,8 +23,8 @@ Context termination is performed in the following steps: - exception of _zmq_close()_, any further operations on sockets open within - 'context' shall fail with an error code of ETERM. - --2. After interrupting all blocking calls, _zmq_ctx_term()_ shall _block_ until the -- following conditions are satisfied: -+2. After interrupting all blocking calls, _zmq_ctx_term()_ shall _block_ until -+ the following conditions are satisfied: - - * All sockets open within 'context' have been closed with _zmq_close()_. - -@@ -39,6 +39,15 @@ option in linkzmq:zmq_setsockopt[3]. - This function replaces the deprecated function linkzmq:zmq_term[3]. - - -+WARNING -+------- -+ -+As _ZMQ_LINGER_ defaults to "infinite", by default this function will block -+indefinitely if there are any pending connects or sends. We strongly -+recommend to (a) set _ZMQ_LINGER_ to zero on all sockets and (b) close all -+sockets, before calling this function. -+ -+ - RETURN VALUE - ------------ - The _zmq_ctx_term()_ function shall return zero if successful. Otherwise -diff --git a/src/session_base.cpp b/src/session_base.cpp -index 537dcb3..0b58436 100644 ---- a/src/session_base.cpp -+++ b/src/session_base.cpp -@@ -323,6 +323,14 @@ int zmq::session_base_t::zap_connect () - return 0; - } - -+bool zmq::session_base_t::zap_enabled () -+{ -+ return ( -+ options.mechanism != ZMQ_NULL || -+ (options.mechanism == ZMQ_NULL && options.zap_domain.length() > 0) -+ ); -+} -+ - void zmq::session_base_t::process_attach (i_engine *engine_) - { - zmq_assert (engine_ != NULL); -diff --git a/src/session_base.hpp b/src/session_base.hpp -index 2ef7dc5..63e16bd 100644 ---- a/src/session_base.hpp -+++ b/src/session_base.hpp -@@ -68,7 +68,8 @@ namespace zmq - int push_msg (msg_t *msg_); - - int zap_connect (); -- -+ bool zap_enabled (); -+ - // Fetches a message. Returns 0 if successful; -1 otherwise. - // The caller is responsible for freeing the message when no - // longer used. -diff --git a/src/stream_engine.cpp b/src/stream_engine.cpp -index 4d252d8..3d84d8f 100644 ---- a/src/stream_engine.cpp -+++ b/src/stream_engine.cpp -@@ -464,6 +464,11 @@ bool zmq::stream_engine_t::handshake () - // Is the peer using ZMTP/1.0 with no revision number? - // If so, we send and receive rest of identity message - if (greeting_recv [0] != 0xff || !(greeting_recv [9] & 0x01)) { -+ if (session->zap_enabled ()) { -+ // Reject ZMTP 1.0 connections if ZAP is enabled -+ error (); -+ return false; -+ } - encoder = new (std::nothrow) v1_encoder_t (out_batch_size); - alloc_assert (encoder); - -@@ -505,6 +510,11 @@ bool zmq::stream_engine_t::handshake () - } - else - if (greeting_recv [revision_pos] == ZMTP_1_0) { -+ if (session->zap_enabled ()) { -+ // Reject ZMTP 1.0 connections if ZAP is enabled -+ error (); -+ return false; -+ } - encoder = new (std::nothrow) v1_encoder_t ( - out_batch_size); - alloc_assert (encoder); -@@ -515,6 +525,11 @@ bool zmq::stream_engine_t::handshake () - } - else - if (greeting_recv [revision_pos] == ZMTP_2_0) { -+ if (session->zap_enabled ()) { -+ // Reject ZMTP 1.0 connections if ZAP is enabled -+ error (); -+ return false; -+ } - encoder = new (std::nothrow) v2_encoder_t (out_batch_size); - alloc_assert (encoder); - -diff --git a/tests/test_security_curve.cpp b/tests/test_security_curve.cpp -index a24466f..e99a4b3 100644 ---- a/tests/test_security_curve.cpp -+++ b/tests/test_security_curve.cpp -@@ -18,12 +18,23 @@ - */ - - #include "testutil.hpp" -+#if defined (ZMQ_HAVE_WINDOWS) -+# include -+# include -+# include -+# define close closesocket -+#else -+# include -+# include -+# include -+# include -+#endif - - // We'll generate random test keys at startup --static char client_public [40]; --static char client_secret [40]; --static char server_public [40]; --static char server_secret [40]; -+static char client_public [41]; -+static char client_secret [41]; -+static char server_public [41]; -+static char server_secret [41]; - - // -------------------------------------------------------------------------- - // This methods receives and validates ZAP requestes (allowing or denying -@@ -46,7 +57,7 @@ static void zap_handler (void *handler) - int size = zmq_recv (handler, client_key, 32, 0); - assert (size == 32); - -- char client_key_text [40]; -+ char client_key_text [41]; - zmq_z85_encode (client_key_text, client_key, 32); - - assert (streq (version, "1.0")); -@@ -181,8 +192,8 @@ int main (void) - - // Check CURVE security with bogus client credentials - // This must be caught by the ZAP handler -- char bogus_public [40]; -- char bogus_secret [40]; -+ char bogus_public [41]; -+ char bogus_secret [41]; - zmq_curve_keypair (bogus_public, bogus_secret); - - client = zmq_socket (ctx, ZMQ_DEALER); -@@ -217,7 +228,46 @@ int main (void) - assert (rc == 0); - expect_bounce_fail (server, client); - close_zero_linger (client); -- -+ -+ // Unauthenticated messages from a vanilla socket shouldn't be received -+ struct sockaddr_in ip4addr; -+ int s; -+ -+ ip4addr.sin_family = AF_INET; -+ ip4addr.sin_port = htons (9998); -+ inet_pton (AF_INET, "127.0.0.1", &ip4addr.sin_addr); -+ -+ s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); -+ rc = connect (s, (struct sockaddr*) &ip4addr, sizeof (ip4addr)); -+ assert (rc > -1); -+ // send anonymous ZMTP/1.0 greeting -+ send (s, "\x01\x00", 2, 0); -+ // send sneaky message that shouldn't be received -+ send (s, "\x08\x00sneaky\0", 9, 0); -+ int timeout = 150; -+ zmq_setsockopt (server, ZMQ_RCVTIMEO, &timeout, sizeof (timeout)); -+ char *buf = s_recv (server); -+ if (buf != NULL) { -+ printf ("Received unauthenticated message: %s\n", buf); -+ assert (buf == NULL); -+ } -+ close (s); -+ -+ // Check return codes for invalid buffer sizes -+ client = zmq_socket (ctx, ZMQ_DEALER); -+ assert (client); -+ errno = 0; -+ rc = zmq_setsockopt (client, ZMQ_CURVE_SERVERKEY, server_public, 123); -+ assert (rc == -1 && errno == EINVAL); -+ errno = 0; -+ rc = zmq_setsockopt (client, ZMQ_CURVE_PUBLICKEY, client_public, 123); -+ assert (rc == -1 && errno == EINVAL); -+ errno = 0; -+ rc = zmq_setsockopt (client, ZMQ_CURVE_SECRETKEY, client_secret, 123); -+ assert (rc == -1 && errno == EINVAL); -+ rc = zmq_close (client); -+ assert (rc == 0); -+ - // Shutdown - rc = zmq_close (server); - assert (rc == 0); -diff --git a/tests/test_security_null.cpp b/tests/test_security_null.cpp -index 8a55632..6b74e8c 100644 ---- a/tests/test_security_null.cpp -+++ b/tests/test_security_null.cpp -@@ -1,5 +1,5 @@ - /* -- Copyright (c) 2007-2013 Contributors as noted in the AUTHORS file -+ Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file - - This file is part of 0MQ. - -@@ -18,6 +18,17 @@ - */ - - #include "testutil.hpp" -+#if defined (ZMQ_HAVE_WINDOWS) -+# include -+# include -+# include -+# define close closesocket -+#else -+# include -+# include -+# include -+# include -+#endif - - static void - zap_handler (void *handler) -@@ -27,6 +38,7 @@ zap_handler (void *handler) - char *version = s_recv (handler); - if (!version) - break; // Terminating -+ - char *sequence = s_recv (handler); - char *domain = s_recv (handler); - char *address = s_recv (handler); -@@ -57,7 +69,7 @@ zap_handler (void *handler) - free (identity); - free (mechanism); - } -- zmq_close (handler); -+ close_zero_linger (handler); - } - - int main (void) -@@ -76,72 +88,89 @@ int main (void) - void *zap_thread = zmq_threadstart (&zap_handler, handler); - - // We bounce between a binding server and a connecting client -+ -+ // We first test client/server with no ZAP domain -+ // Libzmq does not call our ZAP handler, the connect must succeed - void *server = zmq_socket (ctx, ZMQ_DEALER); - assert (server); - void *client = zmq_socket (ctx, ZMQ_DEALER); - assert (client); -- -- // We first test client/server with no ZAP domain -- // Libzmq does not call our ZAP handler, the connect must succeed - rc = zmq_bind (server, "tcp://127.0.0.1:9000"); - assert (rc == 0); -- rc = zmq_connect (client, "tcp://localhost:9000"); -+ rc = zmq_connect (client, "tcp://127.0.0.1:9000"); - assert (rc == 0); - bounce (server, client); -- zmq_unbind (server, "tcp://127.0.0.1:9000"); -- zmq_disconnect (client, "tcp://localhost:9000"); -- -+ close_zero_linger (client); -+ close_zero_linger (server); -+ - // Now define a ZAP domain for the server; this enables - // authentication. We're using the wrong domain so this test - // must fail. -- // ************************************************************** -- // PH: the following causes libzmq to get confused, so that the -- // next step fails. To reproduce, uncomment this block. Note that -- // even creating a new client/server socket pair, the behaviour -- // does not change. -- // ************************************************************** -- // Destroying the old sockets and creating new ones isn't needed, -- // but it shows that the problem isn't related to specific sockets. -- //close_zero_linger (client); -- //close_zero_linger (server); -- //server = zmq_socket (ctx, ZMQ_DEALER); -- //assert (server); -- //client = zmq_socket (ctx, ZMQ_DEALER); -- //assert (client); -- //// The above code should not be required -- //rc = zmq_setsockopt (server, ZMQ_ZAP_DOMAIN, "WRONG", 5); -- //assert (rc == 0); -- //rc = zmq_bind (server, "tcp://127.0.0.1:9001"); -- //assert (rc == 0); -- //rc = zmq_connect (client, "tcp://localhost:9001"); -- //assert (rc == 0); -- //expect_bounce_fail (server, client); -- //zmq_unbind (server, "tcp://127.0.0.1:9001"); -- //zmq_disconnect (client, "tcp://localhost:9001"); -- -+ server = zmq_socket (ctx, ZMQ_DEALER); -+ assert (server); -+ client = zmq_socket (ctx, ZMQ_DEALER); -+ assert (client); -+ rc = zmq_setsockopt (server, ZMQ_ZAP_DOMAIN, "WRONG", 5); -+ assert (rc == 0); -+ rc = zmq_bind (server, "tcp://127.0.0.1:9001"); -+ assert (rc == 0); -+ rc = zmq_connect (client, "tcp://127.0.0.1:9001"); -+ assert (rc == 0); -+ expect_bounce_fail (server, client); -+ close_zero_linger (client); -+ close_zero_linger (server); -+ - // Now use the right domain, the test must pass -+ server = zmq_socket (ctx, ZMQ_DEALER); -+ assert (server); -+ client = zmq_socket (ctx, ZMQ_DEALER); -+ assert (client); - rc = zmq_setsockopt (server, ZMQ_ZAP_DOMAIN, "TEST", 4); - assert (rc == 0); - rc = zmq_bind (server, "tcp://127.0.0.1:9002"); - assert (rc == 0); -- rc = zmq_connect (client, "tcp://localhost:9002"); -+ rc = zmq_connect (client, "tcp://127.0.0.1:9002"); - assert (rc == 0); -- // ************************************************************** -- // PH: it fails here; though the ZAP reply is 200 OK, and -- // null_mechanism.cpp correctly parses that, the connection -- // never succeeds and the test hangs. -- // ************************************************************** - bounce (server, client); -- zmq_unbind (server, "tcp://127.0.0.1:9002"); -- zmq_disconnect (client, "tcp://localhost:9002"); -- -- // Shutdown - close_zero_linger (client); - close_zero_linger (server); -- rc = zmq_ctx_term (ctx); -+ -+ // Unauthenticated messages from a vanilla socket shouldn't be received -+ server = zmq_socket (ctx, ZMQ_DEALER); -+ assert (server); -+ rc = zmq_setsockopt (server, ZMQ_ZAP_DOMAIN, "WRONG", 5); - assert (rc == 0); -+ rc = zmq_bind (server, "tcp://127.0.0.1:9003"); -+ assert (rc == 0); -+ -+ struct sockaddr_in ip4addr; -+ int s; -+ -+ ip4addr.sin_family = AF_INET; -+ ip4addr.sin_port = htons(9003); -+ inet_pton(AF_INET, "127.0.0.1", &ip4addr.sin_addr); - -- // Wait until ZAP handler terminates. -+ s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); -+ rc = connect (s, (struct sockaddr*) &ip4addr, sizeof ip4addr); -+ assert (rc > -1); -+ // send anonymous ZMTP/1.0 greeting -+ send (s, "\x01\x00", 2, 0); -+ // send sneaky message that shouldn't be received -+ send (s, "\x08\x00sneaky\0", 9, 0); -+ int timeout = 150; -+ zmq_setsockopt (server, ZMQ_RCVTIMEO, &timeout, sizeof (timeout)); -+ char *buf = s_recv (server); -+ if (buf != NULL) { -+ printf ("Received unauthenticated message: %s\n", buf); -+ assert (buf == NULL); -+ } -+ close (s); -+ close_zero_linger (server); -+ -+ // Shutdown -+ rc = zmq_ctx_term (ctx); -+ assert (rc == 0); -+ // Wait until ZAP handler terminates - zmq_threadclose (zap_thread); - - return 0; -diff --git a/tests/test_security_plain.cpp b/tests/test_security_plain.cpp -index 74973fd..c257840 100644 ---- a/tests/test_security_plain.cpp -+++ b/tests/test_security_plain.cpp -@@ -1,5 +1,5 @@ - /* -- Copyright (c) 2007-2013 Contributors as noted in the AUTHORS file -+ Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file - - This file is part of 0MQ. - -@@ -18,6 +18,17 @@ - */ - - #include "testutil.hpp" -+#if defined (ZMQ_HAVE_WINDOWS) -+# include -+# include -+# include -+# define close closesocket -+#else -+# include -+# include -+# include -+# include -+#endif - - static void - zap_handler (void *ctx) -@@ -137,6 +148,30 @@ int main (void) - expect_bounce_fail (server, client); - close_zero_linger (client); - -+ // Unauthenticated messages from a vanilla socket shouldn't be received -+ struct sockaddr_in ip4addr; -+ int s; -+ -+ ip4addr.sin_family = AF_INET; -+ ip4addr.sin_port = htons (9998); -+ inet_pton (AF_INET, "127.0.0.1", &ip4addr.sin_addr); -+ -+ s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP); -+ rc = connect (s, (struct sockaddr*) &ip4addr, sizeof (ip4addr)); -+ assert (rc > -1); -+ // send anonymous ZMTP/1.0 greeting -+ send (s, "\x01\x00", 2, 0); -+ // send sneaky message that shouldn't be received -+ send (s, "\x08\x00sneaky\0", 9, 0); -+ int timeout = 150; -+ zmq_setsockopt (server, ZMQ_RCVTIMEO, &timeout, sizeof (timeout)); -+ char *buf = s_recv (server); -+ if (buf != NULL) { -+ printf ("Received unauthenticated message: %s\n", buf); -+ assert (buf == NULL); -+ } -+ close (s); -+ - // Shutdown - rc = zmq_close (server); - assert (rc == 0); From 22fa1601815ef525a3d1366924b593efba1b4fbf424f406161d428f2460b276b Mon Sep 17 00:00:00 2001 From: Michal Vyskocil Date: Mon, 8 Jun 2015 09:14:35 +0000 Subject: [PATCH 2/3] Accepting request 311122 from home:mvyskocil:branches:devel:libraries:c_c++ - Build depends on openpgm-devel OBS-URL: https://build.opensuse.org/request/show/311122 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/zeromq?expand=0&rev=30 --- zeromq.changes | 5 +++++ zeromq.spec | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/zeromq.changes b/zeromq.changes index 6d3270f..a2dd35f 100644 --- a/zeromq.changes +++ b/zeromq.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Jun 8 09:11:11 UTC 2015 - mvyskocil@opensuse.org + +- Build depends on openpgm-devel + ------------------------------------------------------------------- Sun Jun 7 16:53:26 UTC 2015 - mvyskocil@opensuse.org diff --git a/zeromq.spec b/zeromq.spec index 45748be..81c38b2 100644 --- a/zeromq.spec +++ b/zeromq.spec @@ -38,7 +38,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: libsodium-devel %endif %if 0%{?with_pgm} -BuildRequires: libpgm-devel >= 5.1 +BuildRequires: openpgm-devel >= 5.1 BuildRequires: pkgconfig BuildRequires: python BuildRequires: pkgconfig(glib-2.0) >= 2.8 From d7c54ccc2ab43569344997bdae94341041cf8f0821d07a593fd18f0623ebb0c6 Mon Sep 17 00:00:00 2001 From: Michal Vyskocil Date: Tue, 16 Jun 2015 06:11:40 +0000 Subject: [PATCH 3/3] Accepting request 312206 from home:mvyskocil:branches:devel:libraries:c_c++ - Add pkgconfig(libsodium) as mandatory build dependency - Change libuuid-devel to pkgconfig style OBS-URL: https://build.opensuse.org/request/show/312206 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/zeromq?expand=0&rev=31 --- zeromq.changes | 6 ++++++ zeromq.spec | 9 +++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/zeromq.changes b/zeromq.changes index a2dd35f..5546fe0 100644 --- a/zeromq.changes +++ b/zeromq.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Jun 16 06:03:45 UTC 2015 - mvyskocil@opensuse.org + +- Add pkgconfig(libsodium) as mandatory build dependency +- Change libuuid-devel to pkgconfig style + ------------------------------------------------------------------- Mon Jun 8 09:11:11 UTC 2015 - mvyskocil@opensuse.org diff --git a/zeromq.spec b/zeromq.spec index 81c38b2..e1b9425 100644 --- a/zeromq.spec +++ b/zeromq.spec @@ -30,16 +30,13 @@ Url: http://www.zeromq.org/ Source: http://download.zeromq.org/%{name}-%{version}.tar.gz BuildRequires: asciidoc BuildRequires: gcc-c++ -BuildRequires: libuuid-devel +BuildRequires: pkgconfig BuildRequires: xmlto +BuildRequires: pkgconfig(libsodium) +BuildRequires: pkgconfig(uuid) BuildRoot: %{_tmppath}/%{name}-%{version}-build -# Required for tests only -%if 0%{?suse_version} > 1310 -BuildRequires: libsodium-devel -%endif %if 0%{?with_pgm} BuildRequires: openpgm-devel >= 5.1 -BuildRequires: pkgconfig BuildRequires: python BuildRequires: pkgconfig(glib-2.0) >= 2.8 %endif