From 4b9bb506d189ae9d38e9d7eb6df92a74aa327213 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 11 May 2026 17:40:52 +0200 Subject: [PATCH 01/35] Update Houdini 21.0.680 paths and Boost 1.82 for macOS build Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- CMakeMacOSPresets.json | 4 ++-- building/macOS/CMakeLists.txt | 3 +-- building/macOS/pxr-houdini/pxrConfig.cmake | 4 ++-- building/macOS/pxr-houdini/pxrTargets-release.cmake | 6 +++--- building/macOS/pxr-houdini/pxrTargets.cmake | 6 +++--- scripts/macOS/setupHoudini.sh | 2 +- 6 files changed, 12 insertions(+), 13 deletions(-) diff --git a/CMakeMacOSPresets.json b/CMakeMacOSPresets.json index f13d05ef..63af637e 100644 --- a/CMakeMacOSPresets.json +++ b/CMakeMacOSPresets.json @@ -34,11 +34,11 @@ "inherits": "macos-environment", "environment": { "PREFIX_PXR" : "${sourceParentDir}/building/macOS/pxr-houdini", - "HOUDINI_INSTALL_DIR" : "/Applications/Houdini/Houdini20.0.751", + "HOUDINI_INSTALL_DIR" : "/Applications/Houdini/Houdini21.0.680", "PXR_LIB_PREFIX" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries", "PXR_INCLUDE_PREFIX" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include", "PXR_DEPS_PREFIX" : "$env{DEPS_ROOT}", - "PXR_BOOST_PYTHON_LIB" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libhboost_python39-mt-a64.dylib" + "PXR_BOOST_PYTHON_LIB" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libpxr_python.dylib" }, "cacheVariables": { "CMAKE_PREFIX_PATH": "$env{DEPS_ROOT};$env{PREFIX_PXR}", diff --git a/building/macOS/CMakeLists.txt b/building/macOS/CMakeLists.txt index 12ef7ce3..fca0f285 100644 --- a/building/macOS/CMakeLists.txt +++ b/building/macOS/CMakeLists.txt @@ -39,7 +39,7 @@ ExternalProject_Add(Blosc set(CHAIN Blosc) ExternalProject_Add(Boost - URL https://sourceforge.net/projects/boost/files/boost/1.78.0/boost_1_78_0.tar.gz + URL https://sourceforge.net/projects/boost/files/boost/1.82.0/boost_1_82_0.tar.gz UPDATE_COMMAND ./bootstrap.sh --prefix=${InstallRoot} --with-toolset=clang linkflags="-arch ${BOOST_ARCH}" CONFIGURE_COMMAND "" PATCH_COMMAND patch -p3 -N < ${THIS_DIR}/Boost.patch @@ -421,4 +421,3 @@ ExternalProject_Add(GLFW DEPENDS ${CHAIN} ) set(CHAIN GLFW) - diff --git a/building/macOS/pxr-houdini/pxrConfig.cmake b/building/macOS/pxr-houdini/pxrConfig.cmake index 28237a87..0384829a 100644 --- a/building/macOS/pxr-houdini/pxrConfig.cmake +++ b/building/macOS/pxr-houdini/pxrConfig.cmake @@ -17,9 +17,9 @@ get_filename_component(PXR_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) set(PXR_MAJOR_VERSION "0") -set(PXR_MINOR_VERSION "22") +set(PXR_MINOR_VERSION "25") set(PXR_PATCH_VERSION "5") -set(PXR_VERSION "2205") +set(PXR_VERSION "2505") include("${PXR_CMAKE_DIR}/pxrTargets.cmake") set(libs "arch;tf;gf;js;trace;work;plug;vt;ar;kind;sdf;ndr;sdr;pcp;usd;usdGeom;usdVol;usdMedia;usdShade;usdLux;usdRender;usdHydra;usdRi;usdSkel;usdUI;usdUtils;usdPhysics;garch;hf;hio;cameraUtil;pxOsd;glf;hgi;hgiGL;hgiInterop;hd;hdSt;hdx;usdImaging;usdImagingGL;usdRiImaging;usdSkelImaging;usdVolImaging;usdAppUtils;usdviewq") diff --git a/building/macOS/pxr-houdini/pxrTargets-release.cmake b/building/macOS/pxr-houdini/pxrTargets-release.cmake index ae3a89da..485bf292 100644 --- a/building/macOS/pxr-houdini/pxrTargets-release.cmake +++ b/building/macOS/pxr-houdini/pxrTargets-release.cmake @@ -421,12 +421,12 @@ list(APPEND _IMPORT_CHECK_FILES_FOR_usdImagingGL "${_LIB_PREFIX}/libpxr_usdImagi # Import target "usdRiImaging" for configuration "Release" set_property(TARGET usdRiImaging APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(usdRiImaging PROPERTIES - IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_usdRiImaging.dylib" - IMPORTED_SONAME_RELEASE "libpxr_usdRiImaging.dylib" + IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_usdRiPxrImaging.dylib" + IMPORTED_SONAME_RELEASE "libpxr_usdRiPxrImaging.dylib" ) list(APPEND _IMPORT_CHECK_TARGETS usdRiImaging ) -list(APPEND _IMPORT_CHECK_FILES_FOR_usdRiImaging "${_LIB_PREFIX}/libpxr_usdRiImaging.dylib" ) +list(APPEND _IMPORT_CHECK_FILES_FOR_usdRiImaging "${_LIB_PREFIX}/libpxr_usdRiPxrImaging.dylib" ) # Import target "usdSkelImaging" for configuration "Release" set_property(TARGET usdSkelImaging APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) diff --git a/building/macOS/pxr-houdini/pxrTargets.cmake b/building/macOS/pxr-houdini/pxrTargets.cmake index f3cd6feb..af4b3d45 100644 --- a/building/macOS/pxr-houdini/pxrTargets.cmake +++ b/building/macOS/pxr-houdini/pxrTargets.cmake @@ -3,7 +3,7 @@ # Modified to use the version of USD with headers in $env{PXR_INCLUDE_PREFIX} # and libs in $env{PXR_LIB_PREFIX}, with dependencies installed to $env{PXR_DEPS_PREFIX} # $env{PXR_BOOST_PYTHON_LIB} must be set to the location of the boost_python so used by USD -# (Houdini names it libhboost_python39...) +# (Houdini names it libhboost_python311...) if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.6) message(FATAL_ERROR "CMake >= 2.6.0 required") @@ -17,8 +17,8 @@ cmake_policy(VERSION 2.6...3.21) # Commands may need to know the format version. set(CMAKE_IMPORT_FILE_VERSION 1) -SET(HPYTHONLIB $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.9/lib/libpython3.9.dylib) -SET(HPYTHONINC $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.9/include/python3.9) +SET(HPYTHONLIB $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.11/lib/libpython3.11.dylib) +SET(HPYTHONINC $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.11/include/python3.11) # Protect against multiple inclusion, which would fail when already imported targets are added once more. set(_targetsDefined) diff --git a/scripts/macOS/setupHoudini.sh b/scripts/macOS/setupHoudini.sh index 68ac25fb..8f15cb9b 100644 --- a/scripts/macOS/setupHoudini.sh +++ b/scripts/macOS/setupHoudini.sh @@ -11,4 +11,4 @@ export MOONRAY_CLASS_PATH=${omr_install_dir}/shader_json export ARRAS_SESSION_PATH=${omr_install_dir}/sessions PXR_PLUGINPATH_NAME=${omr_install_dir}/plugin/pxr #export HOUDINI_DSO_ERROR=5 -export HOUDINI_PATH=/Applications/Houdini/Houdini20.0.751/Frameworks/Houdini.framework/Versions/Current/Resources/houdini:${omr_install_dir}/houdini/:${omr_install_dir}/plugin/houdini +export HOUDINI_PATH=/Applications/Houdini/Houdini21.0.680/Frameworks/Houdini.framework/Versions/Current/Resources/houdini:${omr_install_dir}/houdini/:${omr_install_dir}/plugin/houdini From e43cc0bc144f93e0f454356d3aea695c8607dfa6 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 11 May 2026 17:40:52 +0200 Subject: [PATCH 02/35] docs: add Houdini 21.0.680 macOS compatibility notes Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- docs/Houdini21_macOS_changes.md | 102 ++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 docs/Houdini21_macOS_changes.md diff --git a/docs/Houdini21_macOS_changes.md b/docs/Houdini21_macOS_changes.md new file mode 100644 index 00000000..deafbd01 --- /dev/null +++ b/docs/Houdini21_macOS_changes.md @@ -0,0 +1,102 @@ +# OpenMoonRay Houdini 21.0.680 macOS Compatibility Notes + +This document records the MoonRay macOS updates required for Houdini `21.0.680`. + +## Scope + +- Target platform: macOS +- Target DCC: Houdini `21.0.680` +- Goal: build MoonRay against Houdini-owned USD/PXR and Python 3.11 + +## Tested Environment + +- macOS: Tahoe (SDK observed during build: `MacOSX26.4.sdk`) +- Xcode: `26.0.1` (`/Applications/Xcode_26.0.1.app`) +- Houdini validated in this branch: `21.0.680` + +## Why These Changes Were Needed + +Houdini 21 moved to Python 3.11 and ships USD/PXR libraries inside the Houdini framework layout. MoonRay must consume those paths directly for include/library resolution and avoid building a separate local USD for the Houdini build path. + +## Required Compatibility Changes + +### 1) [`CMakeMacOSPresets.json`](../CMakeMacOSPresets.json) + +- `HOUDINI_INSTALL_DIR` set to: + - `/Applications/Houdini/Houdini21.0.680` +- `PXR_LIB_PREFIX` set to: + - `$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries` +- `PXR_INCLUDE_PREFIX` set to: + - `$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include` +- `PXR_BOOST_PYTHON_LIB` set to: + - `$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libpxr_python.dylib` + +Important: in this tested setup, using `libhboost_python311-mt-a64.dylib` did not resolve all expected `pxr_boost::python` references during link, while `libpxr_python.dylib` did. + +### 2) [`scripts/macOS/setupHoudini.sh`](../scripts/macOS/setupHoudini.sh) + +- `HOUDINI_PATH` updated to Houdini 21.0.680 framework resources path. + +### 3) [`building/macOS/pxr-houdini/pxrTargets.cmake`](../building/macOS/pxr-houdini/pxrTargets.cmake) + +- `HPYTHONLIB` updated to: + - `$ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.11/lib/libpython3.11.dylib` +- `HPYTHONINC` updated to: + - `$ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.11/include/python3.11` + +### 4) [`building/macOS/pxr-houdini/pxrConfig.cmake`](../building/macOS/pxr-houdini/pxrConfig.cmake) + +- PXR version metadata updated to: + - `PXR_MAJOR_VERSION "0"` + - `PXR_MINOR_VERSION "25"` + - `PXR_PATCH_VERSION "5"` + - `PXR_VERSION "2505"` + +### 5) [`building/macOS/CMakeLists.txt`](../building/macOS/CMakeLists.txt) + +- Boost source updated to `1.82.0` (`boost_1_82_0.tar.gz`) for Houdini 21 toolchain compatibility. + +### 6) [`building/macOS/pxr-houdini/pxrTargets-release.cmake`](../building/macOS/pxr-houdini/pxrTargets-release.cmake) + +- Houdini 21 library naming compatibility fix: + - `libpxr_usdRiImaging.dylib` -> `libpxr_usdRiPxrImaging.dylib` + +## Build Procedure Requirements (Houdini Path) + +- Build dependencies with Houdini USD mode enabled (skip local USD): + - `cmake -DNO_USD=1 ../building/macOS` + - `cmake --build .` +- If dependencies were previously built without `-DNO_USD=1`, clean `build-deps/` and `installs/` before rebuilding to avoid mixed USD linkage. + +## Environment-Specific Workarounds + +- In this macOS/Xcode environment, full `cmake --build --preset macos-houdini-release` required disabling Xcode code-signing attributes at configure time to avoid dynamic-library signing failures. +- This is an environment workaround, not a Houdini 21 compatibility requirement. + +## Validation Summary + +- Dependency build completed successfully with `-DNO_USD=1`. +- Main project configure/build completed successfully for Houdini preset. +- Install completed successfully. +- Moonray appears as a selectable renderer in the Solaris viewport. +- Houdini Solaris workflow is the intended runtime verification path. +- `moonray_gui` command-line test requires an active GUI display session; headless runs fail with `Cannot create window: no screens available`. + +## Houdini Sanity Reference + +- SideFX changelog reference (used as a sanity baseline when evaluating Houdini compatibility context): + - [SideFX changelog](https://www.sidefx.com/changelog/?categories=52&journal=17.5&show_versions=on) +- Note: this branch has not been tested against production Houdini `21.0.679`; validated test target remains Houdini `21.0.680`. +- Additional context: the Xcode compilation issue language in SideFX notes is generic; direct relevance to MoonRay-specific build/runtime behavior is currently uncertain. + +## Out of Scope + +- Any separate Houdini shader/HDA UX issues are not addressed by these changes. +- `cmake_modules` contains a local Boost macro adjustment: `cmake/MoonrayDso.cmake` updates `DWA_BOOST_VERSION` from `1073000` to `1082000`. This change is in the submodule working tree and is not part of the parent-repo commits in this branch. + +## Cross-Repo Linkage + +- Parent repo branch: + - [`Moonray-Houdini21-macOS`](https://github.com/rolledhand/openmoonray/tree/Moonray-Houdini21-macOS) +- Submodule repo branch: + - [`boost-1.82-macro-update`](https://github.com/rolledhand/cmake_modules/tree/boost-1.82-macro-update) From cc25a18b98c911195217c0a7be98a048baeb4264 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 11 May 2026 17:41:03 +0200 Subject: [PATCH 03/35] Houdini 21.0.671 setup + hdMoonray int64 conversion linkage (clean) Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- CMakeMacOSPresets.json | 2 +- docs/Houdini21_macOS_changes.md | 3 +++ moonray/hydra/hdMoonray | 2 +- scripts/macOS/setupHoudini.sh | 47 ++++++++++++++++++++++++++------- 4 files changed, 43 insertions(+), 11 deletions(-) diff --git a/CMakeMacOSPresets.json b/CMakeMacOSPresets.json index 63af637e..f6e194ab 100644 --- a/CMakeMacOSPresets.json +++ b/CMakeMacOSPresets.json @@ -34,7 +34,7 @@ "inherits": "macos-environment", "environment": { "PREFIX_PXR" : "${sourceParentDir}/building/macOS/pxr-houdini", - "HOUDINI_INSTALL_DIR" : "/Applications/Houdini/Houdini21.0.680", + "HOUDINI_INSTALL_DIR" : "/Applications/Houdini/Houdini21.0.671", "PXR_LIB_PREFIX" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries", "PXR_INCLUDE_PREFIX" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include", "PXR_DEPS_PREFIX" : "$env{DEPS_ROOT}", diff --git a/docs/Houdini21_macOS_changes.md b/docs/Houdini21_macOS_changes.md index deafbd01..d8219e83 100644 --- a/docs/Houdini21_macOS_changes.md +++ b/docs/Houdini21_macOS_changes.md @@ -100,3 +100,6 @@ Important: in this tested setup, using `libhboost_python311-mt-a64.dylib` did no - [`Moonray-Houdini21-macOS`](https://github.com/rolledhand/openmoonray/tree/Moonray-Houdini21-macOS) - Submodule repo branch: - [`boost-1.82-macro-update`](https://github.com/rolledhand/cmake_modules/tree/boost-1.82-macro-update) +- hdMoonray int64 conversion fix (Houdini 21.0.671 runtime): + - target branch: `houdini21-int64-fix` + - branch link: `https://github.com/rolledhand/hdMoonray/tree/houdini21-int64-fix` diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 6366b993..cea4442b 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 6366b993e276708ee4289e236fccef47f3b89d30 +Subproject commit cea4442baa390f94856f48225d23b1dde301c50a diff --git a/scripts/macOS/setupHoudini.sh b/scripts/macOS/setupHoudini.sh index 8f15cb9b..f78dd965 100644 --- a/scripts/macOS/setupHoudini.sh +++ b/scripts/macOS/setupHoudini.sh @@ -1,14 +1,43 @@ omr_install_dir=/Applications/MoonRay/installs/openmoonray +houdini_fallback=/Applications/Houdini/Houdini21.0.671/Frameworks/Houdini.framework/Versions/Current/Resources/houdini -# save/restore PYTHONPATH, since Houdini seems to reject python3.9 +# save/restore PYTHONPATH, since Houdini runtime can be sensitive to non-Houdini site-packages OLDPP=${PYTHONPATH} -source ${omr_install_dir}/scripts/setup.sh +source "${omr_install_dir}/scripts/setup.sh" export PYTHONPATH=${OLDPP} -export REL=${omr_install_dir} -export RDL2_DSO_PATH=${omr_install_dir}/rdl2dso.proxy:${omr_install_dir}/rdl2dso -export MOONRAY_CLASS_PATH=${omr_install_dir}/shader_json -export ARRAS_SESSION_PATH=${omr_install_dir}/sessions -PXR_PLUGINPATH_NAME=${omr_install_dir}/plugin/pxr -#export HOUDINI_DSO_ERROR=5 -export HOUDINI_PATH=/Applications/Houdini/Houdini21.0.680/Frameworks/Houdini.framework/Versions/Current/Resources/houdini:${omr_install_dir}/houdini/:${omr_install_dir}/plugin/houdini +export REL="${omr_install_dir}" +export RDL2_DSO_PATH="${omr_install_dir}/rdl2dso.proxy:${omr_install_dir}/rdl2dso" +export MOONRAY_CLASS_PATH="${omr_install_dir}/shader_json" +export ARRAS_SESSION_PATH="${omr_install_dir}/sessions" + +prepend_unique_path() { + local add_path="$1" + local current="${2:-}" + case ":${current}:" in + *":${add_path}:"*) echo "${current}" ;; + *) + if [ -n "${current}" ]; then + echo "${add_path}:${current}" + else + echo "${add_path}" + fi + ;; + esac +} + +# Preserve any existing USD plugin search path (set by Houdini or shell packages), +# while guaranteeing Moonray plugin location is present first. +export PXR_PLUGINPATH_NAME="$(prepend_unique_path "${omr_install_dir}/plugin/pxr" "${PXR_PLUGINPATH_NAME}")" +export PXR_PLUGIN_PATH="$(prepend_unique_path "${omr_install_dir}/plugin/pxr" "${PXR_PLUGIN_PATH}")" +export PXR_PLUGINPATH_NAME="${PXR_PLUGINPATH_NAME%:}" +export PXR_PLUGIN_PATH="${PXR_PLUGIN_PATH%:}" + +# Prefer layering Moonray onto an existing Houdini env (from houdini_setup). If that +# was not sourced yet, fall back to the known Houdini 21.0.671 resources path. +if [ -n "${HOUDINI_PATH}" ]; then + export HOUDINI_PATH="$(prepend_unique_path "${omr_install_dir}/plugin/houdini" "${HOUDINI_PATH}")" + export HOUDINI_PATH="$(prepend_unique_path "${omr_install_dir}/houdini" "${HOUDINI_PATH}")" +else + export HOUDINI_PATH="${omr_install_dir}/houdini:${omr_install_dir}/plugin/houdini:${houdini_fallback}:&" +fi From 1a299f5f15d2d0a7d886f1b6b6bd2ebf63afe742 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 11 May 2026 17:41:13 +0200 Subject: [PATCH 04/35] Document Houdini 21 macOS compatibility status Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- docs/Houdini21_macOS_PR_notes.md | 42 ++++++++ docs/Houdini21_macOS_changes.md | 175 +++++++++++++------------------ moonray/moonray_dcc_plugins | 2 +- 3 files changed, 117 insertions(+), 102 deletions(-) create mode 100644 docs/Houdini21_macOS_PR_notes.md diff --git a/docs/Houdini21_macOS_PR_notes.md b/docs/Houdini21_macOS_PR_notes.md new file mode 100644 index 00000000..cbd184f8 --- /dev/null +++ b/docs/Houdini21_macOS_PR_notes.md @@ -0,0 +1,42 @@ +# PR Notes: Houdini 21 macOS Compatibility + +## Reviewer Summary +Adds macOS/Houdini 21 compatibility updates required to build and install OpenMoonRay against Houdini 21 using Houdini-provided USD/PXR and Python 3.11. This includes Boost 1.82 alignment, dependency fetch/build fixes, Houdini USD library naming compatibility, and source-driven Houdini plugin payload installation. This branch validates build/install/selectability in Solaris, but does not resolve native DWA material authoring/render behavior in Houdini 21. + +## Scope +- Build/dependency/install compatibility for Houdini 21 on macOS. +- No intended look/scene/rendering behavior change claim. +- No claim that native DWA Solaris authoring is fixed. + +## Validated vs Not Resolved +| Area | Status | Notes | +|---|---|---| +| Dependency build | Validated | Build path completes with current compatibility adjustments. | +| Main configure/build | Validated | Houdini-target integration build path succeeds. | +| Install | Validated | Install path completes and plugin payload is install-driven. | +| Solaris renderer selectability | Validated | MoonRay selectable in Solaris viewport. | +| Native DWA material influence in Material Library / mtlx subnet | Not resolved | Native DWA nodes do not reliably drive visible render changes in simple test. | +| Light live-update behavior (`spread` example) | Not resolved | Manual IPR update required in observed tests. | +| Dome light with texture | Not resolved | Not working in current tested branch state. | + +## Temporary Dependency Note +This branch may temporarily depend on a `moonray_dcc_plugins` fork/branch for Houdini 21 Python 3.11 payload alignment. +Current local kickoff pointer: +- branch: `houdini21-py311-kickoff` +- base commit: `eda4e57` (before additional fork commits) + +Current intent for that fork is minimal: +- install-driven `python3.11libs` payload support +- required Houdini plugin payload continuity (`otls`, `soho`, `toolbar`, integration files) +- no broad OTL/authoring semantic rewrite + +This fork kickoff is not fully stable as a native DWA workflow fix. Native DWA material behavior remains unresolved. + +## Runtime Observation Captured During Simple DWA Test +- `{dispatcherExit} Message Dispatcher [libcomputation_progmcrt.dylib] : exiting : reason is 'socket was disconnected'` +- `{clientSocketError} SocketPeer::receive: Bad file descriptor` +- `signal ... 15` + +## Reviewer Guidance +- Evaluate this PR primarily as compatibility/build/install integration work. +- Treat native DWA Solaris authoring/runtime issues as follow-up work outside this PR closure. diff --git a/docs/Houdini21_macOS_changes.md b/docs/Houdini21_macOS_changes.md index d8219e83..2f3254f0 100644 --- a/docs/Houdini21_macOS_changes.md +++ b/docs/Houdini21_macOS_changes.md @@ -1,105 +1,78 @@ -# OpenMoonRay Houdini 21.0.680 macOS Compatibility Notes +# Houdini 21 macOS Compatibility Changes -This document records the MoonRay macOS updates required for Houdini `21.0.680`. +## Summary +Adds macOS/Houdini 21 compatibility updates required to build and install OpenMoonRay against Houdini 21 using Houdini-provided USD/PXR and Python 3.11. This includes Boost 1.82 alignment, dependency fetch/build fixes, Houdini USD library naming compatibility, and source-driven Houdini plugin payload installation. This branch validates build/install/selectability in Solaris, but does not resolve native DWA material authoring/render behavior in Houdini 21. -## Scope - -- Target platform: macOS -- Target DCC: Houdini `21.0.680` -- Goal: build MoonRay against Houdini-owned USD/PXR and Python 3.11 +Compatibility and integration improved in this branch. Native DWA authoring/runtime behavior in Solaris remains unresolved. ## Tested Environment - -- macOS: Tahoe (SDK observed during build: `MacOSX26.4.sdk`) -- Xcode: `26.0.1` (`/Applications/Xcode_26.0.1.app`) -- Houdini validated in this branch: `21.0.680` - -## Why These Changes Were Needed - -Houdini 21 moved to Python 3.11 and ships USD/PXR libraries inside the Houdini framework layout. MoonRay must consume those paths directly for include/library resolution and avoid building a separate local USD for the Houdini build path. - -## Required Compatibility Changes - -### 1) [`CMakeMacOSPresets.json`](../CMakeMacOSPresets.json) - -- `HOUDINI_INSTALL_DIR` set to: - - `/Applications/Houdini/Houdini21.0.680` -- `PXR_LIB_PREFIX` set to: - - `$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries` -- `PXR_INCLUDE_PREFIX` set to: - - `$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include` -- `PXR_BOOST_PYTHON_LIB` set to: - - `$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libpxr_python.dylib` - -Important: in this tested setup, using `libhboost_python311-mt-a64.dylib` did not resolve all expected `pxr_boost::python` references during link, while `libpxr_python.dylib` did. - -### 2) [`scripts/macOS/setupHoudini.sh`](../scripts/macOS/setupHoudini.sh) - -- `HOUDINI_PATH` updated to Houdini 21.0.680 framework resources path. - -### 3) [`building/macOS/pxr-houdini/pxrTargets.cmake`](../building/macOS/pxr-houdini/pxrTargets.cmake) - -- `HPYTHONLIB` updated to: - - `$ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.11/lib/libpython3.11.dylib` -- `HPYTHONINC` updated to: - - `$ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.11/include/python3.11` - -### 4) [`building/macOS/pxr-houdini/pxrConfig.cmake`](../building/macOS/pxr-houdini/pxrConfig.cmake) - -- PXR version metadata updated to: - - `PXR_MAJOR_VERSION "0"` - - `PXR_MINOR_VERSION "25"` - - `PXR_PATCH_VERSION "5"` - - `PXR_VERSION "2505"` - -### 5) [`building/macOS/CMakeLists.txt`](../building/macOS/CMakeLists.txt) - -- Boost source updated to `1.82.0` (`boost_1_82_0.tar.gz`) for Houdini 21 toolchain compatibility. - -### 6) [`building/macOS/pxr-houdini/pxrTargets-release.cmake`](../building/macOS/pxr-houdini/pxrTargets-release.cmake) - -- Houdini 21 library naming compatibility fix: - - `libpxr_usdRiImaging.dylib` -> `libpxr_usdRiPxrImaging.dylib` - -## Build Procedure Requirements (Houdini Path) - -- Build dependencies with Houdini USD mode enabled (skip local USD): - - `cmake -DNO_USD=1 ../building/macOS` - - `cmake --build .` -- If dependencies were previously built without `-DNO_USD=1`, clean `build-deps/` and `installs/` before rebuilding to avoid mixed USD linkage. - -## Environment-Specific Workarounds - -- In this macOS/Xcode environment, full `cmake --build --preset macos-houdini-release` required disabling Xcode code-signing attributes at configure time to avoid dynamic-library signing failures. -- This is an environment workaround, not a Houdini 21 compatibility requirement. - -## Validation Summary - -- Dependency build completed successfully with `-DNO_USD=1`. -- Main project configure/build completed successfully for Houdini preset. -- Install completed successfully. -- Moonray appears as a selectable renderer in the Solaris viewport. -- Houdini Solaris workflow is the intended runtime verification path. -- `moonray_gui` command-line test requires an active GUI display session; headless runs fail with `Cannot create window: no screens available`. - -## Houdini Sanity Reference - -- SideFX changelog reference (used as a sanity baseline when evaluating Houdini compatibility context): - - [SideFX changelog](https://www.sidefx.com/changelog/?categories=52&journal=17.5&show_versions=on) -- Note: this branch has not been tested against production Houdini `21.0.679`; validated test target remains Houdini `21.0.680`. -- Additional context: the Xcode compilation issue language in SideFX notes is generic; direct relevance to MoonRay-specific build/runtime behavior is currently uncertain. - -## Out of Scope - -- Any separate Houdini shader/HDA UX issues are not addressed by these changes. -- `cmake_modules` contains a local Boost macro adjustment: `cmake/MoonrayDso.cmake` updates `DWA_BOOST_VERSION` from `1073000` to `1082000`. This change is in the submodule working tree and is not part of the parent-repo commits in this branch. - -## Cross-Repo Linkage - -- Parent repo branch: - - [`Moonray-Houdini21-macOS`](https://github.com/rolledhand/openmoonray/tree/Moonray-Houdini21-macOS) -- Submodule repo branch: - - [`boost-1.82-macro-update`](https://github.com/rolledhand/cmake_modules/tree/boost-1.82-macro-update) -- hdMoonray int64 conversion fix (Houdini 21.0.671 runtime): - - target branch: `houdini21-int64-fix` - - branch link: `https://github.com/rolledhand/hdMoonray/tree/houdini21-int64-fix` +- macOS Tahoe +- Xcode 26.0.1 class toolchain flow +- Houdini 21 series validation target: +- `21.0.680` (original PR target) +- `21.0.671` (current local validation path) + +## Build/Dependency Changes +- Boost dependency alignment moved to `1.82.0`. +- Boost patch command made tolerant of already-applied state (`patch ... || true`). +- `log4cplus` dependency fetch moved from git tag checkout to release tarball: +- `https://github.com/log4cplus/log4cplus/releases/download/REL_2_0_5/log4cplus-2.0.5.tar.xz` +- `log4cplus` reproducible build workaround added before configure: +- `touch Makefile.in` +- `touch aclocal.m4 configure config.h.in` + +These are build reproducibility fixes, not renderer/material behavior fixes. + +## Python 3.11 Alignment +- Houdini 21 Python 3.11 include/lib/executable alignment was applied for USD/PXR integration in this branch. +- `building/macOS/user-config.jam` was moved from Python 3.9 config to Python 3.11 config for this compatibility track. +- Current pathing is validated for local Houdini 21 installs and should be parameterized before upstream hardening. + +## Houdini USD/PXR Pathing +- Houdini USD integration uses Houdini-provided PXR paths and library resolution. +- Compatibility mapping included: +- `libpxr_usdRiImaging.dylib` -> `libpxr_usdRiPxrImaging.dylib` +- PXR metadata compatibility updates for Houdini 21 USD packaging were applied in `pxr-houdini` CMake metadata. + +## Install Payload Changes +Source-driven install path includes Houdini plugin payload required for this branch validation: +- `otls` +- `soho` +- `python3.11libs` +- `toolbar` (where present in plugin payload layout) +- integration files under Houdini plugin tree + +Manual post-install copying is not the intended validation path for this branch. + +## Validation Results +- Dependency build: pass +- Main configure/build: pass +- Install: pass +- MoonRay renderer selectable in Solaris viewport: pass + +## DWA Material Test Status +Status: unresolved in current build. + +Observed behavior in Solaris Material Library / mtlx subnet: +- Native DWA nodes are visible/creatable, but do not reliably drive visible render changes in the simple test. +- Control path through `mtlxstandard_surface` can influence render, but this is not a native DWA workflow fix. + +Observed runtime/disconnect signal during simple DWA tests: +- `{dispatcherExit} Message Dispatcher [libcomputation_progmcrt.dylib] : exiting : reason is 'socket was disconnected'` +- `{clientSocketError} SocketPeer::receive: Bad file descriptor` +- `signal ... 15` + +## Known Unresolved Issues +- Native DWA material authoring/render influence in Solaris remains unresolved for this branch. +- Some light parameter edits (for example `spread`) require manual IPR refresh and do not always live-update automatically. +- Dome light textured workflow is currently not working in this tested branch state. + +## Notes For Reviewers +- This branch should be reviewed as a Houdini 21 macOS build/install compatibility update. +- Do not treat native DWA node visibility/selectability as evidence that native DWA material workflow is fixed. +- No claim is made that MaterialX/native DWA Solaris authoring is production-ready in this branch. + +## Future Cleanup / Upstreaming Notes +- Parameterize local Houdini/Python paths before upstream merge hardening. +- Keep compatibility/build fixes separated from shader authoring/runtime behavior work. +- Track native DWA Solaris authoring/runtime closure as a follow-up effort. diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index eda4e578..0111d46b 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit eda4e578a2adee2cd7478035e927e4b69c4f91bd +Subproject commit 0111d46b1f9e9844a99d4a9e934eb555c69cbbf6 From 9ee53f2766d8159e1149b9b41b34378e2038b15d Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 11 May 2026 17:41:13 +0200 Subject: [PATCH 05/35] Houdini 21 macOS: apply build compatibility updates Adds remaining parent-repo build/setup compatibility changes for Houdini 21 macOS. Aligns Houdini mode preset/build config with Python 3.11 and Boost Python 3.11. Includes dependency/build reproducibility updates where staged. Includes Houdini USD/PXR compatibility mapping if staged. Does not claim native DWA material workflow is fixed. Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- CMakeMacOSPresets.json | 3 ++- building/macOS/CMakeLists.txt | 17 +++++++++-------- building/macOS/user-config.jam | 6 +++--- moonray/hydra/hdMoonray | 2 +- moonray/moonray_dcc_plugins | 2 +- scripts/macOS/setupHoudini.sh | 7 +++---- 6 files changed, 19 insertions(+), 18 deletions(-) diff --git a/CMakeMacOSPresets.json b/CMakeMacOSPresets.json index f6e194ab..1e5b9f71 100644 --- a/CMakeMacOSPresets.json +++ b/CMakeMacOSPresets.json @@ -42,7 +42,8 @@ }, "cacheVariables": { "CMAKE_PREFIX_PATH": "$env{DEPS_ROOT};$env{PREFIX_PXR}", - "MOONRAY_USE_HOUDINI": "TRUE" + "MOONRAY_USE_HOUDINI": "TRUE", + "BOOST_PYTHON_COMPONENT_NAME": "python311" } }, { diff --git a/building/macOS/CMakeLists.txt b/building/macOS/CMakeLists.txt index fca0f285..e0b3c0b4 100644 --- a/building/macOS/CMakeLists.txt +++ b/building/macOS/CMakeLists.txt @@ -23,7 +23,7 @@ set(THIS_DIR ${CMAKE_CURRENT_SOURCE_DIR}) # User configurable settings set(InstallRoot ${rootSrcDir}/../../../../installs CACHE FILEPATH "Install root for dependencies") -set(PythonVer 3.9.6 CACHE STRING "Python version (n.m), e.g. 3.6") +set(PythonVer 3.11 CACHE STRING "Python version (n.m), e.g. 3.6") set(PythonRoot /usr CACHE FILEPATH "Location of Python install") ExternalProject_Add(Blosc @@ -42,7 +42,7 @@ ExternalProject_Add(Boost URL https://sourceforge.net/projects/boost/files/boost/1.82.0/boost_1_82_0.tar.gz UPDATE_COMMAND ./bootstrap.sh --prefix=${InstallRoot} --with-toolset=clang linkflags="-arch ${BOOST_ARCH}" CONFIGURE_COMMAND "" - PATCH_COMMAND patch -p3 -N < ${THIS_DIR}/Boost.patch + PATCH_COMMAND patch -p3 -N < ${THIS_DIR}/Boost.patch || true BUILD_COMMAND ./b2 install ${JOBS_ARG} --user-config=${THIS_DIR}/user-config.jam --with_python variant=release link=shared threading=multi define=BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT=0 BUILD_IN_SOURCE 1 INSTALL_COMMAND "" @@ -146,9 +146,10 @@ ExternalProject_Add(OpenVDB set(CHAIN OpenVDB) ExternalProject_Add(Log4CPlus - GIT_REPOSITORY https://github.com/log4cplus/log4cplus - GIT_TAG REL_2_0_5 + URL https://github.com/log4cplus/log4cplus/releases/download/REL_2_0_5/log4cplus-2.0.5.tar.xz PATCH_COMMAND patch -p1 -N < ${THIS_DIR}/log4plus-limit-threads.patch || true + COMMAND find . -name "Makefile.in" -exec touch {} + + COMMAND touch aclocal.m4 configure config.h.in BUILD_IN_SOURCE 1 CONFIGURE_COMMAND ./configure --prefix ${InstallRoot} BUILD_COMMAND make @@ -332,11 +333,11 @@ if(NOT NO_USD) -DPXR_ENABLE_PYTHON_SUPPORT=ON -DPXR_USE_PYTHON_3=ON -DPXR_USE_DEBUG_PYTHON=OFF - -DPYTHON_EXECUTABLE=/usr/bin/python3 - -DPYTHON_LIBRARY=/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/libpython3.9.dylib - -DPYTHON_INCLUDE_DIR=/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/Headers + -DPYTHON_EXECUTABLE=/Applications/Houdini/Houdini21.0.671/Frameworks/Python.framework/Versions/3.11/bin/python3.11 + -DPYTHON_LIBRARY=/Applications/Houdini/Houdini21.0.671/Frameworks/Python.framework/Versions/3.11/lib/libpython3.11.dylib + -DPYTHON_INCLUDE_DIR=/Applications/Houdini/Houdini21.0.671/Frameworks/Python.framework/Versions/3.11/include/python3.11 -DPYTHON_VERSION_MAJOR=3 - -DPYTHON_VERSION_MINOR=9 + -DPYTHON_VERSION_MINOR=11 -DTBB_USE_DEBUG_BUILD=OFF -DPXR_BUILD_TESTS=OFF -DPXR_BUILD_EXAMPLES=OFF diff --git a/building/macOS/user-config.jam b/building/macOS/user-config.jam index f163655e..797ab8ce 100644 --- a/building/macOS/user-config.jam +++ b/building/macOS/user-config.jam @@ -1,6 +1,6 @@ -using python : 3.9 +using python : 3.11 : "/usr/bin/python3" - : "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/Headers" - : "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib" + : "/Applications/Houdini/Houdini21.0.671/Frameworks/Python.framework/Versions/3.11/include/python3.11" + : "/Applications/Houdini/Houdini21.0.671/Frameworks/Python.framework/Versions/3.11/lib" ; using clang : : : -"arch arm64" "-arch arm64" ; diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index cea4442b..cea44425 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit cea4442baa390f94856f48225d23b1dde301c50a +Subproject commit cea4442546df3a2538d8bbb641b9602734e6ffd0 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 0111d46b..0111d467 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 0111d46b1f9e9844a99d4a9e934eb555c69cbbf6 +Subproject commit 0111d46793435b8472a5b71c4660203c7251cbae diff --git a/scripts/macOS/setupHoudini.sh b/scripts/macOS/setupHoudini.sh index f78dd965..5539e317 100644 --- a/scripts/macOS/setupHoudini.sh +++ b/scripts/macOS/setupHoudini.sh @@ -26,15 +26,14 @@ prepend_unique_path() { esac } -# Preserve any existing USD plugin search path (set by Houdini or shell packages), -# while guaranteeing Moonray plugin location is present first. +# Preserve any existing USD plugin search path while guaranteeing MoonRay plugin location is present. export PXR_PLUGINPATH_NAME="$(prepend_unique_path "${omr_install_dir}/plugin/pxr" "${PXR_PLUGINPATH_NAME}")" export PXR_PLUGIN_PATH="$(prepend_unique_path "${omr_install_dir}/plugin/pxr" "${PXR_PLUGIN_PATH}")" export PXR_PLUGINPATH_NAME="${PXR_PLUGINPATH_NAME%:}" export PXR_PLUGIN_PATH="${PXR_PLUGIN_PATH%:}" -# Prefer layering Moonray onto an existing Houdini env (from houdini_setup). If that -# was not sourced yet, fall back to the known Houdini 21.0.671 resources path. +# Prefer layering MoonRay onto an existing Houdini env (from houdini_setup). +# If that wasn't sourced yet, fall back to the known Houdini 21.0.671 resources path. if [ -n "${HOUDINI_PATH}" ]; then export HOUDINI_PATH="$(prepend_unique_path "${omr_install_dir}/plugin/houdini" "${HOUDINI_PATH}")" export HOUDINI_PATH="$(prepend_unique_path "${omr_install_dir}/houdini" "${HOUDINI_PATH}")" From aefd23bad50a64882e0e2b7cfa8dfcadf10136a1 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 31 May 2026 20:07:23 +0200 Subject: [PATCH 06/35] Houdini 20.5: wire macOS Solaris integration branches Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- CMakeMacOSPresets.json | 17 ++++++------- building/macOS/CMakeLists.txt | 17 +++++++++---- building/macOS/pxr-houdini/pxrConfig.cmake | 2 +- building/macOS/user-config.jam | 6 ++--- moonray/hydra/hdMoonray | 2 +- moonray/hydra/moonray_sdr_plugins | 2 +- moonray/moonray | 2 +- moonray/moonray_dcc_plugins | 2 +- moonray/moonshine_usd | 2 +- moonray/render_profile_viewer | 2 +- moonray/scene_rdl2 | 2 +- scripts/Rocky9/setupHoudini.sh | 2 +- scripts/macOS/setupHoudini.sh | 28 +++++++++++++++++----- scripts/setup.sh | 2 +- 14 files changed, 57 insertions(+), 31 deletions(-) diff --git a/CMakeMacOSPresets.json b/CMakeMacOSPresets.json index 1e5b9f71..384e9e41 100644 --- a/CMakeMacOSPresets.json +++ b/CMakeMacOSPresets.json @@ -5,9 +5,10 @@ "name": "macos-environment", "hidden": true, "environment": { - "DEPS_ROOT" : "${sourceParentDir}/installs", - "BUILD_DIR" : "${sourceParentDir}/build", + "DEPS_ROOT" : "/Applications/MoonRay/installs", + "BUILD_DIR" : "/Applications/MoonRay/build", "Boost_ROOT" : "$env{DEPS_ROOT}", + "TBB_ROOT": "$env{DEPS_ROOT}", "Libuuid_ROOT" : "$env{DEPS_ROOT}", "CppUnit_ROOT" : "$env{DEPS_ROOT}", "ISPC" : "$env{DEPS_ROOT}/bin/ispc", @@ -22,7 +23,7 @@ "PXR_INCLUDE_DIRS" : "$env{DEPS_ROOT}/include", "Random123_ROOT" : "$env{DEPS_ROOT}", "ZLIB_ROOT" : "$env{DEPS_ROOT}", - "OIIO_PYTHON" : "$env{DEPS_ROOT}/lib/python3.9/site-packages" + "OIIO_PYTHON" : "$env{DEPS_ROOT}/lib/python3.11/site-packages" }, "cacheVariables": { "CMAKE_PREFIX_PATH": "$env{DEPS_ROOT}" @@ -33,12 +34,12 @@ "hidden": true, "inherits": "macos-environment", "environment": { - "PREFIX_PXR" : "${sourceParentDir}/building/macOS/pxr-houdini", - "HOUDINI_INSTALL_DIR" : "/Applications/Houdini/Houdini21.0.671", + "PREFIX_PXR" : "/Applications/MoonRay/building/macOS/pxr-houdini", + "HOUDINI_INSTALL_DIR" : "/Applications/Houdini/Houdini20.5.684", "PXR_LIB_PREFIX" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries", "PXR_INCLUDE_PREFIX" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include", "PXR_DEPS_PREFIX" : "$env{DEPS_ROOT}", - "PXR_BOOST_PYTHON_LIB" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libpxr_python.dylib" + "PXR_BOOST_PYTHON_LIB" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libhboost_python311.dylib" }, "cacheVariables": { "CMAKE_PREFIX_PATH": "$env{DEPS_ROOT};$env{PREFIX_PXR}", @@ -53,7 +54,7 @@ "binaryDir": "$env{BUILD_DIR}", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", - "CMAKE_INSTALL_PREFIX": "${sourceParentDir}/installs/openmoonray" + "CMAKE_INSTALL_PREFIX": "/Applications/MoonRay/installs/openmoonray" }, "generator": "Xcode" }, @@ -64,7 +65,7 @@ "binaryDir": "$env{BUILD_DIR}", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", - "CMAKE_INSTALL_PREFIX": "${sourceParentDir}/installs/openmoonray" + "CMAKE_INSTALL_PREFIX": "/Applications/MoonRay/installs/openmoonray" }, "generator": "Xcode" } diff --git a/building/macOS/CMakeLists.txt b/building/macOS/CMakeLists.txt index e0b3c0b4..bdeaf1e7 100644 --- a/building/macOS/CMakeLists.txt +++ b/building/macOS/CMakeLists.txt @@ -25,6 +25,15 @@ set(THIS_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(InstallRoot ${rootSrcDir}/../../../../installs CACHE FILEPATH "Install root for dependencies") set(PythonVer 3.11 CACHE STRING "Python version (n.m), e.g. 3.6") set(PythonRoot /usr CACHE FILEPATH "Location of Python install") +if(DEFINED ENV{HOUDINI_INSTALL_DIR}) + set(_defaultHoudiniInstallDir "$ENV{HOUDINI_INSTALL_DIR}") +elseif(DEFINED ENV{HFS}) + file(REAL_PATH "$ENV{HFS}/../../../../.." _defaultHoudiniInstallDir) +else() + set(_defaultHoudiniInstallDir "/Applications/Houdini/Houdini20.5.684") +endif() +set(HOUDINI_INSTALL_DIR "${_defaultHoudiniInstallDir}" CACHE PATH "Houdini install root") +set(HoudiniPythonRoot "${HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/${PythonVer}") ExternalProject_Add(Blosc GIT_REPOSITORY https://github.com/Blosc/c-blosc @@ -43,7 +52,7 @@ ExternalProject_Add(Boost UPDATE_COMMAND ./bootstrap.sh --prefix=${InstallRoot} --with-toolset=clang linkflags="-arch ${BOOST_ARCH}" CONFIGURE_COMMAND "" PATCH_COMMAND patch -p3 -N < ${THIS_DIR}/Boost.patch || true - BUILD_COMMAND ./b2 install ${JOBS_ARG} --user-config=${THIS_DIR}/user-config.jam --with_python variant=release link=shared threading=multi define=BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT=0 + BUILD_COMMAND ./b2 install ${JOBS_ARG} --user-config=${THIS_DIR}/user-config.jam --with-python python=${PythonVer} variant=release link=shared threading=multi architecture=arm address-model=64 define=BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT=0 BUILD_IN_SOURCE 1 INSTALL_COMMAND "" DEPENDS ${CHAIN} @@ -333,9 +342,9 @@ if(NOT NO_USD) -DPXR_ENABLE_PYTHON_SUPPORT=ON -DPXR_USE_PYTHON_3=ON -DPXR_USE_DEBUG_PYTHON=OFF - -DPYTHON_EXECUTABLE=/Applications/Houdini/Houdini21.0.671/Frameworks/Python.framework/Versions/3.11/bin/python3.11 - -DPYTHON_LIBRARY=/Applications/Houdini/Houdini21.0.671/Frameworks/Python.framework/Versions/3.11/lib/libpython3.11.dylib - -DPYTHON_INCLUDE_DIR=/Applications/Houdini/Houdini21.0.671/Frameworks/Python.framework/Versions/3.11/include/python3.11 + -DPYTHON_EXECUTABLE=${HoudiniPythonRoot}/bin/python${PythonVer} + -DPYTHON_LIBRARY=${HoudiniPythonRoot}/lib/libpython${PythonVer}.dylib + -DPYTHON_INCLUDE_DIR=${HoudiniPythonRoot}/include/python${PythonVer} -DPYTHON_VERSION_MAJOR=3 -DPYTHON_VERSION_MINOR=11 -DTBB_USE_DEBUG_BUILD=OFF diff --git a/building/macOS/pxr-houdini/pxrConfig.cmake b/building/macOS/pxr-houdini/pxrConfig.cmake index 0384829a..a639b2d7 100644 --- a/building/macOS/pxr-houdini/pxrConfig.cmake +++ b/building/macOS/pxr-houdini/pxrConfig.cmake @@ -2,7 +2,7 @@ # Modified to use the version of USD with headers in $env{PXR_INCLUDE_PREFIX} # and libs in $env{PXR_LIB_PREFIX}, with dependencies installed to $env{PXR_DEPS_PREFIX} # $env{PXR_BOOST_PYTHON_LIB} must be set to the location of the boost_python so used by USD -# (Houdini names it libhboost_python39...) +# (Houdini names it libhboost_python311...) # Defines the following variables: # PXR_MAJOR_VERSION - Major version number. diff --git a/building/macOS/user-config.jam b/building/macOS/user-config.jam index 797ab8ce..84ef0904 100644 --- a/building/macOS/user-config.jam +++ b/building/macOS/user-config.jam @@ -1,6 +1,6 @@ using python : 3.11 - : "/usr/bin/python3" - : "/Applications/Houdini/Houdini21.0.671/Frameworks/Python.framework/Versions/3.11/include/python3.11" - : "/Applications/Houdini/Houdini21.0.671/Frameworks/Python.framework/Versions/3.11/lib" + : "/Applications/Houdini/Houdini20.5.684/Frameworks/Houdini.framework/Versions/Current/Resources/bin/hython" + : "/Applications/Houdini/Houdini20.5.684/Frameworks/Python.framework/Versions/3.11/include/python3.11" + : "/Applications/Houdini/Houdini20.5.684/Frameworks/Python.framework/Versions/3.11/lib" ; using clang : : : -"arch arm64" "-arch arm64" ; diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index cea44425..77a673e0 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit cea4442546df3a2538d8bbb641b9602734e6ffd0 +Subproject commit 77a673e0e0f2869ad883021485e88ba41af12245 diff --git a/moonray/hydra/moonray_sdr_plugins b/moonray/hydra/moonray_sdr_plugins index 77a0ed6d..643f962d 160000 --- a/moonray/hydra/moonray_sdr_plugins +++ b/moonray/hydra/moonray_sdr_plugins @@ -1 +1 @@ -Subproject commit 77a0ed6dd3ff9389d46d0ca9e3471a56335b875a +Subproject commit 643f962d8fcebbc44a7e47113e07c53d50c424ff diff --git a/moonray/moonray b/moonray/moonray index 2343dde0..263f4c48 160000 --- a/moonray/moonray +++ b/moonray/moonray @@ -1 +1 @@ -Subproject commit 2343dde0bae2f70141b1004371282405e2d82215 +Subproject commit 263f4c480c65b4ca5c120c44b81dd246be4464e5 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 0111d467..952eea3d 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 0111d46793435b8472a5b71c4660203c7251cbae +Subproject commit 952eea3dad7250028db579e9c4467e187a00e451 diff --git a/moonray/moonshine_usd b/moonray/moonshine_usd index d3452328..495000e6 160000 --- a/moonray/moonshine_usd +++ b/moonray/moonshine_usd @@ -1 +1 @@ -Subproject commit d3452328c52fa60d891b4d5d7fbd18a14d9ba632 +Subproject commit 495000e6fe8e90084c9eb622c7a054958ddf9be2 diff --git a/moonray/render_profile_viewer b/moonray/render_profile_viewer index 2e68fc1a..5b183d40 160000 --- a/moonray/render_profile_viewer +++ b/moonray/render_profile_viewer @@ -1 +1 @@ -Subproject commit 2e68fc1aa618b545646ac7efb091fff38f347e1f +Subproject commit 5b183d40e45ca111092398b65114a045ae26e3b7 diff --git a/moonray/scene_rdl2 b/moonray/scene_rdl2 index b1309584..729d8747 160000 --- a/moonray/scene_rdl2 +++ b/moonray/scene_rdl2 @@ -1 +1 @@ -Subproject commit b1309584b7340bc665fdbf0c2519e69b41b3a9f3 +Subproject commit 729d874703dfce04866afbe381d97a846b24fe48 diff --git a/scripts/Rocky9/setupHoudini.sh b/scripts/Rocky9/setupHoudini.sh index c5b09444..0e959bea 100644 --- a/scripts/Rocky9/setupHoudini.sh +++ b/scripts/Rocky9/setupHoudini.sh @@ -1,6 +1,6 @@ omr_install_dir=/opt/MoonRay/installs/openmoonray -# save/restore PYTHONPATH, since Houdini seems to reject python3.9 +# save/restore PYTHONPATH, since Houdini runtime can be sensitive to non-Houdini site-packages OLDPP=${PYTHONPATH} source ${omr_install_dir}/scripts/setup.sh export PYTHONPATH=${OLDPP} diff --git a/scripts/macOS/setupHoudini.sh b/scripts/macOS/setupHoudini.sh index 5539e317..58fba17b 100644 --- a/scripts/macOS/setupHoudini.sh +++ b/scripts/macOS/setupHoudini.sh @@ -1,9 +1,12 @@ omr_install_dir=/Applications/MoonRay/installs/openmoonray -houdini_fallback=/Applications/Houdini/Houdini21.0.671/Frameworks/Houdini.framework/Versions/Current/Resources/houdini +houdini_install_dir=${HOUDINI_INSTALL_DIR:-/Applications/Houdini/Houdini20.5.684} +houdini_fallback="${houdini_install_dir}/Frameworks/Houdini.framework/Versions/Current/Resources/houdini" # save/restore PYTHONPATH, since Houdini runtime can be sensitive to non-Houdini site-packages OLDPP=${PYTHONPATH} -source "${omr_install_dir}/scripts/setup.sh" +if [ -f "${omr_install_dir}/scripts/setup.sh" ]; then + source "${omr_install_dir}/scripts/setup.sh" +fi export PYTHONPATH=${OLDPP} export REL="${omr_install_dir}" @@ -26,17 +29,30 @@ prepend_unique_path() { esac } +prepend_existing_path() { + local add_path="$1" + local current="${2:-}" + if [ -d "${add_path}" ]; then + prepend_unique_path "${add_path}" "${current}" + else + echo "${current}" + fi +} + # Preserve any existing USD plugin search path while guaranteeing MoonRay plugin location is present. export PXR_PLUGINPATH_NAME="$(prepend_unique_path "${omr_install_dir}/plugin/pxr" "${PXR_PLUGINPATH_NAME}")" export PXR_PLUGIN_PATH="$(prepend_unique_path "${omr_install_dir}/plugin/pxr" "${PXR_PLUGIN_PATH}")" export PXR_PLUGINPATH_NAME="${PXR_PLUGINPATH_NAME%:}" export PXR_PLUGIN_PATH="${PXR_PLUGIN_PATH%:}" +export PYTHONPATH="$(prepend_existing_path "${omr_install_dir}/lib/python" "${PYTHONPATH}")" # Prefer layering MoonRay onto an existing Houdini env (from houdini_setup). -# If that wasn't sourced yet, fall back to the known Houdini 21.0.671 resources path. +# If that wasn't sourced yet, fall back to the configured Houdini resources path. if [ -n "${HOUDINI_PATH}" ]; then - export HOUDINI_PATH="$(prepend_unique_path "${omr_install_dir}/plugin/houdini" "${HOUDINI_PATH}")" - export HOUDINI_PATH="$(prepend_unique_path "${omr_install_dir}/houdini" "${HOUDINI_PATH}")" + export HOUDINI_PATH="$(prepend_existing_path "${omr_install_dir}/plugin/houdini" "${HOUDINI_PATH}")" + export HOUDINI_PATH="$(prepend_existing_path "${omr_install_dir}/houdini" "${HOUDINI_PATH}")" else - export HOUDINI_PATH="${omr_install_dir}/houdini:${omr_install_dir}/plugin/houdini:${houdini_fallback}:&" + export HOUDINI_PATH="${houdini_fallback}:&" + export HOUDINI_PATH="$(prepend_existing_path "${omr_install_dir}/plugin/houdini" "${HOUDINI_PATH}")" + export HOUDINI_PATH="$(prepend_existing_path "${omr_install_dir}/houdini" "${HOUDINI_PATH}")" fi diff --git a/scripts/setup.sh b/scripts/setup.sh index 999594db..2308a0a3 100644 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -20,7 +20,7 @@ echo "Setting up release in ${omr_root}" export PATH=${omr_root}/bin:${PATH} # need python modules for the USD interface and for the RATS tests -export PYTHONPATH=${install_root}/lib/python:/usr/local/lib/python:${install_root}/lib64/python3.9/site-packages/:${PYTHONPATH} +export PYTHONPATH=${install_root}/lib/python:/usr/local/lib/python:${install_root}/lib64/python3.11/site-packages/:${PYTHONPATH} # tell moonray where to find dsos From 0f44716cfa5fca0c3d79598bb0567da3a1f1deb7 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 1 Jun 2026 00:16:49 +0200 Subject: [PATCH 07/35] Update MoonRay Houdini/Solaris submodule pins Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray_dcc_plugins | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 77a673e0..d85ec555 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 77a673e0e0f2869ad883021485e88ba41af12245 +Subproject commit d85ec5554999c1fd9a209a1e15d3b0ef70407553 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 952eea3d..78ca7572 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 952eea3dad7250028db579e9c4467e187a00e451 +Subproject commit 78ca7572646afa7ca469b17db38eb6612c7805d0 From 058689165cd976848460a664431dc025a67b1d12 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 1 Jun 2026 01:08:23 +0200 Subject: [PATCH 08/35] Update MoonRay geometry settings submodule pins Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray_dcc_plugins | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index d85ec555..24bac7ea 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit d85ec5554999c1fd9a209a1e15d3b0ef70407553 +Subproject commit 24bac7ea740ceb8e694a5c19bc0f625e9b375ca9 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 78ca7572..6f167d8c 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 78ca7572646afa7ca469b17db38eb6612c7805d0 +Subproject commit 6f167d8c280c1760351c31286fd38e3b7622b78b From 9220cf67d1840f09976d276c7ec34c914578ce58 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 1 Jun 2026 10:13:45 +0200 Subject: [PATCH 09/35] Update MoonRay light translation submodule pins Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray_dcc_plugins | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 24bac7ea..65e457b2 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 24bac7ea740ceb8e694a5c19bc0f625e9b375ca9 +Subproject commit 65e457b20f8d7ad36a3c1c39990f0b305f312489 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 6f167d8c..dbf22fa1 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 6f167d8c280c1760351c31286fd38e3b7622b78b +Subproject commit dbf22fa104ea673ad5c23eca84f8ef28dd43319e From b5e6f9ea122b1f9b4eda6d90b00f07d058ef4bbd Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 1 Jun 2026 11:29:38 +0200 Subject: [PATCH 10/35] Update MoonRay light shaping submodule pins Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray_dcc_plugins | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 65e457b2..43964391 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 65e457b20f8d7ad36a3c1c39990f0b305f312489 +Subproject commit 439643916acd3082ac9aefe349661360035c0a1a diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index dbf22fa1..b01d7e01 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit dbf22fa104ea673ad5c23eca84f8ef28dd43319e +Subproject commit b01d7e0143e80baa79a716ff5005c9948c67e25d From be43cbe6a77ec584ecea005101cdd78b0cd1e663 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 1 Jun 2026 18:07:27 +0200 Subject: [PATCH 11/35] Checkpoint working MoonRay SpotLight override pins Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray_dcc_plugins | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 43964391..27201a47 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 439643916acd3082ac9aefe349661360035c0a1a +Subproject commit 27201a47dae82a7df1eb4588dafa2c4c046a6623 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index b01d7e01..9bf49458 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit b01d7e0143e80baa79a716ff5005c9948c67e25d +Subproject commit 9bf4945815b3e6c4a39a62702ef89be0453ecc28 From 35bcc3cc4ed7e2b1908728a0d84332f22d3208b4 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 1 Jun 2026 21:21:34 +0200 Subject: [PATCH 12/35] Update hdMoonray light lifecycle pin Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 27201a47..f5331a86 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 27201a47dae82a7df1eb4588dafa2c4c046a6623 +Subproject commit f5331a867994df5792557130892e14a744a3c00b From b7e4bba76818c4339004c44e3213e52183e33103 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 1 Jun 2026 22:11:48 +0200 Subject: [PATCH 13/35] Update hdMoonray unit scale notes pin Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index f5331a86..8d1ded41 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit f5331a867994df5792557130892e14a744a3c00b +Subproject commit 8d1ded419a12fd98a0ad4e8652bd74cda4c55910 From 5a4e897dc222f48724e9edd5f8228177eaeb8d4c Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Tue, 2 Jun 2026 11:48:14 +0200 Subject: [PATCH 14/35] Checkpoint MoonRay Render Settings LOP pin Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_dcc_plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 9bf49458..8c995f81 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 9bf4945815b3e6c4a39a62702ef89be0453ecc28 +Subproject commit 8c995f8153dc7fb57be2faa106bee5dcd6972f3e From 37b15c790b9de49cdad8eb7cb4775ce70a6f8db3 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Tue, 2 Jun 2026 13:23:35 +0200 Subject: [PATCH 15/35] Checkpoint MoonRay Render Settings LOP pin v2 Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_dcc_plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 8c995f81..5f96be98 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 8c995f8153dc7fb57be2faa106bee5dcd6972f3e +Subproject commit 5f96be986f525cd112d50a52786bcb6efe04b396 From bdcf90c233d5f8dd2998e1f704d90b2d7e23e30a Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Tue, 2 Jun 2026 16:05:56 +0200 Subject: [PATCH 16/35] Checkpoint MoonRay Render Settings LOP and USD Render ROP pin Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray_dcc_plugins | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 8d1ded41..2eb08084 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 8d1ded419a12fd98a0ad4e8652bd74cda4c55910 +Subproject commit 2eb0808460a6fe429bae83c16fb4cd2b93bbe428 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 5f96be98..68d7bc59 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 5f96be986f525cd112d50a52786bcb6efe04b396 +Subproject commit 68d7bc59538839b76a3a31b8ccae712a79782eef From 0bd156a34076d9bc7f1b2f6211c1e36143ebdaab Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 6 Jun 2026 10:50:19 +0200 Subject: [PATCH 17/35] Update MoonRay render settings LOP pin Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_dcc_plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 68d7bc59..6cd0361b 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 68d7bc59538839b76a3a31b8ccae712a79782eef +Subproject commit 6cd0361b1372349d8fa82daa11c0df15b30481d5 From 51be9cfd9ee1c7627ca6a195db63e44224d630d5 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 6 Jun 2026 20:35:59 +0200 Subject: [PATCH 18/35] Update hdMoonray documentation workflow pin Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 2eb08084..688868eb 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 2eb0808460a6fe429bae83c16fb4cd2b93bbe428 +Subproject commit 688868eb16a63187273241ff09b328368e15dfc0 From 73b84c7094ba745bfc65824ecd5ea091118bff23 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 6 Jun 2026 21:20:53 +0200 Subject: [PATCH 19/35] Update MoonRay camera controls pins Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray_dcc_plugins | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 688868eb..8d15dc07 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 688868eb16a63187273241ff09b328368e15dfc0 +Subproject commit 8d15dc07f511ebebf8804bb79ab0312fb86719db diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 6cd0361b..b12bd044 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 6cd0361b1372349d8fa82daa11c0df15b30481d5 +Subproject commit b12bd04448f337fddfdad5fbd5269fa501921196 From 7d241b1387d807c8672b53da05980827aa3cb4d5 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 7 Jun 2026 15:07:58 +0200 Subject: [PATCH 20/35] Add native MoonRay light filter support Pins hdMoonray and moonray_dcc_plugins to the native Solaris light filter integration work. The DCC update adds generated MoonRay light filter VOP HDAs for Houdini's Light Filter Library workflow. The hdMoonray update adds light filter ramp interpolation token expansion so editable Solaris ramp filters can render with authored ramp point counts. Validated in Houdini/Solaris with MoonRay light filters, including ColorRampLightFilter ramps with more than the default two points. Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray_dcc_plugins | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 8d15dc07..f3d66dc0 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 8d15dc07f511ebebf8804bb79ab0312fb86719db +Subproject commit f3d66dc0fb1ec4d1f5176a9f2f3d89a9e2cdef7c diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index b12bd044..cff423db 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit b12bd04448f337fddfdad5fbd5269fa501921196 +Subproject commit cff423db8f8fddde8923b8123a6264a0a67f1834 From 68275f7cb33379b6de24eacfa6ee3f9722c0ac09 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 7 Jun 2026 16:46:30 +0200 Subject: [PATCH 21/35] Pin hdMoonray light filter integration updates Updates the hdMoonray submodule to include the initial native MoonRay light filter integration work for Houdini/Solaris. The pinned hdMoonray changes cover editable ramp interpolation handling, delegate path remapping for linked scene objects, and lifecycle hardening for light filters. This is an integration checkpoint. Additional light filters are exposed for validation, but not all filter types should be considered fully production-stable yet. Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index f3d66dc0..2ec78486 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit f3d66dc0fb1ec4d1f5176a9f2f3d89a9e2cdef7c +Subproject commit 2ec784869483836affdddc24fa071d5ec7f23e8b From 390d425c94cf856cea51568bf0c43eb1c2d8c484 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 13 Jun 2026 13:33:32 +0200 Subject: [PATCH 22/35] Pin hdMoonray light filter lifecycle cleanup Updates the hdMoonray submodule with lifecycle hardening for native MoonRay light filters in Houdini/Solaris. Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 2ec78486..ad9442dd 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 2ec784869483836affdddc24fa071d5ec7f23e8b +Subproject commit ad9442dd9d3c320f7023f0595aad3424d5051a8c From c87d39e3146cf8d75346484c2f46024cff78fb71 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 13 Jun 2026 17:13:29 +0200 Subject: [PATCH 23/35] Pin Render Settings evidence-gated updates Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray_dcc_plugins | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index ad9442dd..e9499af6 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit ad9442dd9d3c320f7023f0595aad3424d5051a8c +Subproject commit e9499af60cf4a1d6e5d5d463d5e63622b67f89e9 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index cff423db..6890b91f 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit cff423db8f8fddde8923b8123a6264a0a67f1834 +Subproject commit 6890b91fb24b3075e6c471bf9b3a96ced1029be9 From 63570f0f1fe0e7fe759367b92f394f4a8e4e9b15 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 14 Jun 2026 01:16:09 +0200 Subject: [PATCH 24/35] macOS: repair Houdini MoonRay runtime setup Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- CMakeLists.txt | 27 ++++++++++++++++++++++++++- moonray/hydra/hdMoonray | 2 +- moonray/moonray_dcc_plugins | 2 +- scripts/macOS/setupHoudini.sh | 2 +- scripts/setup.sh | 2 +- 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a9b83bd7..7c718068 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,6 +82,32 @@ add_subdirectory(moonray) add_subdirectory(rats) add_subdirectory(scripts) +if(IsDarwinPlatform) + install(CODE [[ + set(_omr_codesign_root "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}") + execute_process( + COMMAND /bin/bash -c " + set -e + root=\"$1\" + command -v codesign >/dev/null 2>&1 || exit 0 + for dir in \"$root/bin\" \"$root/lib\" \"$root/plugin\"; do + [ -d \"$dir\" ] || continue + find \"$dir\" -type f \\( -perm -111 -o -name '*.dylib' -o -name '*.so' \\) -print0 + done | while IFS= read -r -d '' file; do + if /usr/bin/file \"$file\" | /usr/bin/grep -q 'Mach-O'; then + /usr/bin/codesign --force --sign - \"$file\" + fi + done + " + _ "${_omr_codesign_root}" + RESULT_VARIABLE _omr_codesign_result + ) + if(NOT _omr_codesign_result EQUAL 0) + message(FATAL_ERROR "macOS ad-hoc codesign of installed OpenMoonRay runtime failed") + endif() + ]]) +endif() + if(GLD STREQUAL "$ENV{STUDIO}") install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/SDKScript DESTINATION . @@ -90,4 +116,3 @@ if(GLD STREQUAL "$ENV{STUDIO}") GROUP_READ GROUP_WRITE WORLD_READ) endif() - diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index e9499af6..2909d443 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit e9499af60cf4a1d6e5d5d463d5e63622b67f89e9 +Subproject commit 2909d443016de2fa89bae1ec8af6c66c302da156 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 6890b91f..e919e168 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 6890b91fb24b3075e6c471bf9b3a96ced1029be9 +Subproject commit e919e168b679b52e1a024d3b7d33d58c844b32bc diff --git a/scripts/macOS/setupHoudini.sh b/scripts/macOS/setupHoudini.sh index 58fba17b..77526c02 100644 --- a/scripts/macOS/setupHoudini.sh +++ b/scripts/macOS/setupHoudini.sh @@ -1,5 +1,5 @@ omr_install_dir=/Applications/MoonRay/installs/openmoonray -houdini_install_dir=${HOUDINI_INSTALL_DIR:-/Applications/Houdini/Houdini20.5.684} +houdini_install_dir=${HOUDINI_INSTALL_DIR:-/Applications/Houdini/Houdini20.5.584} houdini_fallback="${houdini_install_dir}/Frameworks/Houdini.framework/Versions/Current/Resources/houdini" # save/restore PYTHONPATH, since Houdini runtime can be sensitive to non-Houdini site-packages diff --git a/scripts/setup.sh b/scripts/setup.sh index 2308a0a3..b16424ac 100644 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -20,7 +20,7 @@ echo "Setting up release in ${omr_root}" export PATH=${omr_root}/bin:${PATH} # need python modules for the USD interface and for the RATS tests -export PYTHONPATH=${install_root}/lib/python:/usr/local/lib/python:${install_root}/lib64/python3.11/site-packages/:${PYTHONPATH} +export PYTHONPATH=${omr_root}/lib/python:${install_root}/lib/python:/usr/local/lib/python:${install_root}/lib64/python3.11/site-packages/:${PYTHONPATH} # tell moonray where to find dsos From 2e0e09b3a21db6d901a9065ab7cd8b4767cbffa9 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 14 Jun 2026 16:03:47 +0200 Subject: [PATCH 25/35] Pin hdMoonray OCIO working-space conversion Pin hdMoonray to c7bbd30109884fcaf4c2536c1849dd54208cb0c1, which adds OpenColorIO-backed renderer working-space conversion for authored typed colors. No DCC Render Settings LOP/ROP output-path changes are included. No AOV transport changes are included. No Arras runtime/signing changes are included beyond the validated hdMoonray submodule pin. Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 2909d443..c7bbd301 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 2909d443016de2fa89bae1ec8af6c66c302da156 +Subproject commit c7bbd30109884fcaf4c2536c1849dd54208cb0c1 From f374a653e0e1d3e6e08f37f78515f1007ab2ec66 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 14 Jun 2026 17:06:33 +0200 Subject: [PATCH 26/35] Pin DCC USD Render ROP output path fix Pins moonray_dcc_plugins to the MoonRay USD Render ROP output-path wiring fix. No backend, OCIO, Arras, AOV transport, or renderer metadata changes included. Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_dcc_plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index e919e168..d0663882 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit e919e168b679b52e1a024d3b7d33d58c844b32bc +Subproject commit d0663882c12b0de97c18a0ab474ee86ca61506ee From 9b35b254298b8a06afe3c84d78f943e341a3aa75 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 14 Jun 2026 18:49:36 +0200 Subject: [PATCH 27/35] Pin DCC sampling UI state fix Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_dcc_plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index d0663882..2a88d6ef 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit d0663882c12b0de97c18a0ab474ee86ca61506ee +Subproject commit 2a88d6ef9f64d9389e6ef3ab60bd278250c5a68e From 672329dbfa6e8e5a2a281872f32da3c2a3860c70 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 14 Jun 2026 21:05:02 +0200 Subject: [PATCH 28/35] Pin native AOV Apple Silicon repair Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray | 2 +- moonray/scene_rdl2 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index c7bbd301..4234f273 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit c7bbd30109884fcaf4c2536c1849dd54208cb0c1 +Subproject commit 4234f273fa5f3bb36cfd4a3fa5dff39da1cdd69d diff --git a/moonray/moonray b/moonray/moonray index 263f4c48..f030beaf 160000 --- a/moonray/moonray +++ b/moonray/moonray @@ -1 +1 @@ -Subproject commit 263f4c480c65b4ca5c120c44b81dd246be4464e5 +Subproject commit f030beafeeec87ec36f07e13a0050de183174326 diff --git a/moonray/scene_rdl2 b/moonray/scene_rdl2 index 729d8747..e8baaa6c 160000 --- a/moonray/scene_rdl2 +++ b/moonray/scene_rdl2 @@ -1 +1 @@ -Subproject commit 729d874703dfce04866afbe381d97a846b24fe48 +Subproject commit e8baaa6ccf89de5c22e85b7fa2d73f8fdbc7d137 From 0d8d2da55efbed49959939794532ab896bb87531 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 14 Jun 2026 23:24:59 +0200 Subject: [PATCH 29/35] Update MoonRay DCC native AOV UI pin Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_dcc_plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 2a88d6ef..e1980e56 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 2a88d6ef9f64d9389e6ef3ab60bd278250c5a68e +Subproject commit e1980e564d2b440f7ea7dddfa03544b97859b19e From df238d381ac370e2c6faf7ab56a9a477afd85f8f Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sun, 14 Jun 2026 23:59:44 +0200 Subject: [PATCH 30/35] Update MoonRay DCC material AOV UI pin Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_dcc_plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index e1980e56..467fcff5 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit e1980e564d2b440f7ea7dddfa03544b97859b19e +Subproject commit 467fcff5fa60716c182845e6881a2580e9443d65 From d169571e144d42d7542bcfcc0d9a4f3fc61a119d Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 15 Jun 2026 12:23:04 +0200 Subject: [PATCH 31/35] Update MoonRay DCC time-dependency fixes Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/moonray_dcc_plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 467fcff5..bf2543c1 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 467fcff5fa60716c182845e6881a2580e9443d65 +Subproject commit bf2543c1273c3cb5ff84265a4c372e0289cfbb05 From 63298dcef62a8099092032a6896f37481e2447f0 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 20 Jun 2026 18:34:52 +0200 Subject: [PATCH 32/35] Harden MoonRay setup Python path discovery Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- scripts/setup.sh | 52 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/scripts/setup.sh b/scripts/setup.sh index b16424ac..d1124efe 100644 --- a/scripts/setup.sh +++ b/scripts/setup.sh @@ -8,10 +8,19 @@ omr_root="$(realpath ${sourcedir}/..)" # Walk up to find the top-level install dir where the dependencies are installed install_root=${omr_root} -while [ "$(basename ${install_root})" != "installs" ] +while [ "$(basename ${install_root})" != "installs" ] && [ "${install_root}" != "/" ] do install_root=$(dirname ${install_root}) done +if [ "$(basename ${install_root})" != "installs" ]; then + sibling_installs="$(dirname "$(dirname "${omr_root}")")/installs" + if [ -d "${sibling_installs}" ]; then + install_root="$(realpath "${sibling_installs}")" + else + echo "Warning: could not find parent installs directory for ${omr_root}; using ${omr_root}" + install_root=${omr_root} + fi +fi echo "Found install root at ${install_root}" echo "Setting up release in ${omr_root}" @@ -19,8 +28,35 @@ echo "Setting up release in ${omr_root}" # NB required for Arras to function (it needs to find execComp) export PATH=${omr_root}/bin:${PATH} -# need python modules for the USD interface and for the RATS tests -export PYTHONPATH=${omr_root}/lib/python:${install_root}/lib/python:/usr/local/lib/python:${install_root}/lib64/python3.11/site-packages/:${PYTHONPATH} +prepend_unique_path() { + add_path="$1" + current="${2:-}" + case ":${current}:" in + *":${add_path}:"*) echo "${current}" ;; + *) + if [ -n "${current}" ]; then + echo "${add_path}:${current}" + else + echo "${add_path}" + fi + ;; + esac +} + +prepend_existing_path() { + add_path="$1" + current="${2:-}" + if [ -d "${add_path}" ]; then + prepend_unique_path "${add_path}" "${current}" + else + echo "${current}" + fi +} + +# Need Python modules for the USD interface and for the RATS tests. Only add +# paths that exist so source-tree setup does not inject stale system locations. +export PYTHONPATH="$(prepend_existing_path "${omr_root}/lib/python" "${PYTHONPATH}")" +export PYTHONPATH="$(prepend_existing_path "${omr_root}/lib64/python3.11/site-packages" "${PYTHONPATH}")" # tell moonray where to find dsos @@ -43,7 +79,11 @@ export PXR_PLUGIN_PATH=${omr_root}/plugin/pxr:${PXR_PLUGIN_PATH} # for legacy DW # create shader descriptions if they don't exist if [ ! -d "${omr_root}/shader_json" ] then - echo "Building shader descriptions..." - ${omr_root}/bin/rdl2_json_exporter --out ${omr_root}/shader_json/ --sparse - echo "...done" + if [ -x "${omr_root}/bin/rdl2_json_exporter" ]; then + echo "Building shader descriptions..." + ${omr_root}/bin/rdl2_json_exporter --out ${omr_root}/shader_json/ --sparse + echo "...done" + else + echo "Warning: ${omr_root}/bin/rdl2_json_exporter not found; shader descriptions were not generated" + fi fi From 297217e166964e84b56fd1aa013cb6e76fbe9bff Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 20 Jun 2026 18:35:13 +0200 Subject: [PATCH 33/35] Update MoonRay Houdini integration pins Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/hydra/moonray_sdr_plugins | 2 +- moonray/moonray_dcc_plugins | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 4234f273..f40147f9 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 4234f273fa5f3bb36cfd4a3fa5dff39da1cdd69d +Subproject commit f40147f96045386aa086940333d597e100942612 diff --git a/moonray/hydra/moonray_sdr_plugins b/moonray/hydra/moonray_sdr_plugins index 643f962d..3c7f9b65 160000 --- a/moonray/hydra/moonray_sdr_plugins +++ b/moonray/hydra/moonray_sdr_plugins @@ -1 +1 @@ -Subproject commit 643f962d8fcebbc44a7e47113e07c53d50c424ff +Subproject commit 3c7f9b65df9fb8f05f037e2a9cb2aa625e434113 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index bf2543c1..d95e4f63 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit bf2543c1273c3cb5ff84265a4c372e0289cfbb05 +Subproject commit d95e4f631fd20112660bf07fa96f6a28df2f2a0a From 55e5e6b37d9899b54e155df25a9519682feb6a8e Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 22 Jun 2026 16:11:14 +0200 Subject: [PATCH 34/35] Update MoonRay OCIO integration pins Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- building/Rocky9/CMakeLists.txt | 3 +- building/macOS/CMakeLists.txt | 2 +- moonray/hydra/hdMoonray | 2 +- moonray/moonray | 2 +- moonray/moonray_dcc_plugins | 2 +- moonray/moonshine | 2 +- moonray/scene_rdl2 | 2 +- scripts/macOS/setupHoudini.sh | 54 ++++++++++++++++++++++++++++++++++ 8 files changed, 61 insertions(+), 8 deletions(-) diff --git a/building/Rocky9/CMakeLists.txt b/building/Rocky9/CMakeLists.txt index ed551a42..ab8a52bc 100644 --- a/building/Rocky9/CMakeLists.txt +++ b/building/Rocky9/CMakeLists.txt @@ -92,7 +92,7 @@ set(CHAIN embree) ExternalProject_Add(OpenColorIO GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/OpenColorIO - GIT_TAG d1ef24cbf8021f642e42f45f50c2cd4cc77141ce # v2.2.1 + GIT_TAG b35fb73b8674176098d3084deaa9da3d111d72d1 # v2.3.0 INSTALL_DIR ${InstallRoot} CMAKE_ARGS -DOCIO_BUILD_APPS=OFF @@ -205,4 +205,3 @@ ExternalProject_Add(OptiXHeaders DEPENDS ${CHAIN} ) set(CHAIN OptiXHeaders) - diff --git a/building/macOS/CMakeLists.txt b/building/macOS/CMakeLists.txt index bdeaf1e7..030063da 100644 --- a/building/macOS/CMakeLists.txt +++ b/building/macOS/CMakeLists.txt @@ -225,7 +225,7 @@ set(CHAIN embree) ExternalProject_Add(OpenColorIO GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/OpenColorIO - GIT_TAG 056b7b0cb0d087961e9dba75104820e44faf52a1 # v2.0.2 + GIT_TAG b35fb73b8674176098d3084deaa9da3d111d72d1 # v2.3.0 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS -DCMAKE_PREFIX_PATH:PATH=${InstallRoot} diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index f40147f9..34d2d7eb 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit f40147f96045386aa086940333d597e100942612 +Subproject commit 34d2d7ebe96c12b4d899e6417245dc4837b97ee4 diff --git a/moonray/moonray b/moonray/moonray index f030beaf..e403e802 160000 --- a/moonray/moonray +++ b/moonray/moonray @@ -1 +1 @@ -Subproject commit f030beafeeec87ec36f07e13a0050de183174326 +Subproject commit e403e8021ca760580d09a9a648a1fd9731a27de2 diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index d95e4f63..04bd9a8b 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit d95e4f631fd20112660bf07fa96f6a28df2f2a0a +Subproject commit 04bd9a8b8de71c11e0a283aa9bb514ca7f397cd2 diff --git a/moonray/moonshine b/moonray/moonshine index 32a6e649..5bec7a4b 160000 --- a/moonray/moonshine +++ b/moonray/moonshine @@ -1 +1 @@ -Subproject commit 32a6e64967677008bddf05ea2fc5fe5533c0f47b +Subproject commit 5bec7a4be722894ba70f22760d194c862eb67280 diff --git a/moonray/scene_rdl2 b/moonray/scene_rdl2 index e8baaa6c..b7aa377e 160000 --- a/moonray/scene_rdl2 +++ b/moonray/scene_rdl2 @@ -1 +1 @@ -Subproject commit e8baaa6ccf89de5c22e85b7fa2d73f8fdbc7d137 +Subproject commit b7aa377ee59b6743806f9d3ba88f4e93cd91f317 diff --git a/scripts/macOS/setupHoudini.sh b/scripts/macOS/setupHoudini.sh index 77526c02..8db1be0d 100644 --- a/scripts/macOS/setupHoudini.sh +++ b/scripts/macOS/setupHoudini.sh @@ -39,6 +39,60 @@ prepend_existing_path() { fi } +resolve_ocio_package_value() { + local raw_value="$1" + local value="${raw_value}" + + case "${value}" in + \${OCIO-*}) + value="${value#\$\{OCIO-}" + value="${value%\}}" + ;; + esac + + value="${value//\$HOME/${HOME}}" + case "${value}" in + "~/"*) value="${HOME}/${value#~/}" ;; + esac + echo "${value}" +} + +set_ocio_from_houdini_packages() { + if [ -n "${OCIO:-}" ]; then + return + fi + + local package_dirs="${HOUDINI_PACKAGE_DIR:-${HOME}/Library/Preferences/houdini/20.5/packages:${houdini_install_dir}/Frameworks/Houdini.framework/Versions/Current/Resources/packages}" + local package_dir + while IFS= read -r package_dir; do + if [ ! -d "${package_dir}" ]; then + continue + fi + local package_file + while IFS= read -r package_file; do + if [ ! -f "${package_file}" ] || ! grep -q '"OCIO"' "${package_file}"; then + continue + fi + local raw_value + raw_value="$(sed -nE 's/.*"OCIO"[[:space:]]*:[[:space:]]*"([^"]+)".*/\1/p' "${package_file}" | head -1)" + if [ -z "${raw_value}" ]; then + continue + fi + local candidate + candidate="$(resolve_ocio_package_value "${raw_value}")" + if [ -f "${candidate}" ]; then + export OCIO="$(realpath "${candidate}")" + return + fi + done < <(find "${package_dir}" -maxdepth 1 -type f -name '*.json' 2>/dev/null) + done < <(printf '%s\n' "${package_dirs}" | tr ':' '\n') +} + +# Houdini loads package files itself, but standalone MoonRay tools launched from +# this shell do not. Mirror a package-authored OCIO default without overriding an +# explicitly supplied OCIO so husk/hd_usd2rdl use the same color config as Houdini. +set_ocio_from_houdini_packages + # Preserve any existing USD plugin search path while guaranteeing MoonRay plugin location is present. export PXR_PLUGINPATH_NAME="$(prepend_unique_path "${omr_install_dir}/plugin/pxr" "${PXR_PLUGINPATH_NAME}")" export PXR_PLUGIN_PATH="$(prepend_unique_path "${omr_install_dir}/plugin/pxr" "${PXR_PLUGIN_PATH}")" From 202fbaf38f89989f9832b360b20bc19c2f56a992 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 22 Jun 2026 18:28:04 +0200 Subject: [PATCH 35/35] Update H20.5 documentation pins Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- moonray/hydra/hdMoonray | 2 +- moonray/moonray_dcc_plugins | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/moonray/hydra/hdMoonray b/moonray/hydra/hdMoonray index 34d2d7eb..f371e9ad 160000 --- a/moonray/hydra/hdMoonray +++ b/moonray/hydra/hdMoonray @@ -1 +1 @@ -Subproject commit 34d2d7ebe96c12b4d899e6417245dc4837b97ee4 +Subproject commit f371e9ad9d5cd2285438d54ae659e5c41a834c2f diff --git a/moonray/moonray_dcc_plugins b/moonray/moonray_dcc_plugins index 04bd9a8b..a8648253 160000 --- a/moonray/moonray_dcc_plugins +++ b/moonray/moonray_dcc_plugins @@ -1 +1 @@ -Subproject commit 04bd9a8b8de71c11e0a283aa9bb514ca7f397cd2 +Subproject commit a86482535ddd6ba955462b1b0017bc2ed84e38c4