Merge pull request #325292 from gador/blender-py12

This commit is contained in:
Sandro
2024-07-08 11:12:12 +02:00
committed by GitHub
+26 -17
View File
@@ -19,6 +19,7 @@
darwin,
dbus,
embree,
fetchpatch,
fetchurl,
fetchzip,
ffmpeg,
@@ -71,7 +72,7 @@
pkg-config,
potrace,
pugixml,
python311Packages, # must use instead of python3.pkgs, see https://github.com/NixOS/nixpkgs/issues/211340
python3Packages, # must use instead of python3.pkgs, see https://github.com/NixOS/nixpkgs/issues/211340
rocmPackages, # comes with a significantly larger closure size
runCommand,
spaceNavSupport ? stdenv.isLinux,
@@ -86,7 +87,6 @@
}:
let
python3Packages = python311Packages;
python3 = python3Packages.python;
pyPkgsOpenusd = python3Packages.openusd.override { withOsl = false; };
@@ -111,7 +111,13 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-T7s69k0/hN9ccQN0hFQibBiFwawu1Tc9DOoegOgsCEg=";
};
patches = [ ./draco.patch ] ++ lib.optional stdenv.isDarwin ./darwin.patch;
patches = [
./draco.patch
(fetchpatch {
url = "https://projects.blender.org/blender/blender/commit/ae35b5758791bebb21741f9b505b9fca347ae50e.patch";
hash = "sha256-xUi55+7aiwEjtjqOi8to1YxdPlsBUThCCkCa5T6LIQc=";
})
] ++ lib.optional stdenv.isDarwin ./darwin.patch;
postPatch =
(
@@ -177,7 +183,9 @@ stdenv.mkDerivation (finalAttrs: {
"-DWITH_GHOST_WAYLAND_DYNLOAD=OFF"
"-DWITH_GHOST_WAYLAND_LIBDECOR=ON"
]
++ lib.optionals (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) [ "-DWITH_CYCLES_EMBREE=OFF" ]
++ lib.optionals (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) [
"-DWITH_CYCLES_EMBREE=OFF"
]
++ lib.optionals stdenv.isDarwin [
"-DLIBDIR=/does-not-exist"
"-DWITH_CYCLES_OSL=OFF" # causes segfault on aarch64-darwin
@@ -320,15 +328,16 @@ stdenv.mkDerivation (finalAttrs: {
# Set RUNPATH so that libcuda and libnvrtc in /run/opengl-driver(-32)/lib can be
# found. See the explanation in libglvnd.
postFixup = lib.optionalString cudaSupport ''
for program in $out/bin/blender $out/bin/.blender-wrapped; do
isELF "$program" || continue
addOpenGLRunpath "$program"
done
''
+ lib.optionalString stdenv.isDarwin ''
makeWrapper $out/Applications/Blender.app/Contents/MacOS/Blender $out/bin/blender
'';
postFixup =
lib.optionalString cudaSupport ''
for program in $out/bin/blender $out/bin/.blender-wrapped; do
isELF "$program" || continue
addOpenGLRunpath "$program"
done
''
+ lib.optionalString stdenv.isDarwin ''
makeWrapper $out/Applications/Blender.app/Contents/MacOS/Blender $out/bin/blender
'';
passthru = {
python = python3;
@@ -342,9 +351,7 @@ stdenv.mkDerivation (finalAttrs: {
};
tests = {
render = runCommand "${finalAttrs.pname}-test" {
nativeBuildInputs = [ mesa.llvmpipeHook ];
} ''
render = runCommand "${finalAttrs.pname}-test" { nativeBuildInputs = [ mesa.llvmpipeHook ]; } ''
set -euo pipefail
cat <<'PYTHON' > scene-config.py
import bpy
@@ -396,7 +403,9 @@ stdenv.mkDerivation (finalAttrs: {
# They comment two licenses: GPLv2 and Blender License, but they
# say: "We've decided to cancel the BL offering for an indefinite period."
# OptiX, enabled with cudaSupport, is non-free.
license = with lib.licenses; [ gpl2Plus ] ++ lib.optional cudaSupport (unfree // { shortName = "NVidia OptiX EULA"; });
license =
with lib.licenses;
[ gpl2Plus ] ++ lib.optional cudaSupport (unfree // { shortName = "NVidia OptiX EULA"; });
platforms = [
"aarch64-linux"