From aa3f97bb8de8c01c941e09b630b253866d563b9b Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 2 May 2026 20:52:09 +0300 Subject: [PATCH 1/6] picard: put pytestCheckHook in nativeCheckInputs --- pkgs/by-name/pi/picard/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/pi/picard/package.nix b/pkgs/by-name/pi/picard/package.nix index 625ede2d9228..78f406dc7cf4 100644 --- a/pkgs/by-name/pi/picard/package.nix +++ b/pkgs/by-name/pi/picard/package.nix @@ -31,7 +31,6 @@ pythonPackages.buildPythonApplication (finalAttrs: { nativeBuildInputs = [ gettext qt5.wrapQtAppsHook - pythonPackages.pytestCheckHook ] ++ lib.optionals (pyqt5.multimediaEnabled) [ gst_all_1.gst-libav @@ -67,6 +66,9 @@ pythonPackages.buildPythonApplication (finalAttrs: { "--localedir=${placeholder "out"}/share/locale" ]; + nativeCheckInputs = [ + pythonPackages.pytestCheckHook + ]; preCheck = '' export HOME=$(mktemp -d) ''; From 09504c40570b5ea145d0e854da7a0f5882fdd7e5 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 2 May 2026 20:52:46 +0300 Subject: [PATCH 2/6] picard: use writableTmpDirAsHomeHook --- pkgs/by-name/pi/picard/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/pi/picard/package.nix b/pkgs/by-name/pi/picard/package.nix index 78f406dc7cf4..ac20983660dd 100644 --- a/pkgs/by-name/pi/picard/package.nix +++ b/pkgs/by-name/pi/picard/package.nix @@ -9,6 +9,8 @@ enablePlayback ? true, gst_all_1, + + writableTmpDirAsHomeHook, }: let @@ -68,10 +70,8 @@ pythonPackages.buildPythonApplication (finalAttrs: { nativeCheckInputs = [ pythonPackages.pytestCheckHook + writableTmpDirAsHomeHook ]; - preCheck = '' - export HOME=$(mktemp -d) - ''; doCheck = true; # In order to spare double wrapping, we use: From 4a618733e77e86c82572357f87b108cedfa63d2f Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 2 May 2026 20:54:26 +0300 Subject: [PATCH 3/6] picard: set pyproject & fix build with it --- pkgs/by-name/pi/picard/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/pi/picard/package.nix b/pkgs/by-name/pi/picard/package.nix index ac20983660dd..4a99ec7dac04 100644 --- a/pkgs/by-name/pi/picard/package.nix +++ b/pkgs/by-name/pi/picard/package.nix @@ -21,7 +21,7 @@ pythonPackages.buildPythonApplication (finalAttrs: { pname = "picard"; # nix-update --commit picard --version-regex 'release-(.*)' version = "2.13.3"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "metabrainz"; @@ -33,6 +33,7 @@ pythonPackages.buildPythonApplication (finalAttrs: { nativeBuildInputs = [ gettext qt5.wrapQtAppsHook + pythonPackages.setuptools ] ++ lib.optionals (pyqt5.multimediaEnabled) [ gst_all_1.gst-libav @@ -51,6 +52,7 @@ pythonPackages.buildPythonApplication (finalAttrs: { ]; propagatedBuildInputs = with pythonPackages; [ + charset-normalizer chromaprint discid fasteners From 17ccbbfa87cd43a739f01b88adb63f184b5b0764 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 2 May 2026 21:01:36 +0300 Subject: [PATCH 4/6] picard: set strictDeps --- pkgs/by-name/pi/picard/package.nix | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/pi/picard/package.nix b/pkgs/by-name/pi/picard/package.nix index 4a99ec7dac04..1448d4fe04ea 100644 --- a/pkgs/by-name/pi/picard/package.nix +++ b/pkgs/by-name/pi/picard/package.nix @@ -22,6 +22,7 @@ pythonPackages.buildPythonApplication (finalAttrs: { # nix-update --commit picard --version-regex 'release-(.*)' version = "2.13.3"; pyproject = true; + strictDeps = true; src = fetchFromGitHub { owner = "metabrainz"; @@ -34,13 +35,6 @@ pythonPackages.buildPythonApplication (finalAttrs: { gettext qt5.wrapQtAppsHook pythonPackages.setuptools - ] - ++ lib.optionals (pyqt5.multimediaEnabled) [ - gst_all_1.gst-libav - gst_all_1.gst-plugins-base - gst_all_1.gst-plugins-good - gst_all_1.gst-vaapi - gst_all_1.gstreamer ]; buildInputs = [ @@ -49,6 +43,10 @@ pythonPackages.buildPythonApplication (finalAttrs: { ] ++ lib.optionals (pyqt5.multimediaEnabled) [ qt5.qtmultimedia.bin + gst_all_1.gst-libav + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-vaapi ]; propagatedBuildInputs = with pythonPackages; [ From 4f7d285bcc2b553d798f42867b58198efa4467d5 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 2 May 2026 21:02:00 +0300 Subject: [PATCH 5/6] picard: set __structuredAttrs --- pkgs/by-name/pi/picard/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/pi/picard/package.nix b/pkgs/by-name/pi/picard/package.nix index 1448d4fe04ea..392c80f1ec43 100644 --- a/pkgs/by-name/pi/picard/package.nix +++ b/pkgs/by-name/pi/picard/package.nix @@ -23,6 +23,7 @@ pythonPackages.buildPythonApplication (finalAttrs: { version = "2.13.3"; pyproject = true; strictDeps = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "metabrainz"; From 11b7ca89eea35475f7e972b95dfa0c1d163ac1e4 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sat, 2 May 2026 21:02:46 +0300 Subject: [PATCH 6/6] picard: fix eval & build on Darwin with avoiding unsupported dependencies Fixes #515736. --- pkgs/by-name/pi/picard/package.nix | 63 ++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/pkgs/by-name/pi/picard/package.nix b/pkgs/by-name/pi/picard/package.nix index 392c80f1ec43..db9009ebaedf 100644 --- a/pkgs/by-name/pi/picard/package.nix +++ b/pkgs/by-name/pi/picard/package.nix @@ -1,5 +1,6 @@ { lib, + stdenv, python312Packages, fetchFromGitHub, @@ -40,27 +41,55 @@ pythonPackages.buildPythonApplication (finalAttrs: { buildInputs = [ qt5.qtbase + ] + ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform qt5.qtwayland) [ qt5.qtwayland ] - ++ lib.optionals (pyqt5.multimediaEnabled) [ - qt5.qtmultimedia.bin - gst_all_1.gst-libav - gst_all_1.gst-plugins-base - gst_all_1.gst-plugins-good - gst_all_1.gst-vaapi + ++ lib.optionals (pyqt5.multimediaEnabled) ( + [ + qt5.qtmultimedia.bin + gst_all_1.gst-libav + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + ] + ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform gst_all_1.gst-vaapi) [ + gst_all_1.gst-vaapi + ] + ); + + pythonRelaxDeps = lib.optionals stdenv.hostPlatform.isDarwin [ + # Should be resolved in the next version + "pyobjc-core" + "pyobjc-framework-Cocoa" ]; - propagatedBuildInputs = with pythonPackages; [ - charset-normalizer - chromaprint - discid - fasteners - markdown - mutagen - pyjwt - pyqt5 - python-dateutil - pyyaml + propagatedBuildInputs = + with pythonPackages; + [ + charset-normalizer + chromaprint + discid + fasteners + markdown + mutagen + pyjwt + pyqt5 + python-dateutil + pyyaml + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + pyobjc-core + pyobjc-framework-Cocoa + ]; + + # Not reporting any of these issues because the next upstream version will + # include many breaking changes and this might not be relevant. + disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [ + "test/test_const_appdirs.py::AppPathsTest::test_cache_folder_macos" # - AssertionError: '/nix/var/nix/builds/nix-54642-966088698/.h[33 chars]card' ... + "test/test_const_appdirs.py::AppPathsTest::test_config_folder_macos" # - AssertionError: '/nix/var/nix/builds/nix-54642-966088698/.h[38 chars]card' ... + "test/test_const_appdirs.py::AppPathsTest::test_plugin_folder_macos" # - AssertionError: '/nix/var/nix/builds/nix-54642-966088698/.h[46 chars]gins' ... + "test/test_plugins.py" # Various PermissionError for /var/empty/Library - hopefully will be resolved in the next release. + "test/test_utils.py::HiddenFileTest::test_macos" # - FileNotFoundError: [Errno 2] No such file or directory: 'SetFile' ]; setupPyGlobalFlags = [