From fe4c776ae9c4289d848096fba1621b3c5c6d0bde Mon Sep 17 00:00:00 2001 From: the-furry-hubofeverything Date: Sun, 29 Oct 2023 20:39:27 -0700 Subject: 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. --- pkgs/applications/misc/blender/default.nix | 9 +++++++-- pkgs/applications/misc/blender/wrapper.nix | 24 ++++++++++-------------- 2 files changed, 17 insertions(+), 16 deletions(-) (limited to 'pkgs/applications/misc/blender') diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix index 8e7fde6d9c299..7a6db59bf66dc 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 3828d61a8645c..7450827a8fa92 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; +}) -- cgit 1.4.1