From 3467ce6effbef9e38d23a511ce90c58a29472659 Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Tue, 14 Oct 2025 09:43:29 -0400 Subject: [PATCH 1/8] openimageio: alphabetize --- pkgs/by-name/op/openimageio/package.nix | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/pkgs/by-name/op/openimageio/package.nix b/pkgs/by-name/op/openimageio/package.nix index 96eae1217788..534c75aad4e1 100644 --- a/pkgs/by-name/op/openimageio/package.nix +++ b/pkgs/by-name/op/openimageio/package.nix @@ -1,25 +1,25 @@ { lib, - stdenv, - fetchFromGitHub, boost, + bzip2, cmake, + fetchFromGitHub, + fmt, giflib, + libheif, libjpeg, + libjxl, libpng, libtiff, - libwebp, - libjxl, - libheif, libultrahdr, + libwebp, opencolorio, openexr, openjph, - robin-map, - unzip, - fmt, - bzip2, ptex, + robin-map, + stdenv, + unzip, }: stdenv.mkDerivation (finalAttrs: { @@ -47,6 +47,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ boost + bzip2 giflib libheif libjpeg @@ -58,9 +59,8 @@ stdenv.mkDerivation (finalAttrs: { opencolorio openexr openjph - robin-map - bzip2 ptex + robin-map ]; propagatedBuildInputs = [ From 2e82f2743191110ebdadb9a8b476f8d30e695e61 Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Tue, 9 Sep 2025 21:42:31 -0400 Subject: [PATCH 2/8] openimageio: build with python by default, expose in python3Packages This depends on opencolorio, which already has Python in its closure. Add an `enablePython` param anyway in case someone needs it, since opencolorio has a similar flag already (but `enablePython` seems a more common name for this). --- pkgs/by-name/op/openimageio/package.nix | 7 +++++-- pkgs/top-level/python-packages.nix | 7 +++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/op/openimageio/package.nix b/pkgs/by-name/op/openimageio/package.nix index 534c75aad4e1..9119093a1ea7 100644 --- a/pkgs/by-name/op/openimageio/package.nix +++ b/pkgs/by-name/op/openimageio/package.nix @@ -3,6 +3,7 @@ boost, bzip2, cmake, + enablePython ? true, fetchFromGitHub, fmt, giflib, @@ -17,6 +18,7 @@ openexr, openjph, ptex, + python3Packages, robin-map, stdenv, unzip, @@ -61,14 +63,15 @@ stdenv.mkDerivation (finalAttrs: { openjph ptex robin-map - ]; + ] + ++ lib.optional enablePython python3Packages.pybind11; propagatedBuildInputs = [ fmt ]; cmakeFlags = [ - "-DUSE_PYTHON=OFF" + (lib.cmakeBool "USE_PYTHON" enablePython) "-DUSE_QT=OFF" # GNUInstallDirs "-DCMAKE_INSTALL_LIBDIR=lib" # needs relative path for pkg-config diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5ec00f4bb2a6..393a4395b165 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11414,6 +11414,13 @@ self: super: with self; { openidc-client = callPackage ../development/python-modules/openidc-client { }; + openimageio = toPythonModule ( + pkgs.openimageio.override { + enablePython = true; + python3Packages = self; + } + ); + openmm = toPythonModule ( pkgs.openmm.override { python3Packages = self; From b6bab6e76443e50ccd497635451ac0c416cb741a Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Fri, 1 Aug 2025 12:46:24 -0400 Subject: [PATCH 3/8] openshadinglanguage: rename from osl, migrate to pkgs/by-name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The derivation’s `name` attr is already openshadinglanguage, and that is what it is referred to as upstream. Remove unneeded `libsForQt5`—not clear why this was here, this drv does not use Qt. --- .../op/openshadinglanguage/package.nix} | 0 pkgs/development/python-modules/openusd/default.nix | 6 +++--- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 12 ++++++------ 4 files changed, 10 insertions(+), 9 deletions(-) rename pkgs/{development/compilers/osl/default.nix => by-name/op/openshadinglanguage/package.nix} (100%) diff --git a/pkgs/development/compilers/osl/default.nix b/pkgs/by-name/op/openshadinglanguage/package.nix similarity index 100% rename from pkgs/development/compilers/osl/default.nix rename to pkgs/by-name/op/openshadinglanguage/package.nix diff --git a/pkgs/development/python-modules/openusd/default.nix b/pkgs/development/python-modules/openusd/default.nix index 301ad84fa7d2..f7021bb56f1c 100644 --- a/pkgs/development/python-modules/openusd/default.nix +++ b/pkgs/development/python-modules/openusd/default.nix @@ -24,8 +24,8 @@ numpy, opencolorio, openimageio, + openshadinglanguage, opensubdiv, - osl, ptex, pyopengl, pyqt6, @@ -79,7 +79,7 @@ buildPythonPackage rec { }) ]; - env.OSL_LOCATION = "${osl}"; + env.OSL_LOCATION = "${openshadinglanguage}"; cmakeFlags = [ "-DPXR_BUILD_ALEMBIC_PLUGIN=ON" @@ -131,7 +131,7 @@ buildPythonPackage rec { libx11 libxt ] - ++ lib.optionals withOsl [ osl ] + ++ lib.optionals withOsl [ openshadinglanguage ] ++ lib.optionals withUsdView [ qt6.qtbase ] ++ lib.optionals (withUsdView && stdenv.hostPlatform.isLinux) [ qt6.qtwayland ]; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 45239bd1f633..d82a56fce331 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1425,6 +1425,7 @@ mapAliases { orogene = throw "'orogene' uses a wasm-specific fork of async-tar that is vulnerable to CVE-2025-62518, which is not supported by its upstream"; # Added 2025-10-24 ortp = throw "'ortp' has been moved to 'linphonePackages.ortp'"; # Added 2025-09-20 OSCAR = throw "'OSCAR' has been renamed to/replaced by 'oscar'"; # Converted to throw 2025-10-27 + osl = openshadinglanguage; # Added 2026-01-04 osm2xmap = throw "osm2xmap has been removed, as it is unmaintained upstream and depended on old dependencies with broken builds"; # Added 2025-09-16 ossec-agent = throw "'ossec-agent' has been removed due to lack of maintenance"; # Added 2025-11-08 ossec-server = throw "'ossec-server' has been removed due to lack of maintenance"; # Added 2025-11-08 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c84933191769..c70dabeab4db 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3216,6 +3216,12 @@ with pkgs; update-systemd-resolved = callPackage ../tools/networking/openvpn/update-systemd-resolved.nix { }; + openshadinglanguage = callPackage ../by-name/op/openshadinglanguage/package.nix { + libclang = llvmPackages_19.libclang; + clang = clang_19; + llvm = llvm_19; + }; + opentelemetry-collector = opentelemetry-collector-releases.otelcol; opentelemetry-collector-builder = callPackage ../tools/misc/opentelemetry-collector/builder.nix { }; opentelemetry-collector-contrib = opentelemetry-collector-releases.otelcol-contrib; @@ -3232,12 +3238,6 @@ with pkgs; opl3bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor { }; opn2bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor/opn2bankeditor.nix { }; - osl = libsForQt5.callPackage ../development/compilers/osl { - libclang = llvmPackages_19.libclang; - clang = clang_19; - llvm = llvm_19; - }; - p4c = callPackage ../development/compilers/p4c { protobuf = protobuf_21; }; From 81e1e1d2a3a8d463290916cb23b20c6eb94d706f Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Fri, 1 Aug 2025 12:52:33 -0400 Subject: [PATCH 4/8] openshadinglanguage: cleanup - Alphabetize params - Prefer tag over rev for fetcher - Update homepage (former seems dead, this new one is linked from the GitHub repo) --- .../op/openshadinglanguage/package.nix | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/pkgs/by-name/op/openshadinglanguage/package.nix b/pkgs/by-name/op/openshadinglanguage/package.nix index 5d1450f00102..7f6874b3a6bb 100644 --- a/pkgs/by-name/op/openshadinglanguage/package.nix +++ b/pkgs/by-name/op/openshadinglanguage/package.nix @@ -1,23 +1,23 @@ { - stdenv, - lib, - fetchFromGitHub, - cmake, + bison, + boost, clang, + cmake, + fetchFromGitHub, + flex, + lib, libclang, libxml2, - zlib, + llvm, openexr, openimageio, - llvm, - boost, - flex, - bison, partio, pugixml, - robin-map, - util-linux, python3, + robin-map, + stdenv, + util-linux, + zlib, }: let @@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "AcademySoftwareFoundation"; repo = "OpenShadingLanguage"; - rev = "v${finalAttrs.version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-+PNh4xFdH8onxK0OTnQHbdupTaB2hTgDumY0krJiWUE="; }; @@ -86,7 +86,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { description = "Advanced shading language for production GI renderers"; - homepage = "https://opensource.imageworks.com/osl.html"; + homepage = "http://openshadinglanguage.org"; maintainers = with lib.maintainers; [ hodapp ]; license = lib.licenses.bsd3; platforms = lib.platforms.unix; From e1a591b557e084e338de73d0f7fe6edc06910278 Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Fri, 1 Aug 2025 12:53:56 -0400 Subject: [PATCH 5/8] openshadinglanguage: expose in python3Packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It produces a Python module, so we want it to be here. Once-upon-a-time someone told me `python3.pkgs` doesn’t work with splicing or cross-compilation or something, so change that. --- pkgs/by-name/op/openshadinglanguage/package.nix | 4 ++-- pkgs/top-level/python-packages.nix | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/op/openshadinglanguage/package.nix b/pkgs/by-name/op/openshadinglanguage/package.nix index 7f6874b3a6bb..f905ef8ccefe 100644 --- a/pkgs/by-name/op/openshadinglanguage/package.nix +++ b/pkgs/by-name/op/openshadinglanguage/package.nix @@ -13,7 +13,7 @@ openimageio, partio, pugixml, - python3, + python3Packages, robin-map, stdenv, util-linux, @@ -70,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: { openimageio partio pugixml - python3.pkgs.pybind11 + python3Packages.pybind11 robin-map util-linux # needed just for hexdump zlib diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 393a4395b165..bbbfb362af06 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11448,6 +11448,10 @@ self: super: with self; { opensfm = callPackage ../development/python-modules/opensfm { }; + openshadinglanguage = toPythonModule ( + pkgs.openshadinglanguage.override { python3Packages = self; } + ); + openshift = callPackage ../development/python-modules/openshift { }; opensimplex = callPackage ../development/python-modules/opensimplex { }; From 1982e06bb2f72b8de3ce76babab0140d7c2700dd Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Tue, 9 Sep 2025 22:01:22 -0400 Subject: [PATCH 6/8] openshadinglanguage: fix not propagating openimageio Without this, the Python lib fails to import. --- pkgs/by-name/op/openshadinglanguage/package.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/by-name/op/openshadinglanguage/package.nix b/pkgs/by-name/op/openshadinglanguage/package.nix index f905ef8ccefe..7623cf177d69 100644 --- a/pkgs/by-name/op/openshadinglanguage/package.nix +++ b/pkgs/by-name/op/openshadinglanguage/package.nix @@ -79,6 +79,10 @@ stdenv.mkDerivation (finalAttrs: { libxml2 ]; + propagatedBuildInputs = [ + python3Packages.openimageio + ]; + postFixup = '' substituteInPlace "$out"/lib/pkgconfig/*.pc \ --replace '=''${exec_prefix}//' '=/' From ccb19a887b7b52e087a425083e4655a8824a66d6 Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Fri, 1 Aug 2025 13:02:09 -0400 Subject: [PATCH 7/8] python3Packages.openusd: omit openshadinglanguage when withOsl=false --- pkgs/development/python-modules/openusd/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/openusd/default.nix b/pkgs/development/python-modules/openusd/default.nix index f7021bb56f1c..f38cc9c48a4f 100644 --- a/pkgs/development/python-modules/openusd/default.nix +++ b/pkgs/development/python-modules/openusd/default.nix @@ -79,7 +79,7 @@ buildPythonPackage rec { }) ]; - env.OSL_LOCATION = "${openshadinglanguage}"; + env.OSL_LOCATION = lib.optionalString withOsl "${openshadinglanguage}"; cmakeFlags = [ "-DPXR_BUILD_ALEMBIC_PLUGIN=ON" From 6f1f0a3d5bbab84b298575505d6344777a745e7f Mon Sep 17 00:00:00 2001 From: Andrew Marshall Date: Fri, 1 Aug 2025 12:57:43 -0400 Subject: [PATCH 8/8] blender: build with OpenShadingLanguage support We should thus also use OpenUSD built with OSL. --- pkgs/by-name/bl/blender/package.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/bl/blender/package.nix b/pkgs/by-name/bl/blender/package.nix index 892c28d1c530..19199e6d468a 100644 --- a/pkgs/by-name/bl/blender/package.nix +++ b/pkgs/by-name/bl/blender/package.nix @@ -99,7 +99,6 @@ let python3 = python3Packages.python; pyPkgsOpenusd = python3Packages.openusd.override (old: { opensubdiv = old.opensubdiv.override { inherit cudaSupport; }; - withOsl = false; }); libdecor' = libdecor.overrideAttrs (old: { @@ -168,7 +167,7 @@ stdenv'.mkDerivation (finalAttrs: { (lib.cmakeBool "WITH_CYCLES_DEVICE_ONEAPI" false) (lib.cmakeBool "WITH_CYCLES_DEVICE_OPTIX" cudaSupport) (lib.cmakeBool "WITH_CYCLES_EMBREE" embreeSupport) - (lib.cmakeBool "WITH_CYCLES_OSL" false) + (lib.cmakeBool "WITH_CYCLES_OSL" true) (lib.cmakeBool "WITH_HYDRA" openUsdSupport) (lib.cmakeBool "WITH_INSTALL_PORTABLE" false) (lib.cmakeBool "WITH_JACK" jackaudioSupport) @@ -268,6 +267,7 @@ stdenv'.mkDerivation (finalAttrs: { pugixml python3 python3Packages.materialx + python3Packages.openshadinglanguage rubberband zlib zstd @@ -325,6 +325,7 @@ stdenv'.mkDerivation (finalAttrs: { [ ps.materialx ps.numpy_1 + ps.openshadinglanguage ps.requests ps.zstandard ]