From 385661284cfed9d2badc066770df923304dcbb39 Mon Sep 17 00:00:00 2001 From: andre4ik3 Date: Wed, 4 Feb 2026 02:36:32 +0000 Subject: [PATCH 1/2] cockpit: pin to Python 3.12, pass through pythonPackages --- pkgs/by-name/co/cockpit/package.nix | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/co/cockpit/package.nix b/pkgs/by-name/co/cockpit/package.nix index a5ce3e74a015..e2d557e4ff93 100644 --- a/pkgs/by-name/co/cockpit/package.nix +++ b/pkgs/by-name/co/cockpit/package.nix @@ -33,7 +33,7 @@ pam, pkg-config, polkit, - python3Packages, + python312Packages, sscg, systemd, udev, @@ -44,6 +44,12 @@ nixos-icons, }: +let + # Pinned to 3.12 due to cockpit-zfs dependency py-libzfs not being compatible + # with 3.13+ + python3Packages = python312Packages; +in + stdenv.mkDerivation (finalAttrs: { pname = "cockpit"; version = "353.1"; @@ -166,6 +172,11 @@ stdenv.mkDerivation (finalAttrs: { --replace-fail "/usr/lib/polkit-1/polkit-agent-helper-1" "/run/wrappers/bin/polkit-agent-helper-1" ''; + preConfigure = '' + # Make sure our Python comes before any other Python (e.g. from asciidoc) + export PATH="${lib.makeBinPath [ python3Packages.python ]}:$PATH" + ''; + configureFlags = [ "--enable-prefix-only=yes" "--disable-pcp" # TODO: figure out how to package its dependency @@ -270,6 +281,7 @@ stdenv.mkDerivation (finalAttrs: { ''; passthru = { + inherit python3Packages; tests = { inherit (nixosTests) cockpit; }; updateScript = nix-update-script { }; cockpitPath = [ From 503c0e88cee0e71237bf843ca371a3e278692684 Mon Sep 17 00:00:00 2001 From: andre4ik3 Date: Wed, 4 Feb 2026 02:31:12 +0000 Subject: [PATCH 2/2] cockpit-zfs: use Python from cockpit, drop firewalld dependency Closes #486590 --- pkgs/by-name/co/cockpit-zfs/package.nix | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/pkgs/by-name/co/cockpit-zfs/package.nix b/pkgs/by-name/co/cockpit-zfs/package.nix index ee49a41ac1ba..134cd2a35477 100644 --- a/pkgs/by-name/co/cockpit-zfs/package.nix +++ b/pkgs/by-name/co/cockpit-zfs/package.nix @@ -1,9 +1,9 @@ { acl, bash, + cockpit, coreutils, fetchFromGitHub, - firewalld, getent, glibc, iproute2, @@ -15,7 +15,6 @@ msmtp, nodejs, openssh, - python312, samba, shadow, smartmontools, @@ -27,15 +26,6 @@ zfs, }: -let - # Using python312 because py-libzfs is not compatible with newer versions - python = ( - python312.withPackages (ps: [ - ps.pyudev - ps.py-libzfs - ]) - ); -in stdenv.mkDerivation (finalAttrs: { pname = "cockpit-zfs"; version = "1.2.12-2"; @@ -67,7 +57,6 @@ stdenv.mkDerivation (finalAttrs: { acl bash coreutils - firewalld getent glibc iproute2 @@ -76,7 +65,6 @@ stdenv.mkDerivation (finalAttrs: { msmtp nodejs openssh - python samba shadow smartmontools @@ -84,6 +72,8 @@ stdenv.mkDerivation (finalAttrs: { systemd util-linux zfs + cockpit.passthru.python3Packages.pyudev + cockpit.passthru.python3Packages.py-libzfs ]; env = { @@ -151,11 +141,12 @@ stdenv.mkDerivation (finalAttrs: { for script in $out/etc/zfs/zed.d/*; do if [ -f "$script" ]; then wrapProgram "$script" \ + --set PYTHONPATH "/etc/cockpit/${cockpit.passthru.python3Packages.python.sitePackages}" \ --set PATH "${ lib.makeBinPath [ + "/etc/cockpit" coreutils bash - python jq ] }"