about summary refs log tree commit diff
path: root/pkgs/development/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries')
-rw-r--r--pkgs/development/libraries/accelio/default.nix64
-rw-r--r--pkgs/development/libraries/accelio/fix-printfs.patch615
-rw-r--r--pkgs/development/libraries/armadillo/default.nix9
-rw-r--r--pkgs/development/libraries/beignet/default.nix4
-rw-r--r--pkgs/development/libraries/boost/1.64.nix12
-rw-r--r--pkgs/development/libraries/c-ares/default.nix4
-rw-r--r--pkgs/development/libraries/cppzmq/default.nix13
-rw-r--r--pkgs/development/libraries/cyrus-sasl/default.nix6
-rw-r--r--pkgs/development/libraries/folly/default.nix12
-rw-r--r--pkgs/development/libraries/frei0r/default.nix4
-rw-r--r--pkgs/development/libraries/gbenchmark/default.nix4
-rw-r--r--pkgs/development/libraries/glpk/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/libav/default.nix2
-rw-r--r--pkgs/development/libraries/libaacs/default.nix4
-rw-r--r--pkgs/development/libraries/libbluray/default.nix2
-rw-r--r--pkgs/development/libraries/libextractor/default.nix4
-rw-r--r--pkgs/development/libraries/libfprint/default.nix6
-rw-r--r--pkgs/development/libraries/libidn2/default.nix8
-rw-r--r--pkgs/development/libraries/libmediainfo/default.nix4
-rw-r--r--pkgs/development/libraries/libressl/2.4.nix22
-rw-r--r--pkgs/development/libraries/libressl/2.5.nix24
-rw-r--r--pkgs/development/libraries/libressl/default.nix39
-rw-r--r--pkgs/development/libraries/libvirt/default.nix5
-rw-r--r--pkgs/development/libraries/libzen/default.nix4
-rw-r--r--pkgs/development/libraries/linenoise-ng/default.nix23
-rw-r--r--pkgs/development/libraries/opencv/3.x.nix7
-rw-r--r--pkgs/development/libraries/rocksdb/default.nix5
-rw-r--r--pkgs/development/libraries/science/math/ipopt/default.nix4
-rw-r--r--pkgs/development/libraries/ti-rpc/default.nix4
-rw-r--r--pkgs/development/libraries/vc/default.nix4
-rw-r--r--pkgs/development/libraries/zeromq/4.x.nix19
31 files changed, 160 insertions, 781 deletions
diff --git a/pkgs/development/libraries/accelio/default.nix b/pkgs/development/libraries/accelio/default.nix
deleted file mode 100644
index a1f229ca5fb0..000000000000
--- a/pkgs/development/libraries/accelio/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, libibverbs, librdmacm, libevent
-
-# Linux only deps
-, numactl, kernel ? null
-}:
-
-stdenv.mkDerivation rec {
-  name = "accelio-${version}${stdenv.lib.optionalString (kernel != null) "-kernel"}";
-  version = "1.5";
-
-  src = fetchFromGitHub {
-    owner = "accelio";
-    repo = "accelio";
-    rev = "v1.5";
-    sha256 = "172frqk2n43g0arhazgcwfvj0syf861vdzdpxl7idr142bb0ykf7";
-  };
-
-  hardeningDisable = [ "format" "pic" ];
-
-  patches = [ ./fix-printfs.patch ];
-
-  postPatch = ''
-    # Don't build broken examples
-    sed -i '/AC_CONFIG_SUBDIRS(\[\(examples\|tests\).*\/kernel/d' configure.ac
-
-    # Allow the installation of xio kernel headers
-    sed -i 's,/opt/xio,''${out},g' src/kernel/xio/Makefile.in
-
-    # Don't install ldconfig entries
-    sed -i '\,/etc/ld.so.conf.d/libxio.conf,d' src/usr/Makefile.am
-    sed -i '\,/sbin/ldconfig,d' src/usr/Makefile.am
-  '';
-
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ libevent ];
-  propagatedBuildInputs = [ libibverbs librdmacm ]
-    ++ stdenv.lib.optional stdenv.isLinux numactl;
-
-  configureFlags = [
-    "--enable-rdma"
-    "--disable-raio-build"
-  ] ++ stdenv.lib.optionals (kernel != null) [
-    "--enable-kernel-module"
-    "--with-kernel=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source"
-    "--with-kernel-build=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
-  ];
-
-  INSTALL_MOD_PATH = "\${out}";
-
-  meta = with stdenv.lib; {
-    homepage = http://www.accelio.org/;
-    description = "High-performance messaging and RPC library";
-    longDescription = ''
-      A high-performance asynchronous reliable messaging and RPC library
-      optimized for hardware acceleration.
-    '';
-    license = licenses.bsd3;
-    platforms = with platforms; linux ++ freebsd;
-    maintainers = with maintainers; [ wkennington ];
-    # kernel 4.2 is the most recent supported kernel
-    broken = kernel != null &&
-      (builtins.compareVersions kernel.version "4.2" == 1);
-  };
-}
diff --git a/pkgs/development/libraries/accelio/fix-printfs.patch b/pkgs/development/libraries/accelio/fix-printfs.patch
deleted file mode 100644
index 23b2f40e42fe..000000000000
--- a/pkgs/development/libraries/accelio/fix-printfs.patch
+++ /dev/null
@@ -1,615 +0,0 @@
-diff -rup accelio/benchmarks/usr/xio_perftest/xio_perftest_client.c accelio.new/benchmarks/usr/xio_perftest/xio_perftest_client.c
---- accelio/benchmarks/usr/xio_perftest/xio_perftest_client.c	2015-09-03 19:36:25.610337514 -0400
-+++ accelio.new/benchmarks/usr/xio_perftest/xio_perftest_client.c	2015-09-03 19:59:13.258697472 -0400
-@@ -246,7 +246,7 @@ static void *worker_thread(void *data)
- 		} else {
- 			vmsg_sglist_set_nents(&msg->out, 0);
- 		}
--		msg->user_context = (void *)get_cycles();
-+		msg->user_context = (void *)(intptr_t)get_cycles();
- 		/* send first message */
- 		if (xio_send_request(tdata->conn, msg) == -1) {
- 			if (xio_errno() != EAGAIN)
-@@ -330,7 +330,7 @@ static int on_response(struct xio_sessio
- {
- 	struct thread_data  *tdata = (struct thread_data *)cb_user_context;
- 
--	cycles_t rtt = (get_cycles()-(cycles_t)msg->user_context);
-+	cycles_t rtt = (get_cycles()-(cycles_t)(intptr_t)msg->user_context);
- 
- 	if (tdata->do_stat) {
- 		if (rtt > tdata->stat.max_rtt)
-@@ -358,7 +358,7 @@ static int on_response(struct xio_sessio
- 	msg->in.header.iov_len = 0;
- 	vmsg_sglist_set_nents(&msg->in, 0);
- 
--	msg->user_context = (void *)get_cycles();
-+	msg->user_context = (void *)(intptr_t)get_cycles();
- 	if (xio_send_request(tdata->conn, msg) == -1) {
- 		if (xio_errno() != EAGAIN)
- 			printf("**** [%p] Error - xio_send_request " \
-@@ -559,7 +559,7 @@ int run_client_test(struct perf_paramete
- 		       sess_data.min_lat_us,
- 		       sess_data.max_lat_us);
- 		if (fd)
--			fprintf(fd, "%lu, %d, %lu, %.2lf, %.2lf\n",
-+			fprintf(fd, "%" PRIu64 ", %d, %" PRIu64 ", %.2lf, %.2lf\n",
- 				data_len,
- 				threads_iter,
- 				sess_data.tps,
-diff -rup accelio/benchmarks/usr/xio_perftest/xio_perftest_parameters.h accelio.new/benchmarks/usr/xio_perftest/xio_perftest_parameters.h
---- accelio/benchmarks/usr/xio_perftest/xio_perftest_parameters.h	2015-09-03 19:36:25.610337514 -0400
-+++ accelio.new/benchmarks/usr/xio_perftest/xio_perftest_parameters.h	2015-09-03 19:57:30.856215123 -0400
-@@ -90,7 +90,7 @@ typedef enum { READ, WRITE} Verb;
- /* The format of the results */
- #define RESULT_FMT		" #bytes     #threads   #TPS       BW average[MBps]   Latency average[usecs]   Latency low[usecs]   Latency peak[usecs]\n"
- /* Result print format */
--#define REPORT_FMT		" %-7lu     %-2d         %-9.2lu	  %-9.2lf     %-9.2lf                  %-9.2lf              %-9.2lf\n"
-+#define REPORT_FMT		" %-7" PRIu64 "     %-2d         %-9.2" PRIu64 "	  %-9.2lf     %-9.2lf                  %-9.2lf              %-9.2lf\n"
- 
- 
- struct perf_parameters {
-diff -rup accelio/examples/usr/hello_world_iov/xio_client.c accelio.new/examples/usr/hello_world_iov/xio_client.c
---- accelio/examples/usr/hello_world_iov/xio_client.c	2015-09-03 19:36:25.611337519 -0400
-+++ accelio.new/examples/usr/hello_world_iov/xio_client.c	2015-09-03 19:42:19.983984370 -0400
-@@ -224,7 +224,7 @@ static void process_response(struct sess
- 				len = 64;
- 			tmp = str[len];
- 			str[len] = '\0';
--			printf("message header : [%lu] - %s\n",
-+			printf("message header : [%" PRIu64 "] - %s\n",
- 			       (rsp->request->sn + 1), str);
- 			str[len] = tmp;
- 		}
-@@ -236,7 +236,7 @@ static void process_response(struct sess
- 					len = 64;
- 				tmp = str[len];
- 				str[len] = '\0';
--				printf("message data: [%lu][%d][%zd] - %s\n",
-+				printf("message data: [%" PRIu64 "][%d][%zd] - %s\n",
- 				       (rsp->request->sn + 1), i, sglist[i].iov_len, str);
- 				str[len] = tmp;
- 			}
-diff -rup accelio/examples/usr/hello_world_iov/xio_server.c accelio.new/examples/usr/hello_world_iov/xio_server.c
---- accelio/examples/usr/hello_world_iov/xio_server.c	2015-09-03 19:36:25.611337519 -0400
-+++ accelio.new/examples/usr/hello_world_iov/xio_server.c	2015-09-03 19:43:07.353204184 -0400
-@@ -203,7 +203,7 @@ static void process_request(struct serve
- 				len = 64;
- 			tmp = str[len];
- 			str[len] = '\0';
--			printf("message header : [%lu] - %s\n",
-+			printf("message header : [%" PRIu64 "] - %s\n",
- 			       (req->sn + 1), str);
- 			str[len] = tmp;
- 		}
-@@ -215,7 +215,7 @@ static void process_request(struct serve
- 					len = 64;
- 				tmp = str[len];
- 				str[len] = '\0';
--				printf("message data: [%lu][%d][%zd] - %s\n",
-+				printf("message data: [%" PRIu64 "][%d][%zd] - %s\n",
- 				       (req->sn + 1), i, sglist[i].iov_len, str);
- 				str[len] = tmp;
- 			}
-@@ -360,11 +360,11 @@ static int on_msg_error(struct xio_sessi
- 	struct server_data *sdata = (struct server_data *)cb_user_context;
- 
- 	if (direction == XIO_MSG_DIRECTION_OUT) {
--		printf("**** [%p] message %lu failed. reason: %s\n",
-+		printf("**** [%p] message %" PRIu64 " failed. reason: %s\n",
- 		       session, msg->sn, xio_strerror(error));
- 	} else {
- 		xio_release_response(msg);
--		printf("**** [%p] message %lu failed. reason: %s\n",
-+		printf("**** [%p] message %" PRIu64 " failed. reason: %s\n",
- 		       session, msg->request->sn, xio_strerror(error));
- 	}
- 
-diff -rup accelio/examples/usr/hello_world_libevent/xio_client.c accelio.new/examples/usr/hello_world_libevent/xio_client.c
---- accelio/examples/usr/hello_world_libevent/xio_client.c	2015-09-03 19:36:25.612337524 -0400
-+++ accelio.new/examples/usr/hello_world_libevent/xio_client.c	2015-09-03 19:43:32.748322028 -0400
-@@ -87,7 +87,7 @@ static void process_response(struct sess
- {
- 	if (++session_data->cnt == PRINT_COUNTER) {
- 		((char *)(rsp->in.header.iov_base))[rsp->in.header.iov_len] = 0;
--		printf("message: [%lu] - %s\n",
-+		printf("message: [%" PRIu64 "] - %s\n",
- 		       (rsp->request->sn + 1), (char *)rsp->in.header.iov_base);
- 		session_data->cnt = 0;
- 	}
-diff -rup accelio/examples/usr/hello_world_libevent/xio_server.c accelio.new/examples/usr/hello_world_libevent/xio_server.c
---- accelio/examples/usr/hello_world_libevent/xio_server.c	2015-09-03 19:36:25.612337524 -0400
-+++ accelio.new/examples/usr/hello_world_libevent/xio_server.c	2015-09-03 19:43:50.556404665 -0400
-@@ -82,7 +82,7 @@ static void process_request(struct serve
- 				len = 64;
- 			tmp = str[len];
- 			str[len] = '\0';
--			printf("message header : [%lu] - %s\n",
-+			printf("message header : [%" PRIu64 "] - %s\n",
- 			       (req->sn + 1), str);
- 			str[len] = tmp;
- 		}
-@@ -94,7 +94,7 @@ static void process_request(struct serve
- 					len = 64;
- 				tmp = str[len];
- 				str[len] = '\0';
--				printf("message data: [%lu][%d][%d] - %s\n",
-+				printf("message data: [%" PRIu64 "][%d][%d] - %s\n",
- 				       (req->sn + 1), i, len, str);
- 				str[len] = tmp;
- 			}
-diff -rup accelio/examples/usr/hello_world_mt/xio_mt_client.c accelio.new/examples/usr/hello_world_mt/xio_mt_client.c
---- accelio/examples/usr/hello_world_mt/xio_mt_client.c	2015-09-03 19:36:25.611337519 -0400
-+++ accelio.new/examples/usr/hello_world_mt/xio_mt_client.c	2015-09-03 19:41:13.493675827 -0400
-@@ -40,6 +40,7 @@
- #include <string.h>
- #include <inttypes.h>
- #include <sched.h>
-+#include <inttypes.h>
- 
- #include "libxio.h"
- 
-@@ -133,7 +134,7 @@ static void process_response(struct thre
- {
- 	if (++tdata->cnt == PRINT_COUNTER) {
- 		((char *)(rsp->in.header.iov_base))[rsp->in.header.iov_len] = 0;
--		printf("thread [%d] - tid:%p  - message: [%lu] - %s\n",
-+		printf("thread [%d] - tid:%p  - message: [%" PRIu64 "] - %s\n",
- 		       tdata->affinity,
- 		      (void *)pthread_self(),
- 		       (rsp->request->sn + 1), (char *)rsp->in.header.iov_base);
-diff -rup accelio/examples/usr/hello_world_mt/xio_mt_server.c accelio.new/examples/usr/hello_world_mt/xio_mt_server.c
---- accelio/examples/usr/hello_world_mt/xio_mt_server.c	2015-09-03 19:36:25.611337519 -0400
-+++ accelio.new/examples/usr/hello_world_mt/xio_mt_server.c	2015-09-03 19:41:31.730760455 -0400
-@@ -104,7 +104,7 @@ static void process_request(struct threa
- 			    struct xio_msg *req)
- {
- 	if (++tdata->cnt == PRINT_COUNTER) {
--		printf("thread [%d] tid:%p - message: [%lu] - %s\n",
-+		printf("thread [%d] tid:%p - message: [%" PRIu64 "] - %s\n",
- 		       tdata->affinity,
- 		       (void *)pthread_self(),
- 		       (req->sn + 1), (char *)req->in.header.iov_base);
-diff -rup accelio/regression/usr/reg_basic_mt/reg_basic_mt_client.c accelio.new/regression/usr/reg_basic_mt/reg_basic_mt_client.c
---- accelio/regression/usr/reg_basic_mt/reg_basic_mt_client.c	2015-09-03 19:36:25.603337482 -0400
-+++ accelio.new/regression/usr/reg_basic_mt/reg_basic_mt_client.c	2015-09-03 20:00:15.169989095 -0400
-@@ -416,11 +416,11 @@ static int on_msg_error(struct xio_sessi
- 	struct thread_data	*tdata		= conn_entry->tdata;
- 
- 	if (direction == XIO_MSG_DIRECTION_OUT) {
--		DEBUG("**** [%p] message %lu failed. reason: %s\n",
-+		DEBUG("**** [%p] message %" PRIu64 " failed. reason: %s\n",
- 		       session, req->sn, xio_strerror(error));
- 	} else {
- 		xio_release_response(req);
--		DEBUG("**** [%p] message %lu failed. reason: %s\n",
-+		DEBUG("**** [%p] message %" PRIu64 " failed. reason: %s\n",
- 		       session, req->request->sn, xio_strerror(error));
- 	}
- 	obj_pool_put(tdata->req_pool, req);
-diff -rup accelio/src/tools/usr/xio_if_numa_cpus.c accelio.new/src/tools/usr/xio_if_numa_cpus.c
---- accelio/src/tools/usr/xio_if_numa_cpus.c	2015-09-03 19:36:25.603337482 -0400
-+++ accelio.new/src/tools/usr/xio_if_numa_cpus.c	2015-09-03 19:40:06.398364476 -0400
-@@ -43,6 +43,7 @@
- #include <net/if.h>
- #include <stdio.h>
- #include <numa.h>
-+#include <inttypes.h>
- 
- #define cpusmask_test_bit(nr, addr)	(*(addr) & (1ULL << (nr)))
- #define cpusmask_set_bit(nr, addr)	(*(addr) |=  (1ULL << (nr)))
-@@ -244,7 +245,7 @@ int main(int argc, char *argv[])
- 		}
- 		intf_cpusmask_str(cpusmask, cpusnum, cpus_str);
- 
--		printf("%-10s %-16s %-30s %-5d 0x%-8lx %-4s[%d] - %s\n",
-+		printf("%-10s %-16s %-30s %-5d 0x%-8" PRIx64 " %-4s[%d] - %s\n",
- 		       ifa->ifa_name, host, flags, numa_node, cpusmask,
- 		       "cpus",  cpusnum, cpus_str);
- 	}
-diff -rup accelio/src/tools/usr/xio_mem_usage.c accelio.new/src/tools/usr/xio_mem_usage.c
---- accelio/src/tools/usr/xio_mem_usage.c	2015-09-03 19:36:25.603337482 -0400
-+++ accelio.new/src/tools/usr/xio_mem_usage.c	2015-09-03 19:38:57.596044838 -0400
-@@ -73,7 +73,7 @@
- 	while (i++ < 48) { \
- 		printf("."); \
- 	} \
--	printf(" %6lu\n", sizeof(type)); \
-+	printf(" %zu\n", sizeof(type)); \
- }
- 
- int main(int argc, char **argv)
-diff -rup accelio/tests/portable/direct_rdma_test/xio_rdma_common.c accelio.new/tests/portable/direct_rdma_test/xio_rdma_common.c
---- accelio/tests/portable/direct_rdma_test/xio_rdma_common.c	2015-09-03 19:36:25.610337514 -0400
-+++ accelio.new/tests/portable/direct_rdma_test/xio_rdma_common.c	2015-09-03 19:56:25.521908028 -0400
-@@ -90,7 +90,7 @@ static int publish_our_buffer(struct xio
- 	 * this flag must be on */
- 	rsp->flags = XIO_MSG_FLAG_IMM_SEND_COMP;
- 
--	rdma_test_buf.addr = (uint64_t)rdma_reg_mem.addr;
-+	rdma_test_buf.addr = (intptr_t)rdma_reg_mem.addr;
- 	rdma_test_buf.length = rdma_reg_mem.length;
- 	rdma_test_buf.rkey = xio_lookup_rkey_by_response(&rdma_reg_mem, rsp);
- 
-diff -rup accelio/tests/usr/hello_test/xio_client.c accelio.new/tests/usr/hello_test/xio_client.c
---- accelio/tests/usr/hello_test/xio_client.c	2015-09-03 19:36:25.608337505 -0400
-+++ accelio.new/tests/usr/hello_test/xio_client.c	2015-09-03 19:45:43.055926711 -0400
-@@ -181,13 +181,13 @@ static void process_response(struct test
- 
- 		double txbw = (1.0*pps*test_params->stat.txlen/ONE_MB);
- 		double rxbw = (1.0*pps*test_params->stat.rxlen/ONE_MB);
--		printf("transactions per second: %lu, bandwidth: " \
-+		printf("transactions per second: %" PRIu64 ", bandwidth: " \
- 		       "TX %.2f MB/s, RX: %.2f MB/s, length: TX: %zd B, RX: %zd B\n",
- 		       pps, txbw, rxbw,
- 		       test_params->stat.txlen, test_params->stat.rxlen);
- 		get_time(timeb, 40);
- 
--		printf("**** [%s] - message [%zd] %s - %s\n",
-+		printf("**** [%s] - message [%" PRIu64 "] %s - %s\n",
- 		       timeb, (rsp->request->sn + 1),
- 		       (char *)rsp->in.header.iov_base,
- 		       (char *)(inents > 0 ? isglist[0].iov_base : NULL));
-@@ -212,8 +212,8 @@ static int on_session_event(struct xio_s
- 
- 	switch (event_data->event) {
- 	case XIO_SESSION_CONNECTION_TEARDOWN_EVENT:
--		printf("nsent:%lu, nrecv:%lu, " \
--		       "delta:%lu\n",
-+		printf("nsent:%" PRIu64 ", nrecv:%" PRIu64 ", " \
-+		       "delta:%" PRIu64 "\n",
- 		       test_params->nsent, test_params->nrecv,
- 		       test_params->nsent-test_params->nrecv);
- 
-@@ -370,11 +370,11 @@ static int on_msg_error(struct xio_sessi
- 	struct test_params *test_params = (struct test_params *)cb_user_context;
- 
- 	if (direction == XIO_MSG_DIRECTION_OUT) {
--		printf("**** [%p] message %lu failed. reason: %s\n",
-+		printf("**** [%p] message %" PRIu64 " failed. reason: %s\n",
- 		       session, msg->sn, xio_strerror(error));
- 	} else {
- 		xio_release_response(msg);
--		printf("**** [%p] message %lu failed. reason: %s\n",
-+		printf("**** [%p] message %" PRIu64 " failed. reason: %s\n",
- 		       session, msg->request->sn, xio_strerror(error));
- 	}
- 
-diff -rup accelio/tests/usr/hello_test/xio_server.c accelio.new/tests/usr/hello_test/xio_server.c
---- accelio/tests/usr/hello_test/xio_server.c	2015-09-03 19:36:25.608337505 -0400
-+++ accelio.new/tests/usr/hello_test/xio_server.c	2015-09-03 19:46:35.777171360 -0400
-@@ -112,7 +112,7 @@ static void process_request(struct xio_m
- 	if (++cnt == PRINT_COUNTER) {
- 		struct xio_iovec_ex *sglist = vmsg_sglist(&msg->in);
- 
--		printf("**** message [%lu] %s - %s\n",
-+		printf("**** message [%" PRIu64 "] %s - %s\n",
- 		       (msg->sn+1),
- 		       (char *)msg->in.header.iov_base,
- 		       (char *)sglist[0].iov_base);
-@@ -146,8 +146,8 @@ static int on_session_event(struct xio_s
- 		break;
- 	case XIO_SESSION_CONNECTION_TEARDOWN_EVENT:
- 		if (event_data->reason != XIO_E_SESSION_REJECTED) {
--			printf("last sent:%lu, last comp:%lu, " \
--			       "delta:%lu\n",
-+			printf("last sent:%" PRIu64 ", last comp:%" PRIu64 ", " \
-+			       "delta:%" PRIu64 "\n",
- 			       test_params->nsent,  test_params->ncomp,
- 			       test_params->nsent-test_params->ncomp);
- 			test_params->connection = NULL;
-@@ -257,7 +257,7 @@ static int on_msg_error(struct xio_sessi
- {
- 	struct test_params *test_params = (struct test_params *)cb_user_context;
- 
--	printf("**** [%p] message [%lu] failed. reason: %s\n",
-+	printf("**** [%p] message [%" PRIu64 "] failed. reason: %s\n",
- 	       session, msg->request->sn, xio_strerror(error));
- 
- 	msg_pool_put(test_params->pool, msg);
-diff -rup accelio/tests/usr/hello_test_bidi/xio_bidi_client.c accelio.new/tests/usr/hello_test_bidi/xio_bidi_client.c
---- accelio/tests/usr/hello_test_bidi/xio_bidi_client.c	2015-09-03 19:36:25.608337505 -0400
-+++ accelio.new/tests/usr/hello_test_bidi/xio_bidi_client.c	2015-09-03 19:49:10.164887785 -0400
-@@ -114,7 +114,7 @@ static void process_request(struct xio_m
- 	if (++cnt == print_counter) {
- 		struct xio_iovec_ex *sglist = vmsg_sglist(&req->in);
- 
--		printf("**** request [%lu] %s - %s\n",
-+		printf("**** request [%" PRIu64 "] %s - %s\n",
- 		       (req->sn+1),
- 		       (char *)req->in.header.iov_base,
- 		       (char *)sglist[0].iov_base);
-@@ -171,11 +171,11 @@ static void process_response(struct xio_
- 		double txbw = (1.0*pps*txlen/ONE_MB);
- 		double rxbw = (1.0*pps*rxlen/ONE_MB);
- 
--		printf("transactions per second: %lu, bandwidth: " \
-+		printf("transactions per second: %" PRIu64 ", bandwidth: " \
- 		       "TX %.2f MB/s, RX: %.2f MB/s, length: TX: %zd B, RX: %zd B\n",
- 		       pps, txbw, rxbw, txlen, rxlen);
- 		get_time(timeb, 40);
--		printf("**** [%s] - response [%lu] %s - %s\n",
-+		printf("**** [%s] - response [%" PRIu64 "] %s - %s\n",
- 		       timeb, (rsp->request->sn + 1),
- 		       (char *)rsp->in.header.iov_base,
- 		       (char *)(inents > 0 ? isglist[0].iov_base : NULL));
-@@ -357,7 +357,7 @@ static int on_msg_error(struct xio_sessi
- {
- 	switch (msg->type) {
- 	case XIO_MSG_TYPE_REQ:
--		printf("**** [%p] message [%lu] failed. reason: %s\n",
-+		printf("**** [%p] message [%" PRIu64 "] failed. reason: %s\n",
- 		       session, msg->sn, xio_strerror(error));
- 		msg_pool_put(pool, msg);
- 		switch (error) {
-@@ -369,7 +369,7 @@ static int on_msg_error(struct xio_sessi
- 		};
- 		break;
- 	case XIO_MSG_TYPE_RSP:
--		printf("**** [%p] message [%lu] failed. reason: %s\n",
-+		printf("**** [%p] message [%" PRIu64 "] failed. reason: %s\n",
- 		       session, msg->request->sn, xio_strerror(error));
- 		/* message is no longer needed */
- 		switch (error) {
-diff -rup accelio/tests/usr/hello_test_bidi/xio_bidi_server.c accelio.new/tests/usr/hello_test_bidi/xio_bidi_server.c
---- accelio/tests/usr/hello_test_bidi/xio_bidi_server.c	2015-09-03 19:36:25.608337505 -0400
-+++ accelio.new/tests/usr/hello_test_bidi/xio_bidi_server.c	2015-09-03 19:49:52.860085909 -0400
-@@ -143,11 +143,11 @@ static void process_response(struct xio_
- 		double txbw = (1.0*pps*txlen/ONE_MB);
- 		double rxbw = (1.0*pps*rxlen/ONE_MB);
- 
--		printf("transactions per second: %lu, bandwidth: " \
-+		printf("transactions per second: %" PRIu64 ", bandwidth: " \
- 		       "TX %.2f MB/s, RX: %.2f MB/s, length: TX: %zd B, RX: %zd B\n",
- 		       pps, txbw, rxbw, txlen, rxlen);
- 		get_time(timeb, 40);
--		printf("**** [%s] - response complete [%lu] %s - %s\n",
-+		printf("**** [%s] - response complete [%" PRIu64 "] %s - %s\n",
- 		       timeb, (rsp->request->sn + 1),
- 		       (char *)rsp->in.header.iov_base,
- 		       (char *)(inents > 0 ? isglist[0].iov_base : NULL));
-@@ -171,7 +171,7 @@ static void process_request(struct xio_m
- 	if (++cnt == print_counter) {
- 		struct xio_iovec_ex *sglist = vmsg_sglist(&req->in);
- 
--		printf("**** request complete [%lu] %s - %s [%zd]\n",
-+		printf("**** request complete [%" PRIu64 "] %s - %s [%zd]\n",
- 		       (req->sn+1),
- 		       (char *)req->in.header.iov_base,
- 		       (char *)sglist[0].iov_base,
-@@ -409,7 +409,7 @@ static int on_msg_error(struct xio_sessi
- {
- 	switch (msg->type) {
- 	case XIO_MSG_TYPE_REQ:
--		printf("**** [%p] message [%lu] failed. reason: %s\n",
-+		printf("**** [%p] message [%" PRIu64 "] failed. reason: %s\n",
- 		       session, msg->sn, xio_strerror(error));
- 		msg_pool_put(pool, msg);
- 		switch (error) {
-@@ -422,7 +422,7 @@ static int on_msg_error(struct xio_sessi
- 		};
- 		break;
- 	case XIO_MSG_TYPE_RSP:
--		printf("**** [%p] message [%lu] failed. reason: %s\n",
-+		printf("**** [%p] message [%" PRIu64 "] failed. reason: %s\n",
- 		       session, msg->request->sn, xio_strerror(error));
- 		/* message is no longer needed */
- 		switch (error) {
-diff -rup accelio/tests/usr/hello_test_lat/xio_lat_client.c accelio.new/tests/usr/hello_test_lat/xio_lat_client.c
---- accelio/tests/usr/hello_test_lat/xio_lat_client.c	2015-09-03 19:36:25.608337505 -0400
-+++ accelio.new/tests/usr/hello_test_lat/xio_lat_client.c	2015-09-03 19:50:51.111356220 -0400
-@@ -139,7 +139,7 @@ static void process_response(struct xio_
- 		double rxbw = (1.0*pps*rxlen/ONE_MB);
- 		double lat = (1000000.0/pps);
- 
--		printf("transactions per second: %lu, lat: %.2f us, bandwidth: " \
-+		printf("transactions per second: %" PRIu64 ", lat: %.2f us, bandwidth: " \
- 		       "TX %.2f MB/s, RX: %.2f MB/s, length: TX: %zd B, RX: %zd B\n",
- 		       pps, lat, txbw, rxbw, txlen, rxlen);
- 		get_time(timeb, 40);
-@@ -312,7 +312,7 @@ static int on_msg_error(struct xio_sessi
- 			struct xio_msg  *msg,
- 			void *cb_user_context)
- {
--	printf("**** [%p] message [%lu] failed. reason: %s\n",
-+	printf("**** [%p] message [%" PRIu64 "] failed. reason: %s\n",
- 	       session, msg->sn, xio_strerror(error));
- 
- 	msg_pool_put(pool, msg);
-diff -rup accelio/tests/usr/hello_test_lat/xio_lat_server.c accelio.new/tests/usr/hello_test_lat/xio_lat_server.c
---- accelio/tests/usr/hello_test_lat/xio_lat_server.c	2015-09-03 19:36:25.608337505 -0400
-+++ accelio.new/tests/usr/hello_test_lat/xio_lat_server.c	2015-09-03 19:51:16.803475442 -0400
-@@ -103,7 +103,7 @@ static void process_request(struct xio_m
- 	if (++cnt == PRINT_COUNTER) {
- 		struct xio_iovec_ex *sglist = vmsg_sglist(&msg->in);
- 
--		printf("**** message [%lu] %s - %s\n",
-+		printf("**** message [%" PRIu64 "] %s - %s\n",
- 		       (msg->sn+1),
- 		       (char *)msg->in.header.iov_base,
- 		       (char *)sglist[0].iov_base);
-@@ -209,7 +209,7 @@ static int on_msg_error(struct xio_sessi
- 			struct xio_msg  *msg,
- 			void *cb_user_context)
- {
--	printf("**** [%p] message [%lu] failed. reason: %s\n",
-+	printf("**** [%p] message [%" PRIu64 "] failed. reason: %s\n",
- 	       session, msg->sn, xio_strerror(error));
- 
- 	msg_pool_put(pool, msg);
-diff -rup accelio/tests/usr/hello_test_mt/xio_mt_client.c accelio.new/tests/usr/hello_test_mt/xio_mt_client.c
---- accelio/tests/usr/hello_test_mt/xio_mt_client.c	2015-09-03 19:36:25.608337505 -0400
-+++ accelio.new/tests/usr/hello_test_mt/xio_mt_client.c	2015-09-03 19:47:39.218465755 -0400
-@@ -179,12 +179,12 @@ static void process_response(struct thre
- 		double txbw = (1.0*pps*tdata->stat.txlen/ONE_MB);
- 		double rxbw = (1.0*pps*tdata->stat.rxlen/ONE_MB);
- 
--		printf("transactions per second: %lu, bandwidth: " \
-+		printf("transactions per second: %" PRIu64 ", bandwidth: " \
- 		       "TX %.2f MB/s, RX: %.2f MB/s, length: TX: %zd B, " \
- 		       "RX: %zd B\n",
- 		       pps, txbw, rxbw, tdata->stat.txlen, tdata->stat.rxlen);
- 		get_time(timeb, 40);
--		printf("[%s] thread [%d] - tid:%p  - message [%lu] " \
-+		printf("[%s] thread [%d] - tid:%p  - message [%" PRIu64 "] " \
- 		       "%s - %s\n",
- 		       timeb,
- 		       tdata->affinity,
-@@ -416,11 +416,11 @@ static int on_msg_error(struct xio_sessi
- 	struct thread_data  *tdata = (struct thread_data *)cb_user_context;
- 
- 	if (direction == XIO_MSG_DIRECTION_OUT) {
--		printf("**** [%p] message %lu failed. reason: %s\n",
-+		printf("**** [%p] message %" PRIu64 " failed. reason: %s\n",
- 		       session, msg->sn, xio_strerror(error));
- 	} else {
- 		xio_release_response(msg);
--		printf("**** [%p] message %lu failed. reason: %s\n",
-+		printf("**** [%p] message %" PRIu64 " failed. reason: %s\n",
- 		       session, msg->request->sn, xio_strerror(error));
- 	}
- 
-diff -rup accelio/tests/usr/hello_test_mt/xio_mt_server.c accelio.new/tests/usr/hello_test_mt/xio_mt_server.c
---- accelio/tests/usr/hello_test_mt/xio_mt_server.c	2015-09-03 19:36:25.608337505 -0400
-+++ accelio.new/tests/usr/hello_test_mt/xio_mt_server.c	2015-09-03 19:48:02.876575538 -0400
-@@ -171,7 +171,7 @@ static void process_request(struct threa
- 	if (++tdata->stat.cnt == PRINT_COUNTER) {
- 		struct xio_iovec_ex *sglist = vmsg_sglist(&msg->in);
- 
--		printf("thread [%d] - message [%lu] %s - %s\n",
-+		printf("thread [%d] - message [%" PRIu64 "] %s - %s\n",
- 		       tdata->affinity,
- 		       (msg->sn+1),
- 		       (char *)msg->in.header.iov_base,
-@@ -260,7 +260,7 @@ static int on_msg_error(struct xio_sessi
- {
- 	struct thread_data	*tdata = (struct thread_data *)cb_user_context;
- 
--	printf("**** [%p] message [%lu] failed. reason: %s\n",
-+	printf("**** [%p] message [%" PRIu64 "] failed. reason: %s\n",
- 	       session, msg->request->sn, xio_strerror(error));
- 
- 	msg_pool_put(tdata->pool, msg);
-diff -rup accelio/tests/usr/hello_test_oneway/xio_oneway_client.c accelio.new/tests/usr/hello_test_oneway/xio_oneway_client.c
---- accelio/tests/usr/hello_test_oneway/xio_oneway_client.c	2015-09-03 19:36:25.609337510 -0400
-+++ accelio.new/tests/usr/hello_test_oneway/xio_oneway_client.c	2015-09-03 19:54:18.142316932 -0400
-@@ -150,11 +150,11 @@ static void process_rx_message(struct ow
- 
- 		double rxbw = (1.0*pps*ow_params->rx_stat.xlen/ONE_MB);
- 
--		printf("transactions per second: %lu, bandwidth: " \
-+		printf("transactions per second: %" PRIu64 ", bandwidth: " \
- 		       "RX: %.2f MB/s, RX: %zd B\n",
- 		       pps, rxbw, ow_params->rx_stat.xlen);
- 		get_time(timeb, 40);
--		printf("**** [%s] - message [%lu] %s - %s\n",
-+		printf("**** [%s] - message [%" PRIu64 "] %s - %s\n",
- 		       timeb, (msg->sn + 1),
- 		       (char *)msg->in.header.iov_base,
- 		       (char *)(inents > 0 ? isglist[0].iov_base : NULL));
-@@ -202,11 +202,11 @@ static void process_tx_message(struct ow
- 
- 		double txbw = (1.0*pps*ow_params->tx_stat.xlen/ONE_MB);
- 
--		printf("transactions per second: %lu, bandwidth: " \
-+		printf("transactions per second: %" PRIu64 ", bandwidth: " \
- 		       "TX %.2f MB/s,length: TX: %zd B\n",
- 		       pps, txbw, ow_params->tx_stat.xlen);
- 		get_time(timeb, 40);
--		printf("**** [%s] - message [%lu] %s - %s\n",
-+		printf("**** [%s] - message [%" PRIu64 "] %s - %s\n",
- 		       timeb, (msg->sn + 1),
- 		       (char *)msg->out.header.iov_base,
- 		       (char *)(onents > 0 ? osglist[0].iov_base : NULL));
-@@ -349,7 +349,7 @@ static int on_msg_error(struct xio_sessi
- 	struct ow_test_params *ow_params =
- 				(struct ow_test_params *)cb_user_context;
- 
--	printf("**** [%p] message [%lu] failed. reason: %s\n",
-+	printf("**** [%p] message [%" PRIu64 "] failed. reason: %s\n",
- 	       session, msg->sn, xio_strerror(error));
- 
- 	msg_pool_put(ow_params->pool, msg);
-diff -rup accelio/tests/usr/hello_test_oneway/xio_oneway_server.c accelio.new/tests/usr/hello_test_oneway/xio_oneway_server.c
---- accelio/tests/usr/hello_test_oneway/xio_oneway_server.c	2015-09-03 19:36:25.609337510 -0400
-+++ accelio.new/tests/usr/hello_test_oneway/xio_oneway_server.c	2015-09-03 19:54:32.797384938 -0400
-@@ -112,7 +112,7 @@ static void process_request(struct xio_m
- 	if (++cnt == PRINT_COUNTER) {
- 		struct xio_iovec_ex *sglist = vmsg_sglist(&msg->in);
- 
--		printf("**** message [%lu] %s - %s\n",
-+		printf("**** message [%" PRIu64 "] %s - %s\n",
- 		       (msg->sn+1),
- 		       (char *)msg->in.header.iov_base,
- 		       (char *)sglist[0].iov_base);
-@@ -299,7 +299,7 @@ static int on_msg_error(struct xio_sessi
- 	struct ow_test_params *ow_params =
- 				(struct ow_test_params *)cb_user_context;
- 
--	printf("**** [%p] message [%lu] failed. reason: %s\n",
-+	printf("**** [%p] message [%" PRIu64 "] failed. reason: %s\n",
- 	       session, msg->sn, xio_strerror(error));
- 
- 	msg_pool_put(ow_params->pool, msg);
-diff -rup accelio/tests/usr/hello_test_ow/xio_ow_client.c accelio.new/tests/usr/hello_test_ow/xio_ow_client.c
---- accelio/tests/usr/hello_test_ow/xio_ow_client.c	2015-09-03 19:36:25.609337510 -0400
-+++ accelio.new/tests/usr/hello_test_ow/xio_ow_client.c	2015-09-03 19:52:24.905791466 -0400
-@@ -152,7 +152,7 @@ for (i = 0; i < onents; i++)
- 
- 		double txbw = (1.0*pps*test_params->stat.txlen/ONE_MB);
- 
--		printf("transactions per second: %lu, bandwidth: " \
-+		printf("transactions per second: %" PRIu64 ", bandwidth: " \
- 		       "TX %.2f MB/s, length: TX: %zd B\n",
- 		       pps, txbw,
- 		       test_params->stat.txlen);
-@@ -181,8 +181,8 @@ static int on_session_event(struct xio_s
- 		test_params->closed = 1;
- 		break;
- 	case XIO_SESSION_CONNECTION_TEARDOWN_EVENT:
--		printf("nsent:%lu, ncomp:%lu, " \
--		       "delta:%lu\n",
-+		printf("nsent:%" PRIu64 ", ncomp:%" PRIu64 ", " \
-+		       "delta:%" PRIu64 "\n",
- 		       test_params->nsent, test_params->ncomp,
- 		       test_params->nsent-test_params->ncomp);
- 
-@@ -357,7 +357,7 @@ static int on_msg_error(struct xio_sessi
- {
- 	struct test_params *test_params = (struct test_params *)cb_user_context;
- 
--	printf("**** [%p] message [%lu] failed. reason: %s\n",
-+	printf("**** [%p] message [%" PRIu64 "] failed. reason: %s\n",
- 	       session, msg->sn, xio_strerror(error));
- 
- 	msg_pool_put(test_params->pool, msg);
-diff -rup accelio/tests/usr/hello_test_ow/xio_ow_server.c accelio.new/tests/usr/hello_test_ow/xio_ow_server.c
---- accelio/tests/usr/hello_test_ow/xio_ow_server.c	2015-09-03 19:36:25.609337510 -0400
-+++ accelio.new/tests/usr/hello_test_ow/xio_ow_server.c	2015-09-03 19:52:57.947944796 -0400
-@@ -110,7 +110,7 @@ static void process_request(struct xio_m
- 	if (++cnt == PRINT_COUNTER) {
- 		struct xio_iovec_ex *sglist = vmsg_sglist(&msg->in);
- 
--		printf("**** message [%lu] %s - %s\n",
-+		printf("**** message [%" PRIu64 "] %s - %s\n",
- 		       (msg->sn+1),
- 		       (char *)msg->in.header.iov_base,
- 		       (char *)sglist[0].iov_base);
-@@ -145,7 +145,7 @@ static int on_session_event(struct xio_s
- 		xio_disconnect(event_data->conn);
- 		break;
- 	case XIO_SESSION_CONNECTION_TEARDOWN_EVENT:
--		printf("last recv:%lu\n",
-+		printf("last recv:%" PRIu64 "\n",
- 		       test_params->nrecv);
- 
- 		xio_connection_destroy(event_data->conn);
-@@ -215,7 +215,7 @@ static int on_msg_error(struct xio_sessi
- 			struct xio_msg  *msg,
- 			void *cb_user_context)
- {
--	printf("**** [%p] message [%lu] failed. reason: %s\n",
-+	printf("**** [%p] message [%" PRIu64 "] failed. reason: %s\n",
- 	       session, msg->request->sn, xio_strerror(error));
- 
- 	return 0;
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix
index d5a601f09ba0..514c73f5e0fc 100644
--- a/pkgs/development/libraries/armadillo/default.nix
+++ b/pkgs/development/libraries/armadillo/default.nix
@@ -12,9 +12,14 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
   buildInputs = [ openblasCompat superlu hdf5 ];
 
-  cmakeFlags = [ "-DDETECT_HDF5=ON" ];
+  cmakeFlags = let
+    libSuff = if stdenv.isDarwin then "dylib" else "so";
+  in [
+    "-DLAPACK_LIBRARY=${openblasCompat}/lib/libopenblas.${libSuff}"
+    "-DDETECT_HDF5=ON"
+  ];
 
- patches = [ ./use-unix-config-on-OS-X.patch ];
+  patches = [ ./use-unix-config-on-OS-X.patch ];
 
   meta = with stdenv.lib; {
     description = "C++ linear algebra library";
diff --git a/pkgs/development/libraries/beignet/default.nix b/pkgs/development/libraries/beignet/default.nix
index 7f127522f058..5a17f379b019 100644
--- a/pkgs/development/libraries/beignet/default.nix
+++ b/pkgs/development/libraries/beignet/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   name = "beignet-${version}";
-  version = "1.2.1";
+  version = "1.3.1";
 
   src = fetchurl {
     url = "https://01.org/sites/default/files/${name}-source.tar.gz"; 
-    sha256 = "07y8ga545654jdbijmplga7a7j3jn04q5gfdjsl8cax16hsv0kmp";
+    sha256 = "07snrgjlhwl5fxz82dyqp632cnf5hp0gfqrjd2930jv79p37p6rr";
   };  
 
   patches = [ ./clang_llvm.patch ]; 
diff --git a/pkgs/development/libraries/boost/1.64.nix b/pkgs/development/libraries/boost/1.64.nix
new file mode 100644
index 000000000000..1cf9bfa51f4b
--- /dev/null
+++ b/pkgs/development/libraries/boost/1.64.nix
@@ -0,0 +1,12 @@
+{ stdenv, callPackage, fetchurl, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "1.64.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/boost/boost_1_64_0.tar.bz2";
+    # SHA256 from http://www.boost.org/users/history/version_1_64_0.html
+    sha256 = "7bcc5caace97baa948931d712ea5f37038dbb1c5d89b43ad4def4ed7cb683332";
+  };
+
+})
diff --git a/pkgs/development/libraries/c-ares/default.nix b/pkgs/development/libraries/c-ares/default.nix
index 482cf9fdfadd..025e11e0755b 100644
--- a/pkgs/development/libraries/c-ares/default.nix
+++ b/pkgs/development/libraries/c-ares/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "c-ares-1.12.0";
+  name = "c-ares-1.13.0";
 
   src = fetchurl {
     url = "http://c-ares.haxx.se/download/${name}.tar.gz";
-    sha256 = "1yv5ygkd813glz8hbagykgp1hlb6450chig061hr7pyw7i0gk4l6";
+    sha256 = "19qxhv9aiw903fr808y77r6l9js0fq9m3gcaqckan9jan7qhixq3";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/cppzmq/default.nix b/pkgs/development/libraries/cppzmq/default.nix
index b1860872df36..7361dc45db75 100644
--- a/pkgs/development/libraries/cppzmq/default.nix
+++ b/pkgs/development/libraries/cppzmq/default.nix
@@ -1,19 +1,18 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, cmake, zeromq }:
 
 stdenv.mkDerivation rec {
   name = "cppzmq-${version}";
-  version = "2016-11-16";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "zeromq";
     repo = "cppzmq";
-    rev = "8b52a6ffacce27bac9b81c852b81539a77b0a6e5";
-    sha256 = "12accjyjzfw1wqzbj1qn6q99bj5ba05flsvbanyzflr3b4971s4p";
+    rev = "v${version}";
+    sha256 = "0hy8yxb22siimq0pf6jq6kdp9lvi5f6al1xd12c9i1jyajhp1lhk";
   };
 
-  installPhase = ''
-    install -Dm644 zmq.hpp $out/include/zmq.hpp
-  '';
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ zeromq ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/zeromq/cppzmq";
diff --git a/pkgs/development/libraries/cyrus-sasl/default.nix b/pkgs/development/libraries/cyrus-sasl/default.nix
index 07f323699b1b..3d6d1c22605b 100644
--- a/pkgs/development/libraries/cyrus-sasl/default.nix
+++ b/pkgs/development/libraries/cyrus-sasl/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, openssl, kerberos, db, gettext, pam, fixDarwinDylibNames, autoreconfHook }:
+{ lib, stdenv, fetchurl, openssl, openldap, kerberos, db, gettext, pam, fixDarwinDylibNames, autoreconfHook, enableLdap ? false }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
 
   buildInputs =
     [ openssl db gettext kerberos ]
+    ++ lib.optional enableLdap openldap
     ++ lib.optional stdenv.isFreeBSD autoreconfHook
     ++ lib.optional stdenv.isLinux pam
     ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
@@ -29,12 +30,11 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-openssl=${openssl.dev}"
-  ];
+  ] ++ lib.optional enableLdap "--with-ldap=${openldap.dev}";
 
   # Set this variable at build-time to make sure $out can be evaluated.
   preConfigure = ''
     configureFlagsArray=( --with-plugindir=$out/lib/sasl2
-                          --with-configdir=$out/lib/sasl2
                           --with-saslauthd=/run/saslauthd
                           --enable-login
                         )
diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix
index 1e8d7ce543f2..927e11dac9e6 100644
--- a/pkgs/development/libraries/folly/default.nix
+++ b/pkgs/development/libraries/folly/default.nix
@@ -3,15 +3,23 @@
 
 stdenv.mkDerivation rec {
   name = "folly-${version}";
-  version = "2016.12.19.00";
+  version = "2017.07.24.00";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "folly";
     rev = "v${version}";
-    sha256 = "1q5nh84sxkdi4x0gwr0x7bgk33pq6071vxz5vnjkznwywhgw2hnn";
+    sha256 = "1cmqrm9yjxrw4xr1kcgzl0s7vcvp125wcgb0cz7whssgj11mf169";
   };
 
+  patches = [
+    # Fix compilation
+    (fetchpatch {
+      url = "https://github.com/facebook/folly/commit/9fc87c83d93f092859823ec32289ed1b6abeb683.patch";
+      sha256 = "0ix0grqlzm16hwa4rjbajjck8kr9lksh6c3gn7p3ihbbchsmlhvl";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook python pkgconfig ];
   buildInputs = [ libiberty boost libevent double_conversion glog google-gflags openssl ];
 
diff --git a/pkgs/development/libraries/frei0r/default.nix b/pkgs/development/libraries/frei0r/default.nix
index f3c9b95d6b47..9614762ef2a3 100644
--- a/pkgs/development/libraries/frei0r/default.nix
+++ b/pkgs/development/libraries/frei0r/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "frei0r-plugins-${version}";
-  version = "1.4";
+  version = "1.6.1";
 
   src = fetchurl {
     url = "https://files.dyne.org/frei0r/releases/${name}.tar.gz";
-    sha256 = "0mxyhdp1p1a3ga8170ijygb870zwbww1dgp3kdr1nd4zvsmzqw44";
+    sha256 = "0pji26fpd0dqrx1akyhqi6729s394irl73dacnyxk58ijqq4dhp0";
   };
 
   buildInputs = [ autoconf cairo opencv pkgconfig ];
diff --git a/pkgs/development/libraries/gbenchmark/default.nix b/pkgs/development/libraries/gbenchmark/default.nix
index 8f532ae8e0b6..cf216ffcc566 100644
--- a/pkgs/development/libraries/gbenchmark/default.nix
+++ b/pkgs/development/libraries/gbenchmark/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "gbenchmark-${version}";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "benchmark";
     rev = "v${version}";
-    sha256 = "1y7k73kyxx1jlph23csnhdac76px6ghhwwxbcf0133m4rg0wmpn5";
+    sha256 = "1gld3zdxgc0c0466qvnsi70h2ksx8qprjrx008rypdhzp6660m48";
   };
 
   buildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/glpk/default.nix b/pkgs/development/libraries/glpk/default.nix
index a4b0090296f9..4ab61a2d2826 100644
--- a/pkgs/development/libraries/glpk/default.nix
+++ b/pkgs/development/libraries/glpk/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "glpk-4.62";
+  name = "glpk-4.63";
 
   src = fetchurl {
     url = "mirror://gnu/glpk/${name}.tar.gz";
-    sha256 = "0w7s3869ybwyq9a4490dikpib1qp3jnn5nqz1vvwqy1qz3ilnvh9";
+    sha256 = "1xp7nclmp8inp20968bvvfcwmz3mz03sbm0v3yjz8aqwlpqjfkci";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix
index c67a3c708b32..441ca2e5571c 100644
--- a/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://gstreamer.freedesktop.org";
     license = stdenv.lib.licenses.lgpl2Plus;
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 
   src = fetchurl {
diff --git a/pkgs/development/libraries/libaacs/default.nix b/pkgs/development/libraries/libaacs/default.nix
index fc27f3a2c6b5..ff184984f709 100644
--- a/pkgs/development/libraries/libaacs/default.nix
+++ b/pkgs/development/libraries/libaacs/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   name = "libaacs-${version}";
-  version  = "0.8.1";
+  version  = "0.9.0";
 
   src = fetchurl {
     url = "http://get.videolan.org/libaacs/${version}/${name}.tar.bz2";
-    sha256 = "1s5v075hnbs57995r6lljm79wgrip3gnyf55a0y7bja75jh49hwm";
+    sha256 = "1kms92i0c7i1yl659kqjf19lm8172pnpik5lsxp19xphr74vvq27";
   };
 
   buildInputs = [ libgcrypt libgpgerror ];
diff --git a/pkgs/development/libraries/libbluray/default.nix b/pkgs/development/libraries/libbluray/default.nix
index 8b67d52b875e..68ea7f777a2c 100644
--- a/pkgs/development/libraries/libbluray/default.nix
+++ b/pkgs/development/libraries/libbluray/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
                  ;
 
   meta = with stdenv.lib; {
-    homepage = http://www.videolan.org/developers/libbluray.html;
+    homepage = "http://www.videolan.org/developers/libbluray.html";
     description = "Library to access Blu-Ray disks for video playback";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/libraries/libextractor/default.nix b/pkgs/development/libraries/libextractor/default.nix
index 0f21180f691c..a6fb4ec515a8 100644
--- a/pkgs/development/libraries/libextractor/default.nix
+++ b/pkgs/development/libraries/libextractor/default.nix
@@ -7,11 +7,11 @@ assert gtkSupport -> glib != null && gtk3 != null;
 assert videoSupport -> ffmpeg != null && libmpeg2 != null;
 
 stdenv.mkDerivation rec {
-  name = "libextractor-1.3";
+  name = "libextractor-1.4";
 
   src = fetchurl {
     url = "mirror://gnu/libextractor/${name}.tar.gz";
-    sha256 = "0zvv7wd011npcx7yphw9bpgivyxz6mlp87a57n96nv85k96dd2l6";
+    sha256 = "0v7ns5jhsyp1wzvbaydfgxnva5zd63gkzm9djhckmam9liq824l4";
   };
 
   preConfigure =
diff --git a/pkgs/development/libraries/libfprint/default.nix b/pkgs/development/libraries/libfprint/default.nix
index aad6214f2d4f..42044f050f20 100644
--- a/pkgs/development/libraries/libfprint/default.nix
+++ b/pkgs/development/libraries/libfprint/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libusb, pixman, glib, nss, nspr, gdk_pixbuf }:
 
 stdenv.mkDerivation rec {
-  name = "libfprint-0.6.0";
+  name = "libfprint-0.7.0";
 
   src = fetchurl {
-    url = "http://people.freedesktop.org/~hadess/${name}.tar.xz";
-    sha256 = "1giwh2z63mn45galsjb59rhyrvgwcy01hvvp4g01iaa2snvzr0r5";
+    url = "https://people.freedesktop.org/~anarsoul/${name}.tar.xz";
+    sha256 = "1wzi12zvdp8sw3w5pfbd9cwz6c71627bkr88rxv6gifbyj6fwgl6";
   };
 
   buildInputs = [ libusb pixman glib nss nspr gdk_pixbuf ];
diff --git a/pkgs/development/libraries/libidn2/default.nix b/pkgs/development/libraries/libidn2/default.nix
index 61926dad24d1..e3e4e0007730 100644
--- a/pkgs/development/libraries/libidn2/default.nix
+++ b/pkgs/development/libraries/libidn2/default.nix
@@ -1,21 +1,21 @@
-{ fetchurl, stdenv, libiconv, libunistring, help2man }:
+{ fetchurl, stdenv, libiconv, libunistring, help2man, ronn }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "libidn2-${version}";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchurl {
     url = "mirror://gnu/gnu/libidn/${name}.tar.gz";
-    sha256 = "1azfhz8zj1c27a5k2cspnkzkyfhcsqx2yc2sygh720dbn8l2imlc";
+    sha256 = "1k88acdf242a6lbznr0h6f02frsqyqw4smw1nznibim5wyf18da3";
   };
 
   outputs = [ "bin" "dev" "out" "info" "devdoc" ];
 
   patches = optional stdenv.isDarwin ./fix-error-darwin.patch;
 
-  buildInputs = [ libunistring ]
+  buildInputs = [ libunistring ronn ]
     ++ optionals stdenv.isDarwin [ libiconv help2man ];
 
   meta = {
diff --git a/pkgs/development/libraries/libmediainfo/default.nix b/pkgs/development/libraries/libmediainfo/default.nix
index 09b829695c4c..cc6f5205d92a 100644
--- a/pkgs/development/libraries/libmediainfo/default.nix
+++ b/pkgs/development/libraries/libmediainfo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.95";
+  version = "0.7.97";
   name = "libmediainfo-${version}";
   src = fetchurl {
     url = "http://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz";
-    sha256 = "0snrcashc5c5gcwvfh7sl7z4h523d8vxbfin3gb6g81zv43d2b23";
+    sha256 = "0rpxxbszi7i4hspdzdif9inhlwxdkf0iggaim6682clqb6pv7sld";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/development/libraries/libressl/2.4.nix b/pkgs/development/libraries/libressl/2.4.nix
deleted file mode 100644
index c5642635b0f0..000000000000
--- a/pkgs/development/libraries/libressl/2.4.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  name = "libressl-${version}";
-  version = "2.4.5";
-
-  src = fetchurl {
-    url    = "mirror://openbsd/LibreSSL/${name}.tar.gz";
-    sha256 = "0is3zqjcxxncycq44m3if6s5hiq31kpq85pxdnpm3sdfb3iw806k";
-  };
-
-  enableParallelBuilding = true;
-
-  outputs = [ "bin" "dev" "out" "man" ];
-
-  meta = with stdenv.lib; {
-    description = "Free TLS/SSL implementation";
-    homepage    = "http://www.libressl.org";
-    platforms   = platforms.all;
-    maintainers = with maintainers; [ thoughtpolice wkennington fpletz globin ];
-  };
-}
diff --git a/pkgs/development/libraries/libressl/2.5.nix b/pkgs/development/libraries/libressl/2.5.nix
deleted file mode 100644
index 6ab072486553..000000000000
--- a/pkgs/development/libraries/libressl/2.5.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  name = "libressl-${version}";
-  version = "2.5.4";
-
-  src = fetchurl {
-    url    = "mirror://openbsd/LibreSSL/${name}.tar.gz";
-    sha256 = "1ykf6dqlbafafhbdfmcj19pjj1z6wmsq0rmyqga1i0xv5x95nyhh";
-  };
-
-  enableParallelBuilding = true;
-
-  outputs = [ "bin" "dev" "out" "man" ];
-
-  dontGzipMan = if stdenv.isDarwin then true else null; # not sure what's wrong
-
-  meta = with stdenv.lib; {
-    description = "Free TLS/SSL implementation";
-    homepage    = "http://www.libressl.org";
-    platforms   = platforms.all;
-    maintainers = with maintainers; [ thoughtpolice wkennington fpletz globin ];
-  };
-}
diff --git a/pkgs/development/libraries/libressl/default.nix b/pkgs/development/libraries/libressl/default.nix
new file mode 100644
index 000000000000..4ce1b664725a
--- /dev/null
+++ b/pkgs/development/libraries/libressl/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl }:
+
+let
+
+  generic = { version, sha256 }: stdenv.mkDerivation rec {
+    name = "libressl-${version}";
+    inherit version;
+
+    src = fetchurl {
+      url = "mirror://openbsd/LibreSSL/${name}.tar.gz";
+      inherit sha256;
+    };
+
+    enableParallelBuilding = true;
+
+    outputs = [ "bin" "dev" "out" "man" ];
+
+    dontGzipMan = if stdenv.isDarwin then true else null; # not sure what's wrong
+
+    meta = with stdenv.lib; {
+      description = "Free TLS/SSL implementation";
+      homepage    = "http://www.libressl.org";
+      platforms   = platforms.all;
+      maintainers = with maintainers; [ thoughtpolice wkennington fpletz globin ];
+    };
+  };
+
+in {
+
+  libressl_2_5 = generic {
+    version = "2.5.5";
+    sha256 = "1i77viqy1afvbr392npk9v54k9zhr9zq2vhv6pliza22b0ymwzz5";
+  };
+
+  libressl_2_6 = generic {
+    version = "2.6.0";
+    sha256 = "0lwapvfda4zj4r0kxn9ys43l5wyfgpljmhq0j1lr45spfis5b3g4";
+  };
+}
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index 9c11081843c7..805a4c0b63db 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -12,11 +12,11 @@ with stdenv.lib;
 # if you update, also bump pythonPackages.libvirt or it will break
 stdenv.mkDerivation rec {
   name = "libvirt-${version}";
-  version = "3.1.0";
+  version = "3.5.0";
 
   src = fetchurl {
     url = "http://libvirt.org/sources/${name}.tar.xz";
-    sha256 = "1a9j6yqfy7i5yv414wk6nv26a5bpfyyg0rpcps6ybi6a1yd04ybq";
+    sha256 = "05mm4xdw6g960rwvc9189nhxpm1vrilnmpl4h4m1lha11pivlqr9";
   };
 
   patches = [ ./build-on-bsd.patch ];
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
     "--with-virtualport"
     "--with-init-script=systemd+redhat"
     "--with-storage-disk"
+  ] ++ optionals (stdenv.isLinux && zfs != null) [
     "--with-storage-zfs"
   ] ++ optionals stdenv.isDarwin [
     "--with-init-script=none"
diff --git a/pkgs/development/libraries/libzen/default.nix b/pkgs/development/libraries/libzen/default.nix
index 5bb3f79f790e..ab473bbe85c1 100644
--- a/pkgs/development/libraries/libzen/default.nix
+++ b/pkgs/development/libraries/libzen/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.34";
+  version = "0.4.35";
   name = "libzen-${version}";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/libzen/${version}/libzen_${version}.tar.bz2";
-    sha256 = "02krmhl6dplidz6h251ajpzzdhzzm0hp0lwwv9rgn55xjgh4yxw3";
+    sha256 = "12a1icgcffgv503ii2k1453kxg5hfly09mf4zjcc80aq8a6rf8by";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/libraries/linenoise-ng/default.nix b/pkgs/development/libraries/linenoise-ng/default.nix
new file mode 100644
index 000000000000..b3333d58242e
--- /dev/null
+++ b/pkgs/development/libraries/linenoise-ng/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  name = "linenoise-ng-${version}";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "arangodb";
+    repo = "linenoise-ng";
+    rev = "v${version}";
+    sha256 = "176iz0kj0p8d8i3jqps4z8xkxwl3f1986q88i9xg5fvqgpzsxp20";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = {
+    homepage = "https://github.com/arangodb/linenoise-ng";
+    description = "A small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters";
+    maintainers = with stdenv.lib.maintainers; [ cstrahan ];
+    platforms = stdenv.lib.platforms.all;
+    license = stdenv.lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/libraries/opencv/3.x.nix b/pkgs/development/libraries/opencv/3.x.nix
index 85b4d5627201..0443d00a258d 100644
--- a/pkgs/development/libraries/opencv/3.x.nix
+++ b/pkgs/development/libraries/opencv/3.x.nix
@@ -90,9 +90,14 @@ stdenv.mkDerivation rec {
       done
     '');
 
-  # This prevents cmake from using libraries in impure paths (which causes build failure on non NixOS)
+  # This prevents cmake from using libraries in impure paths (which
+  # causes build failure on non NixOS)
+  # Also, work around https://github.com/NixOS/nixpkgs/issues/26304 with
+  # what appears to be some stray headers in dnn/misc/tensorflow
+  # in contrib when generating the Python bindings:
   postPatch = ''
     sed -i '/Add these standard paths to the search paths for FIND_LIBRARY/,/^\s*$/{d}' CMakeLists.txt
+    sed -i -e 's|if len(decls) == 0:|if len(decls) == 0 or "opencv2/" not in hdr:|' ./modules/python/src2/gen2.py
   '';
 
   preConfigure =
diff --git a/pkgs/development/libraries/rocksdb/default.nix b/pkgs/development/libraries/rocksdb/default.nix
index 25aeb3a6da1b..a791c8994856 100644
--- a/pkgs/development/libraries/rocksdb/default.nix
+++ b/pkgs/development/libraries/rocksdb/default.nix
@@ -6,6 +6,8 @@
 
 # Malloc implementation
 , jemalloc ? null, gperftools ? null
+
+, enableLite ? false
 }:
 
 let
@@ -35,6 +37,9 @@ stdenv.mkDerivation rec {
   CMAKE_CXX_FLAGS = "-std=gnu++11";
   JEMALLOC_LIB = stdenv.lib.optionalString (malloc == jemalloc) "-ljemalloc";
 
+  ${if enableLite then "LIBNAME" else null} = "librocksdb_lite";
+  ${if enableLite then "CXXFLAGS" else null} = "-DROCKSDB_LITE=1";
+
   buildFlags = [
     "DEBUG_LEVEL=0"
     "shared_lib"
diff --git a/pkgs/development/libraries/science/math/ipopt/default.nix b/pkgs/development/libraries/science/math/ipopt/default.nix
index 5e16fcb1b547..9b9f8104c95f 100644
--- a/pkgs/development/libraries/science/math/ipopt/default.nix
+++ b/pkgs/development/libraries/science/math/ipopt/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "ipopt-${version}";
-  version = "3.12.6";
+  version = "3.12.8";
 
   src = fetchurl {
     url = "http://www.coin-or.org/download/source/Ipopt/Ipopt-${version}.zip";
-    sha256 = "0lx09h1757s5jppwnxwblcjk0biqjxy7yaf3z4vfqbl4rl93avs0";
+    sha256 = "1lyhgashyk2wswv0z2qnkxng32pim80kzf9jfgxi07wl09x753w1";
   };
 
   CXXDEFS = [ "-DHAVE_RAND" "-DHAVE_CSTRING" "-DHAVE_CSTDIO" ];
diff --git a/pkgs/development/libraries/ti-rpc/default.nix b/pkgs/development/libraries/ti-rpc/default.nix
index 7a58f4c8cff0..7bff890eb0ba 100644
--- a/pkgs/development/libraries/ti-rpc/default.nix
+++ b/pkgs/development/libraries/ti-rpc/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, autoreconfHook, libkrb5 }:
 
 stdenv.mkDerivation rec {
-  name = "libtirpc-1.0.1";
+  name = "libtirpc-1.0.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/libtirpc/${name}.tar.bz2";
-    sha256 = "17mqrdgsgp9m92pmq7bvr119svdg753prqqxmg4cnz5y657rfmji";
+    sha256 = "1xchbxy0xql7yl7z4n1icj8r7dmly46i22fvm00vdjq64zlmqg3j";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/development/libraries/vc/default.nix b/pkgs/development/libraries/vc/default.nix
index c37ff7331118..6bf4ab9bdab9 100644
--- a/pkgs/development/libraries/vc/default.nix
+++ b/pkgs/development/libraries/vc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "Vc-${version}";
-  version = "1.3.0";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "VcDevel";
     repo = "Vc";
     rev = version;
-    sha256 = "18vi92xxg0ly0fw4v06fwls11rahmg5z8xf65jxxrbgf37vc1wxi";
+    sha256 = "119sm0kldr5j163ff04fra35420cvpj040hs7n0mnfbcgyx4nxq9";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/zeromq/4.x.nix b/pkgs/development/libraries/zeromq/4.x.nix
index 4352e7f05c29..a797960b2f03 100644
--- a/pkgs/development/libraries/zeromq/4.x.nix
+++ b/pkgs/development/libraries/zeromq/4.x.nix
@@ -1,16 +1,23 @@
-{ stdenv, fetchurl, libuuid, pkgconfig, libsodium }:
+{ stdenv, fetchFromGitHub, cmake, asciidoc }:
 
 stdenv.mkDerivation rec {
   name = "zeromq-${version}";
   version = "4.2.2";
 
-  src = fetchurl {
-    url = "https://github.com/zeromq/libzmq/releases/download/v${version}/${name}.tar.gz";
-    sha256 = "0syzwsiqblimfjb32fr6hswhdvp3cmbk0pgm7ayxaigmkv5g88sv";
+  src = fetchFromGitHub {
+    owner = "zeromq";
+    repo = "libzmq";
+    rev = "v${version}";
+    sha256 = "09317g4zkalp3k11x6vbidcm4qf02ciml1wxgp3742lrlgcblgxy";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libuuid libsodium ];
+  nativeBuildInputs = [ cmake asciidoc ];
+
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    sed -i 's,''${PACKAGE_PREFIX_DIR}/,,g' ZeroMQConfig.cmake.in
+  '';
 
   meta = with stdenv.lib; {
     branch = "4";