Skip to content

Provide Blender 2.8 beta as an option #55240

Description

@ingenieroariel

Issue description

My daughter wants to use Blender 2.8 on my Nixos machine.

Steps to reproduce

diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 89bd8ee4b3e..bd1f93acf10 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, lib, fetchurl, boost, cmake, ffmpeg, gettext, glew
+{ stdenv, lib, fetchgit, boost, cmake, ffmpeg, gettext, glew
 , ilmbase, libXi, libX11, libXext, libXrender
 , libjpeg, libpng, libsamplerate, libsndfile
-, libtiff, libGLU_combined, openal, opencolorio, openexr, openimageio, openjpeg_1, pythonPackages
+, libtiff, libGLU_combined, openal, opencolorio, openexr, openimageio, openjpeg_1, pythonPackages, python37
 , zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd
 , jackaudioSupport ? false, libjack2
 , cudaSupport ? false, cudatoolkit
@@ -11,14 +11,16 @@
 
 with lib;
 
-let python = pythonPackages.python; in
+let python = python37.withPackages(ps: with ps; [ numpy ]); in
 
 stdenv.mkDerivation rec {
-  name = "blender-2.79b";
+  name = "blender-2.8-beta";
 
-  src = fetchurl {
-    url = "https://download.blender.org/source/${name}.tar.gz";
-    sha256 = "1g4kcdqmf67srzhi3hkdnr4z1ph4h9sza1pahz38mrj998q4r52c";
+  src = fetchgit {
+    url = "https://git.blender.org/blender.git";
+    deepClone = true;
+    rev = "38984b10ff7b8c61c5e1b85a971c77841de5f4e7";
+    sha256 = "1p6w9wch16270wvr0ccy9hp5mw02r90y16695zcy46ins39l5y60";
   };
 
   buildInputs =
@@ -35,7 +37,6 @@ stdenv.mkDerivation rec {
 
   postPatch =
     ''
-      substituteInPlace doc/manpage/blender.1.py --replace /usr/bin/python ${python}/bin/python3
       substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"'
     '';
 
@@ -55,8 +56,8 @@ stdenv.mkDerivation rec {
       "-DPYTHON_LIBPATH=${python}/lib"
       "-DPYTHON_INCLUDE_DIR=${python}/include/${python.libPrefix}m"
       "-DPYTHON_VERSION=${python.pythonVersion}"
-      "-DWITH_PYTHON_INSTALL=OFF"
-      "-DWITH_PYTHON_INSTALL_NUMPY=OFF"
+      "-DWITH_PYTHON_INSTALL=ON"
+      "-DWITH_PYTHON_INSTALL_NUMPY=ON"
     ]
     ++ optional jackaudioSupport "-DWITH_JACK=ON"
     ++ optionals cudaSupport
@@ -70,14 +71,14 @@ stdenv.mkDerivation rec {
 
   # Since some dependencies are built with gcc 6, we need gcc 6's
   # libstdc++ in our RPATH. Sigh.
-  NIX_LDFLAGS = optionalString cudaSupport "-rpath ${stdenv.cc.cc.lib}/lib";
+  #NIX_LDFLAGS = optionalString cudaSupport "-rpath ${stdenv.cc.cc.lib}/lib";
 
   enableParallelBuilding = true;
 
   postInstall = optionalString enableNumpy
     ''
       wrapProgram $out/bin/blender \
-        --prefix PYTHONPATH : ${pythonPackages.numpy}/${python.sitePackages}
+        --prefix PYTHONPATH : ${python37Packages.numpy}/${python.sitePackages}
     '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index abef81c16e7..3bc6c3fdb73 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16223,8 +16223,8 @@ in
 
   blender = callPackage  ../applications/misc/blender {
     cudaSupport = config.cudaSupport or false;
-    pythonPackages = python35Packages;
-    stdenv = overrideCC stdenv gcc6;
+    pythonPackages = python37Packages;
+    #stdenv = overrideCC stdenv gcc6;
   };
 
   bluefish = callPackage ../applications/editors/bluefish {

Technical details

  • system: "x86_64-linux"
  • host os: Linux 4.14.78, NixOS, 18.09.1023.06fb0253afa (Jellyfish)
  • multi-user?: yes
  • sandbox: yes
  • version: nix-env (Nix) 2.1.1
  • nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions