diff --git a/.gitignore b/.gitignore index c329709..2426ed6 100644 --- a/.gitignore +++ b/.gitignore @@ -14,13 +14,3 @@ /OpenUSD-24.03.tar.gz /OpenUSD-24.05.tar.gz /OpenUSD-24.08.tar.gz -/OpenUSD-24.11.tar.gz -/OpenUSD-25.02.tar.gz -/OpenUSD-25.02a.tar.gz -/OpenUSD-25.05.tar.gz -/OpenUSD-25.05.01.tar.gz -/OpenUSD-25.08.tar.gz -/OpenUSD-25.11.tar.gz -/OpenUSD-26.03.tar.gz -/OpenUSD-26.05.tar.gz -/OpenUSD-26.08.tar.gz diff --git a/0001-Downstream-only-add-an-SONAME-version.patch b/0001-Downstream-only-add-an-SONAME-version.patch index db129dd..dbf0967 100644 --- a/0001-Downstream-only-add-an-SONAME-version.patch +++ b/0001-Downstream-only-add-an-SONAME-version.patch @@ -1,4 +1,4 @@ -From ee4e9b30e14133e35c23821d3dc7aa93df354a38 Mon Sep 17 00:00:00 2001 +From 83c22378ffadc7f52081d98a432c65bbd2d79f9c Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Fri, 27 Oct 2023 12:56:58 -0400 Subject: [PATCH] Downstream-only: add an SONAME version @@ -33,14 +33,14 @@ built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) --- cmake/defaults/Version.cmake | 6 ++++++ cmake/macros/Private.cmake | 1 + - cmake/macros/Public.cmake | 2 ++ - 3 files changed, 9 insertions(+) + cmake/macros/Public.cmake | 1 + + 3 files changed, 8 insertions(+) diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake -index c31b5e8d9..fabb45397 100644 +index 427608ca8..4eca9b076 100644 --- a/cmake/defaults/Version.cmake +++ b/cmake/defaults/Version.cmake -@@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "26") +@@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "24") set(PXR_PATCH_VERSION "8") # NOTE: Must not have leading 0 for single digits math(EXPR PXR_VERSION "${PXR_MAJOR_VERSION} * 10000 + ${PXR_MINOR_VERSION} * 100 + ${PXR_PATCH_VERSION}") @@ -51,37 +51,29 @@ index c31b5e8d9..fabb45397 100644 + "Downstream shared object version" +) diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake -index cddb4e095..5e4b4603a 100644 +index 48fe107dd..23ecc44ea 100644 --- a/cmake/macros/Private.cmake +++ b/cmake/macros/Private.cmake -@@ -1355,6 +1355,7 @@ function(_pxr_library NAME) - FOLDER "${folder}" - POSITION_INDEPENDENT_CODE ON +@@ -1342,6 +1342,7 @@ function(_pxr_library NAME) IMPORT_PREFIX "${args_PREFIX}" -+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION} PREFIX "${args_PREFIX}" SUFFIX "${args_SUFFIX}" ++ SOVERSION ${PXR_DOWNSTREAM_SOVERSION} ) + + target_compile_definitions(${NAME} diff --git a/cmake/macros/Public.cmake b/cmake/macros/Public.cmake -index 5f6a5456b..553b645ec 100644 +index 9f3d35837..478434cbd 100644 --- a/cmake/macros/Public.cmake +++ b/cmake/macros/Public.cmake -@@ -415,6 +415,7 @@ function(pxr_library NAME) - TYPE "${args_TYPE}" - PREFIX "${prefix}" - SUFFIX "${suffix}" -+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION} - SUBDIR "${subdir}" - CPPFILES "${args_CPPFILES};${${NAME}_CPPFILES}" - PUBLIC_HEADERS "${args_PUBLIC_HEADERS};${${NAME}_PUBLIC_HEADERS}" -@@ -1213,6 +1214,7 @@ function(pxr_toplevel_prologue) +@@ -1004,6 +1004,7 @@ function(pxr_toplevel_prologue) + FOLDER "${folder}" PREFIX "${libPrefix}" IMPORT_PREFIX "${libPrefix}" - OUTPUT_NAME ${libName} -+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION} ++ SOVERSION ${PXR_DOWNSTREAM_SOVERSION} ) _get_install_dir("lib" libInstallPrefix) install( -- -2.55.0 +2.46.0 diff --git a/0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch b/0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch deleted file mode 100644 index 6d2305c..0000000 --- a/0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 817e23674f1b4ba62481c4e9794f0665a44d83f8 Mon Sep 17 00:00:00 2001 -From: "Benjamin A. Beasley" -Date: Fri, 1 Aug 2025 08:47:41 -0400 -Subject: [PATCH] Downstream-only: use Valgrind macro instead of inline - assembly - -Upstream already has a plan to make this change, but is waiting to be -able to add a build dependency on valgrind-devel. We have no such -obstacle, and this change fixes the inline assembly failing to compile -on aarch64. ---- - pxr/exec/vdf/executorDataVector.cpp | 28 +++------------------------- - 1 file changed, 3 insertions(+), 25 deletions(-) - -diff --git a/pxr/exec/vdf/executorDataVector.cpp b/pxr/exec/vdf/executorDataVector.cpp -index 96dacca06..7e5625678 100644 ---- a/pxr/exec/vdf/executorDataVector.cpp -+++ b/pxr/exec/vdf/executorDataVector.cpp -@@ -11,40 +11,18 @@ - #include "pxr/base/tf/stl.h" - #include "pxr/base/trace/trace.h" - -+#include -+ - PXR_NAMESPACE_OPEN_SCOPE - - - /// Issue a magic instruction sequence which Valgrind will intercept and mark - /// the specified memory defined for memcheck. - /// --/// XXX: We should replace this with the VALGRIND_MAKE_MEM_DEFINED macro --/// from memcheck.h, once we can establish a build dependency on --/// valgrind-devel. --/// - static inline void - Vdf_ExecutorDataVector_ValgrindMakeDefined(void *ptr, size_t size) - { --#if defined(ARCH_OS_LINUX) && defined(ARCH_CPU_INTEL) -- // Pass a result and a pointer to some arguments via registers -- volatile unsigned long long int result; -- volatile unsigned long long int args[6] = { -- 0x4D430002, // Memcheck: MAKE_MEM_DEFINED -- (uintptr_t)(ptr), // Memory address -- size, // Size in bytes -- 0, 0, 0 // Remaining unused arguments -- }; -- -- // Magical instruction sequence which Valgrind will interpret as an -- // annotation (see valgrind.h) -- __asm__ volatile( -- "rolq $3, %%rdi ; rolq $13, %%rdi\n\t" -- "rolq $61, %%rdi ; rolq $51, %%rdi\n\t" -- "xchgq %%rbx, %%rbx" -- : "=d" (result) -- : "a" (&args[0]), "0" (0) -- : "cc", "memory" -- ); --#endif -+ VALGRIND_MAKE_MEM_DEFINED(ptr, size); - } - - Vdf_ExecutorDataVector::~Vdf_ExecutorDataVector() --- -2.55.0 - diff --git a/0001-Downstream-only-use-the-system-double-conversion-lib.patch b/0001-Downstream-only-use-the-system-double-conversion-lib.patch index 1cd7abc..22ab01c 100644 --- a/0001-Downstream-only-use-the-system-double-conversion-lib.patch +++ b/0001-Downstream-only-use-the-system-double-conversion-lib.patch @@ -1,4 +1,4 @@ -From 2d851f23e912d8312f2ea6818963150a8c484138 Mon Sep 17 00:00:00 2001 +From 0f786f889eeea75a1983d694bfa168c003009b35 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 28 Aug 2024 10:42:48 -0400 Subject: [PATCH 1/6] Downstream-only: use the system double-conversion library @@ -8,10 +8,10 @@ Subject: [PATCH 1/6] Downstream-only: use the system double-conversion library 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt -index 4294f2cb5..b45df65b8 100644 +index b236184c4..c1a24a87f 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt -@@ -105,11 +105,14 @@ function(add_py_dll_link_test) +@@ -110,6 +110,8 @@ function(add_py_dll_link_test) endfunction() @@ -20,13 +20,15 @@ index 4294f2cb5..b45df65b8 100644 pxr_library(tf LIBRARIES arch - ${WINLIBS} - TBB::tbb +@@ -117,6 +119,7 @@ pxr_library(tf + ${PYTHON_LIBRARIES} + ${Boost_PYTHON_LIBRARY} + ${TBB_tbb_LIBRARY} + ${double-conversion_LIBRARY} - PUBLIC_CLASSES - anyUniquePtr -@@ -276,14 +279,6 @@ pxr_library(tf + INCLUDE_DIRS + ${PYTHON_INCLUDE_DIRS} +@@ -283,14 +286,6 @@ pxr_library(tf CPPFILES initConfig.cpp @@ -40,7 +42,7 @@ index 4294f2cb5..b45df65b8 100644 - pxrDoubleConversion/strtod.cc pxrLZ4/lz4.cpp - PYMODULE_CPPFILES + PYTHON_CPPFILES -- -2.55.0 +2.46.0 diff --git a/0001-Replace-PyWeakref_GetObject-with-PyWeakref_GetRef.patch b/0001-Replace-PyWeakref_GetObject-with-PyWeakref_GetRef.patch deleted file mode 100644 index 97dbab3..0000000 --- a/0001-Replace-PyWeakref_GetObject-with-PyWeakref_GetRef.patch +++ /dev/null @@ -1,110 +0,0 @@ -From f3e9600db6086e834c0503cdaf30b5ba7ed53ceb Mon Sep 17 00:00:00 2001 -From: Anonymous Coward -Date: Sun, 26 Jul 2026 16:13:18 +0200 -Subject: [PATCH] Replace PyWeakref_GetObject with PyWeakref_GetRef - -PyWeakref_GetObject was removed in Python 3.15. Replace all four call -sites with PyWeakref_GetRef, which returns a strong reference instead -of a borrowed one, and adjust reference counting accordingly. - -In Tf_PyIdHandle::Ptr(), return Py_None when the referent is dead to -match the original behaviour (previously returned NULL erroneously). - -In Tf_PyWeakObject::GetObject(), explicitly return a Python None object -on failure, matching the original semantics exactly. - -Fixes: https://github.com/PixarAnimationStudios/OpenUSD/issues/3966 - -Assisted-by: Claude Opus 4.6 -Reviewed-by: OpenUSD Maintainers ---- - pxr/base/tf/pyFunction.h | 13 +++++++++---- - pxr/base/tf/pyIdentity.cpp | 10 +++++++++- - pxr/base/tf/pyWeakObject.cpp | 12 +++++++++--- - 3 files changed, 27 insertions(+), 8 deletions(-) - -diff --git a/pxr/base/tf/pyFunction.h b/pxr/base/tf/pyFunction.h -index 85af943b2..f77b5b71b 100644 ---- a/pxr/base/tf/pyFunction.h -+++ b/pxr/base/tf/pyFunction.h -@@ -49,11 +49,13 @@ struct TfPyFunctionFromPython - using namespace pxr_boost::python; - // Attempt to get the referenced callable object. - TfPyLock lock; -- object callable(handle<>(borrowed(PyWeakref_GetObject(weak.ptr())))); -- if (TfPyIsNone(callable)) { -+ PyObject *rawCallable = NULL; -+ if (PyWeakref_GetRef(weak.ptr(), &rawCallable) <= 0) { - TF_WARN("Tried to call an expired python callback"); - return Ret(); - } -+ // PyWeakref_GetRef returns a strong reference; handle<> steals it. -+ object callable{handle<>(rawCallable)}; - return TfPyCall(callable)(args...); - } - }; -@@ -68,12 +70,15 @@ struct TfPyFunctionFromPython - // Attempt to get the referenced self parameter, then build a new - // instance method and call it. - TfPyLock lock; -- PyObject *self = PyWeakref_GetObject(weakSelf.ptr()); -- if (self == Py_None) { -+ PyObject *self = NULL; -+ if (PyWeakref_GetRef(weakSelf.ptr(), &self) <= 0) { - TF_WARN("Tried to call a method on an expired python instance"); - return Ret(); - } -+ // PyWeakref_GetRef returns a strong reference to self; PyMethod_New -+ // takes its own reference, so release ours afterward. - object method(handle<>(PyMethod_New(func.ptr(), self))); -+ Py_DECREF(self); - return TfPyCall(method)(args...); - } - }; -diff --git a/pxr/base/tf/pyIdentity.cpp b/pxr/base/tf/pyIdentity.cpp -index 5389d8f25..06b7f9b0c 100644 ---- a/pxr/base/tf/pyIdentity.cpp -+++ b/pxr/base/tf/pyIdentity.cpp -@@ -136,7 +136,15 @@ PyObject * - Tf_PyIdHandle::Ptr() const { - if (_weakRef) { - TfPyLock lock; -- return PyWeakref_GetObject(_weakRef); -+ PyObject *obj = NULL; -+ if (PyWeakref_GetRef(_weakRef, &obj) > 0) { -+ // Return a borrowed-style reference: decrement so the caller -+ // does not need to release. Safe because the GIL is held by -+ // all callers. -+ Py_DECREF(obj); -+ return obj; -+ } -+ return Py_None; // dead referent → match original behaviour - } - return 0; - } -diff --git a/pxr/base/tf/pyWeakObject.cpp b/pxr/base/tf/pyWeakObject.cpp -index 8cfddc729..ecdd7f705 100644 ---- a/pxr/base/tf/pyWeakObject.cpp -+++ b/pxr/base/tf/pyWeakObject.cpp -@@ -115,9 +115,15 @@ Tf_PyWeakObject::GetOrCreate(pxr_boost::python::object const &obj) - pxr_boost::python::object - Tf_PyWeakObject::GetObject() const - { -- return pxr_boost::python::object -- (pxr_boost::python::handle<> -- (pxr_boost::python::borrowed(PyWeakref_GetObject(_weakRef.get())))); -+ PyObject *obj = NULL; -+ if (PyWeakref_GetRef(_weakRef.get(), &obj) > 0) { -+ // PyWeakref_GetRef returns a strong reference; handle<> steals it. -+ return pxr_boost::python::object( -+ pxr_boost::python::handle<>(obj)); -+ } -+ // Dead referent: return Py_None explicitly, as the original did. -+ return pxr_boost::python::object( -+ pxr_boost::python::handle<>(pxr_boost::python::borrowed(Py_None))); - } - - void --- -2.55.0 - diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index 6659b01..aae45cc 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,17 +1,17 @@ -From 9fd6089b3e95bb882199ee359fbba83f7c4bb410 Mon Sep 17 00:00:00 2001 +From 9ace4ea6c8e3a17c9d047f8bd7c5ccd11fb4ffb8 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 29 Aug 2024 13:30:18 -0400 Subject: [PATCH 2/6] Downstream-only: use the system lz4 library --- - pxr/base/tf/CMakeLists.txt | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) + pxr/base/tf/CMakeLists.txt | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt -index b45df65b8..5e6de96da 100644 +index c1a24a87f..56f75ae22 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt -@@ -106,6 +106,8 @@ function(add_py_dll_link_test) +@@ -111,6 +111,8 @@ function(add_py_dll_link_test) endfunction() find_library(double-conversion_LIBRARY NAMES double-conversion REQUIRED) @@ -20,25 +20,28 @@ index b45df65b8..5e6de96da 100644 pxr_library(tf LIBRARIES -@@ -113,6 +115,10 @@ pxr_library(tf - ${WINLIBS} - TBB::tbb +@@ -120,11 +122,13 @@ pxr_library(tf + ${Boost_PYTHON_LIBRARY} + ${TBB_tbb_LIBRARY} ${double-conversion_LIBRARY} + ${LZ4_LIBRARIES} -+ -+ INCLUDE_DIRS + + INCLUDE_DIRS + ${PYTHON_INCLUDE_DIRS} + ${Boost_INCLUDE_DIRS} + ${TBB_INCLUDE_DIRS} + ${LZ4_INCLUDE_DIRS} PUBLIC_CLASSES anyUniquePtr -@@ -279,7 +285,6 @@ pxr_library(tf +@@ -286,7 +290,6 @@ pxr_library(tf CPPFILES initConfig.cpp - pxrLZ4/lz4.cpp - PYMODULE_CPPFILES - module.cpp + PYTHON_CPPFILES + moduleDeps.cpp -- -2.55.0 +2.46.0 diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch index e7ad209..416bb52 100644 --- a/0003-Downstream-only-use-the-system-pugixml-library.patch +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -1,16 +1,17 @@ -From 73637a9bf67b3f7afe5070e5d56b07524e14a073 Mon Sep 17 00:00:00 2001 +From 93d27e7deea9c2a5eadc6257cef90f5eaef13777 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Fri, 30 Aug 2024 09:32:08 -0400 Subject: [PATCH 3/6] Downstream-only: use the system pugixml library --- - third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) + .../renderman-25/plugin/rmanArgsParser/CMakeLists.txt | 6 +++--- + .../renderman-26/plugin/rmanArgsParser/CMakeLists.txt | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) -diff --git a/third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt b/third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt -index 244f27aa8..1e00413c4 100644 ---- a/third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt -+++ b/third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt +diff --git a/third_party/renderman-25/plugin/rmanArgsParser/CMakeLists.txt b/third_party/renderman-25/plugin/rmanArgsParser/CMakeLists.txt +index fae498d58..a7587b240 100644 +--- a/third_party/renderman-25/plugin/rmanArgsParser/CMakeLists.txt ++++ b/third_party/renderman-25/plugin/rmanArgsParser/CMakeLists.txt @@ -1,6 +1,8 @@ set(PXR_PREFIX "") set(PXR_PACKAGE rmanArgsParser) @@ -20,9 +21,36 @@ index 244f27aa8..1e00413c4 100644 pxr_plugin(rmanArgsParser LIBRARIES arch -@@ -9,12 +11,10 @@ pxr_plugin(rmanArgsParser - vt +@@ -10,12 +12,10 @@ pxr_plugin(rmanArgsParser ar + ndr + sdr ++ ${pugixml_LIBRARY} + + PRIVATE_CLASSES + rmanArgsParser +- +- CPPFILES +- pugixml/pugixml.cpp + + PRIVATE_HEADERS + api.h +diff --git a/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt b/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt +index fae498d58..a7587b240 100644 +--- a/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt ++++ b/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt +@@ -1,6 +1,8 @@ + set(PXR_PREFIX "") + set(PXR_PACKAGE rmanArgsParser) + ++find_library(pugixml_LIBRARY NAMES pugixml REQUIRED) ++ + pxr_plugin(rmanArgsParser + LIBRARIES + arch +@@ -10,12 +12,10 @@ pxr_plugin(rmanArgsParser + ar + ndr sdr + ${pugixml_LIBRARY} @@ -35,5 +63,5 @@ index 244f27aa8..1e00413c4 100644 PRIVATE_HEADERS api.h -- -2.55.0 +2.46.0 diff --git a/0004-Downstream-only-use-the-system-rapidjson-library.patch b/0004-Downstream-only-use-the-system-rapidjson-library.patch index 8d9f9cd..e58c8b6 100644 --- a/0004-Downstream-only-use-the-system-rapidjson-library.patch +++ b/0004-Downstream-only-use-the-system-rapidjson-library.patch @@ -1,23 +1,22 @@ -From f331a476a66e41e93d83b7a2e438d3ee7f12ea32 Mon Sep 17 00:00:00 2001 +From fa40048ee12fbe5a2cb8ba12ada1a354f1587d1a Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sat, 31 Aug 2024 11:08:18 -0400 Subject: [PATCH 4/6] Downstream-only: use the system rapidjson library --- - pxr/base/js/CMakeLists.txt | 40 -------------------------------------- - 1 file changed, 40 deletions(-) + pxr/base/js/CMakeLists.txt | 37 ------------------------------------- + 1 file changed, 37 deletions(-) diff --git a/pxr/base/js/CMakeLists.txt b/pxr/base/js/CMakeLists.txt -index 8cbda8c52..ec8f3c249 100644 +index f5ac5fb99..102e41151 100644 --- a/pxr/base/js/CMakeLists.txt +++ b/pxr/base/js/CMakeLists.txt -@@ -15,46 +15,6 @@ pxr_library(js +@@ -18,43 +18,6 @@ pxr_library(js converter.h types.h - PRIVATE_HEADERS - rapidjson/allocators.h -- rapidjson/cursorstreamwrapper.h - rapidjson/document.h - rapidjson/encodedstream.h - rapidjson/encodings.h @@ -27,7 +26,6 @@ index 8cbda8c52..ec8f3c249 100644 - rapidjson/filewritestream.h - rapidjson/fwd.h - rapidjson/internal/biginteger.h -- rapidjson/internal/clzll.h - rapidjson/internal/diyfp.h - rapidjson/internal/dtoa.h - rapidjson/internal/ieee754.h @@ -52,12 +50,11 @@ index 8cbda8c52..ec8f3c249 100644 - rapidjson/schema.h - rapidjson/stream.h - rapidjson/stringbuffer.h -- rapidjson/uri.h - rapidjson/writer.h - DOXYGEN_FILES overview.dox ) -- -2.55.0 +2.46.0 diff --git a/0005-Downstream-only-use-the-system-libdeflate.patch b/0005-Downstream-only-use-the-system-libdeflate.patch index b8ce47f..7bcd8ee 100644 --- a/0005-Downstream-only-use-the-system-libdeflate.patch +++ b/0005-Downstream-only-use-the-system-libdeflate.patch @@ -1,16 +1,16 @@ -From a537b44edabe942380d2e87ea7069bdf32b93dbc Mon Sep 17 00:00:00 2001 +From 3953ba8f55501ec3c03f8553af156990f89834f3 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 1 Sep 2024 21:30:11 -0400 Subject: [PATCH 5/6] Downstream-only: use the system libdeflate --- - pxr/imaging/hio/CMakeLists.txt | 7 +++++++ - .../hioOpenEXR/OpenEXR/OpenEXRCore/compression.c | 3 +-- - .../plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h | 12 ------------ - 3 files changed, 8 insertions(+), 14 deletions(-) + pxr/imaging/hio/CMakeLists.txt | 5 +++++ + pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c | 3 +-- + pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h | 12 ------------ + 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/pxr/imaging/hio/CMakeLists.txt b/pxr/imaging/hio/CMakeLists.txt -index e61fc7c54..7cfbe9d70 100644 +index 92d1e4fe9..9f30c1209 100644 --- a/pxr/imaging/hio/CMakeLists.txt +++ b/pxr/imaging/hio/CMakeLists.txt @@ -1,6 +1,9 @@ @@ -23,21 +23,22 @@ index e61fc7c54..7cfbe9d70 100644 pxr_library(hio LIBRARIES arch -@@ -11,6 +14,10 @@ pxr_library(hio +@@ -11,9 +14,11 @@ pxr_library(hio trace ar hf + ${DEFLATE_LIBRARIES} -+ -+ INCLUDE_DIRS + + INCLUDE_DIRS + ${Boost_INCLUDE_DIRS} + ${DEFLATE_INCLUDE_DIRS} PUBLIC_CLASSES fieldTextureData -diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c +diff --git a/pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c b/pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c index a672e833b..1d2eaea56 100644 ---- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c -+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c +--- a/pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c ++++ b/pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c @@ -8,8 +8,7 @@ #include "internal_memory.h" #include "internal_structs.h" @@ -48,10 +49,10 @@ index a672e833b..1d2eaea56 100644 #if ( \ LIBDEFLATE_VERSION_MAJOR > 1 || \ -diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h +diff --git a/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h b/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h index 7481a346e..71bdde9cc 100644 ---- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h -+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h +--- a/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h ++++ b/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h @@ -8,18 +8,6 @@ #include "OpenEXRCore/openexr_config.h" @@ -72,5 +73,5 @@ index 7481a346e..71bdde9cc 100644 #include "OpenEXRCore/attributes.c" -- -2.55.0 +2.46.0 diff --git a/0006-Downstream-only-use-the-system-libavif.patch b/0006-Downstream-only-use-the-system-libavif.patch index 9ab912a..84b62a4 100644 --- a/0006-Downstream-only-use-the-system-libavif.patch +++ b/0006-Downstream-only-use-the-system-libavif.patch @@ -1,28 +1,28 @@ -From f2a3615238a691e11a4029c33498e7f21a34fff9 Mon Sep 17 00:00:00 2001 +From 73424900f3a874b82a3dfefb44ecdfa3a0d1836e Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 4 Sep 2024 11:09:47 -0400 Subject: [PATCH 6/6] Downstream-only: use the system libavif --- pxr/imaging/plugin/hioAvif/AVIFImage.cpp | 2 +- - pxr/imaging/plugin/hioAvif/CMakeLists.txt | 194 +--------------------- - 2 files changed, 7 insertions(+), 189 deletions(-) + pxr/imaging/plugin/hioAvif/CMakeLists.txt | 195 +--------------------- + 2 files changed, 8 insertions(+), 189 deletions(-) diff --git a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp -index b56369ee5..c6fcb4a6c 100644 +index 6f625e085..eeb52a281 100644 --- a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp +++ b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp -@@ -30,7 +30,7 @@ ARCH_PRAGMA_UNUSED_FUNCTION +@@ -29,7 +29,7 @@ ARCH_PRAGMA_UNUSED_FUNCTION #include "pxr/base/tf/stringUtils.h" #include "pxr/base/tf/type.h" -#include "pxr/imaging/plugin/hioAvif/AVIF/src/avif/avif.h" +#include - PXR_NAMESPACE_OPEN_SCOPE + #include "pxr/base/arch/export.h" diff --git a/pxr/imaging/plugin/hioAvif/CMakeLists.txt b/pxr/imaging/plugin/hioAvif/CMakeLists.txt -index 1ac2683f6..7d583c137 100644 +index 29ffe0fdf..7f1680eaf 100644 --- a/pxr/imaging/plugin/hioAvif/CMakeLists.txt +++ b/pxr/imaging/plugin/hioAvif/CMakeLists.txt @@ -1,6 +1,9 @@ @@ -35,11 +35,14 @@ index 1ac2683f6..7d583c137 100644 pxr_plugin(hioAvif LIBRARIES ar -@@ -8,197 +11,12 @@ pxr_plugin(hioAvif +@@ -8,196 +11,12 @@ pxr_plugin(hioAvif gf hio tf + ${AVIF_LIBRARIES} ++ ++ INCLUDE_DIRS ++ ${AVIF_INCLUDE_DIRS} - PRIVATE_HEADERS - aom/aom.h @@ -50,89 +53,89 @@ index 1ac2683f6..7d583c137 100644 - aom/aom_image.h - aom/aom_integer.h - aom/aomdx.h -- aom/aom_external_partition.h +- aom/aom_dsp/binary_codes_reader.h +- aom/aom_dsp/bitreader.h +- aom/aom_dsp/aom_dsp_common.h +- aom/aom_dsp/bitreader_buffer.h +- aom/aom_dsp/blend.h +- aom/aom_dsp/entcode.h +- aom/aom_dsp/entdec.h +- aom/aom_dsp/grain_table.h +- aom/aom_dsp/aom_filter.h +- aom/aom_dsp/grain_synthesis.h +- aom/aom_dsp/intrapred_common.h +- aom/aom_dsp/prob.h +- aom/aom_dsp/recenter.h +- aom/aom_dsp/txfm_common.h +- aom/aom_mem/aom_mem.h +- aom/aom_mem/include/aom_mem_intrnl.h +- aom/aom_ports/bitops.h +- aom/aom_ports/aom_once.h +- aom/aom_ports/mem.h +- aom/aom_ports/mem_ops.h +- aom/aom_ports/mem_ops_aligned.h +- aom/aom_ports/msvc.h +- aom/aom_ports/system_state.h +- aom/aom_ports/aom_timer.h +- aom/aom_scale/aom_scale.h +- aom/aom_scale/yv12config.h +- aom/aom_util/aom_thread.h +- aom/av1/av1_iface_common.h +- aom/av1/common/av1_common_int.h +- aom/av1/common/alloccommon.h +- aom/av1/common/av1_inv_txfm1d.h +- aom/av1/common/av1_inv_txfm1d_cfg.h +- aom/av1/common/av1_loopfilter.h +- aom/av1/common/av1_txfm.h +- aom/av1/common/blockd.h +- aom/av1/common/cdef.h +- aom/av1/common/cdef_block.h +- aom/av1/common/cfl.h +- aom/av1/common/common.h +- aom/av1/common/common_data.h +- aom/av1/common/convolve.h +- aom/av1/common/entropy.h +- aom/av1/common/entropymode.h +- aom/av1/common/entropymv.h +- aom/av1/common/enums.h +- aom/av1/common/filter.h +- aom/av1/common/frame_buffers.h +- aom/av1/common/mv.h +- aom/av1/common/mvref_common.h +- aom/av1/common/idct.h +- aom/av1/common/obmc.h +- aom/av1/common/obu_util.h +- aom/av1/common/odintrin.h +- aom/av1/common/pred_common.h +- aom/av1/common/quant_common.h +- aom/av1/common/reconinter.h +- aom/av1/common/reconintra.h +- aom/av1/common/resize.h +- aom/av1/common/restoration.h +- aom/av1/common/scale.h +- aom/av1/common/scan.h +- aom/av1/common/seg_common.h +- aom/av1/common/thread_common.h +- aom/av1/common/tile_common.h +- aom/av1/common/timing.h +- aom/av1/common/token_cdfs.h +- aom/av1/common/txb_common.h +- aom/av1/common/warped_motion.h +- aom/av1/decoder/decodeframe.h +- aom/av1/decoder/decoder.h +- aom/av1/decoder/decodemv.h +- aom/av1/decoder/decodetxb.h +- aom/av1/decoder/detokenize.h +- aom/av1/decoder/dthread.h +- aom/av1/decoder/obu.h +- aom/config/aom_config.h +- aom/config/aom_dsp_rtcd.h +- aom/config/aom_scale_rtcd.h +- aom/config/aom_version.h +- aom/config/av1_rtcd.h - aom/internal/aom_codec_internal.h - aom/internal/aom_image_internal.h -- aom_dsp/aom_dsp_common.h -- aom_dsp/aom_filter.h -- aom_dsp/binary_codes_reader.h -- aom_dsp/bitreader.h -- aom_dsp/bitreader_buffer.h -- aom_dsp/blend.h -- aom_dsp/entcode.h -- aom_dsp/entdec.h -- aom_dsp/flow_estimation/corner_detect.h -- aom_dsp/flow_estimation/flow_estimation.h -- aom_dsp/grain_params.h -- aom_dsp/grain_table.h -- aom_dsp/intrapred_common.h -- aom_dsp/odintrin.h -- aom_dsp/prob.h -- aom_dsp/pyramid.h -- aom_dsp/recenter.h -- aom_dsp/txfm_common.h -- aom_mem/aom_mem.h -- aom_mem/include/aom_mem_intrnl.h -- aom_ports/aom_once.h -- aom_ports/aom_timer.h -- aom_ports/bitops.h -- aom_ports/mem.h -- aom_ports/mem_ops.h -- aom_ports/mem_ops_aligned.h -- aom_ports/sanitizer.h -- aom_scale/yv12config.h -- aom_util/aom_thread.h -- aom_util/aom_pthread.h -- av1/av1_iface_common.h -- av1/common/alloccommon.h -- av1/common/av1_common_int.h -- av1/common/av1_inv_txfm1d.h -- av1/common/av1_inv_txfm1d_cfg.h -- av1/common/av1_loopfilter.h -- av1/common/av1_txfm.h -- av1/common/blockd.h -- av1/common/cdef.h -- av1/common/cdef_block.h -- av1/common/cfl.h -- av1/common/common.h -- av1/common/common_data.h -- av1/common/convolve.h -- av1/common/entropy.h -- av1/common/entropymode.h -- av1/common/entropymv.h -- av1/common/enums.h -- av1/common/filter.h -- av1/common/frame_buffers.h -- av1/common/idct.h -- av1/common/mv.h -- av1/common/mvref_common.h -- av1/common/obmc.h -- av1/common/obu_util.h -- av1/common/pred_common.h -- av1/common/quant_common.h -- av1/common/reconinter.h -- av1/common/reconinter_template.inc -- av1/common/reconintra.h -- av1/common/resize.h -- av1/common/restoration.h -- av1/common/scale.h -- av1/common/scan.h -- av1/common/seg_common.h -- av1/common/thread_common.h -- av1/common/tile_common.h -- av1/common/timing.h -- av1/common/token_cdfs.h -- av1/common/txb_common.h -- av1/common/warped_motion.h -- av1/decoder/decodeframe.h -- av1/decoder/decodemv.h -- av1/decoder/decoder.h -- av1/decoder/decodetxb.h -- av1/decoder/detokenize.h -- av1/decoder/dthread.h -- av1/decoder/grain_synthesis.h -- av1/decoder/obu.h -- common/args_helper.h +- aom/internal/common/args_helper.h - AVIF/src/avif/avif.h - AVIF/src/avif/internal.h - AVIF/src/src-libyuv/libyuv/basic_types.h @@ -142,74 +145,71 @@ index 1ac2683f6..7d583c137 100644 - AVIF/src/src-libyuv/libyuv/scale.h - AVIF/src/src-libyuv/libyuv/scale_row.h - AVIF/src/src-libyuv/libyuv/version.h -+ INCLUDE_DIRS -+ ${AVIF_INCLUDE_DIRS} - +- CPPFILES -- aom/src/aom_codec.c -- aom/src/aom_decoder.c -- aom/src/aom_image.c -- aom/src/aom_integer.c -- aom_dsp/aom_convolve.c -- aom_dsp/aom_dsp_rtcd.c -- aom_dsp/binary_codes_reader.c -- aom_dsp/bitreader.c -- aom_dsp/bitreader_buffer.c -- aom_dsp/blend_a64_hmask.c -- aom_dsp/blend_a64_mask.c -- aom_dsp/blend_a64_vmask.c -- aom_dsp/entcode.c -- aom_dsp/entdec.c -- aom_dsp/intrapred.c -- aom_dsp/loopfilter.c -- aom_dsp/odintrin.c -- aom_dsp/pyramid.c -- aom_mem/aom_mem.c -- aom_scale/aom_scale_rtcd.c -- aom_scale/generic/yv12config.c -- aom_scale/generic/yv12extend.c -- aom_util/aom_thread.c -- av1/av1_dx_iface.c -- av1/common/alloccommon.c -- av1/common/av1_inv_txfm1d.c -- av1/common/av1_inv_txfm2d.c -- av1/common/av1_loopfilter.c -- av1/common/av1_rtcd.c -- av1/common/av1_txfm.c -- av1/common/blockd.c -- av1/common/cdef.c -- av1/common/cdef_block.c -- av1/common/cfl.c -- av1/common/common_data.c -- av1/common/convolve.c -- av1/common/entropy.c -- av1/common/entropymode.c -- av1/common/entropymv.c -- av1/common/frame_buffers.c -- av1/common/idct.c -- av1/common/mvref_common.c -- av1/common/obu_util.c -- av1/common/pred_common.c -- av1/common/quant_common.c -- av1/common/reconinter.c -- av1/common/reconintra.c -- av1/common/resize.c -- av1/common/restoration.c -- av1/common/scale.c -- av1/common/scan.c -- av1/common/seg_common.c -- av1/common/thread_common.c -- av1/common/tile_common.c -- av1/common/timing.c -- av1/common/txb_common.c -- av1/common/warped_motion.c -- av1/decoder/decodeframe.c -- av1/decoder/decodemv.c -- av1/decoder/decoder.c -- av1/decoder/decodetxb.c -- av1/decoder/detokenize.c -- av1/decoder/grain_synthesis.c -- av1/decoder/obu.c +- aom/aom_codec.c +- aom/aom_decoder.c +- aom/aom_image.c +- aom/aom_integer.c +- aom/aom_dsp/aom_convolve.c +- aom/aom_dsp/aom_dsp_rtcd.c +- aom/aom_dsp/binary_codes_reader.c +- aom/aom_dsp/bitreader.c +- aom/aom_dsp/bitreader_buffer.c +- aom/aom_dsp/blend_a64_hmask.c +- aom/aom_dsp/blend_a64_vmask.c +- aom/aom_dsp/blend_a64_mask.c +- aom/aom_dsp/entcode.c +- aom/aom_dsp/entdec.c +- aom/aom_dsp/grain_synthesis.c +- aom/aom_dsp/intrapred.c +- aom/aom_dsp/loopfilter.c +- aom/aom_mem/aom_mem.c +- aom/aom_scale/aom_scale_rtcd.c +- aom/aom_scale/generic/aom_scale.c +- aom/aom_scale/generic/gen_scalers.c +- aom/aom_scale/generic/yv12config.c +- aom/aom_scale/generic/yv12extend.c +- aom/aom_util/aom_thread.c +- aom/av1/av1_dx_iface.c +- aom/av1/common/alloccommon.c +- aom/av1/common/av1_inv_txfm1d.c +- aom/av1/common/av1_inv_txfm2d.c +- aom/av1/common/av1_loopfilter.c +- aom/av1/common/av1_txfm.c +- aom/av1/common/av1_rtcd.c +- aom/av1/common/blockd.c +- aom/av1/common/cdef.c +- aom/av1/common/cdef_block.c +- aom/av1/common/cfl.c +- aom/av1/common/convolve.c +- aom/av1/common/entropymode.c +- aom/av1/common/entropy.c +- aom/av1/common/entropymv.c +- aom/av1/common/frame_buffers.c +- aom/av1/common/idct.c +- aom/av1/common/mvref_common.c +- aom/av1/common/obu_util.c +- aom/av1/common/pred_common.c +- aom/av1/common/quant_common.c +- aom/av1/common/reconinter.c +- aom/av1/common/reconintra.c +- aom/av1/common/resize.c +- aom/av1/common/restoration.c +- aom/av1/common/av1_scale.c +- aom/av1/common/scan.c +- aom/av1/common/seg_common.c +- aom/av1/common/thread_common.c +- aom/av1/common/timing.c +- aom/av1/common/txb_common.c +- aom/av1/common/tile_common.c +- aom/av1/common/warped_motion.c +- aom/av1/decoder/decodeframe.c +- aom/av1/decoder/decodemv.c +- aom/av1/decoder/decoder.c +- aom/av1/decoder/decodetxb.c +- aom/av1/decoder/detokenize.c +- aom/av1/decoder/obu.c - AVIF/src/alpha.c - AVIF/src/avif.c - AVIF/src/codec_aom.c @@ -237,5 +237,5 @@ index 1ac2683f6..7d583c137 100644 RESOURCE_FILES -- -2.55.0 +2.46.0 diff --git a/2266.patch b/2266.patch new file mode 100644 index 0000000..ceb58f0 --- /dev/null +++ b/2266.patch @@ -0,0 +1,217 @@ +From c8fec1342e05dca98a1afd4ea93c7a5f0b41e25b Mon Sep 17 00:00:00 2001 +From: "Benjamin A. Beasley" +Date: Sat, 11 Feb 2023 13:58:42 -0500 +Subject: [PATCH] Port to Embree 4.x + +--- + cmake/modules/FindEmbree.cmake | 16 ++++++++-------- + pxr/imaging/plugin/hdEmbree/context.h | 2 +- + pxr/imaging/plugin/hdEmbree/mesh.cpp | 2 +- + pxr/imaging/plugin/hdEmbree/mesh.h | 4 ++-- + pxr/imaging/plugin/hdEmbree/meshSamplers.h | 4 ++-- + pxr/imaging/plugin/hdEmbree/pch.h | 6 +++--- + pxr/imaging/plugin/hdEmbree/renderDelegate.h | 2 +- + pxr/imaging/plugin/hdEmbree/renderParam.h | 2 +- + pxr/imaging/plugin/hdEmbree/renderer.cpp | 8 ++------ + pxr/imaging/plugin/hdEmbree/renderer.h | 4 ++-- + .../plugin/hdEmbree/testenv/testHdEmbree.cpp | 2 +- + 11 files changed, 24 insertions(+), 28 deletions(-) + +diff --git a/cmake/modules/FindEmbree.cmake b/cmake/modules/FindEmbree.cmake +index cd52f6b7f5..7c3ecd7cd8 100644 +--- a/cmake/modules/FindEmbree.cmake ++++ b/cmake/modules/FindEmbree.cmake +@@ -20,11 +20,11 @@ + #============================================================================= + + if (APPLE) +- set (EMBREE_LIB_NAME libembree3.dylib) ++ set (EMBREE_LIB_NAME libembree4.dylib) + elseif (UNIX) +- set (EMBREE_LIB_NAME libembree3.so) ++ set (EMBREE_LIB_NAME libembree4.so) + elseif (WIN32) +- set (EMBREE_LIB_NAME embree3.lib) ++ set (EMBREE_LIB_NAME embree4.lib) + endif() + + find_library(EMBREE_LIBRARY +@@ -39,7 +39,7 @@ find_library(EMBREE_LIBRARY + ) + + find_path(EMBREE_INCLUDE_DIR +- embree3/rtcore.h ++ embree4/rtcore.h + HINTS + "${EMBREE_LOCATION}/include" + "$ENV{EMBREE_LOCATION}/include" +@@ -47,12 +47,12 @@ DOC + "Embree headers path" + ) + +-if (EMBREE_INCLUDE_DIR AND EXISTS "${EMBREE_INCLUDE_DIR}/embree3/rtcore_version.h" ) +- file(STRINGS "${EMBREE_INCLUDE_DIR}/embree3/rtcore_version.h" TMP REGEX "^#define RTC_VERSION_MAJOR.*$") ++if (EMBREE_INCLUDE_DIR AND EXISTS "${EMBREE_INCLUDE_DIR}/embree4/rtcore_version.h" ) ++ file(STRINGS "${EMBREE_INCLUDE_DIR}/embree4/rtcore_version.h" TMP REGEX "^#define RTC_VERSION_MAJOR.*$") + string(REGEX MATCHALL "[0-9]+" MAJOR ${TMP}) +- file(STRINGS "${EMBREE_INCLUDE_DIR}/embree3/rtcore_version.h" TMP REGEX "^#define RTC_VERSION_MINOR.*$") ++ file(STRINGS "${EMBREE_INCLUDE_DIR}/embree4/rtcore_version.h" TMP REGEX "^#define RTC_VERSION_MINOR.*$") + string(REGEX MATCHALL "[0-9]+" MINOR ${TMP}) +- file(STRINGS "${EMBREE_INCLUDE_DIR}/embree3/rtcore_version.h" TMP REGEX "^#define RTC_VERSION_PATCH.*$") ++ file(STRINGS "${EMBREE_INCLUDE_DIR}/embree4/rtcore_version.h" TMP REGEX "^#define RTC_VERSION_PATCH.*$") + string(REGEX MATCHALL "[0-9]+" PATCH ${TMP}) + + set (EMBREE_VERSION ${MAJOR}.${MINOR}.${PATCH}) +diff --git a/pxr/imaging/plugin/hdEmbree/context.h b/pxr/imaging/plugin/hdEmbree/context.h +index 4165adb1e6..af9cc4ef5b 100644 +--- a/pxr/imaging/plugin/hdEmbree/context.h ++++ b/pxr/imaging/plugin/hdEmbree/context.h +@@ -14,7 +14,7 @@ + #include "pxr/base/gf/matrix4f.h" + #include "pxr/base/vt/array.h" + +-#include ++#include + + PXR_NAMESPACE_OPEN_SCOPE + +diff --git a/pxr/imaging/plugin/hdEmbree/mesh.cpp b/pxr/imaging/plugin/hdEmbree/mesh.cpp +index 195f83a633..d3cb949952 100644 +--- a/pxr/imaging/plugin/hdEmbree/mesh.cpp ++++ b/pxr/imaging/plugin/hdEmbree/mesh.cpp +@@ -203,7 +203,7 @@ void HdEmbreeMesh::_EmbreeCullFaces(const RTCFilterFunctionNArguments* args) + default: break; + } + if (cull) { +- // This is how you reject a hit in embree3 instead of setting ++ // This is how you reject a hit in embree3/4 instead of setting + // geomId to invalid on the ray + args->valid[i] = 0; + } +diff --git a/pxr/imaging/plugin/hdEmbree/mesh.h b/pxr/imaging/plugin/hdEmbree/mesh.h +index 29b0d55029..79d166ac65 100644 +--- a/pxr/imaging/plugin/hdEmbree/mesh.h ++++ b/pxr/imaging/plugin/hdEmbree/mesh.h +@@ -15,8 +15,8 @@ + + #include "pxr/imaging/plugin/hdEmbree/meshSamplers.h" + +-#include +-#include ++#include ++#include + + PXR_NAMESPACE_OPEN_SCOPE + +diff --git a/pxr/imaging/plugin/hdEmbree/meshSamplers.h b/pxr/imaging/plugin/hdEmbree/meshSamplers.h +index c32c35fffa..3712a9e3ab 100644 +--- a/pxr/imaging/plugin/hdEmbree/meshSamplers.h ++++ b/pxr/imaging/plugin/hdEmbree/meshSamplers.h +@@ -12,8 +12,8 @@ + #include "pxr/imaging/hd/meshUtil.h" + #include "pxr/base/vt/types.h" + +-#include +-#include ++#include ++#include + + #include + +diff --git a/pxr/imaging/plugin/hdEmbree/pch.h b/pxr/imaging/plugin/hdEmbree/pch.h +index 200633939c..37ffc9be3d 100644 +--- a/pxr/imaging/plugin/hdEmbree/pch.h ++++ b/pxr/imaging/plugin/hdEmbree/pch.h +@@ -83,9 +83,9 @@ + #undef toupper + #endif + #endif // PXR_PYTHON_SUPPORT_ENABLED +-#include +-#include +-#include ++#include ++#include ++#include + #include + #include + #include +diff --git a/pxr/imaging/plugin/hdEmbree/renderDelegate.h b/pxr/imaging/plugin/hdEmbree/renderDelegate.h +index d4f8f78d54..84af7d8fba 100644 +--- a/pxr/imaging/plugin/hdEmbree/renderDelegate.h ++++ b/pxr/imaging/plugin/hdEmbree/renderDelegate.h +@@ -14,7 +14,7 @@ + #include "pxr/base/tf/staticTokens.h" + + #include +-#include ++#include + + PXR_NAMESPACE_OPEN_SCOPE + +diff --git a/pxr/imaging/plugin/hdEmbree/renderParam.h b/pxr/imaging/plugin/hdEmbree/renderParam.h +index 206a7458bc..354fed4faa 100644 +--- a/pxr/imaging/plugin/hdEmbree/renderParam.h ++++ b/pxr/imaging/plugin/hdEmbree/renderParam.h +@@ -11,7 +11,7 @@ + #include "pxr/imaging/hd/renderDelegate.h" + #include "pxr/imaging/hd/renderThread.h" + +-#include ++#include + + PXR_NAMESPACE_OPEN_SCOPE + +diff --git a/pxr/imaging/plugin/hdEmbree/renderer.cpp b/pxr/imaging/plugin/hdEmbree/renderer.cpp +index 13956c7b25..cf90a952da 100644 +--- a/pxr/imaging/plugin/hdEmbree/renderer.cpp ++++ b/pxr/imaging/plugin/hdEmbree/renderer.cpp +@@ -637,9 +637,7 @@ HdEmbreeRenderer::_TraceRay(unsigned int x, unsigned int y, + rayHit.ray.flags = 0; + _PopulateRayHit(&rayHit, origin, dir, 0.0f); + { +- RTCIntersectContext context; +- rtcInitIntersectContext(&context); +- rtcIntersect1(_scene, &context, &rayHit); ++ rtcIntersect1(_scene, &rayHit); + // + // there is something odd about how this is used in Embree. Is it reversed + // here and then when it it used in +@@ -979,9 +977,7 @@ HdEmbreeRenderer::_ComputeAmbientOcclusion(GfVec3f const& position, + shadow.flags = 0; + _PopulateRay(&shadow, position, shadowDir, 0.001f); + { +- RTCIntersectContext context; +- rtcInitIntersectContext(&context); +- rtcOccluded1(_scene,&context,&shadow); ++ rtcOccluded1(_scene,&shadow); + } + + // Record this AO ray's contribution to the occlusion factor: a +diff --git a/pxr/imaging/plugin/hdEmbree/renderer.h b/pxr/imaging/plugin/hdEmbree/renderer.h +index 8e727ecba0..798fb5c22e 100644 +--- a/pxr/imaging/plugin/hdEmbree/renderer.h ++++ b/pxr/imaging/plugin/hdEmbree/renderer.h +@@ -15,8 +15,8 @@ + #include "pxr/base/gf/matrix4d.h" + #include "pxr/base/gf/rect2i.h" + +-#include +-#include ++#include ++#include + + #include + #include +diff --git a/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp b/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp +index 02c2ca69f8..93705b2d28 100644 +--- a/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp ++++ b/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp +@@ -23,7 +23,7 @@ + + #include "pxr/base/tf/errorMark.h" + +-#include ++#include + #include + + PXR_NAMESPACE_USING_DIRECTIVE diff --git a/3903.patch b/3903.patch deleted file mode 100644 index d8fa15b..0000000 --- a/3903.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 3e51fb244dd264b09179999d29dc7c5afd7e71e3 Mon Sep 17 00:00:00 2001 -From: "Benjamin A. Beasley" -Date: Tue, 2 Dec 2025 10:43:31 +0000 -Subject: [PATCH] Backport fixes for CVE-2025-64181 etc. in OpenEXRCore - ---- - .../hioOpenEXR/OpenEXR/OpenEXRCore/chunk.c | 20 ++++++++++++++++--- - .../OpenEXR/OpenEXRCore/internal_util.h | 4 ++-- - .../OpenEXR/OpenEXRCore/parse_header.c | 4 +++- - 3 files changed, 22 insertions(+), 6 deletions(-) - -diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/chunk.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/chunk.c -index cfe80b4cd68..e11209fe660 100644 ---- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/chunk.c -+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/chunk.c -@@ -1292,6 +1292,16 @@ exr_read_tile_chunk_info ( - return pctxt->report_error ( - pctxt, EXR_ERR_INVALID_ARGUMENT, "Invalid packed size of 0"); - -+ if (part->comp_type == EXR_COMPRESSION_NONE && -+ cinfo->packed_size != cinfo->unpacked_size) -+ { -+ return pctxt->print_error ( -+ pctxt, -+ EXR_ERR_BAD_CHUNK_LEADER, -+ "Mismatch between unpacked and packed size with uncompressed data: packed is %" PRIu64 "; unpacked is %" PRIu64, -+ cinfo->packed_size, cinfo->unpacked_size); -+ } -+ - return EXR_ERR_SUCCESS; - } - -@@ -1350,11 +1360,15 @@ exr_read_chunk ( - rv = pctxt->do_read ( - pctxt, packed_data, toread, &dataoffset, &nread, rmode); - -- if (rmode == EXR_ALLOW_SHORT_READ && nread < (int64_t) toread) -+ if (rmode == EXR_ALLOW_SHORT_READ && -+ nread >= 0 && -+ nread < (int64_t) toread) -+ { - memset ( - ((uint8_t*) packed_data) + nread, -- 0, -- toread - (uint64_t) (nread)); -+ 0, -+ (size_t)(toread - (uint64_t)nread)); -+ } - } - else - rv = EXR_ERR_SUCCESS; -diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_util.h b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_util.h -index 3c6f02786cc..e0fa3933d92 100644 ---- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_util.h -+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_util.h -@@ -31,10 +31,10 @@ compute_sampled_height (int height, int y_sampling, int start_y) - else - start = start_y; - end = start_y + height - 1; -- end -= (end < 0) ? (-end % y_sampling) : (end % y_sampling); -+ end -= (end < 0 ? -end : end) % y_sampling; - - if (start > end) -- nlines = 0; -+ nlines = start == start_y ? 1 : 0; - else - nlines = (end - start) / y_sampling + 1; - } -diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/parse_header.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/parse_header.c -index d7230392693..8b6cf78cc59 100644 ---- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/parse_header.c -+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/parse_header.c -@@ -2293,7 +2293,9 @@ internal_exr_compute_chunk_offset_size (struct _internal_exr_part* curpart) - - w = (uint64_t) (((int64_t) dw.max.x) - ((int64_t) dw.min.x) + 1); - -- if (curpart->tiles) -+ if (curpart->storage_mode != EXR_STORAGE_SCANLINE && -+ curpart->storage_mode != EXR_STORAGE_DEEP_SCANLINE && -+ curpart->tiles) - { - const exr_attr_tiledesc_t* tiledesc = curpart->tiles->tiledesc; - int64_t tilecount = 0; diff --git a/sources b/sources index 695949f..b14561f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-26.08.tar.gz) = 82f7bb4f77b295be79cd36f591f242276d36c0d589b0fca383344c27e70daf7e29151bf587528bb2fc2b2a8b974387a253993ace3caf5f79ae70f9ebbc71cf1a +SHA512 (OpenUSD-24.08.tar.gz) = 7d4404980579c4de3c155386184ca9d2eb96756ef6e090611bae7b4c21ad942c649f73a39b74ad84d0151ce6b9236c4b6c0c555e8e36fdd86304079e1c2e5cbe diff --git a/stb_image.patch b/stb_image.patch new file mode 100644 index 0000000..a8a3a30 --- /dev/null +++ b/stb_image.patch @@ -0,0 +1,155 @@ +--- stb/stb_image.h 2021-09-16 11:52:38.284782000 -0700k ++++ stb_image.h 2021-09-16 13:45:48.159770000 -0700 +@@ -488,14 +488,14 @@ + STBIDEF void stbi_image_free (void *retval_from_stbi_load); + + // get image dimensions & components without fully decoding +-STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp); +-STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp); ++STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, float *gamma); ++STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, float *gamma); + STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len); + STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user); + + #ifndef STBI_NO_STDIO +-STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp); +-STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp); ++STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp, float *gamma); ++STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp, float *gamma); + STBIDEF int stbi_is_16_bit (char const *filename); + STBIDEF int stbi_is_16_bit_from_file(FILE *f); + #endif +@@ -911,7 +911,7 @@ + #ifndef STBI_NO_PNG + static int stbi__png_test(stbi__context *s); + static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +-static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp); ++static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp, float *gamma); + static int stbi__png_is16(stbi__context *s); + #endif + +@@ -4554,6 +4554,7 @@ + stbi__context *s; + stbi_uc *idata, *expanded, *out; + int depth; ++ float gamma = 0; + } stbi__png; + + +@@ -5112,6 +5113,13 @@ + break; + } + ++ case STBI__PNG_TYPE('g','A','M','A'): { ++ if (first) return stbi__err("first not IHDR", "Corrupt PNG"); ++ if (4 != c.length) return stbi__err("invalid gAMA","Corrupt PNG"); ++ z->gamma = stbi__get32be(s) / 100000.0f; ++ break; ++ } ++ + case STBI__PNG_TYPE('I','D','A','T'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (pal_img_n && !pal_len) return stbi__err("no PLTE","Corrupt PNG"); +@@ -5243,7 +5251,7 @@ + return r; + } + +-static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp) ++static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp, float *gamma) + { + if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) { + stbi__rewind( p->s ); +@@ -5252,21 +5260,22 @@ + if (x) *x = p->s->img_x; + if (y) *y = p->s->img_y; + if (comp) *comp = p->s->img_n; ++ if (gamma) *gamma = p->gamma; + return 1; + } + +-static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp) ++static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp, float *gamma) + { + stbi__png p; + p.s = s; +- return stbi__png_info_raw(&p, x, y, comp); ++ return stbi__png_info_raw(&p, x, y, comp, gamma); + } + + static int stbi__png_is16(stbi__context *s) + { + stbi__png p; + p.s = s; +- if (!stbi__png_info_raw(&p, NULL, NULL, NULL)) ++ if (!stbi__png_info_raw(&p, NULL, NULL, NULL, NULL)) + return 0; + if (p.depth != 16) { + stbi__rewind(p.s); +@@ -7538,14 +7547,14 @@ + } + #endif + +-static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp) ++static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp, float *gamma) + { + #ifndef STBI_NO_JPEG + if (stbi__jpeg_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNG +- if (stbi__png_info(s, x, y, comp)) return 1; ++ if (stbi__png_info(s, x, y, comp, gamma)) return 1; + #endif + + #ifndef STBI_NO_GIF +@@ -7597,23 +7606,23 @@ + } + + #ifndef STBI_NO_STDIO +-STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp) ++STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp, float *gamma) + { + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); +- result = stbi_info_from_file(f, x, y, comp); ++ result = stbi_info_from_file(f, x, y, comp, gamma); + fclose(f); + return result; + } + +-STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp) ++STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp, float *gamma) + { + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); +- r = stbi__info_main(&s,x,y,comp); ++ r = stbi__info_main(&s,x,y,comp, gamma); + fseek(f,pos,SEEK_SET); + return r; + } +@@ -7640,18 +7649,18 @@ + } + #endif // !STBI_NO_STDIO + +-STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp) ++STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, float *gamma) + { + stbi__context s; + stbi__start_mem(&s,buffer,len); +- return stbi__info_main(&s,x,y,comp); ++ return stbi__info_main(&s,x,y,comp, gamma); + } + +-STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp) ++STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp, float *gamma) + { + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); +- return stbi__info_main(&s,x,y,comp); ++ return stbi__info_main(&s,x,y,comp, gamma); + } + + STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len) diff --git a/usd.spec b/usd.spec index 05bcd6e..abccf2b 100644 --- a/usd.spec +++ b/usd.spec @@ -2,13 +2,15 @@ # package version, as a reminder of the need to rebuild dependent packages on # every update. See additional notes near the downstream ABI versioning patch. # It should be 0.MAJOR.MINOR without leading zeros, e.g. 22.03 → 0.22.3. -%global downstream_so_version 0.26.8 +%global downstream_so_version 0.24.8 %bcond alembic 1 %bcond draco 1 %bcond embree 1 %bcond jemalloc 0 -%bcond materialx 1 +# Not yet packaged: https://github.com/AcademySoftwareFoundation/MaterialX +# https://bugzilla.redhat.com/show_bug.cgi?id=2262694 +%bcond materialx 0 # Default "UNIX Makefiles" backend for CMake would also work fine; ninja is a # bit faster. We conditionalize it just in case there are backend-specific # issues in the future. @@ -25,7 +27,7 @@ %bcond test 0 Name: usd -Version: 26.08 +Version: 24.08 Release: %autorelease Summary: 3D VFX pipeline interchange file format @@ -33,15 +35,12 @@ Summary: 3D VFX pipeline interchange file format # # Apache-2.0: # - pxr/imaging/hgiVulkan/spirv_reflect.{cpp,h} -# - pxr/imaging/plugin/hdEmbree/pxrPbrt/pbrtUtils.h -# - pxr/imaging/plugin/hdEmbree/pxrIES/pxr-IES.patch -# - pxr/imaging/plugin/hdEmbree/pxrIES/ies.{cpp,h} # BSD-3-Clause: # - pxr/base/gf/ilmbase_* # - pxr/base/js/rapidjson/msinttypes/ (removed in %%prep) # - pxr/base/tf/pxrCLI11/ (removed in %%prep) # - pxr/base/tf/pxrDoubleConversion/ (removed in %%prep) -# - pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/ +# - pxr/imaging/hio/OpenEXR/OpenEXRCore/ # - pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/ # BSD-2-Clause: # - pxr/base/tf/pxrLZ4/ (removed in %%prep) @@ -49,8 +48,6 @@ Summary: 3D VFX pipeline interchange file format # pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/; # pxr/imaging/plugin/hioAvif/AVIF/src/avif_obu.c has a different copyright # - pxr/imaging/plugin/hioAvif/aom/ -# BSL-1.0: -# - pxr/external/boost/ # MIT: # - docs/doxygen/doxygen-awesome-css/ (removed in %%prep) # - pxr/base/js/rapidjson/, except pxr/base/js/rapidjson/msinttypes/ (both @@ -59,14 +56,16 @@ Summary: 3D VFX pipeline interchange file format # - pxr/base/tf/pxrTslRobinMap/ # - pxr/imaging/garch/khrplatform.h # - pxr/imaging/hgiVulkan/vk_mem_alloc.h -# - pxr/imaging/plugin/hioOpenEXR/OpenEXR/deflate/ (removed in %%prep) -# - third_party/renderman/plugin/rmanArgsParser/pugixml/ (removed in %%prep) +# - pxr/imaging/hio/OpenEXR/deflate/ (removed in %%prep) +# - third_party/renderman-25/plugin/rmanArgsParser/pugixml/ (removed in %%prep) +# - third_party/renderman-26/plugin/rmanArgsParser/pugixml/ (removed in %%prep) # MIT OR Unlicense: # - pxr/imaging/hio/stb/ # Pixar AND GPL-3.0-or-later WITH Bison-exception-2.2: # - pxr/usd/sdf/path.tab.{cpp,h} # - pxr/usd/sdf/textFileFormat.tab.{cpp,h} -# - third_party/renderman/plugin/hdPrman/virtualStructConditionalGrammar.tab.{cpp,h} +# - third_party/renderman-25/plugin/hdPrman/virtualStructConditionalGrammar.tab.{cpp,h} +# - third_party/renderman-26/plugin/hdPrman/virtualStructConditionalGrammar.tab.{cpp,h} # # Additionally, the following would be listed above but are removed in %%prep: # @@ -89,7 +88,6 @@ License: %{shrink: Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause AND - BSL-1.0 AND MIT AND (MIT OR Unlicense) AND (Pixar AND GPL-3.0-or-later WITH Bison-exception-2.2) @@ -98,6 +96,13 @@ URL: http://www.openusd.org/ %global forgeurl https://github.com/PixarAnimationStudios/OpenUSD Source0: %{forgeurl}/archive/v%{version}/OpenUSD-%{version}.tar.gz Source1: org.openusd.usdview.desktop +# Latest stb_image.patch that applies cleanly against 2.27: +# %%{forgeurl}/raw/8f9bb9563980b41e7695148b63bf09f7abd38a41/pxr/imaging/hio/stb/stb_image.patch +# We treat this as a source file because it is applied separately during +# unbundling. It has been hand-edited to apply to 2.28, where +# stbi__unpremultiply_on_load_thread is already renamed to +# stbi_set_unpremultiply_on_load_thread. +Source2: stb_image.patch # Downstream-only: add an SONAME version # @@ -127,13 +132,12 @@ Source1: org.openusd.usdview.desktop # built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) Patch: 0001-Downstream-only-add-an-SONAME-version.patch -# Downstream-only: use Valgrind macro instead of inline assembly -# -# Upstream already has a plan to make this change, but is waiting to be -# able to add a build dependency on valgrind-devel. We have no such -# obstacle, and this change fixes the inline assembly failing to compile -# on aarch64. -Patch: 0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch +# Port to Embree 4.x +# https://github.com/PixarAnimationStudios/OpenUSD/pull/2266 +# See also: +# hdEmbree: add support for building against embree4 +# https://github.com/PixarAnimationStudios/USD/pull/2266 +Patch: %{forgeurl}/pull/2266.patch # Downstream-only: use the system double-conversion library Patch: 0001-Downstream-only-use-the-system-double-conversion-lib.patch @@ -148,18 +152,6 @@ Patch: 0005-Downstream-only-use-the-system-libdeflate.patch # Downstream-only: use the system libavif library Patch: 0006-Downstream-only-use-the-system-libavif.patch -# Backport fixes for CVE-2025-64181 etc. in OpenEXRCore -# https://github.com/PixarAnimationStudios/OpenUSD/pull/3903 -Patch: %{forgeurl}/pull/3903.patch - -# Replace PyWeakref_GetObject with PyWeakref_GetRef -# Fixes RHBZ#2433881. This patch is LLM-generated and needs expert human -# review, but it at least builds. See discussion in -# https://bugzilla.redhat.com/show_bug.cgi?id=2433881. -# Mentioned upstream in -# https://github.com/PixarAnimationStudios/OpenUSD/issues/3966#issuecomment-5128542913. -Patch: 0001-Replace-PyWeakref_GetObject-with-PyWeakref_GetRef.patch - # Base BuildRequires: gcc-c++ @@ -172,15 +164,11 @@ BuildRequires: dos2unix BuildRequires: help2man BuildRequires: pkgconfig(blosc) +BuildRequires: boost-devel BuildRequires: pkgconfig(dri) BuildRequires: hdf5-devel -BuildRequires: cmake(OpenSubdiv) +BuildRequires: opensubdiv-devel >= 3.6.0 BuildRequires: pkgconfig(tbb) -# This seems to be an indirect dependency, probably through OpenSubdiv. -# Ideally, everything would take care of its own dependencies, and we wouldn’t -# have to specify it directly, but we haven’t studied the problem closely -# enough to propose a fix. -BuildRequires: pkgconfig(OpenCL) # Unbundled: BuildRequires: cmake(double-conversion) BuildRequires: pkgconfig(liblz4) @@ -194,9 +182,6 @@ BuildRequires: pkgconfig(libavif) BuildRequires: cmake(Imath) >= 3.0 -# Introduced by 0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch -BuildRequires: valgrind-devel - %if %{with alembic} BuildRequires: cmake(Alembic) %endif @@ -213,13 +198,6 @@ BuildRequires: embree-devel BuildRequires: pkgconfig(jemalloc) %endif -%if %{with materialx} -BuildRequires: cmake(materialx) -BuildRequires: materialx-data -BuildRequires: pkgconfig(xt) -BuildRequires: python3-materialx -%endif - %if %{with ocio} BuildRequires: cmake(OpenColorIO) %endif @@ -238,7 +216,7 @@ BuildRequires: openvdb-devel %endif %if %{with ptex} -BuildRequires: cmake(ptex) +BuildRequires: pkgconfig(ptex) %endif # Header-only library: -static is for tracking per guidelines @@ -255,11 +233,12 @@ BuildRequires: cmake(ptex) # CVE-2023-45664 # CVE-2023-45666 # CVE-2023-45667 -# https://github.com/nothings/stb/issues/1860 -# https://github.com/nothings/stb/issues/1861 -BuildRequires: stb_image-static >= 2.30^20251025gitf1c79c0-2 -BuildRequires: stb_image_write-static >= 1.16 -BuildRequires: stb_image_resize-static >= 0.97 +BuildRequires: stb_image-devel >= 2.28^20231011gitbeebb24-12 +BuildRequires: stb_image-static +BuildRequires: stb_image_write-devel >= 1.16 +BuildRequires: stb_image_write-static +BuildRequires: stb_image_resize-devel >= 0.97 +BuildRequires: stb_image_resize-static Requires: usd-libs%{?_isa} = %{version}-%{release} Requires: python3-usd%{?_isa} = %{version}-%{release} @@ -270,7 +249,7 @@ Requires: python3-usd%{?_isa} = %{version}-%{release} # # Note that pxr/base/arch/assumptions.cpp explicitly tests the machine is not # big-endian, and pxr/base/arch/defines.h explicitly enforces x86_64 or ARM64. -ExclusiveArch: %{arm64} %{x86_64} +ExclusiveArch: aarch64 x86_64 %description Universal Scene Description (USD) is a time-sampled scene @@ -300,9 +279,8 @@ Provides: bundled(ilmbase) = 2.5.3 # Currently, Fedora’s PEGTL is too old: # https://bugzilla.redhat.com/show_bug.cgi?id=1902427 Provides: bundled(PEGTL) = 3.2.7 -# Version from -# pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/openexr_version.h -# From pxr/imaging/plugin/hioOpenEXR/OpenEXR/README.md: +# Version from pxr/imaging/hio/OpenEXR/OpenEXRCore/openexr_version.h +# From pxr/imaging/hio/OpenEXR/README.md: # A few changes are still in progress to upstreamed to the OpenEXR project, # but these are minor, and otherwise, almost all differences between the # interred OpenEXRCore and the official OpenEXR repo are consolidated to the @@ -310,60 +288,6 @@ Provides: bundled(PEGTL) = 3.2.7 # marking from the few global data tables. # This suggests that it may not be entirely safe to unbundle this. Provides: bundled(openexr) = 3.2.0 -# Version from the message for the commit -# e7a8d718c7c113e1c653ee31dc52421f17e09b42 that introduced pxr/external/boost/: -# -# python: Initial import of boost::python from boost 1.85.0 -# This change just brings boost::python into the tree as a starting point for -# the pxr_boost::python implementation. The src/ and test/ directories are -# placed next to the public headers since we don't have separate -# public/private directory hierarchies like boost, but the code itself is -# unchanged and not included in the build. -# -# We use boost 1.85.0 as the starting point even though we're currently on -# VFX Reference Platform 2022, which specifies boost 1.76.0. This is because -# later versions of boost are needed for other platforms and versions of -# Python that OpenUSD supports. For example Python 3.11 requires boost -# 1.82.0+. -# -# This is not a candidate for unbundling because upstream has explicitly forked -# boost::python and modified it to work without the rest of Boost as part of an -# effort to remove the Boost dependency. While pxr_boost::python is derived -# from boost::python, it is not intended to remain compatible with it. -Provides: bundled(boost) = 1.85.0 -# From LICENSE.txt: -# =========================================================== -# PBRT (Sampling functions) -# ============================================================ -# USD includes code derived from the pbrt-v4 library, retrieved from -# https://github.com/mmp/pbrt-v4/tree/8c19f304558fd7681e2fef2c395a689d0106fb05, which was -# provided subject to the unmodified Apache 2.0 license. For details, see -# https://github.com/mmp/pbrt-v4/blob/8c19f304558fd7681e2fef2c395a689d0106fb05/LICENSE.txt -# -# The bundled routines in pxr/imaging/plugin/hdEmbree/pxrPbrt/pbrtUtils.h are -# just a handful of small internal utility functions. It would not be -# reasonable to add a dependency on the full pbrt ray tracer even if these were -# exposed in a public API. -Provides: bundled(pbrt-v4) = 4~20251208.8c19f30 -# From LICENSE.txt: -# ============================================================ -# Cycles (IES reader) -# ============================================================ -# USD includes classes from the Blender Foundation's Cycles project, retrieved from -# https://projects.blender.org/blender/cycles/src/commit/0be21d452506ec90259b9063c28b5a6fc1cac6a1, -# which was provided subject to the unmodified Apache 2.0 license. For details, see -# https://projects.blender.org/blender/cycles/src/commit/0be21d452506ec90259b9063c28b5a6fc1cac6a1/LICENSE -# -# These are not a candidate for unbundling because they are internal utility -# functions not available in the public API. There are also some minor -# modifications for OpenUSD, documented in -# pxr/imaging/plugin/hdEmbree/pxrIES/pxr-IES.patch. -# -# Is this commit a post-release snapshot of 4.5.0, or a pre-release snapshot of -# 5.0.0? How can we tell? There doesn’t seem to be a project version number -# embedded in the source tree. Since this commit hash is only two commits ahead -# of the v4.5.0 tag, we consider it a 4.5.0 post-release. -Provides: bundled(cycles) = 4.5.0^20251210.0be21d4 # We are currently able to unbundle these and use system libraries, but we # retain the virtual Provides, commented out, as documentation and in case we @@ -376,16 +300,16 @@ Provides: bundled(cycles) = 4.5.0^20251210.0be21d4 # Version from: pxr/base/tf/pxrCLI11/README.md # Provides: bundled(cli11) = 2.3.1 # Version from: -# third_party/renderman/plugin/rmanArgsParser/pugixml/pugiconfig.hpp +# third_party/renderman-25/plugin/rmanArgsParser/pugixml/pugiconfig.hpp +# third_party/renderman-26/plugin/rmanArgsParser/pugixml/pugiconfig.hpp # (header comment) # Provides: bundled(pugixml) = 1.9 # Version from: pxr/base/js/rapidjson/rapidjson.h # (RAPIDJSON_{MAJOR,MINOR,PATCH}_VERSION) # Provides: bundled(rapidjson) = 1.1.0 -# Version from: pxr/base/tf/pxrTslRobinMap/robin_growth_policy.h -# (PXR_TSL_RH_VERSION_{MAJOR,MINOR,PATCH}) -# Provides: bundled(robin-map) = 1.3.0 -# Version from pxr/imaging/plugin/hioOpenEXR/OpenEXR/deflate/libdeflate.h +# Forked from an unknown version: pxr/base/tf/pxrTslRobinMap/ +# Provides: bundled(robin-map) +# Version from pxr/imaging/hio/OpenEXR/deflate/libdeflate.h # Provides: bundled(libdeflate) = 1.18 # Version from pxr/imaging/plugin/hioAvif/AVIF/src/avif/avif.h # We actually have a post-release snapshot of libavif, because @@ -400,8 +324,8 @@ Provides: bundled(cycles) = 4.5.0^20251210.0be21d4 # https://chromium.googlesource.com/libyuv/libyuv and find the commit hash that # corresponds to a particular serial number. # LIBYUV_VERSION 1895 = commit a97746349b244efd54ab1eb0c0a7366717b33f39 -# Provides: bundled(libyuv) = 0^20240812.a977463 -# Version from pxr/imaging/plugin/hioAvif/config/aom_version.h +# Provides: bundled(libyuv) = 0^20240812gita977463 +# Version from pxr/imaging/plugin/hioAvif/aom/config/aom_version.h # Provides: bundled(aom) = 3.0.0 %description libs @@ -416,11 +340,6 @@ Requires: usd-libs%{?_isa} = %{version}-%{release} # Unbundled, and exposed in the API: Requires: cli11-devel cli11-static Requires: robin-map-devel robin-map-static -# Needed by cmake config -Requires: cmake(OpenSubdiv) -%if %{with materialx} -Requires: cmake(materialx) -%endif %description devel This package contains the C++ header files and symbolic links to the shared @@ -437,8 +356,8 @@ BuildRequires: python3dist(jinja2) BuildRequires: desktop-file-utils BuildRequires: python3dist(pyside6) BuildRequires: pyside6-tools -BuildRequires: python3dist(pyopengl) %endif +BuildRequires: python3dist(pyopengl) Requires: font(roboto) Requires: font(robotoblack) Requires: font(robotolight) @@ -446,8 +365,8 @@ Requires: font(robotomono) Requires: python3dist(jinja2) %if %{with usdview} Requires: python3dist(pyside6) -Requires: python3dist(pyopengl) %endif +Requires: python3dist(pyopengl) Requires: usd-libs%{?_isa} = %{version}-%{release} @@ -480,7 +399,7 @@ ln -s %{_datadir}/fonts/google-roboto-mono \ # Unbundle stb_image, stb_image_write, stb_image_resize: pushd pxr/imaging/hio/stb cp -p %{_usr}/include/stb_image.h . -patch -p1 < stb_image.patch +patch -p1 < '%{SOURCE2}' ln -svf %{_usr}/include/stb_image_resize.h \ %{_usr}/include/stb_image_write.h ./ popd @@ -520,9 +439,9 @@ cat > pxr/base/tf/pxrCLI11/CLI11.h <<'EOF' namespace pxr_CLI = CLI; EOF # Remove the bundled copy of pugixml. -find third_party/renderman/plugin/rmanArgsParser/pugixml/ \ +find third_party/renderman-*/plugin/rmanArgsParser/pugixml/ \ -type f ! -name '*.hpp' -print -delete -for hdr in third_party/renderman/plugin/rmanArgsParser/pugixml/*.hpp +for hdr in third_party/renderman-*/plugin/rmanArgsParser/pugixml/*.hpp do cat > "${hdr}" < @@ -545,7 +464,7 @@ namespace pxr_tsl = tsl; EOF done # Remove the bundled copy of libdeflate. -rm -rv pxr/imaging/plugin/hioOpenEXR/OpenEXR/deflate/ +rm -rv pxr/imaging/hio/OpenEXR/deflate/ # Remove the bundled copies of libavif, along with the associated libaom and # the libyuv that is in the libavif sources. rm -rv pxr/imaging/plugin/hioAvif/aom/ \ @@ -619,13 +538,13 @@ extra_flags="${extra_flags-} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1" -DPXR_BUILD_TESTS=%{expr:%{with test}?"ON":"OFF"} \ -DPXR_BUILD_TUTORIALS=OFF \ -DPXR_BUILD_USD_IMAGING=ON \ - -DPXR_BUILD_EXEC=ON \ -DPXR_BUILD_USD_TOOLS=ON \ -DPXR_BUILD_USDVIEW=%{expr:%{with usdview}?"ON":"OFF"} \ \ -DPXR_BUILD_ALEMBIC_PLUGIN=%{expr:%{with alembic}?"ON":"OFF"} \ -DPXR_BUILD_DRACO_PLUGIN=%{expr:%{with draco}?"ON":"OFF"} \ -DPXR_BUILD_EMBREE_PLUGIN=%{expr:%{with embree}?"ON":"OFF"} \ + -DPXR_BUILD_MATERIALX_PLUGIN=%{expr:%{with materialx}?"ON":"OFF"} \ -DPXR_BUILD_OPENCOLORIO_PLUGIN=%{expr:%{with ocio}?"ON":"OFF"} \ -DPXR_BUILD_OPENIMAGEIO_PLUGIN=%{expr:%{with oiio}?"ON":"OFF"} \ -DPXR_BUILD_PRMAN_PLUGIN=OFF \ @@ -635,7 +554,6 @@ extra_flags="${extra_flags-} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1" -DPXR_ENABLE_PTEX_SUPPORT=%{expr:%{with ptex}?"ON":"OFF"} \ -DPXR_ENABLE_OSL_SUPPORT=%{expr:%{with openshading}?"ON":"OFF"} \ -DPXR_ENABLE_MALLOCHOOK_SUPPORT=OFF \ - -DPXR_ENABLE_MATERIALX_SUPPORT=%{expr:%{with materialx}?"ON":"OFF"} \ -DPXR_ENABLE_PYTHON_SUPPORT=ON \ \ -DPXR_INSTALL_LOCATION="%{_libdir}/usd/plugin" \ @@ -654,10 +572,6 @@ extra_flags="${extra_flags-} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1" mkdir -p %{buildroot}%{python3_sitearch} mv %{buildroot}%{python3_sitelib}/* %{buildroot}%{python3_sitearch} -# Upstream may expect to use this as a script in development, but we install it -# without executable permissions, so we remove the shebang. -sed -r -i '1{/^#!/d}' '%{buildroot}%{python3_sitearch}/pxr/Usd/usdGenSchema.py' - %if %{with usdview} # Install a desktop icon for usdview desktop-file-install \ @@ -701,11 +615,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %{_bindir}/hdGenSchema %{_bindir}/sdfdump %{_bindir}/sdffilter -%if %{with materialx} -%{_bindir}/usdBakeMaterialX -%endif %{_bindir}/usdGenSchema -%{_bindir}/usdInitSchema %{_bindir}/usdcat %{_bindir}/usdchecker %if %{with draco} @@ -716,13 +626,11 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %{_bindir}/usdedit %{_bindir}/usdfixbrokenpixarschemas %{_bindir}/usdgenschemafromsdr -%{_bindir}/usdmeasureperformance %{_bindir}/usdrecord %{_bindir}/usdresolve %{_bindir}/usdstitch %{_bindir}/usdstitchclips %{_bindir}/usdtree -%{_bindir}/usdupdatecrate %{_bindir}/usdzip %if %{with usdview} %{_datadir}/applications/org.openusd.usdview.desktop @@ -733,11 +641,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %{_mandir}/man1/hdGenSchema.1* %{_mandir}/man1/sdfdump.1* %{_mandir}/man1/sdffilter.1* -%if %{with materialx} -%{_mandir}/man1/usdBakeMaterialX.1* -%endif %{_mandir}/man1/usdGenSchema.1* -%{_mandir}/man1/usdInitSchema.1* %{_mandir}/man1/usdcat.1* %{_mandir}/man1/usdchecker.1* %if %{with draco} @@ -748,13 +652,11 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %{_mandir}/man1/usdedit.1* %{_mandir}/man1/usdfixbrokenpixarschemas.1* %{_mandir}/man1/usdgenschemafromsdr.1* -%{_mandir}/man1/usdmeasureperformance.1* %{_mandir}/man1/usdrecord.1* %{_mandir}/man1/usdresolve.1* %{_mandir}/man1/usdstitch.1* %{_mandir}/man1/usdstitchclips.1* %{_mandir}/man1/usdtree.1* -%{_mandir}/man1/usdupdatecrate.1* %{_mandir}/man1/usdzip.1* %if %{with usdview} %{_mandir}/man1/testusdview.1*