./net/zeromq, The ZeroMQ messaging library

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 4.3.2, Package name: zeromq-4.3.2, Maintainer: pkgsrc-users

The 0MQ lightweight messaging kernel is a library which extends the
standard socket interfaces with features traditionally provided by
specialised messaging middleware products. 0MQ sockets provide an
abstraction of asynchronous message queues, multiple messaging
patterns, message filtering (subscriptions), seamless access to
multiple transport protocols and more.


Required to run:
[security/libsodium]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: e5253bff214f77621b3d29443f1aa6e5a106ffe5
RMD160: 01621ad7d28f7eb2de939441bd1b4f2c21fb3663
Filesize: 1657.658 KB

Version history: (Expand)


CVS history: (Expand)


   2019-08-09 14:01:34 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
zeromq: updated to 4.3.2

libzmq 4.3.2

CVE-2019-13132: a remote, unauthenticated client connecting to a
libzmq application, running with a socket listening with CURVE
encryption/authentication enabled, may cause a stack overflow and
overwrite the stack with arbitrary data, due to a buffer overflow in
the library. Users running public servers with the above configuration
are highly encouraged to upgrade as soon as possible, as there are no
known mitigations. All versions from 4.0.0 and upwards are affected.
Thank you Fang-Pen Lin for finding the issue and reporting it!

New DRAFT (see NEWS for 4.2.0) zmq_socket_monitor_versioned API that supports
a versioned monitoring events protocol as a parameter. Passing 1 results in
the same behaviour as zmq_socket_monitor.
Version 2 of the events protocol allows new events, new metadata, different
socket types for the monitors and more. It is described in details in
doc/zmq_socket_monitor_versioned.txt

New DRAFT (see NEWS for 4.2.0) zmq_socket_monitor_pipes_stats that triggers
a new ZMQ_EVENT_PIPES_STATS to be delivered via zmq_socket_monitor_versioned
v2 API, which contains the current status of all the queues owned by the
monitored socket. See doc/zmq_socket_monitor_versioned.txt for details.

New DRAFT (see NEWS for 4.2.0) zmq_poller_fd that returns the FD of a thread
safe socket. See doc/zmq_poller.txt for details.

New DRAFT (see NEWS for 4.2.0) socket options:

ZMQ_XPUB_MANUAL_LAST_VALUE is similar to ZMQ_XPUB_MANUAL but allows to avoid
duplicates when using last value caching.
ZMQ_SOCKS_USERNAME and ZMQ_SOCKS_PASSWORD that implement SOCKS5 proxy
authentication.
See doc/zmq_setsockopt.txt and doc/zmq_getsockopt.txt for details.
Implemented background thread names for Windows, when the Visual Studio
debugger is being used.

Fixed 3358 - test_security_zap failing due to SIGBUS on SPARC64, hard-coded
IPC socket binds in tests cause race conditions

Fixed 3361 - enabling GSSAPI support (when using autools) does not work due
to regression introduced in 4.2.3

Fixed 3362 - remove documentation for ZMQ_THREAD_PRIORITY context option
getter, it's not implemented

Fixed 3363 - tests fail to build due to stricter compiler printf validation
in new versions of GCC

Fixed 3367 - try to infer cacheline size at build time, first with
getconf LEVEL1_DCACHE_LINESIZE, and then by reading
/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size
(autoconf only), and only then falling back to the previous
default of 64 bytes. Avoids false sharing on POWER and s390x.
Import ax_func_posix_memalign.m4 as a more reliable check for
posix_memalign presence on some unix platforms.
Prefer c++11 atomic primitives to compiler intrinsics, when
both are available, as the former is more reliable.
Set test_pair_ipc and test_rebind_ipc to XFAIL on GNU/Hurd due
to non-functioning getsockname on AF_UNIX.

Fixed 3370 - Make queue length and HWM state observable

Fixed 3373 - performance regression in zmq_poll on CentOS 6/7

Fixed 3375 - assign names to all pthreads created by the library to ease
debugging

Fixed 3376 - assigned random TIPC port is not returned by ZMQ_LAST_ENDPOINT

Fixed 3385 - TCP port in ZMQ_LAST_ENDPOINT depends on global locale

Fixed 3404 - use std::condition_variable_any when possible

Fixed 3436 - reconnect interval exponential backoff and may lead to integer
overflows

Fixed 3440 - improve zmq_proxy performance by batching of up to 1000
consecutive messages (if any) and add perf/proxy_thr tool

Fixed 3451 - fix support of /dev/poll on Solaris

Fixed 3452 - strnlen may not be available

Fixed 1462 - test failure in test_filter_ipc due to invalid system groups

Fixed 3269 - Boost.ASIO integration stopped working with v4.3.0

Fixed 3479 - ZeroMQ does not build for QNX 6.6 with CMake

Fixed 3481 - add include to fix uClibc++ compilation

Fixed 3491 - build broken on Fedora 30

Fixed 3494 - ZeroMQConfig.cmake fails if shared libraries are not built

Fixed 3498 - syntax error on Windows related to socket descriptor type

Fixed 3500 - PLAIN HELLO message incorrectly uses WELCOME literal, regression
introduced in 4.3.0

Fixed 3517 - configure errors because of syntax errors in the use of test
shell command

Fixed 3521 - document how to achieve high performance with the PGM transport

Fixed 3526 - failure case behavior unclear in zmq_msg_send documentation

Fixed 3537 - fix build on z/OS by using pthread_equal instead of comparing
variables directly

Fixed 3546 - CMake links with librt on MinGW which is not available

Many coding style, duplication, testing and static analysis improvements.
   2019-02-14 14:04:37 by Adam Ciarcinski | Files touched by this commit (5) | Package updated
Log message:
zeromq: updated to 4.3.1

0MQ version 4.3.1 stable:

* CVE-2019-6250: A vulnerability has been found that would allow attackers to
  direct a peer to jump to and execute from an address indicated by the
  attacker.
  This issue has been present since v4.2.0. Older releases are not affected.
  NOTE: The attacker needs to know in advance valid addresses in the peer's
  memory to jump to, so measures like ASLR are effective mitigations.
  NOTE: this attack can only take place after authentication, so peers behind
  CURVE/GSSAPI are not vulnerable to unauthenticated attackers.
  See https://github.com/zeromq/libzmq/issues/3351 for more details.
  Thanks to Guido Vranken for uncovering the issue and providing the fix!

* Note for packagers: as pkg-config's Requires.private is now used to properly
  propagate dependencies for static builds, the libzmq*-dev or zeromq-devel or
  equivalent package should now depend on the libfoo-dev or foo-devel packages
  of all the libraries that zmq is linked against, or pkg-config --libs libzmq
  will fail due to missing dependencies on end users machines.

0MQ version 4.3.0 stable:

* The following DRAFT APIs have been marked as STABLE and will not change
  anymore:
  - ZMQ_MSG_T_SIZE context option (see doc/zmq_ctx_get.txt)
  - ZMQ_THREAD_AFFINITY_CPU_ADD and ZMQ_THREAD_AFFINITY_CPU_REMOVE (Posix only)
    context options, to add/remove CPUs to the affinity set of the I/O threads.
    See doc/zmq_ctx_set.txt and doc/zmq_ctx_get.txt for details.
  - ZMQ_THREAD_NAME_PREFIX (Posix only) context option, to add a specific
    integer prefix to the background threads names, to easily identify them.
    See doc/zmq_ctx_set.txt and doc/zmq_ctx_get.txt for details.
  - ZMQ_GSSAPI_PRINCIPAL_NAMETYPE and ZMQ_GSSAPI_SERVICE_PRINCIPAL_NAMETYPE
    socket options, for the corresponding GSSAPI features. Additional
    definitions for principal name types:
    - ZMQ_GSSAPI_NT_HOSTBASED
    - ZMQ_GSSAPI_NT_USER_NAME
    - ZMQ_GSSAPI_NT_KRB5_PRINCIPAL
    See doc/zmq_gssapi.txt for details.
  - ZMQ_BINDTODEVICE socket option (Linux only), which will bind the
    socket(s) to the specified interface. Allows to use Linux VRF, see:
    https://www.kernel.org/doc/Documentatio … ng/vrf.txt
    NOTE: requires the program to be ran as root OR with CAP_NET_RAW
  - zmq_timers_* APIs. These functions can be used for cross-platforms timed
    callbacks. See doc/zmq_timers.txt for details.
  - The following socket monitor events:
    - ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL: unknown errors during handshake.
    - ZMQ_EVENT_HANDSHAKE_SUCCEEDED: Handshake completed with authentication.
    - ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL: Protocol errors with peers or ZAP.
    - ZMQ_EVENT_HANDSHAKE_FAILED_AUTH: Failed authentication requests.
    See doc/zmq_socket_monitor.txt for more details and error codes.
  - zmq_stopwatch_intermediate which returns the time elapsed without stopping
    the stopwatch.
  - zmq_proxy_steerable command 'STATISTICS' to retrieve stats about the amount
    of messages and bytes sent and received by the proxy.
    See doc/zmq_proxy_steerable.txt for more information.

* The build-time configuration option to select the poller has been split, and
  new API_POLLER (CMake) and --with-api-poller (autoconf) options will now
  determine what system call is used to implement the zmq_poll/zmq_poller APIs.
  The previous POLLER and --with-poller options now only affects the
  internal I/O thread. In case API_POLLER is not specified, the behaviour keeps
  backward compatibility intact and will be the same as with previous releases.

* The non-default "poll" poller for the internal I/O thread (note: NOT \ 
for the
  zmq_poll/zmq_poller user APIs!) has been disabled on Windows as WSAPoll does
  not report connection failures. For more information see:
  - https://daniel.haxx.se/blog/2012/10/10/ … is-broken/
  - https://curl.haxx.se/mail/lib-2012-10/0038.html
  - https://bugs.python.org/issue16507

* New epoll implementation for Windows, using the following implementation:
  https://github.com/piscisaureus/wepoll/tree/v1.5.4
  To use this, select "epoll" as the poller option in the build system.
  Note for distributors: the wepoll source code is embedded and distributed.
  It is licensed under the BSD-2-Clause and thus it is compatible with LGPL-3.0.
  Note that, if selected at build time, the license text must be distributed
  with the binary in accordance to the license terms. A copy can be found at:
  external/wepoll/license.txt

* The pre-made Visual Studio solutions file are deprecated, and users are
  encouraged to use the CMake solution generation feature instead.

* New DRAFT (see NEWS for 4.2.0) socket options:
  - ZMQ_ROUTER_NOTIFY to deliver a notification when a peer connects and/or
    disconnects in the form of a routing id plus a zero-length frame.
  - ZMQ_MULTICAST_LOOP to control whether the data sent should be looped back
    on local listening sockets for UDP multicast sockets (ZMQ_RADIO).
  See doc/zmq_setsockopt.txt and doc/zmq_getsockopt.txt for details.

* New perf tool, perf/benchmark_radix_tree, to measure the performance of the
  different internal implementations of the trie algorithm used to track
  subscriptions. Requires a compiler that supports C++11.

* New autoconf flag "--enable-force-CXX98-compat" which will force \ 
-std=gnu++98
  and, if the compiler supports them (clang++ at the moment), it will also add
  -Wc++98-compat -Wc++98-compat-pedantic so that compatibility with C++98 can
  be tested.

* Many, many coding style, duplication and static analysis improvements.

* Many, many improvements to the CMake build system, especially on Windows.

* Many, many improvements to unit tests.
   2018-07-14 20:19:16 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
zeromq: updated to 4.2.5

0MQ version 4.2.5 stable:
* Fixed 3018 - fix backward-incompatible change in the NULL auth
                mechanism that slipped in 4.2.3 and made connections
                with a ZAP domain set on a socket but without a working
                ZAP handler fail. See ZMQ_ZAP_ENFORCE_DOMAIN and RFC27.
* Fixed 3016 - clarify in zmq_close manpage that the operation will
                complete asynchronously.
* Fixed 3012 - fix CMake build problem when using LIBZMQ_WERROR and a
                compiler other than GCC.

0MQ version 4.2.4 stable:
* New DRAFT (see NEWS for 4.2.0) socket options:
  - ZMQ_LOOPBACK_FASTPATH to enable faster TCP loopback on Windows
  - ZMQ_METADATA to set application-specific metadata on a socket
  See doc/zmq_setsockopt.txt and doc/zmq_getsockopt.txt for details.
* New DRAFT (see NEWS for 4.2.0) context options:
  - ZMQ_ZERO_COPY_RECV to disable zero-copy receive to save memory
    at the expense of slower performance
  See doc/zmq_ctx_set.txt and doc/zmq_ctx_get.txt for details.
* New DRAFT API zmq_stopwatch_intermediate which returns the time
  elapsed without stopping the stopwatch.
* TIPC: support addressing TIPC Port Identity addresses.
* Added CMake option to disable tests: BUILD_TESTS
* Added CMake and autotools make targets to support clang-formatter:
  make clang-format, clang-format-check and clang-format-diff to
  help developers make sure their code conforms to the style guidelines
* For distributors: a new test framework has been added, which
  includes a copy of the Unity source code. This source code library is
  distributed under the MIT license and thus is compatible with
  libzmq's LGPL3.
* Fixed 2867 - add ZeroMQConfig.cmake.in to distributable tarball
* Fixed 2868 - fix OpenBSD build
* Fixed 2870 - fix VC++ 11.0 (VS2012) build
* Fixed 2879 - prevent duplicate connections on PUB sockets
* Fixed 2872 - fix CMake tests on Windows
* Fixed 2895 - fix assert on Windows with POLL
* Fixed 2920 - fix Windows build with Intel compiler
* Fixed 2930 - use std::atomic when available with VC++ and VS2015
* Fixed 2910 - fix race condition with ZMQ_LINGER socket option
* Fixed 2927 - add support for ZMQ_XPUB_NODROP on ZMQ_RADIO
* Fixed 2820 - further clarify ZMQ_XPUB_VERBOSE(R) documentation.
* Fixed 2911 - ZMQ_DISH over UDP triggers errno_assert() after hitting
                watermark
* Fixed 2942 - ZMQ_PUB crash when due to high volume of subscribe and
                unsubscribe messages, an unmatched unsubscribe message is
                received in certain conditions
* Fixed 2946 - fix Windows CMake build when BUILD_SHARED is off
* Fixed 2960 - fix build with GCC 8
* Fixed 2967 - fix race condition on thread safe sockets due to pthread
                condvar timeouts on OSX
* Fixed 2977 - fix TIPC build-time availability check to be more relaxed
* Fixed 2966 - add support for WindRiver VxWorks 6.x
* Fixed 2963 - fix some PVS Studio static analysis warnings
* Fixed 2983 - fix MinGW cross-compilation
* Fixed 2991 - fix mutex assert at shutdown when the zmq context is part
                of a class declared as a global static
   2018-01-16 10:15:28 by Jonathan Perkin | Files touched by this commit (1)
Log message:
zeromq: Requires C99.
   2018-01-13 19:22:42 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
zeromq: updated to 4.2.3

version 4.2.3 stable:

* API change: previously ZMQ_POLLOUT on a ZMQ_ROUTER socket returned always
  true due to how the type works. When ZMQ_ROUTER_MANDATORY is set, sending
  fails when the peer is not available, but ZMQ_POLLOUT always returns true
  anyway, which does not make sense. Now when ZMQ_ROUTER_MANDATORY is set,
  ZMQ_POLLOUT on a ZMQ_ROUTER will return true only if at least one peer is
  available.
  Given ZMQ_POLLOUT with ZMQ_ROUTER was not usable at all previously, we do
  not consider this a breakage warranting a major or minor version increase.

* ZMQ_IDENTITY has been renamed to ZMQ_ROUTING_ID and ZMQ_CONNECT_RID has been
  renamed to ZMQ_CONNTECT_ROUTING_ID to disambiguate. ZMQ_IDENTITY and
  ZMQ_CONNECT_RID are still available to keep backward compatibility, and will
  be removed in a future release after further advance notice.

* DRAFT API change: zmq_poller_wait, zmq_poller_wait_all and zmq_poller_poll
  have been changed to be inline with other existing APIs that have a timeout
  to return EAGAIN instead of ETIMEDOUT as the errno value.

* Existing non-DRAFT socket types ZMQ_REP/REQ, ZMQ_ROUTER/DEALER and
  ZMQPUB/SUB, that were previously declared deprecated, have been reinstated
  as stable and supported.

* Tweetnacl: add support for, and use preferably if available, getrandom() as
  a simpler and less error-prone alternative to /dev/urandom on OSes where it
  is available (eg: Linux 3.18 with glibc 2.25).

* Curve: all remaining traces of debug output to console are now removed, and
  new DRAFT events are available to properly debug CURVE, PLAIN, GSSAPI and
  ZAP events and failures. See below for details on the new events.

* New DRAFT (see NEWS for 4.2.0) socket options:
  - ZMQ_GSSAPI_PRINCIPAL_NAMETYPE and ZMQ_GSSAPI_SERVICE_PRINCIPAL_NAMETYPE, for
    the corresponding GSSAPI features. Additional definitions for principal
    name types:
    - ZMQ_GSSAPI_NT_HOSTBASED
    - ZMQ_GSSAPI_NT_USER_NAME
    - ZMQ_GSSAPI_NT_KRB5_PRINCIPAL
    See doc/zmq_gssapi.txt for details.
  - ZMQ_BINDTODEVICE (Linux only), which will bind the socket(s) to the
    specified interface. Allows to use Linux VRF, see:
    https://www.kernel.org/doc/Documentatio … ng/vrf.txt
    NOTE: requires the program to be ran as root OR with CAP_NET_RAW
  - ZMQ_ZAP_ENFORCE_DOMAIN, enables strict RFC 27 compatibility mode and makes
    the ZAP Domain mandatory when using security. See:
    https://rfc.zeromq.org/spec:27/ZAP
  See doc/zmq_setsockopt.txt and doc/zmq_getsockopt.txt for details.

* New DRAFT (see NEWS for 4.2.0) context options:
  - ZMQ_THREAD_AFFINITY_CPU_ADD and ZMQ_THREAD_AFFINITY_CPU_REMOVE (Posix only),
    to add and remove CPUs to the affinity set of the I/O threads. Useful to pin
    the background threads to specific CPUs.
  - ZMQ_THREAD_NAME_PREFIX (Posix only), to add a specific integer prefix to the
    background threads names, to easily identify them for debugging purposes.
  See doc/zmq_ctx_set.txt and doc/zmq_ctx_get.txt for details.

* New DRAFT (see NEWS for 4.2.0) message property name definitions to facilitate
  the use of zmq_msg_gets:
  - ZMQ_MSG_PROPERTY_ROUTING_ID
  - ZMQ_MSG_PROPERTY_SOCKET_TYPE
  - ZMQ_MSG_PROPERTY_USER_ID
  - ZMQ_MSG_PROPERTY_PEER_ADDRESS
  See doc/zmq_msg_gets.txt for details.

* New DRAFT (see NEWS for 4.2.0) API zmq_socket_get_peer_state, to be used to
  query the state of a specific peer (via routing-id) of a ZMQ_ROUTER socket.

* New DRAFT (see NEWS for 4.2.0) Socket Monitor events:
  - ZMQ_EVENT_HANDSHAKE_FAILED_NO_DETAIL, unknown system error and returns errno
  - ZMQ_EVENT_HANDSHAKE_SUCCEEDED, handshake was successful
  - ZMQ_EVENT_HANDSHAKE_FAILED_PROTOCOL, protocol errors between peers or server
    and ZAP handler. Returns one of ZMQ_PROTOCOL_ERROR_* - see manpage for list
  - ZMQ_EVENT_HANDSHAKE_FAILED_AUTH, failed authentication, returns ZAP status
  These events trigger when the ZMTP security mechanism handshake is
  completed or failed. See doc/zmq_socket_monitor.txt for more information.

* New DRAFT (see NEWS for 4.2.0) zmq_proxy_steerable command 'STATISTICS' to
  retrieve stats about the amount of messages and bytes sent and received by
  the proxy. See doc/zmq_proxy_steerable.txt for more information.

* Add new autoconf --disable-libunwind option to stop building with libunwind
  even if it is available.

* Add new autoconf --disable-Werror option to avoid building with the Werror
  flag.

* Use pkg-config as the first method for finding and building with external
  optional dependencies such as libnorm, libpgm and gssapi.

* On Posix platform where the feature is available, name the ZMQ background
  threads to simplify debugging: "ZMQbg/<num_thread>"

* Improve performance of zmq_poller_* (and zmq_poll and zmq_proxy when building
  with DRAFT APIs enabled).

* The TCP unit tests have been refactored to bind and connect to random ports
  rather than hard-coded ones, to allow running tests in parallel.
  There are 6 exceptions where it is necessary to use an hard-coded port to
  test specific code paths that would not be exercised when binding to a
  wildcard port. These are listed in tests/testutil.hpp so that distributions
  can easily patch them if they wish to and so that they can be unique across
  all the tests, allowing parallel runs.
  The IPC unit tests have been changed as well to use unique socket file names
  per test, where before there were some clashes.

* Fixed 2349 - fix building with libsodium when using CMake

* Fixed 2334 - do not assert when tuning socket options fails due to network
  errors, but simply retry again when connecting or send a socket monitor
  ZMQ_EVENT_ACCEPT_FAILED event when binding

* Fixed 2341 - fix source files path in VS2015 solution

* Fixed 2344 - Note that on Windows with VS2012 it is mandatory to increase
  the default stack size to at least 2MB

* Fixed 2348 - ZMQ_ROUTER send with ZMQ_ROUTER_MANDATORY can be stuck in case of
  network problem

* Fixed 2358 - occasional abort on zmq_connect on Windows

* Fixed 2370 - zmq_curve_keypair should return an error on failure rather
  than ignoring them and always returning 0

* Fixed 2452 - __STDC_LIMIT_MACROS before precompiled headers causes VC++
  warning

* Fixed 2457 - fix building with libsodium in Visual Studio solutions

* Fixed 2466 - add const qualifier to internal and public API that does not
  modify parameters

* Fixed 2471 - do more checks for OOM conditions when dynamic allocations is
  used

* Fixed 2476 - assertion causes abort after ZAP stop at shutdown

* Fixed 2479 - improve zmq_poller performance on Windows

* Fixed 2481 - potential memory leaks due to ZMTP handshake failures

* Fixed 2531 - ZMQ_GSSAPI_PRINCIPAL sockopt has no effect on client side

* Fixed 2535 - add BUILD_SHARED and BUILD_STATIC options to CMake, both on by
  default, to toggle shared and static library builds

* Fixed 2537 - use SYSTEM_CLOCK on OSX and CLOCK_MONOTONIC elsewhere for
  internal timers to avoid races

* Fixed 2540 - new zmq_poller used by zmq_poll without DRAFTs

* Fixed 2552 - Fix WITH_DOC CMake build to avoid checking for asciidoc if the
  option is disabled

* Fixed 2567 - Memory leak in REP socket handling

* Fixed 2579 - Compilation issue on Windows with CMake + ninja

* Fixed 2588 - SIGBUS under 64-bit SunOS Sparc

* Fixed 2590 - crash when using ZMQ_IMMEDIATE and ZMQ_LINGER to non-zero

* Fixed 2601 - XPUB_MANUAL subscriptions not removed on peer term

* Fixed 2602 - intermittent memory leak for ZMQ_REQ/REP send/recv

* Fixed 2608 - CURVE server (connect) fails when client rebinds

* Fixed 2610 - print backtraces in mutual exclusion to avoid mixing
  different traces

* Fixed 2621 - add missing CMake files to distributable tarball

* Fixed 2630 - improve compatibility with OpenBSD w.r.t. IPV6_V6ONLY

* Fixed 2638 - note in INSTALL that when using Windows builds on Linux with
  Wine it is necessary to increase the minimum TCP buffers

* Fixed 2632 - Fix file descriptor leak when using Tweetnacl (internal NACL
  implementation) instead of Libsodium, and fix race condition when using
  multiple ZMQ contexts with Tweetnacl

* Fixed 2681 - Possible buffer overflow in CURVE mechanism handshake.
  NOTE: this was protected by an assert previously, so there is no security
  risk.

* Fixed 2704 - test_sockopt_hwm fails occasionally on Windows

* Fixed 2701 - pgm build via cmake doesn't link libzmq with libpgm

* Fixed 2711 - ZAP handler communication errors should be handled consistently

* Fixed 2723 - assertion in src\select.cpp:111 or hang on zmq_ctx_destroy on
  Windows

* Fixed 2728 - fix support O_CLOEXEC when building with CMake

* Fixed 2761 - improve compatibility with TrueOS (FreeBSD 12)

* Fixed 2764 - do not unlink IPC socket files when closing a socket to avoid
  race conditions

* Fixed 2770 - support lcov 1.13 and newer

* Fixed 2787 - add libiphlpapi to PKGCFG_LIBS_PRIVATE for static mingw builds

* Fixed 2788 - document that adding -DZMQ_STATIC is required for Windows
  static builds with Mingw

* Fixed 2789 - description of zmq_atomic_counter_value return value is cloned
  from zmq_atomic_counter_new

* Fixed 2791 - fix building with DRAFT APIs on CentOS 6

* Fixed 2794 - router_t methods should not allocate memory for lookup in
  outpipes

* Fixed 2809 - optimize select() usage on Windows

* Fixed 2816 - add CMake and autoconf check for accept4, as it is not
  available on old Linux releases, and fallback to accept + FD_CLOEXEC

* Fixed 2824 - ZMQ_REQ socket does not report ZMQ_POLLOUT when ZMQ_REQ_RELAXED
  is set

* Fixed 2827 - add support for Haiku

* Fixed 2840 - fix building with VS2008

* Fixed 2845 - correct the ZMQ_LINGER documentation to accurately reflect that
  the default value is -1 (infinite). It never was 30 second in any released
  version, it was only changed briefly and then changed back, but the manpage
  was not reverted.

* Fixed 2861 - CMake/MSVC: export ZMQ_STATIC when needed.
   2017-08-13 19:10:45 by Adam Ciarcinski | Files touched by this commit (2)
Log message:
version 4.2.2:
* Improve compatibility with GNU Hurd
* Fixed 2286 - improve CMake on Windows documentation
* Fixed 1235 - improved compatibility with mingw64
* Improve zmq_proxy documentation to state it can return ETERM as well
* Fixed 1442 - SO_NOSIGPIPE and connection closing by peer race condition
* Improve CMake functionality on Windows: ZeroMQConfig.cmake generation CPack
  option, correct static library filename, ship FindSodium.cmake in tarball
* Fixed 2228 - setting HWM after connect on inproc transport leads to infinite
  HWM
* Add support for Visual Studio 2017
* New DRAFT (see NEWS for 4.2.0) zmq_has option "draft" option that returns
  true if the library was built with DRAFT enabled. Useful for FFI bindings.
  See doc/zmq_has.txt for more information
* Fixed 2321 - zmq_z85_decode does not validate its input. The function has
  been fixed to correctly follow RFC32 and return NULL if the input is invalid
* Fixed 2323 - clock_t related crash on Apple iOS 9.3.2 and 9.3.5
* Fixed 1801 - OSX: Cmake installs libzmq in a weird PATH
* Fixed potential divide by zero in zmq::lb_t::sendpipe
* Improve compatibility with OpenIndiana by skipping epoll and using poll/select
* Fix IPv4-in-IPv6 mapped addresses parsing error
   2017-05-03 10:38:46 by Jonathan Perkin | Files touched by this commit (95)
Log message:
Convert CXXFLAGS setting C++ standard to USE_LANGUAGES.
   2017-02-08 19:15:44 by Maya Rashish | Files touched by this commit (3)
Log message:
zeromq: document the fact that the patches are only needed for netbsd<8
now, since netbsd 8 will have accept4. it'll be a long time before they're
safe to remove, and we'll probably forget why they're here by then.