From 98fd1b90d233be35529601ea7a64a3328efa62ed Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 13 Apr 2026 18:13:23 +0000 Subject: [PATCH 1/6] python3Packages.cramjam: 2.11.0.post1 -> 2.12.0 Diff: https://github.com/milesgranger/cramjam/compare/v2.11.0.post1...v2.12.0 Changelog: https://github.com/milesgranger/cramjam/releases/tag/v2.12.0 --- .../python-modules/cramjam/default.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/cramjam/default.nix b/pkgs/development/python-modules/cramjam/default.nix index c6bf9311cc24..cd35c8fee54e 100644 --- a/pkgs/development/python-modules/cramjam/default.nix +++ b/pkgs/development/python-modules/cramjam/default.nix @@ -11,21 +11,21 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "cramjam"; - version = "2.11.0.post1"; + version = "2.12.0"; pyproject = true; src = fetchFromGitHub { owner = "milesgranger"; repo = "cramjam"; - tag = "v${version}"; - hash = "sha256-iYx/cPQpZVVPAH+HTiYH/E9tmdnHvKf3Cel4yZpXSIA="; + tag = "v${finalAttrs.version}"; + hash = "sha256-vGT57ou9nnCVCw8LR+w+5MV54EqwT2R+ww9acRQk8Lc="; }; cargoDeps = rustPlatform.fetchCargoVendor { - inherit pname src version; - hash = "sha256-jLGCyrVHtauWhiDghtYgt5MhgOl8wNiM7TAQhrCk2xU="; + inherit (finalAttrs) pname src version; + hash = "sha256-evXYLbv+GwSBUJBb0upjQTFtMPdQbKka8KfJltMUmDs="; }; nativeBuildInputs = with rustPlatform; [ @@ -61,8 +61,8 @@ buildPythonPackage rec { meta = { description = "Thin Python bindings to de/compression algorithms in Rust"; homepage = "https://github.com/milesgranger/pyrus-cramjam"; - changelog = "https://github.com/milesgranger/cramjam/releases/tag/v${version}"; + changelog = "https://github.com/milesgranger/cramjam/releases/tag/${finalAttrs.src.tag}"; license = with lib.licenses; [ mit ]; maintainers = with lib.maintainers; [ veprbl ]; }; -} +}) From 5486f98e62953d5a5649b7672f1074bf7cde1683 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Mon, 13 Apr 2026 18:46:44 +0000 Subject: [PATCH 2/6] python3Packages.celery: 5.6.2 -> 5.6.3 Diff: https://github.com/celery/celery/compare/v5.6.2...v5.6.3 Changelog: https://github.com/celery/celery/blob/v5.6.3/Changelog.rst --- pkgs/development/python-modules/celery/default.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/development/python-modules/celery/default.nix b/pkgs/development/python-modules/celery/default.nix index d44dadbff007..2d76c8c237c3 100644 --- a/pkgs/development/python-modules/celery/default.nix +++ b/pkgs/development/python-modules/celery/default.nix @@ -51,16 +51,16 @@ withAmqpRepl ? false, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "celery"; - version = "5.6.2"; + version = "5.6.3"; pyproject = true; src = fetchFromGitHub { owner = "celery"; repo = "celery"; - tag = "v${version}"; - hash = "sha256-S84hLGwVVgxnUB6wnqU58tN56t/tQ79ZUni/iP5sx94="; + tag = "v${finalAttrs.version}"; + hash = "sha256-5YPM8/AnCSjeDDMQ30kTNjPr6QdlUiqzzBadtmjqoNg="; }; patches = lib.optionals (!withAmqpRepl) [ @@ -157,7 +157,7 @@ buildPythonPackage rec { pytest-xdist pytestCheckHook ] - ++ lib.concatAttrValues optional-dependencies; + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; disabledTestPaths = [ # test_eventlet touches network @@ -212,9 +212,9 @@ buildPythonPackage rec { meta = { description = "Distributed task queue"; homepage = "https://github.com/celery/celery/"; - changelog = "https://github.com/celery/celery/blob/${src.tag}/Changelog.rst"; + changelog = "https://github.com/celery/celery/blob/${finalAttrs.src.tag}/Changelog.rst"; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ fab ]; mainProgram = "celery"; }; -} +}) From 785a28de174bc9b33b5a723a7a2507e077550e6e Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Tue, 14 Apr 2026 23:29:20 +0000 Subject: [PATCH 3/6] python3Packages.pyshark: cleanup --- .../python-modules/pyshark/default.nix | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/pkgs/development/python-modules/pyshark/default.nix b/pkgs/development/python-modules/pyshark/default.nix index edc5bd5c7060..c27919024943 100644 --- a/pkgs/development/python-modules/pyshark/default.nix +++ b/pkgs/development/python-modules/pyshark/default.nix @@ -1,20 +1,29 @@ { lib, stdenv, - appdirs, buildPythonPackage, fetchFromGitHub, + + # patches fetchpatch, + replaceVars, + wireshark-cli, + + # build-system + setuptools, + + # dependencies + appdirs, lxml, packaging, - pytestCheckHook, - replaceVars, - setuptools, termcolor, - wireshark-cli, + + # tests + pytestCheckHook, + writableTmpDirAsHomeHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pyshark"; version = "0.6"; pyproject = true; @@ -22,7 +31,7 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "KimiNewt"; repo = "pyshark"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-kzJDzUK6zknUyXPdKc4zMvWim4C5NQCSJSS45HI6hKM="; }; @@ -46,7 +55,7 @@ buildPythonPackage rec { }) ]; - sourceRoot = "${src.name}/src"; + sourceRoot = "${finalAttrs.src.name}/src"; build-system = [ setuptools ]; @@ -59,12 +68,9 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook + writableTmpDirAsHomeHook ]; - preCheck = '' - export HOME=$(mktemp -d) - ''; - disabledTests = [ # flaky # KeyError: 'Packet of index 0 does not exist in capture' @@ -83,8 +89,8 @@ buildPythonPackage rec { meta = { description = "Python wrapper for tshark, allowing Python packet parsing using Wireshark dissectors"; homepage = "https://github.com/KimiNewt/pyshark/"; - changelog = "https://github.com/KimiNewt/pyshark/releases/tag/${version}"; + changelog = "https://github.com/KimiNewt/pyshark/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = [ ]; }; -} +}) From 194010e6cb1fdac0ae2054ffb9d5f0208bc88c10 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Tue, 14 Apr 2026 23:31:49 +0000 Subject: [PATCH 4/6] python3Packages.pyshark: disable on python>=3.14 --- pkgs/development/python-modules/pyshark/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/python-modules/pyshark/default.nix b/pkgs/development/python-modules/pyshark/default.nix index c27919024943..64db47763f55 100644 --- a/pkgs/development/python-modules/pyshark/default.nix +++ b/pkgs/development/python-modules/pyshark/default.nix @@ -2,6 +2,7 @@ lib, stdenv, buildPythonPackage, + pythonAtLeast, fetchFromGitHub, # patches @@ -28,6 +29,10 @@ buildPythonPackage (finalAttrs: { version = "0.6"; pyproject = true; + # Almost all tests fail with: + # RuntimeError: There is no current event loop in thread 'MainThread' + disabled = pythonAtLeast "3.14"; + src = fetchFromGitHub { owner = "KimiNewt"; repo = "pyshark"; From f337673a0199366b1ea1ce74fd82c334895bb6c7 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Tue, 14 Apr 2026 23:36:45 +0000 Subject: [PATCH 5/6] libpulsar: 3.7.2 -> 4.1.0, move to by-name, cleanup Diff: https://github.com/apache/pulsar-client-cpp/compare/v3.7.2...v4.1.0 Changelog: https://github.com/apache/pulsar-client-cpp/releases/tag/v4.1.0 --- .../li/libpulsar/package.nix} | 55 ++++++++++++------- pkgs/top-level/all-packages.nix | 4 -- 2 files changed, 35 insertions(+), 24 deletions(-) rename pkgs/{development/libraries/libpulsar/default.nix => by-name/li/libpulsar/package.nix} (78%) diff --git a/pkgs/development/libraries/libpulsar/default.nix b/pkgs/by-name/li/libpulsar/package.nix similarity index 78% rename from pkgs/development/libraries/libpulsar/default.nix rename to pkgs/by-name/li/libpulsar/package.nix index 93880415725f..40426343b9aa 100644 --- a/pkgs/development/libraries/libpulsar/default.nix +++ b/pkgs/by-name/li/libpulsar/package.nix @@ -1,38 +1,43 @@ { lib, - asioSupport ? true, + stdenv, + fetchFromGitHub, + asio_1_32_0, boost, boost186, - log4cxxSupport ? false, log4cxx, - snappySupport ? false, snappy, - zlibSupport ? true, zlib, - zstdSupport ? true, zstd, gtest, - gtestSupport ? false, cmake, curl, - fetchFromGitHub, - protobuf, + protobuf_21, jsoncpp, openssl, pkg-config, - stdenv, + + asioSupport ? true, + log4cxxSupport ? false, + snappySupport ? false, + zlibSupport ? true, + zstdSupport ? true, + gtestSupport ? false, }: +let + protobuf = protobuf_21; +in stdenv.mkDerivation (finalAttrs: { pname = "libpulsar"; - version = "3.7.2"; + version = "4.1.0"; src = fetchFromGitHub { owner = "apache"; repo = "pulsar-client-cpp"; - rev = "v${finalAttrs.version}"; - hash = "sha256-3kUyimyv0Si3zUFaIsIVdulzH8l2fxe6BO9a5L6n8I8="; + tag = "v${finalAttrs.version}"; + hash = "sha256-+gGddndiRot2kW7KGuKfWA85mh8e+9PetnEBQvfZB1I="; }; nativeBuildInputs = [ @@ -40,18 +45,28 @@ stdenv.mkDerivation (finalAttrs: { pkg-config protobuf # protoc ] - ++ lib.optional gtestSupport gtest.dev; + ++ lib.optionals gtestSupport [ + (lib.getDev gtest) + ]; buildInputs = [ + curl jsoncpp openssl - curl protobuf ] - ++ lib.optional snappySupport snappy.dev - ++ lib.optional zlibSupport zlib - ++ lib.optional zstdSupport zstd - ++ lib.optional log4cxxSupport log4cxx + ++ lib.optionals snappySupport [ + (lib.getDev snappy) + ] + ++ lib.optionals zlibSupport [ + zlib + ] + ++ lib.optionals zstdSupport [ + zstd + ] + ++ lib.optionals log4cxxSupport [ + log4cxx + ] ++ lib.optionals asioSupport [ # io_service was removed in 1.33.0 asio_1_32_0 @@ -85,9 +100,9 @@ stdenv.mkDerivation (finalAttrs: { ''; meta = { - homepage = "https://pulsar.apache.org/docs/next/client-libraries-cpp/"; description = "Apache Pulsar C++ library"; - changelog = "https://github.com/apache/pulsar-client-cpp/releases/tag/v${finalAttrs.version}"; + homepage = "https://pulsar.apache.org/docs/next/client-libraries-cpp/"; + changelog = "https://github.com/apache/pulsar-client-cpp/releases/tag/${finalAttrs.src.tag}"; platforms = lib.platforms.all; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ corbanr ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8ff417d307aa..41c691b58039 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6761,10 +6761,6 @@ with pkgs; libprom ; - libpulsar = callPackage ../development/libraries/libpulsar { - protobuf = protobuf_21; - }; - libsigcxx = callPackage ../development/libraries/libsigcxx { }; libsigcxx30 = callPackage ../development/libraries/libsigcxx/3.0.nix { }; From 02d1c9ad58d56732a5ae2412981aca62ac4777fa Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Tue, 14 Apr 2026 23:46:41 +0000 Subject: [PATCH 6/6] python3Packages.pulsar-client: 3.9.0 -> 3.10.0 Diff: https://github.com/apache/pulsar-client-python/compare/v3.9.0...v3.10.0 Changelog: https://github.com/apache/pulsar-client-python/releases/tag/v3.10.0 --- .../python-modules/pulsar-client/default.nix | 28 +++++++++++-------- .../pulsar-client/fix-libpulsar-4.patch | 23 +++++++++++++++ 2 files changed, 40 insertions(+), 11 deletions(-) create mode 100644 pkgs/development/python-modules/pulsar-client/fix-libpulsar-4.patch diff --git a/pkgs/development/python-modules/pulsar-client/default.nix b/pkgs/development/python-modules/pulsar-client/default.nix index cfe1cfa6b322..cc79373e4e85 100644 --- a/pkgs/development/python-modules/pulsar-client/default.nix +++ b/pkgs/development/python-modules/pulsar-client/default.nix @@ -3,8 +3,10 @@ buildPythonPackage, fetchFromGitHub, - # build + # build-system setuptools, + + # nativeBuildInputs cmake, pkg-config, @@ -13,29 +15,34 @@ pybind11, certifi, - # optional dependencies + # optional-dependencies fastavro, grpcio, prometheus-client, protobuf, ratelimit, - # test + # tests unittestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pulsar-client"; - version = "3.9.0"; + version = "3.10.0"; pyproject = true; src = fetchFromGitHub { owner = "apache"; repo = "pulsar-client-python"; - tag = "v${version}"; - hash = "sha256-TxX+om+uKjZlgG10qcLAddiUisBWLxBfBSHEHGix1d4="; + tag = "v${finalAttrs.version}"; + hash = "sha256-ZmuZskkviHantE5vOJd0Di8aqu086G36TQJoEFW2VaY="; }; + patches = [ + # Remove TLS bindings removed in libpulsar 4.x + ./fix-libpulsar-4.patch + ]; + build-system = [ setuptools ]; @@ -67,13 +74,12 @@ buildPythonPackage rec { ratelimit ]; avro = [ fastavro ]; - all = lib.concatAttrValues (lib.removeAttrs optional-dependencies [ "all" ]); }; nativeCheckInputs = [ unittestCheckHook ] - ++ optional-dependencies.all; + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; unittestFlagsArray = [ "-s" @@ -87,8 +93,8 @@ buildPythonPackage rec { meta = { description = "Apache Pulsar Python client library"; homepage = "https://pulsar.apache.org/docs/next/client-libraries-python/"; - changelog = "https://github.com/apache/pulsar-client-python/releases/tag/${src.tag}"; + changelog = "https://github.com/apache/pulsar-client-python/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.asl20; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/pulsar-client/fix-libpulsar-4.patch b/pkgs/development/python-modules/pulsar-client/fix-libpulsar-4.patch new file mode 100644 index 000000000000..dfa55fb64dc8 --- /dev/null +++ b/pkgs/development/python-modules/pulsar-client/fix-libpulsar-4.patch @@ -0,0 +1,23 @@ +Remove TLS bindings that were removed in libpulsar 4.x. + +isUseTls/setUseTls were removed because TLS is now inferred from the +service URL scheme. getTlsTrustCertsFilePath getter was also removed. + +This matches upstream's fix in v3.11.0-candidate-1. + +--- a/src/config.cc ++++ b/src/config.cc +@@ -174,11 +174,8 @@ void export_config(module_& m) { + .def("stats_interval_in_seconds", &ClientConfiguration::getStatsIntervalInSeconds) + .def("stats_interval_in_seconds", &ClientConfiguration::setStatsIntervalInSeconds, + return_value_policy::reference) +- .def("use_tls", &ClientConfiguration::isUseTls) +- .def("use_tls", &ClientConfiguration::setUseTls, return_value_policy::reference) +- .def("tls_trust_certs_file_path", &ClientConfiguration::getTlsTrustCertsFilePath, +- return_value_policy::copy) +- .def("tls_trust_certs_file_path", &ClientConfiguration::setTlsTrustCertsFilePath, ++ .def("tls_trust_certs_file_path", ++ &ClientConfiguration::setTlsTrustCertsFilePath, + return_value_policy::reference) + .def("tls_private_key_file_path", &ClientConfiguration::getTlsPrivateKeyFilePath, + return_value_policy::copy)