Unverified Commit 70ba24ab authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

Merge pull request #325292 from gador/blender-py12

parents ad6368ff 4dbf1080
Loading
Loading
Loading
Loading
+26 −17
Original line number Diff line number Diff line
@@ -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,7 +328,8 @@ 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 ''
  postFixup =
    lib.optionalString cudaSupport ''
      for program in $out/bin/blender $out/bin/.blender-wrapped; do
        isELF "$program" || continue
        addOpenGLRunpath "$program"
@@ -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"