From fa08a84b23417a97791125afd7c82b495169d4ac Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sat, 24 Feb 2024 11:12:07 -0500 Subject: [PATCH 01/85] Update to 24.03 (close RHBZ#2265775) --- .gitignore | 1 + 0001-Downstream-only-add-an-SONAME-version.patch | 14 +++++++------- sources | 2 +- usd.spec | 12 +++++++----- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 786e509..9be7cd4 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /usd-23.05.tar.gz /OpenUSD-23.08.tar.gz /OpenUSD-23.11.tar.gz +/OpenUSD-24.03.tar.gz diff --git a/0001-Downstream-only-add-an-SONAME-version.patch b/0001-Downstream-only-add-an-SONAME-version.patch index a6d931b..97de588 100644 --- a/0001-Downstream-only-add-an-SONAME-version.patch +++ b/0001-Downstream-only-add-an-SONAME-version.patch @@ -1,4 +1,4 @@ -From 7bb13a999b2d3afe13ddad0a7bd8da1e4f99ff09 Mon Sep 17 00:00:00 2001 +From 144bf56aa281390aad13558fe11e190e507ca17c 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 @@ -37,11 +37,11 @@ built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) 3 files changed, 8 insertions(+) diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake -index 1406ac2a9..197377ff2 100644 +index b9516997a..97c9df203 100644 --- a/cmake/defaults/Version.cmake +++ b/cmake/defaults/Version.cmake -@@ -27,3 +27,9 @@ set(PXR_MINOR_VERSION "23") - set(PXR_PATCH_VERSION "11") # NOTE: Must not have leading 0 for single digits +@@ -27,3 +27,9 @@ set(PXR_MINOR_VERSION "24") + set(PXR_PATCH_VERSION "3") # NOTE: Must not have leading 0 for single digits math(EXPR PXR_VERSION "${PXR_MAJOR_VERSION} * 10000 + ${PXR_MINOR_VERSION} * 100 + ${PXR_PATCH_VERSION}") + @@ -63,10 +63,10 @@ index 21606d4d6..4cf8aeeb6 100644 target_compile_definitions(${NAME} diff --git a/cmake/macros/Public.cmake b/cmake/macros/Public.cmake -index 2080d7a36..2642b603f 100644 +index 97263d4cd..80abe790c 100644 --- a/cmake/macros/Public.cmake +++ b/cmake/macros/Public.cmake -@@ -1007,6 +1007,7 @@ function(pxr_toplevel_prologue) +@@ -1017,6 +1017,7 @@ function(pxr_toplevel_prologue) FOLDER "${folder}" PREFIX "${libPrefix}" IMPORT_PREFIX "${libPrefix}" @@ -75,5 +75,5 @@ index 2080d7a36..2642b603f 100644 _get_install_dir("lib" libInstallPrefix) install( -- -2.41.0 +2.43.2 diff --git a/sources b/sources index f9f1440..40787dd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-23.11.tar.gz) = a6f718c8c227cabcc467de80bd5197470bcf335aaf1738e49e37d8d0fa4b47a0c0d9dc1518032de8c603e3ef303d22f9960504caeede4c5053ab1d3c84987304 +SHA512 (OpenUSD-24.03.tar.gz) = 3dada1fbfbd73a74e45d4e0c53466be1be3dc92140644e56a8d5d04c09d62e11181d760cf5709a9ae9c43f261f18a2c60131bafd996221fe63e22d45975c5f74 diff --git a/usd.spec b/usd.spec index 6420180..5aba881 100644 --- a/usd.spec +++ b/usd.spec @@ -2,13 +2,14 @@ # 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.23.11 +%global downstream_so_version 0.24.3 %bcond alembic 1 %bcond draco 1 %bcond embree 1 %bcond jemalloc 0 # 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 @@ -19,7 +20,7 @@ %bcond ocio 1 %bcond oiio 1 %bcond ptex 1 -# Not yet packaged +# Not yet packaged: https://bugzilla.redhat.com/show_bug.cgi?id=2265554 %bcond pyside6 0 # F39FailsToInstall: python3-pyside2, python3-shiboken2, # python3-shiboken2-devel @@ -31,7 +32,7 @@ %bcond test 0 Name: usd -Version: 23.11 +Version: 24.03 Release: %autorelease Summary: 3D VFX pipeline interchange file format @@ -146,7 +147,7 @@ BuildRequires: pkgconfig(blosc) BuildRequires: boost-devel BuildRequires: pkgconfig(dri) BuildRequires: hdf5-devel -BuildRequires: opensubdiv-devel +BuildRequires: opensubdiv-devel >= 3.6.0 BuildRequires: pkgconfig(tbb) = 2020.3 BuildRequires: cmake(Imath) >= 3.0 @@ -412,7 +413,8 @@ extra_flags="${extra_flags-} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1" -DCMAKE_SKIP_RPATH=ON \ -DCMAKE_VERBOSE_MAKEFILE=ON \ \ - -DPXR_BUILD_DOCUMENTATION=FALSE \ + -DPXR_BUILD_HTML_DOCUMENTATION=FALSE \ + -DPXR_BUILD_PYTHON_DOCUMENTATION=FALSE \ -DPXR_BUILD_EXAMPLES=OFF \ -DPXR_BUILD_IMAGING=ON \ -DPXR_BUILD_MONOLITHIC=ON \ From c9a7a6eb36b915e22a901aff9835e81ad86de824 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 28 Feb 2024 09:59:14 -0500 Subject: [PATCH 02/85] Re-enable usdview with PySide6 --- usd.spec | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/usd.spec b/usd.spec index 5aba881..4e120ac 100644 --- a/usd.spec +++ b/usd.spec @@ -20,12 +20,8 @@ %bcond ocio 1 %bcond oiio 1 %bcond ptex 1 -# Not yet packaged: https://bugzilla.redhat.com/show_bug.cgi?id=2265554 -%bcond pyside6 0 -# F39FailsToInstall: python3-pyside2, python3-shiboken2, -# python3-shiboken2-devel -# https://bugzilla.redhat.com/show_bug.cgi?id=2220452 -%bcond usdview 0 +%bcond pyside6 1 +%bcond usdview 1 # TODO: Figure out how to re-enable the tests. Currently these want to install # into /usr/tests and, and there are issues with the launchers finding the # command-line tools in the buildroot. From 72d8ee112c156088cd536ed43605bc44406a6dab Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 21 Apr 2024 14:30:55 -0400 Subject: [PATCH 03/85] Rebuild for OpenVDB 11 without backward-compatible ABI From 4442408809b89ae3da5fbf62d420201a8ad309e6 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 25 Apr 2024 08:23:31 -0400 Subject: [PATCH 04/85] Rebuilt for OpenColorIO 2.3.2 See RHBZ#2239262 for discussion. From 470014a4cc17db4144957a4dc142361fbd5191c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Cabello?= Date: Thu, 16 May 2024 08:21:12 +0000 Subject: [PATCH 05/85] Update usd.spec Fixes installation path before building. Necessary to work with some USD related projects. --- usd.spec | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/usd.spec b/usd.spec index 4e120ac..b42dd1d 100644 --- a/usd.spec +++ b/usd.spec @@ -355,16 +355,24 @@ sed -i 's|set(CMAKE_CXX_STANDARD 14)|set(CMAKE_CXX_STANDARD 17)|g' \ cmake/defaults/CXXDefaults.cmake # Fix libdir installation -sed -i 's|lib/usd|%{_libdir}/usd|g' cmake/macros/Private.cmake -sed -i 's|"lib"|%{_libdir}|g' cmake/macros/Private.cmake +sed -i 's|lib/usd|%{_libdir}/usd|g' \ + cmake/macros/{Private,Public}.cmake sed -i 's|plugin/usd|%{_libdir}/usd/plugin|g' \ - cmake/macros/Private.cmake + cmake/macros/{Private,Public}.cmake +sed -i 's|"lib"|%{_libdir}|g' \ + cmake/macros/{Private,Public}.cmake sed -i 's|/python|/python%{python3_version}/site-packages|g' \ - cmake/macros/Private.cmake -sed -i 's|lib/usd|%{_libdir}/usd|g' cmake/macros/Public.cmake -sed -i 's|"lib"|%{_libdir}|g' cmake/macros/Public.cmake -sed -i 's|plugin/usd|%{_libdir}/usd/plugin|g' \ - cmake/macros/Public.cmake + cmake/macros/{Private,Public}.cmake pxr/usdImaging/usdviewq/CMakeLists.txt +sed -i 's|/pxrConfig.cmake|%{_libdir}/cmake/pxr/pxrConfig.cmake|g' \ + pxr/CMakeLists.txt +sed -i 's|"cmake"|"%{_libdir}/cmake/pxr"|g' \ + pxr/CMakeLists.txt +sed -i 's|${PXR_CMAKE_DIR}/cmake|${PXR_CMAKE_DIR}|g' \ + pxr/pxrConfig.cmake.in +sed -i 's|${PXR_CMAKE_DIR}/include|/usr/include|g' \ + pxr/pxrConfig.cmake.in +sed -i 's|EXACT COMPONENTS|COMPONENTS|g' \ + pxr/pxrConfig.cmake.in # Fix cmake directory destination sed -i 's|"${CMAKE_INSTALL_PREFIX}"|%{_libdir}/cmake/pxr|g' pxr/CMakeLists.txt @@ -462,20 +470,6 @@ desktop-file-install \ # -DPXR_BUILD_EXAMPLES=OFF. rm -vrf '%{buildroot}%{_datadir}/usd/examples' -# Fix installation path for some files -mv %{buildroot}%{_prefix}/lib/python/pxr/*.* \ - %{buildroot}%{python3_sitearch}/pxr/ -%if %{with usdview} -mv %{buildroot}%{_prefix}/lib/python/pxr/Usdviewq/* \ - %{buildroot}%{python3_sitearch}/pxr/Usdviewq/ -%endif - -# TODO: Can we figure out how to fix the installation path for -# pxrTargets{,-release}.cmake, instead of moving them after the fact? We choose -# to put them in the same directory as pxrConfig.cmake. -find %{buildroot}%{_prefix}/cmake -mindepth 1 -maxdepth 1 -type f \ - -exec mv -v '{}' '%{buildroot}%{_libdir}/cmake/pxr' ';' - # Generate and install man pages. While generating the man pages might more # properly go in %%build, it is generally much easier to do this here in a # single step, using the entry points installed into the buildroot. This is From 968fc3902897dc2a943e364401ce73266d4bb8d9 Mon Sep 17 00:00:00 2001 From: Luya Tshimbalanga Date: Wed, 12 Jun 2024 08:52:20 -0700 Subject: [PATCH 06/85] Rebuild for openvdb with required tbb2020.3 From a0d38c9d74fa5e7a3c042fb68e3504241f257e6f Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 24 Jun 2024 15:17:42 -0400 Subject: [PATCH 07/85] Correct pkgconfig(Ptext) to pkgconfig(ptex) for ptex-2.4.3 --- usd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usd.spec b/usd.spec index b42dd1d..50d4aef 100644 --- a/usd.spec +++ b/usd.spec @@ -182,7 +182,7 @@ BuildRequires: openvdb-devel %endif %if %{with ptex} -BuildRequires: pkgconfig(Ptex) +BuildRequires: pkgconfig(ptex) %endif From f61a75174a8970757dd90fadb659bdfa34c7f63d Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 26 Jun 2024 16:41:47 -0400 Subject: [PATCH 08/85] Rebuilt for Python 3.13 (close RHBZ#2292015) From 0e24d85be8b9d47fcb483cc0c5c43cb4ccd4359f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 08:26:35 +0000 Subject: [PATCH 09/85] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From af00d39d051dadf53fc4d2f203115cad80460e2e Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 30 Jul 2024 13:01:12 -0400 Subject: [PATCH 10/85] Disable usdview again - Without the right UI compiler, it is still broken on PySide6 --- usd.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/usd.spec b/usd.spec index 50d4aef..f54022b 100644 --- a/usd.spec +++ b/usd.spec @@ -20,8 +20,12 @@ %bcond ocio 1 %bcond oiio 1 %bcond ptex 1 -%bcond pyside6 1 -%bcond usdview 1 +# In order to re-enable usdview with PySide6, we would need to re-generate the +# Python code from .ui files using pyside6-uic, which is not packaged +# (https://bugzilla.redhat.com/show_bug.cgi?id=2301717). This would require +# updating or replacing our uic-wrapper script (see the end of %%prep). +%bcond pyside6 0 +%bcond usdview 0 # TODO: Figure out how to re-enable the tests. Currently these want to install # into /usr/tests and, and there are issues with the launchers finding the # command-line tools in the buildroot. From fea5e93bc8606cb93af63024d457a3293803ceb5 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 30 Jul 2024 13:02:00 -0400 Subject: [PATCH 11/85] Remove the pyside6 build conditional PySide2 is not coming back. --- usd.spec | 9 --------- 1 file changed, 9 deletions(-) diff --git a/usd.spec b/usd.spec index f54022b..f46f7fe 100644 --- a/usd.spec +++ b/usd.spec @@ -24,7 +24,6 @@ # Python code from .ui files using pyside6-uic, which is not packaged # (https://bugzilla.redhat.com/show_bug.cgi?id=2301717). This would require # updating or replacing our uic-wrapper script (see the end of %%prep). -%bcond pyside6 0 %bcond usdview 0 # TODO: Figure out how to re-enable the tests. Currently these want to install # into /usr/tests and, and there are issues with the launchers finding the @@ -293,11 +292,7 @@ BuildRequires: pkgconfig(Qt5) BuildRequires: python3dist(jinja2) %if %{with usdview} BuildRequires: desktop-file-utils -%if %{with pyside6} BuildRequires: python3dist(pyside6) -%else -BuildRequires: python3dist(pyside2) -%endif %endif BuildRequires: python3dist(pyopengl) Requires: font(roboto) @@ -306,11 +301,7 @@ Requires: font(robotolight) Requires: font(robotomono) Requires: python3dist(jinja2) %if %{with usdview} -%if %{with pyside6} Requires: python3dist(pyside6) -%else -Requires: python3dist(pyside2) -%endif %endif Requires: python3dist(pyopengl) From 9048793b2c8f9f6730de0298d2cc99e55cee5347 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 31 Jul 2024 18:16:04 -0400 Subject: [PATCH 12/85] Re-enable usdview with PySide6 (and pyside6-uic) --- usd.spec | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/usd.spec b/usd.spec index f46f7fe..d4c77c3 100644 --- a/usd.spec +++ b/usd.spec @@ -20,11 +20,7 @@ %bcond ocio 1 %bcond oiio 1 %bcond ptex 1 -# In order to re-enable usdview with PySide6, we would need to re-generate the -# Python code from .ui files using pyside6-uic, which is not packaged -# (https://bugzilla.redhat.com/show_bug.cgi?id=2301717). This would require -# updating or replacing our uic-wrapper script (see the end of %%prep). -%bcond usdview 0 +%bcond usdview 1 # TODO: Figure out how to re-enable the tests. Currently these want to install # into /usr/tests and, and there are issues with the launchers finding the # command-line tools in the buildroot. @@ -288,11 +284,11 @@ you will need to install usd-devel. Summary: %{summary} BuildRequires: pkgconfig(python3) -BuildRequires: pkgconfig(Qt5) BuildRequires: python3dist(jinja2) %if %{with usdview} BuildRequires: desktop-file-utils BuildRequires: python3dist(pyside6) +BuildRequires: pyside6-tools %endif BuildRequires: python3dist(pyopengl) Requires: font(roboto) @@ -377,13 +373,6 @@ sed -i 's|"${CMAKE_INSTALL_PREFIX}"|%{_libdir}/cmake/pxr|g' pxr/CMakeLists.txt find . -type f -exec gawk '/embree3/ { print FILENAME }' '{}' '+' | xargs -r sed -r -i 's/(embree)3/\14/' -# Fix uic-qt5 use -cat > uic-wrapper <<'EOF' -#!/bin/sh -exec uic-qt5 -g python "$@" -EOF -chmod +x uic-wrapper - %build # The necessary include path for Imath is not set everywhere it’s needed. It’s @@ -442,7 +431,7 @@ extra_flags="${extra_flags-} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1" \ -DPXR_VALIDATE_GENERATED_CODE=OFF \ \ - -DPYSIDEUICBINARY:PATH=${PWD}/uic-wrapper \ + -DPYSIDEUICBINARY:PATH=pyside6-uic \ -DPYSIDE_AVAILABLE=ON \ -DPYTHON_EXECUTABLE=%{python3} %cmake_build From bd415f45bc00aea497b9c83aaa8a5815b3671546 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 22 Apr 2024 12:17:44 -0400 Subject: [PATCH 13/85] Update to 24.08 (close RHBZ#2265775) --- .gitignore | 2 + ...ownstream-only-add-an-SONAME-version.patch | 18 ++--- 2266.patch | 60 ++++++++-------- USD-23.05-tbb2020.3.patch | 22 ------ sources | 2 +- usd.spec | 69 ++++++++++++------- 6 files changed, 87 insertions(+), 86 deletions(-) delete mode 100644 USD-23.05-tbb2020.3.patch diff --git a/.gitignore b/.gitignore index 9be7cd4..2426ed6 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ /OpenUSD-23.08.tar.gz /OpenUSD-23.11.tar.gz /OpenUSD-24.03.tar.gz +/OpenUSD-24.05.tar.gz +/OpenUSD-24.08.tar.gz diff --git a/0001-Downstream-only-add-an-SONAME-version.patch b/0001-Downstream-only-add-an-SONAME-version.patch index 97de588..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 144bf56aa281390aad13558fe11e190e507ca17c 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 @@ -37,11 +37,11 @@ built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) 3 files changed, 8 insertions(+) diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake -index b9516997a..97c9df203 100644 +index 427608ca8..4eca9b076 100644 --- a/cmake/defaults/Version.cmake +++ b/cmake/defaults/Version.cmake -@@ -27,3 +27,9 @@ set(PXR_MINOR_VERSION "24") - set(PXR_PATCH_VERSION "3") # NOTE: Must not have leading 0 for single digits +@@ -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,10 +51,10 @@ index b9516997a..97c9df203 100644 + "Downstream shared object version" +) diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake -index 21606d4d6..4cf8aeeb6 100644 +index 48fe107dd..23ecc44ea 100644 --- a/cmake/macros/Private.cmake +++ b/cmake/macros/Private.cmake -@@ -1299,6 +1299,7 @@ function(_pxr_library NAME) +@@ -1342,6 +1342,7 @@ function(_pxr_library NAME) IMPORT_PREFIX "${args_PREFIX}" PREFIX "${args_PREFIX}" SUFFIX "${args_SUFFIX}" @@ -63,10 +63,10 @@ index 21606d4d6..4cf8aeeb6 100644 target_compile_definitions(${NAME} diff --git a/cmake/macros/Public.cmake b/cmake/macros/Public.cmake -index 97263d4cd..80abe790c 100644 +index 9f3d35837..478434cbd 100644 --- a/cmake/macros/Public.cmake +++ b/cmake/macros/Public.cmake -@@ -1017,6 +1017,7 @@ function(pxr_toplevel_prologue) +@@ -1004,6 +1004,7 @@ function(pxr_toplevel_prologue) FOLDER "${folder}" PREFIX "${libPrefix}" IMPORT_PREFIX "${libPrefix}" @@ -75,5 +75,5 @@ index 97263d4cd..80abe790c 100644 _get_install_dir("lib" libInstallPrefix) install( -- -2.43.2 +2.46.0 diff --git a/2266.patch b/2266.patch index e8f1419..ceb58f0 100644 --- a/2266.patch +++ b/2266.patch @@ -1,4 +1,4 @@ -From 4b6c23d459c602fdac5e0ebc9b7722cbd5475e86 Mon Sep 17 00:00:00 2001 +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 @@ -18,10 +18,10 @@ Subject: [PATCH] Port to Embree 4.x 11 files changed, 24 insertions(+), 28 deletions(-) diff --git a/cmake/modules/FindEmbree.cmake b/cmake/modules/FindEmbree.cmake -index e12639d6d9..ec13d0f5c4 100644 +index cd52f6b7f5..7c3ecd7cd8 100644 --- a/cmake/modules/FindEmbree.cmake +++ b/cmake/modules/FindEmbree.cmake -@@ -37,11 +37,11 @@ +@@ -20,11 +20,11 @@ #============================================================================= if (APPLE) @@ -36,7 +36,7 @@ index e12639d6d9..ec13d0f5c4 100644 endif() find_library(EMBREE_LIBRARY -@@ -56,7 +56,7 @@ find_library(EMBREE_LIBRARY +@@ -39,7 +39,7 @@ find_library(EMBREE_LIBRARY ) find_path(EMBREE_INCLUDE_DIR @@ -45,7 +45,7 @@ index e12639d6d9..ec13d0f5c4 100644 HINTS "${EMBREE_LOCATION}/include" "$ENV{EMBREE_LOCATION}/include" -@@ -64,12 +64,12 @@ DOC +@@ -47,12 +47,12 @@ DOC "Embree headers path" ) @@ -63,10 +63,10 @@ index e12639d6d9..ec13d0f5c4 100644 set (EMBREE_VERSION ${MAJOR}.${MINOR}.${PATCH}) diff --git a/pxr/imaging/plugin/hdEmbree/context.h b/pxr/imaging/plugin/hdEmbree/context.h -index 7af4ab0d27..fb10e8ceff 100644 +index 4165adb1e6..af9cc4ef5b 100644 --- a/pxr/imaging/plugin/hdEmbree/context.h +++ b/pxr/imaging/plugin/hdEmbree/context.h -@@ -31,7 +31,7 @@ +@@ -14,7 +14,7 @@ #include "pxr/base/gf/matrix4f.h" #include "pxr/base/vt/array.h" @@ -76,10 +76,10 @@ index 7af4ab0d27..fb10e8ceff 100644 PXR_NAMESPACE_OPEN_SCOPE diff --git a/pxr/imaging/plugin/hdEmbree/mesh.cpp b/pxr/imaging/plugin/hdEmbree/mesh.cpp -index e8e001e1cc..fe0f25b7b8 100644 +index 195f83a633..d3cb949952 100644 --- a/pxr/imaging/plugin/hdEmbree/mesh.cpp +++ b/pxr/imaging/plugin/hdEmbree/mesh.cpp -@@ -220,7 +220,7 @@ void HdEmbreeMesh::_EmbreeCullFaces(const RTCFilterFunctionNArguments* args) +@@ -203,7 +203,7 @@ void HdEmbreeMesh::_EmbreeCullFaces(const RTCFilterFunctionNArguments* args) default: break; } if (cull) { @@ -89,10 +89,10 @@ index e8e001e1cc..fe0f25b7b8 100644 args->valid[i] = 0; } diff --git a/pxr/imaging/plugin/hdEmbree/mesh.h b/pxr/imaging/plugin/hdEmbree/mesh.h -index 4574454368..f83bf5d998 100644 +index 29b0d55029..79d166ac65 100644 --- a/pxr/imaging/plugin/hdEmbree/mesh.h +++ b/pxr/imaging/plugin/hdEmbree/mesh.h -@@ -32,8 +32,8 @@ +@@ -15,8 +15,8 @@ #include "pxr/imaging/plugin/hdEmbree/meshSamplers.h" @@ -104,10 +104,10 @@ index 4574454368..f83bf5d998 100644 PXR_NAMESPACE_OPEN_SCOPE diff --git a/pxr/imaging/plugin/hdEmbree/meshSamplers.h b/pxr/imaging/plugin/hdEmbree/meshSamplers.h -index bef6f65959..2b481e5694 100644 +index c32c35fffa..3712a9e3ab 100644 --- a/pxr/imaging/plugin/hdEmbree/meshSamplers.h +++ b/pxr/imaging/plugin/hdEmbree/meshSamplers.h -@@ -29,8 +29,8 @@ +@@ -12,8 +12,8 @@ #include "pxr/imaging/hd/meshUtil.h" #include "pxr/base/vt/types.h" @@ -119,27 +119,27 @@ index bef6f65959..2b481e5694 100644 #include diff --git a/pxr/imaging/plugin/hdEmbree/pch.h b/pxr/imaging/plugin/hdEmbree/pch.h -index 7710229804..e8e733bfc4 100644 +index 200633939c..37ffc9be3d 100644 --- a/pxr/imaging/plugin/hdEmbree/pch.h +++ b/pxr/imaging/plugin/hdEmbree/pch.h -@@ -151,9 +151,9 @@ - #include - #include - #include +@@ -83,9 +83,9 @@ + #undef toupper + #endif + #endif // PXR_PYTHON_SUPPORT_ENABLED -#include -#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 20a80487a9..6a6bc9dbf1 100644 +index d4f8f78d54..84af7d8fba 100644 --- a/pxr/imaging/plugin/hdEmbree/renderDelegate.h +++ b/pxr/imaging/plugin/hdEmbree/renderDelegate.h -@@ -31,7 +31,7 @@ +@@ -14,7 +14,7 @@ #include "pxr/base/tf/staticTokens.h" #include @@ -149,10 +149,10 @@ index 20a80487a9..6a6bc9dbf1 100644 PXR_NAMESPACE_OPEN_SCOPE diff --git a/pxr/imaging/plugin/hdEmbree/renderParam.h b/pxr/imaging/plugin/hdEmbree/renderParam.h -index ff61000ab5..d3f903e0f3 100644 +index 206a7458bc..354fed4faa 100644 --- a/pxr/imaging/plugin/hdEmbree/renderParam.h +++ b/pxr/imaging/plugin/hdEmbree/renderParam.h -@@ -28,7 +28,7 @@ +@@ -11,7 +11,7 @@ #include "pxr/imaging/hd/renderDelegate.h" #include "pxr/imaging/hd/renderThread.h" @@ -162,10 +162,10 @@ index ff61000ab5..d3f903e0f3 100644 PXR_NAMESPACE_OPEN_SCOPE diff --git a/pxr/imaging/plugin/hdEmbree/renderer.cpp b/pxr/imaging/plugin/hdEmbree/renderer.cpp -index 20ec78c6aa..72a897120d 100644 +index 13956c7b25..cf90a952da 100644 --- a/pxr/imaging/plugin/hdEmbree/renderer.cpp +++ b/pxr/imaging/plugin/hdEmbree/renderer.cpp -@@ -650,9 +650,7 @@ HdEmbreeRenderer::_TraceRay(unsigned int x, unsigned int y, +@@ -637,9 +637,7 @@ HdEmbreeRenderer::_TraceRay(unsigned int x, unsigned int y, rayHit.ray.flags = 0; _PopulateRayHit(&rayHit, origin, dir, 0.0f); { @@ -176,7 +176,7 @@ index 20ec78c6aa..72a897120d 100644 // // there is something odd about how this is used in Embree. Is it reversed // here and then when it it used in -@@ -992,9 +990,7 @@ HdEmbreeRenderer::_ComputeAmbientOcclusion(GfVec3f const& position, +@@ -979,9 +977,7 @@ HdEmbreeRenderer::_ComputeAmbientOcclusion(GfVec3f const& position, shadow.flags = 0; _PopulateRay(&shadow, position, shadowDir, 0.001f); { @@ -188,10 +188,10 @@ index 20ec78c6aa..72a897120d 100644 // 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 6af8081678..740812fb03 100644 +index 8e727ecba0..798fb5c22e 100644 --- a/pxr/imaging/plugin/hdEmbree/renderer.h +++ b/pxr/imaging/plugin/hdEmbree/renderer.h -@@ -32,8 +32,8 @@ +@@ -15,8 +15,8 @@ #include "pxr/base/gf/matrix4d.h" #include "pxr/base/gf/rect2i.h" @@ -203,10 +203,10 @@ index 6af8081678..740812fb03 100644 #include #include diff --git a/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp b/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp -index c361c678bc..8380aebe72 100644 +index 02c2ca69f8..93705b2d28 100644 --- a/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp +++ b/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp -@@ -40,7 +40,7 @@ +@@ -23,7 +23,7 @@ #include "pxr/base/tf/errorMark.h" diff --git a/USD-23.05-tbb2020.3.patch b/USD-23.05-tbb2020.3.patch deleted file mode 100644 index 0cd0c67..0000000 --- a/USD-23.05-tbb2020.3.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- USD-23.05/cmake/modules/FindTBB.cmake~ 2023-06-28 13:02:04.191419402 +0100 -+++ USD-23.05/cmake/modules/FindTBB.cmake 2023-06-28 13:02:06.336423412 +0100 -@@ -197,7 +197,18 @@ - ################################## - - if(TBB_INCLUDE_DIRS) -- file(READ "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h" _tbb_version_file) -+ # Starting in 2020.1.1, tbb_stddef.h is replaced by version.h -+ set(_version_files "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h" -+ "${TBB_INCLUDE_DIRS}/tbb/version.h" -+ "${TBB_INCLUDE_DIRS}/oneapi/tbb/version.h") -+ foreach(f IN ITEMS ${_version_files}) -+ if(EXISTS ${f}) -+ set(_version_file ${f}) -+ endif() -+ endforeach() -+ unset(_version_files) -+ -+ file(READ ${_version_file} _tbb_version_file) - string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" - TBB_VERSION_MAJOR "${_tbb_version_file}") - string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" diff --git a/sources b/sources index 40787dd..b14561f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-24.03.tar.gz) = 3dada1fbfbd73a74e45d4e0c53466be1be3dc92140644e56a8d5d04c09d62e11181d760cf5709a9ae9c43f261f18a2c60131bafd996221fe63e22d45975c5f74 +SHA512 (OpenUSD-24.08.tar.gz) = 7d4404980579c4de3c155386184ca9d2eb96756ef6e090611bae7b4c21ad942c649f73a39b74ad84d0151ce6b9236c4b6c0c555e8e36fdd86304079e1c2e5cbe diff --git a/usd.spec b/usd.spec index d4c77c3..a0ab634 100644 --- a/usd.spec +++ b/usd.spec @@ -2,7 +2,7 @@ # 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.24.3 +%global downstream_so_version 0.24.8 %bcond alembic 1 %bcond draco 1 @@ -27,7 +27,7 @@ %bcond test 0 Name: usd -Version: 24.03 +Version: 24.08 Release: %autorelease Summary: 3D VFX pipeline interchange file format @@ -41,24 +41,30 @@ Summary: 3D VFX pipeline interchange file format # - pxr/base/tf/pxrCLI11/ # - pxr/base/tf/pxrDoubleConversion/ # - pxr/imaging/hio/OpenEXR/OpenEXRCore/ +# - pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/ # BSD-2-Clause: # - pxr/base/tf/pxrLZ4/ +# - pxr/imaging/plugin/hioAvif/AVIF/, except +# 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/ # MIT: # - docs/doxygen/doxygen-awesome-css/ (removed in %%prep) # - pxr/base/js/rapidjson/, except pxr/base/js/rapidjson/msinttypes/ -# - pxr/base/tf/pxrPEGTL/ +# - pxr/base/pegtl/ # - pxr/base/tf/pxrTslRobinMap/ # - pxr/imaging/garch/khrplatform.h # - pxr/imaging/hgiVulkan/vk_mem_alloc.h # - pxr/imaging/hio/EpenEXR/deflate/ -# - pxr/usd/sdf/invoke.hpp -# - third_party/renderman-24/plugin/rmanArgsParser/pugixml/ +# - third_party/renderman-25/plugin/rmanArgsParser/pugixml/ +# - third_party/renderman-26/plugin/rmanArgsParser/pugixml/ # 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-24/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: # @@ -72,6 +78,10 @@ Summary: 3D VFX pipeline interchange file format # # (Certain build system files are also under licenses other than Apache-2.0, but # do not contribute their license terms to the built RPMs.) +# +# Note that the license assigned the SPDX identifier Pixar was later officially +# named Tomorrow Open Source Technology License 1.0, TOST-1.0, with no change +# to its terms. License: %{shrink: Pixar AND Apache-2.0 AND @@ -122,11 +132,12 @@ Source2: stb_image.patch Patch: 0001-Downstream-only-add-an-SONAME-version.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 -Patch: USD-23.05-tbb2020.3.patch - # Base BuildRequires: gcc-c++ @@ -143,7 +154,7 @@ BuildRequires: boost-devel BuildRequires: pkgconfig(dri) BuildRequires: hdf5-devel BuildRequires: opensubdiv-devel >= 3.6.0 -BuildRequires: pkgconfig(tbb) = 2020.3 +BuildRequires: pkgconfig(tbb) BuildRequires: cmake(Imath) >= 3.0 @@ -231,7 +242,7 @@ Summary: Universal Scene Description library # Path to using external/system copies of OpenEXRCore and libdeflate? # https://github.com/PixarAnimationStudios/OpenUSD/issues/2619 # Version from: pxr/base/tf/pxrDoubleConversion/README -Provides: bundled(double-conversion) = 2.0.0 +Provides: bundled(double-conversion) = 3.3.0 # Version from: pxr/base/gf/ilmbase_half.README Provides: bundled(ilmbase) = 2.5.3 # Version from: pxr/base/tf/pxrLZ4/lz4.h (LZ4_VERSION_{MAJOR,MINOR_PATCH}) @@ -239,31 +250,39 @@ Provides: bundled(lz4) = 1.9.2 # Version from: pxr/base/tf/pxrCLI11/README.md Provides: bundled(cli11) = 2.3.1 # Version from: -# third_party/renderman-24/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/imaging/hgiVulkan/spirv_reflect.h (header comment) -Provides: bundled(SPIRV-Reflect) = 1.0 -# Version from: pxr/imaging/hgiVulkan/vk_mem_alloc.h (header comment) -Provides: bundled(VulkanMemoryAllocator) = 3.0.0~development # Forked from an unknown version: pxr/base/tf/pxrTslRobinMap/ Provides: bundled(robin-map) -# Version from: pxr/base/tf/pxrPEGTL/pegtl.h (TAO_PEGTL_VERSION) -Provides: bundled(PEGTL) = 2.8.3 +# Version from: pxr/base/pegtl/pegtl/version.hpp +Provides: bundled(PEGTL) = 3.2.7 # Version from pxr/imaging/hio/OpenEXR/OpenEXRCore/openexr_version.h Provides: bundled(openexr) = 3.2.0 # Version from pxr/imaging/hio/OpenEXR/deflate/libdeflate.h Provides: bundled(libdeflate) = 1.18 -# Forked from https://github.com/blackmatov/invoke.hpp, which upstream has -# never versioned; however, a copyright statement appears in the header comment -# in pxr/usd/sdf/invoke.hpp with a date of 2023, and the only upstream commit -# with the same date (as of this writing) is -# 2c1eabc2e20ab02961f95c704ff0c0818671ddd1, so we infer that the bundled copy -# was forked from that commit. -Provides: bundled(invoke-hpp) = 0^20230107git2c1eabc +# Version from pxr/imaging/plugin/hioAvif/AVIF/src/avif/avif.h +# We actually have a post-release snapshot of libavif, because +# AVIF_VERSION_DEVEL is nonzero, but it’s not easy to determine which commit +# hash it was copied from. +Provides: bundled(libavif) = 1.0.1 +# Version from pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/libyuv/version.h +# LIBYUV_VERSION is a “serial number” version, e.g. 1895, that gets incremented +# every time changes are dumped into git from an internal VCS; the libyuv +# package in Fedora is considered to have version 0 and uses snapshot +# versioning. We can dig through +# 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^20240812gita977463 +# Version from pxr/imaging/plugin/hioAvif/aom/config/aom_version.h +Provides: bundled(aom) = 3.0.0 +# Version from pxr/base/pegtl/pegtl/version.hpp +Provides: bundled(PEGTL) = 3.2.7 %description libs Universal Scene Description (USD) is an efficient, scalable system for @@ -478,6 +497,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %files %doc NOTICE.txt README.md +%{_bindir}/hdGenSchema %{_bindir}/sdfdump %{_bindir}/sdffilter %{_bindir}/usdGenSchema @@ -503,6 +523,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %{_bindir}/usdview %endif +%{_mandir}/man1/hdGenSchema.1* %{_mandir}/man1/sdfdump.1* %{_mandir}/man1/sdffilter.1* %{_mandir}/man1/usdGenSchema.1* From 2bcbdb9ba45addd99033f385ff05ead5f99322f1 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 28 Aug 2024 09:32:11 -0400 Subject: [PATCH 14/85] Unbundle double-conversion --- ...use-the-system-double-conversion-lib.patch | 143 ++++++++++++++++++ usd.spec | 26 +++- 2 files changed, 165 insertions(+), 4 deletions(-) create mode 100644 0001-Downstream-only-use-the-system-double-conversion-lib.patch diff --git a/0001-Downstream-only-use-the-system-double-conversion-lib.patch b/0001-Downstream-only-use-the-system-double-conversion-lib.patch new file mode 100644 index 0000000..c3348f0 --- /dev/null +++ b/0001-Downstream-only-use-the-system-double-conversion-lib.patch @@ -0,0 +1,143 @@ +From 6d22693f459e9960e030cf19575e860ad197ab0a Mon Sep 17 00:00:00 2001 +From: "Benjamin A. Beasley" +Date: Wed, 28 Aug 2024 10:42:48 -0400 +Subject: [PATCH] Downstream-only: use the system double-conversion library + +--- + pxr/base/tf/CMakeLists.txt | 23 +++-------------------- + pxr/base/tf/stringUtils.cpp | 22 +++++++++++----------- + 2 files changed, 14 insertions(+), 31 deletions(-) + +diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt +index b236184c4..0527a6295 100644 +--- a/pxr/base/tf/CMakeLists.txt ++++ b/pxr/base/tf/CMakeLists.txt +@@ -110,6 +110,8 @@ function(add_py_dll_link_test) + + endfunction() + ++find_library(double-conversion_LIBRARY NAMES double-conversion REQUIRED) ++ + pxr_library(tf + LIBRARIES + arch +@@ -117,6 +119,7 @@ pxr_library(tf + ${PYTHON_LIBRARIES} + ${Boost_PYTHON_LIBRARY} + ${TBB_tbb_LIBRARY} ++ ${double-conversion_LIBRARY} + + INCLUDE_DIRS + ${PYTHON_INCLUDE_DIRS} +@@ -266,31 +269,11 @@ pxr_library(tf + + PRIVATE_HEADERS + scopeDescriptionPrivate.h +- pxrDoubleConversion/ieee.h +- pxrDoubleConversion/utils.h +- pxrDoubleConversion/double-conversion.h +- pxrDoubleConversion/bignum-dtoa.h +- pxrDoubleConversion/bignum.h +- pxrDoubleConversion/cached-powers.h +- pxrDoubleConversion/diy-fp.h +- pxrDoubleConversion/double-to-string.h +- pxrDoubleConversion/fast-dtoa.h +- pxrDoubleConversion/fixed-dtoa.h +- pxrDoubleConversion/string-to-double.h +- pxrDoubleConversion/strtod.h + pxrLZ4/lz4.h + pyWeakObject.h + + CPPFILES + initConfig.cpp +- pxrDoubleConversion/bignum-dtoa.cc +- pxrDoubleConversion/bignum.cc +- pxrDoubleConversion/cached-powers.cc +- pxrDoubleConversion/double-to-string.cc +- pxrDoubleConversion/fast-dtoa.cc +- pxrDoubleConversion/fixed-dtoa.cc +- pxrDoubleConversion/string-to-double.cc +- pxrDoubleConversion/strtod.cc + pxrLZ4/lz4.cpp + + PYTHON_CPPFILES +diff --git a/pxr/base/tf/stringUtils.cpp b/pxr/base/tf/stringUtils.cpp +index 7110aee3e..8800d28bc 100644 +--- a/pxr/base/tf/stringUtils.cpp ++++ b/pxr/base/tf/stringUtils.cpp +@@ -29,8 +29,8 @@ + #include + #include + +-#include "pxrDoubleConversion/double-conversion.h" +-#include "pxrDoubleConversion/utils.h" ++#include ++#include + + #if defined(ARCH_OS_WINDOWS) + #include +@@ -70,8 +70,8 @@ TfStringPrintf(const char *fmt, ...) + static inline double + _StringToDoubleImpl(const char *ptr, int len) + { +- pxr_double_conversion::StringToDoubleConverter +- strToDouble(pxr_double_conversion::DoubleToStringConverter::NO_FLAGS, ++ double_conversion::StringToDoubleConverter ++ strToDouble(double_conversion::DoubleToStringConverter::NO_FLAGS, + /* empty_string_value */ 0, + /* junk_string_value */ 0, + /* infinity symbol */ "inf", +@@ -914,11 +914,11 @@ TfStringify(std::string const& s) + + static + const +-pxr_double_conversion::DoubleToStringConverter& ++double_conversion::DoubleToStringConverter& + Tf_GetDoubleToStringConverter() + { +- static const pxr_double_conversion::DoubleToStringConverter conv( +- pxr_double_conversion::DoubleToStringConverter::NO_FLAGS, ++ static const double_conversion::DoubleToStringConverter conv( ++ double_conversion::DoubleToStringConverter::NO_FLAGS, + "inf", + "nan", + 'e', +@@ -934,7 +934,7 @@ void + Tf_ApplyDoubleToStringConverter(float val, char* buffer, int bufferSize) + { + const auto& conv = Tf_GetDoubleToStringConverter(); +- pxr_double_conversion::StringBuilder builder(buffer, bufferSize); ++ double_conversion::StringBuilder builder(buffer, bufferSize); + // This should only fail if we provide an insufficient buffer. + TF_VERIFY(conv.ToShortestSingle(val, &builder), + "double_conversion failed"); +@@ -944,7 +944,7 @@ void + Tf_ApplyDoubleToStringConverter(double val, char* buffer, int bufferSize) + { + const auto& conv = Tf_GetDoubleToStringConverter(); +- pxr_double_conversion::StringBuilder builder(buffer, bufferSize); ++ double_conversion::StringBuilder builder(buffer, bufferSize); + // This should only fail if we provide an insufficient buffer. + TF_VERIFY(conv.ToShortest(val, &builder), + "double_conversion failed"); +@@ -966,7 +966,7 @@ TfDoubleToString( + if (bufferSize < 25) { + return false; + } +- using DSC = pxr_double_conversion::DoubleToStringConverter; ++ using DSC = double_conversion::DoubleToStringConverter; + int flags = DSC::NO_FLAGS; + if (emitTrailingZero) { + flags = DSC::EMIT_TRAILING_DECIMAL_POINT +@@ -981,7 +981,7 @@ TfDoubleToString( + /* decimal_in_shortest_high */ 15, + /* max_leading_padding_zeroes_in_precision_mode */ 0, + /* max_trailing_padding_zeroes_in_precision_mode */ 0); +- pxr_double_conversion::StringBuilder builder(buffer, bufferSize); ++ double_conversion::StringBuilder builder(buffer, bufferSize); + // This should only fail if we provide an insufficient buffer. + return conv.ToShortest(val, &builder); + } +-- +2.46.0 + diff --git a/usd.spec b/usd.spec index a0ab634..bd1058a 100644 --- a/usd.spec +++ b/usd.spec @@ -39,7 +39,7 @@ Summary: 3D VFX pipeline interchange file format # - pxr/base/gf/ilmbase_* # - pxr/base/js/rapidjson/msinttypes/ # - pxr/base/tf/pxrCLI11/ -# - pxr/base/tf/pxrDoubleConversion/ +# - pxr/base/tf/pxrDoubleConversion/ (removed in %%prep) # - pxr/imaging/hio/OpenEXR/OpenEXRCore/ # - pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/ # BSD-2-Clause: @@ -138,6 +138,9 @@ Patch: 0001-Downstream-only-add-an-SONAME-version.patch # 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 + # Base BuildRequires: gcc-c++ @@ -155,6 +158,8 @@ BuildRequires: pkgconfig(dri) BuildRequires: hdf5-devel BuildRequires: opensubdiv-devel >= 3.6.0 BuildRequires: pkgconfig(tbb) +# Unbundled: +BuildRequires: cmake(double-conversion) BuildRequires: cmake(Imath) >= 3.0 @@ -195,7 +200,6 @@ BuildRequires: openvdb-devel BuildRequires: pkgconfig(ptex) %endif - # Header-only library: -static is for tracking per guidelines # # Enforce the the minimum EVR to contain fixes for all of: @@ -241,8 +245,6 @@ Summary: Universal Scene Description library # See also: # Path to using external/system copies of OpenEXRCore and libdeflate? # https://github.com/PixarAnimationStudios/OpenUSD/issues/2619 -# Version from: pxr/base/tf/pxrDoubleConversion/README -Provides: bundled(double-conversion) = 3.3.0 # Version from: pxr/base/gf/ilmbase_half.README Provides: bundled(ilmbase) = 2.5.3 # Version from: pxr/base/tf/pxrLZ4/lz4.h (LZ4_VERSION_{MAJOR,MINOR_PATCH}) @@ -284,6 +286,13 @@ Provides: bundled(aom) = 3.0.0 # Version from pxr/base/pegtl/pegtl/version.hpp Provides: bundled(PEGTL) = 3.2.7 +# 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 +# ever have to switch back to the bundled versions. +# +# Version from: pxr/base/tf/pxrDoubleConversion/README +# Provides: bundled(double-conversion) = 3.3.0 + %description libs Universal Scene Description (USD) is an efficient, scalable system for authoring, reading, and streaming time-sampled scene description for @@ -360,6 +369,15 @@ popd # building Doxygen-generated HTML documentation. rm -rf docs/doxygen/doxygen-awesome-css/ +# Remove the bundled copy of double-conversion. +# +# From pxr/base/tf/pxrDoubleConversion/README, the upstream double-conversion +# is patched with pxr/base/tf/pxrDoubleConversion/pxr-double-conversion.patch; +# examination of that patch shows that it merely adds namespaces and renames +# symbols, rather than making functional changes, so using the system library +# should be safe. +rm -rv pxr/base/tf/pxrDoubleConversion + # Use c++17 standard otherwise build fails sed -i 's|set(CMAKE_CXX_STANDARD 14)|set(CMAKE_CXX_STANDARD 17)|g' \ cmake/defaults/CXXDefaults.cmake From e7b56c601979ecc7467eab702a980de1e7f706e6 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 28 Aug 2024 12:01:53 -0400 Subject: [PATCH 15/85] Fix a trivial spec-file typo [skip changelog] --- usd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usd.spec b/usd.spec index bd1058a..1b635b5 100644 --- a/usd.spec +++ b/usd.spec @@ -22,7 +22,7 @@ %bcond ptex 1 %bcond usdview 1 # TODO: Figure out how to re-enable the tests. Currently these want to install -# into /usr/tests and, and there are issues with the launchers finding the +# into /usr/tests, and there are issues with the launchers finding the # command-line tools in the buildroot. %bcond test 0 From 43282c86fb50183c16fb87baad296a9f6c5af9f7 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 29 Aug 2024 13:27:04 -0400 Subject: [PATCH 16/85] Add more notes about ilmbase bundling [skip changelog] --- usd.spec | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/usd.spec b/usd.spec index 1b635b5..d884c55 100644 --- a/usd.spec +++ b/usd.spec @@ -246,6 +246,15 @@ Summary: Universal Scene Description library # Path to using external/system copies of OpenEXRCore and libdeflate? # https://github.com/PixarAnimationStudios/OpenUSD/issues/2619 # Version from: pxr/base/gf/ilmbase_half.README +# +# This is difficult to unbundle even in the manner of double-conversion: code +# that uses the half type is compatible with ilmbase version 2 (as packaged in +# openexr2) rather than version 3 (as packaged in the ilmbase package). +# Unfortunately, we need cmake(Imath) elsewhere in the package, and this comes +# from the imath package (version 3), which conflicts with the imath version 2 +# libraries included with openexr2. So this will not be possible until the +# surrounding code is patched (upstream or downstream) for compatibility with +# ilmbase version 3, something we’re currently not willing to attempt. Provides: bundled(ilmbase) = 2.5.3 # Version from: pxr/base/tf/pxrLZ4/lz4.h (LZ4_VERSION_{MAJOR,MINOR_PATCH}) Provides: bundled(lz4) = 1.9.2 From 9a24539f76f0439264465faf8f323b038f8af705 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 29 Aug 2024 16:31:13 -0400 Subject: [PATCH 17/85] Unbundle lz4 --- ...use-the-system-double-conversion-lib.patch | 2 +- ...ream-only-use-the-system-lz4-library.patch | 74 +++++++++++++++++++ usd.spec | 11 ++- 3 files changed, 84 insertions(+), 3 deletions(-) create mode 100644 0002-Downstream-only-use-the-system-lz4-library.patch 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 c3348f0..72d6936 100644 --- a/0001-Downstream-only-use-the-system-double-conversion-lib.patch +++ b/0001-Downstream-only-use-the-system-double-conversion-lib.patch @@ -1,7 +1,7 @@ From 6d22693f459e9960e030cf19575e860ad197ab0a Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 28 Aug 2024 10:42:48 -0400 -Subject: [PATCH] Downstream-only: use the system double-conversion library +Subject: [PATCH 1/2] Downstream-only: use the system double-conversion library --- pxr/base/tf/CMakeLists.txt | 23 +++-------------------- diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch new file mode 100644 index 0000000..e022306 --- /dev/null +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -0,0 +1,74 @@ +From 90d08ced56bce3026c5ac1646c654ab917bb0f1d Mon Sep 17 00:00:00 2001 +From: "Benjamin A. Beasley" +Date: Thu, 29 Aug 2024 13:30:18 -0400 +Subject: [PATCH 2/2] Downstream-only: use the system lz4 library + +--- + pxr/base/tf/CMakeLists.txt | 6 ++++-- + pxr/base/tf/fastCompression.cpp | 4 +--- + 2 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt +index 0527a6295..2988e2606 100644 +--- a/pxr/base/tf/CMakeLists.txt ++++ b/pxr/base/tf/CMakeLists.txt +@@ -111,6 +111,8 @@ function(add_py_dll_link_test) + endfunction() + + find_library(double-conversion_LIBRARY NAMES double-conversion REQUIRED) ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(LZ4 REQUIRED liblz4) + + pxr_library(tf + LIBRARIES +@@ -120,11 +122,13 @@ pxr_library(tf + ${Boost_PYTHON_LIBRARY} + ${TBB_tbb_LIBRARY} + ${double-conversion_LIBRARY} ++ ${LZ4_LIBRARIES} + + INCLUDE_DIRS + ${PYTHON_INCLUDE_DIRS} + ${Boost_INCLUDE_DIRS} + ${TBB_INCLUDE_DIRS} ++ ${LZ4_INCLUDE_DIRS} + + PUBLIC_CLASSES + anyUniquePtr +@@ -269,12 +273,10 @@ pxr_library(tf + + PRIVATE_HEADERS + scopeDescriptionPrivate.h +- pxrLZ4/lz4.h + pyWeakObject.h + + CPPFILES + initConfig.cpp +- pxrLZ4/lz4.cpp + + PYTHON_CPPFILES + moduleDeps.cpp +diff --git a/pxr/base/tf/fastCompression.cpp b/pxr/base/tf/fastCompression.cpp +index 55f455d42..4e7685f23 100644 +--- a/pxr/base/tf/fastCompression.cpp ++++ b/pxr/base/tf/fastCompression.cpp +@@ -11,15 +11,13 @@ + #include "pxr/base/tf/fastCompression.h" + + // XXX: Need to isolate symbols here? +-#include "pxrLZ4/lz4.h" ++#include "lz4.h" + + #include + #include + + PXR_NAMESPACE_OPEN_SCOPE + +-using namespace pxr_lz4; +- + size_t + TfFastCompression::GetMaxInputSize() + { +-- +2.46.0 + diff --git a/usd.spec b/usd.spec index d884c55..09430fc 100644 --- a/usd.spec +++ b/usd.spec @@ -140,6 +140,8 @@ Patch: %{forgeurl}/pull/2266.patch # Downstream-only: use the system double-conversion library Patch: 0001-Downstream-only-use-the-system-double-conversion-lib.patch +# Downstream-only: use the system lz4 library +Patch: 0002-Downstream-only-use-the-system-lz4-library.patch # Base BuildRequires: gcc-c++ @@ -160,6 +162,7 @@ BuildRequires: opensubdiv-devel >= 3.6.0 BuildRequires: pkgconfig(tbb) # Unbundled: BuildRequires: cmake(double-conversion) +BuildRequires: pkgconfig(liblz4) BuildRequires: cmake(Imath) >= 3.0 @@ -256,8 +259,6 @@ Summary: Universal Scene Description library # surrounding code is patched (upstream or downstream) for compatibility with # ilmbase version 3, something we’re currently not willing to attempt. Provides: bundled(ilmbase) = 2.5.3 -# Version from: pxr/base/tf/pxrLZ4/lz4.h (LZ4_VERSION_{MAJOR,MINOR_PATCH}) -Provides: bundled(lz4) = 1.9.2 # Version from: pxr/base/tf/pxrCLI11/README.md Provides: bundled(cli11) = 2.3.1 # Version from: @@ -301,6 +302,8 @@ Provides: bundled(PEGTL) = 3.2.7 # # Version from: pxr/base/tf/pxrDoubleConversion/README # Provides: bundled(double-conversion) = 3.3.0 +# Version from: pxr/base/tf/pxrLZ4/lz4.h (LZ4_VERSION_{MAJOR,MINOR_PATCH}) +# Provides: bundled(lz4) = 1.9.2 %description libs Universal Scene Description (USD) is an efficient, scalable system for @@ -386,6 +389,10 @@ rm -rf docs/doxygen/doxygen-awesome-css/ # symbols, rather than making functional changes, so using the system library # should be safe. rm -rv pxr/base/tf/pxrDoubleConversion +# Similarly, remove the bundled copy of lz4. Change in the bundled copy can be +# identified by source-code comments, and appear to be limited to adding +# namespaces and removing C linkage. +rm -rv pxr/base/tf/pxrLZ4 # Use c++17 standard otherwise build fails sed -i 's|set(CMAKE_CXX_STANDARD 14)|set(CMAKE_CXX_STANDARD 17)|g' \ From 0725c67cd1940f0f0b27df7add5843d847938af7 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Fri, 30 Aug 2024 07:11:14 -0400 Subject: [PATCH 18/85] Unbundle cli11 --- usd.spec | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/usd.spec b/usd.spec index 09430fc..9849cd3 100644 --- a/usd.spec +++ b/usd.spec @@ -163,6 +163,7 @@ BuildRequires: pkgconfig(tbb) # Unbundled: BuildRequires: cmake(double-conversion) BuildRequires: pkgconfig(liblz4) +BuildRequires: cli11-devel cli11-static BuildRequires: cmake(Imath) >= 3.0 @@ -259,8 +260,6 @@ Summary: Universal Scene Description library # surrounding code is patched (upstream or downstream) for compatibility with # ilmbase version 3, something we’re currently not willing to attempt. Provides: bundled(ilmbase) = 2.5.3 -# Version from: pxr/base/tf/pxrCLI11/README.md -Provides: bundled(cli11) = 2.3.1 # Version from: # third_party/renderman-25/plugin/rmanArgsParser/pugixml/pugiconfig.hpp # third_party/renderman-26/plugin/rmanArgsParser/pugixml/pugiconfig.hpp @@ -304,6 +303,8 @@ Provides: bundled(PEGTL) = 3.2.7 # Provides: bundled(double-conversion) = 3.3.0 # Version from: pxr/base/tf/pxrLZ4/lz4.h (LZ4_VERSION_{MAJOR,MINOR_PATCH}) # Provides: bundled(lz4) = 1.9.2 +# Version from: pxr/base/tf/pxrCLI11/README.md +# Provides: bundled(cli11) = 2.3.1 %description libs Universal Scene Description (USD) is an efficient, scalable system for @@ -393,6 +394,12 @@ rm -rv pxr/base/tf/pxrDoubleConversion # identified by source-code comments, and appear to be limited to adding # namespaces and removing C linkage. rm -rv pxr/base/tf/pxrLZ4 +# Remove the bundled copy of cli11. +rm -v pxr/base/tf/pxrCLI11/* +cat > pxr/base/tf/pxrCLI11/CLI11.h <<'EOF' +#include "CLI/CLI.hpp" +namespace pxr_CLI = CLI; +EOF # Use c++17 standard otherwise build fails sed -i 's|set(CMAKE_CXX_STANDARD 14)|set(CMAKE_CXX_STANDARD 17)|g' \ From 40cf2f17b5893b7034f7aaf695db46107f1cc621 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Fri, 30 Aug 2024 08:13:57 -0400 Subject: [PATCH 19/85] Update License comment for unbunded lz4 and cli11 [skip changelog] --- usd.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usd.spec b/usd.spec index 9849cd3..5275ca3 100644 --- a/usd.spec +++ b/usd.spec @@ -38,12 +38,12 @@ Summary: 3D VFX pipeline interchange file format # BSD-3-Clause: # - pxr/base/gf/ilmbase_* # - pxr/base/js/rapidjson/msinttypes/ -# - pxr/base/tf/pxrCLI11/ +# - pxr/base/tf/pxrCLI11/ (removed in %%prep) # - pxr/base/tf/pxrDoubleConversion/ (removed in %%prep) # - pxr/imaging/hio/OpenEXR/OpenEXRCore/ # - pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/ # BSD-2-Clause: -# - pxr/base/tf/pxrLZ4/ +# - pxr/base/tf/pxrLZ4/ (removed in %%prep) # - pxr/imaging/plugin/hioAvif/AVIF/, except # pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/; # pxr/imaging/plugin/hioAvif/AVIF/src/avif_obu.c has a different copyright From 73a20616f89665e87b5b4fba9c4c85b184c70839 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Fri, 30 Aug 2024 08:14:31 -0400 Subject: [PATCH 20/85] Simplified unbundling patches for double-conversion and lz4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use “stub” headers to avoid patching the call sites --- ...use-the-system-double-conversion-lib.patch | 84 +------------------ ...ream-only-use-the-system-lz4-library.patch | 28 +------ usd.spec | 18 +++- 3 files changed, 21 insertions(+), 109 deletions(-) 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 72d6936..0c8a0b2 100644 --- a/0001-Downstream-only-use-the-system-double-conversion-lib.patch +++ b/0001-Downstream-only-use-the-system-double-conversion-lib.patch @@ -1,12 +1,11 @@ -From 6d22693f459e9960e030cf19575e860ad197ab0a Mon Sep 17 00:00:00 2001 +From cf8f5e12d8e2ec2ca2ce6c4dfcaaaa3f2fd30fd7 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 28 Aug 2024 10:42:48 -0400 Subject: [PATCH 1/2] Downstream-only: use the system double-conversion library --- - pxr/base/tf/CMakeLists.txt | 23 +++-------------------- - pxr/base/tf/stringUtils.cpp | 22 +++++++++++----------- - 2 files changed, 14 insertions(+), 31 deletions(-) + pxr/base/tf/CMakeLists.txt | 23 +++-------------------- + 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt index b236184c4..0527a6295 100644 @@ -61,83 +60,6 @@ index b236184c4..0527a6295 100644 pxrLZ4/lz4.cpp PYTHON_CPPFILES -diff --git a/pxr/base/tf/stringUtils.cpp b/pxr/base/tf/stringUtils.cpp -index 7110aee3e..8800d28bc 100644 ---- a/pxr/base/tf/stringUtils.cpp -+++ b/pxr/base/tf/stringUtils.cpp -@@ -29,8 +29,8 @@ - #include - #include - --#include "pxrDoubleConversion/double-conversion.h" --#include "pxrDoubleConversion/utils.h" -+#include -+#include - - #if defined(ARCH_OS_WINDOWS) - #include -@@ -70,8 +70,8 @@ TfStringPrintf(const char *fmt, ...) - static inline double - _StringToDoubleImpl(const char *ptr, int len) - { -- pxr_double_conversion::StringToDoubleConverter -- strToDouble(pxr_double_conversion::DoubleToStringConverter::NO_FLAGS, -+ double_conversion::StringToDoubleConverter -+ strToDouble(double_conversion::DoubleToStringConverter::NO_FLAGS, - /* empty_string_value */ 0, - /* junk_string_value */ 0, - /* infinity symbol */ "inf", -@@ -914,11 +914,11 @@ TfStringify(std::string const& s) - - static - const --pxr_double_conversion::DoubleToStringConverter& -+double_conversion::DoubleToStringConverter& - Tf_GetDoubleToStringConverter() - { -- static const pxr_double_conversion::DoubleToStringConverter conv( -- pxr_double_conversion::DoubleToStringConverter::NO_FLAGS, -+ static const double_conversion::DoubleToStringConverter conv( -+ double_conversion::DoubleToStringConverter::NO_FLAGS, - "inf", - "nan", - 'e', -@@ -934,7 +934,7 @@ void - Tf_ApplyDoubleToStringConverter(float val, char* buffer, int bufferSize) - { - const auto& conv = Tf_GetDoubleToStringConverter(); -- pxr_double_conversion::StringBuilder builder(buffer, bufferSize); -+ double_conversion::StringBuilder builder(buffer, bufferSize); - // This should only fail if we provide an insufficient buffer. - TF_VERIFY(conv.ToShortestSingle(val, &builder), - "double_conversion failed"); -@@ -944,7 +944,7 @@ void - Tf_ApplyDoubleToStringConverter(double val, char* buffer, int bufferSize) - { - const auto& conv = Tf_GetDoubleToStringConverter(); -- pxr_double_conversion::StringBuilder builder(buffer, bufferSize); -+ double_conversion::StringBuilder builder(buffer, bufferSize); - // This should only fail if we provide an insufficient buffer. - TF_VERIFY(conv.ToShortest(val, &builder), - "double_conversion failed"); -@@ -966,7 +966,7 @@ TfDoubleToString( - if (bufferSize < 25) { - return false; - } -- using DSC = pxr_double_conversion::DoubleToStringConverter; -+ using DSC = double_conversion::DoubleToStringConverter; - int flags = DSC::NO_FLAGS; - if (emitTrailingZero) { - flags = DSC::EMIT_TRAILING_DECIMAL_POINT -@@ -981,7 +981,7 @@ TfDoubleToString( - /* decimal_in_shortest_high */ 15, - /* max_leading_padding_zeroes_in_precision_mode */ 0, - /* max_trailing_padding_zeroes_in_precision_mode */ 0); -- pxr_double_conversion::StringBuilder builder(buffer, bufferSize); -+ double_conversion::StringBuilder builder(buffer, bufferSize); - // This should only fail if we provide an insufficient buffer. - return conv.ToShortest(val, &builder); - } -- 2.46.0 diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index e022306..78385ad 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,12 +1,11 @@ -From 90d08ced56bce3026c5ac1646c654ab917bb0f1d Mon Sep 17 00:00:00 2001 +From 93c494376aff2d6dc4ba3f50fd41738a003230d4 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 29 Aug 2024 13:30:18 -0400 Subject: [PATCH 2/2] Downstream-only: use the system lz4 library --- - pxr/base/tf/CMakeLists.txt | 6 ++++-- - pxr/base/tf/fastCompression.cpp | 4 +--- - 2 files changed, 5 insertions(+), 5 deletions(-) + pxr/base/tf/CMakeLists.txt | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt index 0527a6295..2988e2606 100644 @@ -48,27 +47,6 @@ index 0527a6295..2988e2606 100644 PYTHON_CPPFILES moduleDeps.cpp -diff --git a/pxr/base/tf/fastCompression.cpp b/pxr/base/tf/fastCompression.cpp -index 55f455d42..4e7685f23 100644 ---- a/pxr/base/tf/fastCompression.cpp -+++ b/pxr/base/tf/fastCompression.cpp -@@ -11,15 +11,13 @@ - #include "pxr/base/tf/fastCompression.h" - - // XXX: Need to isolate symbols here? --#include "pxrLZ4/lz4.h" -+#include "lz4.h" - - #include - #include - - PXR_NAMESPACE_OPEN_SCOPE - --using namespace pxr_lz4; -- - size_t - TfFastCompression::GetMaxInputSize() - { -- 2.46.0 diff --git a/usd.spec b/usd.spec index 5275ca3..8624916 100644 --- a/usd.spec +++ b/usd.spec @@ -389,15 +389,27 @@ rm -rf docs/doxygen/doxygen-awesome-css/ # examination of that patch shows that it merely adds namespaces and renames # symbols, rather than making functional changes, so using the system library # should be safe. -rm -rv pxr/base/tf/pxrDoubleConversion +find pxr/base/tf/pxrDoubleConversion -type f ! -name '*.h' -print -delete +for hdr in pxr/base/tf/pxrDoubleConversion/*.h +do + cat > "${hdr}" < +namespace pxr_double_conversion = double_conversion; +EOF +done # Similarly, remove the bundled copy of lz4. Change in the bundled copy can be # identified by source-code comments, and appear to be limited to adding # namespaces and removing C linkage. -rm -rv pxr/base/tf/pxrLZ4 +rm -v pxr/base/tf/pxrLZ4/* +cat > pxr/base/tf/pxrLZ4/lz4.h <<'EOF' +#include +// System LZ4 has C linkage; this just allows "using namespace" +namespace pxr_lz4 {} +EOF # Remove the bundled copy of cli11. rm -v pxr/base/tf/pxrCLI11/* cat > pxr/base/tf/pxrCLI11/CLI11.h <<'EOF' -#include "CLI/CLI.hpp" +#include namespace pxr_CLI = CLI; EOF From 8ac451a67417ff41c0158ac3f93c11e0e599c6d1 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Fri, 30 Aug 2024 08:35:40 -0400 Subject: [PATCH 21/85] =?UTF-8?q?Don=E2=80=99t=20patch=20out=20headers=20t?= =?UTF-8?q?hat=20will=20be=20=E2=80=9Cstubbed=E2=80=9D=20from=20CMake?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [skip changelog] --- ...use-the-system-double-conversion-lib.patch | 27 ++++--------------- ...ream-only-use-the-system-lz4-library.patch | 15 ++++------- 2 files changed, 10 insertions(+), 32 deletions(-) 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 0c8a0b2..9250f90 100644 --- a/0001-Downstream-only-use-the-system-double-conversion-lib.patch +++ b/0001-Downstream-only-use-the-system-double-conversion-lib.patch @@ -1,14 +1,14 @@ -From cf8f5e12d8e2ec2ca2ce6c4dfcaaaa3f2fd30fd7 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/2] Downstream-only: use the system double-conversion library --- - pxr/base/tf/CMakeLists.txt | 23 +++-------------------- - 1 file changed, 3 insertions(+), 20 deletions(-) + pxr/base/tf/CMakeLists.txt | 11 +++-------- + 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt -index b236184c4..0527a6295 100644 +index b236184c4..c1a24a87f 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -110,6 +110,8 @@ function(add_py_dll_link_test) @@ -28,24 +28,7 @@ index b236184c4..0527a6295 100644 INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS} -@@ -266,31 +269,11 @@ pxr_library(tf - - PRIVATE_HEADERS - scopeDescriptionPrivate.h -- pxrDoubleConversion/ieee.h -- pxrDoubleConversion/utils.h -- pxrDoubleConversion/double-conversion.h -- pxrDoubleConversion/bignum-dtoa.h -- pxrDoubleConversion/bignum.h -- pxrDoubleConversion/cached-powers.h -- pxrDoubleConversion/diy-fp.h -- pxrDoubleConversion/double-to-string.h -- pxrDoubleConversion/fast-dtoa.h -- pxrDoubleConversion/fixed-dtoa.h -- pxrDoubleConversion/string-to-double.h -- pxrDoubleConversion/strtod.h - pxrLZ4/lz4.h - pyWeakObject.h +@@ -283,14 +286,6 @@ pxr_library(tf CPPFILES initConfig.cpp diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index 78385ad..afa4413 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,14 +1,14 @@ -From 93c494376aff2d6dc4ba3f50fd41738a003230d4 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/2] Downstream-only: use the system lz4 library --- - pxr/base/tf/CMakeLists.txt | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) + 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 0527a6295..2988e2606 100644 +index c1a24a87f..56f75ae22 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -111,6 +111,8 @@ function(add_py_dll_link_test) @@ -34,12 +34,7 @@ index 0527a6295..2988e2606 100644 PUBLIC_CLASSES anyUniquePtr -@@ -269,12 +273,10 @@ pxr_library(tf - - PRIVATE_HEADERS - scopeDescriptionPrivate.h -- pxrLZ4/lz4.h - pyWeakObject.h +@@ -286,7 +290,6 @@ pxr_library(tf CPPFILES initConfig.cpp From 26576ba7835be69141c158473da1b95e86881eb8 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Fri, 30 Aug 2024 09:32:41 -0400 Subject: [PATCH 22/85] Unbundle pugixml --- ...use-the-system-double-conversion-lib.patch | 2 +- ...ream-only-use-the-system-lz4-library.patch | 2 +- ...-only-use-the-system-pugixml-library.patch | 67 +++++++++++++++++++ usd.spec | 26 +++++-- 4 files changed, 88 insertions(+), 9 deletions(-) create mode 100644 0003-Downstream-only-use-the-system-pugixml-library.patch 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 9250f90..4b09220 100644 --- a/0001-Downstream-only-use-the-system-double-conversion-lib.patch +++ b/0001-Downstream-only-use-the-system-double-conversion-lib.patch @@ -1,7 +1,7 @@ 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/2] Downstream-only: use the system double-conversion library +Subject: [PATCH 1/3] Downstream-only: use the system double-conversion library --- pxr/base/tf/CMakeLists.txt | 11 +++-------- diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index afa4413..bbd1b71 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,7 +1,7 @@ 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/2] Downstream-only: use the system lz4 library +Subject: [PATCH 2/3] Downstream-only: use the system lz4 library --- pxr/base/tf/CMakeLists.txt | 5 ++++- diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch new file mode 100644 index 0000000..8961855 --- /dev/null +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -0,0 +1,67 @@ +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/3] Downstream-only: use the system pugixml library + +--- + .../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-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) + ++find_library(pugixml_LIBRARY NAMES pugixml REQUIRED) ++ + pxr_plugin(rmanArgsParser + LIBRARIES + arch +@@ -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} + + PRIVATE_CLASSES + rmanArgsParser +- +- CPPFILES +- pugixml/pugixml.cpp + + PRIVATE_HEADERS + api.h +-- +2.46.0 + diff --git a/usd.spec b/usd.spec index 8624916..866a8e9 100644 --- a/usd.spec +++ b/usd.spec @@ -56,8 +56,8 @@ Summary: 3D VFX pipeline interchange file format # - pxr/imaging/garch/khrplatform.h # - pxr/imaging/hgiVulkan/vk_mem_alloc.h # - pxr/imaging/hio/EpenEXR/deflate/ -# - third_party/renderman-25/plugin/rmanArgsParser/pugixml/ -# - third_party/renderman-26/plugin/rmanArgsParser/pugixml/ +# - 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: @@ -142,6 +142,8 @@ Patch: %{forgeurl}/pull/2266.patch Patch: 0001-Downstream-only-use-the-system-double-conversion-lib.patch # Downstream-only: use the system lz4 library Patch: 0002-Downstream-only-use-the-system-lz4-library.patch +# Downstream-only: use the system pugixml library +Patch: 0003-Downstream-only-use-the-system-pugixml-library.patch # Base BuildRequires: gcc-c++ @@ -164,6 +166,7 @@ BuildRequires: pkgconfig(tbb) BuildRequires: cmake(double-conversion) BuildRequires: pkgconfig(liblz4) BuildRequires: cli11-devel cli11-static +BuildRequires: cmake(pugixml) BuildRequires: cmake(Imath) >= 3.0 @@ -260,11 +263,6 @@ Summary: Universal Scene Description library # surrounding code is patched (upstream or downstream) for compatibility with # ilmbase version 3, something we’re currently not willing to attempt. Provides: bundled(ilmbase) = 2.5.3 -# Version from: -# 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 @@ -305,6 +303,11 @@ Provides: bundled(PEGTL) = 3.2.7 # Provides: bundled(lz4) = 1.9.2 # Version from: pxr/base/tf/pxrCLI11/README.md # Provides: bundled(cli11) = 2.3.1 +# Version from: +# 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 %description libs Universal Scene Description (USD) is an efficient, scalable system for @@ -412,6 +415,15 @@ cat > pxr/base/tf/pxrCLI11/CLI11.h <<'EOF' #include namespace pxr_CLI = CLI; EOF +# Remove the bundled copy of pugixml. +find third_party/renderman-*/plugin/rmanArgsParser/pugixml/ \ + -type f ! -name '*.hpp' -print -delete +for hdr in third_party/renderman-*/plugin/rmanArgsParser/pugixml/*.hpp +do + cat > "${hdr}" < +EOF +done # Use c++17 standard otherwise build fails sed -i 's|set(CMAKE_CXX_STANDARD 14)|set(CMAKE_CXX_STANDARD 17)|g' \ From 6e44f92c07081a7d9d61e67d8874e4bf050f17cb Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sat, 31 Aug 2024 11:10:27 -0400 Subject: [PATCH 23/85] Unbundle rapidjson --- ...use-the-system-double-conversion-lib.patch | 2 +- ...ream-only-use-the-system-lz4-library.patch | 2 +- ...-only-use-the-system-pugixml-library.patch | 2 +- ...nly-use-the-system-rapidjson-library.patch | 60 +++++++++++++++++++ usd.spec | 17 ++++-- 5 files changed, 75 insertions(+), 8 deletions(-) create mode 100644 0004-Downstream-only-use-the-system-rapidjson-library.patch 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 4b09220..a6238e7 100644 --- a/0001-Downstream-only-use-the-system-double-conversion-lib.patch +++ b/0001-Downstream-only-use-the-system-double-conversion-lib.patch @@ -1,7 +1,7 @@ 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/3] Downstream-only: use the system double-conversion library +Subject: [PATCH 1/4] Downstream-only: use the system double-conversion library --- pxr/base/tf/CMakeLists.txt | 11 +++-------- diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index bbd1b71..956e21d 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,7 +1,7 @@ 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/3] Downstream-only: use the system lz4 library +Subject: [PATCH 2/4] Downstream-only: use the system lz4 library --- pxr/base/tf/CMakeLists.txt | 5 ++++- diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch index 8961855..e401ed1 100644 --- a/0003-Downstream-only-use-the-system-pugixml-library.patch +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -1,7 +1,7 @@ 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/3] Downstream-only: use the system pugixml library +Subject: [PATCH 3/4] Downstream-only: use the system pugixml library --- .../renderman-25/plugin/rmanArgsParser/CMakeLists.txt | 6 +++--- diff --git a/0004-Downstream-only-use-the-system-rapidjson-library.patch b/0004-Downstream-only-use-the-system-rapidjson-library.patch new file mode 100644 index 0000000..d72a6de --- /dev/null +++ b/0004-Downstream-only-use-the-system-rapidjson-library.patch @@ -0,0 +1,60 @@ +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/4] Downstream-only: use the system rapidjson library + +--- + 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 f5ac5fb99..102e41151 100644 +--- a/pxr/base/js/CMakeLists.txt ++++ b/pxr/base/js/CMakeLists.txt +@@ -18,43 +18,6 @@ pxr_library(js + converter.h + types.h + +- PRIVATE_HEADERS +- rapidjson/allocators.h +- rapidjson/document.h +- rapidjson/encodedstream.h +- rapidjson/encodings.h +- rapidjson/error/en.h +- rapidjson/error/error.h +- rapidjson/filereadstream.h +- rapidjson/filewritestream.h +- rapidjson/fwd.h +- rapidjson/internal/biginteger.h +- rapidjson/internal/diyfp.h +- rapidjson/internal/dtoa.h +- rapidjson/internal/ieee754.h +- rapidjson/internal/itoa.h +- rapidjson/internal/meta.h +- rapidjson/internal/pow10.h +- rapidjson/internal/regex.h +- rapidjson/internal/stack.h +- rapidjson/internal/strfunc.h +- rapidjson/internal/strtod.h +- rapidjson/internal/swap.h +- rapidjson/istreamwrapper.h +- rapidjson/memorybuffer.h +- rapidjson/memorystream.h +- rapidjson/msinttypes/inttypes.h +- rapidjson/msinttypes/stdint.h +- rapidjson/ostreamwrapper.h +- rapidjson/pointer.h +- rapidjson/prettywriter.h +- rapidjson/rapidjson.h +- rapidjson/reader.h +- rapidjson/schema.h +- rapidjson/stream.h +- rapidjson/stringbuffer.h +- rapidjson/writer.h +- + DOXYGEN_FILES + overview.dox + ) +-- +2.46.0 + diff --git a/usd.spec b/usd.spec index 866a8e9..f0a8e3f 100644 --- a/usd.spec +++ b/usd.spec @@ -37,7 +37,7 @@ Summary: 3D VFX pipeline interchange file format # - pxr/imaging/hgiVulkan/spirv_reflect.{cpp,h} # BSD-3-Clause: # - pxr/base/gf/ilmbase_* -# - pxr/base/js/rapidjson/msinttypes/ +# - pxr/base/js/rapidjson/msinttypes/ (removed in %%prep) # - pxr/base/tf/pxrCLI11/ (removed in %%prep) # - pxr/base/tf/pxrDoubleConversion/ (removed in %%prep) # - pxr/imaging/hio/OpenEXR/OpenEXRCore/ @@ -50,7 +50,8 @@ Summary: 3D VFX pipeline interchange file format # - pxr/imaging/plugin/hioAvif/aom/ # MIT: # - docs/doxygen/doxygen-awesome-css/ (removed in %%prep) -# - pxr/base/js/rapidjson/, except pxr/base/js/rapidjson/msinttypes/ +# - pxr/base/js/rapidjson/, except pxr/base/js/rapidjson/msinttypes/ (both +# removed in %%prep) # - pxr/base/pegtl/ # - pxr/base/tf/pxrTslRobinMap/ # - pxr/imaging/garch/khrplatform.h @@ -144,6 +145,8 @@ Patch: 0001-Downstream-only-use-the-system-double-conversion-lib.patch Patch: 0002-Downstream-only-use-the-system-lz4-library.patch # Downstream-only: use the system pugixml library Patch: 0003-Downstream-only-use-the-system-pugixml-library.patch +# Downstream-only: use the system rapidjson library +Patch: 0004-Downstream-only-use-the-system-rapidjson-library.patch # Base BuildRequires: gcc-c++ @@ -167,6 +170,7 @@ BuildRequires: cmake(double-conversion) BuildRequires: pkgconfig(liblz4) BuildRequires: cli11-devel cli11-static BuildRequires: cmake(pugixml) +BuildRequires: rapidjson-devel rapidjson-static BuildRequires: cmake(Imath) >= 3.0 @@ -263,9 +267,6 @@ Summary: Universal Scene Description library # surrounding code is patched (upstream or downstream) for compatibility with # ilmbase version 3, something we’re currently not willing to attempt. Provides: bundled(ilmbase) = 2.5.3 -# Version from: pxr/base/js/rapidjson/rapidjson.h -# (RAPIDJSON_{MAJOR,MINOR,PATCH}_VERSION) -Provides: bundled(rapidjson) = 1.1.0 # Forked from an unknown version: pxr/base/tf/pxrTslRobinMap/ Provides: bundled(robin-map) # Version from: pxr/base/pegtl/pegtl/version.hpp @@ -308,6 +309,9 @@ Provides: bundled(PEGTL) = 3.2.7 # 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 %description libs Universal Scene Description (USD) is an efficient, scalable system for @@ -424,6 +428,9 @@ do #include <$(basename "${hdr}")> EOF done +# Remove the bundled copy of rapidjson. It does not seem to have been modified +# or forked at all. +rm -rv pxr/base/js/rapidjson/ # Use c++17 standard otherwise build fails sed -i 's|set(CMAKE_CXX_STANDARD 14)|set(CMAKE_CXX_STANDARD 17)|g' \ From add7b33a3e4d1fb4d17d98669d55acea8659178f Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 1 Sep 2024 17:21:27 -0400 Subject: [PATCH 24/85] Unbundle robin-map --- usd.spec | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/usd.spec b/usd.spec index f0a8e3f..cb72cdf 100644 --- a/usd.spec +++ b/usd.spec @@ -171,6 +171,7 @@ BuildRequires: pkgconfig(liblz4) BuildRequires: cli11-devel cli11-static BuildRequires: cmake(pugixml) BuildRequires: rapidjson-devel rapidjson-static +BuildRequires: robin-map-devel robin-map-static BuildRequires: cmake(Imath) >= 3.0 @@ -267,8 +268,6 @@ Summary: Universal Scene Description library # surrounding code is patched (upstream or downstream) for compatibility with # ilmbase version 3, something we’re currently not willing to attempt. Provides: bundled(ilmbase) = 2.5.3 -# Forked from an unknown version: pxr/base/tf/pxrTslRobinMap/ -Provides: bundled(robin-map) # Version from: pxr/base/pegtl/pegtl/version.hpp Provides: bundled(PEGTL) = 3.2.7 # Version from pxr/imaging/hio/OpenEXR/OpenEXRCore/openexr_version.h @@ -312,6 +311,8 @@ Provides: bundled(PEGTL) = 3.2.7 # Version from: pxr/base/js/rapidjson/rapidjson.h # (RAPIDJSON_{MAJOR,MINOR,PATCH}_VERSION) # Provides: bundled(rapidjson) = 1.1.0 +# Forked from an unknown version: pxr/base/tf/pxrTslRobinMap/ +# Provides: bundled(robin-map) %description libs Universal Scene Description (USD) is an efficient, scalable system for @@ -431,6 +432,19 @@ done # Remove the bundled copy of rapidjson. It does not seem to have been modified # or forked at all. rm -rv pxr/base/js/rapidjson/ +# Remove the bundled copy of robin-map. There are several macros that are +# renamed from TSL_*/tsl_* to PXR_TSL_*/pxr_tsl_* in the bundled copy, and we +# could “alias” these if necessary to avoid patching call sites, but for now +# are not used outside the library headers and we can get by with merely +# aliasing the namespace. +find pxr/base/tf/pxrTslRobinMap -type f ! -name '*.h' -print -delete +for hdr in pxr/base/tf/pxrTslRobinMap/*.h +do + cat > "${hdr}" < +namespace pxr_tsl = tsl; +EOF +done # Use c++17 standard otherwise build fails sed -i 's|set(CMAKE_CXX_STANDARD 14)|set(CMAKE_CXX_STANDARD 17)|g' \ From dd5ef7aabd2e6829672af462216812b23cb3ea95 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 1 Sep 2024 18:45:36 -0400 Subject: [PATCH 25/85] Improve notes about bundled PEGTL [skip changelog] --- usd.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usd.spec b/usd.spec index cb72cdf..e7e647d 100644 --- a/usd.spec +++ b/usd.spec @@ -269,6 +269,8 @@ Summary: Universal Scene Description library # ilmbase version 3, something we’re currently not willing to attempt. Provides: bundled(ilmbase) = 2.5.3 # Version from: pxr/base/pegtl/pegtl/version.hpp +# 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/hio/OpenEXR/OpenEXRCore/openexr_version.h Provides: bundled(openexr) = 3.2.0 @@ -290,8 +292,6 @@ Provides: bundled(libavif) = 1.0.1 Provides: bundled(libyuv) = 0^20240812gita977463 # Version from pxr/imaging/plugin/hioAvif/aom/config/aom_version.h Provides: bundled(aom) = 3.0.0 -# Version from pxr/base/pegtl/pegtl/version.hpp -Provides: bundled(PEGTL) = 3.2.7 # 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 From 14fbe0314c2505d85c21efd0030523876603bfbe Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 1 Sep 2024 19:50:22 -0400 Subject: [PATCH 26/85] Add a note about not unbundling OpenEXR for now [skip changelog] --- usd.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/usd.spec b/usd.spec index e7e647d..87c7dda 100644 --- a/usd.spec +++ b/usd.spec @@ -273,6 +273,13 @@ Provides: bundled(ilmbase) = 2.5.3 # https://bugzilla.redhat.com/show_bug.cgi?id=1902427 Provides: bundled(PEGTL) = 3.2.7 # 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 +# openexr_conf.h header. The remaining differences are removing an extern +# 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 pxr/imaging/hio/OpenEXR/deflate/libdeflate.h Provides: bundled(libdeflate) = 1.18 From 3212a880698f2cd6670badd5e23359a0879ae5bc Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 2 Sep 2024 11:51:50 -0400 Subject: [PATCH 27/85] Unbundle libdeflate --- ...use-the-system-double-conversion-lib.patch | 2 +- ...ream-only-use-the-system-lz4-library.patch | 2 +- ...-only-use-the-system-pugixml-library.patch | 2 +- ...nly-use-the-system-rapidjson-library.patch | 2 +- ...tream-only-use-the-system-libdeflate.patch | 77 +++++++++++++++++++ usd.spec | 11 ++- 6 files changed, 89 insertions(+), 7 deletions(-) create mode 100644 0005-Downstream-only-use-the-system-libdeflate.patch 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 a6238e7..649a158 100644 --- a/0001-Downstream-only-use-the-system-double-conversion-lib.patch +++ b/0001-Downstream-only-use-the-system-double-conversion-lib.patch @@ -1,7 +1,7 @@ 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/4] Downstream-only: use the system double-conversion library +Subject: [PATCH 1/5] Downstream-only: use the system double-conversion library --- pxr/base/tf/CMakeLists.txt | 11 +++-------- diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index 956e21d..7b1ecb7 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,7 +1,7 @@ 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/4] Downstream-only: use the system lz4 library +Subject: [PATCH 2/5] Downstream-only: use the system lz4 library --- pxr/base/tf/CMakeLists.txt | 5 ++++- diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch index e401ed1..c88e702 100644 --- a/0003-Downstream-only-use-the-system-pugixml-library.patch +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -1,7 +1,7 @@ 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/4] Downstream-only: use the system pugixml library +Subject: [PATCH 3/5] Downstream-only: use the system pugixml library --- .../renderman-25/plugin/rmanArgsParser/CMakeLists.txt | 6 +++--- diff --git a/0004-Downstream-only-use-the-system-rapidjson-library.patch b/0004-Downstream-only-use-the-system-rapidjson-library.patch index d72a6de..30d1e95 100644 --- a/0004-Downstream-only-use-the-system-rapidjson-library.patch +++ b/0004-Downstream-only-use-the-system-rapidjson-library.patch @@ -1,7 +1,7 @@ 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/4] Downstream-only: use the system rapidjson library +Subject: [PATCH 4/5] Downstream-only: use the system rapidjson library --- pxr/base/js/CMakeLists.txt | 37 ------------------------------------- diff --git a/0005-Downstream-only-use-the-system-libdeflate.patch b/0005-Downstream-only-use-the-system-libdeflate.patch new file mode 100644 index 0000000..9f99cb9 --- /dev/null +++ b/0005-Downstream-only-use-the-system-libdeflate.patch @@ -0,0 +1,77 @@ +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/5] Downstream-only: use the system libdeflate + +--- + 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 92d1e4fe9..9f30c1209 100644 +--- a/pxr/imaging/hio/CMakeLists.txt ++++ b/pxr/imaging/hio/CMakeLists.txt +@@ -1,6 +1,9 @@ + set(PXR_PREFIX pxr/imaging) + set(PXR_PACKAGE hio) + ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(DEFLATE REQUIRED libdeflate) ++ + pxr_library(hio + LIBRARIES + arch +@@ -11,9 +14,11 @@ pxr_library(hio + trace + ar + hf ++ ${DEFLATE_LIBRARIES} + + INCLUDE_DIRS + ${Boost_INCLUDE_DIRS} ++ ${DEFLATE_INCLUDE_DIRS} + + PUBLIC_CLASSES + fieldTextureData +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/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" + +-// pxr #include +-#include "../deflate/libdeflate.h" ++#include + + #if ( \ + LIBDEFLATE_VERSION_MAJOR > 1 || \ +diff --git a/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h b/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h +index 7481a346e..71bdde9cc 100644 +--- a/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h ++++ b/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h +@@ -8,18 +8,6 @@ + + #include "OpenEXRCore/openexr_config.h" + +-#include "deflate/lib/lib_common.h" +-#include "deflate/common_defs.h" +-#include "deflate/lib/utils.c" +-#include "deflate/lib/arm/cpu_features.c" +-#include "deflate/lib/x86/cpu_features.c" +-#include "deflate/lib/deflate_compress.c" +-#undef BITBUF_NBITS +-#include "deflate/lib/deflate_decompress.c" +-#include "deflate/lib/adler32.c" +-#include "deflate/lib/zlib_compress.c" +-#include "deflate/lib/zlib_decompress.c" +- + #include "openexr-c.h" + + #include "OpenEXRCore/attributes.c" +-- +2.46.0 + diff --git a/usd.spec b/usd.spec index 87c7dda..1c2628a 100644 --- a/usd.spec +++ b/usd.spec @@ -56,7 +56,7 @@ 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/hio/EpenEXR/deflate/ +# - 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: @@ -147,6 +147,8 @@ Patch: 0002-Downstream-only-use-the-system-lz4-library.patch Patch: 0003-Downstream-only-use-the-system-pugixml-library.patch # Downstream-only: use the system rapidjson library Patch: 0004-Downstream-only-use-the-system-rapidjson-library.patch +# Downstream-only: use the system libdeflate library +Patch: 0005-Downstream-only-use-the-system-libdeflate.patch # Base BuildRequires: gcc-c++ @@ -172,6 +174,7 @@ BuildRequires: cli11-devel cli11-static BuildRequires: cmake(pugixml) BuildRequires: rapidjson-devel rapidjson-static BuildRequires: robin-map-devel robin-map-static +BuildRequires: pkgconfig(libdeflate) BuildRequires: cmake(Imath) >= 3.0 @@ -281,8 +284,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 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 # AVIF_VERSION_DEVEL is nonzero, but it’s not easy to determine which commit @@ -320,6 +321,8 @@ Provides: bundled(aom) = 3.0.0 # Provides: bundled(rapidjson) = 1.1.0 # 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 %description libs Universal Scene Description (USD) is an efficient, scalable system for @@ -452,6 +455,8 @@ do namespace pxr_tsl = tsl; EOF done +# Remove the bundled copy of libdeflate. +rm -rv pxr/imaging/hio/OpenEXR/deflate/ # Use c++17 standard otherwise build fails sed -i 's|set(CMAKE_CXX_STANDARD 14)|set(CMAKE_CXX_STANDARD 17)|g' \ From 472f446e6223824080414eea0f32dd85eb7f596c Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 4 Sep 2024 11:26:33 -0400 Subject: [PATCH 28/85] Unbundle libavif/aom/libyuv --- ...use-the-system-double-conversion-lib.patch | 2 +- ...ream-only-use-the-system-lz4-library.patch | 2 +- ...-only-use-the-system-pugixml-library.patch | 2 +- ...nly-use-the-system-rapidjson-library.patch | 2 +- ...tream-only-use-the-system-libdeflate.patch | 2 +- ...wnstream-only-use-the-system-libavif.patch | 241 ++++++++++++++++++ usd.spec | 40 +-- 7 files changed, 270 insertions(+), 21 deletions(-) create mode 100644 0006-Downstream-only-use-the-system-libavif.patch 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 649a158..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,7 +1,7 @@ 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/5] Downstream-only: use the system double-conversion library +Subject: [PATCH 1/6] Downstream-only: use the system double-conversion library --- pxr/base/tf/CMakeLists.txt | 11 +++-------- diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index 7b1ecb7..aae45cc 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,7 +1,7 @@ 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/5] Downstream-only: use the system lz4 library +Subject: [PATCH 2/6] Downstream-only: use the system lz4 library --- pxr/base/tf/CMakeLists.txt | 5 ++++- diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch index c88e702..416bb52 100644 --- a/0003-Downstream-only-use-the-system-pugixml-library.patch +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -1,7 +1,7 @@ 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/5] Downstream-only: use the system pugixml library +Subject: [PATCH 3/6] Downstream-only: use the system pugixml library --- .../renderman-25/plugin/rmanArgsParser/CMakeLists.txt | 6 +++--- diff --git a/0004-Downstream-only-use-the-system-rapidjson-library.patch b/0004-Downstream-only-use-the-system-rapidjson-library.patch index 30d1e95..e58c8b6 100644 --- a/0004-Downstream-only-use-the-system-rapidjson-library.patch +++ b/0004-Downstream-only-use-the-system-rapidjson-library.patch @@ -1,7 +1,7 @@ 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/5] Downstream-only: use the system rapidjson library +Subject: [PATCH 4/6] Downstream-only: use the system rapidjson library --- pxr/base/js/CMakeLists.txt | 37 ------------------------------------- diff --git a/0005-Downstream-only-use-the-system-libdeflate.patch b/0005-Downstream-only-use-the-system-libdeflate.patch index 9f99cb9..7bcd8ee 100644 --- a/0005-Downstream-only-use-the-system-libdeflate.patch +++ b/0005-Downstream-only-use-the-system-libdeflate.patch @@ -1,7 +1,7 @@ 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/5] Downstream-only: use the system libdeflate +Subject: [PATCH 5/6] Downstream-only: use the system libdeflate --- pxr/imaging/hio/CMakeLists.txt | 5 +++++ diff --git a/0006-Downstream-only-use-the-system-libavif.patch b/0006-Downstream-only-use-the-system-libavif.patch new file mode 100644 index 0000000..84b62a4 --- /dev/null +++ b/0006-Downstream-only-use-the-system-libavif.patch @@ -0,0 +1,241 @@ +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 | 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 6f625e085..eeb52a281 100644 +--- a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp ++++ b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp +@@ -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 + + + #include "pxr/base/arch/export.h" +diff --git a/pxr/imaging/plugin/hioAvif/CMakeLists.txt b/pxr/imaging/plugin/hioAvif/CMakeLists.txt +index 29ffe0fdf..7f1680eaf 100644 +--- a/pxr/imaging/plugin/hioAvif/CMakeLists.txt ++++ b/pxr/imaging/plugin/hioAvif/CMakeLists.txt +@@ -1,6 +1,9 @@ + set(PXR_PREFIX pxr/imaging) + set(PXR_PACKAGE hioAvif) + ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(AVIF REQUIRED libavif) ++ + pxr_plugin(hioAvif + LIBRARIES + ar +@@ -8,196 +11,12 @@ pxr_plugin(hioAvif + gf + hio + tf ++ ${AVIF_LIBRARIES} ++ ++ INCLUDE_DIRS ++ ${AVIF_INCLUDE_DIRS} + +- PRIVATE_HEADERS +- aom/aom.h +- aom/aom_codec.h +- aom/aom_decoder.h +- aom/aom_encoder.h +- aom/aom_frame_buffer.h +- aom/aom_image.h +- aom/aom_integer.h +- aom/aomdx.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/internal/common/args_helper.h +- AVIF/src/avif/avif.h +- AVIF/src/avif/internal.h +- AVIF/src/src-libyuv/libyuv/basic_types.h +- AVIF/src/src-libyuv/libyuv.h +- AVIF/src/src-libyuv/libyuv/planar_functions.h +- AVIF/src/src-libyuv/libyuv/row.h +- AVIF/src/src-libyuv/libyuv/scale.h +- AVIF/src/src-libyuv/libyuv/scale_row.h +- AVIF/src/src-libyuv/libyuv/version.h +- + CPPFILES +- 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 +- AVIF/src/colr.c +- AVIF/src/diag.c +- AVIF/src/exif.c +- AVIF/src/io.c +- AVIF/src/mem.c +- AVIF/src/avif_obu.c +- AVIF/src/rawdata.c +- AVIF/src/read.c +- AVIF/src/reformat.c +- AVIF/src/reformat_libsharpyuv.c +- AVIF/src/reformat_libyuv.c +- AVIF/src/avif-scale.c +- AVIF/src/stream.c +- AVIF/src/utils.c +- AVIF/src/write.c +- AVIF/src/src-libyuv/planar_functions.c +- AVIF/src/src-libyuv/row_common.c +- AVIF/src/src-libyuv/yuv_scale.c +- AVIF/src/src-libyuv/scale_any.c +- AVIF/src/src-libyuv/scale_common.c + AVIFImage.cpp + + RESOURCE_FILES +-- +2.46.0 + diff --git a/usd.spec b/usd.spec index 1c2628a..c98000a 100644 --- a/usd.spec +++ b/usd.spec @@ -149,6 +149,8 @@ Patch: 0003-Downstream-only-use-the-system-pugixml-library.patch Patch: 0004-Downstream-only-use-the-system-rapidjson-library.patch # Downstream-only: use the system libdeflate library 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 # Base BuildRequires: gcc-c++ @@ -175,6 +177,8 @@ BuildRequires: cmake(pugixml) BuildRequires: rapidjson-devel rapidjson-static BuildRequires: robin-map-devel robin-map-static BuildRequires: pkgconfig(libdeflate) +# Unbundling this means we also use external versions of libaom and libyuv. +BuildRequires: pkgconfig(libavif) BuildRequires: cmake(Imath) >= 3.0 @@ -284,22 +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 pxr/imaging/plugin/hioAvif/AVIF/src/avif/avif.h -# We actually have a post-release snapshot of libavif, because -# AVIF_VERSION_DEVEL is nonzero, but it’s not easy to determine which commit -# hash it was copied from. -Provides: bundled(libavif) = 1.0.1 -# Version from pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/libyuv/version.h -# LIBYUV_VERSION is a “serial number” version, e.g. 1895, that gets incremented -# every time changes are dumped into git from an internal VCS; the libyuv -# package in Fedora is considered to have version 0 and uses snapshot -# versioning. We can dig through -# 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^20240812gita977463 -# Version from pxr/imaging/plugin/hioAvif/aom/config/aom_version.h -Provides: bundled(aom) = 3.0.0 # 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 @@ -323,6 +311,22 @@ Provides: bundled(aom) = 3.0.0 # 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 +# AVIF_VERSION_DEVEL is nonzero, but it’s not easy to determine which commit +# hash it was copied from. +# Provides: bundled(libavif) = 1.0.1 +# Version from pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/libyuv/version.h +# LIBYUV_VERSION is a “serial number” version, e.g. 1895, that gets incremented +# every time changes are dumped into git from an internal VCS; the libyuv +# package in Fedora is considered to have version 0 and uses snapshot +# versioning. We can dig through +# 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^20240812gita977463 +# Version from pxr/imaging/plugin/hioAvif/aom/config/aom_version.h +# Provides: bundled(aom) = 3.0.0 %description libs Universal Scene Description (USD) is an efficient, scalable system for @@ -457,6 +461,10 @@ EOF done # Remove the bundled copy of libdeflate. 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/ \ + pxr/imaging/plugin/hioAvif/AVIF/ # Use c++17 standard otherwise build fails sed -i 's|set(CMAKE_CXX_STANDARD 14)|set(CMAKE_CXX_STANDARD 17)|g' \ From fc01dde67d62d0b36743deff12b87f3b55a369fa Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 4 Sep 2024 15:44:28 -0400 Subject: [PATCH 29/85] Add dependencies from -devel on unbundled libraries that are exposed in the API --- usd.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/usd.spec b/usd.spec index c98000a..b9bbeef 100644 --- a/usd.spec +++ b/usd.spec @@ -337,6 +337,10 @@ interchange between graphics applications. Summary: Development files for USD Requires: usd-libs%{?_isa} = %{version}-%{release} +# Unbundled, and exposed in the API: +Requires: cli11-devel cli11-static +Requires: robin-map-devel robin-map-static + %description devel This package contains the C++ header files and symbolic links to the shared libraries for usd. If you would like to develop programs using usd, From d4c6d9b92f926fc7573f76f0555a7ba39efcb7de Mon Sep 17 00:00:00 2001 From: Richard Shaw Date: Wed, 9 Oct 2024 17:44:25 -0500 Subject: [PATCH 30/85] Rebuild for OpenColorIO 2.4.0. From a21c0aeb47fa6c26bd6d5a955ce5e9577c505f12 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Fri, 25 Oct 2024 17:32:32 -0600 Subject: [PATCH 31/85] Rebuild for hdf5 1.14.5 From 5f8486734cba31bc405e1842bb2a291a27b561ff Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 13 Nov 2024 06:30:21 -0500 Subject: [PATCH 32/85] Update to 24.11 (close RHBZ#2321975) --- .gitignore | 1 + ...ownstream-only-add-an-SONAME-version.patch | 16 ++++---- ...use-the-system-double-conversion-lib.patch | 16 ++++---- ...ream-only-use-the-system-lz4-library.patch | 14 +++---- ...-only-use-the-system-pugixml-library.patch | 34 ++-------------- ...nly-use-the-system-rapidjson-library.patch | 8 ++-- ...tream-only-use-the-system-libdeflate.patch | 17 ++++---- ...wnstream-only-use-the-system-libavif.patch | 6 +-- 2266.patch | 20 +++++----- sources | 2 +- usd.spec | 39 +++++++++++++++---- 11 files changed, 82 insertions(+), 91 deletions(-) diff --git a/.gitignore b/.gitignore index 2426ed6..4095fbd 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ /OpenUSD-24.03.tar.gz /OpenUSD-24.05.tar.gz /OpenUSD-24.08.tar.gz +/OpenUSD-24.11.tar.gz diff --git a/0001-Downstream-only-add-an-SONAME-version.patch b/0001-Downstream-only-add-an-SONAME-version.patch index dbf0967..47edf9d 100644 --- a/0001-Downstream-only-add-an-SONAME-version.patch +++ b/0001-Downstream-only-add-an-SONAME-version.patch @@ -1,4 +1,4 @@ -From 83c22378ffadc7f52081d98a432c65bbd2d79f9c Mon Sep 17 00:00:00 2001 +From c9e84b3336cd20276f537c7b0dc31146e5cb5f78 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 @@ -37,11 +37,11 @@ built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) 3 files changed, 8 insertions(+) diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake -index 427608ca8..4eca9b076 100644 +index e9657e399..8ca178ed4 100644 --- a/cmake/defaults/Version.cmake +++ b/cmake/defaults/Version.cmake @@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "24") - set(PXR_PATCH_VERSION "8") # NOTE: Must not have leading 0 for single digits + set(PXR_PATCH_VERSION "11") # 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,10 +51,10 @@ index 427608ca8..4eca9b076 100644 + "Downstream shared object version" +) diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake -index 48fe107dd..23ecc44ea 100644 +index 311524da0..b056486da 100644 --- a/cmake/macros/Private.cmake +++ b/cmake/macros/Private.cmake -@@ -1342,6 +1342,7 @@ function(_pxr_library NAME) +@@ -1370,6 +1370,7 @@ function(_pxr_library NAME) IMPORT_PREFIX "${args_PREFIX}" PREFIX "${args_PREFIX}" SUFFIX "${args_SUFFIX}" @@ -63,10 +63,10 @@ index 48fe107dd..23ecc44ea 100644 target_compile_definitions(${NAME} diff --git a/cmake/macros/Public.cmake b/cmake/macros/Public.cmake -index 9f3d35837..478434cbd 100644 +index 1b809e738..7b557224d 100644 --- a/cmake/macros/Public.cmake +++ b/cmake/macros/Public.cmake -@@ -1004,6 +1004,7 @@ function(pxr_toplevel_prologue) +@@ -1074,6 +1074,7 @@ function(pxr_toplevel_prologue) FOLDER "${folder}" PREFIX "${libPrefix}" IMPORT_PREFIX "${libPrefix}" @@ -75,5 +75,5 @@ index 9f3d35837..478434cbd 100644 _get_install_dir("lib" libInstallPrefix) install( -- -2.46.0 +2.47.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 22ab01c..7d5f53d 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 0f786f889eeea75a1983d694bfa168c003009b35 Mon Sep 17 00:00:00 2001 +From c000fad5c7b103ac222c2afabc88c145dc42f10a 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 b236184c4..c1a24a87f 100644 +index 306419493..f4bfecb16 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt -@@ -110,6 +110,8 @@ function(add_py_dll_link_test) +@@ -110,11 +110,14 @@ function(add_py_dll_link_test) endfunction() @@ -20,15 +20,13 @@ index b236184c4..c1a24a87f 100644 pxr_library(tf LIBRARIES arch -@@ -117,6 +119,7 @@ pxr_library(tf - ${PYTHON_LIBRARIES} - ${Boost_PYTHON_LIBRARY} + ${WINLIBS} ${TBB_tbb_LIBRARY} + ${double-conversion_LIBRARY} INCLUDE_DIRS - ${PYTHON_INCLUDE_DIRS} -@@ -283,14 +286,6 @@ pxr_library(tf + ${TBB_INCLUDE_DIRS} +@@ -281,14 +284,6 @@ pxr_library(tf CPPFILES initConfig.cpp @@ -44,5 +42,5 @@ index b236184c4..c1a24a87f 100644 PYTHON_CPPFILES -- -2.46.0 +2.47.0 diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index aae45cc..c0af3d3 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,4 +1,4 @@ -From 9ace4ea6c8e3a17c9d047f8bd7c5ccd11fb4ffb8 Mon Sep 17 00:00:00 2001 +From 40d98ed4043a5d5426f39a513f1e628e81a79a82 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 @@ -8,7 +8,7 @@ Subject: [PATCH 2/6] Downstream-only: use the system lz4 library 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt -index c1a24a87f..56f75ae22 100644 +index f4bfecb16..eadd8ba3a 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -111,6 +111,8 @@ function(add_py_dll_link_test) @@ -20,21 +20,19 @@ index c1a24a87f..56f75ae22 100644 pxr_library(tf LIBRARIES -@@ -120,11 +122,13 @@ pxr_library(tf - ${Boost_PYTHON_LIBRARY} +@@ -118,9 +120,11 @@ pxr_library(tf + ${WINLIBS} ${TBB_tbb_LIBRARY} ${double-conversion_LIBRARY} + ${LZ4_LIBRARIES} INCLUDE_DIRS - ${PYTHON_INCLUDE_DIRS} - ${Boost_INCLUDE_DIRS} ${TBB_INCLUDE_DIRS} + ${LZ4_INCLUDE_DIRS} PUBLIC_CLASSES anyUniquePtr -@@ -286,7 +290,6 @@ pxr_library(tf +@@ -284,7 +288,6 @@ pxr_library(tf CPPFILES initConfig.cpp @@ -43,5 +41,5 @@ index c1a24a87f..56f75ae22 100644 PYTHON_CPPFILES moduleDeps.cpp -- -2.46.0 +2.47.0 diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch index 416bb52..aadc144 100644 --- a/0003-Downstream-only-use-the-system-pugixml-library.patch +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -1,40 +1,12 @@ -From 93d27e7deea9c2a5eadc6257cef90f5eaef13777 Mon Sep 17 00:00:00 2001 +From f2ad73cd2d582ad3929a5f2d70fd1a2b1cb937b4 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 --- - .../renderman-25/plugin/rmanArgsParser/CMakeLists.txt | 6 +++--- .../renderman-26/plugin/rmanArgsParser/CMakeLists.txt | 6 +++--- - 2 files changed, 6 insertions(+), 6 deletions(-) + 1 file changed, 3 insertions(+), 3 deletions(-) -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) - -+find_library(pugixml_LIBRARY NAMES pugixml REQUIRED) -+ - pxr_plugin(rmanArgsParser - LIBRARIES - arch -@@ -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 @@ -63,5 +35,5 @@ index fae498d58..a7587b240 100644 PRIVATE_HEADERS api.h -- -2.46.0 +2.47.0 diff --git a/0004-Downstream-only-use-the-system-rapidjson-library.patch b/0004-Downstream-only-use-the-system-rapidjson-library.patch index e58c8b6..e61a488 100644 --- a/0004-Downstream-only-use-the-system-rapidjson-library.patch +++ b/0004-Downstream-only-use-the-system-rapidjson-library.patch @@ -1,4 +1,4 @@ -From fa40048ee12fbe5a2cb8ba12ada1a354f1587d1a Mon Sep 17 00:00:00 2001 +From 12f95f861d103fb3aa8ea4e4734fb00ee8942da8 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 @@ -8,10 +8,10 @@ Subject: [PATCH 4/6] Downstream-only: use the system rapidjson library 1 file changed, 37 deletions(-) diff --git a/pxr/base/js/CMakeLists.txt b/pxr/base/js/CMakeLists.txt -index f5ac5fb99..102e41151 100644 +index d59dc1f6d..086d1bc48 100644 --- a/pxr/base/js/CMakeLists.txt +++ b/pxr/base/js/CMakeLists.txt -@@ -18,43 +18,6 @@ pxr_library(js +@@ -15,43 +15,6 @@ pxr_library(js converter.h types.h @@ -56,5 +56,5 @@ index f5ac5fb99..102e41151 100644 overview.dox ) -- -2.46.0 +2.47.0 diff --git a/0005-Downstream-only-use-the-system-libdeflate.patch b/0005-Downstream-only-use-the-system-libdeflate.patch index 7bcd8ee..a4331f2 100644 --- a/0005-Downstream-only-use-the-system-libdeflate.patch +++ b/0005-Downstream-only-use-the-system-libdeflate.patch @@ -1,16 +1,16 @@ -From 3953ba8f55501ec3c03f8553af156990f89834f3 Mon Sep 17 00:00:00 2001 +From c3405db00fe0a74bfbccb1cc6b7d2071a80659af 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 | 5 +++++ + pxr/imaging/hio/CMakeLists.txt | 7 +++++++ pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c | 3 +-- pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h | 12 ------------ - 3 files changed, 6 insertions(+), 14 deletions(-) + 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/pxr/imaging/hio/CMakeLists.txt b/pxr/imaging/hio/CMakeLists.txt -index 92d1e4fe9..9f30c1209 100644 +index 75e1e6298..09264c600 100644 --- a/pxr/imaging/hio/CMakeLists.txt +++ b/pxr/imaging/hio/CMakeLists.txt @@ -1,6 +1,9 @@ @@ -23,14 +23,13 @@ index 92d1e4fe9..9f30c1209 100644 pxr_library(hio LIBRARIES arch -@@ -11,9 +14,11 @@ pxr_library(hio +@@ -11,6 +14,10 @@ pxr_library(hio trace ar hf + ${DEFLATE_LIBRARIES} - - INCLUDE_DIRS - ${Boost_INCLUDE_DIRS} ++ ++ INCLUDE_DIRS + ${DEFLATE_INCLUDE_DIRS} PUBLIC_CLASSES @@ -73,5 +72,5 @@ index 7481a346e..71bdde9cc 100644 #include "OpenEXRCore/attributes.c" -- -2.46.0 +2.47.0 diff --git a/0006-Downstream-only-use-the-system-libavif.patch b/0006-Downstream-only-use-the-system-libavif.patch index 84b62a4..809572e 100644 --- a/0006-Downstream-only-use-the-system-libavif.patch +++ b/0006-Downstream-only-use-the-system-libavif.patch @@ -1,4 +1,4 @@ -From 73424900f3a874b82a3dfefb44ecdfa3a0d1836e Mon Sep 17 00:00:00 2001 +From 2c00aa60c1def4fba4a5498d776019ae75e3e561 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 @@ -9,7 +9,7 @@ Subject: [PATCH 6/6] Downstream-only: use the system libavif 2 files changed, 8 insertions(+), 189 deletions(-) diff --git a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp -index 6f625e085..eeb52a281 100644 +index b902a9806..e83af2acc 100644 --- a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp +++ b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp @@ -29,7 +29,7 @@ ARCH_PRAGMA_UNUSED_FUNCTION @@ -237,5 +237,5 @@ index 29ffe0fdf..7f1680eaf 100644 RESOURCE_FILES -- -2.46.0 +2.47.0 diff --git a/2266.patch b/2266.patch index ceb58f0..eb8ba37 100644 --- a/2266.patch +++ b/2266.patch @@ -1,4 +1,4 @@ -From c8fec1342e05dca98a1afd4ea93c7a5f0b41e25b Mon Sep 17 00:00:00 2001 +From a07a6b4d1da19bfc499db49641d74fb7c1a71e9b 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 @@ -89,7 +89,7 @@ index 195f83a633..d3cb949952 100644 args->valid[i] = 0; } diff --git a/pxr/imaging/plugin/hdEmbree/mesh.h b/pxr/imaging/plugin/hdEmbree/mesh.h -index 29b0d55029..79d166ac65 100644 +index bbb006302f..ef1ef07a98 100644 --- a/pxr/imaging/plugin/hdEmbree/mesh.h +++ b/pxr/imaging/plugin/hdEmbree/mesh.h @@ -15,8 +15,8 @@ @@ -119,13 +119,13 @@ index c32c35fffa..3712a9e3ab 100644 #include diff --git a/pxr/imaging/plugin/hdEmbree/pch.h b/pxr/imaging/plugin/hdEmbree/pch.h -index 200633939c..37ffc9be3d 100644 +index 0369fea3a1..2f9f19fa09 100644 --- a/pxr/imaging/plugin/hdEmbree/pch.h +++ b/pxr/imaging/plugin/hdEmbree/pch.h -@@ -83,9 +83,9 @@ +@@ -84,9 +84,9 @@ #undef toupper #endif - #endif // PXR_PYTHON_SUPPORT_ENABLED + #endif // PXR_PYTHON_SUPPORT_ENABLED && !PXR_USE_INTERNAL_BOOST_PYTHON -#include -#include -#include @@ -136,7 +136,7 @@ index 200633939c..37ffc9be3d 100644 #include #include diff --git a/pxr/imaging/plugin/hdEmbree/renderDelegate.h b/pxr/imaging/plugin/hdEmbree/renderDelegate.h -index d4f8f78d54..84af7d8fba 100644 +index 1d8694daa6..72894b9080 100644 --- a/pxr/imaging/plugin/hdEmbree/renderDelegate.h +++ b/pxr/imaging/plugin/hdEmbree/renderDelegate.h @@ -14,7 +14,7 @@ @@ -162,10 +162,10 @@ index 206a7458bc..354fed4faa 100644 PXR_NAMESPACE_OPEN_SCOPE diff --git a/pxr/imaging/plugin/hdEmbree/renderer.cpp b/pxr/imaging/plugin/hdEmbree/renderer.cpp -index 13956c7b25..cf90a952da 100644 +index 88d5e79093..820238c373 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, +@@ -667,9 +667,7 @@ HdEmbreeRenderer::_TraceRay(unsigned int x, unsigned int y, rayHit.ray.flags = 0; _PopulateRayHit(&rayHit, origin, dir, 0.0f); { @@ -176,7 +176,7 @@ index 13956c7b25..cf90a952da 100644 // // 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, +@@ -1005,9 +1003,7 @@ HdEmbreeRenderer::_ComputeAmbientOcclusion(GfVec3f const& position, shadow.flags = 0; _PopulateRay(&shadow, position, shadowDir, 0.001f); { @@ -188,7 +188,7 @@ index 13956c7b25..cf90a952da 100644 // 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 +index 2da9880848..fc3e062dd8 100644 --- a/pxr/imaging/plugin/hdEmbree/renderer.h +++ b/pxr/imaging/plugin/hdEmbree/renderer.h @@ -15,8 +15,8 @@ diff --git a/sources b/sources index b14561f..15bf14b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-24.08.tar.gz) = 7d4404980579c4de3c155386184ca9d2eb96756ef6e090611bae7b4c21ad942c649f73a39b74ad84d0151ce6b9236c4b6c0c555e8e36fdd86304079e1c2e5cbe +SHA512 (OpenUSD-24.11.tar.gz) = 77c9601f4a689248448049660ef0083fc99e2a4c2e7a260814831bdfee8e9844f64b5b2aed88a9f907fe4ebcf6a532bb7dce80bb11c1f54c31066b07aa96b851 diff --git a/usd.spec b/usd.spec index b9bbeef..1f980cf 100644 --- a/usd.spec +++ b/usd.spec @@ -2,7 +2,7 @@ # 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.24.8 +%global downstream_so_version 0.24.11 %bcond alembic 1 %bcond draco 1 @@ -27,7 +27,7 @@ %bcond test 0 Name: usd -Version: 24.08 +Version: 24.11 Release: %autorelease Summary: 3D VFX pipeline interchange file format @@ -48,6 +48,8 @@ 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 @@ -57,14 +59,12 @@ Summary: 3D VFX pipeline interchange file format # - pxr/imaging/garch/khrplatform.h # - pxr/imaging/hgiVulkan/vk_mem_alloc.h # - 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-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: @@ -88,6 +88,7 @@ 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) @@ -164,7 +165,6 @@ BuildRequires: dos2unix BuildRequires: help2man BuildRequires: pkgconfig(blosc) -BuildRequires: boost-devel BuildRequires: pkgconfig(dri) BuildRequires: hdf5-devel BuildRequires: opensubdiv-devel >= 3.6.0 @@ -288,6 +288,27 @@ 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 # 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 @@ -300,15 +321,15 @@ Provides: bundled(openexr) = 3.2.0 # Version from: pxr/base/tf/pxrCLI11/README.md # Provides: bundled(cli11) = 2.3.1 # Version from: -# 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 -# Forked from an unknown version: pxr/base/tf/pxrTslRobinMap/ -# Provides: bundled(robin-map) +# 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/hio/OpenEXR/deflate/libdeflate.h # Provides: bundled(libdeflate) = 1.18 # Version from pxr/imaging/plugin/hioAvif/AVIF/src/avif/avif.h @@ -621,6 +642,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %{_bindir}/usdedit %{_bindir}/usdfixbrokenpixarschemas %{_bindir}/usdgenschemafromsdr +%{_bindir}/usdmeasureperformance %{_bindir}/usdrecord %{_bindir}/usdresolve %{_bindir}/usdstitch @@ -647,6 +669,7 @@ 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* From efebd041f7a54f2050a90fe4685bc5059c6d3d02 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 5 Dec 2024 22:56:53 -0500 Subject: [PATCH 33/85] Patch for tbb 2022.0.0 compatibility --- 3392.patch | 33 +++++++++++++++++++++++++++++++++ usd.spec | 4 ++++ 2 files changed, 37 insertions(+) create mode 100644 3392.patch diff --git a/3392.patch b/3392.patch new file mode 100644 index 0000000..c43bb3a --- /dev/null +++ b/3392.patch @@ -0,0 +1,33 @@ +From 1c51700711915fe2a50079545c23f5320caa7fe3 Mon Sep 17 00:00:00 2001 +From: Matt Johnson +Date: Fri, 1 Nov 2024 15:57:59 -0400 +Subject: [PATCH] work: account for TBB task_group_base interface change in + 2022.0.0 + +The m_wait_ctx member being used in a narrow band of oneTBB versions +was removed in a refactor that went into the most recent release: +https://github.com/oneapi-src/oneTBB/commit/1f52f5093ec7ce23829fe64ab82ac5541fea42ee + +This change accounts for the update in the new version of oneTBB and +uses the newly added m_wait_vertex member to access the same context +as before. +--- + pxr/base/work/dispatcher.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/pxr/base/work/dispatcher.cpp b/pxr/base/work/dispatcher.cpp +index 8cc8dbbfcd..63482d87c1 100644 +--- a/pxr/base/work/dispatcher.cpp ++++ b/pxr/base/work/dispatcher.cpp +@@ -33,7 +33,11 @@ WorkDispatcher::WorkDispatcher() + #if TBB_INTERFACE_VERSION_MAJOR >= 12 + inline tbb::detail::d1::wait_context& + WorkDispatcher::_TaskGroup::_GetInternalWaitContext() { ++#if TBB_INTERFACE_VERSION_MINOR >= 14 ++ return m_wait_vertex.get_context(); ++#else + return m_wait_ctx; ++#endif + } + #endif + diff --git a/usd.spec b/usd.spec index 1f980cf..9d83f33 100644 --- a/usd.spec +++ b/usd.spec @@ -153,6 +153,10 @@ 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 +# work: account for task_group_base interface change in oneTBB 2022.0.0 +# https://github.com/PixarAnimationStudios/OpenUSD/pull/3392 +Patch: %{forgeurl}/pull/3392.patch + # Base BuildRequires: gcc-c++ From 9c39c06ad15bba900daa106808717ebe7e140ccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Cabello?= Date: Sun, 8 Dec 2024 19:52:02 +0000 Subject: [PATCH 34/85] Correct dekstop file comment Change org.openusd.usdview.desktop comment since usdview does not open cbr/cbz files. --- org.openusd.usdview.desktop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/org.openusd.usdview.desktop b/org.openusd.usdview.desktop index 71aa0d2..4be9905 100644 --- a/org.openusd.usdview.desktop +++ b/org.openusd.usdview.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Name=USD view GenericName=Universal Scene Description Viewer -Comment=Open .cbr & .cbz files +Comment=Visualize USD files Exec=usdview Icon=applications-graphics Terminal=false From 87db7029f784a174803a11844218b8ed51ebe39b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Cabello?= Date: Sun, 29 Dec 2024 15:09:41 +0000 Subject: [PATCH 35/85] Add temporary hack to find OpenGL See: https://github.com/PixarAnimationStudios/OpenUSD/issues/3310 --- usd.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/usd.spec b/usd.spec index 9d83f33..0d4d85f 100644 --- a/usd.spec +++ b/usd.spec @@ -604,6 +604,11 @@ desktop-file-install \ %{SOURCE1} %endif +# Little hack until this issue is resolved +# https://github.com/PixarAnimationStudios/OpenUSD/issues/3310 +sed -i 's|OpenGL::GL|${OPENGL_gl_LIBRARY}|g' \ + %{_libdir}/cmake/pxr/pxrConfig.cmake + # Remove examples that were built and installed even though we set # -DPXR_BUILD_EXAMPLES=OFF. rm -vrf '%{buildroot}%{_datadir}/usd/examples' From 30ba938df6785b5798965bc4ddc00892affd8058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Cabello?= Date: Sun, 29 Dec 2024 15:57:48 +0000 Subject: [PATCH 36/85] Fixed hack path --- usd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usd.spec b/usd.spec index 0d4d85f..eb3962a 100644 --- a/usd.spec +++ b/usd.spec @@ -607,7 +607,7 @@ desktop-file-install \ # Little hack until this issue is resolved # https://github.com/PixarAnimationStudios/OpenUSD/issues/3310 sed -i 's|OpenGL::GL|${OPENGL_gl_LIBRARY}|g' \ - %{_libdir}/cmake/pxr/pxrConfig.cmake + %{buildroot}%{_libdir}/cmake/pxr/pxrConfig.cmake # Remove examples that were built and installed even though we set # -DPXR_BUILD_EXAMPLES=OFF. From 856fb3d568c64be3b04626183fe18ea78126e2df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Cabello?= Date: Sun, 29 Dec 2024 20:32:00 +0000 Subject: [PATCH 37/85] Change mistake sed from pxrConfig to pxrTargets --- usd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usd.spec b/usd.spec index eb3962a..ba2b35d 100644 --- a/usd.spec +++ b/usd.spec @@ -607,7 +607,7 @@ desktop-file-install \ # Little hack until this issue is resolved # https://github.com/PixarAnimationStudios/OpenUSD/issues/3310 sed -i 's|OpenGL::GL|${OPENGL_gl_LIBRARY}|g' \ - %{buildroot}%{_libdir}/cmake/pxr/pxrConfig.cmake + %{buildroot}%{_libdir}/cmake/pxr/pxrTargets.cmake # Remove examples that were built and installed even though we set # -DPXR_BUILD_EXAMPLES=OFF. From 7878241bba410e23a596f48f7dec28e65891d7aa Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 13:57:58 +0000 Subject: [PATCH 38/85] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From e7341f96c250759328a2d9b47f2d0b5fd5b6bd76 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 21 Jan 2025 21:42:10 -0500 Subject: [PATCH 39/85] Update to 25.02 (close RHZ#2339319) --- .gitignore | 1 + ...ownstream-only-add-an-SONAME-version.patch | 18 +- ...use-the-system-double-conversion-lib.patch | 8 +- ...ream-only-use-the-system-lz4-library.patch | 10 +- ...-only-use-the-system-pugixml-library.patch | 6 +- ...nly-use-the-system-rapidjson-library.patch | 4 +- ...tream-only-use-the-system-libdeflate.patch | 4 +- ...wnstream-only-use-the-system-libavif.patch | 4 +- 3487.patch | 22 +++ sources | 2 +- stb_image.patch | 155 ------------------ usd.spec | 18 +- 12 files changed, 59 insertions(+), 193 deletions(-) create mode 100644 3487.patch delete mode 100644 stb_image.patch diff --git a/.gitignore b/.gitignore index 4095fbd..ab74e3c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ /OpenUSD-24.05.tar.gz /OpenUSD-24.08.tar.gz /OpenUSD-24.11.tar.gz +/OpenUSD-25.02.tar.gz diff --git a/0001-Downstream-only-add-an-SONAME-version.patch b/0001-Downstream-only-add-an-SONAME-version.patch index 47edf9d..962abb0 100644 --- a/0001-Downstream-only-add-an-SONAME-version.patch +++ b/0001-Downstream-only-add-an-SONAME-version.patch @@ -1,4 +1,4 @@ -From c9e84b3336cd20276f537c7b0dc31146e5cb5f78 Mon Sep 17 00:00:00 2001 +From 0beb6ef89859d29599c159cb52e2b85419adb413 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 @@ -37,11 +37,11 @@ built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) 3 files changed, 8 insertions(+) diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake -index e9657e399..8ca178ed4 100644 +index 6dd5d5f2d..0a20d47c5 100644 --- a/cmake/defaults/Version.cmake +++ b/cmake/defaults/Version.cmake -@@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "24") - set(PXR_PATCH_VERSION "11") # NOTE: Must not have leading 0 for single digits +@@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "25") + set(PXR_PATCH_VERSION "2") # 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,10 +51,10 @@ index e9657e399..8ca178ed4 100644 + "Downstream shared object version" +) diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake -index 311524da0..b056486da 100644 +index 6fe1134c1..692924954 100644 --- a/cmake/macros/Private.cmake +++ b/cmake/macros/Private.cmake -@@ -1370,6 +1370,7 @@ function(_pxr_library NAME) +@@ -1372,6 +1372,7 @@ function(_pxr_library NAME) IMPORT_PREFIX "${args_PREFIX}" PREFIX "${args_PREFIX}" SUFFIX "${args_SUFFIX}" @@ -63,10 +63,10 @@ index 311524da0..b056486da 100644 target_compile_definitions(${NAME} diff --git a/cmake/macros/Public.cmake b/cmake/macros/Public.cmake -index 1b809e738..7b557224d 100644 +index 2647707ac..1917edf87 100644 --- a/cmake/macros/Public.cmake +++ b/cmake/macros/Public.cmake -@@ -1074,6 +1074,7 @@ function(pxr_toplevel_prologue) +@@ -1115,6 +1115,7 @@ function(pxr_toplevel_prologue) FOLDER "${folder}" PREFIX "${libPrefix}" IMPORT_PREFIX "${libPrefix}" @@ -75,5 +75,5 @@ index 1b809e738..7b557224d 100644 _get_install_dir("lib" libInstallPrefix) install( -- -2.47.0 +2.48.1 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 7d5f53d..9ea057f 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 c000fad5c7b103ac222c2afabc88c145dc42f10a Mon Sep 17 00:00:00 2001 +From 892fffda8fe1e388cb1511889636e80a864bed43 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,7 +8,7 @@ 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 306419493..f4bfecb16 100644 +index 438e9af37..749af9a2b 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -110,11 +110,14 @@ function(add_py_dll_link_test) @@ -40,7 +40,7 @@ index 306419493..f4bfecb16 100644 - pxrDoubleConversion/strtod.cc pxrLZ4/lz4.cpp - PYTHON_CPPFILES + PYMODULE_CPPFILES -- -2.47.0 +2.48.1 diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index c0af3d3..df41c33 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,4 +1,4 @@ -From 40d98ed4043a5d5426f39a513f1e628e81a79a82 Mon Sep 17 00:00:00 2001 +From 07716964aaf5aab8345e1801a18bcab8a493e5e5 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 @@ -8,7 +8,7 @@ Subject: [PATCH 2/6] Downstream-only: use the system lz4 library 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt -index f4bfecb16..eadd8ba3a 100644 +index 749af9a2b..56ca1fd83 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -111,6 +111,8 @@ function(add_py_dll_link_test) @@ -38,8 +38,8 @@ index f4bfecb16..eadd8ba3a 100644 initConfig.cpp - pxrLZ4/lz4.cpp - PYTHON_CPPFILES - moduleDeps.cpp + PYMODULE_CPPFILES + module.cpp -- -2.47.0 +2.48.1 diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch index aadc144..60b2b14 100644 --- a/0003-Downstream-only-use-the-system-pugixml-library.patch +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -1,4 +1,4 @@ -From f2ad73cd2d582ad3929a5f2d70fd1a2b1cb937b4 Mon Sep 17 00:00:00 2001 +From 6723d17b04358284e46b717da6dd3d9a25fd094d 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 @@ -8,7 +8,7 @@ Subject: [PATCH 3/6] Downstream-only: use the system pugixml library 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt b/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt -index fae498d58..a7587b240 100644 +index ad5c1f49e..79b82e3f0 100644 --- a/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt +++ b/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt @@ -1,6 +1,8 @@ @@ -35,5 +35,5 @@ index fae498d58..a7587b240 100644 PRIVATE_HEADERS api.h -- -2.47.0 +2.48.1 diff --git a/0004-Downstream-only-use-the-system-rapidjson-library.patch b/0004-Downstream-only-use-the-system-rapidjson-library.patch index e61a488..658150b 100644 --- a/0004-Downstream-only-use-the-system-rapidjson-library.patch +++ b/0004-Downstream-only-use-the-system-rapidjson-library.patch @@ -1,4 +1,4 @@ -From 12f95f861d103fb3aa8ea4e4734fb00ee8942da8 Mon Sep 17 00:00:00 2001 +From 69a381db3ad7e0a457fb547eab46d6fdd6532f32 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 @@ -56,5 +56,5 @@ index d59dc1f6d..086d1bc48 100644 overview.dox ) -- -2.47.0 +2.48.1 diff --git a/0005-Downstream-only-use-the-system-libdeflate.patch b/0005-Downstream-only-use-the-system-libdeflate.patch index a4331f2..bb15359 100644 --- a/0005-Downstream-only-use-the-system-libdeflate.patch +++ b/0005-Downstream-only-use-the-system-libdeflate.patch @@ -1,4 +1,4 @@ -From c3405db00fe0a74bfbccb1cc6b7d2071a80659af Mon Sep 17 00:00:00 2001 +From 190572d6e81729f7e04ddf50891c7af368ea4995 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 @@ -72,5 +72,5 @@ index 7481a346e..71bdde9cc 100644 #include "OpenEXRCore/attributes.c" -- -2.47.0 +2.48.1 diff --git a/0006-Downstream-only-use-the-system-libavif.patch b/0006-Downstream-only-use-the-system-libavif.patch index 809572e..58d3140 100644 --- a/0006-Downstream-only-use-the-system-libavif.patch +++ b/0006-Downstream-only-use-the-system-libavif.patch @@ -1,4 +1,4 @@ -From 2c00aa60c1def4fba4a5498d776019ae75e3e561 Mon Sep 17 00:00:00 2001 +From 8173625c157a1cb59c0f5cf8039afde9cce84641 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 @@ -237,5 +237,5 @@ index 29ffe0fdf..7f1680eaf 100644 RESOURCE_FILES -- -2.47.0 +2.48.1 diff --git a/3487.patch b/3487.patch new file mode 100644 index 0000000..2f79179 --- /dev/null +++ b/3487.patch @@ -0,0 +1,22 @@ +From 97151da9044e0fb488b61d664cc56fda0b711bf7 Mon Sep 17 00:00:00 2001 +From: "Benjamin A. Beasley" +Date: Tue, 21 Jan 2025 22:05:01 -0500 +Subject: [PATCH] Add missing #include + +Fixes failure to compile with GCC 15 +--- + pxr/usd/usd/zipFile.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/pxr/usd/usd/zipFile.h b/pxr/usd/usd/zipFile.h +index 4356be7ecb..8f22420966 100644 +--- a/pxr/usd/usd/zipFile.h ++++ b/pxr/usd/usd/zipFile.h +@@ -10,6 +10,7 @@ + #include "pxr/pxr.h" + #include "pxr/usd/usd/api.h" + ++#include + #include + #include + #include diff --git a/sources b/sources index 15bf14b..4b4c131 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-24.11.tar.gz) = 77c9601f4a689248448049660ef0083fc99e2a4c2e7a260814831bdfee8e9844f64b5b2aed88a9f907fe4ebcf6a532bb7dce80bb11c1f54c31066b07aa96b851 +SHA512 (OpenUSD-25.02.tar.gz) = 23f5a40c67ce0566cbb61a60a8d14ebb9fde5de0fb4921031f4d4eeb3a5a86d624955840f9f49ee36f32abc48e869d4910073189716e73ba997bb80f1e781d9b diff --git a/stb_image.patch b/stb_image.patch deleted file mode 100644 index a8a3a30..0000000 --- a/stb_image.patch +++ /dev/null @@ -1,155 +0,0 @@ ---- 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 ba2b35d..7244a0e 100644 --- a/usd.spec +++ b/usd.spec @@ -2,7 +2,7 @@ # 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.24.11 +%global downstream_so_version 0.25.2 %bcond alembic 1 %bcond draco 1 @@ -27,7 +27,7 @@ %bcond test 0 Name: usd -Version: 24.11 +Version: 25.02 Release: %autorelease Summary: 3D VFX pipeline interchange file format @@ -97,13 +97,6 @@ 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 # @@ -157,6 +150,11 @@ Patch: 0006-Downstream-only-use-the-system-libavif.patch # https://github.com/PixarAnimationStudios/OpenUSD/pull/3392 Patch: %{forgeurl}/pull/3392.patch +# Add missing #include +# https://github.com/PixarAnimationStudios/OpenUSD/pull/3487 +# Fixes failure to compile with GCC 15 +Patch: %{forgeurl}/pull/3487.patch + # Base BuildRequires: gcc-c++ @@ -424,7 +422,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 < '%{SOURCE2}' +patch -p1 < stb_image.patch ln -svf %{_usr}/include/stb_image_resize.h \ %{_usr}/include/stb_image_write.h ./ popd From 3d6c109ad7f1e4197d1e12c64514688aca3d61bc Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 30 Jan 2025 10:06:54 -0500 Subject: [PATCH 40/85] Update PR#3392 patch URL to the actual merged commit --- ...22c12dc18203ab5b233792debca8bf843b2e.patch | 21 ++++++++++--------- usd.spec | 3 ++- 2 files changed, 13 insertions(+), 11 deletions(-) rename 3392.patch => 534b22c12dc18203ab5b233792debca8bf843b2e.patch (53%) diff --git a/3392.patch b/534b22c12dc18203ab5b233792debca8bf843b2e.patch similarity index 53% rename from 3392.patch rename to 534b22c12dc18203ab5b233792debca8bf843b2e.patch index c43bb3a..7bad957 100644 --- a/3392.patch +++ b/534b22c12dc18203ab5b233792debca8bf843b2e.patch @@ -1,25 +1,26 @@ -From 1c51700711915fe2a50079545c23f5320caa7fe3 Mon Sep 17 00:00:00 2001 +From 534b22c12dc18203ab5b233792debca8bf843b2e Mon Sep 17 00:00:00 2001 From: Matt Johnson -Date: Fri, 1 Nov 2024 15:57:59 -0400 -Subject: [PATCH] work: account for TBB task_group_base interface change in +Date: Fri, 24 Jan 2025 16:17:30 -0800 +Subject: [PATCH] work: account for task_group_base interface change in oneTBB 2022.0.0 -The m_wait_ctx member being used in a narrow band of oneTBB versions -was removed in a refactor that went into the most recent release: +The `m_wait_ctx` member being used in a narrow band of oneTBB versions was removed in a refactor that went into version [v2022.0.0](https://github.com/oneapi-src/oneTBB/releases/tag/v2022.0.0) which was released yesterday: https://github.com/oneapi-src/oneTBB/commit/1f52f5093ec7ce23829fe64ab82ac5541fea42ee -This change accounts for the update in the new version of oneTBB and -uses the newly added m_wait_vertex member to access the same context -as before. +This change accounts for the update in the new version of oneTBB and uses the newly added `m_wait_vertex` member to access the same context as before. + +Closes #3392 + +(Internal change: 2354795) --- pxr/base/work/dispatcher.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pxr/base/work/dispatcher.cpp b/pxr/base/work/dispatcher.cpp -index 8cc8dbbfcd..63482d87c1 100644 +index 24daa98b5b..45a9f38004 100644 --- a/pxr/base/work/dispatcher.cpp +++ b/pxr/base/work/dispatcher.cpp -@@ -33,7 +33,11 @@ WorkDispatcher::WorkDispatcher() +@@ -34,7 +34,11 @@ WorkDispatcher::WorkDispatcher() #if TBB_INTERFACE_VERSION_MAJOR >= 12 inline tbb::detail::d1::wait_context& WorkDispatcher::_TaskGroup::_GetInternalWaitContext() { diff --git a/usd.spec b/usd.spec index 7244a0e..c74d8d9 100644 --- a/usd.spec +++ b/usd.spec @@ -148,7 +148,8 @@ Patch: 0006-Downstream-only-use-the-system-libavif.patch # work: account for task_group_base interface change in oneTBB 2022.0.0 # https://github.com/PixarAnimationStudios/OpenUSD/pull/3392 -Patch: %{forgeurl}/pull/3392.patch +# Merged as commit 534b22c12dc18203ab5b233792debca8bf843b2e. +Patch: %{forgeurl}/commit/534b22c12dc18203ab5b233792debca8bf843b2e.patch # Add missing #include # https://github.com/PixarAnimationStudios/OpenUSD/pull/3487 From 62186d324119c43cd07c51c20613cbf68371d8dd Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 4 Feb 2025 18:53:02 -0500 Subject: [PATCH 41/85] Update to 25.02a (close RHBZ#2343857) --- .gitignore | 1 + sources | 2 +- usd.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index ab74e3c..7000898 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ /OpenUSD-24.08.tar.gz /OpenUSD-24.11.tar.gz /OpenUSD-25.02.tar.gz +/OpenUSD-25.02a.tar.gz diff --git a/sources b/sources index 4b4c131..6c6a95c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-25.02.tar.gz) = 23f5a40c67ce0566cbb61a60a8d14ebb9fde5de0fb4921031f4d4eeb3a5a86d624955840f9f49ee36f32abc48e869d4910073189716e73ba997bb80f1e781d9b +SHA512 (OpenUSD-25.02a.tar.gz) = 6369b902d4e84bda7f3b54357915a933f2d3ea7753b9f702350af6d341572d49a0644ccf803a469e9b452aad1f3d81d7cbfab340f2509fba1213ffd575cf402b diff --git a/usd.spec b/usd.spec index c74d8d9..95bde97 100644 --- a/usd.spec +++ b/usd.spec @@ -27,7 +27,7 @@ %bcond test 0 Name: usd -Version: 25.02 +Version: 25.02a Release: %autorelease Summary: 3D VFX pipeline interchange file format From 9161f5b9f50aff2dae3a35b3c41ee3616dbf8c89 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 7 Apr 2025 07:26:05 -0400 Subject: [PATCH 42/85] Rebuilt for openvdb 12 From 92bfe4054d71fce95070937fb63a054de437f224 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 15 Apr 2025 11:41:12 -0400 Subject: [PATCH 43/85] Rebuilt for openshadinglanguage 1.14.5.0 From 715b2f905d5b0fe96fa1d1e4e423788952dcac53 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 6 May 2025 07:38:21 -0400 Subject: [PATCH 44/85] Update to 25.05 (close RHBZ#2362828) --- .gitignore | 1 + ...ownstream-only-add-an-SONAME-version.patch | 16 ++++----- ...use-the-system-double-conversion-lib.patch | 4 +-- ...ream-only-use-the-system-lz4-library.patch | 4 +-- ...-only-use-the-system-pugixml-library.patch | 10 +++--- ...nly-use-the-system-rapidjson-library.patch | 4 +-- ...tream-only-use-the-system-libdeflate.patch | 4 +-- ...wnstream-only-use-the-system-libavif.patch | 12 +++---- 2266.patch | 12 +++---- 3487.patch | 22 ------------ ...22c12dc18203ab5b233792debca8bf843b2e.patch | 34 ------------------- sources | 2 +- usd.spec | 20 ++++------- 13 files changed, 41 insertions(+), 104 deletions(-) delete mode 100644 3487.patch delete mode 100644 534b22c12dc18203ab5b233792debca8bf843b2e.patch diff --git a/.gitignore b/.gitignore index 7000898..763dbc1 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ /OpenUSD-24.11.tar.gz /OpenUSD-25.02.tar.gz /OpenUSD-25.02a.tar.gz +/OpenUSD-25.05.tar.gz diff --git a/0001-Downstream-only-add-an-SONAME-version.patch b/0001-Downstream-only-add-an-SONAME-version.patch index 962abb0..18631f1 100644 --- a/0001-Downstream-only-add-an-SONAME-version.patch +++ b/0001-Downstream-only-add-an-SONAME-version.patch @@ -1,4 +1,4 @@ -From 0beb6ef89859d29599c159cb52e2b85419adb413 Mon Sep 17 00:00:00 2001 +From 15b28906c97ddfa24add5e928663d6ccf410b18c 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 @@ -37,11 +37,11 @@ built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) 3 files changed, 8 insertions(+) diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake -index 6dd5d5f2d..0a20d47c5 100644 +index d94831a64..a5ed513e5 100644 --- a/cmake/defaults/Version.cmake +++ b/cmake/defaults/Version.cmake @@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "25") - set(PXR_PATCH_VERSION "2") # NOTE: Must not have leading 0 for single digits + set(PXR_PATCH_VERSION "5") # 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,29 +51,29 @@ index 6dd5d5f2d..0a20d47c5 100644 + "Downstream shared object version" +) diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake -index 6fe1134c1..692924954 100644 +index 6fe1134c1..06aecd083 100644 --- a/cmake/macros/Private.cmake +++ b/cmake/macros/Private.cmake @@ -1372,6 +1372,7 @@ function(_pxr_library NAME) IMPORT_PREFIX "${args_PREFIX}" PREFIX "${args_PREFIX}" SUFFIX "${args_SUFFIX}" -+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION} ++ SOVERSION ${PXR_DOWNSTREAM_SOVERSION} ) target_compile_definitions(${NAME} diff --git a/cmake/macros/Public.cmake b/cmake/macros/Public.cmake -index 2647707ac..1917edf87 100644 +index 2647707ac..8c6c74724 100644 --- a/cmake/macros/Public.cmake +++ b/cmake/macros/Public.cmake @@ -1115,6 +1115,7 @@ function(pxr_toplevel_prologue) FOLDER "${folder}" PREFIX "${libPrefix}" IMPORT_PREFIX "${libPrefix}" -+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION} ++ SOVERSION ${PXR_DOWNSTREAM_SOVERSION} ) _get_install_dir("lib" libInstallPrefix) install( -- -2.48.1 +2.49.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 9ea057f..20e47bd 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 892fffda8fe1e388cb1511889636e80a864bed43 Mon Sep 17 00:00:00 2001 +From 8a3d4e524063cb37910dc3fd5c1cf9fd4caafe4f 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 @@ -42,5 +42,5 @@ index 438e9af37..749af9a2b 100644 PYMODULE_CPPFILES -- -2.48.1 +2.49.0 diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index df41c33..ee877fb 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,4 +1,4 @@ -From 07716964aaf5aab8345e1801a18bcab8a493e5e5 Mon Sep 17 00:00:00 2001 +From 004a8a99bd85dae0a017ec17c613f52a4edd9daf 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 @@ -41,5 +41,5 @@ index 749af9a2b..56ca1fd83 100644 PYMODULE_CPPFILES module.cpp -- -2.48.1 +2.49.0 diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch index 60b2b14..6fdc71f 100644 --- a/0003-Downstream-only-use-the-system-pugixml-library.patch +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -1,4 +1,4 @@ -From 6723d17b04358284e46b717da6dd3d9a25fd094d Mon Sep 17 00:00:00 2001 +From b06887047009c81108e50662d6b59d8d00375924 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 @@ -8,7 +8,7 @@ Subject: [PATCH 3/6] Downstream-only: use the system pugixml library 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt b/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt -index ad5c1f49e..79b82e3f0 100644 +index 244f27aa8..1e00413c4 100644 --- a/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt +++ b/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt @@ -1,6 +1,8 @@ @@ -20,9 +20,9 @@ index ad5c1f49e..79b82e3f0 100644 pxr_plugin(rmanArgsParser LIBRARIES arch -@@ -10,12 +12,10 @@ pxr_plugin(rmanArgsParser +@@ -9,12 +11,10 @@ pxr_plugin(rmanArgsParser + vt ar - ndr sdr + ${pugixml_LIBRARY} @@ -35,5 +35,5 @@ index ad5c1f49e..79b82e3f0 100644 PRIVATE_HEADERS api.h -- -2.48.1 +2.49.0 diff --git a/0004-Downstream-only-use-the-system-rapidjson-library.patch b/0004-Downstream-only-use-the-system-rapidjson-library.patch index 658150b..3258d29 100644 --- a/0004-Downstream-only-use-the-system-rapidjson-library.patch +++ b/0004-Downstream-only-use-the-system-rapidjson-library.patch @@ -1,4 +1,4 @@ -From 69a381db3ad7e0a457fb547eab46d6fdd6532f32 Mon Sep 17 00:00:00 2001 +From 9e774a0541a72c849f8b85782eb5ea97653799f1 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 @@ -56,5 +56,5 @@ index d59dc1f6d..086d1bc48 100644 overview.dox ) -- -2.48.1 +2.49.0 diff --git a/0005-Downstream-only-use-the-system-libdeflate.patch b/0005-Downstream-only-use-the-system-libdeflate.patch index bb15359..0a87ddf 100644 --- a/0005-Downstream-only-use-the-system-libdeflate.patch +++ b/0005-Downstream-only-use-the-system-libdeflate.patch @@ -1,4 +1,4 @@ -From 190572d6e81729f7e04ddf50891c7af368ea4995 Mon Sep 17 00:00:00 2001 +From c93716e28576544aa7de31b4b966aa3fc25e5bb5 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 @@ -72,5 +72,5 @@ index 7481a346e..71bdde9cc 100644 #include "OpenEXRCore/attributes.c" -- -2.48.1 +2.49.0 diff --git a/0006-Downstream-only-use-the-system-libavif.patch b/0006-Downstream-only-use-the-system-libavif.patch index 58d3140..06b3e28 100644 --- a/0006-Downstream-only-use-the-system-libavif.patch +++ b/0006-Downstream-only-use-the-system-libavif.patch @@ -1,4 +1,4 @@ -From 8173625c157a1cb59c0f5cf8039afde9cce84641 Mon Sep 17 00:00:00 2001 +From 015271b7f2428d9c92adf5558362ff59ed5c4290 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 @@ -9,18 +9,18 @@ Subject: [PATCH 6/6] Downstream-only: use the system libavif 2 files changed, 8 insertions(+), 189 deletions(-) diff --git a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp -index b902a9806..e83af2acc 100644 +index 81549fb54..d2dfb1bcd 100644 --- a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp +++ b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp -@@ -29,7 +29,7 @@ ARCH_PRAGMA_UNUSED_FUNCTION +@@ -30,7 +30,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 - - #include "pxr/base/arch/export.h" + #if defined(PXR_STATIC) + # define HIOAVIF_API diff --git a/pxr/imaging/plugin/hioAvif/CMakeLists.txt b/pxr/imaging/plugin/hioAvif/CMakeLists.txt index 29ffe0fdf..7f1680eaf 100644 --- a/pxr/imaging/plugin/hioAvif/CMakeLists.txt @@ -237,5 +237,5 @@ index 29ffe0fdf..7f1680eaf 100644 RESOURCE_FILES -- -2.48.1 +2.49.0 diff --git a/2266.patch b/2266.patch index eb8ba37..fed49ac 100644 --- a/2266.patch +++ b/2266.patch @@ -1,4 +1,4 @@ -From a07a6b4d1da19bfc499db49641d74fb7c1a71e9b Mon Sep 17 00:00:00 2001 +From 9ea3bc1ab550ec46c426dab04292d9667ccd2518 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 @@ -119,13 +119,13 @@ index c32c35fffa..3712a9e3ab 100644 #include diff --git a/pxr/imaging/plugin/hdEmbree/pch.h b/pxr/imaging/plugin/hdEmbree/pch.h -index 0369fea3a1..2f9f19fa09 100644 +index 9f613dd069..19bfb2f6d0 100644 --- a/pxr/imaging/plugin/hdEmbree/pch.h +++ b/pxr/imaging/plugin/hdEmbree/pch.h -@@ -84,9 +84,9 @@ - #undef toupper - #endif - #endif // PXR_PYTHON_SUPPORT_ENABLED && !PXR_USE_INTERNAL_BOOST_PYTHON +@@ -76,9 +76,9 @@ + #include + #include + #include -#include -#include -#include diff --git a/3487.patch b/3487.patch deleted file mode 100644 index 2f79179..0000000 --- a/3487.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 97151da9044e0fb488b61d664cc56fda0b711bf7 Mon Sep 17 00:00:00 2001 -From: "Benjamin A. Beasley" -Date: Tue, 21 Jan 2025 22:05:01 -0500 -Subject: [PATCH] Add missing #include - -Fixes failure to compile with GCC 15 ---- - pxr/usd/usd/zipFile.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/pxr/usd/usd/zipFile.h b/pxr/usd/usd/zipFile.h -index 4356be7ecb..8f22420966 100644 ---- a/pxr/usd/usd/zipFile.h -+++ b/pxr/usd/usd/zipFile.h -@@ -10,6 +10,7 @@ - #include "pxr/pxr.h" - #include "pxr/usd/usd/api.h" - -+#include - #include - #include - #include diff --git a/534b22c12dc18203ab5b233792debca8bf843b2e.patch b/534b22c12dc18203ab5b233792debca8bf843b2e.patch deleted file mode 100644 index 7bad957..0000000 --- a/534b22c12dc18203ab5b233792debca8bf843b2e.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 534b22c12dc18203ab5b233792debca8bf843b2e Mon Sep 17 00:00:00 2001 -From: Matt Johnson -Date: Fri, 24 Jan 2025 16:17:30 -0800 -Subject: [PATCH] work: account for task_group_base interface change in oneTBB - 2022.0.0 - -The `m_wait_ctx` member being used in a narrow band of oneTBB versions was removed in a refactor that went into version [v2022.0.0](https://github.com/oneapi-src/oneTBB/releases/tag/v2022.0.0) which was released yesterday: -https://github.com/oneapi-src/oneTBB/commit/1f52f5093ec7ce23829fe64ab82ac5541fea42ee - -This change accounts for the update in the new version of oneTBB and uses the newly added `m_wait_vertex` member to access the same context as before. - -Closes #3392 - -(Internal change: 2354795) ---- - pxr/base/work/dispatcher.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/pxr/base/work/dispatcher.cpp b/pxr/base/work/dispatcher.cpp -index 24daa98b5b..45a9f38004 100644 ---- a/pxr/base/work/dispatcher.cpp -+++ b/pxr/base/work/dispatcher.cpp -@@ -34,7 +34,11 @@ WorkDispatcher::WorkDispatcher() - #if TBB_INTERFACE_VERSION_MAJOR >= 12 - inline tbb::detail::d1::wait_context& - WorkDispatcher::_TaskGroup::_GetInternalWaitContext() { -+#if TBB_INTERFACE_VERSION_MINOR >= 14 -+ return m_wait_vertex.get_context(); -+#else - return m_wait_ctx; -+#endif - } - #endif - diff --git a/sources b/sources index 6c6a95c..6a7dc2f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-25.02a.tar.gz) = 6369b902d4e84bda7f3b54357915a933f2d3ea7753b9f702350af6d341572d49a0644ccf803a469e9b452aad1f3d81d7cbfab340f2509fba1213ffd575cf402b +SHA512 (OpenUSD-25.05.tar.gz) = 9e57198c370315da8f163877d76d213fac3091e4b572c612fe4226df00315bee425a3059028f4db1b13df57a59d0bb7dc8d43d250dcf0909807f4a2a6d8fe42a diff --git a/usd.spec b/usd.spec index 95bde97..f353f50 100644 --- a/usd.spec +++ b/usd.spec @@ -2,7 +2,7 @@ # 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.25.2 +%global downstream_so_version 0.25.5 %bcond alembic 1 %bcond draco 1 @@ -27,7 +27,7 @@ %bcond test 0 Name: usd -Version: 25.02a +Version: 25.05 Release: %autorelease Summary: 3D VFX pipeline interchange file format @@ -130,7 +130,7 @@ Patch: 0001-Downstream-only-add-an-SONAME-version.patch # https://github.com/PixarAnimationStudios/OpenUSD/pull/2266 # See also: # hdEmbree: add support for building against embree4 -# https://github.com/PixarAnimationStudios/USD/pull/2266 +# https://github.com/PixarAnimationStudios/USD/pull/2313 Patch: %{forgeurl}/pull/2266.patch # Downstream-only: use the system double-conversion library @@ -146,16 +146,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 -# work: account for task_group_base interface change in oneTBB 2022.0.0 -# https://github.com/PixarAnimationStudios/OpenUSD/pull/3392 -# Merged as commit 534b22c12dc18203ab5b233792debca8bf843b2e. -Patch: %{forgeurl}/commit/534b22c12dc18203ab5b233792debca8bf843b2e.patch - -# Add missing #include -# https://github.com/PixarAnimationStudios/OpenUSD/pull/3487 -# Fixes failure to compile with GCC 15 -Patch: %{forgeurl}/pull/3487.patch - # Base BuildRequires: gcc-c++ @@ -170,7 +160,7 @@ BuildRequires: help2man BuildRequires: pkgconfig(blosc) BuildRequires: pkgconfig(dri) BuildRequires: hdf5-devel -BuildRequires: opensubdiv-devel >= 3.6.0 +BuildRequires: cmake(OpenSubdiv) BuildRequires: pkgconfig(tbb) # Unbundled: BuildRequires: cmake(double-conversion) @@ -640,6 +630,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %{_bindir}/sdfdump %{_bindir}/sdffilter %{_bindir}/usdGenSchema +%{_bindir}/usdInitSchema %{_bindir}/usdcat %{_bindir}/usdchecker %if %{with draco} @@ -667,6 +658,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %{_mandir}/man1/sdfdump.1* %{_mandir}/man1/sdffilter.1* %{_mandir}/man1/usdGenSchema.1* +%{_mandir}/man1/usdInitSchema.1* %{_mandir}/man1/usdcat.1* %{_mandir}/man1/usdchecker.1* %if %{with draco} From f6370998c7c2ef77c52e9d0cfd61e88bcf9a7383 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 20 May 2025 05:45:16 -0400 Subject: [PATCH 45/85] Update to 25.05.01 (close RHBZ#2367428) --- .gitignore | 1 + sources | 2 +- usd.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 763dbc1..29e9eef 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ /OpenUSD-25.02.tar.gz /OpenUSD-25.02a.tar.gz /OpenUSD-25.05.tar.gz +/OpenUSD-25.05.01.tar.gz diff --git a/sources b/sources index 6a7dc2f..2a14b27 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-25.05.tar.gz) = 9e57198c370315da8f163877d76d213fac3091e4b572c612fe4226df00315bee425a3059028f4db1b13df57a59d0bb7dc8d43d250dcf0909807f4a2a6d8fe42a +SHA512 (OpenUSD-25.05.01.tar.gz) = 66bf75486f09dce7085c5c80cc3e005c02c1dfbbfbd02c8e2e8fd9498030ca49cd6bc0a9b9db930d0559c745cf77ebaf822018de4bf798cce84fdf0aa89f0d84 diff --git a/usd.spec b/usd.spec index f353f50..2941692 100644 --- a/usd.spec +++ b/usd.spec @@ -27,7 +27,7 @@ %bcond test 0 Name: usd -Version: 25.05 +Version: 25.05.01 Release: %autorelease Summary: 3D VFX pipeline interchange file format From dafa9d3c046304097bc4a5019296b6cafe38df6a Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 10 Jun 2025 07:21:03 -0400 Subject: [PATCH 46/85] Only depend on PyOpenGL when usdview is enabled --- usd.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usd.spec b/usd.spec index 2941692..2c45cea 100644 --- a/usd.spec +++ b/usd.spec @@ -370,8 +370,8 @@ BuildRequires: python3dist(jinja2) BuildRequires: desktop-file-utils BuildRequires: python3dist(pyside6) BuildRequires: pyside6-tools -%endif BuildRequires: python3dist(pyopengl) +%endif Requires: font(roboto) Requires: font(robotoblack) Requires: font(robotolight) @@ -379,8 +379,8 @@ Requires: font(robotomono) Requires: python3dist(jinja2) %if %{with usdview} Requires: python3dist(pyside6) -%endif Requires: python3dist(pyopengl) +%endif Requires: usd-libs%{?_isa} = %{version}-%{release} From a9d49c6a7e4c3a90f301ae00bd5623447f217f34 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 10 Jun 2025 07:23:23 -0400 Subject: [PATCH 47/85] Disable usdview until python-pyopengl is fixed https://bugzilla.redhat.com/show_bug.cgi?id=2341191 --- usd.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/usd.spec b/usd.spec index 2c45cea..406b12e 100644 --- a/usd.spec +++ b/usd.spec @@ -20,7 +20,10 @@ %bcond ocio 1 %bcond oiio 1 %bcond ptex 1 -%bcond usdview 1 +# Requires python-pyopengl, which FTBFS in F42+ +# (https://bugzilla.redhat.com/show_bug.cgi?id=2341191) and therefore FTI since +# the Python 3.14 mass rebuild. +%bcond usdview 0 # TODO: Figure out how to re-enable the tests. Currently these want to install # into /usr/tests, and there are issues with the launchers finding the # command-line tools in the buildroot. From cc7a2f2dbf9834137158427e6e8e458e60059c96 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 10 Jun 2025 07:49:58 -0400 Subject: [PATCH 48/85] Rebuilt for Python 3.14 From bf4f59f2c9a4665a5d92431b3229876112360821 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 6 Jul 2025 08:14:37 -0400 Subject: [PATCH 49/85] Revert "Disable usdview until python-pyopengl is fixed" This reverts commit a9d49c6a7e4c3a90f301ae00bd5623447f217f34. --- usd.spec | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/usd.spec b/usd.spec index 406b12e..2c45cea 100644 --- a/usd.spec +++ b/usd.spec @@ -20,10 +20,7 @@ %bcond ocio 1 %bcond oiio 1 %bcond ptex 1 -# Requires python-pyopengl, which FTBFS in F42+ -# (https://bugzilla.redhat.com/show_bug.cgi?id=2341191) and therefore FTI since -# the Python 3.14 mass rebuild. -%bcond usdview 0 +%bcond usdview 1 # TODO: Figure out how to re-enable the tests. Currently these want to install # into /usr/tests, and there are issues with the launchers finding the # command-line tools in the buildroot. From 255804ecbdbbf338a45a0ea5f8a16b17c4fca641 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 19:53:21 +0000 Subject: [PATCH 50/85] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From a011711941992d6126673924352c228491e58891 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Fri, 1 Aug 2025 07:17:11 -0400 Subject: [PATCH 51/85] Update to 25.08 (close RHBZ#2385874) --- .gitignore | 1 + ...ownstream-only-add-an-SONAME-version.patch | 12 +- ...use-Valgrind-macro-instead-of-inline.patch | 65 +++ ...use-the-system-double-conversion-lib.patch | 14 +- ...ream-only-use-the-system-lz4-library.patch | 21 +- ...-only-use-the-system-pugixml-library.patch | 4 +- ...nly-use-the-system-rapidjson-library.patch | 4 +- ...tream-only-use-the-system-libdeflate.patch | 4 +- ...wnstream-only-use-the-system-libavif.patch | 308 +++++------ 2266.patch | 217 -------- 2313.patch | 510 ++++++++++++++++++ sources | 2 +- usd.spec | 25 +- 13 files changed, 779 insertions(+), 408 deletions(-) create mode 100644 0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch delete mode 100644 2266.patch create mode 100644 2313.patch diff --git a/.gitignore b/.gitignore index 29e9eef..d0e0d07 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ /OpenUSD-25.02a.tar.gz /OpenUSD-25.05.tar.gz /OpenUSD-25.05.01.tar.gz +/OpenUSD-25.08.tar.gz diff --git a/0001-Downstream-only-add-an-SONAME-version.patch b/0001-Downstream-only-add-an-SONAME-version.patch index 18631f1..250eae0 100644 --- a/0001-Downstream-only-add-an-SONAME-version.patch +++ b/0001-Downstream-only-add-an-SONAME-version.patch @@ -1,4 +1,4 @@ -From 15b28906c97ddfa24add5e928663d6ccf410b18c Mon Sep 17 00:00:00 2001 +From 483ce5b8e320e89016fff7b3480216ba94c032ff 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 @@ -37,11 +37,11 @@ built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) 3 files changed, 8 insertions(+) diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake -index d94831a64..a5ed513e5 100644 +index 447c74e4d..a990f071b 100644 --- a/cmake/defaults/Version.cmake +++ b/cmake/defaults/Version.cmake @@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "25") - set(PXR_PATCH_VERSION "5") # NOTE: Must not have leading 0 for single digits + 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}") + @@ -63,10 +63,10 @@ index 6fe1134c1..06aecd083 100644 target_compile_definitions(${NAME} diff --git a/cmake/macros/Public.cmake b/cmake/macros/Public.cmake -index 2647707ac..8c6c74724 100644 +index 807cf7d83..7225af783 100644 --- a/cmake/macros/Public.cmake +++ b/cmake/macros/Public.cmake -@@ -1115,6 +1115,7 @@ function(pxr_toplevel_prologue) +@@ -1121,6 +1121,7 @@ function(pxr_toplevel_prologue) FOLDER "${folder}" PREFIX "${libPrefix}" IMPORT_PREFIX "${libPrefix}" @@ -75,5 +75,5 @@ index 2647707ac..8c6c74724 100644 _get_install_dir("lib" libInstallPrefix) install( -- -2.49.0 +2.50.1 diff --git a/0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch b/0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch new file mode 100644 index 0000000..62f0370 --- /dev/null +++ b/0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch @@ -0,0 +1,65 @@ +From 75d4451fa64e086edd9d621af681df13cebde5eb 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 12f9e517e..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) +- // 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.50.1 + 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 20e47bd..1d2a648 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 8a3d4e524063cb37910dc3fd5c1cf9fd4caafe4f Mon Sep 17 00:00:00 2001 +From 23bda0e3337d7a27696a000a47eaf36840650c69 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,7 +8,7 @@ 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 438e9af37..749af9a2b 100644 +index fade8d559..5d9272087 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -110,11 +110,14 @@ function(add_py_dll_link_test) @@ -21,12 +21,12 @@ index 438e9af37..749af9a2b 100644 LIBRARIES arch ${WINLIBS} - ${TBB_tbb_LIBRARY} + TBB::tbb + ${double-conversion_LIBRARY} - INCLUDE_DIRS - ${TBB_INCLUDE_DIRS} -@@ -281,14 +284,6 @@ pxr_library(tf + PUBLIC_CLASSES + anyUniquePtr +@@ -278,14 +281,6 @@ pxr_library(tf CPPFILES initConfig.cpp @@ -42,5 +42,5 @@ index 438e9af37..749af9a2b 100644 PYMODULE_CPPFILES -- -2.49.0 +2.50.1 diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index ee877fb..c72d25a 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,14 +1,14 @@ -From 004a8a99bd85dae0a017ec17c613f52a4edd9daf Mon Sep 17 00:00:00 2001 +From 3492a9fb0fccfe52ed5258e943381d48d28be3e5 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 | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) + pxr/base/tf/CMakeLists.txt | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt -index 749af9a2b..56ca1fd83 100644 +index 5d9272087..c4130882c 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -111,6 +111,8 @@ function(add_py_dll_link_test) @@ -20,19 +20,18 @@ index 749af9a2b..56ca1fd83 100644 pxr_library(tf LIBRARIES -@@ -118,9 +120,11 @@ pxr_library(tf +@@ -118,6 +120,10 @@ pxr_library(tf ${WINLIBS} - ${TBB_tbb_LIBRARY} + TBB::tbb ${double-conversion_LIBRARY} + ${LZ4_LIBRARIES} - - INCLUDE_DIRS - ${TBB_INCLUDE_DIRS} ++ ++ INCLUDE_DIRS + ${LZ4_INCLUDE_DIRS} PUBLIC_CLASSES anyUniquePtr -@@ -284,7 +288,6 @@ pxr_library(tf +@@ -281,7 +287,6 @@ pxr_library(tf CPPFILES initConfig.cpp @@ -41,5 +40,5 @@ index 749af9a2b..56ca1fd83 100644 PYMODULE_CPPFILES module.cpp -- -2.49.0 +2.50.1 diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch index 6fdc71f..2bab595 100644 --- a/0003-Downstream-only-use-the-system-pugixml-library.patch +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -1,4 +1,4 @@ -From b06887047009c81108e50662d6b59d8d00375924 Mon Sep 17 00:00:00 2001 +From 98f62852495fb2c86047eff532a3af2a5b88792b 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 @@ -35,5 +35,5 @@ index 244f27aa8..1e00413c4 100644 PRIVATE_HEADERS api.h -- -2.49.0 +2.50.1 diff --git a/0004-Downstream-only-use-the-system-rapidjson-library.patch b/0004-Downstream-only-use-the-system-rapidjson-library.patch index 3258d29..8d1c7e6 100644 --- a/0004-Downstream-only-use-the-system-rapidjson-library.patch +++ b/0004-Downstream-only-use-the-system-rapidjson-library.patch @@ -1,4 +1,4 @@ -From 9e774a0541a72c849f8b85782eb5ea97653799f1 Mon Sep 17 00:00:00 2001 +From aa1063129297e469ddd709c7ee4d0406f9bae08f 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 @@ -56,5 +56,5 @@ index d59dc1f6d..086d1bc48 100644 overview.dox ) -- -2.49.0 +2.50.1 diff --git a/0005-Downstream-only-use-the-system-libdeflate.patch b/0005-Downstream-only-use-the-system-libdeflate.patch index 0a87ddf..e76eeb6 100644 --- a/0005-Downstream-only-use-the-system-libdeflate.patch +++ b/0005-Downstream-only-use-the-system-libdeflate.patch @@ -1,4 +1,4 @@ -From c93716e28576544aa7de31b4b966aa3fc25e5bb5 Mon Sep 17 00:00:00 2001 +From 4b1c527468f9c43e04a1ff773cec6a9f9ca0b5ae 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 @@ -72,5 +72,5 @@ index 7481a346e..71bdde9cc 100644 #include "OpenEXRCore/attributes.c" -- -2.49.0 +2.50.1 diff --git a/0006-Downstream-only-use-the-system-libavif.patch b/0006-Downstream-only-use-the-system-libavif.patch index 06b3e28..fe06223 100644 --- a/0006-Downstream-only-use-the-system-libavif.patch +++ b/0006-Downstream-only-use-the-system-libavif.patch @@ -1,12 +1,12 @@ -From 015271b7f2428d9c92adf5558362ff59ed5c4290 Mon Sep 17 00:00:00 2001 +From 8ebd20bf9e0e945457215dba1d56a25408f860a6 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 | 195 +--------------------- - 2 files changed, 8 insertions(+), 189 deletions(-) + pxr/imaging/plugin/hioAvif/CMakeLists.txt | 194 +--------------------- + 2 files changed, 7 insertions(+), 189 deletions(-) diff --git a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp index 81549fb54..d2dfb1bcd 100644 @@ -22,7 +22,7 @@ index 81549fb54..d2dfb1bcd 100644 #if defined(PXR_STATIC) # define HIOAVIF_API diff --git a/pxr/imaging/plugin/hioAvif/CMakeLists.txt b/pxr/imaging/plugin/hioAvif/CMakeLists.txt -index 29ffe0fdf..7f1680eaf 100644 +index f4eaeea15..7f1680eaf 100644 --- a/pxr/imaging/plugin/hioAvif/CMakeLists.txt +++ b/pxr/imaging/plugin/hioAvif/CMakeLists.txt @@ -1,6 +1,9 @@ @@ -35,14 +35,11 @@ index 29ffe0fdf..7f1680eaf 100644 pxr_plugin(hioAvif LIBRARIES ar -@@ -8,196 +11,12 @@ pxr_plugin(hioAvif +@@ -8,197 +11,12 @@ pxr_plugin(hioAvif gf hio tf + ${AVIF_LIBRARIES} -+ -+ INCLUDE_DIRS -+ ${AVIF_INCLUDE_DIRS} - PRIVATE_HEADERS - aom/aom.h @@ -53,89 +50,89 @@ index 29ffe0fdf..7f1680eaf 100644 - aom/aom_image.h - aom/aom_integer.h - aom/aomdx.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/aom_external_partition.h - aom/internal/aom_codec_internal.h - aom/internal/aom_image_internal.h -- aom/internal/common/args_helper.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 - AVIF/src/avif/avif.h - AVIF/src/avif/internal.h - AVIF/src/src-libyuv/libyuv/basic_types.h @@ -145,71 +142,74 @@ index 29ffe0fdf..7f1680eaf 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/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 +- 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 - AVIF/src/alpha.c - AVIF/src/avif.c - AVIF/src/codec_aom.c @@ -237,5 +237,5 @@ index 29ffe0fdf..7f1680eaf 100644 RESOURCE_FILES -- -2.49.0 +2.50.1 diff --git a/2266.patch b/2266.patch deleted file mode 100644 index fed49ac..0000000 --- a/2266.patch +++ /dev/null @@ -1,217 +0,0 @@ -From 9ea3bc1ab550ec46c426dab04292d9667ccd2518 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 bbb006302f..ef1ef07a98 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 9f613dd069..19bfb2f6d0 100644 ---- a/pxr/imaging/plugin/hdEmbree/pch.h -+++ b/pxr/imaging/plugin/hdEmbree/pch.h -@@ -76,9 +76,9 @@ - #include - #include - #include --#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 1d8694daa6..72894b9080 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 88d5e79093..820238c373 100644 ---- a/pxr/imaging/plugin/hdEmbree/renderer.cpp -+++ b/pxr/imaging/plugin/hdEmbree/renderer.cpp -@@ -667,9 +667,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 -@@ -1005,9 +1003,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 2da9880848..fc3e062dd8 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/2313.patch b/2313.patch new file mode 100644 index 0000000..74383c0 --- /dev/null +++ b/2313.patch @@ -0,0 +1,510 @@ +From 97de29467ef3ee2e9f9952b7158f9cbad51dac2a Mon Sep 17 00:00:00 2001 +From: Matt Johnson +Date: Thu, 23 Feb 2023 14:17:02 -0700 +Subject: [PATCH 1/7] build_usd.py: wrap the TBB_ROOT parameter value in double + quotes when building Embree + +This ensures that slash characters are properly escaped on Windows. +--- + build_scripts/build_usd.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build_scripts/build_usd.py b/build_scripts/build_usd.py +index 40f6c3296c..ec1a268d78 100644 +--- a/build_scripts/build_usd.py ++++ b/build_scripts/build_usd.py +@@ -1587,7 +1587,7 @@ def InstallMaterialX(context, force, buildArgs): + def InstallEmbree(context, force, buildArgs): + with CurrentWorkingDirectory(DownloadURL(EMBREE_URL, context, force)): + extraArgs = [ +- '-DTBB_ROOT={instDir}'.format(instDir=context.instDir), ++ '-DTBB_ROOT="{instDir}"'.format(instDir=context.instDir), + '-DEMBREE_TUTORIALS=OFF', + '-DEMBREE_ISPC_SUPPORT=OFF' + ] + +From 2679ca564baca476ff7beee448b6d6a85b91a339 Mon Sep 17 00:00:00 2001 +From: Matt Johnson +Date: Thu, 23 Feb 2023 12:20:39 -0700 +Subject: [PATCH 2/7] FindEmbree.cmake: add support for finding Embree versions + 3 or 4 + +--- + cmake/modules/FindEmbree.cmake | 41 +++++++++++++++++++++------------- + 1 file changed, 26 insertions(+), 15 deletions(-) + +diff --git a/cmake/modules/FindEmbree.cmake b/cmake/modules/FindEmbree.cmake +index cd52f6b7f5..4c4ff1cdb2 100644 +--- a/cmake/modules/FindEmbree.cmake ++++ b/cmake/modules/FindEmbree.cmake +@@ -19,12 +19,30 @@ + # + #============================================================================= + ++find_path(EMBREE_INCLUDE_DIR ++ embree4/rtcore.h ++ embree3/rtcore.h ++HINTS ++ "${EMBREE_LOCATION}/include" ++ "$ENV{EMBREE_LOCATION}/include" ++DOC ++ "Embree headers path" ++) ++ ++if (EMBREE_INCLUDE_DIR AND EXISTS "${EMBREE_INCLUDE_DIR}/embree4/rtcore.h") ++ set(EMBREE_VERSIONED_LIBRARY_NAME "embree4") ++ set(EMBREE_VERSION_HEADER_FILE_NAME "rtcore_config.h") ++else() ++ set(EMBREE_VERSIONED_LIBRARY_NAME "embree3") ++ set(EMBREE_VERSION_HEADER_FILE_NAME "rtcore_version.h") ++endif() ++ + if (APPLE) +- set (EMBREE_LIB_NAME libembree3.dylib) ++ set (EMBREE_LIB_NAME "lib${EMBREE_VERSIONED_LIBRARY_NAME}.dylib") + elseif (UNIX) +- set (EMBREE_LIB_NAME libembree3.so) ++ set (EMBREE_LIB_NAME "lib${EMBREE_VERSIONED_LIBRARY_NAME}.so") + elseif (WIN32) +- set (EMBREE_LIB_NAME embree3.lib) ++ set (EMBREE_LIB_NAME "${EMBREE_VERSIONED_LIBRARY_NAME}.lib") + endif() + + find_library(EMBREE_LIBRARY +@@ -38,21 +56,14 @@ find_library(EMBREE_LIBRARY + "Embree library path" + ) + +-find_path(EMBREE_INCLUDE_DIR +- embree3/rtcore.h +-HINTS +- "${EMBREE_LOCATION}/include" +- "$ENV{EMBREE_LOCATION}/include" +-DOC +- "Embree headers path" +-) ++set(EMBREE_VERSION_HEADER_FILE_PATH "${EMBREE_INCLUDE_DIR}/${EMBREE_VERSIONED_LIBRARY_NAME}/${EMBREE_VERSION_HEADER_FILE_NAME}") + +-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_VERSION_HEADER_FILE_PATH}") ++ file(STRINGS "${EMBREE_VERSION_HEADER_FILE_PATH}" 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_VERSION_HEADER_FILE_PATH}" 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_VERSION_HEADER_FILE_PATH}" TMP REGEX "^#define RTC_VERSION_PATCH.*$") + string(REGEX MATCHALL "[0-9]+" PATCH ${TMP}) + + set (EMBREE_VERSION ${MAJOR}.${MINOR}.${PATCH}) + +From c3db8a5d3c7040433f845a99b5c1ff57e5003f31 Mon Sep 17 00:00:00 2001 +From: Matt Johnson +Date: Thu, 16 Feb 2023 16:37:11 -0700 +Subject: [PATCH 3/7] hdEmbree: add support for building against Embree + versions 3 or 4 + +This supports upgrading Embree to a major version 4 release, so it includes +handling for the change in file paths between "embree3" and "embree4" and also +accounts for a small change in API in version 4. RTCIntersectContext was +renamed to RTCRayQueryContext, but it was also made part of the optional +RTCIntersectArguments parameter to rtcIntersect and rtcOccluded functions. +Since the context is not used by hdEmbree, it no longer needs to be provided. +--- + pxr/imaging/plugin/hdEmbree/CMakeLists.txt | 6 ++++++ + pxr/imaging/plugin/hdEmbree/context.h | 6 +++++- + pxr/imaging/plugin/hdEmbree/mesh.h | 9 +++++++-- + pxr/imaging/plugin/hdEmbree/meshSamplers.h | 9 +++++++-- + pxr/imaging/plugin/hdEmbree/pch.h | 6 ++++++ + pxr/imaging/plugin/hdEmbree/renderDelegate.h | 7 ++++++- + pxr/imaging/plugin/hdEmbree/renderParam.h | 6 +++++- + pxr/imaging/plugin/hdEmbree/renderer.cpp | 8 ++++++++ + pxr/imaging/plugin/hdEmbree/renderer.h | 9 +++++++-- + pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp | 7 ++++++- + 10 files changed, 63 insertions(+), 10 deletions(-) + +diff --git a/pxr/imaging/plugin/hdEmbree/CMakeLists.txt b/pxr/imaging/plugin/hdEmbree/CMakeLists.txt +index 96ac989d6c..d843804a15 100644 +--- a/pxr/imaging/plugin/hdEmbree/CMakeLists.txt ++++ b/pxr/imaging/plugin/hdEmbree/CMakeLists.txt +@@ -11,6 +11,12 @@ if (NOT ${PXR_BUILD_GPU_SUPPORT}) + return() + endif() + ++if (EMBREE_VERSION VERSION_GREATER_EQUAL 4.0.0) ++ add_definitions(-DPXR_EMBREE_MAJOR_VERSION=4) ++else() ++ add_definitions(-DPXR_EMBREE_MAJOR_VERSION=3) ++endif() ++ + pxr_plugin(hdEmbree + LIBRARIES + plug +diff --git a/pxr/imaging/plugin/hdEmbree/context.h b/pxr/imaging/plugin/hdEmbree/context.h +index 4165adb1e6..7e5c099b74 100644 +--- a/pxr/imaging/plugin/hdEmbree/context.h ++++ b/pxr/imaging/plugin/hdEmbree/context.h +@@ -14,7 +14,11 @@ + #include "pxr/base/gf/matrix4f.h" + #include "pxr/base/vt/array.h" + +-#include ++#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 ++ #include ++#else ++ #include ++#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 + + PXR_NAMESPACE_OPEN_SCOPE + +diff --git a/pxr/imaging/plugin/hdEmbree/mesh.h b/pxr/imaging/plugin/hdEmbree/mesh.h +index bbb006302f..a6f71f110f 100644 +--- a/pxr/imaging/plugin/hdEmbree/mesh.h ++++ b/pxr/imaging/plugin/hdEmbree/mesh.h +@@ -15,8 +15,13 @@ + + #include "pxr/imaging/plugin/hdEmbree/meshSamplers.h" + +-#include +-#include ++#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 ++ #include ++ #include ++#else ++ #include ++ #include ++#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 + + PXR_NAMESPACE_OPEN_SCOPE + +diff --git a/pxr/imaging/plugin/hdEmbree/meshSamplers.h b/pxr/imaging/plugin/hdEmbree/meshSamplers.h +index c32c35fffa..51459a2ed4 100644 +--- a/pxr/imaging/plugin/hdEmbree/meshSamplers.h ++++ b/pxr/imaging/plugin/hdEmbree/meshSamplers.h +@@ -12,8 +12,13 @@ + #include "pxr/imaging/hd/meshUtil.h" + #include "pxr/base/vt/types.h" + +-#include +-#include ++#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 ++ #include ++ #include ++#else ++ #include ++ #include ++#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 + + #include + +diff --git a/pxr/imaging/plugin/hdEmbree/pch.h b/pxr/imaging/plugin/hdEmbree/pch.h +index 4e16a844d7..901e93859f 100644 +--- a/pxr/imaging/plugin/hdEmbree/pch.h ++++ b/pxr/imaging/plugin/hdEmbree/pch.h +@@ -76,9 +76,15 @@ + #include + #include + #include ++#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 ++#include ++#include ++#include ++#else + #include + #include + #include ++#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 + #ifdef PXR_PYTHON_SUPPORT_ENABLED + #include "pxr/base/tf/pySafePython.h" + #endif // PXR_PYTHON_SUPPORT_ENABLED +diff --git a/pxr/imaging/plugin/hdEmbree/renderDelegate.h b/pxr/imaging/plugin/hdEmbree/renderDelegate.h +index 1d8694daa6..826d020e04 100644 +--- a/pxr/imaging/plugin/hdEmbree/renderDelegate.h ++++ b/pxr/imaging/plugin/hdEmbree/renderDelegate.h +@@ -13,8 +13,13 @@ + #include "pxr/imaging/plugin/hdEmbree/renderer.h" + #include "pxr/base/tf/staticTokens.h" + ++#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 ++ #include ++#else ++ #include ++#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 ++ + #include +-#include + + PXR_NAMESPACE_OPEN_SCOPE + +diff --git a/pxr/imaging/plugin/hdEmbree/renderParam.h b/pxr/imaging/plugin/hdEmbree/renderParam.h +index 206a7458bc..af94ef10a4 100644 +--- a/pxr/imaging/plugin/hdEmbree/renderParam.h ++++ b/pxr/imaging/plugin/hdEmbree/renderParam.h +@@ -11,7 +11,11 @@ + #include "pxr/imaging/hd/renderDelegate.h" + #include "pxr/imaging/hd/renderThread.h" + +-#include ++#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 ++ #include ++#else ++ #include ++#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 + + PXR_NAMESPACE_OPEN_SCOPE + +diff --git a/pxr/imaging/plugin/hdEmbree/renderer.cpp b/pxr/imaging/plugin/hdEmbree/renderer.cpp +index cc8ddb0270..8cbf8d4959 100644 +--- a/pxr/imaging/plugin/hdEmbree/renderer.cpp ++++ b/pxr/imaging/plugin/hdEmbree/renderer.cpp +@@ -709,9 +709,13 @@ HdEmbreeRenderer::_TraceRay(unsigned int x, unsigned int y, + rayHit.ray.flags = 0; + _PopulateRayHit(&rayHit, origin, dir, 0.0f); + { ++#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 ++ rtcIntersect1(_scene, &rayHit); ++#else + RTCIntersectContext context; + rtcInitIntersectContext(&context); + rtcIntersect1(_scene, &context, &rayHit); ++#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 + // + // there is something odd about how this is used in Embree. Is it reversed + // here and then when it it used in +@@ -1047,9 +1051,13 @@ HdEmbreeRenderer::_ComputeAmbientOcclusion(GfVec3f const& position, + shadow.flags = 0; + _PopulateRay(&shadow, position, shadowDir, 0.001f); + { ++#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 ++ rtcOccluded1(_scene, &shadow); ++#else + RTCIntersectContext context; + rtcInitIntersectContext(&context); + rtcOccluded1(_scene,&context,&shadow); ++#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 + } + + // 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 2da9880848..913b83eccc 100644 +--- a/pxr/imaging/plugin/hdEmbree/renderer.h ++++ b/pxr/imaging/plugin/hdEmbree/renderer.h +@@ -15,8 +15,13 @@ + #include "pxr/base/gf/matrix4d.h" + #include "pxr/base/gf/rect2i.h" + +-#include +-#include ++#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 ++ #include ++ #include ++#else ++ #include ++ #include ++#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 + + #include + #include +diff --git a/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp b/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp +index 02c2ca69f8..45370dfed0 100644 +--- a/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp ++++ b/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp +@@ -23,7 +23,12 @@ + + #include "pxr/base/tf/errorMark.h" + +-#include ++#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 ++ #include ++#else ++ #include ++#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 ++ + #include + + PXR_NAMESPACE_USING_DIRECTIVE + +From 9c67986d0a7e76babead0d1fdf5190f264c1a8b9 Mon Sep 17 00:00:00 2001 +From: Matt Johnson +Date: Wed, 24 Jul 2024 10:07:44 -0400 +Subject: [PATCH 4/7] build_usd.py: update Embree URLs to reflect new home in + the RenderKit GitHub organization + +--- + build_scripts/build_usd.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/build_scripts/build_usd.py b/build_scripts/build_usd.py +index ec1a268d78..afa4763c8d 100644 +--- a/build_scripts/build_usd.py ++++ b/build_scripts/build_usd.py +@@ -1580,9 +1580,9 @@ def InstallMaterialX(context, force, buildArgs): + # For MacOS we use version 3.13.3 to include a fix from Intel + # to build on Apple Silicon. + if MacOS(): +- EMBREE_URL = "https://github.com/embree/embree/archive/v3.13.3.zip" ++ EMBREE_URL = "https://github.com/RenderKit/embree/archive/v3.13.3.zip" + else: +- EMBREE_URL = "https://github.com/embree/embree/archive/v3.2.2.zip" ++ EMBREE_URL = "https://github.com/RenderKit/embree/archive/v3.2.2.zip" + + def InstallEmbree(context, force, buildArgs): + with CurrentWorkingDirectory(DownloadURL(EMBREE_URL, context, force)): + +From 0e3f0e8b595e74312c7fbd1b378a96d3b5e85723 Mon Sep 17 00:00:00 2001 +From: Matt Johnson +Date: Thu, 23 Feb 2023 12:25:24 -0700 +Subject: [PATCH 5/7] build_usd.py: add an option to choose Embree 3 or Embree + 4 + +The new --embree-major-version option can be given to build_usd.py to select +between Embree 3 or Embree 4. By default, Embree 3 is still used, preserving +the existing behavior. +--- + build_scripts/build_usd.py | 31 ++++++++++++++++++++++++------- + 1 file changed, 24 insertions(+), 7 deletions(-) + +diff --git a/build_scripts/build_usd.py b/build_scripts/build_usd.py +index afa4763c8d..f932c85b5d 100644 +--- a/build_scripts/build_usd.py ++++ b/build_scripts/build_usd.py +@@ -1577,14 +1577,19 @@ def InstallMaterialX(context, force, buildArgs): + + ############################################################ + # Embree +-# For MacOS we use version 3.13.3 to include a fix from Intel +-# to build on Apple Silicon. +-if MacOS(): +- EMBREE_URL = "https://github.com/RenderKit/embree/archive/v3.13.3.zip" +-else: +- EMBREE_URL = "https://github.com/RenderKit/embree/archive/v3.2.2.zip" ++ ++EMBREE_DEFAULT_MAJOR_VERSION = 3 + + def InstallEmbree(context, force, buildArgs): ++ if context.embreeMajorVersion >= 4: ++ EMBREE_URL = "https://github.com/RenderKit/embree/archive/refs/tags/v4.4.0.zip" ++ elif MacOS(): ++ # For MacOS we use version 3.13.3 to include a fix from Intel ++ # to build on Apple Silicon. ++ EMBREE_URL = "https://github.com/RenderKit/embree/archive/refs/tags/v3.13.3.zip" ++ else: ++ EMBREE_URL = "https://github.com/RenderKit/embree/archive/refs/tags/v3.2.2.zip" ++ + with CurrentWorkingDirectory(DownloadURL(EMBREE_URL, context, force)): + extraArgs = [ + '-DTBB_ROOT="{instDir}"'.format(instDir=context.instDir), +@@ -1601,7 +1606,9 @@ def InstallEmbree(context, force, buildArgs): + + RunCMake(context, force, extraArgs) + +-EMBREE = Dependency("Embree", InstallEmbree, "include/embree3/rtcore.h") ++EMBREE = Dependency("Embree", InstallEmbree, ++ "include/embree3/rtcore.h", ++ "include/embree4/rtcore.h") + + ############################################################ + # AnimX +@@ -2121,6 +2128,12 @@ def InstallUSD(context, force, buildArgs): + help="Build Embree sample imaging plugin") + subgroup.add_argument("--no-embree", dest="build_embree", action="store_false", + help="Do not build Embree sample imaging plugin (default)") ++group.add_argument("--embree-major-version", ++ default=EMBREE_DEFAULT_MAJOR_VERSION, type=int, ++ choices=[3, 4], ++ help=( ++ "The major version of Embree to build " ++ "(default: {})").format(EMBREE_DEFAULT_MAJOR_VERSION)) + subgroup = group.add_mutually_exclusive_group() + subgroup.add_argument("--prman", dest="build_prman", action="store_true", + default=False, +@@ -2342,6 +2355,7 @@ def __init__(self, args): + + # - Imaging plugins + self.buildEmbree = self.buildImaging and args.build_embree ++ self.embreeMajorVersion = args.embree_major_version + self.buildPrman = self.buildImaging and args.build_prman + self.prmanLocation = (os.path.abspath(args.prman_location) + if args.prman_location else None) +@@ -2656,6 +2670,7 @@ def _JoinVersion(v): + OpenImageIO support: {buildOIIO} + OpenColorIO support: {buildOCIO} + Embree support: {buildEmbree} ++ Embree major version: {embreeMajorVersion} + PRMan support: {buildPrman} + Vulkan support: {enableVulkan} + UsdImaging {buildUsdImaging} +@@ -2738,6 +2753,8 @@ def FormatBuildArguments(buildArgs): + buildOIIO=("On" if context.buildOIIO else "Off"), + buildOCIO=("On" if context.buildOCIO else "Off"), + buildEmbree=("On" if context.buildEmbree else "Off"), ++ embreeMajorVersion=(context.embreeMajorVersion if context.buildEmbree ++ else "N/A"), + buildPrman=("On" if context.buildPrman else "Off"), + buildUsdImaging=("On" if context.buildUsdImaging else "Off"), + buildUsdview=("On" if context.buildUsdview else "Off"), + +From c96c972bc116e46bef477493b86b535f9b115545 Mon Sep 17 00:00:00 2001 +From: Matt Johnson +Date: Thu, 12 Jun 2025 17:46:43 -0400 +Subject: [PATCH 6/7] hdEmbree: use a header common between TBB and oneTBB in + limits workaround + +The TBB header that provides version definitions moved between TBB +(tbb_stddef.h) and oneTBB (version.h), so we use the lowest level +header that is available at the same path in both and let it bring in +the definitions. This allows the hdEmbree plugin to be built with +oneTBB when used in combination with Embree 4. +--- + pxr/imaging/plugin/hdEmbree/renderer.cpp | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/pxr/imaging/plugin/hdEmbree/renderer.cpp b/pxr/imaging/plugin/hdEmbree/renderer.cpp +index 8cbf8d4959..381bed73e5 100644 +--- a/pxr/imaging/plugin/hdEmbree/renderer.cpp ++++ b/pxr/imaging/plugin/hdEmbree/renderer.cpp +@@ -28,8 +28,13 @@ + // oneTBB as a min spec. This applies the "Work" thread limit to the + // render thread if "Work" is using old TBB, but won't affect other "Work" + // implementations. Note that it may affect Embree TBB usage as well. ++// ++// The header that provides version definitions moved between TBB ++// (tbb_stddef.h) and oneTBB (version.h), so we use the lowest level header ++// that is available at the same path in both and let it bring in the ++// definitions. + // ------------------------------------------------------------------------- +-#include ++#include + + #if TBB_INTERFACE_VERSION_MAJOR < 12 + + +From a464dc5dcc9a26f552a3ece42dab949ae03d35df Mon Sep 17 00:00:00 2001 +From: Matt Johnson +Date: Wed, 24 Jul 2024 10:17:27 -0400 +Subject: [PATCH 7/7] build_usd.py: allow oneTBB and Embree to be used together + when Embree 4.x or later is selected + +--- + build_scripts/build_usd.py | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/build_scripts/build_usd.py b/build_scripts/build_usd.py +index f932c85b5d..949acadb42 100644 +--- a/build_scripts/build_usd.py ++++ b/build_scripts/build_usd.py +@@ -2473,9 +2473,10 @@ def ForceBuildDependency(self, dep): + PrintError("Draco plugin can not be enabled for monolithic build on Windows") + sys.exit(1) + +-# The versions of Embree we currently support do not support oneTBB. +-if context.buildOneTBB and context.buildEmbree: +- PrintError("Embree support cannot be enabled when building against oneTBB") ++# When building with both oneTBB and Embree, a 4.x version of Embree must be ++# used. ++if context.buildOneTBB and (context.buildEmbree and context.embreeMajorVersion < 4): ++ PrintError("Embree 4.x or later must be selected when building against oneTBB") + sys.exit(1) + + # Windows ARM64 requires oneTBB. Since oneTBB is a non-standard option for the diff --git a/sources b/sources index 2a14b27..2a65832 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-25.05.01.tar.gz) = 66bf75486f09dce7085c5c80cc3e005c02c1dfbbfbd02c8e2e8fd9498030ca49cd6bc0a9b9db930d0559c745cf77ebaf822018de4bf798cce84fdf0aa89f0d84 +SHA512 (OpenUSD-25.08.tar.gz) = fbe1e632473883e47f4bfeb16cab314bbbe8a7b404a5c071ca613bbf288526e505edd7a5edfdd9f85dd16da6d0d91fa0d4f8c783882094d3691f77685817fea6 diff --git a/usd.spec b/usd.spec index 2c45cea..c1c00a2 100644 --- a/usd.spec +++ b/usd.spec @@ -2,7 +2,7 @@ # 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.25.5 +%global downstream_so_version 0.25.8 %bcond alembic 1 %bcond draco 1 @@ -27,7 +27,7 @@ %bcond test 0 Name: usd -Version: 25.05.01 +Version: 25.08 Release: %autorelease Summary: 3D VFX pipeline interchange file format @@ -126,12 +126,17 @@ Source1: org.openusd.usdview.desktop # built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) Patch: 0001-Downstream-only-add-an-SONAME-version.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/2313 -Patch: %{forgeurl}/pull/2266.patch +Patch: %{forgeurl}/pull/2313.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 # Downstream-only: use the system double-conversion library Patch: 0001-Downstream-only-use-the-system-double-conversion-lib.patch @@ -175,6 +180,9 @@ 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 @@ -552,6 +560,7 @@ 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"} \ \ @@ -586,6 +595,10 @@ 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 \ From 4c4b91fe36e9b9a2c4fcfd79da353aa9f3aaebe4 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 15:21:43 +0200 Subject: [PATCH 52/85] Rebuilt for Python 3.14.0rc2 bytecode From ee49c71c00536135da3f8dfbc8e4508ee6220d33 Mon Sep 17 00:00:00 2001 From: Jerry James Date: Thu, 21 Aug 2025 08:26:34 -0600 Subject: [PATCH 53/85] Rebuild for tbb 2022.2.0 From 3721e20bfe0cd4eadb42da7d1153e7d993b6915d Mon Sep 17 00:00:00 2001 From: Richard Shaw Date: Tue, 16 Sep 2025 12:02:47 -0500 Subject: [PATCH 54/85] Rebuild for OpenImageIO 3. From 74c20c0fa2f8abefea31a22beef153f54f49dc27 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 15:01:43 +0200 Subject: [PATCH 55/85] Rebuilt for Python 3.14.0rc3 bytecode From bccb5c96c3cc140387c1e1dfd8ea63f1379f0dd7 Mon Sep 17 00:00:00 2001 From: Luya Tshimbalanga Date: Tue, 30 Sep 2025 15:06:28 -0700 Subject: [PATCH 56/85] Rebuild for openvdb 12.1.1 From c8eae5d8a64704e331425dc4a1c3bf9c33c60264 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 27 Oct 2025 18:52:19 +0000 Subject: [PATCH 57/85] Rebuilt for opensubdiv 3.7.0~RC1 (fix RHBZ#2406597) From 734e75b372c6868ab5cbe569061d385a627dd32e Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 27 Oct 2025 21:14:39 +0000 Subject: [PATCH 58/85] Add direct build dependency on OpenCL as a workaround --- usd.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/usd.spec b/usd.spec index c1c00a2..26e7309 100644 --- a/usd.spec +++ b/usd.spec @@ -167,6 +167,11 @@ BuildRequires: pkgconfig(dri) BuildRequires: hdf5-devel BuildRequires: cmake(OpenSubdiv) 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) From 6172607253b60fcacff4678ace28648ef72cdf4f Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 26 Oct 2025 05:12:37 +0000 Subject: [PATCH 59/85] Update to 25.11 (close RHBZ#2406284) --- .gitignore | 1 + ...ownstream-only-add-an-SONAME-version.patch | 36 +- ...use-Valgrind-macro-instead-of-inline.patch | 8 +- ...use-the-system-double-conversion-lib.patch | 8 +- ...ream-only-use-the-system-lz4-library.patch | 8 +- ...-only-use-the-system-pugixml-library.patch | 4 +- ...nly-use-the-system-rapidjson-library.patch | 15 +- ...tream-only-use-the-system-libdeflate.patch | 24 +- ...wnstream-only-use-the-system-libavif.patch | 6 +- 2313.patch | 510 ------------------ sources | 2 +- usd.spec | 24 +- 12 files changed, 74 insertions(+), 572 deletions(-) delete mode 100644 2313.patch diff --git a/.gitignore b/.gitignore index d0e0d07..a6f122a 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ /OpenUSD-25.05.tar.gz /OpenUSD-25.05.01.tar.gz /OpenUSD-25.08.tar.gz +/OpenUSD-25.11.tar.gz diff --git a/0001-Downstream-only-add-an-SONAME-version.patch b/0001-Downstream-only-add-an-SONAME-version.patch index 250eae0..aeb48ad 100644 --- a/0001-Downstream-only-add-an-SONAME-version.patch +++ b/0001-Downstream-only-add-an-SONAME-version.patch @@ -1,4 +1,4 @@ -From 483ce5b8e320e89016fff7b3480216ba94c032ff Mon Sep 17 00:00:00 2001 +From 2f2ebd688c7e6804014ea183163954f48e7622af 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,15 +33,15 @@ built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) --- cmake/defaults/Version.cmake | 6 ++++++ cmake/macros/Private.cmake | 1 + - cmake/macros/Public.cmake | 1 + - 3 files changed, 8 insertions(+) + cmake/macros/Public.cmake | 2 ++ + 3 files changed, 9 insertions(+) diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake -index 447c74e4d..a990f071b 100644 +index 20e70edb2..c3e072e1a 100644 --- a/cmake/defaults/Version.cmake +++ b/cmake/defaults/Version.cmake @@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "25") - set(PXR_PATCH_VERSION "8") # NOTE: Must not have leading 0 for single digits + set(PXR_PATCH_VERSION "11") # 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,29 +51,37 @@ index 447c74e4d..a990f071b 100644 + "Downstream shared object version" +) diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake -index 6fe1134c1..06aecd083 100644 +index b90b743de..7af8b89c2 100644 --- a/cmake/macros/Private.cmake +++ b/cmake/macros/Private.cmake -@@ -1372,6 +1372,7 @@ function(_pxr_library NAME) +@@ -1304,6 +1304,7 @@ function(_pxr_library NAME) + FOLDER "${folder}" + POSITION_INDEPENDENT_CODE ON 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 807cf7d83..7225af783 100644 +index b8e588bf3..cf64607c8 100644 --- a/cmake/macros/Public.cmake +++ b/cmake/macros/Public.cmake -@@ -1121,6 +1121,7 @@ function(pxr_toplevel_prologue) - FOLDER "${folder}" +@@ -414,6 +414,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}" +@@ -1152,6 +1153,7 @@ function(pxr_toplevel_prologue) PREFIX "${libPrefix}" IMPORT_PREFIX "${libPrefix}" + OUTPUT_NAME ${libName} + SOVERSION ${PXR_DOWNSTREAM_SOVERSION} ) _get_install_dir("lib" libInstallPrefix) install( -- -2.50.1 +2.51.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 index 62f0370..4ca709f 100644 --- a/0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch +++ b/0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch @@ -1,4 +1,4 @@ -From 75d4451fa64e086edd9d621af681df13cebde5eb Mon Sep 17 00:00:00 2001 +From bb5d6070945c671d3192e2c6c939b941f50991fc 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 @@ -13,7 +13,7 @@ on aarch64. 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/pxr/exec/vdf/executorDataVector.cpp b/pxr/exec/vdf/executorDataVector.cpp -index 12f9e517e..7e5625678 100644 +index 96dacca06..7e5625678 100644 --- a/pxr/exec/vdf/executorDataVector.cpp +++ b/pxr/exec/vdf/executorDataVector.cpp @@ -11,40 +11,18 @@ @@ -35,7 +35,7 @@ index 12f9e517e..7e5625678 100644 static inline void Vdf_ExecutorDataVector_ValgrindMakeDefined(void *ptr, size_t size) { --#if defined(ARCH_OS_LINUX) +-#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] = { @@ -61,5 +61,5 @@ index 12f9e517e..7e5625678 100644 Vdf_ExecutorDataVector::~Vdf_ExecutorDataVector() -- -2.50.1 +2.51.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 1d2a648..3b8f6e5 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 23bda0e3337d7a27696a000a47eaf36840650c69 Mon Sep 17 00:00:00 2001 +From 70ca2a5a93b263c1f42502e6b800f46fe1f0d91f 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,7 +8,7 @@ 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 fade8d559..5d9272087 100644 +index 1b1aa9dbe..f2d58fd15 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -110,11 +110,14 @@ function(add_py_dll_link_test) @@ -26,7 +26,7 @@ index fade8d559..5d9272087 100644 PUBLIC_CLASSES anyUniquePtr -@@ -278,14 +281,6 @@ pxr_library(tf +@@ -277,14 +280,6 @@ pxr_library(tf CPPFILES initConfig.cpp @@ -42,5 +42,5 @@ index fade8d559..5d9272087 100644 PYMODULE_CPPFILES -- -2.50.1 +2.51.0 diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index c72d25a..26affbf 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,4 +1,4 @@ -From 3492a9fb0fccfe52ed5258e943381d48d28be3e5 Mon Sep 17 00:00:00 2001 +From 64a603b9c6278f3287cd2769f0fb5ebd9356ae74 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 @@ -8,7 +8,7 @@ Subject: [PATCH 2/6] Downstream-only: use the system lz4 library 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt -index 5d9272087..c4130882c 100644 +index f2d58fd15..7433f0591 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -111,6 +111,8 @@ function(add_py_dll_link_test) @@ -31,7 +31,7 @@ index 5d9272087..c4130882c 100644 PUBLIC_CLASSES anyUniquePtr -@@ -281,7 +287,6 @@ pxr_library(tf +@@ -280,7 +286,6 @@ pxr_library(tf CPPFILES initConfig.cpp @@ -40,5 +40,5 @@ index 5d9272087..c4130882c 100644 PYMODULE_CPPFILES module.cpp -- -2.50.1 +2.51.0 diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch index 2bab595..1051ecd 100644 --- a/0003-Downstream-only-use-the-system-pugixml-library.patch +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -1,4 +1,4 @@ -From 98f62852495fb2c86047eff532a3af2a5b88792b Mon Sep 17 00:00:00 2001 +From 48a4ad95bbe1e5675922da4eaf863bd208c0167b 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 @@ -35,5 +35,5 @@ index 244f27aa8..1e00413c4 100644 PRIVATE_HEADERS api.h -- -2.50.1 +2.51.0 diff --git a/0004-Downstream-only-use-the-system-rapidjson-library.patch b/0004-Downstream-only-use-the-system-rapidjson-library.patch index 8d1c7e6..cd90d76 100644 --- a/0004-Downstream-only-use-the-system-rapidjson-library.patch +++ b/0004-Downstream-only-use-the-system-rapidjson-library.patch @@ -1,22 +1,23 @@ -From aa1063129297e469ddd709c7ee4d0406f9bae08f Mon Sep 17 00:00:00 2001 +From 48c8a77ae5ba717b8651585302939a36126d286c 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 | 37 ------------------------------------- - 1 file changed, 37 deletions(-) + pxr/base/js/CMakeLists.txt | 40 -------------------------------------- + 1 file changed, 40 deletions(-) diff --git a/pxr/base/js/CMakeLists.txt b/pxr/base/js/CMakeLists.txt -index d59dc1f6d..086d1bc48 100644 +index 632c061e5..62696a341 100644 --- a/pxr/base/js/CMakeLists.txt +++ b/pxr/base/js/CMakeLists.txt -@@ -15,43 +15,6 @@ pxr_library(js +@@ -15,46 +15,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 @@ -26,6 +27,7 @@ index d59dc1f6d..086d1bc48 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 @@ -50,11 +52,12 @@ index d59dc1f6d..086d1bc48 100644 - rapidjson/schema.h - rapidjson/stream.h - rapidjson/stringbuffer.h +- rapidjson/uri.h - rapidjson/writer.h - DOXYGEN_FILES overview.dox ) -- -2.50.1 +2.51.0 diff --git a/0005-Downstream-only-use-the-system-libdeflate.patch b/0005-Downstream-only-use-the-system-libdeflate.patch index e76eeb6..5549f98 100644 --- a/0005-Downstream-only-use-the-system-libdeflate.patch +++ b/0005-Downstream-only-use-the-system-libdeflate.patch @@ -1,16 +1,16 @@ -From 4b1c527468f9c43e04a1ff773cec6a9f9ca0b5ae Mon Sep 17 00:00:00 2001 +From 614a6a01271cfaaa2421f58289cc1267685c75a9 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 +++++++ - pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c | 3 +-- - pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h | 12 ------------ + 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(-) diff --git a/pxr/imaging/hio/CMakeLists.txt b/pxr/imaging/hio/CMakeLists.txt -index 75e1e6298..09264c600 100644 +index e61fc7c54..7cfbe9d70 100644 --- a/pxr/imaging/hio/CMakeLists.txt +++ b/pxr/imaging/hio/CMakeLists.txt @@ -1,6 +1,9 @@ @@ -34,10 +34,10 @@ index 75e1e6298..09264c600 100644 PUBLIC_CLASSES fieldTextureData -diff --git a/pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c b/pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c +diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c index a672e833b..1d2eaea56 100644 ---- a/pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c -+++ b/pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c +--- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c ++++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c @@ -8,8 +8,7 @@ #include "internal_memory.h" #include "internal_structs.h" @@ -48,10 +48,10 @@ index a672e833b..1d2eaea56 100644 #if ( \ LIBDEFLATE_VERSION_MAJOR > 1 || \ -diff --git a/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h b/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h +diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h index 7481a346e..71bdde9cc 100644 ---- a/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h -+++ b/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h +--- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h ++++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h @@ -8,18 +8,6 @@ #include "OpenEXRCore/openexr_config.h" @@ -72,5 +72,5 @@ index 7481a346e..71bdde9cc 100644 #include "OpenEXRCore/attributes.c" -- -2.50.1 +2.51.0 diff --git a/0006-Downstream-only-use-the-system-libavif.patch b/0006-Downstream-only-use-the-system-libavif.patch index fe06223..e1a6178 100644 --- a/0006-Downstream-only-use-the-system-libavif.patch +++ b/0006-Downstream-only-use-the-system-libavif.patch @@ -1,4 +1,4 @@ -From 8ebd20bf9e0e945457215dba1d56a25408f860a6 Mon Sep 17 00:00:00 2001 +From a7e7a94bed76d6b24bfbf9a2c4aa1cf9d57564ab 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 @@ -22,7 +22,7 @@ index 81549fb54..d2dfb1bcd 100644 #if defined(PXR_STATIC) # define HIOAVIF_API diff --git a/pxr/imaging/plugin/hioAvif/CMakeLists.txt b/pxr/imaging/plugin/hioAvif/CMakeLists.txt -index f4eaeea15..7f1680eaf 100644 +index 1a81d50b1..fd89502a7 100644 --- a/pxr/imaging/plugin/hioAvif/CMakeLists.txt +++ b/pxr/imaging/plugin/hioAvif/CMakeLists.txt @@ -1,6 +1,9 @@ @@ -237,5 +237,5 @@ index f4eaeea15..7f1680eaf 100644 RESOURCE_FILES -- -2.50.1 +2.51.0 diff --git a/2313.patch b/2313.patch deleted file mode 100644 index 74383c0..0000000 --- a/2313.patch +++ /dev/null @@ -1,510 +0,0 @@ -From 97de29467ef3ee2e9f9952b7158f9cbad51dac2a Mon Sep 17 00:00:00 2001 -From: Matt Johnson -Date: Thu, 23 Feb 2023 14:17:02 -0700 -Subject: [PATCH 1/7] build_usd.py: wrap the TBB_ROOT parameter value in double - quotes when building Embree - -This ensures that slash characters are properly escaped on Windows. ---- - build_scripts/build_usd.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/build_scripts/build_usd.py b/build_scripts/build_usd.py -index 40f6c3296c..ec1a268d78 100644 ---- a/build_scripts/build_usd.py -+++ b/build_scripts/build_usd.py -@@ -1587,7 +1587,7 @@ def InstallMaterialX(context, force, buildArgs): - def InstallEmbree(context, force, buildArgs): - with CurrentWorkingDirectory(DownloadURL(EMBREE_URL, context, force)): - extraArgs = [ -- '-DTBB_ROOT={instDir}'.format(instDir=context.instDir), -+ '-DTBB_ROOT="{instDir}"'.format(instDir=context.instDir), - '-DEMBREE_TUTORIALS=OFF', - '-DEMBREE_ISPC_SUPPORT=OFF' - ] - -From 2679ca564baca476ff7beee448b6d6a85b91a339 Mon Sep 17 00:00:00 2001 -From: Matt Johnson -Date: Thu, 23 Feb 2023 12:20:39 -0700 -Subject: [PATCH 2/7] FindEmbree.cmake: add support for finding Embree versions - 3 or 4 - ---- - cmake/modules/FindEmbree.cmake | 41 +++++++++++++++++++++------------- - 1 file changed, 26 insertions(+), 15 deletions(-) - -diff --git a/cmake/modules/FindEmbree.cmake b/cmake/modules/FindEmbree.cmake -index cd52f6b7f5..4c4ff1cdb2 100644 ---- a/cmake/modules/FindEmbree.cmake -+++ b/cmake/modules/FindEmbree.cmake -@@ -19,12 +19,30 @@ - # - #============================================================================= - -+find_path(EMBREE_INCLUDE_DIR -+ embree4/rtcore.h -+ embree3/rtcore.h -+HINTS -+ "${EMBREE_LOCATION}/include" -+ "$ENV{EMBREE_LOCATION}/include" -+DOC -+ "Embree headers path" -+) -+ -+if (EMBREE_INCLUDE_DIR AND EXISTS "${EMBREE_INCLUDE_DIR}/embree4/rtcore.h") -+ set(EMBREE_VERSIONED_LIBRARY_NAME "embree4") -+ set(EMBREE_VERSION_HEADER_FILE_NAME "rtcore_config.h") -+else() -+ set(EMBREE_VERSIONED_LIBRARY_NAME "embree3") -+ set(EMBREE_VERSION_HEADER_FILE_NAME "rtcore_version.h") -+endif() -+ - if (APPLE) -- set (EMBREE_LIB_NAME libembree3.dylib) -+ set (EMBREE_LIB_NAME "lib${EMBREE_VERSIONED_LIBRARY_NAME}.dylib") - elseif (UNIX) -- set (EMBREE_LIB_NAME libembree3.so) -+ set (EMBREE_LIB_NAME "lib${EMBREE_VERSIONED_LIBRARY_NAME}.so") - elseif (WIN32) -- set (EMBREE_LIB_NAME embree3.lib) -+ set (EMBREE_LIB_NAME "${EMBREE_VERSIONED_LIBRARY_NAME}.lib") - endif() - - find_library(EMBREE_LIBRARY -@@ -38,21 +56,14 @@ find_library(EMBREE_LIBRARY - "Embree library path" - ) - --find_path(EMBREE_INCLUDE_DIR -- embree3/rtcore.h --HINTS -- "${EMBREE_LOCATION}/include" -- "$ENV{EMBREE_LOCATION}/include" --DOC -- "Embree headers path" --) -+set(EMBREE_VERSION_HEADER_FILE_PATH "${EMBREE_INCLUDE_DIR}/${EMBREE_VERSIONED_LIBRARY_NAME}/${EMBREE_VERSION_HEADER_FILE_NAME}") - --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_VERSION_HEADER_FILE_PATH}") -+ file(STRINGS "${EMBREE_VERSION_HEADER_FILE_PATH}" 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_VERSION_HEADER_FILE_PATH}" 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_VERSION_HEADER_FILE_PATH}" TMP REGEX "^#define RTC_VERSION_PATCH.*$") - string(REGEX MATCHALL "[0-9]+" PATCH ${TMP}) - - set (EMBREE_VERSION ${MAJOR}.${MINOR}.${PATCH}) - -From c3db8a5d3c7040433f845a99b5c1ff57e5003f31 Mon Sep 17 00:00:00 2001 -From: Matt Johnson -Date: Thu, 16 Feb 2023 16:37:11 -0700 -Subject: [PATCH 3/7] hdEmbree: add support for building against Embree - versions 3 or 4 - -This supports upgrading Embree to a major version 4 release, so it includes -handling for the change in file paths between "embree3" and "embree4" and also -accounts for a small change in API in version 4. RTCIntersectContext was -renamed to RTCRayQueryContext, but it was also made part of the optional -RTCIntersectArguments parameter to rtcIntersect and rtcOccluded functions. -Since the context is not used by hdEmbree, it no longer needs to be provided. ---- - pxr/imaging/plugin/hdEmbree/CMakeLists.txt | 6 ++++++ - pxr/imaging/plugin/hdEmbree/context.h | 6 +++++- - pxr/imaging/plugin/hdEmbree/mesh.h | 9 +++++++-- - pxr/imaging/plugin/hdEmbree/meshSamplers.h | 9 +++++++-- - pxr/imaging/plugin/hdEmbree/pch.h | 6 ++++++ - pxr/imaging/plugin/hdEmbree/renderDelegate.h | 7 ++++++- - pxr/imaging/plugin/hdEmbree/renderParam.h | 6 +++++- - pxr/imaging/plugin/hdEmbree/renderer.cpp | 8 ++++++++ - pxr/imaging/plugin/hdEmbree/renderer.h | 9 +++++++-- - pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp | 7 ++++++- - 10 files changed, 63 insertions(+), 10 deletions(-) - -diff --git a/pxr/imaging/plugin/hdEmbree/CMakeLists.txt b/pxr/imaging/plugin/hdEmbree/CMakeLists.txt -index 96ac989d6c..d843804a15 100644 ---- a/pxr/imaging/plugin/hdEmbree/CMakeLists.txt -+++ b/pxr/imaging/plugin/hdEmbree/CMakeLists.txt -@@ -11,6 +11,12 @@ if (NOT ${PXR_BUILD_GPU_SUPPORT}) - return() - endif() - -+if (EMBREE_VERSION VERSION_GREATER_EQUAL 4.0.0) -+ add_definitions(-DPXR_EMBREE_MAJOR_VERSION=4) -+else() -+ add_definitions(-DPXR_EMBREE_MAJOR_VERSION=3) -+endif() -+ - pxr_plugin(hdEmbree - LIBRARIES - plug -diff --git a/pxr/imaging/plugin/hdEmbree/context.h b/pxr/imaging/plugin/hdEmbree/context.h -index 4165adb1e6..7e5c099b74 100644 ---- a/pxr/imaging/plugin/hdEmbree/context.h -+++ b/pxr/imaging/plugin/hdEmbree/context.h -@@ -14,7 +14,11 @@ - #include "pxr/base/gf/matrix4f.h" - #include "pxr/base/vt/array.h" - --#include -+#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 -+ #include -+#else -+ #include -+#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 - - PXR_NAMESPACE_OPEN_SCOPE - -diff --git a/pxr/imaging/plugin/hdEmbree/mesh.h b/pxr/imaging/plugin/hdEmbree/mesh.h -index bbb006302f..a6f71f110f 100644 ---- a/pxr/imaging/plugin/hdEmbree/mesh.h -+++ b/pxr/imaging/plugin/hdEmbree/mesh.h -@@ -15,8 +15,13 @@ - - #include "pxr/imaging/plugin/hdEmbree/meshSamplers.h" - --#include --#include -+#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 -+ #include -+ #include -+#else -+ #include -+ #include -+#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 - - PXR_NAMESPACE_OPEN_SCOPE - -diff --git a/pxr/imaging/plugin/hdEmbree/meshSamplers.h b/pxr/imaging/plugin/hdEmbree/meshSamplers.h -index c32c35fffa..51459a2ed4 100644 ---- a/pxr/imaging/plugin/hdEmbree/meshSamplers.h -+++ b/pxr/imaging/plugin/hdEmbree/meshSamplers.h -@@ -12,8 +12,13 @@ - #include "pxr/imaging/hd/meshUtil.h" - #include "pxr/base/vt/types.h" - --#include --#include -+#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 -+ #include -+ #include -+#else -+ #include -+ #include -+#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 - - #include - -diff --git a/pxr/imaging/plugin/hdEmbree/pch.h b/pxr/imaging/plugin/hdEmbree/pch.h -index 4e16a844d7..901e93859f 100644 ---- a/pxr/imaging/plugin/hdEmbree/pch.h -+++ b/pxr/imaging/plugin/hdEmbree/pch.h -@@ -76,9 +76,15 @@ - #include - #include - #include -+#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 -+#include -+#include -+#include -+#else - #include - #include - #include -+#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 - #ifdef PXR_PYTHON_SUPPORT_ENABLED - #include "pxr/base/tf/pySafePython.h" - #endif // PXR_PYTHON_SUPPORT_ENABLED -diff --git a/pxr/imaging/plugin/hdEmbree/renderDelegate.h b/pxr/imaging/plugin/hdEmbree/renderDelegate.h -index 1d8694daa6..826d020e04 100644 ---- a/pxr/imaging/plugin/hdEmbree/renderDelegate.h -+++ b/pxr/imaging/plugin/hdEmbree/renderDelegate.h -@@ -13,8 +13,13 @@ - #include "pxr/imaging/plugin/hdEmbree/renderer.h" - #include "pxr/base/tf/staticTokens.h" - -+#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 -+ #include -+#else -+ #include -+#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 -+ - #include --#include - - PXR_NAMESPACE_OPEN_SCOPE - -diff --git a/pxr/imaging/plugin/hdEmbree/renderParam.h b/pxr/imaging/plugin/hdEmbree/renderParam.h -index 206a7458bc..af94ef10a4 100644 ---- a/pxr/imaging/plugin/hdEmbree/renderParam.h -+++ b/pxr/imaging/plugin/hdEmbree/renderParam.h -@@ -11,7 +11,11 @@ - #include "pxr/imaging/hd/renderDelegate.h" - #include "pxr/imaging/hd/renderThread.h" - --#include -+#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 -+ #include -+#else -+ #include -+#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 - - PXR_NAMESPACE_OPEN_SCOPE - -diff --git a/pxr/imaging/plugin/hdEmbree/renderer.cpp b/pxr/imaging/plugin/hdEmbree/renderer.cpp -index cc8ddb0270..8cbf8d4959 100644 ---- a/pxr/imaging/plugin/hdEmbree/renderer.cpp -+++ b/pxr/imaging/plugin/hdEmbree/renderer.cpp -@@ -709,9 +709,13 @@ HdEmbreeRenderer::_TraceRay(unsigned int x, unsigned int y, - rayHit.ray.flags = 0; - _PopulateRayHit(&rayHit, origin, dir, 0.0f); - { -+#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 -+ rtcIntersect1(_scene, &rayHit); -+#else - RTCIntersectContext context; - rtcInitIntersectContext(&context); - rtcIntersect1(_scene, &context, &rayHit); -+#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 - // - // there is something odd about how this is used in Embree. Is it reversed - // here and then when it it used in -@@ -1047,9 +1051,13 @@ HdEmbreeRenderer::_ComputeAmbientOcclusion(GfVec3f const& position, - shadow.flags = 0; - _PopulateRay(&shadow, position, shadowDir, 0.001f); - { -+#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 -+ rtcOccluded1(_scene, &shadow); -+#else - RTCIntersectContext context; - rtcInitIntersectContext(&context); - rtcOccluded1(_scene,&context,&shadow); -+#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 - } - - // 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 2da9880848..913b83eccc 100644 ---- a/pxr/imaging/plugin/hdEmbree/renderer.h -+++ b/pxr/imaging/plugin/hdEmbree/renderer.h -@@ -15,8 +15,13 @@ - #include "pxr/base/gf/matrix4d.h" - #include "pxr/base/gf/rect2i.h" - --#include --#include -+#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 -+ #include -+ #include -+#else -+ #include -+ #include -+#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 - - #include - #include -diff --git a/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp b/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp -index 02c2ca69f8..45370dfed0 100644 ---- a/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp -+++ b/pxr/imaging/plugin/hdEmbree/testenv/testHdEmbree.cpp -@@ -23,7 +23,12 @@ - - #include "pxr/base/tf/errorMark.h" - --#include -+#if defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 -+ #include -+#else -+ #include -+#endif // defined(PXR_EMBREE_MAJOR_VERSION) && PXR_EMBREE_MAJOR_VERSION >= 4 -+ - #include - - PXR_NAMESPACE_USING_DIRECTIVE - -From 9c67986d0a7e76babead0d1fdf5190f264c1a8b9 Mon Sep 17 00:00:00 2001 -From: Matt Johnson -Date: Wed, 24 Jul 2024 10:07:44 -0400 -Subject: [PATCH 4/7] build_usd.py: update Embree URLs to reflect new home in - the RenderKit GitHub organization - ---- - build_scripts/build_usd.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/build_scripts/build_usd.py b/build_scripts/build_usd.py -index ec1a268d78..afa4763c8d 100644 ---- a/build_scripts/build_usd.py -+++ b/build_scripts/build_usd.py -@@ -1580,9 +1580,9 @@ def InstallMaterialX(context, force, buildArgs): - # For MacOS we use version 3.13.3 to include a fix from Intel - # to build on Apple Silicon. - if MacOS(): -- EMBREE_URL = "https://github.com/embree/embree/archive/v3.13.3.zip" -+ EMBREE_URL = "https://github.com/RenderKit/embree/archive/v3.13.3.zip" - else: -- EMBREE_URL = "https://github.com/embree/embree/archive/v3.2.2.zip" -+ EMBREE_URL = "https://github.com/RenderKit/embree/archive/v3.2.2.zip" - - def InstallEmbree(context, force, buildArgs): - with CurrentWorkingDirectory(DownloadURL(EMBREE_URL, context, force)): - -From 0e3f0e8b595e74312c7fbd1b378a96d3b5e85723 Mon Sep 17 00:00:00 2001 -From: Matt Johnson -Date: Thu, 23 Feb 2023 12:25:24 -0700 -Subject: [PATCH 5/7] build_usd.py: add an option to choose Embree 3 or Embree - 4 - -The new --embree-major-version option can be given to build_usd.py to select -between Embree 3 or Embree 4. By default, Embree 3 is still used, preserving -the existing behavior. ---- - build_scripts/build_usd.py | 31 ++++++++++++++++++++++++------- - 1 file changed, 24 insertions(+), 7 deletions(-) - -diff --git a/build_scripts/build_usd.py b/build_scripts/build_usd.py -index afa4763c8d..f932c85b5d 100644 ---- a/build_scripts/build_usd.py -+++ b/build_scripts/build_usd.py -@@ -1577,14 +1577,19 @@ def InstallMaterialX(context, force, buildArgs): - - ############################################################ - # Embree --# For MacOS we use version 3.13.3 to include a fix from Intel --# to build on Apple Silicon. --if MacOS(): -- EMBREE_URL = "https://github.com/RenderKit/embree/archive/v3.13.3.zip" --else: -- EMBREE_URL = "https://github.com/RenderKit/embree/archive/v3.2.2.zip" -+ -+EMBREE_DEFAULT_MAJOR_VERSION = 3 - - def InstallEmbree(context, force, buildArgs): -+ if context.embreeMajorVersion >= 4: -+ EMBREE_URL = "https://github.com/RenderKit/embree/archive/refs/tags/v4.4.0.zip" -+ elif MacOS(): -+ # For MacOS we use version 3.13.3 to include a fix from Intel -+ # to build on Apple Silicon. -+ EMBREE_URL = "https://github.com/RenderKit/embree/archive/refs/tags/v3.13.3.zip" -+ else: -+ EMBREE_URL = "https://github.com/RenderKit/embree/archive/refs/tags/v3.2.2.zip" -+ - with CurrentWorkingDirectory(DownloadURL(EMBREE_URL, context, force)): - extraArgs = [ - '-DTBB_ROOT="{instDir}"'.format(instDir=context.instDir), -@@ -1601,7 +1606,9 @@ def InstallEmbree(context, force, buildArgs): - - RunCMake(context, force, extraArgs) - --EMBREE = Dependency("Embree", InstallEmbree, "include/embree3/rtcore.h") -+EMBREE = Dependency("Embree", InstallEmbree, -+ "include/embree3/rtcore.h", -+ "include/embree4/rtcore.h") - - ############################################################ - # AnimX -@@ -2121,6 +2128,12 @@ def InstallUSD(context, force, buildArgs): - help="Build Embree sample imaging plugin") - subgroup.add_argument("--no-embree", dest="build_embree", action="store_false", - help="Do not build Embree sample imaging plugin (default)") -+group.add_argument("--embree-major-version", -+ default=EMBREE_DEFAULT_MAJOR_VERSION, type=int, -+ choices=[3, 4], -+ help=( -+ "The major version of Embree to build " -+ "(default: {})").format(EMBREE_DEFAULT_MAJOR_VERSION)) - subgroup = group.add_mutually_exclusive_group() - subgroup.add_argument("--prman", dest="build_prman", action="store_true", - default=False, -@@ -2342,6 +2355,7 @@ def __init__(self, args): - - # - Imaging plugins - self.buildEmbree = self.buildImaging and args.build_embree -+ self.embreeMajorVersion = args.embree_major_version - self.buildPrman = self.buildImaging and args.build_prman - self.prmanLocation = (os.path.abspath(args.prman_location) - if args.prman_location else None) -@@ -2656,6 +2670,7 @@ def _JoinVersion(v): - OpenImageIO support: {buildOIIO} - OpenColorIO support: {buildOCIO} - Embree support: {buildEmbree} -+ Embree major version: {embreeMajorVersion} - PRMan support: {buildPrman} - Vulkan support: {enableVulkan} - UsdImaging {buildUsdImaging} -@@ -2738,6 +2753,8 @@ def FormatBuildArguments(buildArgs): - buildOIIO=("On" if context.buildOIIO else "Off"), - buildOCIO=("On" if context.buildOCIO else "Off"), - buildEmbree=("On" if context.buildEmbree else "Off"), -+ embreeMajorVersion=(context.embreeMajorVersion if context.buildEmbree -+ else "N/A"), - buildPrman=("On" if context.buildPrman else "Off"), - buildUsdImaging=("On" if context.buildUsdImaging else "Off"), - buildUsdview=("On" if context.buildUsdview else "Off"), - -From c96c972bc116e46bef477493b86b535f9b115545 Mon Sep 17 00:00:00 2001 -From: Matt Johnson -Date: Thu, 12 Jun 2025 17:46:43 -0400 -Subject: [PATCH 6/7] hdEmbree: use a header common between TBB and oneTBB in - limits workaround - -The TBB header that provides version definitions moved between TBB -(tbb_stddef.h) and oneTBB (version.h), so we use the lowest level -header that is available at the same path in both and let it bring in -the definitions. This allows the hdEmbree plugin to be built with -oneTBB when used in combination with Embree 4. ---- - pxr/imaging/plugin/hdEmbree/renderer.cpp | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/pxr/imaging/plugin/hdEmbree/renderer.cpp b/pxr/imaging/plugin/hdEmbree/renderer.cpp -index 8cbf8d4959..381bed73e5 100644 ---- a/pxr/imaging/plugin/hdEmbree/renderer.cpp -+++ b/pxr/imaging/plugin/hdEmbree/renderer.cpp -@@ -28,8 +28,13 @@ - // oneTBB as a min spec. This applies the "Work" thread limit to the - // render thread if "Work" is using old TBB, but won't affect other "Work" - // implementations. Note that it may affect Embree TBB usage as well. -+// -+// The header that provides version definitions moved between TBB -+// (tbb_stddef.h) and oneTBB (version.h), so we use the lowest level header -+// that is available at the same path in both and let it bring in the -+// definitions. - // ------------------------------------------------------------------------- --#include -+#include - - #if TBB_INTERFACE_VERSION_MAJOR < 12 - - -From a464dc5dcc9a26f552a3ece42dab949ae03d35df Mon Sep 17 00:00:00 2001 -From: Matt Johnson -Date: Wed, 24 Jul 2024 10:17:27 -0400 -Subject: [PATCH 7/7] build_usd.py: allow oneTBB and Embree to be used together - when Embree 4.x or later is selected - ---- - build_scripts/build_usd.py | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/build_scripts/build_usd.py b/build_scripts/build_usd.py -index f932c85b5d..949acadb42 100644 ---- a/build_scripts/build_usd.py -+++ b/build_scripts/build_usd.py -@@ -2473,9 +2473,10 @@ def ForceBuildDependency(self, dep): - PrintError("Draco plugin can not be enabled for monolithic build on Windows") - sys.exit(1) - --# The versions of Embree we currently support do not support oneTBB. --if context.buildOneTBB and context.buildEmbree: -- PrintError("Embree support cannot be enabled when building against oneTBB") -+# When building with both oneTBB and Embree, a 4.x version of Embree must be -+# used. -+if context.buildOneTBB and (context.buildEmbree and context.embreeMajorVersion < 4): -+ PrintError("Embree 4.x or later must be selected when building against oneTBB") - sys.exit(1) - - # Windows ARM64 requires oneTBB. Since oneTBB is a non-standard option for the diff --git a/sources b/sources index 2a65832..8ea47ed 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-25.08.tar.gz) = fbe1e632473883e47f4bfeb16cab314bbbe8a7b404a5c071ca613bbf288526e505edd7a5edfdd9f85dd16da6d0d91fa0d4f8c783882094d3691f77685817fea6 +SHA512 (OpenUSD-25.11.tar.gz) = 7b78109055773e44af771e99b64ff6a1fcdc5c4984d6d62708491d14ab576344d432dac2377363cae89e47c1a1e55d016bcc7bde2c5c49d5b26550db5ac46304 diff --git a/usd.spec b/usd.spec index 26e7309..e7e7531 100644 --- a/usd.spec +++ b/usd.spec @@ -2,7 +2,7 @@ # 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.25.8 +%global downstream_so_version 0.25.11 %bcond alembic 1 %bcond draco 1 @@ -27,7 +27,7 @@ %bcond test 0 Name: usd -Version: 25.08 +Version: 25.11 Release: %autorelease Summary: 3D VFX pipeline interchange file format @@ -40,7 +40,7 @@ Summary: 3D VFX pipeline interchange file format # - pxr/base/js/rapidjson/msinttypes/ (removed in %%prep) # - pxr/base/tf/pxrCLI11/ (removed in %%prep) # - pxr/base/tf/pxrDoubleConversion/ (removed in %%prep) -# - pxr/imaging/hio/OpenEXR/OpenEXRCore/ +# - pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/ # - pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/ # BSD-2-Clause: # - pxr/base/tf/pxrLZ4/ (removed in %%prep) @@ -58,14 +58,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/hio/OpenEXR/deflate/ (removed in %%prep) +# - pxr/imaging/plugin/hioOpenEXR/OpenEXR/deflate/ (removed in %%prep) # - third_party/renderman-26/plugin/rmanArgsParser/pugixml/ (removed in %%prep) +# - third_party/renderman-27/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-26/plugin/hdPrman/virtualStructConditionalGrammar.tab.{cpp,h} +# - third_party/renderman-27/plugin/hdPrman/virtualStructConditionalGrammar.tab.{cpp,h} # # Additionally, the following would be listed above but are removed in %%prep: # @@ -126,10 +128,6 @@ Source1: org.openusd.usdview.desktop # built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) Patch: 0001-Downstream-only-add-an-SONAME-version.patch -# hdEmbree: add support for building against embree4 -# https://github.com/PixarAnimationStudios/USD/pull/2313 -Patch: %{forgeurl}/pull/2313.patch - # Downstream-only: use Valgrind macro instead of inline assembly # # Upstream already has a plan to make this change, but is waiting to be @@ -285,8 +283,9 @@ 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/hio/OpenEXR/OpenEXRCore/openexr_version.h -# From pxr/imaging/hio/OpenEXR/README.md: +# Version from +# pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/openexr_version.h +# From pxr/imaging/plugin/hioOpenEXR/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 @@ -328,6 +327,7 @@ Provides: bundled(boost) = 1.85.0 # Provides: bundled(cli11) = 2.3.1 # Version from: # third_party/renderman-26/plugin/rmanArgsParser/pugixml/pugiconfig.hpp +# third_party/renderman-27/plugin/rmanArgsParser/pugixml/pugiconfig.hpp # (header comment) # Provides: bundled(pugixml) = 1.9 # Version from: pxr/base/js/rapidjson/rapidjson.h @@ -336,7 +336,7 @@ Provides: bundled(boost) = 1.85.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/hio/OpenEXR/deflate/libdeflate.h +# Version from pxr/imaging/plugin/hioOpenEXR/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 @@ -491,7 +491,7 @@ namespace pxr_tsl = tsl; EOF done # Remove the bundled copy of libdeflate. -rm -rv pxr/imaging/hio/OpenEXR/deflate/ +rm -rv pxr/imaging/plugin/hioOpenEXR/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/ \ From 1fef8f6c7649efcc72e52204bf37784cf90b23c2 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 23 Nov 2025 06:57:09 +0000 Subject: [PATCH 60/85] Rebuilt for OpenVDB 13.0.0 From b804423325927568bd1d3968ba984579c0c3b3e5 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 25 Nov 2025 10:58:20 +0000 Subject: [PATCH 61/85] Use macros for supported architectures [skip changelog] --- usd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usd.spec b/usd.spec index e7e7531..e26f915 100644 --- a/usd.spec +++ b/usd.spec @@ -253,7 +253,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: aarch64 x86_64 +ExclusiveArch: %{arm64} %{x86_64} %description Universal Scene Description (USD) is a time-sampled scene From 201f8d224f28cae55370d42b5e51d89cddb199d7 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 25 Nov 2025 10:57:29 +0000 Subject: [PATCH 62/85] Rebuilt with stb_image patched for two new security bugs --- usd.spec | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/usd.spec b/usd.spec index e26f915..60884b5 100644 --- a/usd.spec +++ b/usd.spec @@ -237,12 +237,11 @@ BuildRequires: pkgconfig(ptex) # CVE-2023-45664 # CVE-2023-45666 # CVE-2023-45667 -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 +# https://github.com/nothings/stb/issues/1860 +# https://github.com/nothings/stb/issues/1861 +BuildRequires: stb_image-static >= 2.30^20251025gitf1c79c0-1 +BuildRequires: stb_image_write-static >= 1.16 +BuildRequires: stb_image_resize-static >= 0.97 Requires: usd-libs%{?_isa} = %{version}-%{release} Requires: python3-usd%{?_isa} = %{version}-%{release} From 97117864dd441dd12986e531fa28838c0fe39a96 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 25 Nov 2025 14:32:01 +0000 Subject: [PATCH 63/85] Correct minimum NVR for stb_image --- usd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usd.spec b/usd.spec index 60884b5..7832201 100644 --- a/usd.spec +++ b/usd.spec @@ -239,7 +239,7 @@ BuildRequires: pkgconfig(ptex) # CVE-2023-45667 # https://github.com/nothings/stb/issues/1860 # https://github.com/nothings/stb/issues/1861 -BuildRequires: stb_image-static >= 2.30^20251025gitf1c79c0-1 +BuildRequires: stb_image-static >= 2.30^20251025gitf1c79c0-2 BuildRequires: stb_image_write-static >= 1.16 BuildRequires: stb_image_resize-static >= 0.97 From d4a03cc10dfb30612957d06a00be41456f916f8d Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Tue, 2 Dec 2025 15:42:52 +0100 Subject: [PATCH 64/85] Rebuild (python-pyside6) From ff3482cdbea609f1a35b9e32239d09cc7ad2cc23 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Tue, 2 Dec 2025 14:53:34 +0000 Subject: [PATCH 65/85] Backport fixes for CVE-2025-64181 etc. in OpenEXRCore --- 3903.patch | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ usd.spec | 4 +++ 2 files changed, 87 insertions(+) create mode 100644 3903.patch diff --git a/3903.patch b/3903.patch new file mode 100644 index 0000000..d8fa15b --- /dev/null +++ b/3903.patch @@ -0,0 +1,83 @@ +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/usd.spec b/usd.spec index 7832201..e363506 100644 --- a/usd.spec +++ b/usd.spec @@ -149,6 +149,10 @@ 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 + # Base BuildRequires: gcc-c++ From 1fe1ef6bbd2d59dc27573bd48ca5059c89688699 Mon Sep 17 00:00:00 2001 From: Richard Shaw Date: Sun, 7 Dec 2025 14:15:28 -0600 Subject: [PATCH 66/85] Rebuild for OpenImageIO 3.1. From b5e913b0f3de0ea8d2ea2f7b0ab470952c9c78e4 Mon Sep 17 00:00:00 2001 From: Luya Tshimbalanga Date: Wed, 7 Jan 2026 18:38:55 -0800 Subject: [PATCH 67/85] Remove unused MaterialX support This commit removed the unusued materialx support dropped by upstream. --- usd.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/usd.spec b/usd.spec index e363506..ebbd7f2 100644 --- a/usd.spec +++ b/usd.spec @@ -8,9 +8,6 @@ %bcond draco 1 %bcond embree 1 %bcond jemalloc 0 -# 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. @@ -575,7 +572,6 @@ extra_flags="${extra_flags-} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1" -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 \ From d7483c1c0d0f8b6b7fd6a221bb189203a900b779 Mon Sep 17 00:00:00 2001 From: Luya Tshimbalanga Date: Wed, 7 Jan 2026 23:09:08 -0800 Subject: [PATCH 68/85] Revert "Remove unused MaterialX support" This reverts commit b5e913b0f3de0ea8d2ea2f7b0ab470952c9c78e4. --- usd.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/usd.spec b/usd.spec index ebbd7f2..e363506 100644 --- a/usd.spec +++ b/usd.spec @@ -8,6 +8,9 @@ %bcond draco 1 %bcond embree 1 %bcond jemalloc 0 +# 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. @@ -572,6 +575,7 @@ extra_flags="${extra_flags-} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1" -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 \ From fb80c784afbe9d32bb7c4fb025fbc5199b1ea135 Mon Sep 17 00:00:00 2001 From: Luya Tshimbalanga Date: Thu, 8 Jan 2026 08:01:05 -0800 Subject: [PATCH 69/85] Enable materialx support --- usd.spec | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/usd.spec b/usd.spec index e363506..8c7647a 100644 --- a/usd.spec +++ b/usd.spec @@ -8,9 +8,7 @@ %bcond draco 1 %bcond embree 1 %bcond jemalloc 0 -# Not yet packaged: https://github.com/AcademySoftwareFoundation/MaterialX -# https://bugzilla.redhat.com/show_bug.cgi?id=2262694 -%bcond materialx 0 +%bcond materialx 1 # 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. @@ -206,6 +204,13 @@ 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 @@ -575,7 +580,6 @@ extra_flags="${extra_flags-} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1" -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 \ @@ -585,6 +589,7 @@ 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" \ @@ -650,6 +655,9 @@ 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 @@ -678,6 +686,9 @@ 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} +%{_bindir}/usdBakeMaterialX.1* +%endif %{_mandir}/man1/usdGenSchema.1* %{_mandir}/man1/usdInitSchema.1* %{_mandir}/man1/usdcat.1* From 099daf1d9a32fff0aa4cd812a42dd78014a6ed38 Mon Sep 17 00:00:00 2001 From: Luya Tshimbalanga Date: Thu, 8 Jan 2026 09:09:41 -0800 Subject: [PATCH 70/85] Fix manpage line --- usd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usd.spec b/usd.spec index 8c7647a..3e9b41c 100644 --- a/usd.spec +++ b/usd.spec @@ -687,7 +687,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %{_mandir}/man1/sdfdump.1* %{_mandir}/man1/sdffilter.1* %if %{with materialx} -%{_bindir}/usdBakeMaterialX.1* +%{_mandir}/usdBakeMaterialX.1* %endif %{_mandir}/man1/usdGenSchema.1* %{_mandir}/man1/usdInitSchema.1* From f764fa904f84c5fe42ceb49f3a6d0eb1867ecd09 Mon Sep 17 00:00:00 2001 From: Luya Tshimbalanga Date: Thu, 8 Jan 2026 15:16:34 -0800 Subject: [PATCH 71/85] Fix path for manterialx manual --- usd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usd.spec b/usd.spec index 3e9b41c..2b4a8f5 100644 --- a/usd.spec +++ b/usd.spec @@ -687,7 +687,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %{_mandir}/man1/sdfdump.1* %{_mandir}/man1/sdffilter.1* %if %{with materialx} -%{_mandir}/usdBakeMaterialX.1* +%{_mandir}/man1/usdBakeMaterialX.1* %endif %{_mandir}/man1/usdGenSchema.1* %{_mandir}/man1/usdInitSchema.1* From a93ed447d6ef737862161716720397669bb80689 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 19:42:31 +0000 Subject: [PATCH 72/85] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild From ba33ab88f9cbaeceb883011fdf5a1922df95a211 Mon Sep 17 00:00:00 2001 From: Luya Tshimbalanga Date: Mon, 2 Feb 2026 00:57:36 -0800 Subject: [PATCH 73/85] Rebuild for ptex 2.5.1 From d4e3de7a803ccda03b061d27058cc73a74fb9899 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 2 Feb 2026 14:13:58 +0000 Subject: [PATCH 74/85] Rebuilt for ptex 2.5.1 (close RHBZ#2435890) From f168f46d3aa3b150d49a39b04ba421ae9e415ca6 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 21 Feb 2026 12:24:33 -0700 Subject: [PATCH 75/85] Make devel require cmake(OpenSubdiv) and cmake(materialx) --- usd.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/usd.spec b/usd.spec index 2b4a8f5..fc83039 100644 --- a/usd.spec +++ b/usd.spec @@ -375,6 +375,11 @@ 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 From 0a6b2117ffe0103efd029a6a119614718c8bae75 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 26 Feb 2026 12:07:15 +0000 Subject: [PATCH 76/85] Update to 26.03 (close RHBZ#2442563) --- .gitignore | 1 + ...ownstream-only-add-an-SONAME-version.patch | 18 +++--- ...use-Valgrind-macro-instead-of-inline.patch | 4 +- ...use-the-system-double-conversion-lib.patch | 10 ++-- ...ream-only-use-the-system-lz4-library.patch | 12 ++-- ...-only-use-the-system-pugixml-library.patch | 12 ++-- ...nly-use-the-system-rapidjson-library.patch | 6 +- ...tream-only-use-the-system-libdeflate.patch | 4 +- ...wnstream-only-use-the-system-libavif.patch | 12 ++-- sources | 2 +- usd.spec | 57 +++++++++++++++---- 11 files changed, 86 insertions(+), 52 deletions(-) diff --git a/.gitignore b/.gitignore index a6f122a..f00caa1 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ /OpenUSD-25.05.01.tar.gz /OpenUSD-25.08.tar.gz /OpenUSD-25.11.tar.gz +/OpenUSD-26.03.tar.gz diff --git a/0001-Downstream-only-add-an-SONAME-version.patch b/0001-Downstream-only-add-an-SONAME-version.patch index aeb48ad..7a55eca 100644 --- a/0001-Downstream-only-add-an-SONAME-version.patch +++ b/0001-Downstream-only-add-an-SONAME-version.patch @@ -1,4 +1,4 @@ -From 2f2ebd688c7e6804014ea183163954f48e7622af Mon Sep 17 00:00:00 2001 +From 949707d0bd8ac077fac9763b3b590a016ff4eb6f 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 @@ -37,11 +37,11 @@ built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) 3 files changed, 9 insertions(+) diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake -index 20e70edb2..c3e072e1a 100644 +index 1cc7fa64a..ebe531ec4 100644 --- a/cmake/defaults/Version.cmake +++ b/cmake/defaults/Version.cmake -@@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "25") - set(PXR_PATCH_VERSION "11") # NOTE: Must not have leading 0 for single digits +@@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "26") + set(PXR_PATCH_VERSION "3") # 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,10 +51,10 @@ index 20e70edb2..c3e072e1a 100644 + "Downstream shared object version" +) diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake -index b90b743de..7af8b89c2 100644 +index e2dccb075..5f6913e22 100644 --- a/cmake/macros/Private.cmake +++ b/cmake/macros/Private.cmake -@@ -1304,6 +1304,7 @@ function(_pxr_library NAME) +@@ -1346,6 +1346,7 @@ function(_pxr_library NAME) FOLDER "${folder}" POSITION_INDEPENDENT_CODE ON IMPORT_PREFIX "${args_PREFIX}" @@ -63,7 +63,7 @@ index b90b743de..7af8b89c2 100644 SUFFIX "${args_SUFFIX}" ) diff --git a/cmake/macros/Public.cmake b/cmake/macros/Public.cmake -index b8e588bf3..cf64607c8 100644 +index b51789f4a..af2f2a805 100644 --- a/cmake/macros/Public.cmake +++ b/cmake/macros/Public.cmake @@ -414,6 +414,7 @@ function(pxr_library NAME) @@ -74,7 +74,7 @@ index b8e588bf3..cf64607c8 100644 SUBDIR "${subdir}" CPPFILES "${args_CPPFILES};${${NAME}_CPPFILES}" PUBLIC_HEADERS "${args_PUBLIC_HEADERS};${${NAME}_PUBLIC_HEADERS}" -@@ -1152,6 +1153,7 @@ function(pxr_toplevel_prologue) +@@ -1195,6 +1196,7 @@ function(pxr_toplevel_prologue) PREFIX "${libPrefix}" IMPORT_PREFIX "${libPrefix}" OUTPUT_NAME ${libName} @@ -83,5 +83,5 @@ index b8e588bf3..cf64607c8 100644 _get_install_dir("lib" libInstallPrefix) install( -- -2.51.0 +2.53.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 index 4ca709f..876f0e1 100644 --- a/0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch +++ b/0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch @@ -1,4 +1,4 @@ -From bb5d6070945c671d3192e2c6c939b941f50991fc Mon Sep 17 00:00:00 2001 +From 15ea3b68bb15fd6338cbe76ec94eac055dc28c4e 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 @@ -61,5 +61,5 @@ index 96dacca06..7e5625678 100644 Vdf_ExecutorDataVector::~Vdf_ExecutorDataVector() -- -2.51.0 +2.53.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 3b8f6e5..30a54ef 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 70ca2a5a93b263c1f42502e6b800f46fe1f0d91f Mon Sep 17 00:00:00 2001 +From 5bc91bdebc42bb3a441c87b706288cea05fcd345 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 1b1aa9dbe..f2d58fd15 100644 +index 6fc9c680e..551b5a3eb 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt -@@ -110,11 +110,14 @@ function(add_py_dll_link_test) +@@ -105,11 +105,14 @@ function(add_py_dll_link_test) endfunction() @@ -26,7 +26,7 @@ index 1b1aa9dbe..f2d58fd15 100644 PUBLIC_CLASSES anyUniquePtr -@@ -277,14 +280,6 @@ pxr_library(tf +@@ -272,14 +275,6 @@ pxr_library(tf CPPFILES initConfig.cpp @@ -42,5 +42,5 @@ index 1b1aa9dbe..f2d58fd15 100644 PYMODULE_CPPFILES -- -2.51.0 +2.53.0 diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index 26affbf..910d576 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,4 +1,4 @@ -From 64a603b9c6278f3287cd2769f0fb5ebd9356ae74 Mon Sep 17 00:00:00 2001 +From 0caa009abce9d66d441cd548f45ca8fef8d4846d 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 @@ -8,10 +8,10 @@ Subject: [PATCH 2/6] Downstream-only: use the system lz4 library 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt -index f2d58fd15..7433f0591 100644 +index 551b5a3eb..772524a19 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt -@@ -111,6 +111,8 @@ function(add_py_dll_link_test) +@@ -106,6 +106,8 @@ function(add_py_dll_link_test) endfunction() find_library(double-conversion_LIBRARY NAMES double-conversion REQUIRED) @@ -20,7 +20,7 @@ index f2d58fd15..7433f0591 100644 pxr_library(tf LIBRARIES -@@ -118,6 +120,10 @@ pxr_library(tf +@@ -113,6 +115,10 @@ pxr_library(tf ${WINLIBS} TBB::tbb ${double-conversion_LIBRARY} @@ -31,7 +31,7 @@ index f2d58fd15..7433f0591 100644 PUBLIC_CLASSES anyUniquePtr -@@ -280,7 +286,6 @@ pxr_library(tf +@@ -275,7 +281,6 @@ pxr_library(tf CPPFILES initConfig.cpp @@ -40,5 +40,5 @@ index f2d58fd15..7433f0591 100644 PYMODULE_CPPFILES module.cpp -- -2.51.0 +2.53.0 diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch index 1051ecd..974ff6f 100644 --- a/0003-Downstream-only-use-the-system-pugixml-library.patch +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -1,16 +1,16 @@ -From 48a4ad95bbe1e5675922da4eaf863bd208c0167b Mon Sep 17 00:00:00 2001 +From d1e032128f9c41a763d9e0535c408ffa6642ae03 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 --- - .../renderman-26/plugin/rmanArgsParser/CMakeLists.txt | 6 +++--- + third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt b/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt +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-26/plugin/rmanArgsParser/CMakeLists.txt -+++ b/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt +--- a/third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt ++++ b/third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt @@ -1,6 +1,8 @@ set(PXR_PREFIX "") set(PXR_PACKAGE rmanArgsParser) @@ -35,5 +35,5 @@ index 244f27aa8..1e00413c4 100644 PRIVATE_HEADERS api.h -- -2.51.0 +2.53.0 diff --git a/0004-Downstream-only-use-the-system-rapidjson-library.patch b/0004-Downstream-only-use-the-system-rapidjson-library.patch index cd90d76..090b753 100644 --- a/0004-Downstream-only-use-the-system-rapidjson-library.patch +++ b/0004-Downstream-only-use-the-system-rapidjson-library.patch @@ -1,4 +1,4 @@ -From 48c8a77ae5ba717b8651585302939a36126d286c Mon Sep 17 00:00:00 2001 +From 8fc7363878d1917d5b3f3513b16d54293463c297 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 @@ -8,7 +8,7 @@ Subject: [PATCH 4/6] Downstream-only: use the system rapidjson library 1 file changed, 40 deletions(-) diff --git a/pxr/base/js/CMakeLists.txt b/pxr/base/js/CMakeLists.txt -index 632c061e5..62696a341 100644 +index 8cbda8c52..ec8f3c249 100644 --- a/pxr/base/js/CMakeLists.txt +++ b/pxr/base/js/CMakeLists.txt @@ -15,46 +15,6 @@ pxr_library(js @@ -59,5 +59,5 @@ index 632c061e5..62696a341 100644 overview.dox ) -- -2.51.0 +2.53.0 diff --git a/0005-Downstream-only-use-the-system-libdeflate.patch b/0005-Downstream-only-use-the-system-libdeflate.patch index 5549f98..cc5de7a 100644 --- a/0005-Downstream-only-use-the-system-libdeflate.patch +++ b/0005-Downstream-only-use-the-system-libdeflate.patch @@ -1,4 +1,4 @@ -From 614a6a01271cfaaa2421f58289cc1267685c75a9 Mon Sep 17 00:00:00 2001 +From 30b0460635b46ce71f22586273afb370075d7db8 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 @@ -72,5 +72,5 @@ index 7481a346e..71bdde9cc 100644 #include "OpenEXRCore/attributes.c" -- -2.51.0 +2.53.0 diff --git a/0006-Downstream-only-use-the-system-libavif.patch b/0006-Downstream-only-use-the-system-libavif.patch index e1a6178..cac8a41 100644 --- a/0006-Downstream-only-use-the-system-libavif.patch +++ b/0006-Downstream-only-use-the-system-libavif.patch @@ -1,4 +1,4 @@ -From a7e7a94bed76d6b24bfbf9a2c4aa1cf9d57564ab Mon Sep 17 00:00:00 2001 +From c6639b8f1a8c57b02071426400daa349eed14501 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 @@ -9,7 +9,7 @@ Subject: [PATCH 6/6] Downstream-only: use the system libavif 2 files changed, 7 insertions(+), 189 deletions(-) diff --git a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp -index 81549fb54..d2dfb1bcd 100644 +index b56369ee5..c6fcb4a6c 100644 --- a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp +++ b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp @@ -30,7 +30,7 @@ ARCH_PRAGMA_UNUSED_FUNCTION @@ -19,10 +19,10 @@ index 81549fb54..d2dfb1bcd 100644 -#include "pxr/imaging/plugin/hioAvif/AVIF/src/avif/avif.h" +#include - #if defined(PXR_STATIC) - # define HIOAVIF_API + PXR_NAMESPACE_OPEN_SCOPE + diff --git a/pxr/imaging/plugin/hioAvif/CMakeLists.txt b/pxr/imaging/plugin/hioAvif/CMakeLists.txt -index 1a81d50b1..fd89502a7 100644 +index 1ac2683f6..7d583c137 100644 --- a/pxr/imaging/plugin/hioAvif/CMakeLists.txt +++ b/pxr/imaging/plugin/hioAvif/CMakeLists.txt @@ -1,6 +1,9 @@ @@ -237,5 +237,5 @@ index 1a81d50b1..fd89502a7 100644 RESOURCE_FILES -- -2.51.0 +2.53.0 diff --git a/sources b/sources index 8ea47ed..d2dbf60 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-25.11.tar.gz) = 7b78109055773e44af771e99b64ff6a1fcdc5c4984d6d62708491d14ab576344d432dac2377363cae89e47c1a1e55d016bcc7bde2c5c49d5b26550db5ac46304 +SHA512 (OpenUSD-26.03.tar.gz) = 3d5dae46c7ae096501dc51b373ba05c8603a1cf16e5054728d41d0c2970b59ce3ee5ec83e1c575b92482bc8cf2c59643df093a9e7aa82bcdd53dada05292720d diff --git a/usd.spec b/usd.spec index fc83039..898ff05 100644 --- a/usd.spec +++ b/usd.spec @@ -2,7 +2,7 @@ # 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.25.11 +%global downstream_so_version 0.26.3 %bcond alembic 1 %bcond draco 1 @@ -25,7 +25,7 @@ %bcond test 0 Name: usd -Version: 25.11 +Version: 26.03 Release: %autorelease Summary: 3D VFX pipeline interchange file format @@ -33,6 +33,9 @@ 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) @@ -57,15 +60,13 @@ Summary: 3D VFX pipeline interchange file format # - pxr/imaging/garch/khrplatform.h # - pxr/imaging/hgiVulkan/vk_mem_alloc.h # - pxr/imaging/plugin/hioOpenEXR/OpenEXR/deflate/ (removed in %%prep) -# - third_party/renderman-26/plugin/rmanArgsParser/pugixml/ (removed in %%prep) -# - third_party/renderman-27/plugin/rmanArgsParser/pugixml/ (removed in %%prep) +# - third_party/renderman/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-26/plugin/hdPrman/virtualStructConditionalGrammar.tab.{cpp,h} -# - third_party/renderman-27/plugin/hdPrman/virtualStructConditionalGrammar.tab.{cpp,h} +# - third_party/renderman/plugin/hdPrman/virtualStructConditionalGrammar.tab.{cpp,h} # # Additionally, the following would be listed above but are removed in %%prep: # @@ -322,6 +323,39 @@ Provides: bundled(openexr) = 3.2.0 # 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 @@ -334,8 +368,7 @@ Provides: bundled(boost) = 1.85.0 # Version from: pxr/base/tf/pxrCLI11/README.md # Provides: bundled(cli11) = 2.3.1 # Version from: -# third_party/renderman-26/plugin/rmanArgsParser/pugixml/pugiconfig.hpp -# third_party/renderman-27/plugin/rmanArgsParser/pugixml/pugiconfig.hpp +# third_party/renderman/plugin/rmanArgsParser/pugixml/pugiconfig.hpp # (header comment) # Provides: bundled(pugixml) = 1.9 # Version from: pxr/base/js/rapidjson/rapidjson.h @@ -359,8 +392,8 @@ Provides: bundled(boost) = 1.85.0 # 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^20240812gita977463 -# Version from pxr/imaging/plugin/hioAvif/aom/config/aom_version.h +# Provides: bundled(libyuv) = 0^20240812.a977463 +# Version from pxr/imaging/plugin/hioAvif/config/aom_version.h # Provides: bundled(aom) = 3.0.0 %description libs @@ -479,9 +512,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}" < From 1165f5708e79ce58d50c347a0b68fdbd40d4cfc0 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 6 Apr 2026 13:07:00 +0100 Subject: [PATCH 77/85] Backport fix for CVE-2026-34544 in OpenEXRCore - Fixes RHBZ#2454226 --- 4028.patch | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ usd.spec | 3 +++ 2 files changed, 74 insertions(+) create mode 100644 4028.patch diff --git a/4028.patch b/4028.patch new file mode 100644 index 0000000..9fd2598 --- /dev/null +++ b/4028.patch @@ -0,0 +1,71 @@ +From 83c6cdfa63ad61accec35575f503b629f94dc4af Mon Sep 17 00:00:00 2001 +From: Cary Phillips +Date: Thu, 19 Mar 2026 14:22:40 -0700 +Subject: [PATCH] Fix B44/B44A integer overflow: use uint64_t for row offset + (#2312) + +The B44 and B44A decoder and encoder use channel width (`nx`) and +height (`ny`) in row pointer math. `nx` and `ny` are `int`; the +scratch buffer is correctly sized with `(uint64_t)ny * (uint64_t)nx * +bytes_per_element`, but row bases were computed as: + +``` + row0 = (uint16_t*)scratch; + row0 += y * nx; // int * int -> signed overflow when y*nx > INT_MAX +``` + +For large `nx` (e.g. 268435456), `y*nx` overflows, so `row0`/`row1`/`row2`/`row3` +point before the scratch buffer. + +Fix: compute the row offset in `uint64_t` before pointer arithmetic in both +`uncompress_b44_impl` (decoder) and `compress_b44_impl` (encoder). + +Analysis and solution with the help of Curor / Claude Opus 4.5 + +Signed-off-by: Cary Phillips +--- + .../OpenEXR/OpenEXRCore/internal_b44.c | 23 ++++++++++--------- + 1 file changed, 12 insertions(+), 11 deletions(-) + +diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_b44.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_b44.c +index 8d0c257e658..93279ff2ed5 100644 +--- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_b44.c ++++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_b44.c +@@ -390,13 +390,13 @@ compress_b44_impl (exr_encode_pipeline_t* encode, int flat_field) + // rightmost column and the bottom row. + // + uint16_t *row0, *row1, *row2, *row3; ++ /* row offset in elements: use uint64_t so y*nx cannot overflow int */ ++ uint64_t row_off = (uint64_t) (y) * (uint64_t) (nx); + +- row0 = (uint16_t*) scratch; +- row0 += y * nx; +- +- row1 = row0 + nx; +- row2 = row1 + nx; +- row3 = row2 + nx; ++ row0 = (uint16_t*) scratch + row_off; ++ row1 = row0 + (uint64_t) nx; ++ row2 = row1 + (uint64_t) nx; ++ row3 = row2 + (uint64_t) nx; + + if (y + 3 >= ny) + { +@@ -512,11 +512,12 @@ uncompress_b44_impl ( + + for (int y = 0; y < ny; y += 4) + { +- row0 = (uint16_t*) scratch; +- row0 += y * nx; +- row1 = row0 + nx; +- row2 = row1 + nx; +- row3 = row2 + nx; ++ /* row offset in elements: use uint64_t so y*nx cannot overflow int */ ++ uint64_t row_off = (uint64_t) (y) * (uint64_t) (nx); ++ row0 = (uint16_t*) scratch + row_off; ++ row1 = row0 + (uint64_t) nx; ++ row2 = row1 + (uint64_t) nx; ++ row3 = row2 + (uint64_t) nx; + for (int x = 0; x < nx; x += 4) + { + if (bIn + 3 > comp_buf_size) return EXR_ERR_OUT_OF_MEMORY; diff --git a/usd.spec b/usd.spec index 898ff05..f1b273f 100644 --- a/usd.spec +++ b/usd.spec @@ -151,6 +151,9 @@ 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 +# Backport fix for CVE-2026-34544 in OpenEXRCore +# https://github.com/PixarAnimationStudios/OpenUSD/pull/4028 +Patch: %{forgeurl}/pull/4028.patch # Base BuildRequires: gcc-c++ From 099d5a046b76634d20599150d231fc2f3182ac19 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 8 Apr 2026 11:58:16 +0100 Subject: [PATCH 78/85] Backport several OpenEXRCore security fixes - Fixes CVE-2026-34378 / GHSA-v76p-4qvv-vh4g; closes RHBZ#2455493 - Fixes CVE-2026-34380 / GHSA-q3v8-hw4m-59w5; closes RHBZ#2455534 - Fixes CVE-2026-34588 / GHSA-588r-cr5c-w6hf; closes RHBZ#2455505 - Fixes CVE-2026-34589 / GHSA-p8xc-w3q4-h64x; closes RHBZ#2455501 - Fixes CVE-2026-34379 / GHSA-w88v-vqhq-5p24; closes RHBZ#2455497 --- 4030.patch | 612 +++++++++++++++++++++++++++++++++++++++++++++++++++++ usd.spec | 9 + 2 files changed, 621 insertions(+) create mode 100644 4030.patch diff --git a/4030.patch b/4030.patch new file mode 100644 index 0000000..896f2e3 --- /dev/null +++ b/4030.patch @@ -0,0 +1,612 @@ +From 4f03fb0f488d8f528bdc0f9ecac07eea8f7b63ac Mon Sep 17 00:00:00 2001 +From: Christoph Gohlke +Date: Tue, 17 Mar 2026 20:56:39 -0700 +Subject: [PATCH 1/6] Fix comparison operator for buffer size check (#2307) + +Signed-off-by: Christoph Gohlke +--- + .../plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_zip.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_zip.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_zip.c +index 628438c5c01..56df6a49c2f 100644 +--- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_zip.c ++++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_zip.c +@@ -367,7 +367,7 @@ apply_zip_impl (exr_encode_pipeline_t* encode) + + if (rv == EXR_ERR_SUCCESS) + { +- if (compbufsz > encode->packed_bytes) ++ if (compbufsz >= encode->packed_bytes) + { + memcpy ( + encode->compressed_buffer, + +From 0512b6c41b95e5c0ac9e01b2f87b56acd437d8e9 Mon Sep 17 00:00:00 2001 +From: Cary Phillips +Date: Thu, 26 Mar 2026 16:35:49 -0700 +Subject: [PATCH 2/6] Fix integer overflow in `srcbuffer` pointer arithmetic in + `unpack_*` (#2321) + +Pointer arithmetic involving `srcbuffer` in the `unpack_*` functions +can overflow for very wide images. + +Multiplying `int w` by a bytes-per-element constant (2, 4, 6, or 8) in +`srcbuffer +=` expressions causes signed integer overflow when the +image width is large. + +Promote the leading operand to `int64_t` at every affected multiplication +so pointer arithmetic is performed in 64-bit signed arithmetic throughout, +eliminating the undefined behavior without imposing any image size limit. + +Affected sites: `generic_unpack`, `unpack_16bit`, `unpack_32bit`, and +all 3- and 4-channel interleave/planar specializations. + +Made-with: Cursor + +Signed-off-by: Cary Phillips +--- + .../hioOpenEXR/OpenEXR/OpenEXRCore/unpack.c | 38 +++++++++---------- + 1 file changed, 19 insertions(+), 19 deletions(-) + +diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/unpack.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/unpack.c +index 1324508c5b4..8765bfa50d6 100644 +--- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/unpack.c ++++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/unpack.c +@@ -229,7 +229,7 @@ unpack_16bit_3chan_interleave (exr_decode_pipeline_t* decode) + in1 = in0 + w; + in2 = in1 + w; + +- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion + for (int x = 0; x < w; ++x) + { + out[0] = one_to_native16 (in0[x]); +@@ -269,7 +269,7 @@ unpack_16bit_3chan_interleave_rev (exr_decode_pipeline_t* decode) + in1 = in0 + w; // G + in2 = in1 + w; // R + +- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion + for (int x = 0; x < w; ++x) + { + out[0] = one_to_native16 (in2[x]); +@@ -309,7 +309,7 @@ unpack_half_to_float_3chan_interleave (exr_decode_pipeline_t* decode) + in1 = in0 + w; + in2 = in1 + w; + +- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion + for (int x = 0; x < w; ++x) + { + out[0] = half_to_float (one_to_native16 (in0[x])); +@@ -349,7 +349,7 @@ unpack_half_to_float_3chan_interleave_rev (exr_decode_pipeline_t* decode) + in1 = in0 + w; + in2 = in1 + w; + +- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion + for (int x = 0; x < w; ++x) + { + out[0] = half_to_float (one_to_native16 (in2[x])); +@@ -390,7 +390,7 @@ unpack_16bit_3chan_planar (exr_decode_pipeline_t* decode) + in0 = (const uint16_t*) srcbuffer; + in1 = in0 + w; + in2 = in1 + w; +- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion + /* specialise to memcpy if we can */ + #if EXR_HOST_IS_NOT_LITTLE_ENDIAN + for (int x = 0; x < w; ++x) +@@ -440,7 +440,7 @@ unpack_half_to_float_3chan_planar (exr_decode_pipeline_t* decode) + in0 = (const uint16_t*) srcbuffer; + in1 = in0 + w; + in2 = in1 + w; +- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion + /* specialise to memcpy if we can */ + half_to_float_buffer ((float*) out0, in0, w); + half_to_float_buffer ((float*) out1, in1, w); +@@ -485,7 +485,7 @@ unpack_16bit_3chan (exr_decode_pipeline_t* decode) + in0 = (const uint16_t*) srcbuffer; + in1 = in0 + w; + in2 = in1 + w; +- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion + for (int x = 0; x < w; ++x) + *((uint16_t*) (out0 + x * inc0)) = one_to_native16 (in0[x]); + for (int x = 0; x < w; ++x) +@@ -539,7 +539,7 @@ unpack_16bit_4chan_interleave (exr_decode_pipeline_t* decode) + in2 = in1 + w; + in3 = in2 + w; + +- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion + for (int x = 0; x < w; ++x) + { + combined.a = one_to_native16 (in0[x]); +@@ -592,7 +592,7 @@ unpack_16bit_4chan_interleave_rev (exr_decode_pipeline_t* decode) + in2 = in1 + w; + in3 = in2 + w; + +- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion + for (int x = 0; x < w; ++x) + { + combined.a = one_to_native16 (in0[x]); +@@ -633,7 +633,7 @@ unpack_half_to_float_4chan_interleave (exr_decode_pipeline_t* decode) + in2 = in1 + w; + in3 = in2 + w; + +- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion + for (int x = 0; x < w; ++x) + { + out[0] = half_to_float (one_to_native16 (in3[x])); +@@ -674,7 +674,7 @@ unpack_half_to_float_4chan_interleave_rev (exr_decode_pipeline_t* decode) + in2 = in1 + w; + in3 = in2 + w; + +- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion + for (int x = 0; x < w; ++x) + { + out[0] = half_to_float (one_to_native16 (in0[x])); +@@ -719,7 +719,7 @@ unpack_16bit_4chan_planar (exr_decode_pipeline_t* decode) + in1 = in0 + w; + in2 = in1 + w; + in3 = in2 + w; +- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion + /* specialize to memcpy if we can */ + #if EXR_HOST_IS_NOT_LITTLE_ENDIAN + for (int x = 0; x < w; ++x) +@@ -775,7 +775,7 @@ unpack_half_to_float_4chan_planar (exr_decode_pipeline_t* decode) + in1 = in0 + w; + in2 = in1 + w; + in3 = in2 + w; +- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion + + half_to_float_buffer ((float*) out0, in0, w); + half_to_float_buffer ((float*) out1, in1, w); +@@ -825,7 +825,7 @@ unpack_16bit_4chan (exr_decode_pipeline_t* decode) + in1 = in0 + w; + in2 = in1 + w; + in3 = in2 + w; +- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion ++ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion + for (int x = 0; x < w; ++x) + *((uint16_t*) (out0 + x * inc0)) = one_to_native16 (in0[x]); + for (int x = 0; x < w; ++x) +@@ -898,7 +898,7 @@ unpack_16bit (exr_decode_pipeline_t* decode) + } + } + #endif +- srcbuffer += w * 2; ++ srcbuffer += (int64_t) w * 2; + } + } + return EXR_ERR_SUCCESS; +@@ -963,7 +963,7 @@ unpack_32bit (exr_decode_pipeline_t* decode) + } + } + #endif +- srcbuffer += w * 4; ++ srcbuffer += (int64_t) w * 4; + } + } + return EXR_ERR_SUCCESS; +@@ -1118,7 +1118,7 @@ generic_unpack (exr_decode_pipeline_t* decode) + (uint64_t) decc->user_line_stride); + else + { +- srcbuffer += w * bpc; ++ srcbuffer += (int64_t) w * bpc; + continue; + } + } +@@ -1128,12 +1128,12 @@ generic_unpack (exr_decode_pipeline_t* decode) + } + else + { +- srcbuffer += w * bpc; ++ srcbuffer += (int64_t) w * bpc; + continue; + } + + UNPACK_SAMPLES (w) +- srcbuffer += w * bpc; ++ srcbuffer += (int64_t) w * bpc; + } + } + return EXR_ERR_SUCCESS; + +From f5f7f32d5761b8d28d61e391e9daf68bd62bc9e5 Mon Sep 17 00:00:00 2001 +From: Cary Phillips +Date: Sun, 29 Mar 2026 19:19:12 -0700 +Subject: [PATCH 3/6] Security: fix signed integer overflow in + `undo_pxr24_impl()` (PXR24 decoder) (#2323) + +In the `EXR_PIXEL_FLOAT` branch of `undo_pxr24_impl()`, the expressions + + (uint64_t)(w * 3) + +compute the signed 32-bit product `w * 3` before the cast to `uint64_t`. +When `w` is large this is undefined behavior under the C standard; on +two's-complement builds without sanitizers the result wraps to a small +positive value, which can cause the bounds check + + if (nDec + (uint64_t)(w * 3) > outSize) + +to pass incorrectly. If the check is bypassed the decode loop proceeds +to write `4*w` bytes through `dout`, potentially far beyond the allocated +output buffer. + +Fix: cast `w` to `uint64_t` before multiplying so that both the bounds +check and the counter update are performed entirely in 64-bit unsigned +arithmetic: + + (uint64_t)w * 3 (cast before multiply, not after) + +The `EXR_PIXEL_UINT` and `EXR_PIXEL_HALF` decode branches are unaffected: +they reuse the pre-computed `nBytes` variable, which is already formed as +`(uint64_t)(w) * (uint64_t)(bytes_per_element)`. + +Also fix the symmetric issue in `apply_pxr24_impl()` (the encoder): + lastIn += w * 4 +advances a pointer by a signed 32-bit product; corrected to + lastIn += (uint64_t)w * 4 + +Made-with: Cursor + +Signed-off-by: Cary Phillips +--- + .../plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_pxr24.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_pxr24.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_pxr24.c +index 43e52c982cf..30f71f4f846 100644 +--- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_pxr24.c ++++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_pxr24.c +@@ -182,7 +182,7 @@ apply_pxr24_impl (exr_encode_pipeline_t* encode) + if (nOut + nBytes > encode->scratch_alloc_size_1) + return EXR_ERR_OUT_OF_MEMORY; + nOut += nBytes; +- lastIn += w * 4; ++ lastIn += (uint64_t) w * 4; + + ptr[0] = out; + out += w; +@@ -371,7 +371,7 @@ undo_pxr24_impl ( + ptr[2] = lastIn; + lastIn += w; + +- if (nDec + (uint64_t) (w * 3) > outSize) ++ if (nDec + (uint64_t) w * 3 > outSize) + return EXR_ERR_CORRUPT_CHUNK; + + for (int x = 0; x < w; ++x) +@@ -384,7 +384,7 @@ undo_pxr24_impl ( + unaligned_store32 (dout, pixel); + ++dout; + } +- nDec += (uint64_t) (w * 3); ++ nDec += (uint64_t) w * 3; + break; + } + default: return EXR_ERR_INVALID_ARGUMENT; + +From d578381a503add330b3b96b30cf6a49461989f08 Mon Sep 17 00:00:00 2001 +From: Cary Phillips +Date: Sun, 29 Mar 2026 19:19:49 -0700 +Subject: [PATCH 4/6] fix integer overflow in PIZ wavelet buffer arithmetic + (#2328) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Three classes of signed integer overflow in the PIZ codec path, all +reachable from corrupt `dataWindow` dimensions in the EXR file header. + +**`wav_2D_encode` / `wav_2D_decode` — wavelet loop pointer arithmetic** + +`oy` is passed as `int` (value `wcount * nx`, at most ~INT32_MAX after +the guard below). Inside the hierarchical wavelet loop the expressions + + ey = in + oy * (ny - p2) // pointer end-of-row sentinel + oy1 = oy * p // row stride at level p + oy2 = oy * p2 // row stride at level p2 + +multiply two values that can each approach INT32_MAX, producing a +signed 32-bit product that wraps to a small or negative value. The +wrapped value is used as a pointer offset, causing reads and writes +through `px` / `py` to land outside the allocated wavelet buffer. + +Fix: widen by introducing `int64_t oy64 = oy` and using it for all +three expressions; `oy1` and `oy2` are also declared `int64_t`. + +**`wavbuf += nx * ny * wcount` — per-channel buffer advance** + +`nx`, `ny`, and `wcount` are all `int`. Their triple product overflows +int32 for moderately large images, causing subsequent channels to be +processed at an incorrect (too-small) offset into the wavelet buffer, +corrupting both encode and decode output. + +Fix: cast to `(uint64_t)` before multiplying. + +**`wcount * nx` — call-site argument overflow** + +The fifth argument to `wav_2D_encode` / `wav_2D_decode` is `wcount * nx` +(`oy` = y-stride = elements per row). `wcount` is 1 or 2 +(`bytes_per_element / 2`); for `wcount = 2` the product overflows int32 +when `nx > INT32_MAX / 2`. + +Fix: add an early bounds check `if (wcount > 0 && nx > INT_MAX / wcount)` +that rejects such input as `EXR_ERR_CORRUPT_CHUNK` before any arithmetic +is performed. This also keeps `wcount * nx` within int32 range at the +call site, ensuring `oy` arrives in the wavelet functions with a valid +non-overflowed value. + +Made-with: Cursor + +Signed-off-by: Cary Phillips +--- + .../OpenEXR/OpenEXRCore/internal_piz.c | 39 +++++++++++-------- + 1 file changed, 23 insertions(+), 16 deletions(-) + +diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_piz.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_piz.c +index 6c2750b166f..787d2752c61 100644 +--- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_piz.c ++++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_piz.c +@@ -10,6 +10,7 @@ + #include "internal_huf.h" + #include "internal_xdr.h" + ++#include + #include + + /**************************************/ +@@ -171,10 +172,11 @@ wdec16 (uint16_t l, uint16_t h, uint16_t* a, uint16_t* b) + static void + wav_2D_encode (uint16_t* in, int nx, int ox, int ny, int oy, uint16_t mx) + { +- int w14 = (mx < (1 << 14)) ? 1 : 0; +- int n = (nx > ny) ? ny : nx; +- int p = 1; // == 1 << level +- int p2 = 2; // == 1 << (level+1) ++ int w14 = (mx < (1 << 14)) ? 1 : 0; ++ int n = (nx > ny) ? ny : nx; ++ int p = 1; // == 1 << level ++ int p2 = 2; // == 1 << (level+1) ++ int64_t oy64 = oy; + + // + // Hierarchical loop on smaller dimension n +@@ -183,9 +185,9 @@ wav_2D_encode (uint16_t* in, int nx, int ox, int ny, int oy, uint16_t mx) + while (p2 <= n) + { + uint16_t* py = in; +- uint16_t* ey = in + oy * (ny - p2); +- int oy1 = oy * p; +- int oy2 = oy * p2; ++ uint16_t* ey = in + oy64 * (ny - p2); ++ int64_t oy1 = oy64 * p; ++ int64_t oy2 = oy64 * p2; + int ox1 = ox * p; + int ox2 = ox * p2; + uint16_t i00, i01, i10, i11; +@@ -284,10 +286,11 @@ wav_2D_decode ( + int oy, // i : y offset + uint16_t mx) // i : maximum in[x][y] value + { +- int w14 = (mx < (1 << 14)) ? 1 : 0; +- int n = (nx > ny) ? ny : nx; +- int p = 1; +- int p2; ++ int w14 = (mx < (1 << 14)) ? 1 : 0; ++ int n = (nx > ny) ? ny : nx; ++ int p = 1; ++ int p2; ++ int64_t oy64 = oy; + + // + // Search max level +@@ -307,9 +310,9 @@ wav_2D_decode ( + while (p >= 1) + { + uint16_t* py = in; +- uint16_t* ey = in + oy * (ny - p2); +- int oy1 = oy * p; +- int oy2 = oy * p2; ++ uint16_t* ey = in + oy64 * (ny - p2); ++ int64_t oy1 = oy64 * p; ++ int64_t oy2 = oy64 * p2; + int ox1 = ox * p; + int ox2 = ox * p2; + uint16_t i00, i01, i10, i11; +@@ -502,11 +505,13 @@ internal_exr_apply_piz (exr_encode_pipeline_t* encode) + nx = curc->width; + ny = curc->height; + wcount = (int) (curc->bytes_per_element / 2); ++ if (wcount > 0 && nx > INT_MAX / wcount) ++ return EXR_ERR_CORRUPT_CHUNK; + for (int j = 0; j < wcount; ++j) + { + wav_2D_encode (wavbuf + j, nx, wcount, ny, wcount * nx, maxValue); + } +- wavbuf += nx * ny * wcount; ++ wavbuf += (uint64_t) nx * ny * wcount; + } + + nBytes = 0; +@@ -655,11 +660,13 @@ internal_exr_undo_piz ( + nx = curc->width; + ny = curc->height; + wcount = (int) (curc->bytes_per_element / 2); ++ if (wcount > 0 && nx > INT_MAX / wcount) ++ return EXR_ERR_CORRUPT_CHUNK; + for (int j = 0; j < wcount; ++j) + { + wav_2D_decode (wavbuf + j, nx, wcount, ny, wcount * nx, maxValue); + } +- wavbuf += nx * ny * wcount; ++ wavbuf += (uint64_t) nx * ny * wcount; + } + + // + +From a76474285ddc24e9956b5e12fab658b908912ed4 Mon Sep 17 00:00:00 2001 +From: Cary Phillips +Date: Sun, 29 Mar 2026 19:20:52 -0700 +Subject: [PATCH 5/6] Fix signed integer overflow in + `LossyDctDecoder_execute()` pointer arithmetic (#2329) + +`numBlocksX` and `numBlocksY` are declared as `int`. Two pointer-offset +expressions in `LossyDctDecoder_execute()` multiplied them as signed +32-bit integers before using the result as a pointer offset: + + rowBlock[comp] = rowBlock[comp - 1] + numBlocksX * 64; + currDcComp[comp] = currDcComp[comp - 1] + numBlocksX * numBlocksY; + +`dataWindow.max.x` is a signed 32-bit value in the EXR file format, so +`numBlocksX` can reach `(INT32_MAX + 7) / 8 = 268,435,456`. At that +point `numBlocksX * 64 = 17,179,869,184` overflows `int32`, and +`numBlocksX * numBlocksY` overflows even sooner. The wraparound +produces a small or negative pointer offset, causing `rowBlock[comp]` +and `currDcComp[comp]` to point into already-used or pre-buffer memory +rather than the intended component stride. + +Fix: cast `numBlocksX` to `size_t` before multiplying so the +arithmetic is performed in pointer-sized unsigned arithmetic: + + rowBlock[comp] = rowBlock[comp - 1] + (size_t) numBlocksX * 64; + currDcComp[comp] = currDcComp[comp - 1] + (size_t) numBlocksX * numBlocksY; + +This is consistent with the allocation on the line above, which already +uses `(size_t) numComp * (size_t) numBlocksX * 64 * sizeof(uint16_t)`, +and with the packed-DC count check, which uses explicit `uint64_t` casts. + +Made-with: Cursor + +Signed-off-by: Cary Phillips +--- + .../hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h +index bcdebd985f9..e289b064dac 100644 +--- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h ++++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h +@@ -265,7 +265,7 @@ LossyDctDecoder_execute ( + } + + for (int comp = 1; comp < numComp; ++comp) +- rowBlock[comp] = rowBlock[comp - 1] + numBlocksX * 64; ++ rowBlock[comp] = rowBlock[comp - 1] + (size_t) numBlocksX * 64; + + // + // Pack DC components together by common plane, so we can get +@@ -275,7 +275,7 @@ LossyDctDecoder_execute ( + + currDcComp[0] = (uint16_t*) d->_packedDc; + for (int comp = 1; comp < numComp; ++comp) +- currDcComp[comp] = currDcComp[comp - 1] + numBlocksX * numBlocksY; ++ currDcComp[comp] = currDcComp[comp - 1] + (size_t) numBlocksX * numBlocksY; + + for (int blocky = 0; blocky < numBlocksY; ++blocky) + { + +From 219a0870506f80c7353016800e467ad0de923424 Mon Sep 17 00:00:00 2001 +From: Cary Phillips +Date: Tue, 31 Mar 2026 07:49:09 -0700 +Subject: [PATCH 6/6] =?UTF-8?q?Fix=20misaligned=20memory=20access=20in=20`?= + =?UTF-8?q?LossyDctDecoder=5Fexecute`=20HALF=E2=86=92FLOAT=20expansion=20(?= + =?UTF-8?q?#2324)?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +* Fix misaligned memory access in `LossyDctDecoder_execute` HALF→FLOAT expansion + +After DCT decoding, `LossyDctDecoder_execute()` expands FLOAT-type channels +from their intermediate HALF (16-bit) XDR representation back to FLOAT (32-bit) +XDR in place. The expansion was done by casting `_rows[y]` (a `uint8_t *`) +directly to `float *` and `uint16_t *`, then reading and writing through those +typed pointers. + +Because row buffers are assigned by advancing a byte pointer with no alignment +padding (`outBufferEnd += chan->width * chan->bytes_per_element` in +`internal_dwa_compressor.h`), a FLOAT channel that follows a HALF channel of +odd width receives a `_rows[y]` pointer that is 2-byte aligned but not 4-byte +aligned. Dereferencing a `float *` cast from such a pointer is undefined +behavior under the C standard: + +- On ARM, RISC-V, and MIPS (strict alignment) this crashes immediately. +- On x86 it is silently tolerated at the hardware level but remains UB: + auto-vectorizing compilers (SSE/AVX) may assume aligned access and generate + incorrect code. +- UBSan reports: `store to misaligned address ... for type 'float', which + requires 4 byte alignment` at `internal_dwa_decoder.h:749`. + +Fix: replace the cast-and-dereference pattern with the `unaligned_load16` / +`memcpy` / `unaligned_store32` helpers already used throughout the rest of +OpenEXRCore (`internal_xdr.h`, `unpack.c`, `pack.c`, `internal_pxr24.c`). +These helpers use `memcpy` internally, which the C standard guarantees is safe +for unaligned addresses and which compilers compile to a single load/store +instruction on architectures that support it. + +The byte-order handling is preserved correctly: +- `unaligned_load16` reads 2 bytes via `memcpy` and applies `one_to_native16` + (XDR → native), returning a native-endian HALF value. +- `half_to_float` converts native HALF → native float. +- `memcpy(&bits, &f, 4)` reinterprets the float's bit pattern as `uint32_t` + without numeric conversion (the correct type-pun idiom in C). +- `unaligned_store32` applies `one_from_native32` (native → XDR) and writes + 4 bytes via `memcpy`, storing the result in XDR float format. + +Made-with: Cursor +Signed-off-by: Cary Phillips + +* add TODO comment + +Signed-off-by: Cary Phillips + +--------- + +Signed-off-by: Cary Phillips +--- + .../OpenEXR/OpenEXRCore/internal_dwa_decoder.h | 17 +++++++++++++---- + 1 file changed, 13 insertions(+), 4 deletions(-) + +diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h +index e289b064dac..046615ec5b8 100644 +--- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h ++++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h +@@ -651,13 +651,22 @@ LossyDctDecoder_execute ( + /* process in place in reverse to avoid temporary buffer */ + for (int y = 0; y < d->_height; ++y) + { +- float* floatXdrPtr = (float*) chanData[chan]->_rows[y]; +- uint16_t* halfXdr = (uint16_t*) floatXdrPtr; ++ uint8_t* rowBytes = chanData[chan]->_rows[y]; + + for (int x = d->_width - 1; x >= 0; --x) + { +- floatXdrPtr[x] = one_from_native_float ( +- half_to_float (one_to_native16 (halfXdr[x]))); ++ // TODO: make an unaligned_store32f that takes the float and ++ // packages up a one_from_native_float and calls memcpy ++ // instead of the two memcpy. We should look at the metrics ++ // for dwa and see if there's a performance difference to do ++ // so at some point. See: ++ // https://github.com/AcademySoftwareFoundation/openexr/pull/2324 ++ ++ uint16_t h = unaligned_load16 (rowBytes + x * sizeof (uint16_t)); ++ float f = half_to_float (h); ++ uint32_t bits; ++ memcpy (&bits, &f, sizeof (bits)); ++ unaligned_store32 (rowBytes + x * sizeof (float), bits); + } + } + } diff --git a/usd.spec b/usd.spec index f1b273f..e2186c4 100644 --- a/usd.spec +++ b/usd.spec @@ -154,6 +154,15 @@ Patch: %{forgeurl}/pull/3903.patch # Backport fix for CVE-2026-34544 in OpenEXRCore # https://github.com/PixarAnimationStudios/OpenUSD/pull/4028 Patch: %{forgeurl}/pull/4028.patch +# Backport several OpenEXRCore security fixes +# https://github.com/PixarAnimationStudios/OpenUSD/pull/4030 +# Fixes: +# - CVE-2026-34378 / GHSA-v76p-4qvv-vh4g / RHBZ#2455493 +# - CVE-2026-34380 / GHSA-q3v8-hw4m-59w5 / RHBZ#2455534 +# - CVE-2026-34588 / GHSA-588r-cr5c-w6hf / RHBZ#2455505 +# - CVE-2026-34589 / GHSA-p8xc-w3q4-h64x / RHBZ#2455501 +# - CVE-2026-34379 / GHSA-w88v-vqhq-5p24 / RHBZ#2455497 +Patch: %{forgeurl}/pull/4030.patch # Base BuildRequires: gcc-c++ From d7db70a14df648ce58955e0982c55f3418473233 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 16 Apr 2026 19:30:30 -0600 Subject: [PATCH 79/85] Rebuild for hdf5 2.1 From b8ae07c43dfa649205413bf5f376d0b78af430be Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 27 Apr 2026 11:43:09 +0100 Subject: [PATCH 80/85] Update to 26.05 (close RHBZ#2461650) --- .gitignore | 1 + ...ownstream-only-add-an-SONAME-version.patch | 6 +- ...use-the-system-double-conversion-lib.patch | 6 +- ...ream-only-use-the-system-lz4-library.patch | 6 +- ...-only-use-the-system-pugixml-library.patch | 2 +- ...nly-use-the-system-rapidjson-library.patch | 2 +- ...tream-only-use-the-system-libdeflate.patch | 2 +- ...wnstream-only-use-the-system-libavif.patch | 2 +- 4028.patch | 71 -- 4030.patch | 612 ------------------ sources | 2 +- usd.spec | 18 +- 12 files changed, 18 insertions(+), 712 deletions(-) delete mode 100644 4028.patch delete mode 100644 4030.patch diff --git a/.gitignore b/.gitignore index f00caa1..cf961b4 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ /OpenUSD-25.08.tar.gz /OpenUSD-25.11.tar.gz /OpenUSD-26.03.tar.gz +/OpenUSD-26.05.tar.gz diff --git a/0001-Downstream-only-add-an-SONAME-version.patch b/0001-Downstream-only-add-an-SONAME-version.patch index 7a55eca..c86bdb4 100644 --- a/0001-Downstream-only-add-an-SONAME-version.patch +++ b/0001-Downstream-only-add-an-SONAME-version.patch @@ -1,4 +1,4 @@ -From 949707d0bd8ac077fac9763b3b590a016ff4eb6f Mon Sep 17 00:00:00 2001 +From 330d176f208baadd2db58f8797bc492f2d81c03f 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 @@ -37,11 +37,11 @@ built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) 3 files changed, 9 insertions(+) diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake -index 1cc7fa64a..ebe531ec4 100644 +index 3efcd4e82..e8f37af98 100644 --- a/cmake/defaults/Version.cmake +++ b/cmake/defaults/Version.cmake @@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "26") - set(PXR_PATCH_VERSION "3") # NOTE: Must not have leading 0 for single digits + set(PXR_PATCH_VERSION "5") # NOTE: Must not have leading 0 for single digits math(EXPR PXR_VERSION "${PXR_MAJOR_VERSION} * 10000 + ${PXR_MINOR_VERSION} * 100 + ${PXR_PATCH_VERSION}") + 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 30a54ef..51614ec 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 5bc91bdebc42bb3a441c87b706288cea05fcd345 Mon Sep 17 00:00:00 2001 +From ea7f51376f03620c6187f3672dad12951669ecb5 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,7 +8,7 @@ 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 6fc9c680e..551b5a3eb 100644 +index 8c0f8e4a1..3afc2edaf 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -105,11 +105,14 @@ function(add_py_dll_link_test) @@ -26,7 +26,7 @@ index 6fc9c680e..551b5a3eb 100644 PUBLIC_CLASSES anyUniquePtr -@@ -272,14 +275,6 @@ pxr_library(tf +@@ -276,14 +279,6 @@ pxr_library(tf CPPFILES initConfig.cpp diff --git a/0002-Downstream-only-use-the-system-lz4-library.patch b/0002-Downstream-only-use-the-system-lz4-library.patch index 910d576..a61e7fb 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,4 +1,4 @@ -From 0caa009abce9d66d441cd548f45ca8fef8d4846d Mon Sep 17 00:00:00 2001 +From cb323e80b560cbebf49c0e199804965b472274b0 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 @@ -8,7 +8,7 @@ Subject: [PATCH 2/6] Downstream-only: use the system lz4 library 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt -index 551b5a3eb..772524a19 100644 +index 3afc2edaf..8ae85b5eb 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -106,6 +106,8 @@ function(add_py_dll_link_test) @@ -31,7 +31,7 @@ index 551b5a3eb..772524a19 100644 PUBLIC_CLASSES anyUniquePtr -@@ -275,7 +281,6 @@ pxr_library(tf +@@ -279,7 +285,6 @@ pxr_library(tf CPPFILES initConfig.cpp diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch index 974ff6f..6f0a13a 100644 --- a/0003-Downstream-only-use-the-system-pugixml-library.patch +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -1,4 +1,4 @@ -From d1e032128f9c41a763d9e0535c408ffa6642ae03 Mon Sep 17 00:00:00 2001 +From de61621ccbee32776ea9e330384f6275c4237259 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 diff --git a/0004-Downstream-only-use-the-system-rapidjson-library.patch b/0004-Downstream-only-use-the-system-rapidjson-library.patch index 090b753..d9e2dcf 100644 --- a/0004-Downstream-only-use-the-system-rapidjson-library.patch +++ b/0004-Downstream-only-use-the-system-rapidjson-library.patch @@ -1,4 +1,4 @@ -From 8fc7363878d1917d5b3f3513b16d54293463c297 Mon Sep 17 00:00:00 2001 +From a83325f12491456b6ad9cb40fa09f0155377263f 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 diff --git a/0005-Downstream-only-use-the-system-libdeflate.patch b/0005-Downstream-only-use-the-system-libdeflate.patch index cc5de7a..c97e35f 100644 --- a/0005-Downstream-only-use-the-system-libdeflate.patch +++ b/0005-Downstream-only-use-the-system-libdeflate.patch @@ -1,4 +1,4 @@ -From 30b0460635b46ce71f22586273afb370075d7db8 Mon Sep 17 00:00:00 2001 +From 91b0341364b986e051a150a9f33e98a12bc3f20d 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 diff --git a/0006-Downstream-only-use-the-system-libavif.patch b/0006-Downstream-only-use-the-system-libavif.patch index cac8a41..5b5fc40 100644 --- a/0006-Downstream-only-use-the-system-libavif.patch +++ b/0006-Downstream-only-use-the-system-libavif.patch @@ -1,4 +1,4 @@ -From c6639b8f1a8c57b02071426400daa349eed14501 Mon Sep 17 00:00:00 2001 +From 81ac0ca314d66e96f43ed904204b63be302e0743 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 diff --git a/4028.patch b/4028.patch deleted file mode 100644 index 9fd2598..0000000 --- a/4028.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 83c6cdfa63ad61accec35575f503b629f94dc4af Mon Sep 17 00:00:00 2001 -From: Cary Phillips -Date: Thu, 19 Mar 2026 14:22:40 -0700 -Subject: [PATCH] Fix B44/B44A integer overflow: use uint64_t for row offset - (#2312) - -The B44 and B44A decoder and encoder use channel width (`nx`) and -height (`ny`) in row pointer math. `nx` and `ny` are `int`; the -scratch buffer is correctly sized with `(uint64_t)ny * (uint64_t)nx * -bytes_per_element`, but row bases were computed as: - -``` - row0 = (uint16_t*)scratch; - row0 += y * nx; // int * int -> signed overflow when y*nx > INT_MAX -``` - -For large `nx` (e.g. 268435456), `y*nx` overflows, so `row0`/`row1`/`row2`/`row3` -point before the scratch buffer. - -Fix: compute the row offset in `uint64_t` before pointer arithmetic in both -`uncompress_b44_impl` (decoder) and `compress_b44_impl` (encoder). - -Analysis and solution with the help of Curor / Claude Opus 4.5 - -Signed-off-by: Cary Phillips ---- - .../OpenEXR/OpenEXRCore/internal_b44.c | 23 ++++++++++--------- - 1 file changed, 12 insertions(+), 11 deletions(-) - -diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_b44.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_b44.c -index 8d0c257e658..93279ff2ed5 100644 ---- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_b44.c -+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_b44.c -@@ -390,13 +390,13 @@ compress_b44_impl (exr_encode_pipeline_t* encode, int flat_field) - // rightmost column and the bottom row. - // - uint16_t *row0, *row1, *row2, *row3; -+ /* row offset in elements: use uint64_t so y*nx cannot overflow int */ -+ uint64_t row_off = (uint64_t) (y) * (uint64_t) (nx); - -- row0 = (uint16_t*) scratch; -- row0 += y * nx; -- -- row1 = row0 + nx; -- row2 = row1 + nx; -- row3 = row2 + nx; -+ row0 = (uint16_t*) scratch + row_off; -+ row1 = row0 + (uint64_t) nx; -+ row2 = row1 + (uint64_t) nx; -+ row3 = row2 + (uint64_t) nx; - - if (y + 3 >= ny) - { -@@ -512,11 +512,12 @@ uncompress_b44_impl ( - - for (int y = 0; y < ny; y += 4) - { -- row0 = (uint16_t*) scratch; -- row0 += y * nx; -- row1 = row0 + nx; -- row2 = row1 + nx; -- row3 = row2 + nx; -+ /* row offset in elements: use uint64_t so y*nx cannot overflow int */ -+ uint64_t row_off = (uint64_t) (y) * (uint64_t) (nx); -+ row0 = (uint16_t*) scratch + row_off; -+ row1 = row0 + (uint64_t) nx; -+ row2 = row1 + (uint64_t) nx; -+ row3 = row2 + (uint64_t) nx; - for (int x = 0; x < nx; x += 4) - { - if (bIn + 3 > comp_buf_size) return EXR_ERR_OUT_OF_MEMORY; diff --git a/4030.patch b/4030.patch deleted file mode 100644 index 896f2e3..0000000 --- a/4030.patch +++ /dev/null @@ -1,612 +0,0 @@ -From 4f03fb0f488d8f528bdc0f9ecac07eea8f7b63ac Mon Sep 17 00:00:00 2001 -From: Christoph Gohlke -Date: Tue, 17 Mar 2026 20:56:39 -0700 -Subject: [PATCH 1/6] Fix comparison operator for buffer size check (#2307) - -Signed-off-by: Christoph Gohlke ---- - .../plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_zip.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_zip.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_zip.c -index 628438c5c01..56df6a49c2f 100644 ---- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_zip.c -+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_zip.c -@@ -367,7 +367,7 @@ apply_zip_impl (exr_encode_pipeline_t* encode) - - if (rv == EXR_ERR_SUCCESS) - { -- if (compbufsz > encode->packed_bytes) -+ if (compbufsz >= encode->packed_bytes) - { - memcpy ( - encode->compressed_buffer, - -From 0512b6c41b95e5c0ac9e01b2f87b56acd437d8e9 Mon Sep 17 00:00:00 2001 -From: Cary Phillips -Date: Thu, 26 Mar 2026 16:35:49 -0700 -Subject: [PATCH 2/6] Fix integer overflow in `srcbuffer` pointer arithmetic in - `unpack_*` (#2321) - -Pointer arithmetic involving `srcbuffer` in the `unpack_*` functions -can overflow for very wide images. - -Multiplying `int w` by a bytes-per-element constant (2, 4, 6, or 8) in -`srcbuffer +=` expressions causes signed integer overflow when the -image width is large. - -Promote the leading operand to `int64_t` at every affected multiplication -so pointer arithmetic is performed in 64-bit signed arithmetic throughout, -eliminating the undefined behavior without imposing any image size limit. - -Affected sites: `generic_unpack`, `unpack_16bit`, `unpack_32bit`, and -all 3- and 4-channel interleave/planar specializations. - -Made-with: Cursor - -Signed-off-by: Cary Phillips ---- - .../hioOpenEXR/OpenEXR/OpenEXRCore/unpack.c | 38 +++++++++---------- - 1 file changed, 19 insertions(+), 19 deletions(-) - -diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/unpack.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/unpack.c -index 1324508c5b4..8765bfa50d6 100644 ---- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/unpack.c -+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/unpack.c -@@ -229,7 +229,7 @@ unpack_16bit_3chan_interleave (exr_decode_pipeline_t* decode) - in1 = in0 + w; - in2 = in1 + w; - -- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion - for (int x = 0; x < w; ++x) - { - out[0] = one_to_native16 (in0[x]); -@@ -269,7 +269,7 @@ unpack_16bit_3chan_interleave_rev (exr_decode_pipeline_t* decode) - in1 = in0 + w; // G - in2 = in1 + w; // R - -- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion - for (int x = 0; x < w; ++x) - { - out[0] = one_to_native16 (in2[x]); -@@ -309,7 +309,7 @@ unpack_half_to_float_3chan_interleave (exr_decode_pipeline_t* decode) - in1 = in0 + w; - in2 = in1 + w; - -- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion - for (int x = 0; x < w; ++x) - { - out[0] = half_to_float (one_to_native16 (in0[x])); -@@ -349,7 +349,7 @@ unpack_half_to_float_3chan_interleave_rev (exr_decode_pipeline_t* decode) - in1 = in0 + w; - in2 = in1 + w; - -- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion - for (int x = 0; x < w; ++x) - { - out[0] = half_to_float (one_to_native16 (in2[x])); -@@ -390,7 +390,7 @@ unpack_16bit_3chan_planar (exr_decode_pipeline_t* decode) - in0 = (const uint16_t*) srcbuffer; - in1 = in0 + w; - in2 = in1 + w; -- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion - /* specialise to memcpy if we can */ - #if EXR_HOST_IS_NOT_LITTLE_ENDIAN - for (int x = 0; x < w; ++x) -@@ -440,7 +440,7 @@ unpack_half_to_float_3chan_planar (exr_decode_pipeline_t* decode) - in0 = (const uint16_t*) srcbuffer; - in1 = in0 + w; - in2 = in1 + w; -- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion - /* specialise to memcpy if we can */ - half_to_float_buffer ((float*) out0, in0, w); - half_to_float_buffer ((float*) out1, in1, w); -@@ -485,7 +485,7 @@ unpack_16bit_3chan (exr_decode_pipeline_t* decode) - in0 = (const uint16_t*) srcbuffer; - in1 = in0 + w; - in2 = in1 + w; -- srcbuffer += w * 6; // 3 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 6; // 3 * sizeof(uint16_t), avoid type conversion - for (int x = 0; x < w; ++x) - *((uint16_t*) (out0 + x * inc0)) = one_to_native16 (in0[x]); - for (int x = 0; x < w; ++x) -@@ -539,7 +539,7 @@ unpack_16bit_4chan_interleave (exr_decode_pipeline_t* decode) - in2 = in1 + w; - in3 = in2 + w; - -- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion - for (int x = 0; x < w; ++x) - { - combined.a = one_to_native16 (in0[x]); -@@ -592,7 +592,7 @@ unpack_16bit_4chan_interleave_rev (exr_decode_pipeline_t* decode) - in2 = in1 + w; - in3 = in2 + w; - -- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion - for (int x = 0; x < w; ++x) - { - combined.a = one_to_native16 (in0[x]); -@@ -633,7 +633,7 @@ unpack_half_to_float_4chan_interleave (exr_decode_pipeline_t* decode) - in2 = in1 + w; - in3 = in2 + w; - -- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion - for (int x = 0; x < w; ++x) - { - out[0] = half_to_float (one_to_native16 (in3[x])); -@@ -674,7 +674,7 @@ unpack_half_to_float_4chan_interleave_rev (exr_decode_pipeline_t* decode) - in2 = in1 + w; - in3 = in2 + w; - -- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion - for (int x = 0; x < w; ++x) - { - out[0] = half_to_float (one_to_native16 (in0[x])); -@@ -719,7 +719,7 @@ unpack_16bit_4chan_planar (exr_decode_pipeline_t* decode) - in1 = in0 + w; - in2 = in1 + w; - in3 = in2 + w; -- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion - /* specialize to memcpy if we can */ - #if EXR_HOST_IS_NOT_LITTLE_ENDIAN - for (int x = 0; x < w; ++x) -@@ -775,7 +775,7 @@ unpack_half_to_float_4chan_planar (exr_decode_pipeline_t* decode) - in1 = in0 + w; - in2 = in1 + w; - in3 = in2 + w; -- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion - - half_to_float_buffer ((float*) out0, in0, w); - half_to_float_buffer ((float*) out1, in1, w); -@@ -825,7 +825,7 @@ unpack_16bit_4chan (exr_decode_pipeline_t* decode) - in1 = in0 + w; - in2 = in1 + w; - in3 = in2 + w; -- srcbuffer += w * 8; // 4 * sizeof(uint16_t), avoid type conversion -+ srcbuffer += (int64_t) w * 8; // 4 * sizeof(uint16_t), avoid type conversion - for (int x = 0; x < w; ++x) - *((uint16_t*) (out0 + x * inc0)) = one_to_native16 (in0[x]); - for (int x = 0; x < w; ++x) -@@ -898,7 +898,7 @@ unpack_16bit (exr_decode_pipeline_t* decode) - } - } - #endif -- srcbuffer += w * 2; -+ srcbuffer += (int64_t) w * 2; - } - } - return EXR_ERR_SUCCESS; -@@ -963,7 +963,7 @@ unpack_32bit (exr_decode_pipeline_t* decode) - } - } - #endif -- srcbuffer += w * 4; -+ srcbuffer += (int64_t) w * 4; - } - } - return EXR_ERR_SUCCESS; -@@ -1118,7 +1118,7 @@ generic_unpack (exr_decode_pipeline_t* decode) - (uint64_t) decc->user_line_stride); - else - { -- srcbuffer += w * bpc; -+ srcbuffer += (int64_t) w * bpc; - continue; - } - } -@@ -1128,12 +1128,12 @@ generic_unpack (exr_decode_pipeline_t* decode) - } - else - { -- srcbuffer += w * bpc; -+ srcbuffer += (int64_t) w * bpc; - continue; - } - - UNPACK_SAMPLES (w) -- srcbuffer += w * bpc; -+ srcbuffer += (int64_t) w * bpc; - } - } - return EXR_ERR_SUCCESS; - -From f5f7f32d5761b8d28d61e391e9daf68bd62bc9e5 Mon Sep 17 00:00:00 2001 -From: Cary Phillips -Date: Sun, 29 Mar 2026 19:19:12 -0700 -Subject: [PATCH 3/6] Security: fix signed integer overflow in - `undo_pxr24_impl()` (PXR24 decoder) (#2323) - -In the `EXR_PIXEL_FLOAT` branch of `undo_pxr24_impl()`, the expressions - - (uint64_t)(w * 3) - -compute the signed 32-bit product `w * 3` before the cast to `uint64_t`. -When `w` is large this is undefined behavior under the C standard; on -two's-complement builds without sanitizers the result wraps to a small -positive value, which can cause the bounds check - - if (nDec + (uint64_t)(w * 3) > outSize) - -to pass incorrectly. If the check is bypassed the decode loop proceeds -to write `4*w` bytes through `dout`, potentially far beyond the allocated -output buffer. - -Fix: cast `w` to `uint64_t` before multiplying so that both the bounds -check and the counter update are performed entirely in 64-bit unsigned -arithmetic: - - (uint64_t)w * 3 (cast before multiply, not after) - -The `EXR_PIXEL_UINT` and `EXR_PIXEL_HALF` decode branches are unaffected: -they reuse the pre-computed `nBytes` variable, which is already formed as -`(uint64_t)(w) * (uint64_t)(bytes_per_element)`. - -Also fix the symmetric issue in `apply_pxr24_impl()` (the encoder): - lastIn += w * 4 -advances a pointer by a signed 32-bit product; corrected to - lastIn += (uint64_t)w * 4 - -Made-with: Cursor - -Signed-off-by: Cary Phillips ---- - .../plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_pxr24.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_pxr24.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_pxr24.c -index 43e52c982cf..30f71f4f846 100644 ---- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_pxr24.c -+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_pxr24.c -@@ -182,7 +182,7 @@ apply_pxr24_impl (exr_encode_pipeline_t* encode) - if (nOut + nBytes > encode->scratch_alloc_size_1) - return EXR_ERR_OUT_OF_MEMORY; - nOut += nBytes; -- lastIn += w * 4; -+ lastIn += (uint64_t) w * 4; - - ptr[0] = out; - out += w; -@@ -371,7 +371,7 @@ undo_pxr24_impl ( - ptr[2] = lastIn; - lastIn += w; - -- if (nDec + (uint64_t) (w * 3) > outSize) -+ if (nDec + (uint64_t) w * 3 > outSize) - return EXR_ERR_CORRUPT_CHUNK; - - for (int x = 0; x < w; ++x) -@@ -384,7 +384,7 @@ undo_pxr24_impl ( - unaligned_store32 (dout, pixel); - ++dout; - } -- nDec += (uint64_t) (w * 3); -+ nDec += (uint64_t) w * 3; - break; - } - default: return EXR_ERR_INVALID_ARGUMENT; - -From d578381a503add330b3b96b30cf6a49461989f08 Mon Sep 17 00:00:00 2001 -From: Cary Phillips -Date: Sun, 29 Mar 2026 19:19:49 -0700 -Subject: [PATCH 4/6] fix integer overflow in PIZ wavelet buffer arithmetic - (#2328) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Three classes of signed integer overflow in the PIZ codec path, all -reachable from corrupt `dataWindow` dimensions in the EXR file header. - -**`wav_2D_encode` / `wav_2D_decode` — wavelet loop pointer arithmetic** - -`oy` is passed as `int` (value `wcount * nx`, at most ~INT32_MAX after -the guard below). Inside the hierarchical wavelet loop the expressions - - ey = in + oy * (ny - p2) // pointer end-of-row sentinel - oy1 = oy * p // row stride at level p - oy2 = oy * p2 // row stride at level p2 - -multiply two values that can each approach INT32_MAX, producing a -signed 32-bit product that wraps to a small or negative value. The -wrapped value is used as a pointer offset, causing reads and writes -through `px` / `py` to land outside the allocated wavelet buffer. - -Fix: widen by introducing `int64_t oy64 = oy` and using it for all -three expressions; `oy1` and `oy2` are also declared `int64_t`. - -**`wavbuf += nx * ny * wcount` — per-channel buffer advance** - -`nx`, `ny`, and `wcount` are all `int`. Their triple product overflows -int32 for moderately large images, causing subsequent channels to be -processed at an incorrect (too-small) offset into the wavelet buffer, -corrupting both encode and decode output. - -Fix: cast to `(uint64_t)` before multiplying. - -**`wcount * nx` — call-site argument overflow** - -The fifth argument to `wav_2D_encode` / `wav_2D_decode` is `wcount * nx` -(`oy` = y-stride = elements per row). `wcount` is 1 or 2 -(`bytes_per_element / 2`); for `wcount = 2` the product overflows int32 -when `nx > INT32_MAX / 2`. - -Fix: add an early bounds check `if (wcount > 0 && nx > INT_MAX / wcount)` -that rejects such input as `EXR_ERR_CORRUPT_CHUNK` before any arithmetic -is performed. This also keeps `wcount * nx` within int32 range at the -call site, ensuring `oy` arrives in the wavelet functions with a valid -non-overflowed value. - -Made-with: Cursor - -Signed-off-by: Cary Phillips ---- - .../OpenEXR/OpenEXRCore/internal_piz.c | 39 +++++++++++-------- - 1 file changed, 23 insertions(+), 16 deletions(-) - -diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_piz.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_piz.c -index 6c2750b166f..787d2752c61 100644 ---- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_piz.c -+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_piz.c -@@ -10,6 +10,7 @@ - #include "internal_huf.h" - #include "internal_xdr.h" - -+#include - #include - - /**************************************/ -@@ -171,10 +172,11 @@ wdec16 (uint16_t l, uint16_t h, uint16_t* a, uint16_t* b) - static void - wav_2D_encode (uint16_t* in, int nx, int ox, int ny, int oy, uint16_t mx) - { -- int w14 = (mx < (1 << 14)) ? 1 : 0; -- int n = (nx > ny) ? ny : nx; -- int p = 1; // == 1 << level -- int p2 = 2; // == 1 << (level+1) -+ int w14 = (mx < (1 << 14)) ? 1 : 0; -+ int n = (nx > ny) ? ny : nx; -+ int p = 1; // == 1 << level -+ int p2 = 2; // == 1 << (level+1) -+ int64_t oy64 = oy; - - // - // Hierarchical loop on smaller dimension n -@@ -183,9 +185,9 @@ wav_2D_encode (uint16_t* in, int nx, int ox, int ny, int oy, uint16_t mx) - while (p2 <= n) - { - uint16_t* py = in; -- uint16_t* ey = in + oy * (ny - p2); -- int oy1 = oy * p; -- int oy2 = oy * p2; -+ uint16_t* ey = in + oy64 * (ny - p2); -+ int64_t oy1 = oy64 * p; -+ int64_t oy2 = oy64 * p2; - int ox1 = ox * p; - int ox2 = ox * p2; - uint16_t i00, i01, i10, i11; -@@ -284,10 +286,11 @@ wav_2D_decode ( - int oy, // i : y offset - uint16_t mx) // i : maximum in[x][y] value - { -- int w14 = (mx < (1 << 14)) ? 1 : 0; -- int n = (nx > ny) ? ny : nx; -- int p = 1; -- int p2; -+ int w14 = (mx < (1 << 14)) ? 1 : 0; -+ int n = (nx > ny) ? ny : nx; -+ int p = 1; -+ int p2; -+ int64_t oy64 = oy; - - // - // Search max level -@@ -307,9 +310,9 @@ wav_2D_decode ( - while (p >= 1) - { - uint16_t* py = in; -- uint16_t* ey = in + oy * (ny - p2); -- int oy1 = oy * p; -- int oy2 = oy * p2; -+ uint16_t* ey = in + oy64 * (ny - p2); -+ int64_t oy1 = oy64 * p; -+ int64_t oy2 = oy64 * p2; - int ox1 = ox * p; - int ox2 = ox * p2; - uint16_t i00, i01, i10, i11; -@@ -502,11 +505,13 @@ internal_exr_apply_piz (exr_encode_pipeline_t* encode) - nx = curc->width; - ny = curc->height; - wcount = (int) (curc->bytes_per_element / 2); -+ if (wcount > 0 && nx > INT_MAX / wcount) -+ return EXR_ERR_CORRUPT_CHUNK; - for (int j = 0; j < wcount; ++j) - { - wav_2D_encode (wavbuf + j, nx, wcount, ny, wcount * nx, maxValue); - } -- wavbuf += nx * ny * wcount; -+ wavbuf += (uint64_t) nx * ny * wcount; - } - - nBytes = 0; -@@ -655,11 +660,13 @@ internal_exr_undo_piz ( - nx = curc->width; - ny = curc->height; - wcount = (int) (curc->bytes_per_element / 2); -+ if (wcount > 0 && nx > INT_MAX / wcount) -+ return EXR_ERR_CORRUPT_CHUNK; - for (int j = 0; j < wcount; ++j) - { - wav_2D_decode (wavbuf + j, nx, wcount, ny, wcount * nx, maxValue); - } -- wavbuf += nx * ny * wcount; -+ wavbuf += (uint64_t) nx * ny * wcount; - } - - // - -From a76474285ddc24e9956b5e12fab658b908912ed4 Mon Sep 17 00:00:00 2001 -From: Cary Phillips -Date: Sun, 29 Mar 2026 19:20:52 -0700 -Subject: [PATCH 5/6] Fix signed integer overflow in - `LossyDctDecoder_execute()` pointer arithmetic (#2329) - -`numBlocksX` and `numBlocksY` are declared as `int`. Two pointer-offset -expressions in `LossyDctDecoder_execute()` multiplied them as signed -32-bit integers before using the result as a pointer offset: - - rowBlock[comp] = rowBlock[comp - 1] + numBlocksX * 64; - currDcComp[comp] = currDcComp[comp - 1] + numBlocksX * numBlocksY; - -`dataWindow.max.x` is a signed 32-bit value in the EXR file format, so -`numBlocksX` can reach `(INT32_MAX + 7) / 8 = 268,435,456`. At that -point `numBlocksX * 64 = 17,179,869,184` overflows `int32`, and -`numBlocksX * numBlocksY` overflows even sooner. The wraparound -produces a small or negative pointer offset, causing `rowBlock[comp]` -and `currDcComp[comp]` to point into already-used or pre-buffer memory -rather than the intended component stride. - -Fix: cast `numBlocksX` to `size_t` before multiplying so the -arithmetic is performed in pointer-sized unsigned arithmetic: - - rowBlock[comp] = rowBlock[comp - 1] + (size_t) numBlocksX * 64; - currDcComp[comp] = currDcComp[comp - 1] + (size_t) numBlocksX * numBlocksY; - -This is consistent with the allocation on the line above, which already -uses `(size_t) numComp * (size_t) numBlocksX * 64 * sizeof(uint16_t)`, -and with the packed-DC count check, which uses explicit `uint64_t` casts. - -Made-with: Cursor - -Signed-off-by: Cary Phillips ---- - .../hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h -index bcdebd985f9..e289b064dac 100644 ---- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h -+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h -@@ -265,7 +265,7 @@ LossyDctDecoder_execute ( - } - - for (int comp = 1; comp < numComp; ++comp) -- rowBlock[comp] = rowBlock[comp - 1] + numBlocksX * 64; -+ rowBlock[comp] = rowBlock[comp - 1] + (size_t) numBlocksX * 64; - - // - // Pack DC components together by common plane, so we can get -@@ -275,7 +275,7 @@ LossyDctDecoder_execute ( - - currDcComp[0] = (uint16_t*) d->_packedDc; - for (int comp = 1; comp < numComp; ++comp) -- currDcComp[comp] = currDcComp[comp - 1] + numBlocksX * numBlocksY; -+ currDcComp[comp] = currDcComp[comp - 1] + (size_t) numBlocksX * numBlocksY; - - for (int blocky = 0; blocky < numBlocksY; ++blocky) - { - -From 219a0870506f80c7353016800e467ad0de923424 Mon Sep 17 00:00:00 2001 -From: Cary Phillips -Date: Tue, 31 Mar 2026 07:49:09 -0700 -Subject: [PATCH 6/6] =?UTF-8?q?Fix=20misaligned=20memory=20access=20in=20`?= - =?UTF-8?q?LossyDctDecoder=5Fexecute`=20HALF=E2=86=92FLOAT=20expansion=20(?= - =?UTF-8?q?#2324)?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -* Fix misaligned memory access in `LossyDctDecoder_execute` HALF→FLOAT expansion - -After DCT decoding, `LossyDctDecoder_execute()` expands FLOAT-type channels -from their intermediate HALF (16-bit) XDR representation back to FLOAT (32-bit) -XDR in place. The expansion was done by casting `_rows[y]` (a `uint8_t *`) -directly to `float *` and `uint16_t *`, then reading and writing through those -typed pointers. - -Because row buffers are assigned by advancing a byte pointer with no alignment -padding (`outBufferEnd += chan->width * chan->bytes_per_element` in -`internal_dwa_compressor.h`), a FLOAT channel that follows a HALF channel of -odd width receives a `_rows[y]` pointer that is 2-byte aligned but not 4-byte -aligned. Dereferencing a `float *` cast from such a pointer is undefined -behavior under the C standard: - -- On ARM, RISC-V, and MIPS (strict alignment) this crashes immediately. -- On x86 it is silently tolerated at the hardware level but remains UB: - auto-vectorizing compilers (SSE/AVX) may assume aligned access and generate - incorrect code. -- UBSan reports: `store to misaligned address ... for type 'float', which - requires 4 byte alignment` at `internal_dwa_decoder.h:749`. - -Fix: replace the cast-and-dereference pattern with the `unaligned_load16` / -`memcpy` / `unaligned_store32` helpers already used throughout the rest of -OpenEXRCore (`internal_xdr.h`, `unpack.c`, `pack.c`, `internal_pxr24.c`). -These helpers use `memcpy` internally, which the C standard guarantees is safe -for unaligned addresses and which compilers compile to a single load/store -instruction on architectures that support it. - -The byte-order handling is preserved correctly: -- `unaligned_load16` reads 2 bytes via `memcpy` and applies `one_to_native16` - (XDR → native), returning a native-endian HALF value. -- `half_to_float` converts native HALF → native float. -- `memcpy(&bits, &f, 4)` reinterprets the float's bit pattern as `uint32_t` - without numeric conversion (the correct type-pun idiom in C). -- `unaligned_store32` applies `one_from_native32` (native → XDR) and writes - 4 bytes via `memcpy`, storing the result in XDR float format. - -Made-with: Cursor -Signed-off-by: Cary Phillips - -* add TODO comment - -Signed-off-by: Cary Phillips - ---------- - -Signed-off-by: Cary Phillips ---- - .../OpenEXR/OpenEXRCore/internal_dwa_decoder.h | 17 +++++++++++++---- - 1 file changed, 13 insertions(+), 4 deletions(-) - -diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h -index e289b064dac..046615ec5b8 100644 ---- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h -+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/internal_dwa_decoder.h -@@ -651,13 +651,22 @@ LossyDctDecoder_execute ( - /* process in place in reverse to avoid temporary buffer */ - for (int y = 0; y < d->_height; ++y) - { -- float* floatXdrPtr = (float*) chanData[chan]->_rows[y]; -- uint16_t* halfXdr = (uint16_t*) floatXdrPtr; -+ uint8_t* rowBytes = chanData[chan]->_rows[y]; - - for (int x = d->_width - 1; x >= 0; --x) - { -- floatXdrPtr[x] = one_from_native_float ( -- half_to_float (one_to_native16 (halfXdr[x]))); -+ // TODO: make an unaligned_store32f that takes the float and -+ // packages up a one_from_native_float and calls memcpy -+ // instead of the two memcpy. We should look at the metrics -+ // for dwa and see if there's a performance difference to do -+ // so at some point. See: -+ // https://github.com/AcademySoftwareFoundation/openexr/pull/2324 -+ -+ uint16_t h = unaligned_load16 (rowBytes + x * sizeof (uint16_t)); -+ float f = half_to_float (h); -+ uint32_t bits; -+ memcpy (&bits, &f, sizeof (bits)); -+ unaligned_store32 (rowBytes + x * sizeof (float), bits); - } - } - } diff --git a/sources b/sources index d2dbf60..6c2e7f6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-26.03.tar.gz) = 3d5dae46c7ae096501dc51b373ba05c8603a1cf16e5054728d41d0c2970b59ce3ee5ec83e1c575b92482bc8cf2c59643df093a9e7aa82bcdd53dada05292720d +SHA512 (OpenUSD-26.05.tar.gz) = d10222a457d71470a26ad6dc812685f257bf5c90a64a11d90e543ef7eaba803aa4e2593c358ebd430ba55856e987f7a6f50597b1ad6d2da737c239ad4f18ad6a diff --git a/usd.spec b/usd.spec index e2186c4..4218484 100644 --- a/usd.spec +++ b/usd.spec @@ -2,7 +2,7 @@ # 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.3 +%global downstream_so_version 0.26.5 %bcond alembic 1 %bcond draco 1 @@ -25,7 +25,7 @@ %bcond test 0 Name: usd -Version: 26.03 +Version: 26.05 Release: %autorelease Summary: 3D VFX pipeline interchange file format @@ -151,18 +151,6 @@ 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 -# Backport fix for CVE-2026-34544 in OpenEXRCore -# https://github.com/PixarAnimationStudios/OpenUSD/pull/4028 -Patch: %{forgeurl}/pull/4028.patch -# Backport several OpenEXRCore security fixes -# https://github.com/PixarAnimationStudios/OpenUSD/pull/4030 -# Fixes: -# - CVE-2026-34378 / GHSA-v76p-4qvv-vh4g / RHBZ#2455493 -# - CVE-2026-34380 / GHSA-q3v8-hw4m-59w5 / RHBZ#2455534 -# - CVE-2026-34588 / GHSA-588r-cr5c-w6hf / RHBZ#2455505 -# - CVE-2026-34589 / GHSA-p8xc-w3q4-h64x / RHBZ#2455501 -# - CVE-2026-34379 / GHSA-w88v-vqhq-5p24 / RHBZ#2455497 -Patch: %{forgeurl}/pull/4030.patch # Base BuildRequires: gcc-c++ @@ -242,7 +230,7 @@ BuildRequires: openvdb-devel %endif %if %{with ptex} -BuildRequires: pkgconfig(ptex) +BuildRequires: cmake(ptex) %endif # Header-only library: -static is for tracking per guidelines From e0d1abcfac320cda05238b19f2418a461552d27a Mon Sep 17 00:00:00 2001 From: Richard Shaw Date: Sun, 31 May 2026 15:05:40 -0500 Subject: [PATCH 81/85] Rebuild for OpenColorIO 2.5.2. From e384650dca8b83e0938b2028104504b367b7388c Mon Sep 17 00:00:00 2001 From: Python Maint Date: Sat, 6 Jun 2026 09:08:37 +0200 Subject: [PATCH 82/85] Rebuilt for Python 3.15 From 0efef3a6255b736a69a6d4aa2c98dac2adc8b780 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 08:17:08 +0000 Subject: [PATCH 83/85] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild From f5a3fd00e0e98db7dfb83e18c6e852fe5fcf847b Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 30 Jul 2026 07:29:14 +0100 Subject: [PATCH 84/85] Update to 26.08 (close RHBZ#2502858) --- .gitignore | 1 + ...Downstream-only-add-an-SONAME-version.patch | 18 +++++++++--------- ...-use-Valgrind-macro-instead-of-inline.patch | 4 ++-- ...-use-the-system-double-conversion-lib.patch | 6 +++--- ...tream-only-use-the-system-lz4-library.patch | 6 +++--- ...m-only-use-the-system-pugixml-library.patch | 4 ++-- ...only-use-the-system-rapidjson-library.patch | 4 ++-- ...stream-only-use-the-system-libdeflate.patch | 4 ++-- ...ownstream-only-use-the-system-libavif.patch | 4 ++-- sources | 2 +- usd.spec | 6 ++++-- 11 files changed, 31 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index cf961b4..c329709 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ /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 c86bdb4..db129dd 100644 --- a/0001-Downstream-only-add-an-SONAME-version.patch +++ b/0001-Downstream-only-add-an-SONAME-version.patch @@ -1,4 +1,4 @@ -From 330d176f208baadd2db58f8797bc492f2d81c03f Mon Sep 17 00:00:00 2001 +From ee4e9b30e14133e35c23821d3dc7aa93df354a38 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 @@ -37,11 +37,11 @@ built with -DPXR_BUILD_EXAMPLES=OFF, but it is.) 3 files changed, 9 insertions(+) diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake -index 3efcd4e82..e8f37af98 100644 +index c31b5e8d9..fabb45397 100644 --- a/cmake/defaults/Version.cmake +++ b/cmake/defaults/Version.cmake @@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "26") - set(PXR_PATCH_VERSION "5") # NOTE: Must not have leading 0 for single digits + 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,10 +51,10 @@ index 3efcd4e82..e8f37af98 100644 + "Downstream shared object version" +) diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake -index e2dccb075..5f6913e22 100644 +index cddb4e095..5e4b4603a 100644 --- a/cmake/macros/Private.cmake +++ b/cmake/macros/Private.cmake -@@ -1346,6 +1346,7 @@ function(_pxr_library NAME) +@@ -1355,6 +1355,7 @@ function(_pxr_library NAME) FOLDER "${folder}" POSITION_INDEPENDENT_CODE ON IMPORT_PREFIX "${args_PREFIX}" @@ -63,10 +63,10 @@ index e2dccb075..5f6913e22 100644 SUFFIX "${args_SUFFIX}" ) diff --git a/cmake/macros/Public.cmake b/cmake/macros/Public.cmake -index b51789f4a..af2f2a805 100644 +index 5f6a5456b..553b645ec 100644 --- a/cmake/macros/Public.cmake +++ b/cmake/macros/Public.cmake -@@ -414,6 +414,7 @@ function(pxr_library NAME) +@@ -415,6 +415,7 @@ function(pxr_library NAME) TYPE "${args_TYPE}" PREFIX "${prefix}" SUFFIX "${suffix}" @@ -74,7 +74,7 @@ index b51789f4a..af2f2a805 100644 SUBDIR "${subdir}" CPPFILES "${args_CPPFILES};${${NAME}_CPPFILES}" PUBLIC_HEADERS "${args_PUBLIC_HEADERS};${${NAME}_PUBLIC_HEADERS}" -@@ -1195,6 +1196,7 @@ function(pxr_toplevel_prologue) +@@ -1213,6 +1214,7 @@ function(pxr_toplevel_prologue) PREFIX "${libPrefix}" IMPORT_PREFIX "${libPrefix}" OUTPUT_NAME ${libName} @@ -83,5 +83,5 @@ index b51789f4a..af2f2a805 100644 _get_install_dir("lib" libInstallPrefix) install( -- -2.53.0 +2.55.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 index 876f0e1..6d2305c 100644 --- a/0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch +++ b/0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch @@ -1,4 +1,4 @@ -From 15ea3b68bb15fd6338cbe76ec94eac055dc28c4e Mon Sep 17 00:00:00 2001 +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 @@ -61,5 +61,5 @@ index 96dacca06..7e5625678 100644 Vdf_ExecutorDataVector::~Vdf_ExecutorDataVector() -- -2.53.0 +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 51614ec..1cd7abc 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 ea7f51376f03620c6187f3672dad12951669ecb5 Mon Sep 17 00:00:00 2001 +From 2d851f23e912d8312f2ea6818963150a8c484138 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,7 +8,7 @@ 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 8c0f8e4a1..3afc2edaf 100644 +index 4294f2cb5..b45df65b8 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -105,11 +105,14 @@ function(add_py_dll_link_test) @@ -42,5 +42,5 @@ index 8c0f8e4a1..3afc2edaf 100644 PYMODULE_CPPFILES -- -2.53.0 +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 a61e7fb..6659b01 100644 --- a/0002-Downstream-only-use-the-system-lz4-library.patch +++ b/0002-Downstream-only-use-the-system-lz4-library.patch @@ -1,4 +1,4 @@ -From cb323e80b560cbebf49c0e199804965b472274b0 Mon Sep 17 00:00:00 2001 +From 9fd6089b3e95bb882199ee359fbba83f7c4bb410 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 @@ -8,7 +8,7 @@ Subject: [PATCH 2/6] Downstream-only: use the system lz4 library 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt -index 3afc2edaf..8ae85b5eb 100644 +index b45df65b8..5e6de96da 100644 --- a/pxr/base/tf/CMakeLists.txt +++ b/pxr/base/tf/CMakeLists.txt @@ -106,6 +106,8 @@ function(add_py_dll_link_test) @@ -40,5 +40,5 @@ index 3afc2edaf..8ae85b5eb 100644 PYMODULE_CPPFILES module.cpp -- -2.53.0 +2.55.0 diff --git a/0003-Downstream-only-use-the-system-pugixml-library.patch b/0003-Downstream-only-use-the-system-pugixml-library.patch index 6f0a13a..e7ad209 100644 --- a/0003-Downstream-only-use-the-system-pugixml-library.patch +++ b/0003-Downstream-only-use-the-system-pugixml-library.patch @@ -1,4 +1,4 @@ -From de61621ccbee32776ea9e330384f6275c4237259 Mon Sep 17 00:00:00 2001 +From 73637a9bf67b3f7afe5070e5d56b07524e14a073 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 @@ -35,5 +35,5 @@ index 244f27aa8..1e00413c4 100644 PRIVATE_HEADERS api.h -- -2.53.0 +2.55.0 diff --git a/0004-Downstream-only-use-the-system-rapidjson-library.patch b/0004-Downstream-only-use-the-system-rapidjson-library.patch index d9e2dcf..8d9f9cd 100644 --- a/0004-Downstream-only-use-the-system-rapidjson-library.patch +++ b/0004-Downstream-only-use-the-system-rapidjson-library.patch @@ -1,4 +1,4 @@ -From a83325f12491456b6ad9cb40fa09f0155377263f Mon Sep 17 00:00:00 2001 +From f331a476a66e41e93d83b7a2e438d3ee7f12ea32 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 @@ -59,5 +59,5 @@ index 8cbda8c52..ec8f3c249 100644 overview.dox ) -- -2.53.0 +2.55.0 diff --git a/0005-Downstream-only-use-the-system-libdeflate.patch b/0005-Downstream-only-use-the-system-libdeflate.patch index c97e35f..b8ce47f 100644 --- a/0005-Downstream-only-use-the-system-libdeflate.patch +++ b/0005-Downstream-only-use-the-system-libdeflate.patch @@ -1,4 +1,4 @@ -From 91b0341364b986e051a150a9f33e98a12bc3f20d Mon Sep 17 00:00:00 2001 +From a537b44edabe942380d2e87ea7069bdf32b93dbc 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 @@ -72,5 +72,5 @@ index 7481a346e..71bdde9cc 100644 #include "OpenEXRCore/attributes.c" -- -2.53.0 +2.55.0 diff --git a/0006-Downstream-only-use-the-system-libavif.patch b/0006-Downstream-only-use-the-system-libavif.patch index 5b5fc40..9ab912a 100644 --- a/0006-Downstream-only-use-the-system-libavif.patch +++ b/0006-Downstream-only-use-the-system-libavif.patch @@ -1,4 +1,4 @@ -From 81ac0ca314d66e96f43ed904204b63be302e0743 Mon Sep 17 00:00:00 2001 +From f2a3615238a691e11a4029c33498e7f21a34fff9 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 @@ -237,5 +237,5 @@ index 1ac2683f6..7d583c137 100644 RESOURCE_FILES -- -2.53.0 +2.55.0 diff --git a/sources b/sources index 6c2e7f6..695949f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-26.05.tar.gz) = d10222a457d71470a26ad6dc812685f257bf5c90a64a11d90e543ef7eaba803aa4e2593c358ebd430ba55856e987f7a6f50597b1ad6d2da737c239ad4f18ad6a +SHA512 (OpenUSD-26.08.tar.gz) = 82f7bb4f77b295be79cd36f591f242276d36c0d589b0fca383344c27e70daf7e29151bf587528bb2fc2b2a8b974387a253993ace3caf5f79ae70f9ebbc71cf1a diff --git a/usd.spec b/usd.spec index 4218484..fc69879 100644 --- a/usd.spec +++ b/usd.spec @@ -2,7 +2,7 @@ # 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.5 +%global downstream_so_version 0.26.8 %bcond alembic 1 %bcond draco 1 @@ -25,7 +25,7 @@ %bcond test 0 Name: usd -Version: 26.05 +Version: 26.08 Release: %autorelease Summary: 3D VFX pipeline interchange file format @@ -714,6 +714,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %{_bindir}/usdstitch %{_bindir}/usdstitchclips %{_bindir}/usdtree +%{_bindir}/usdupdatecrate %{_bindir}/usdzip %if %{with usdview} %{_datadir}/applications/org.openusd.usdview.desktop @@ -745,6 +746,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d %{_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* From 07ce80652ae7e155c970cfefed25612e79f117f5 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 30 Jul 2026 08:09:23 +0100 Subject: [PATCH 85/85] Patch for Python 3.15 (fix RHBZ#2433881) --- ...kref_GetObject-with-PyWeakref_GetRef.patch | 110 ++++++++++++++++++ usd.spec | 8 ++ 2 files changed, 118 insertions(+) create mode 100644 0001-Replace-PyWeakref_GetObject-with-PyWeakref_GetRef.patch diff --git a/0001-Replace-PyWeakref_GetObject-with-PyWeakref_GetRef.patch b/0001-Replace-PyWeakref_GetObject-with-PyWeakref_GetRef.patch new file mode 100644 index 0000000..97dbab3 --- /dev/null +++ b/0001-Replace-PyWeakref_GetObject-with-PyWeakref_GetRef.patch @@ -0,0 +1,110 @@ +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/usd.spec b/usd.spec index fc69879..05bcd6e 100644 --- a/usd.spec +++ b/usd.spec @@ -152,6 +152,14 @@ Patch: 0006-Downstream-only-use-the-system-libavif.patch # 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++