From e578418f693389e9e43e48f91fa1297ba58adf4c Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Fri, 26 Dec 2025 12:12:36 +0100 Subject: [PATCH 1/4] python3Packages.pyaskalono: init at 0.2.0 Needed to bump Weblate. https://github.com/kumekay/pyaskalono --- .../python-modules/pyaskalono/default.nix | 45 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 4 ++ 2 files changed, 49 insertions(+) create mode 100644 pkgs/development/python-modules/pyaskalono/default.nix diff --git a/pkgs/development/python-modules/pyaskalono/default.nix b/pkgs/development/python-modules/pyaskalono/default.nix new file mode 100644 index 000000000000..4107badf2fc2 --- /dev/null +++ b/pkgs/development/python-modules/pyaskalono/default.nix @@ -0,0 +1,45 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, + rustPlatform, + nix-update-script, +}: + +buildPythonPackage rec { + pname = "pyaskalono"; + version = "0.2.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "kumekay"; + repo = "pyaskalono"; + tag = "v${version}"; + hash = "sha256-gNQCtubPs8XjE+ZTuTTzZGkxOhK3/Fv3lDLparaUdaQ="; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit pname version src; + hash = "sha256-rQP6So9tG/9cjB588v+6lp2h+0SjaiWPhKrSXgDYugE="; + }; + + nativeBuildInputs = [ + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "askalono" ]; + + meta = { + description = "Python wrapper for askalono"; + homepage = "https://github.com/kumekay/pyaskalono/"; + changelog = "https://github.com/kumekay/pyaskalono/releases/tag/v${version}"; + license = [ lib.licenses.asl20 ]; + maintainers = with lib.maintainers; [ erictapen ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 981127be3815..8fd06e1cb821 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -12941,6 +12941,8 @@ self: super: with self; { pyarrow-hotfix = callPackage ../development/python-modules/pyarrow-hotfix { }; + pyaskalono = callPackage ../development/python-modules/pyaskalono { }; + pyasn = callPackage ../development/python-modules/pyasn { }; pyasn1 = callPackage ../development/python-modules/pyasn1 { }; @@ -19969,6 +19971,8 @@ self: super: with self; { unicode-rbnf = callPackage ../development/python-modules/unicode-rbnf { }; + unicode-segmentation-rs = callPackage ../development/python-modules/unicode-segmentation-rs { }; + unicodecsv = callPackage ../development/python-modules/unicodecsv { }; unicodedata2 = callPackage ../development/python-modules/unicodedata2 { }; From d1909c63c3ff39a68321bd2c1de5b9874ea9708c Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Fri, 26 Dec 2025 12:13:06 +0100 Subject: [PATCH 2/4] python3Packages.unicode-segmentation-rs: init at 0.2.1 Needed to bump `translate-toolkit` (bump which is needed to bump Weblate). --- .../unicode-segmentation-rs/Cargo.lock | 218 ++++++++++++++++++ .../unicode-segmentation-rs/default.nix | 54 +++++ 2 files changed, 272 insertions(+) create mode 100644 pkgs/development/python-modules/unicode-segmentation-rs/Cargo.lock create mode 100644 pkgs/development/python-modules/unicode-segmentation-rs/default.nix diff --git a/pkgs/development/python-modules/unicode-segmentation-rs/Cargo.lock b/pkgs/development/python-modules/unicode-segmentation-rs/Cargo.lock new file mode 100644 index 000000000000..49dd1e60262e --- /dev/null +++ b/pkgs/development/python-modules/unicode-segmentation-rs/Cargo.lock @@ -0,0 +1,218 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "cc" +version = "1.2.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203" +dependencies = [ + "find-msvc-tools", + "shlex", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "indoc" +version = "2.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] + +[[package]] +name = "libc" +version = "0.2.178" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "portable-atomic" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f59e70c4aef1e55797c2e8fd94a4f2a973fc972cfde0e0b05f683667b0cd39dd" + +[[package]] +name = "proc-macro2" +version = "1.0.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "pyo3" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d" +dependencies = [ + "indoc", + "libc", + "memoffset", + "once_cell", + "portable-atomic", + "pyo3-build-config", + "pyo3-ffi", + "pyo3-macros", + "unindent", +] + +[[package]] +name = "pyo3-build-config" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6" +dependencies = [ + "python3-dll-a", + "target-lexicon", +] + +[[package]] +name = "pyo3-ffi" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089" +dependencies = [ + "libc", + "pyo3-build-config", +] + +[[package]] +name = "pyo3-macros" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02" +dependencies = [ + "proc-macro2", + "pyo3-macros-backend", + "quote", + "syn", +] + +[[package]] +name = "pyo3-macros-backend" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9" +dependencies = [ + "heck", + "proc-macro2", + "pyo3-build-config", + "quote", + "syn", +] + +[[package]] +name = "python3-dll-a" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d381ef313ae70b4da5f95f8a4de773c6aa5cd28f73adec4b4a31df70b66780d8" +dependencies = [ + "cc", +] + +[[package]] +name = "quote" +version = "1.0.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "syn" +version = "2.0.111" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "target-lexicon" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1dd07eb858a2067e2f3c7155d54e929265c264e6f37efe3ee7a8d1b5a1dd0ba" + +[[package]] +name = "unicode-ident" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-segmentation-rs" +version = "0.2.1" +dependencies = [ + "pyo3", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + +[[package]] +name = "unindent" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3" diff --git a/pkgs/development/python-modules/unicode-segmentation-rs/default.nix b/pkgs/development/python-modules/unicode-segmentation-rs/default.nix new file mode 100644 index 000000000000..5e1d24790253 --- /dev/null +++ b/pkgs/development/python-modules/unicode-segmentation-rs/default.nix @@ -0,0 +1,54 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pytestCheckHook, + rustPlatform, + nix-update-script, +}: + +buildPythonPackage rec { + pname = "unicode-segmentation-rs"; + version = "0.2.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "WeblateOrg"; + repo = "unicode-segmentation-rs"; + tag = "v${version}"; + hash = "sha256-PquKaJlo7h8TOR4iq2GrV/oz1NXmalhFR59Duvk4yoU="; + }; + + postPatch = '' + ln -s '${./Cargo.lock}' Cargo.lock + ''; + + cargoDeps = rustPlatform.importCargoLock { + lockFile = ./Cargo.lock; + }; + + nativeBuildInputs = [ + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "unicode_segmentation_rs" ]; + + passthru.updateScript = nix-update-script { + extraArgs = [ + "--generate-lockfile" + ]; + }; + + meta = { + description = "Python bindings for the Rust unicode-segmentation and unicode-width crates"; + homepage = "https://github.com/WeblateOrg/unicode-segmentation-rs/"; + changelog = "https://github.com/WeblateOrg/unicode-segmentation-rs/releases/tag/${src.tag}"; + license = [ lib.licenses.mit ]; + maintainers = with lib.maintainers; [ erictapen ]; + }; +} From 969b4c2320233f5c363160f440e625e2d0a2a770 Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Fri, 26 Dec 2025 12:13:36 +0100 Subject: [PATCH 3/4] python3Packages.translate-toolkit: 3.16.1 -> 3.17.5 Changes: https://github.com/translate/translate/releases/tag/3.16.2 https://github.com/translate/translate/releases/tag/3.16.3 https://github.com/translate/translate/releases/tag/3.17.0 https://github.com/translate/translate/releases/tag/3.17.1 https://github.com/translate/translate/releases/tag/3.17.2 https://github.com/translate/translate/releases/tag/3.17.3 https://github.com/translate/translate/releases/tag/3.17.4 https://github.com/translate/translate/releases/tag/3.17.5 --- .../python-modules/translate-toolkit/default.nix | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/translate-toolkit/default.nix b/pkgs/development/python-modules/translate-toolkit/default.nix index 75feebacc1b6..3031c3843208 100644 --- a/pkgs/development/python-modules/translate-toolkit/default.nix +++ b/pkgs/development/python-modules/translate-toolkit/default.nix @@ -7,7 +7,9 @@ setuptools-scm, # dependencies - cwcwidth, + unicode-segmentation-rs, + urllib3, + tomlkit, lxml, # tests @@ -28,7 +30,7 @@ buildPythonPackage rec { pname = "translate-toolkit"; - version = "3.16.1"; + version = "3.17.5"; pyproject = true; @@ -36,16 +38,21 @@ buildPythonPackage rec { owner = "translate"; repo = "translate"; tag = version; - hash = "sha256-AEMqnTnnbqNsVQY0eE2ATn2NbV9jVPtfCo3Lve7MEmg="; + hash = "sha256-I0HpVL/bH78oFGDWkXyRvZejXzjDHXFfdPu/+iMgAQw="; }; build-system = [ setuptools-scm ]; dependencies = [ - cwcwidth + unicode-segmentation-rs + urllib3 lxml ]; + optional-dependencies = { + toml = [ tomlkit ]; + }; + nativeCheckInputs = [ aeidon charset-normalizer @@ -59,6 +66,7 @@ buildPythonPackage rec { pytestCheckHook ruamel-yaml syrupy + tomlkit vobject ]; From 9041a48e8b6563cd302626558304ac60e901e9fb Mon Sep 17 00:00:00 2001 From: Thomas Gerbet Date: Fri, 26 Dec 2025 12:14:07 +0100 Subject: [PATCH 4/4] weblate: 5.14.3 -> 5.15.1 Fixes CVE-2025-67492, CVE-2025-64725, CVE-2025-67715, CVE-2025-68398 and CVE-2025-68279. Cahnges: https://github.com/WeblateOrg/weblate/releases/tag/weblate-5.15.1 https://github.com/WeblateOrg/weblate/releases/tag/weblate-5.15.0 --- pkgs/by-name/we/weblate/package.nix | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/we/weblate/package.nix b/pkgs/by-name/we/weblate/package.nix index 42082188e02a..dc6ba744b26c 100644 --- a/pkgs/by-name/we/weblate/package.nix +++ b/pkgs/by-name/we/weblate/package.nix @@ -9,6 +9,7 @@ gdk-pixbuf, glib, gobject-introspection, + askalono, borgbackup, writeText, nixosTests, @@ -23,7 +24,7 @@ let in python.pkgs.buildPythonApplication rec { pname = "weblate"; - version = "5.14.3"; + version = "5.15.1"; pyproject = true; @@ -36,7 +37,7 @@ python.pkgs.buildPythonApplication rec { owner = "WeblateOrg"; repo = "weblate"; tag = "weblate-${version}"; - hash = "sha256-DwoJ24yGLJt+bItN/9SW0ruf+Lz3A9JxvD4QjlKaqzw="; + hash = "sha256-9k6H9/XW7vbXix+zadxHCNl9UJ3yE1ONa/+VRvIGk28="; }; build-system = with python.pkgs; [ setuptools ]; @@ -68,6 +69,7 @@ python.pkgs.buildPythonApplication rec { "certifi" "cyrtranslit" "django-appconf" + "urllib3" ]; dependencies = @@ -80,6 +82,7 @@ python.pkgs.buildPythonApplication rec { celery certifi charset-normalizer + confusable-homoglyphs crispy-bootstrap3 crispy-bootstrap5 cryptography @@ -104,6 +107,7 @@ python.pkgs.buildPythonApplication rec { docutils drf-spectacular drf-standardized-errors + fedora-messaging filelock fluent-syntax gitpython @@ -118,6 +122,7 @@ python.pkgs.buildPythonApplication rec { packaging phply pillow + pyaskalono pycairo pygments pygobject3 @@ -133,7 +138,6 @@ python.pkgs.buildPythonApplication rec { siphashc social-auth-app-django social-auth-core - standardwebhooks tesserocr translate-toolkit translation-finder @@ -145,7 +149,10 @@ python.pkgs.buildPythonApplication rec { ++ django.optional-dependencies.argon2 ++ celery.optional-dependencies.redis ++ drf-spectacular.optional-dependencies.sidecar - ++ drf-standardized-errors.optional-dependencies.openapi; + ++ drf-standardized-errors.optional-dependencies.openapi + ++ translate-toolkit.optional-dependencies.toml + ++ urllib3.optional-dependencies.brotli + ++ urllib3.optional-dependencies.zstd; optional-dependencies = { postgres = with python.pkgs; [ psycopg ];