summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorthe-furry-hubofeverything <hubblethewolverine@gmail.com>2023-10-29 20:39:27 -0700
committerthe-furry-hubofeverything <hubblethewolverine@gmail.com>2023-11-02 23:03:34 -0700
commitfe4c776ae9c4289d848096fba1621b3c5c6d0bde (patch)
tree73a0e918c09cab9d6be8575713f7b832020248b4 /pkgs
parentbbb31295845463773eabbf178f86813b9b5b4d23 (diff)
downloadnixpkgs-fe4c776ae9c4289d848096fba1621b3c5c6d0bde.tar
nixpkgs-fe4c776ae9c4289d848096fba1621b3c5c6d0bde.tar.gz
nixpkgs-fe4c776ae9c4289d848096fba1621b3c5c6d0bde.tar.bz2
nixpkgs-fe4c776ae9c4289d848096fba1621b3c5c6d0bde.tar.lz
nixpkgs-fe4c776ae9c4289d848096fba1621b3c5c6d0bde.tar.xz
nixpkgs-fe4c776ae9c4289d848096fba1621b3c5c6d0bde.tar.zst
nixpkgs-fe4c776ae9c4289d848096fba1621b3c5c6d0bde.zip
blender: allow functional declaration within withPackages
Based on #257780, separated since it introduces significant changes.

bpycv: update passthru.tests.render

blender-with-packages: deprecated
it is still backwards compatible, but no longer preferred.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/misc/blender/default.nix9
-rw-r--r--pkgs/applications/misc/blender/wrapper.nix24
-rw-r--r--pkgs/development/python-modules/bpycv/default.nix8
-rw-r--r--pkgs/top-level/aliases.nix3
-rw-r--r--pkgs/top-level/all-packages.nix2
5 files changed, 21 insertions, 25 deletions
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 8e7fde6d9c2..7a6db59bf66 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -18,10 +18,13 @@
 , openpgl
 , mesa
 , runCommand
+, callPackage
 }:
 
 let
-  python = python310Packages.python;
+  pythonPackages = python310Packages;
+  inherit (pythonPackages) python;
+  buildEnv = callPackage ./wrapper.nix {};
   optix = fetchzip {
     # url taken from the archlinux blender PKGBUILD
     url = "https://developer.download.nvidia.com/redist/optix/v7.3/OptiX-7.3.0-Include.zip";
@@ -189,7 +192,9 @@ stdenv.mkDerivation (finalAttrs: rec {
   '';
 
   passthru = {
-    inherit python;
+    inherit python pythonPackages;
+
+    withPackages = f: let packages = f pythonPackages; in buildEnv.override { blender = finalAttrs.finalPackage; extraModules = packages; };
 
     tests = {
       render = runCommand "${pname}-test" { } ''
diff --git a/pkgs/applications/misc/blender/wrapper.nix b/pkgs/applications/misc/blender/wrapper.nix
index 3828d61a864..7450827a8fa 100644
--- a/pkgs/applications/misc/blender/wrapper.nix
+++ b/pkgs/applications/misc/blender/wrapper.nix
@@ -2,32 +2,28 @@
 , lib
 , blender
 , makeWrapper
-, python3Packages
+, extraModules ? []
 }:
-{ name ? "wrapped"
-, packages ? []
-}:
-stdenv.mkDerivation {
-  pname = "blender-${name}";
-  inherit (blender) version;
+stdenv.mkDerivation (finalAttrs: {
+  pname = blender.pname + "-wrapped";
   src = blender;
 
-  nativeBuildInputs = [ python3Packages.wrapPython makeWrapper ];
+  inherit (blender) version meta;
+
+  nativeBuildInputs = [ blender.pythonPackages.wrapPython makeWrapper ];
   installPhase = ''
     mkdir $out/{share/applications,bin} -p
-    sed 's/Exec=blender/Exec=blender-${name}/g' $src/share/applications/blender.desktop > $out/share/applications/blender-${name}.desktop
+    sed 's/Exec=blender/Exec=${finalAttrs.finalPackage.pname}/g' $src/share/applications/blender.desktop > $out/share/applications/${finalAttrs.finalPackage.pname}.desktop
     cp -r $src/share/blender $out/share
     cp -r $src/share/doc $out/share
     cp -r $src/share/icons $out/share
 
     buildPythonPath "$pythonPath"
 
-    makeWrapper ${blender}/bin/blender $out/bin/blender-${name} \
+    makeWrapper ${blender}/bin/blender $out/bin/${finalAttrs.finalPackage.pname} \
       --prefix PATH : $program_PATH \
       --prefix PYTHONPATH : $program_PYTHONPATH
   '';
 
-  pythonPath = packages;
-
-  meta = blender.meta;
-}
+  pythonPath = extraModules;
+})
diff --git a/pkgs/development/python-modules/bpycv/default.nix b/pkgs/development/python-modules/bpycv/default.nix
index a6d385e9778..4a3eb5b88f7 100644
--- a/pkgs/development/python-modules/bpycv/default.nix
+++ b/pkgs/development/python-modules/bpycv/default.nix
@@ -2,7 +2,6 @@
 , lib
 , beautifulsoup4
 , blender
-, blender-with-packages
 , boxx
 , bpycv
 , buildPythonPackage
@@ -52,13 +51,8 @@ buildPythonPackage rec {
         hash = "sha256-dGb6KvbXTGTu5f4AqhA+i4AwTqBoR5SdXk0vsMEcD3Q=";
         rev = "6ce0e65c107d572011394da16ffdf851e988dbb4";
       };
-      nativeBuildInputs = [
-        ((blender-with-packages.override {inherit blender python3Packages;}) {
-          packages = [ bpycv ];
-        })
-      ];
     } ''
-      blender-wrapped -b -P ${./bpycv-test.py}
+      ${blender.withPackages (ps: [ps.bpycv])}/bin/blender-wrapped -b -P ${./bpycv-test.py}
     '';
   };
 
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 38c4126a20f..927a0b530d4 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -92,6 +92,9 @@ mapAliases ({
   bird2 = bird; # Added 2022-02-21
   bitwig-studio1 = throw "bitwig-studio1 has been removed, you can upgrade to 'bitwig-studio'"; # Added 2023-01-03
   bitwig-studio2 = throw "bitwig-studio2 has been removed, you can upgrade to 'bitwig-studio'"; # Added 2023-01-03
+  blender-with-packages = args:
+    lib.warn "blender-with-packages is deprecated in favor of blender.withPackages, e.g. `blender.withPackages(ps: [ ps.foobar ])`"
+    (blender.withPackages (_: args.packages)).overrideAttrs (lib.optionalAttrs (args ? name) { pname = "blender-" + args.name; }); # Added 2023-10-30
   bluezFull = throw "'bluezFull' has been renamed to/replaced by 'bluez'"; # Converted to throw 2023-09-10
   boost168 = throw "boost168 has been deprecated in favor of the latest version"; # Added 2023-06-08
   boost169 = throw "boost169 has been deprecated in favor of the latest version"; # Added 2023-06-08
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 53d02142446..2d6f150549d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -30674,8 +30674,6 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Cocoa CoreGraphics ForceFeedback OpenAL OpenGL;
   };
 
-  blender-with-packages = callPackage ../applications/misc/blender/wrapper.nix { };
-
   blender-hip = blender.override { hipSupport = true; };
 
   blflash = callPackage ../tools/misc/blflash { };