From e6bcd21f1f792390ed20c73c296cb1f8b0116e44 Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Sat, 29 Mar 2025 08:23:29 -0400 Subject: [PATCH 1/5] opencollada: formatting Alphabetize params, reorder attrs to be more idiomatic, adjust spacing. --- pkgs/by-name/op/opencollada/package.nix | 38 ++++++++++++------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/pkgs/by-name/op/opencollada/package.nix b/pkgs/by-name/op/opencollada/package.nix index 2e12e13f56c4..274c258ca85c 100644 --- a/pkgs/by-name/op/opencollada/package.nix +++ b/pkgs/by-name/op/opencollada/package.nix @@ -1,18 +1,17 @@ { - lib, - stdenv, + cmake, + darwin, fetchFromGitHub, fetchurl, - cmake, - pkg-config, + lib, libxml2, pcre, - darwin, + pkg-config, + stdenv, }: stdenv.mkDerivation rec { pname = "opencollada"; - version = "1.6.68"; src = fetchFromGitHub { @@ -32,19 +31,6 @@ stdenv.mkDerivation rec { }) ]; - nativeBuildInputs = [ - cmake - pkg-config - ]; - buildInputs = lib.optionals stdenv.hostPlatform.isDarwin ( - with darwin.apple_sdk.frameworks; [ AGL ] - ); - - propagatedBuildInputs = [ - libxml2 - pcre - ]; - postPatch = '' # Drop blanket -Werror as it tends to fail on newer toolchain for @@ -56,6 +42,20 @@ stdenv.mkDerivation rec { --replace math.h cmath ''; + nativeBuildInputs = [ + cmake + pkg-config + ]; + + buildInputs = lib.optionals stdenv.hostPlatform.isDarwin ( + with darwin.apple_sdk.frameworks; [ AGL ] + ); + + propagatedBuildInputs = [ + libxml2 + pcre + ]; + meta = { description = "Library for handling the COLLADA file format"; homepage = "https://github.com/KhronosGroup/OpenCOLLADA/"; From 625c383164dca6eb553a7edbc246a00153798aee Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Sat, 29 Mar 2025 08:25:59 -0400 Subject: [PATCH 2/5] opencollada: remove unneeded Apple SDK Per PR review: > Our darwin SDK has been reworked, so these frameworks are not needed > and provide empty dummies. --- pkgs/by-name/op/opencollada/package.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pkgs/by-name/op/opencollada/package.nix b/pkgs/by-name/op/opencollada/package.nix index 274c258ca85c..58d743702fee 100644 --- a/pkgs/by-name/op/opencollada/package.nix +++ b/pkgs/by-name/op/opencollada/package.nix @@ -1,6 +1,5 @@ { cmake, - darwin, fetchFromGitHub, fetchurl, lib, @@ -47,10 +46,6 @@ stdenv.mkDerivation rec { pkg-config ]; - buildInputs = lib.optionals stdenv.hostPlatform.isDarwin ( - with darwin.apple_sdk.frameworks; [ AGL ] - ); - propagatedBuildInputs = [ libxml2 pcre From 7380fd09432e846e6ebb987bc06780b3c375db5c Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Sun, 2 Mar 2025 21:44:24 -0500 Subject: [PATCH 3/5] opencollada-blender: init at unstable-2025-01-30 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Blender is now using a fork of OpenCOLLADA. They have done so since 4.2, but in the upcoming Blender 4.4, Blender will fail to build with the original and needs this fork. This fork “removes everything (a lot!) that is not actually needed by Blender” and so is likely not suitable for use by other projects (of which there are a few within Nixpkgs). See more in [upstream README][1]. [1]: https://github.com/aras-p/OpenCOLLADA/blob/4526eb8aaa6462c71fbedd23103976c151a01c50/README.md --- .../op/opencollada-blender/package.nix | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 pkgs/by-name/op/opencollada-blender/package.nix diff --git a/pkgs/by-name/op/opencollada-blender/package.nix b/pkgs/by-name/op/opencollada-blender/package.nix new file mode 100644 index 000000000000..0048aaa2ea2c --- /dev/null +++ b/pkgs/by-name/op/opencollada-blender/package.nix @@ -0,0 +1,39 @@ +{ + cmake, + fetchFromGitHub, + lib, + libxml2, + pcre, + pkg-config, + stdenv, +}: + +stdenv.mkDerivation { + pname = "opencollada"; + version = "unstable-2025-01-30"; + + src = fetchFromGitHub { + owner = "aras-p"; + repo = "OpenCOLLADA"; + rev = "4526eb8aaa6462c71fbedd23103976c151a01c50"; + sha256 = "sha256-ctr+GjDzxOJxBfaMwjwayPkAOcF+FMsP1X72QCOwvTY="; + }; + + nativeBuildInputs = [ + cmake + pkg-config + ]; + + propagatedBuildInputs = [ + libxml2 + pcre + ]; + + meta = { + description = "Library for handling the COLLADA file format"; + homepage = "https://github.com/KhronosGroup/OpenCOLLADA/"; + maintainers = [ lib.maintainers.amarshall ]; + platforms = lib.platforms.unix; + license = lib.licenses.mit; + }; +} From 12be955b9e3e029f0c6274122b5fc040324f898a Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Thu, 20 Mar 2025 11:20:07 -0400 Subject: [PATCH 4/5] blender: move to pkgs/by-name --- pkgs/{applications/misc => by-name/bl}/blender/darwin.patch | 0 pkgs/{applications/misc => by-name/bl}/blender/draco.patch | 0 pkgs/{applications/misc => by-name/bl}/blender/libdecor.patch | 0 .../misc/blender/default.nix => by-name/bl/blender/package.nix} | 0 pkgs/{applications/misc => by-name/bl}/blender/test-cuda.py | 0 pkgs/{applications/misc => by-name/bl}/blender/wrapper.nix | 0 pkgs/top-level/all-packages.nix | 2 +- 7 files changed, 1 insertion(+), 1 deletion(-) rename pkgs/{applications/misc => by-name/bl}/blender/darwin.patch (100%) rename pkgs/{applications/misc => by-name/bl}/blender/draco.patch (100%) rename pkgs/{applications/misc => by-name/bl}/blender/libdecor.patch (100%) rename pkgs/{applications/misc/blender/default.nix => by-name/bl/blender/package.nix} (100%) rename pkgs/{applications/misc => by-name/bl}/blender/test-cuda.py (100%) rename pkgs/{applications/misc => by-name/bl}/blender/wrapper.nix (100%) diff --git a/pkgs/applications/misc/blender/darwin.patch b/pkgs/by-name/bl/blender/darwin.patch similarity index 100% rename from pkgs/applications/misc/blender/darwin.patch rename to pkgs/by-name/bl/blender/darwin.patch diff --git a/pkgs/applications/misc/blender/draco.patch b/pkgs/by-name/bl/blender/draco.patch similarity index 100% rename from pkgs/applications/misc/blender/draco.patch rename to pkgs/by-name/bl/blender/draco.patch diff --git a/pkgs/applications/misc/blender/libdecor.patch b/pkgs/by-name/bl/blender/libdecor.patch similarity index 100% rename from pkgs/applications/misc/blender/libdecor.patch rename to pkgs/by-name/bl/blender/libdecor.patch diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/by-name/bl/blender/package.nix similarity index 100% rename from pkgs/applications/misc/blender/default.nix rename to pkgs/by-name/bl/blender/package.nix diff --git a/pkgs/applications/misc/blender/test-cuda.py b/pkgs/by-name/bl/blender/test-cuda.py similarity index 100% rename from pkgs/applications/misc/blender/test-cuda.py rename to pkgs/by-name/bl/blender/test-cuda.py diff --git a/pkgs/applications/misc/blender/wrapper.nix b/pkgs/by-name/bl/blender/wrapper.nix similarity index 100% rename from pkgs/applications/misc/blender/wrapper.nix rename to pkgs/by-name/bl/blender/wrapper.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 966a08bebffb..25f2bc972aae 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12624,7 +12624,7 @@ with pkgs; pinentry = pinentry-curses; }; - blender = callPackage ../applications/misc/blender { + blender = callPackage ../by-name/bl/blender/package.nix { openexr = openexr_3; python3Packages = python311Packages; inherit (darwin.apple_sdk.frameworks) Cocoa CoreGraphics ForceFeedback OpenAL OpenGL; From 310df2b3acd7c7ec29118f3621d4fdd676cda6eb Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Thu, 20 Mar 2025 11:28:22 -0400 Subject: [PATCH 5/5] blender: 4.3.2 -> 4.4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Changelog: https://developer.blender.org/docs/release_notes/4.4/ Diff: https://projects.blender.org/blender/blender/compare/v4.3.2..v4.4.0 - Blender now needs its fork of OpenCOLLADA to build successfully - Blender is now bundling assets with the release tarballs again, so go back to single src - Blender changed Draco location so we can have it work out-of-the-box and don’t have to move the Python dir around anymore; see upstream faaa12a10131b93757a8395f3448040436981e5f - Other patches we backported are now applied and unneeded - Blender added Pipewire support, but it’s off in their release builds currently so turn it off as well --- pkgs/by-name/bl/blender/draco.patch | 33 ------------------- pkgs/by-name/bl/blender/package.nix | 51 ++++++----------------------- 2 files changed, 10 insertions(+), 74 deletions(-) delete mode 100644 pkgs/by-name/bl/blender/draco.patch diff --git a/pkgs/by-name/bl/blender/draco.patch b/pkgs/by-name/bl/blender/draco.patch deleted file mode 100644 index a5abed18453f..000000000000 --- a/pkgs/by-name/bl/blender/draco.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 97596dbee8d..d1ad6ac5de0 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1237,13 +1237,6 @@ set_and_warn_dependency(WITH_PYTHON WITH_CYCLES OFF) - set_and_warn_dependency(WITH_PYTHON WITH_DRACO OFF) - set_and_warn_dependency(WITH_PYTHON WITH_MOD_FLUID OFF) - --if(NOT WITH_PYTHON_MODULE) -- if(WITH_DRACO AND NOT WITH_PYTHON_INSTALL) -- message(STATUS "WITH_DRACO requires WITH_PYTHON_INSTALL to be ON, disabling WITH_DRACO for now") -- set(WITH_DRACO OFF) -- endif() --endif() -- - # enable boost for cycles, audaspace or i18n - # otherwise if the user disabled - -diff --git a/scripts/addons_core/io_scene_gltf2/io/com/draco.py b/scripts/addons_core/io_scene_gltf2/io/com/draco.py -index 75e23162c67..875596c3d2f 100644 ---- a/scripts/addons_core/io_scene_gltf2/io/com/draco.py -+++ b/scripts/addons_core/io_scene_gltf2/io/com/draco.py -@@ -31,8 +31,8 @@ def dll_path() -> Path: - :return: DLL path. - """ - lib_name = 'extern_draco' -- blender_root = Path(bpy.app.binary_path).parent -- python_lib = Path('{v[0]}.{v[1]}/python/lib'.format(v=bpy.app.version)) -+ blender_root = Path(bpy.app.binary_path).parent.parent -+ python_lib = Path('share/blender/{v[0]}.{v[1]}/python/lib'.format(v=bpy.app.version)) - python_version = 'python{v[0]}.{v[1]}'.format(v=sys.version_info) - - path = os.environ.get('BLENDER_EXTERN_DRACO_LIBRARY_PATH') diff --git a/pkgs/by-name/bl/blender/package.nix b/pkgs/by-name/bl/blender/package.nix index c5a4aa8405b2..6d4516c07a6e 100644 --- a/pkgs/by-name/bl/blender/package.nix +++ b/pkgs/by-name/bl/blender/package.nix @@ -18,8 +18,6 @@ cudaSupport ? config.cudaSupport, dbus, embree, - fetchgit, - fetchpatch2, fetchzip, ffmpeg, fftw, @@ -56,7 +54,7 @@ makeWrapper, mesa, openal, - opencollada, + opencollada-blender, opencolorio, openexr, openimagedenoise, @@ -114,42 +112,15 @@ in stdenv'.mkDerivation (finalAttrs: { pname = "blender"; - version = "4.3.2"; + version = "4.4.0"; - srcs = [ - (fetchzip { - name = "source"; - url = "https://download.blender.org/source/blender-${finalAttrs.version}.tar.xz"; - hash = "sha256-LCU2JpQbvQ+W/jC+H8J2suh+X5sTLOG9TcE2EeHqVh4="; - }) - (fetchgit { - name = "assets"; - url = "https://projects.blender.org/blender/blender-assets.git"; - rev = "v${finalAttrs.version}"; - fetchLFS = true; - hash = "sha256-B/UibETNBEUAO1pLCY6wR/Mmdk2o9YyNs6z6pV8dBJI="; - }) - ]; + srcs = fetchzip { + name = "source"; + url = "https://download.blender.org/source/blender-${finalAttrs.version}.tar.xz"; + hash = "sha256-pAzOayAPyRYgTixAyg2prkUtI70uFulRuBYhgU9ZNw4="; + }; - postUnpack = '' - chmod -R u+w * - rm -r assets/working - mv assets --target-directory source/release/datafiles/ - ''; - - sourceRoot = "source"; - - patches = [ - ./draco.patch - (fetchpatch2 { - url = "https://gitlab.archlinux.org/archlinux/packaging/packages/blender/-/raw/4b6214600e11851d7793256e2f6846a594e6f223/ffmpeg-7-1.patch"; - hash = "sha256-YXXqP/+79y3f41n3cJ3A1RBzgdoYqfKZD/REqmWYdgQ="; - }) - (fetchpatch2 { - url = "https://gitlab.archlinux.org/archlinux/packaging/packages/blender/-/raw/4b6214600e11851d7793256e2f6846a594e6f223/ffmpeg-7-2.patch"; - hash = "sha256-mF6IA/dbHdNEkBN5XXCRcLIZ/8kXoirNwq7RDuLRAjw="; - }) - ] ++ lib.optional stdenv.hostPlatform.isDarwin ./darwin.patch; + patches = [ ] ++ lib.optional stdenv.hostPlatform.isDarwin ./darwin.patch; postPatch = (lib.optionalString stdenv.hostPlatform.isDarwin '' @@ -201,6 +172,7 @@ stdenv'.mkDerivation (finalAttrs: { "-DWITH_OPENIMAGEDENOISE=${if openImageDenoiseSupport then "ON" else "OFF"}" "-DWITH_OPENSUBDIV=ON" "-DWITH_OPENVDB=ON" + "-DWITH_PIPEWIRE=OFF" "-DWITH_PULSEAUDIO=OFF" "-DWITH_PYTHON_INSTALL=OFF" "-DWITH_PYTHON_INSTALL_NUMPY=OFF" @@ -330,7 +302,7 @@ stdenv'.mkDerivation (finalAttrs: { wayland wayland-protocols ] - ++ lib.optional colladaSupport opencollada + ++ lib.optional colladaSupport opencollada-blender ++ lib.optional jackaudioSupport libjack2 ++ lib.optional spaceNavSupport libspnav ++ lib.optionals vulkanSupport [ @@ -365,9 +337,6 @@ stdenv'.mkDerivation (finalAttrs: { mkdir $out/Applications mv $out/Blender.app $out/Applications '' - + lib.optionalString stdenv.hostPlatform.isLinux '' - mv $out/share/blender/${lib.versions.majorMinor finalAttrs.version}/python{,-ext} - '' + '' buildPythonPath "$pythonPath" wrapProgram $blenderExecutable \