From e6fb1ec7df04d8c6eb73b1b9adc15bd27b9a2274 Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Fri, 27 Feb 2026 17:35:02 -0800 Subject: [PATCH 1/5] python3Packages.devpi-common: remove unnecessary dependencies --- .../python-modules/devpi-common/default.nix | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/devpi-common/default.nix b/pkgs/development/python-modules/devpi-common/default.nix index 9612d04024aa..a6f22ae981bb 100644 --- a/pkgs/development/python-modules/devpi-common/default.nix +++ b/pkgs/development/python-modules/devpi-common/default.nix @@ -2,14 +2,18 @@ lib, buildPythonPackage, fetchFromGitHub, + + # build-system + setuptools, + + # dependencies lazy, + requests, + tomli, + + # tests packaging-legacy, pytestCheckHook, - requests, - setuptools-changelog-shortener, - setuptools, - tomli, - nix-update-script, }: buildPythonPackage (finalAttrs: { @@ -24,26 +28,30 @@ buildPythonPackage (finalAttrs: { hash = "sha256-YFY2iLnORzFxnfGYU2kCpJL8CZi+lALIkL1bRpfd4NE="; }; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail '"setuptools_changelog_shortener",' "" + ''; + sourceRoot = "${finalAttrs.src.name}/common"; build-system = [ setuptools - setuptools-changelog-shortener ]; dependencies = [ lazy - packaging-legacy requests tomli ]; - nativeCheckInputs = [ pytestCheckHook ]; + nativeCheckInputs = [ + pytestCheckHook + packaging-legacy + ]; pythonImportsCheck = [ "devpi_common" ]; - passthru.updateScript = nix-update-script { }; - meta = { homepage = "https://github.com/devpi/devpi"; description = "Utilities jointly used by devpi-server and devpi-client"; From 42977ec89201769f2813a2c50764002360700446 Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Fri, 27 Feb 2026 09:43:42 -0800 Subject: [PATCH 2/5] devpi-server: extract underlying python library --- .../devpi-server/default.nix | 42 ++++++++++++------- pkgs/top-level/all-packages.nix | 2 - pkgs/top-level/python-packages.nix | 2 + 3 files changed, 29 insertions(+), 17 deletions(-) rename pkgs/development/{tools => python-modules}/devpi-server/default.nix (89%) diff --git a/pkgs/development/tools/devpi-server/default.nix b/pkgs/development/python-modules/devpi-server/default.nix similarity index 89% rename from pkgs/development/tools/devpi-server/default.nix rename to pkgs/development/python-modules/devpi-server/default.nix index 4463adc31f87..d42ef6a3766d 100644 --- a/pkgs/development/tools/devpi-server/default.nix +++ b/pkgs/development/python-modules/devpi-server/default.nix @@ -1,37 +1,45 @@ { lib, fetchFromGitHub, - buildPythonApplication, - gitUpdater, + buildPythonPackage, + + # build-system + setuptools, + + # dependencies aiohttp, appdirs, - beautifulsoup4, defusedxml, devpi-common, execnet, + httpx, itsdangerous, - nginx, packaging, passlib, platformdirs, pluggy, py, - httpx, pyramid, - pytest-asyncio, - pytestCheckHook, repoze-lru, - setuptools, - setuptools-changelog-shortener, strictyaml, waitress, + + # tests + beautifulsoup4, + nginx, + packaging-legacy, + pytest-asyncio, + pytestCheckHook, webtest, - testers, + + # passthru devpi-server, + gitUpdater, nixosTests, + testers, }: -buildPythonApplication (finalAttrs: { +buildPythonPackage (finalAttrs: { pname = "devpi-server"; version = "6.19.1"; pyproject = true; @@ -43,11 +51,15 @@ buildPythonApplication (finalAttrs: { hash = "sha256-YFY2iLnORzFxnfGYU2kCpJL8CZi+lALIkL1bRpfd4NE="; }; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail '"setuptools_changelog_shortener",' "" + ''; + sourceRoot = "${finalAttrs.src.name}/server"; build-system = [ setuptools - setuptools-changelog-shortener ]; dependencies = [ @@ -56,25 +68,25 @@ buildPythonApplication (finalAttrs: { defusedxml devpi-common execnet + httpx itsdangerous packaging passlib platformdirs pluggy + py pyramid repoze-lru setuptools strictyaml waitress - py - httpx ] ++ passlib.optional-dependencies.argon2; nativeCheckInputs = [ beautifulsoup4 nginx - py + packaging-legacy pytest-asyncio pytestCheckHook webtest diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b7fc449cbfe4..63e6f33aafda 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3822,8 +3822,6 @@ with pkgs; llvmPackages = crystal.llvmPackages; }; - devpi-server = python3Packages.callPackage ../development/tools/devpi-server { }; - dprint-plugins = recurseIntoAttrs (callPackage ../by-name/dp/dprint/plugins { }); reaction-plugins = reaction.passthru.plugins; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e707fbef7e0e..15ffa774fb72 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3856,6 +3856,8 @@ self: super: with self; { devpi-ldap = callPackage ../development/python-modules/devpi-ldap { }; + devpi-server = callPackage ../development/python-modules/devpi-server { }; + devtools = callPackage ../development/python-modules/devtools { }; dfdiskcache = callPackage ../development/python-modules/dfdiskcache { }; From 5297ac441836fc8f1bb81e11ae7082b64dcc2ce0 Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Fri, 27 Feb 2026 09:43:42 -0800 Subject: [PATCH 3/5] devpi-server: migrate to pkgs/by-name --- pkgs/by-name/de/devpi-server/package.nix | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 pkgs/by-name/de/devpi-server/package.nix diff --git a/pkgs/by-name/de/devpi-server/package.nix b/pkgs/by-name/de/devpi-server/package.nix new file mode 100644 index 000000000000..b96d19abebf7 --- /dev/null +++ b/pkgs/by-name/de/devpi-server/package.nix @@ -0,0 +1,4 @@ +{ python3Packages }: + +with python3Packages; +toPythonApplication devpi-server From c6a270fcbcb892d33c8fdcde128230d35f9075fc Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Fri, 27 Feb 2026 09:43:42 -0800 Subject: [PATCH 4/5] devpi-ldap: fix build --- .../python-modules/devpi-ldap/default.nix | 39 +++++++++++-------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/pkgs/development/python-modules/devpi-ldap/default.nix b/pkgs/development/python-modules/devpi-ldap/default.nix index d5cb45aa8995..b70a21907067 100644 --- a/pkgs/development/python-modules/devpi-ldap/default.nix +++ b/pkgs/development/python-modules/devpi-ldap/default.nix @@ -1,17 +1,21 @@ { lib, buildPythonPackage, - devpi-server, fetchFromGitHub, - ldap3, - mock, - pytest-cov-stub, - pytestCheckHook, - pythonOlder, - pythonAtLeast, - pyyaml, + + # build-system setuptools, - setuptools-changelog-shortener, + + # dependencies + devpi-server, + ldap3, + pyyaml, + + # tests + packaging-legacy, + pytest-cov-stub, + pytest-mock, + pytestCheckHook, webtest, }: @@ -20,9 +24,6 @@ buildPythonPackage (finalAttrs: { version = "2.1.1-unstable-2026-01-22"; pyproject = true; - # build-system broken for 3.14, package incompatible <3.13 - disabled = pythonOlder "3.13" || pythonAtLeast "3.14"; - src = fetchFromGitHub { owner = "devpi"; repo = "devpi-ldap"; @@ -30,27 +31,33 @@ buildPythonPackage (finalAttrs: { hash = "sha256-2LpreWmG6WMRrc5L7ylSej5Ce6VhfNDAW2eoJ76D49o="; }; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail '"setuptools_changelog_shortener",' "" + ''; + build-system = [ setuptools - setuptools-changelog-shortener ]; dependencies = [ devpi-server - pyyaml ldap3 + pyyaml ]; nativeCheckInputs = [ - devpi-server - mock + packaging-legacy pytest-cov-stub + pytest-mock pytestCheckHook webtest ]; pythonImportsCheck = [ "devpi_ldap" ]; + passthru.skipBulkUpdate = true; # avoid reversion to previous stable version + meta = { description = "LDAP authentication for devpi-server"; homepage = "https://github.com/devpi/devpi-ldap"; From 262e67f9fcfcd8b9720f8400a6d5fc4d7b9c580a Mon Sep 17 00:00:00 2001 From: Sarah Clark Date: Fri, 27 Feb 2026 18:21:15 -0800 Subject: [PATCH 5/5] devpi-client: add packaging-legacy for tests --- pkgs/by-name/de/devpi-client/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/de/devpi-client/package.nix b/pkgs/by-name/de/devpi-client/package.nix index 109d2213eafe..f28848a11253 100644 --- a/pkgs/by-name/de/devpi-client/package.nix +++ b/pkgs/by-name/de/devpi-client/package.nix @@ -43,6 +43,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: { ++ (with python3.pkgs; [ mercurial mock + packaging-legacy pypitoken pytestCheckHook sphinx