From 93ebc4f66e23f81a67e34fee8b8354d59d7d3e9a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 3 Jul 2025 15:59:53 +0000 Subject: [PATCH 01/14] python3Packages.django-auditlog: 3.1.2 -> 3.2.0 --- pkgs/development/python-modules/django-auditlog/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/django-auditlog/default.nix b/pkgs/development/python-modules/django-auditlog/default.nix index 4b488a328ae8..80af50656ca1 100644 --- a/pkgs/development/python-modules/django-auditlog/default.nix +++ b/pkgs/development/python-modules/django-auditlog/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "django-auditlog"; - version = "3.1.2"; + version = "3.2.0"; pyproject = true; src = fetchFromGitHub { owner = "jazzband"; repo = "django-auditlog"; tag = "v${version}"; - hash = "sha256-xb6pTsXkB8HVpXvB9WzBUlRcjh5cn1CdmMYQQVCQ/GU="; + hash = "sha256-NOtpnYh6HUo7VRSyCUhbpNDv0V9KWST0OEzl7Pt6eR8="; }; nativeBuildInputs = [ From a3b4ab063a1bccff8ae67f4b66c5706ee31b15bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 18 Aug 2025 19:02:18 +0200 Subject: [PATCH 02/14] python3Packages.django-auditlog: 3.2.0 -> 3.2.1 Diff: https://github.com/jazzband/django-auditlog/compare/v3.2.0...v3.2.1 Changelog: https://github.com/jazzband/django-auditlog/blob/v3.2.1/CHANGELOG.md --- pkgs/development/python-modules/django-auditlog/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/django-auditlog/default.nix b/pkgs/development/python-modules/django-auditlog/default.nix index 80af50656ca1..61b66c736806 100644 --- a/pkgs/development/python-modules/django-auditlog/default.nix +++ b/pkgs/development/python-modules/django-auditlog/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "django-auditlog"; - version = "3.2.0"; + version = "3.2.1"; pyproject = true; src = fetchFromGitHub { owner = "jazzband"; repo = "django-auditlog"; tag = "v${version}"; - hash = "sha256-NOtpnYh6HUo7VRSyCUhbpNDv0V9KWST0OEzl7Pt6eR8="; + hash = "sha256-159p82PT3za3wp2XhekGxy+NYxLyQfAyUOyhDjyr2CI="; }; nativeBuildInputs = [ From 3eba985d255e463876ccd6e48a51f52c4c0f88ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 18 Aug 2025 19:15:58 +0200 Subject: [PATCH 03/14] python3Packages.django-cachalot: 2.7.0 -> 2.8.0, switch to pyproject = true Diff: https://github.com/noripyt/django-cachalot/compare/v2.7.0...v2.8.0 Changelog: https://github.com/noripyt/django-cachalot/blob/refs/tags/v2.8.0/CHANGELOG.rst --- .../django-cachalot/default.nix | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/pkgs/development/python-modules/django-cachalot/default.nix b/pkgs/development/python-modules/django-cachalot/default.nix index 3b83eb8f6a16..55f91c63bb2d 100644 --- a/pkgs/development/python-modules/django-cachalot/default.nix +++ b/pkgs/development/python-modules/django-cachalot/default.nix @@ -7,20 +7,26 @@ psycopg2, jinja2, beautifulsoup4, + pytest-django, + pytestCheckHook, python, pytz, + redis, + redisTestHook, + setuptools, + stdenv, }: buildPythonPackage rec { pname = "django-cachalot"; - version = "2.7.0"; - format = "setuptools"; + version = "2.8.0"; + pyproject = true; src = fetchFromGitHub { owner = "noripyt"; repo = "django-cachalot"; tag = "v${version}"; - hash = "sha256-Fi5UvqH2bVb4v/GWDkEYIcBMBVos+35g4kcEnZTOQvw="; + hash = "sha256-3W+9cULL3mMtAkxbqetoIj2FL/HRbzWHIDMe9O1e6BM="; }; patches = [ @@ -29,18 +35,27 @@ buildPythonPackage rec { ./disable-unsupported-tests.patch ]; - propagatedBuildInputs = [ django ]; + build-system = [ setuptools ]; - checkInputs = [ + dependencies = [ django ]; + + nativeCheckInputs = [ beautifulsoup4 django-debug-toolbar psycopg2 jinja2 + pytest-django + pytestCheckHook pytz + redis + redisTestHook ]; pythonImportsCheck = [ "cachalot" ]; + # redisTestHook does not work on darwin + doCheck = !stdenv.hostPlatform.isDarwin; + # disable broken pinning test preCheck = '' substituteInPlace cachalot/tests/read.py \ From 15b173668f296e6c6b453b470d00b7e53fbf6d18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 18 Aug 2025 19:47:35 +0200 Subject: [PATCH 04/14] python3Packages.django-guardian: 2.4.0 -> 3.0.3, set pyproject = true --- .../django-guardian/default.nix | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/django-guardian/default.nix b/pkgs/development/python-modules/django-guardian/default.nix index a6727b8f055b..4a3aa9660684 100644 --- a/pkgs/development/python-modules/django-guardian/default.nix +++ b/pkgs/development/python-modules/django-guardian/default.nix @@ -1,25 +1,30 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, django-environ, mock, django, pytestCheckHook, pytest-django, + setuptools, }: buildPythonPackage rec { pname = "django-guardian"; - version = "2.4.0"; - format = "setuptools"; + version = "3.0.3"; + pyproject = true; - src = fetchPypi { - inherit pname version; - sha256 = "c58a68ae76922d33e6bdc0e69af1892097838de56e93e78a8361090bcd9f89a0"; + src = fetchFromGitHub { + owner = "django-guardian"; + repo = "django-guardian"; + tag = version; + hash = "sha256-0rOEue+OApWQmSBuwTLnu/yU5HUa5pgvVBUG5fT4iwY="; }; - propagatedBuildInputs = [ django ]; + build-system = [ setuptools ]; + + dependencies = [ django ]; nativeCheckInputs = [ django-environ @@ -34,7 +39,6 @@ buildPythonPackage rec { description = "Per object permissions for Django"; homepage = "https://github.com/django-guardian/django-guardian"; license = with licenses; [ - mit bsd2 ]; maintainers = [ ]; From e6330dcf18132a52cd0dcf9ddd1fb4efd003b95f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 18 Aug 2025 21:00:29 +0200 Subject: [PATCH 05/14] python3Packages.djangorestframework-guardian: 0.3.0 -> 0.4.0, switch to pyproject and run tests with pytest --- .../djangorestframework-guardian/default.nix | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/pkgs/development/python-modules/djangorestframework-guardian/default.nix b/pkgs/development/python-modules/djangorestframework-guardian/default.nix index 4d4a1d45fc9c..d722ff95ee74 100644 --- a/pkgs/development/python-modules/djangorestframework-guardian/default.nix +++ b/pkgs/development/python-modules/djangorestframework-guardian/default.nix @@ -2,36 +2,38 @@ lib, buildPythonPackage, fetchFromGitHub, - django, django-guardian, djangorestframework, + pytest-django, + pytestCheckHook, + setuptools, }: buildPythonPackage rec { pname = "djangorestframework-guardian"; - version = "0.3.0"; - format = "setuptools"; + version = "0.4.0"; + pyproject = true; src = fetchFromGitHub { owner = "rpkilby"; repo = "django-rest-framework-guardian"; rev = version; - hash = "sha256-jl/VEl1pUHU8J1d5ZQSGJweNJayIGw1iVAmwID85fqw="; + hash = "sha256-7SaKyWoLen5DAwSyrWeA4rEmjXMcPwJ7LM7WYxk+IKs="; }; - postPatch = '' - chmod +x manage.py - patchShebangs manage.py - ''; + build-system = [ setuptools ]; - propagatedBuildInputs = [ + dependencies = [ django-guardian djangorestframework ]; - checkPhase = '' - ./manage.py test - ''; + nativeCheckInputs = [ + pytest-django + pytestCheckHook + ]; + + env.DJANGO_SETTINGS_MODULE = "tests.settings"; pythonImportsCheck = [ "rest_framework_guardian" ]; @@ -40,7 +42,5 @@ buildPythonPackage rec { homepage = "https://github.com/rpkilby/django-rest-framework-guardian"; license = licenses.bsd3; maintainers = [ ]; - # unmaintained, last compatible version is 3.x, use djangorestframework-guardian2 instead - broken = lib.versionAtLeast django.version "4"; }; } From 4d8d60a0375c43bcb18badfb7d36e98c37a3708f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 18 Aug 2025 21:00:55 +0200 Subject: [PATCH 06/14] python3Packages.djangorestframework-guardian2: drop in favor of djangorestframework-guardian 0.4.0 --- pkgs/by-name/au/authentik/package.nix | 4 +- pkgs/by-name/pa/paperless-ngx/package.nix | 5 +- .../djangorestframework-guardian2/default.nix | 46 ------------------- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 4 -- 5 files changed, 4 insertions(+), 56 deletions(-) delete mode 100644 pkgs/development/python-modules/djangorestframework-guardian2/default.nix diff --git a/pkgs/by-name/au/authentik/package.nix b/pkgs/by-name/au/authentik/package.nix index 14e8700c416c..ef2639eb71ba 100644 --- a/pkgs/by-name/au/authentik/package.nix +++ b/pkgs/by-name/au/authentik/package.nix @@ -308,8 +308,6 @@ let substituteInPlace authentik/lib/default.yml \ --replace-fail '/blueprints' "$out/blueprints" \ --replace-fail './media' '/var/lib/authentik/media' - substituteInPlace pyproject.toml \ - --replace-fail 'djangorestframework-guardian' 'djangorestframework-guardian2' substituteInPlace authentik/stages/email/utils.py \ --replace-fail 'web/' '${webui}/' ''; @@ -346,7 +344,7 @@ let django-storages django-tenants djangorestframework - djangorestframework-guardian2 + djangorestframework-guardian docker drf-orjson-renderer drf-spectacular diff --git a/pkgs/by-name/pa/paperless-ngx/package.nix b/pkgs/by-name/pa/paperless-ngx/package.nix index 58dcc0543931..2b253fd5bc69 100644 --- a/pkgs/by-name/pa/paperless-ngx/package.nix +++ b/pkgs/by-name/pa/paperless-ngx/package.nix @@ -149,8 +149,7 @@ python.pkgs.buildPythonApplication rec { fi substituteInPlace pyproject.toml \ --replace-fail '"--numprocesses=auto",' "" \ - --replace-fail '--maxprocesses=16' "--numprocesses=$NIX_BUILD_CORES" \ - --replace-fail "djangorestframework-guardian~=0.3.0" "djangorestframework-guardian2" + --replace-fail '--maxprocesses=16' "--numprocesses=$NIX_BUILD_CORES" ''; nativeBuildInputs = [ @@ -194,7 +193,7 @@ python.pkgs.buildPythonApplication rec { django-multiselectfield django-soft-delete djangorestframework - djangorestframework-guardian2 + djangorestframework-guardian drf-spectacular drf-spectacular-sidecar drf-writable-nested diff --git a/pkgs/development/python-modules/djangorestframework-guardian2/default.nix b/pkgs/development/python-modules/djangorestframework-guardian2/default.nix deleted file mode 100644 index 25081535d2f0..000000000000 --- a/pkgs/development/python-modules/djangorestframework-guardian2/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - django-guardian, - djangorestframework, - setuptools, -}: - -buildPythonPackage rec { - pname = "djangorestframework-guardian2"; - version = "0.7.0"; - pyproject = true; - - src = fetchFromGitHub { - owner = "johnthagen"; - repo = "django-rest-framework-guardian2"; - tag = "v${version}"; - hash = "sha256-LrIhOoBWC3HttjAGbul4zof++OW35pGMyFGZzUpG1Tk="; - }; - - postPatch = '' - chmod +x manage.py - patchShebangs manage.py - ''; - - build-system = [ setuptools ]; - - dependencies = [ - django-guardian - djangorestframework - ]; - - checkPhase = '' - ./manage.py test - ''; - - pythonImportsCheck = [ "rest_framework_guardian" ]; - - meta = with lib; { - description = "Django-guardian support for Django REST Framework"; - homepage = "https://github.com/johnthagen/django-rest-framework-guardian2/"; - license = licenses.bsd3; - maintainers = with maintainers; [ e1mo ]; - }; -} diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index ca53096917a3..4204c244407c 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -188,6 +188,7 @@ mapAliases ({ distutils_extra = distutils-extra; # added 2023-10-12 digital-ocean = python-digitalocean; # addad 2024-04-12 dj-stripe = throw "dj-stripe has been removed because it is unused and broken"; # added 2025-07-21 + djangorestframework-guardian2 = throw "djangorestframework-guardian2 has been removed because djangorestframework-guardian is active again and the upstream project was archived"; # added 2025-08-22 djangorestframework-jwt = drf-jwt; # added 2021-07-20 django-allauth-2fa = throw "django-allauth-2fa was removed because it was unused and django-allauth now contains 2fa logic itself."; # added 2025-02-15 django-sampledatahelper = throw "django-sampledatahelper was removed because it is no longer compatible to latest Django version"; # added 2022-07-18 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index cf11b8374764..682df8d127a9 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4142,10 +4142,6 @@ self: super: with self; { callPackage ../development/python-modules/djangorestframework-guardian { }; - djangorestframework-guardian2 = - callPackage ../development/python-modules/djangorestframework-guardian2 - { }; - djangorestframework-jsonp = callPackage ../development/python-modules/djangorestframework-jsonp { }; djangorestframework-recursive = From 103adb01314f5fc734504931ce1f5544ff80c624 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 18 Aug 2025 20:27:41 +0200 Subject: [PATCH 07/14] python3Packages.djangorestframework-dataclasses: run tests with pytest --- .../djangorestframework-dataclasses/default.nix | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pkgs/development/python-modules/djangorestframework-dataclasses/default.nix b/pkgs/development/python-modules/djangorestframework-dataclasses/default.nix index 149993805a6e..f3c6d0ed3776 100644 --- a/pkgs/development/python-modules/djangorestframework-dataclasses/default.nix +++ b/pkgs/development/python-modules/djangorestframework-dataclasses/default.nix @@ -3,6 +3,8 @@ buildPythonPackage, fetchFromGitHub, djangorestframework, + pytest-django, + pytestCheckHook, setuptools, }: @@ -18,21 +20,20 @@ buildPythonPackage rec { hash = "sha256-nUkR5xTyeBv7ziJ6Mej9TKvMOa5/k+ELBqt4BVam/wk="; }; - build-system = [ setuptools ]; - postPatch = '' patchShebangs manage.py ''; + build-system = [ setuptools ]; + dependencies = [ djangorestframework ]; - checkPhase = '' - runHook preCheck + nativeCheckInputs = [ + pytest-django + pytestCheckHook + ]; - ./manage.py test - - runHook postCheck - ''; + env.DJANGO_SETTINGS_MODULE = "tests.django_settings"; pythonImportsCheck = [ "rest_framework_dataclasses" ]; From 72dc30c5ddc4f22fcee1d11e407591380d41ca57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Tue, 19 Aug 2025 00:25:28 +0200 Subject: [PATCH 08/14] python3Packages.tika-client: 0.9.0 -> 0.10.0 Diff: https://github.com/stumpylog/tika-client/compare/0.9.0...0.10.0 Changelog: https://github.com/stumpylog/tika-client/blob/0.10.0/CHANGELOG.md --- .../python-modules/tika-client/default.nix | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/tika-client/default.nix b/pkgs/development/python-modules/tika-client/default.nix index f70747fef55b..b16ace6df913 100644 --- a/pkgs/development/python-modules/tika-client/default.nix +++ b/pkgs/development/python-modules/tika-client/default.nix @@ -2,35 +2,33 @@ lib, buildPythonPackage, fetchFromGitHub, - pythonOlder, + anyio, hatchling, httpx, }: buildPythonPackage rec { pname = "tika-client"; - version = "0.9.0"; + version = "0.10.0"; pyproject = true; - disabled = pythonOlder "3.9"; - src = fetchFromGitHub { owner = "stumpylog"; repo = "tika-client"; tag = version; - hash = "sha256-lg6syUbEbPb70iBa4lw5fVN8cvfWY3bkG2jNGxxNLDo="; + hash = "sha256-XYyMp+02lWzE+3Txr+shVGVwalLEJHvoy988tA7SWgY="; }; build-system = [ hatchling ]; - dependencies = [ httpx ]; + dependencies = [ + anyio + httpx + ]; pythonImportsCheck = [ "tika_client" ]; - # Almost all of the tests (all except one in 0.1.0) fail since there - # is no tika http API endpoint reachable. Since tika is not yet - # packaged for nixpkgs, it seems like an unreasonable amount of effort - # fixing these tests. + # The tests expect the tika-server to run in a docker container doChecks = false; meta = with lib; { From c70e3aafbf58a0b8a23b2457b3533e4877c9ac8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Tue, 19 Aug 2025 00:43:37 +0200 Subject: [PATCH 09/14] python3Packages.drf-spectacular-sidecar: 2025.4.1 -> 2025.8.1 Diff: https://github.com/tfranzel/drf-spectacular-sidecar/compare/2025.4.1...2025.8.1 --- .../python-modules/drf-spectacular-sidecar/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix b/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix index bd8da61a4f6e..811e370ffc78 100644 --- a/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix +++ b/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "drf-spectacular-sidecar"; - version = "2025.4.1"; + version = "2025.8.1"; pyproject = true; src = fetchFromGitHub { owner = "tfranzel"; repo = "drf-spectacular-sidecar"; rev = version; - hash = "sha256-YzSUwShj7QGCVKlTRM2Gro38Y+jGYQsMGBMAH0radmA="; + hash = "sha256-H2eHFX7VG7YqLztEV/G4QnVYytkfADeHxgBTRlmKt50="; }; build-system = [ setuptools ]; From 0f22a85409ffc9cb1cb800220adb87a268ffb457 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 14 Jun 2025 10:24:45 +0000 Subject: [PATCH 10/14] python3Packages.django-multiselectfield: 0.1.13 -> 1.0.1 (cherry picked from commit f631ce240aa9472dce32e2e59611940dc2a33459) --- .../python-modules/django-multiselectfield/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/django-multiselectfield/default.nix b/pkgs/development/python-modules/django-multiselectfield/default.nix index ad365b7062f3..0945ab27d9e5 100644 --- a/pkgs/development/python-modules/django-multiselectfield/default.nix +++ b/pkgs/development/python-modules/django-multiselectfield/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "django-multiselectfield"; - version = "0.1.13"; + version = "1.0.1"; pyproject = true; disabled = pythonOlder "3.9"; @@ -17,7 +17,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "django_multiselectfield"; inherit version; - hash = "sha256-Q31yYy9MDKQWlRkXYyUpw9HUK2K7bDwD4zlvpQJlvpQ="; + hash = "sha256-P4tP/z4H1Kkci7S4Cbw1yusitBdptgb0ye3FO41ypmc="; }; build-system = [ setuptools ]; From ae730b371bcd426f2e2aee4c532d3be76949d855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Thu, 21 Aug 2025 00:48:12 +0200 Subject: [PATCH 11/14] froide: fix initdb not being in PATH --- pkgs/by-name/fr/froide/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/fr/froide/package.nix b/pkgs/by-name/fr/froide/package.nix index 8b5e9ffc64d9..e4cf9a7cbcc2 100644 --- a/pkgs/by-name/fr/froide/package.nix +++ b/pkgs/by-name/fr/froide/package.nix @@ -135,7 +135,7 @@ python.pkgs.buildPythonApplication rec { ''; nativeCheckInputs = with python.pkgs; [ - (postgresql.withPackages (p: [ p.postgis ])) + (postgresql.withPackages (p: [ p.postgis ])).out postgresqlTestHook pytest-django pytest-playwright From 0de3cbd1a2100263ad66b81e622f5ea4218ef7cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Tue, 19 Aug 2025 21:54:00 +0200 Subject: [PATCH 12/14] paperless-ngx: format and sort --- pkgs/by-name/pa/paperless-ngx/package.nix | 128 +++++++++++----------- 1 file changed, 62 insertions(+), 66 deletions(-) diff --git a/pkgs/by-name/pa/paperless-ngx/package.nix b/pkgs/by-name/pa/paperless-ngx/package.nix index 2b253fd5bc69..9291d2d9f08f 100644 --- a/pkgs/by-name/pa/paperless-ngx/package.nix +++ b/pkgs/by-name/pa/paperless-ngx/package.nix @@ -68,73 +68,69 @@ let poppler-utils ]; - frontend = - let - frontendSrc = src + "/src-ui"; - in - stdenv.mkDerivation rec { - pname = "paperless-ngx-frontend"; - inherit version; + frontend = stdenv.mkDerivation (finalAttrs: { + pname = "paperless-ngx-frontend"; + inherit version; - src = frontendSrc; + src = src + "/src-ui"; - pnpmDeps = pnpm.fetchDeps { - inherit pname version src; - fetcherVersion = 1; - hash = "sha256-VtYYwpMXPAC3g1OESnw3dzLTwiGqJBQcicFZskEucok="; - }; - - nativeBuildInputs = [ - node-gyp - nodejs_20 - pkg-config - pnpm.configHook - python3 - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - xcbuild - ]; - - buildInputs = [ - pango - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - giflib - ]; - - CYPRESS_INSTALL_BINARY = "0"; - NG_CLI_ANALYTICS = "false"; - - buildPhase = '' - runHook preBuild - - pushd node_modules/canvas - node-gyp rebuild - popd - - pnpm run build --configuration production - - runHook postBuild - ''; - - doCheck = true; - checkPhase = '' - runHook preCheck - - pnpm run test - - runHook postCheck - ''; - - installPhase = '' - runHook preInstall - - mkdir -p $out/lib/paperless-ui - mv ../src/documents/static/frontend $out/lib/paperless-ui/ - - runHook postInstall - ''; + pnpmDeps = pnpm.fetchDeps { + inherit (finalAttrs) pname version src; + fetcherVersion = 1; + hash = "sha256-VtYYwpMXPAC3g1OESnw3dzLTwiGqJBQcicFZskEucok="; }; + + nativeBuildInputs = [ + node-gyp + nodejs_20 + pkg-config + pnpm.configHook + python3 + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + xcbuild + ]; + + buildInputs = [ + pango + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + giflib + ]; + + CYPRESS_INSTALL_BINARY = "0"; + NG_CLI_ANALYTICS = "false"; + + buildPhase = '' + runHook preBuild + + pushd node_modules/canvas + node-gyp rebuild + popd + + pnpm run build --configuration production + + runHook postBuild + ''; + + doCheck = true; + checkPhase = '' + runHook preCheck + + pnpm run test + + runHook postCheck + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib/paperless-ui + mv ../src/documents/static/frontend $out/lib/paperless-ui/ + + runHook postInstall + ''; + }); in python.pkgs.buildPythonApplication rec { pname = "paperless-ngx"; @@ -323,9 +319,9 @@ python.pkgs.buildPythonApplication rec { passthru = { inherit - python - path frontend + path + python tesseract5 ; nltkData = with nltk-data; [ From 06db824d91a0de8f7028e28801b99756830dd44a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 18 Aug 2025 02:24:34 +0200 Subject: [PATCH 13/14] paperless-ngx: 2.17.1 -> 2.18.1 Changelog: https://github.com/paperless-ngx/paperless-ngx/releases/tag/v2.18.0 Changelog: https://github.com/paperless-ngx/paperless-ngx/releases/tag/v2.18.1 --- nixos/modules/services/misc/paperless.nix | 5 +-- pkgs/by-name/pa/paperless-ngx/package.nix | 54 +++++++++++++---------- 2 files changed, 31 insertions(+), 28 deletions(-) diff --git a/nixos/modules/services/misc/paperless.nix b/nixos/modules/services/misc/paperless.nix index db69d7424275..4a54e637507a 100644 --- a/nixos/modules/services/misc/paperless.nix +++ b/nixos/modules/services/misc/paperless.nix @@ -31,10 +31,7 @@ let PAPERLESS_REDIS = "unix://${redisServer.unixSocket}"; } // lib.optionalAttrs (cfg.settings.PAPERLESS_ENABLE_NLTK or true) { - PAPERLESS_NLTK_DIR = pkgs.symlinkJoin { - name = "paperless_ngx_nltk_data"; - paths = cfg.package.nltkData; - }; + PAPERLESS_NLTK_DIR = cfg.package.nltkDataDir; } // lib.optionalAttrs (cfg.openMPThreadingWorkaround) { OMP_NUM_THREADS = "1"; diff --git a/pkgs/by-name/pa/paperless-ngx/package.nix b/pkgs/by-name/pa/paperless-ngx/package.nix index 9291d2d9f08f..33a620860457 100644 --- a/pkgs/by-name/pa/paperless-ngx/package.nix +++ b/pkgs/by-name/pa/paperless-ngx/package.nix @@ -22,34 +22,24 @@ xcbuild, pango, pkg-config, + symlinkJoin, nltk-data, xorg, }: let - version = "2.17.1"; + version = "2.18.1"; src = fetchFromGitHub { owner = "paperless-ngx"; repo = "paperless-ngx"; tag = "v${version}"; - hash = "sha256-6FvP/HgomsPxqCtKrZFxMlD2fFyT2e/JII2L7ANiOao="; + hash = "sha256-POHF00cV8pl6i1rcwxtZ+Q1AlLybDj6gSlL0lPwSSCo="; }; python = python3.override { self = python; packageOverrides = final: prev: { - django = prev.django_5_1; - - # TODO remove when paperless-ngx is updated past 2.17.1 - imap-tools = prev.imap-tools.overridePythonAttrs { - version = "1.10.0"; - src = fetchFromGitHub { - owner = "ikvk"; - repo = "imap_tools"; - tag = "v1.10.0"; - hash = "sha256-lan12cHkoxCKadgyFey4ShcnwFg3Gl/VqKWlYAkvF3Y="; - }; - }; + django = prev.django_5_2; # tesseract5 may be overwritten in the paperless module and we need to propagate that to make the closure reduction effective ocrmypdf = prev.ocrmypdf.override { tesseract = tesseract5; }; @@ -77,7 +67,7 @@ let pnpmDeps = pnpm.fetchDeps { inherit (finalAttrs) pname version src; fetcherVersion = 1; - hash = "sha256-VtYYwpMXPAC3g1OESnw3dzLTwiGqJBQcicFZskEucok="; + hash = "sha256-bx/jXlG3lRiwKyz1M0dU00Xn5xaeALSIxIAGzo8gAgo="; }; nativeBuildInputs = [ @@ -108,7 +98,8 @@ let node-gyp rebuild popd - pnpm run build --configuration production + # cat forcefully disables angular cli's spinner which doesn't work with nix' tty which is 0x0 + pnpm run build --configuration production | cat runHook postBuild ''; @@ -117,7 +108,7 @@ let checkPhase = '' runHook preCheck - pnpm run test + pnpm run test | cat runHook postCheck ''; @@ -131,6 +122,15 @@ let runHook postInstall ''; }); + + nltkDataDir = symlinkJoin { + name = "paperless_ngx_nltk_data"; + paths = with nltk-data; [ + punkt-tab + snowball-data + stopwords + ]; + }; in python.pkgs.buildPythonApplication rec { pname = "paperless-ngx"; @@ -154,14 +154,17 @@ python.pkgs.buildPythonApplication rec { ]; pythonRelaxDeps = [ - "django-allauth" - "pathvalidate" + # https://github.com/NixOS/nixpkgs/pull/432489 + "django" + "scikit-learn" + "redis" ]; dependencies = with python.pkgs; [ + babel bleach channels channels-redis @@ -180,6 +183,7 @@ python.pkgs.buildPythonApplication rec { } )) django-auditlog + django-cachalot django-celery-results django-compression-middleware django-cors-headers @@ -208,6 +212,7 @@ python.pkgs.buildPythonApplication rec { pathvalidate pdf2image psycopg + psycopg-pool python-dateutil python-dotenv python-gnupg @@ -296,6 +301,7 @@ python.pkgs.buildPythonApplication rec { export PATH="${path}:$PATH" export HOME=$(mktemp -d) export XDG_DATA_DIRS="${liberation_ttf}/share:$XDG_DATA_DIRS" + export PAPERLESS_NLTK_DIR=${passthru.nltkDataDir} ''; disabledTests = [ @@ -313,6 +319,10 @@ python.pkgs.buildPythonApplication rec { # Favicon tests fail due to static file handling in the test environment "test_favicon_view" "test_favicon_view_missing_file" + # Requires DNS + "test_send_webhook_data_or_json" + "test_workflow_webhook_send_webhook_retry" + "test_workflow_webhook_send_webhook_task" ]; doCheck = !stdenv.hostPlatform.isDarwin; @@ -320,15 +330,11 @@ python.pkgs.buildPythonApplication rec { passthru = { inherit frontend + nltkDataDir path python tesseract5 ; - nltkData = with nltk-data; [ - punkt-tab - snowball-data - stopwords - ]; tests = { inherit (nixosTests) paperless; }; }; From 8778dc2ef6062c90a43e21326e8e50e04b6481c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Fri, 22 Aug 2025 00:11:54 +0200 Subject: [PATCH 14/14] python3Packages.rq: disable checkPhase on darwin > Could not connect to Valkey at /nix/build/nix-build-python3.12-rq-2.4.drv-12323-615855295/run/redis.sock: No such file or directory --- pkgs/development/python-modules/rq/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/python-modules/rq/default.nix b/pkgs/development/python-modules/rq/default.nix index fd802dd70f70..fdd697e9d76a 100644 --- a/pkgs/development/python-modules/rq/default.nix +++ b/pkgs/development/python-modules/rq/default.nix @@ -49,6 +49,9 @@ buildPythonPackage rec { __darwinAllowLocalNetworking = true; + # redisTestHook does not work on darwin-x86_64 + doCheck = !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64); + disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [ # PermissionError: [Errno 13] Permission denied: '/tmp/rq-tests.txt' "test_deleted_jobs_arent_executed"