From b2ee4b62745b0b85fa5708b5429fa419b48eb101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 14 Nov 2025 06:57:21 -0800 Subject: [PATCH 1/7] python3Packages.manim: don't override av Overriding Python packages isn't allowed within python3Packages. --- pkgs/development/python-modules/manim/default.nix | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/pkgs/development/python-modules/manim/default.nix b/pkgs/development/python-modules/manim/default.nix index 67d820774f35..04d864118ac3 100644 --- a/pkgs/development/python-modules/manim/default.nix +++ b/pkgs/development/python-modules/manim/default.nix @@ -183,16 +183,6 @@ let cbfonts-fd ] ); - # https://github.com/ManimCommunity/manim/pull/4037 - av_13_1 = av.overridePythonAttrs rec { - version = "13.1.0"; - src = fetchFromGitHub { - owner = "PyAV-Org"; - repo = "PyAV"; - tag = "v${version}"; - hash = "sha256-x2a9SC4uRplC6p0cD7fZcepFpRidbr6JJEEOaGSWl60="; - }; - }; in buildPythonPackage rec { pname = "manim"; @@ -216,7 +206,7 @@ buildPythonPackage rec { buildInputs = [ cairo ]; dependencies = [ - av_13_1 + av beautifulsoup4 click cloup @@ -278,6 +268,8 @@ buildPythonPackage rec { pythonImportsCheck = [ "manim" ]; meta = { + # https://github.com/ManimCommunity/manim/pull/4037 + broken = lib.versionAtLeast av.version "14"; description = "Animation engine for explanatory math videos - Community version"; longDescription = '' Manim is an animation engine for explanatory math videos. It's used to From 0dabb109e41d68f26826a102afb2778721919bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 14 Nov 2025 17:48:42 -0800 Subject: [PATCH 2/7] python3Packages.av_13: init at 13.1.0 --- .../python-modules/av_13/default.nix | 90 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 92 insertions(+) create mode 100644 pkgs/development/python-modules/av_13/default.nix diff --git a/pkgs/development/python-modules/av_13/default.nix b/pkgs/development/python-modules/av_13/default.nix new file mode 100644 index 000000000000..333aee52270c --- /dev/null +++ b/pkgs/development/python-modules/av_13/default.nix @@ -0,0 +1,90 @@ +{ + buildPythonPackage, + cython, + fetchFromGitHub, + fetchurl, + ffmpeg_7-headless, + lib, + linkFarm, + numpy, + pillow, + pkg-config, + pytestCheckHook, + setuptools, +}: + +buildPythonPackage rec { + pname = "av"; + version = "13.1.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "PyAV-Org"; + repo = "PyAV"; + tag = "v${version}"; + hash = "sha256-x2a9SC4uRplC6p0cD7fZcepFpRidbr6JJEEOaGSWl60="; + }; + + build-system = [ + cython + setuptools + ]; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ ffmpeg_7-headless ]; + + preCheck = + let + testSamples = linkFarm "pyav-test-samples" ( + lib.mapAttrs (_: fetchurl) (lib.importTOML ../av/test-samples.toml) + ); + in + '' + # ensure we import the built version + rm -r av + ln -s ${testSamples} tests/assets + ''; + + nativeCheckInputs = [ + numpy + pillow + pytestCheckHook + ]; + + __darwinAllowLocalNetworking = true; + + pythonImportsCheck = [ + "av" + "av.audio" + "av.buffer" + "av.bytesource" + "av.codec" + "av.container" + "av._core" + "av.datasets" + "av.descriptor" + "av.dictionary" + "av.error" + "av.filter" + "av.format" + "av.frame" + "av.logging" + "av.option" + "av.packet" + "av.plane" + "av.stream" + "av.subtitles" + "av.utils" + "av.video" + ]; + + meta = { + changelog = "https://github.com/PyAV-Org/PyAV/blob/${src.tag}/CHANGELOG.rst"; + description = "Pythonic bindings for FFmpeg"; + homepage = "https://github.com/PyAV-Org/PyAV"; + license = lib.licenses.bsd2; + mainProgram = "pyav"; + maintainers = [ lib.maintainers.dotlambda ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 471b0d264065..4458b561ddf7 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1208,6 +1208,8 @@ self: super: with self; { av = callPackage ../development/python-modules/av { }; + av_13 = callPackage ../development/python-modules/av_13 { }; + avahi = toPythonModule ( pkgs.avahi.override { inherit python; From 6152c6d0a24bd8217c182f31c8291df3ab35173c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 14 Nov 2025 07:02:03 -0800 Subject: [PATCH 3/7] git-sim: fix av override --- pkgs/by-name/gi/git-sim/package.nix | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/pkgs/by-name/gi/git-sim/package.nix b/pkgs/by-name/gi/git-sim/package.nix index 093a54006f7a..d3a072799348 100644 --- a/pkgs/by-name/gi/git-sim/package.nix +++ b/pkgs/by-name/gi/git-sim/package.nix @@ -13,17 +13,7 @@ let defaultOverrides = [ (self: super: { - av = ( - super.av.overridePythonAttrs rec { - version = "13.1.0"; - src = fetchFromGitHub { - owner = "PyAV-Org"; - repo = "PyAV"; - tag = "v${version}"; - hash = "sha256-x2a9SC4uRplC6p0cD7fZcepFpRidbr6JJEEOaGSWl60="; - }; - } - ); + av = self.av_13; }) ]; From 15c2333fe89607e164129470c3b5a41074a7661b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 14 Nov 2025 07:03:59 -0800 Subject: [PATCH 4/7] git-sim: unpin python3 --- pkgs/by-name/gi/git-sim/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gi/git-sim/package.nix b/pkgs/by-name/gi/git-sim/package.nix index d3a072799348..9fe4ab882feb 100644 --- a/pkgs/by-name/gi/git-sim/package.nix +++ b/pkgs/by-name/gi/git-sim/package.nix @@ -3,7 +3,7 @@ stdenv, fetchFromGitHub, installShellFiles, - python312, + python3, # Override Python packages using # self: super: { pkg = super.pkg.overridePythonAttrs (oldAttrs: { ... }); } @@ -17,7 +17,7 @@ let }) ]; - python = python312.override { + python = python3.override { self = python; packageOverrides = lib.composeManyExtensions (defaultOverrides ++ [ packageOverrides ]); }; From 2d9bf263900170f286e5c22cfdb9e0d0901478ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 14 Nov 2025 17:49:58 -0800 Subject: [PATCH 5/7] home-assistant: use av_13 --- pkgs/servers/home-assistant/default.nix | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 9c1d9c3c137a..f215353f88d9 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -86,15 +86,7 @@ let ]; }); - av = (super.av.override { ffmpeg-headless = ffmpeg_7-headless; }).overridePythonAttrs rec { - version = "13.1.0"; - src = fetchFromGitHub { - owner = "PyAV-Org"; - repo = "PyAV"; - tag = "v${version}"; - hash = "sha256-x2a9SC4uRplC6p0cD7fZcepFpRidbr6JJEEOaGSWl60="; - }; - }; + av = self.av_13; imageio = super.imageio.overridePythonAttrs (oldAttrs: { disabledTests = oldAttrs.disabledTests or [ ] ++ [ From cd3e1beac58da637c28b3f134714670827fe153b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 14 Nov 2025 17:54:48 -0800 Subject: [PATCH 6/7] manim: pin av at 13.1.0 --- pkgs/by-name/ma/manim/package.nix | 12 ++++++++++++ pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 pkgs/by-name/ma/manim/package.nix diff --git a/pkgs/by-name/ma/manim/package.nix b/pkgs/by-name/ma/manim/package.nix new file mode 100644 index 000000000000..631cbbf2ffeb --- /dev/null +++ b/pkgs/by-name/ma/manim/package.nix @@ -0,0 +1,12 @@ +{ + python3Packages, +}: + +let + pythonPackages = python3Packages.overrideScope ( + self: super: { + av = self.av_13; + } + ); +in +pythonPackages.toPythonApplication pythonPackages.manim diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 52e3564b51b3..a1bc4374bf88 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11143,8 +11143,6 @@ with pkgs; m32edit = callPackage ../applications/audio/midas/m32edit.nix { }; - manim = python3Packages.toPythonApplication python3Packages.manim; - manim-slides = (python3Packages.toPythonApplication python3Packages.manim-slides).overridePythonAttrs (oldAttrs: { From 813140d8fd561428499279b7ad95f258b173d1dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Fri, 14 Nov 2025 17:59:18 -0800 Subject: [PATCH 7/7] manim-slides: pin av at 13.1.0 --- pkgs/by-name/ma/manim-slides/package.nix | 14 ++++++++++++++ pkgs/top-level/all-packages.nix | 6 ------ 2 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 pkgs/by-name/ma/manim-slides/package.nix diff --git a/pkgs/by-name/ma/manim-slides/package.nix b/pkgs/by-name/ma/manim-slides/package.nix new file mode 100644 index 000000000000..ec66070ce3e4 --- /dev/null +++ b/pkgs/by-name/ma/manim-slides/package.nix @@ -0,0 +1,14 @@ +{ + python3Packages, +}: + +let + pythonPackages = python3Packages.overrideScope ( + self: super: { + av = self.av_13; + } + ); +in +(pythonPackages.toPythonApplication pythonPackages.manim-slides).overridePythonAttrs (oldAttrs: { + dependencies = oldAttrs.dependencies ++ oldAttrs.optional-dependencies.pyqt6-full; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a1bc4374bf88..c0cca4ddc872 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11143,12 +11143,6 @@ with pkgs; m32edit = callPackage ../applications/audio/midas/m32edit.nix { }; - manim-slides = - (python3Packages.toPythonApplication python3Packages.manim-slides).overridePythonAttrs - (oldAttrs: { - dependencies = oldAttrs.dependencies ++ oldAttrs.optional-dependencies.pyqt6-full; - }); - manuskript = libsForQt5.callPackage ../applications/editors/manuskript { }; minari = python3Packages.toPythonApplication python3Packages.minari;