From 064c07db9a9e72813c9b37fb2f8a8c38b73c760b Mon Sep 17 00:00:00 2001
From: Jonas Heinrich <onny@project-insanity.org>
Date: Fri, 22 Jul 2022 16:53:10 +0200
Subject: [PATCH 1/2] osl: 1.10.9 -> 1.11.17.0

---
 pkgs/development/compilers/osl/default.nix | 70 +++++++++++++++-------
 pkgs/top-level/all-packages.nix            |  4 +-
 2 files changed, 53 insertions(+), 21 deletions(-)

diff --git a/pkgs/development/compilers/osl/default.nix b/pkgs/development/compilers/osl/default.nix
index b7c78e5870c9..3accbf63abe3 100644
--- a/pkgs/development/compilers/osl/default.nix
+++ b/pkgs/development/compilers/osl/default.nix
@@ -1,46 +1,76 @@
-{ stdenv, clangStdenv, lib, fetchFromGitHub, cmake, zlib, openexr,
-openimageio, llvm, boost165, flex, bison, partio, pugixml,
-util-linux, python3
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, clang
+, libclang
+, zlib
+, openexr
+, openimageio2
+, llvm
+, boost
+, flex
+, bison
+, partio
+, pugixml
+, util-linux
+, python3
 }:
 
-let boost_static = boost165.override { enableStatic = true; };
-in clangStdenv.mkDerivation rec {
-  # In theory this could use GCC + Clang rather than just Clang,
-  # but https://github.com/NixOS/nixpkgs/issues/29877 stops this
+let
+
+  boost_static = boost.override { enableStatic = true; };
+
+in stdenv.mkDerivation rec {
   pname = "openshadinglanguage";
-  version = "1.10.9";
+  version = "1.11.17.0";
 
   src = fetchFromGitHub {
-    owner = "imageworks";
+    owner = "AcademySoftwareFoundation";
     repo = "OpenShadingLanguage";
-    rev = "Release-1.10.9";
-    sha256 = "1dwf10f2fpxc55pymwkapql20nc462mq61hv21c527994c2qp1ll";
+    rev = "v${version}";
+    sha256 = "sha256-2OOkLnHLz+vmSeEDQl12SrJBTuWwbnvoTatnvm8lpbA=";
   };
 
   cmakeFlags = [
     "-DUSE_BOOST_WAVE=ON"
-    "-DENABLERTTI=ON"
+    "-DENABLE_RTTI=ON"
 
     # Build system implies llvm-config and llvm-as are in the same directory.
     # Override defaults.
     "-DLLVM_DIRECTORY=${llvm}"
     "-DLLVM_CONFIG=${llvm.dev}/bin/llvm-config"
+
+    # Set C++11 to C++14 required for LLVM10+
+    "-DCMAKE_CXX_STANDARD=14"
   ];
 
   preConfigure = "patchShebangs src/liboslexec/serialize-bc.bash ";
 
-  nativeBuildInputs = [ cmake boost_static flex bison];
-  buildInputs = [
-     zlib openexr openimageio llvm
-     partio pugixml
-     util-linux # needed just for hexdump
-     python3 # CMake doesn't check this?
+  nativeBuildInputs = [
+    bison
+    clang
+    cmake
+    flex
   ];
-  # TODO: How important is partio? CMake doesn't seem to find it
+
+  buildInputs = [
+    boost_static
+    libclang
+    llvm
+    openexr
+    openimageio2
+    partio
+    pugixml
+    python3.pkgs.pybind11
+    util-linux # needed just for hexdump
+    zlib
+  ];
+
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "Advanced shading language for production GI renderers";
-    homepage = "http://opensource.imageworks.com/?p=osl";
+    homepage = "https://opensource.imageworks.com/osl.html";
     maintainers = with maintainers; [ hodapp ];
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3d9a2ab1bec3..714571e026cb 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9353,7 +9353,9 @@ with pkgs;
 
   oshka = callPackage ../development/tools/oshka {};
 
-  osl = callPackage ../development/compilers/osl { };
+  osl = libsForQt5.callPackage ../development/compilers/osl {
+    boost = boost165;
+  };
 
   osqp = callPackage ../development/libraries/science/math/osqp { };
 

From 0bc8d898335d12d6a5d1632766c2b072b647873d Mon Sep 17 00:00:00 2001
From: Jonas Heinrich <onny@project-insanity.org>
Date: Sat, 23 Jul 2022 11:03:01 +0200
Subject: [PATCH 2/2] openimageio2: Fix lib installation

---
 pkgs/applications/graphics/openimageio/2.x.nix | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/pkgs/applications/graphics/openimageio/2.x.nix b/pkgs/applications/graphics/openimageio/2.x.nix
index 17a811aa87f8..eaab55678aa8 100644
--- a/pkgs/applications/graphics/openimageio/2.x.nix
+++ b/pkgs/applications/graphics/openimageio/2.x.nix
@@ -52,6 +52,11 @@ stdenv.mkDerivation rec {
     "-DCMAKE_INSTALL_LIBDIR=lib" # needs relative path for pkg-config
   ];
 
+  postFixup = ''
+    substituteInPlace $dev/lib/cmake/OpenImageIO/OpenImageIOTargets-*.cmake \
+      --replace "\''${_IMPORT_PREFIX}/lib/lib" "$out/lib/lib"
+  '';
+
   meta = with lib; {
     homepage = "http://www.openimageio.org";
     description = "A library and tools for reading and writing images";