From 48d2e61a94dadce25aacd58d169c7c7fd4bc47bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Mancilla?= Date: Wed, 28 Aug 2024 19:42:14 -0400 Subject: [PATCH 1/4] zeromq: modernize --- pkgs/development/libraries/zeromq/4.x.nix | 44 +++++++++++++---------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/pkgs/development/libraries/zeromq/4.x.nix b/pkgs/development/libraries/zeromq/4.x.nix index d8509c8fc3f4..be4bf7575868 100644 --- a/pkgs/development/libraries/zeromq/4.x.nix +++ b/pkgs/development/libraries/zeromq/4.x.nix @@ -1,30 +1,38 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, asciidoc -, pkg-config -, libsodium -, enableDrafts ? false +{ + lib, + stdenv, + fetchFromGitHub, + cmake, + pkg-config, + libsodium, + asciidoc, + enableDrafts ? false, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "zeromq"; version = "4.3.5"; src = fetchFromGitHub { owner = "zeromq"; repo = "libzmq"; - rev = "v${version}"; - sha256 = "sha256-q2h5y0Asad+fGB9haO4Vg7a1ffO2JSb7czzlhmT3VmI="; + rev = "v${finalAttrs.version}"; + hash = "sha256-q2h5y0Asad+fGB9haO4Vg7a1ffO2JSb7czzlhmT3VmI="; }; - nativeBuildInputs = [ cmake asciidoc pkg-config ]; + nativeBuildInputs = [ + cmake + pkg-config + asciidoc + ]; + buildInputs = [ libsodium ]; doCheck = false; # fails all the tests (ctest) - cmakeFlags = lib.optional enableDrafts "-DENABLE_DRAFTS=ON"; + cmakeFlags = [ + (lib.cmakeBool "ENABLE_DRAFTS" enableDrafts) + ]; postPatch = '' substituteInPlace CMakeLists.txt \ @@ -32,12 +40,12 @@ stdenv.mkDerivation rec { --replace '$'{prefix}/'$'{CMAKE_INSTALL_INCLUDEDIR} '$'{CMAKE_INSTALL_FULL_INCLUDEDIR} ''; - meta = with lib; { + meta = { branch = "4"; homepage = "http://www.zeromq.org"; description = "Intelligent Transport Layer"; - license = licenses.mpl20; - platforms = platforms.all; - maintainers = with maintainers; [ fpletz ]; + license = lib.licenses.mpl20; + platforms = lib.platforms.all; + maintainers = with lib.maintainers; [ fpletz ]; }; -} +}) From 774ed19961843d91316b9020e925e390b3caeeef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Mancilla?= Date: Wed, 28 Aug 2024 19:43:23 -0400 Subject: [PATCH 2/4] zeromq: create and install man pages --- pkgs/development/libraries/zeromq/4.x.nix | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pkgs/development/libraries/zeromq/4.x.nix b/pkgs/development/libraries/zeromq/4.x.nix index be4bf7575868..3c3933e400c5 100644 --- a/pkgs/development/libraries/zeromq/4.x.nix +++ b/pkgs/development/libraries/zeromq/4.x.nix @@ -6,6 +6,7 @@ pkg-config, libsodium, asciidoc, + xmlto, enableDrafts ? false, }: @@ -24,6 +25,7 @@ stdenv.mkDerivation (finalAttrs: { cmake pkg-config asciidoc + xmlto ]; buildInputs = [ libsodium ]; @@ -40,6 +42,29 @@ stdenv.mkDerivation (finalAttrs: { --replace '$'{prefix}/'$'{CMAKE_INSTALL_INCLUDEDIR} '$'{CMAKE_INSTALL_FULL_INCLUDEDIR} ''; + postBuild = '' + # From https://gitlab.archlinux.org/archlinux/packaging/packages/zeromq/-/blob/main/PKGBUILD + # man pages aren't created when using cmake + # https://github.com/zeromq/libzmq/issues/4160 + pushd ../doc + for FILE in *.txt; do + asciidoc \ + -d manpage \ + -b docbook \ + -f asciidoc.conf \ + -a zmq_version="${finalAttrs.version}" \ + "''${FILE}" + xmlto --skip-validation man "''${FILE%.txt}.xml" + done + popd + ''; + + postInstall = '' + # Install manually created man pages + install -vDm644 -t "$out/share/man/man3" ../doc/*.3 + install -vDm644 -t "$out/share/man/man7" ../doc/*.7 + ''; + meta = { branch = "4"; homepage = "http://www.zeromq.org"; From a0eb45841d2b9fb312968a5a8f31be3c7e43c55e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Mancilla?= Date: Sun, 1 Sep 2024 21:11:17 -0400 Subject: [PATCH 3/4] zeromq: add passthru.tests --- pkgs/development/libraries/zeromq/4.x.nix | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pkgs/development/libraries/zeromq/4.x.nix b/pkgs/development/libraries/zeromq/4.x.nix index 3c3933e400c5..c5738c77a08a 100644 --- a/pkgs/development/libraries/zeromq/4.x.nix +++ b/pkgs/development/libraries/zeromq/4.x.nix @@ -8,6 +8,13 @@ asciidoc, xmlto, enableDrafts ? false, + # for passthru.tests + azmq, + cppzmq, + czmq, + zmqpp, + ffmpeg, + python3, }: stdenv.mkDerivation (finalAttrs: { @@ -65,6 +72,17 @@ stdenv.mkDerivation (finalAttrs: { install -vDm644 -t "$out/share/man/man7" ../doc/*.7 ''; + passthru.tests = { + inherit + azmq + cppzmq + czmq + zmqpp + ; + pyzmq = python3.pkgs.pyzmq; + ffmpeg = ffmpeg.override { withZmq = true; }; + }; + meta = { branch = "4"; homepage = "http://www.zeromq.org"; From e597af558361ee4a917eb1ad4b2809204ca244f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Mancilla?= Date: Wed, 28 Aug 2024 19:43:53 -0400 Subject: [PATCH 4/4] zeromq: enable curve support --- pkgs/development/libraries/zeromq/4.x.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/libraries/zeromq/4.x.nix b/pkgs/development/libraries/zeromq/4.x.nix index c5738c77a08a..6801eddc178f 100644 --- a/pkgs/development/libraries/zeromq/4.x.nix +++ b/pkgs/development/libraries/zeromq/4.x.nix @@ -40,6 +40,8 @@ stdenv.mkDerivation (finalAttrs: { doCheck = false; # fails all the tests (ctest) cmakeFlags = [ + (lib.cmakeBool "WITH_LIBSODIUM" true) + (lib.cmakeBool "ENABLE_CURVE" true) (lib.cmakeBool "ENABLE_DRAFTS" enableDrafts) ];