Compare commits
7 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7046cd69ae | ||
|
|
15312f3045 | ||
|
|
d695a7426b | ||
|
|
f8baedc2d2 | ||
|
|
f4f5b9f86d | ||
|
|
0890b361b4 | ||
|
|
5e6aa83e99 |
17 changed files with 1263 additions and 538 deletions
7
.gitignore
vendored
7
.gitignore
vendored
|
|
@ -17,10 +17,3 @@
|
|||
/OpenUSD-24.11.tar.gz
|
||||
/OpenUSD-25.02.tar.gz
|
||||
/OpenUSD-25.02a.tar.gz
|
||||
/OpenUSD-25.05.tar.gz
|
||||
/OpenUSD-25.05.01.tar.gz
|
||||
/OpenUSD-25.08.tar.gz
|
||||
/OpenUSD-25.11.tar.gz
|
||||
/OpenUSD-26.03.tar.gz
|
||||
/OpenUSD-26.05.tar.gz
|
||||
/OpenUSD-26.08.tar.gz
|
||||
|
|
|
|||
|
|
@ -1,18 +1,18 @@
|
|||
From 3e51fb244dd264b09179999d29dc7c5afd7e71e3 Mon Sep 17 00:00:00 2001
|
||||
From 600958d513ee65fa967639bed1fc56e3061fa05f Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
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 +++-
|
||||
pxr/imaging/hio/OpenEXR/OpenEXRCore/chunk.c | 20 ++++++++++++++++---
|
||||
.../hio/OpenEXR/OpenEXRCore/internal_util.h | 4 ++--
|
||||
.../hio/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
|
||||
diff --git a/pxr/imaging/hio/OpenEXR/OpenEXRCore/chunk.c b/pxr/imaging/hio/OpenEXR/OpenEXRCore/chunk.c
|
||||
index cfe80b4cd..e11209fe6 100644
|
||||
--- a/pxr/imaging/hio/OpenEXR/OpenEXRCore/chunk.c
|
||||
+++ b/pxr/imaging/hio/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");
|
||||
|
|
@ -49,10 +49,10 @@ index cfe80b4cd68..e11209fe660 100644
|
|||
}
|
||||
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
|
||||
diff --git a/pxr/imaging/hio/OpenEXR/OpenEXRCore/internal_util.h b/pxr/imaging/hio/OpenEXR/OpenEXRCore/internal_util.h
|
||||
index 3c6f02786..e0fa3933d 100644
|
||||
--- a/pxr/imaging/hio/OpenEXR/OpenEXRCore/internal_util.h
|
||||
+++ b/pxr/imaging/hio/OpenEXR/OpenEXRCore/internal_util.h
|
||||
@@ -31,10 +31,10 @@ compute_sampled_height (int height, int y_sampling, int start_y)
|
||||
else
|
||||
start = start_y;
|
||||
|
|
@ -66,10 +66,10 @@ index 3c6f02786cc..e0fa3933d92 100644
|
|||
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
|
||||
diff --git a/pxr/imaging/hio/OpenEXR/OpenEXRCore/parse_header.c b/pxr/imaging/hio/OpenEXR/OpenEXRCore/parse_header.c
|
||||
index d72303926..8b6cf78cc 100644
|
||||
--- a/pxr/imaging/hio/OpenEXR/OpenEXRCore/parse_header.c
|
||||
+++ b/pxr/imaging/hio/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);
|
||||
|
|
@ -81,3 +81,6 @@ index d7230392693..8b6cf78cc59 100644
|
|||
{
|
||||
const exr_attr_tiledesc_t* tiledesc = curpart->tiles->tiledesc;
|
||||
int64_t tilecount = 0;
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
From ee4e9b30e14133e35c23821d3dc7aa93df354a38 Mon Sep 17 00:00:00 2001
|
||||
From 0beb6ef89859d29599c159cb52e2b85419adb413 Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
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 | 2 ++
|
||||
3 files changed, 9 insertions(+)
|
||||
cmake/macros/Public.cmake | 1 +
|
||||
3 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake
|
||||
index c31b5e8d9..fabb45397 100644
|
||||
index 6dd5d5f2d..0a20d47c5 100644
|
||||
--- a/cmake/defaults/Version.cmake
|
||||
+++ b/cmake/defaults/Version.cmake
|
||||
@@ -10,3 +10,9 @@ set(PXR_MINOR_VERSION "26")
|
||||
set(PXR_PATCH_VERSION "8") # 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,37 +51,29 @@ index c31b5e8d9..fabb45397 100644
|
|||
+ "Downstream shared object version"
|
||||
+)
|
||||
diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake
|
||||
index cddb4e095..5e4b4603a 100644
|
||||
index 6fe1134c1..692924954 100644
|
||||
--- a/cmake/macros/Private.cmake
|
||||
+++ b/cmake/macros/Private.cmake
|
||||
@@ -1355,6 +1355,7 @@ function(_pxr_library NAME)
|
||||
FOLDER "${folder}"
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
@@ -1372,6 +1372,7 @@ function(_pxr_library NAME)
|
||||
IMPORT_PREFIX "${args_PREFIX}"
|
||||
+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION}
|
||||
PREFIX "${args_PREFIX}"
|
||||
SUFFIX "${args_SUFFIX}"
|
||||
+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION}
|
||||
)
|
||||
|
||||
target_compile_definitions(${NAME}
|
||||
diff --git a/cmake/macros/Public.cmake b/cmake/macros/Public.cmake
|
||||
index 5f6a5456b..553b645ec 100644
|
||||
index 2647707ac..1917edf87 100644
|
||||
--- a/cmake/macros/Public.cmake
|
||||
+++ b/cmake/macros/Public.cmake
|
||||
@@ -415,6 +415,7 @@ function(pxr_library NAME)
|
||||
TYPE "${args_TYPE}"
|
||||
PREFIX "${prefix}"
|
||||
SUFFIX "${suffix}"
|
||||
+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION}
|
||||
SUBDIR "${subdir}"
|
||||
CPPFILES "${args_CPPFILES};${${NAME}_CPPFILES}"
|
||||
PUBLIC_HEADERS "${args_PUBLIC_HEADERS};${${NAME}_PUBLIC_HEADERS}"
|
||||
@@ -1213,6 +1214,7 @@ function(pxr_toplevel_prologue)
|
||||
@@ -1115,6 +1115,7 @@ function(pxr_toplevel_prologue)
|
||||
FOLDER "${folder}"
|
||||
PREFIX "${libPrefix}"
|
||||
IMPORT_PREFIX "${libPrefix}"
|
||||
OUTPUT_NAME ${libName}
|
||||
+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION}
|
||||
+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION}
|
||||
)
|
||||
_get_install_dir("lib" libInstallPrefix)
|
||||
install(
|
||||
--
|
||||
2.55.0
|
||||
2.48.1
|
||||
|
||||
|
|
|
|||
|
|
@ -1,65 +0,0 @@
|
|||
From 817e23674f1b4ba62481c4e9794f0665a44d83f8 Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Fri, 1 Aug 2025 08:47:41 -0400
|
||||
Subject: [PATCH] Downstream-only: use Valgrind macro instead of inline
|
||||
assembly
|
||||
|
||||
Upstream already has a plan to make this change, but is waiting to be
|
||||
able to add a build dependency on valgrind-devel. We have no such
|
||||
obstacle, and this change fixes the inline assembly failing to compile
|
||||
on aarch64.
|
||||
---
|
||||
pxr/exec/vdf/executorDataVector.cpp | 28 +++-------------------------
|
||||
1 file changed, 3 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/pxr/exec/vdf/executorDataVector.cpp b/pxr/exec/vdf/executorDataVector.cpp
|
||||
index 96dacca06..7e5625678 100644
|
||||
--- a/pxr/exec/vdf/executorDataVector.cpp
|
||||
+++ b/pxr/exec/vdf/executorDataVector.cpp
|
||||
@@ -11,40 +11,18 @@
|
||||
#include "pxr/base/tf/stl.h"
|
||||
#include "pxr/base/trace/trace.h"
|
||||
|
||||
+#include <valgrind/memcheck.h>
|
||||
+
|
||||
PXR_NAMESPACE_OPEN_SCOPE
|
||||
|
||||
|
||||
/// Issue a magic instruction sequence which Valgrind will intercept and mark
|
||||
/// the specified memory defined for memcheck.
|
||||
///
|
||||
-/// XXX: We should replace this with the VALGRIND_MAKE_MEM_DEFINED macro
|
||||
-/// from memcheck.h, once we can establish a build dependency on
|
||||
-/// valgrind-devel.
|
||||
-///
|
||||
static inline void
|
||||
Vdf_ExecutorDataVector_ValgrindMakeDefined(void *ptr, size_t size)
|
||||
{
|
||||
-#if defined(ARCH_OS_LINUX) && defined(ARCH_CPU_INTEL)
|
||||
- // Pass a result and a pointer to some arguments via registers
|
||||
- volatile unsigned long long int result;
|
||||
- volatile unsigned long long int args[6] = {
|
||||
- 0x4D430002, // Memcheck: MAKE_MEM_DEFINED
|
||||
- (uintptr_t)(ptr), // Memory address
|
||||
- size, // Size in bytes
|
||||
- 0, 0, 0 // Remaining unused arguments
|
||||
- };
|
||||
-
|
||||
- // Magical instruction sequence which Valgrind will interpret as an
|
||||
- // annotation (see valgrind.h)
|
||||
- __asm__ volatile(
|
||||
- "rolq $3, %%rdi ; rolq $13, %%rdi\n\t"
|
||||
- "rolq $61, %%rdi ; rolq $51, %%rdi\n\t"
|
||||
- "xchgq %%rbx, %%rbx"
|
||||
- : "=d" (result)
|
||||
- : "a" (&args[0]), "0" (0)
|
||||
- : "cc", "memory"
|
||||
- );
|
||||
-#endif
|
||||
+ VALGRIND_MAKE_MEM_DEFINED(ptr, size);
|
||||
}
|
||||
|
||||
Vdf_ExecutorDataVector::~Vdf_ExecutorDataVector()
|
||||
--
|
||||
2.55.0
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
From 2d851f23e912d8312f2ea6818963150a8c484138 Mon Sep 17 00:00:00 2001
|
||||
From 892fffda8fe1e388cb1511889636e80a864bed43 Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Wed, 28 Aug 2024 10:42:48 -0400
|
||||
Subject: [PATCH 1/6] Downstream-only: use the system double-conversion library
|
||||
|
|
@ -8,10 +8,10 @@ Subject: [PATCH 1/6] Downstream-only: use the system double-conversion library
|
|||
1 file changed, 3 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt
|
||||
index 4294f2cb5..b45df65b8 100644
|
||||
index 438e9af37..749af9a2b 100644
|
||||
--- a/pxr/base/tf/CMakeLists.txt
|
||||
+++ b/pxr/base/tf/CMakeLists.txt
|
||||
@@ -105,11 +105,14 @@ function(add_py_dll_link_test)
|
||||
@@ -110,11 +110,14 @@ function(add_py_dll_link_test)
|
||||
|
||||
endfunction()
|
||||
|
||||
|
|
@ -21,12 +21,12 @@ index 4294f2cb5..b45df65b8 100644
|
|||
LIBRARIES
|
||||
arch
|
||||
${WINLIBS}
|
||||
TBB::tbb
|
||||
${TBB_tbb_LIBRARY}
|
||||
+ ${double-conversion_LIBRARY}
|
||||
|
||||
PUBLIC_CLASSES
|
||||
anyUniquePtr
|
||||
@@ -276,14 +279,6 @@ pxr_library(tf
|
||||
INCLUDE_DIRS
|
||||
${TBB_INCLUDE_DIRS}
|
||||
@@ -281,14 +284,6 @@ pxr_library(tf
|
||||
|
||||
CPPFILES
|
||||
initConfig.cpp
|
||||
|
|
@ -42,5 +42,5 @@ index 4294f2cb5..b45df65b8 100644
|
|||
|
||||
PYMODULE_CPPFILES
|
||||
--
|
||||
2.55.0
|
||||
2.48.1
|
||||
|
||||
|
|
|
|||
|
|
@ -1,110 +0,0 @@
|
|||
From f3e9600db6086e834c0503cdaf30b5ba7ed53ceb Mon Sep 17 00:00:00 2001
|
||||
From: Anonymous Coward <nobody@redhat.com>
|
||||
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 <usd-maintainers@fedoraproject.org>
|
||||
---
|
||||
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<Ret (Args...)>
|
||||
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<Ret>(callable)(args...);
|
||||
}
|
||||
};
|
||||
@@ -68,12 +70,15 @@ struct TfPyFunctionFromPython<Ret (Args...)>
|
||||
// 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<Ret>(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
|
||||
|
||||
686
0001-sdf-Guard-against-invalid-primChildren-in-crate-file.patch
Normal file
686
0001-sdf-Guard-against-invalid-primChildren-in-crate-file.patch
Normal file
|
|
@ -0,0 +1,686 @@
|
|||
From 61d94c86dcbadbf574cad1e4c5b1a60e308a6ba9 Mon Sep 17 00:00:00 2001
|
||||
From: sunyab <sunyab@users.noreply.github.com>
|
||||
Date: Fri, 26 Sep 2025 13:16:55 -0700
|
||||
Subject: [PATCH] sdf: Guard against invalid primChildren in crate files
|
||||
|
||||
A crate file containing a primChildren field on a prim with invalid
|
||||
entries (e.g. an empty name or name with invalid characters)
|
||||
could lead to issues when accessing that prim's children later
|
||||
on. In addition, duplicate entries in the field could cause
|
||||
unexpected behavior when iterating over those children.
|
||||
|
||||
We now check for these conditions when loading a crate file and
|
||||
emit a runtime error and fail to load the layer if we encounter
|
||||
this problem.
|
||||
|
||||
This situation typically does not occur via regular Sdf and
|
||||
Usd usage, so we only do this verification if
|
||||
PXR_PREFER_SAFETY_OVER_SPEED is enabled.
|
||||
|
||||
(Internal change: 2380262)
|
||||
(Internal change: 2380126)
|
||||
---
|
||||
pxr/usd/sdf/CMakeLists.txt | 19 +++
|
||||
.../testSdfUsdcInvalidPrimChildren.cpp | 84 ++++++++++++
|
||||
.../duplicate_prim_children.usdc | Bin 0 -> 704 bytes
|
||||
.../root.usdc | Bin 0 -> 38110 bytes
|
||||
pxr/usd/usd/crateData.cpp | 127 +++++++++++++++++-
|
||||
5 files changed, 227 insertions(+), 3 deletions(-)
|
||||
create mode 100644 pxr/usd/sdf/testenv/testSdfUsdcInvalidPrimChildren.cpp
|
||||
create mode 100644 pxr/usd/sdf/testenv/testSdfUsdcInvalidPrimChildren.testenv/duplicate_prim_children.usdc
|
||||
create mode 100644 pxr/usd/sdf/testenv/testSdfUsdcInvalidPrimChildren.testenv/root.usdc
|
||||
|
||||
diff --git a/pxr/usd/sdf/CMakeLists.txt b/pxr/usd/sdf/CMakeLists.txt
|
||||
index 6562d572e..b15ce83d3 100644
|
||||
--- a/pxr/usd/sdf/CMakeLists.txt
|
||||
+++ b/pxr/usd/sdf/CMakeLists.txt
|
||||
@@ -338,6 +338,16 @@ pxr_build_test(testSdfTextFileFormatParsing
|
||||
testenv/testSdfTextFileFormatParsing.cpp
|
||||
)
|
||||
|
||||
+pxr_build_test(testSdfUsdcInvalidPrimChildren
|
||||
+ LIBRARIES
|
||||
+ ar
|
||||
+ arch
|
||||
+ tf
|
||||
+ sdf
|
||||
+ CPPFILES
|
||||
+ testenv/testSdfUsdcInvalidPrimChildren.cpp
|
||||
+)
|
||||
+
|
||||
pxr_install_test_dir(
|
||||
SRC testenv/testSdfBatchNamespaceEdit.testenv
|
||||
DEST testSdfBatchNamespaceEdit/testSdfBatchNamespaceEdit.testenv
|
||||
@@ -367,6 +377,11 @@ pxr_install_test_dir(
|
||||
SRC testenv/testSdfParsing.testenv
|
||||
DEST testSdfParsing/testSdfParsing.testenv
|
||||
)
|
||||
+
|
||||
+pxr_install_test_dir(
|
||||
+ SRC testenv/testSdfUsdcInvalidPrimChildren.testenv
|
||||
+ DEST testSdfUsdcInvalidPrimChildren
|
||||
+)
|
||||
|
||||
pxr_register_test(testSdfAssetPath
|
||||
PYTHON
|
||||
@@ -544,3 +559,7 @@ pxr_register_test(testSdfVariants
|
||||
PYTHON
|
||||
COMMAND "${CMAKE_INSTALL_PREFIX}/tests/testSdfVariants"
|
||||
)
|
||||
+pxr_register_test(testSdfUsdcInvalidPrimChildren
|
||||
+ COMMAND "${CMAKE_INSTALL_PREFIX}/tests/testSdfUsdcInvalidPrimChildren"
|
||||
+ EXPECTED_RETURN_CODE 0
|
||||
+)
|
||||
diff --git a/pxr/usd/sdf/testenv/testSdfUsdcInvalidPrimChildren.cpp b/pxr/usd/sdf/testenv/testSdfUsdcInvalidPrimChildren.cpp
|
||||
new file mode 100644
|
||||
index 000000000..49258b657
|
||||
--- /dev/null
|
||||
+++ b/pxr/usd/sdf/testenv/testSdfUsdcInvalidPrimChildren.cpp
|
||||
@@ -0,0 +1,84 @@
|
||||
+//
|
||||
+// Copyright 2025 Pixar
|
||||
+//
|
||||
+// Licensed under the terms set forth in the LICENSE.txt file available at
|
||||
+// https://openusd.org/license.
|
||||
+//
|
||||
+
|
||||
+#include "pxr/pxr.h"
|
||||
+
|
||||
+#include "pxr/base/tf/error.h"
|
||||
+#include "pxr/base/tf/errorMark.h"
|
||||
+#include "pxr/base/tf/diagnosticLite.h"
|
||||
+#include "pxr/usd/sdf/childrenView.h"
|
||||
+#include "pxr/usd/sdf/layer.h"
|
||||
+#include "pxr/usd/sdf/primSpec.h"
|
||||
+
|
||||
+#include <string>
|
||||
+#include <cstring>
|
||||
+
|
||||
+PXR_NAMESPACE_USING_DIRECTIVE
|
||||
+
|
||||
+static void
|
||||
+TestInvalidPrimChildren()
|
||||
+{
|
||||
+ // This test relies on verification checks that are only enabled when
|
||||
+ // PXR_PREFER_SAFETY_OVER_SPEED is enabled.
|
||||
+#ifdef PXR_PREFER_SAFETY_OVER_SPEED
|
||||
+ // open the layer and check for invalid child prim names and specs
|
||||
+ TfErrorMark m;
|
||||
+
|
||||
+ auto layer = SdfLayer::FindOrOpen("root.usdc");
|
||||
+ TF_AXIOM(!layer);
|
||||
+
|
||||
+ TF_AXIOM(!m.IsClean());
|
||||
+ TF_AXIOM(std::any_of(m.begin(), m.end(),
|
||||
+ [](const TfError& e) {
|
||||
+ return TfStringEndsWith(e.GetCommentary(),
|
||||
+ "Invalid child identifier '' found "
|
||||
+ "on parent '/_materials'");
|
||||
+ }));
|
||||
+ TF_AXIOM(std::any_of(m.begin(), m.end(),
|
||||
+ [](const TfError& e) {
|
||||
+ return TfStringEndsWith(e.GetCommentary(),
|
||||
+ "Invalid children found in primChildren field "
|
||||
+ "for path '/_materials'");
|
||||
+ }));
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+TestDuplicatePrimChildren()
|
||||
+{
|
||||
+ // This test relies on verification checks that are only enabled when
|
||||
+ // PXR_PREFER_SAFETY_OVER_SPEED is enabled.
|
||||
+#ifdef PXR_PREFER_SAFETY_OVER_SPEED
|
||||
+ // open the layer and check for invalid child prim names and specs
|
||||
+ TfErrorMark m;
|
||||
+
|
||||
+ auto layer = SdfLayer::FindOrOpen("duplicate_prim_children.usdc");
|
||||
+ TF_AXIOM(!layer);
|
||||
+
|
||||
+ TF_AXIOM(!m.IsClean());
|
||||
+ TF_AXIOM(std::any_of(m.begin(), m.end(),
|
||||
+ [](const TfError& e) {
|
||||
+ return TfStringEndsWith(e.GetCommentary(),
|
||||
+ "Duplicate child identifier 'Child1' found "
|
||||
+ "on parent '/Root'");
|
||||
+ }));
|
||||
+ TF_AXIOM(std::any_of(m.begin(), m.end(),
|
||||
+ [](const TfError& e) {
|
||||
+ return TfStringEndsWith(e.GetCommentary(),
|
||||
+ "Invalid children found in primChildren field "
|
||||
+ "for path '/Root'");
|
||||
+ }));
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+int main(int argc, char** argv)
|
||||
+{
|
||||
+ TestInvalidPrimChildren();
|
||||
+ TestDuplicatePrimChildren();
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/pxr/usd/sdf/testenv/testSdfUsdcInvalidPrimChildren.testenv/duplicate_prim_children.usdc b/pxr/usd/sdf/testenv/testSdfUsdcInvalidPrimChildren.testenv/duplicate_prim_children.usdc
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..b6710e961deb11804a49dbaf2fd2ceb31d261d65
|
||||
GIT binary patch
|
||||
literal 704
|
||||
zcmbu7&rZTX5XQf4sV$-j!K(+Z97z0gG*L-eg+OXUYvNH1O(X%@)SBRpgAc$1_y8Wg
|
||||
z`Zhj-9!yNcVismBoSn-zncwWUJJY&Xo$94mw_#xsUt+2M4Ytt$=wy}yU;x+v*0`#x
|
||||
zSmi2b4--IvdfKE7QhZoP)e6uF!vs;>AKJJ5K`#zQ$fLAxqI6*5ediF}B#9BlVHCtk
|
||||
zKe$6LyuTR)NFJiV=?(*S`+LhKS0?JkQirz7mGT$@dlfvIuu;L2g-L$F3a3j2iro9A
|
||||
z5?_kBmg+ybnVMV$D^G=~nzbgNr|TtGXrEi#bP6wOlhT-DrloAbS0YjtBHI+EYWKnb
|
||||
zMCPfSjGQ_D=HvcFOFAB306bHAP3rlbrgNS(SoBfocfnaxw(A*2k@zv4UvlYli$lCj
|
||||
X+^zWyW-3O+Tf{wA+N=DP_zCe}Iz2v9
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/pxr/usd/sdf/testenv/testSdfUsdcInvalidPrimChildren.testenv/root.usdc b/pxr/usd/sdf/testenv/testSdfUsdcInvalidPrimChildren.testenv/root.usdc
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..651668dd7b6012b65e8fde4bfb4a973a697ceb58
|
||||
GIT binary patch
|
||||
literal 38110
|
||||
zcmeHw33yY*+W&8o^z=Y_4yQd73Q`CK6_BN+VN=_*1r$)AK+BF0pg<7{Hbo%@ySVST
|
||||
zpoj~IsDKMqP|+4aRK$H((5kqjVl0YEQgY`1yh$cGRJeMt_q)&k`<^?`)8_ZiyUhO1
|
||||
zoH?0E;l#1MipLEZ3>o3j=GMsP-wiXP1`>g==@tN50<Z%}0-yj;0ki_30Z0ar0ze1Q
|
||||
z8bB(5HUQcJNCVIgKzjfu0q6iA9Y99_od7rhbOw+CpbLPm08R#Q3V>4qbOX>GKo0<?
|
||||
z0q6;!7l7UX`T)oTkOiPGfNTIx0Q~^;2QUD@KmdaPoDSd&0A~Wo0gwy81t1SVK7axM
|
||||
zg8>WyFciR90L}(548U*zBLJKO;9LMB0gM7L8bBd{F#yH_7zdyTKrw*v044yK2w)O`
|
||||
z$pEGRm<nJTfb#%M2QUMG8wl6=EC90slmM6mU@m}p04&k=C<Cwv0E^O82h>IsE&xyt
|
||||
zzyqKHICBYr3jthYlBc>7^2-2t0bC5g2VgmXO8`_x^F^TwKsA6G0G9%|48Y|8t^jZ)
|
||||
zfU5vp4d5C8*8;c>!1Vxb0B|FK6##Ama5I2g08sZ_3E(yWw*y!O;0^$*0o)1TE&z7}
|
||||
zxCg)*a6X*__X1c4;64EB0o)JZ0RRsI*Z^Q7fK31%0`M?^M*utuU^9SP0FME99KaR;
|
||||
zTLC-);7I^a0oVrMX#mdvr~^<BU^{?k0qg*<6Tou-b^&-EzzYCg1h5;xO91u&cp1Pe
|
||||
z0A2;~8i3aUyaC`%0B-?!8^AjN-UaX;z^Na90N_IadjaeN@DYHI@qNh8x_=k)vmOUR
|
||||
z{#YCDH?`mA020D21AGbKD*#^u_y!2`M8BZ%;1I+CAUuF6d=KCU00#m52*3~ECjgBA
|
||||
z4gvVtlo$;zVS@&bz%-x)rU4}|4JLtUa0yHUOkf�@FYgm<F}LG}r~Efi5r&eu1eH
|
||||
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
|
||||
C@)ZIA
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/pxr/usd/usd/crateData.cpp b/pxr/usd/usd/crateData.cpp
|
||||
index a82933214..f70b57fe5 100644
|
||||
--- a/pxr/usd/usd/crateData.cpp
|
||||
+++ b/pxr/usd/usd/crateData.cpp
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "pxr/base/tf/stringUtils.h"
|
||||
#include "pxr/base/tf/typeInfoMap.h"
|
||||
#include "pxr/base/tf/pxrTslRobinMap/robin_map.h"
|
||||
+#include "pxr/base/tf/pxrTslRobinMap/robin_set.h"
|
||||
#include "pxr/base/trace/trace.h"
|
||||
|
||||
#include "pxr/base/work/dispatcher.h"
|
||||
@@ -29,6 +30,8 @@
|
||||
|
||||
#include <tbb/parallel_for.h>
|
||||
#include <tbb/parallel_sort.h>
|
||||
+#include <tbb/blocked_range.h>
|
||||
+#include <tbb/concurrent_vector.h>
|
||||
|
||||
#include <algorithm>
|
||||
#include <functional>
|
||||
@@ -717,6 +720,7 @@ public:
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
private:
|
||||
+ using TokenSet = pxr_tsl::robin_set<TfToken, TfToken::HashFunctor>;
|
||||
|
||||
bool _PopulateFromCrateFile() {
|
||||
|
||||
@@ -815,10 +819,11 @@ private:
|
||||
}
|
||||
|
||||
// Create all the specData entries and store pointers to them.
|
||||
- tbb::parallel_for(
|
||||
- tbb::blocked_range<size_t>(0, specs.size()),
|
||||
+ auto createSpecData =
|
||||
[this, crateFile, &liveFieldSets, &specs](
|
||||
- tbb::blocked_range<size_t> const &r) {
|
||||
+ tbb::blocked_range<size_t> const &r,
|
||||
+ auto&& validateChildrenFn) {
|
||||
+
|
||||
for (size_t i = r.begin(),
|
||||
end = r.end(); i != end; ++i) {
|
||||
|
||||
@@ -830,10 +835,59 @@ private:
|
||||
specData.fields =
|
||||
liveFieldSets.find(spec.fieldSetIndex)->second;
|
||||
|
||||
+ std::forward<decltype(validateChildrenFn)>
|
||||
+ (validateChildrenFn)(spec, specData);
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
+#ifndef PXR_PREFER_SAFETY_OVER_SPEED
|
||||
+ tbb::parallel_for(
|
||||
+ tbb::blocked_range<size_t>(0, specs.size()),
|
||||
+ [&createSpecData](tbb::blocked_range<size_t> const& r) {
|
||||
+ createSpecData(r, [](auto&&...) {});
|
||||
+ });
|
||||
+#else
|
||||
+ // In safety-over-speed mode we perform additional validation
|
||||
+ // on specs in worker threads. We need to collect runtime errors
|
||||
+ // emitted in those threads and transport them back to the
|
||||
+ // original thread.
|
||||
+ tbb::concurrent_vector<TfErrorTransport> errorTransports;
|
||||
+
|
||||
+ tbb::parallel_for(
|
||||
+ tbb::blocked_range<size_t>(0, specs.size()),
|
||||
+ [this, &createSpecData, &errorTransports](
|
||||
+ tbb::blocked_range<size_t> const& r) {
|
||||
+
|
||||
+ // Reuse a TokenSet for duplicate checking in
|
||||
+ // _ValidateSpecChildren to avoid allocating memory
|
||||
+ // repeatedly.
|
||||
+ TokenSet dupeTokenSet;
|
||||
+ TfErrorMark m;
|
||||
+
|
||||
+ createSpecData(
|
||||
+ r,
|
||||
+ [this, &dupeTokenSet](auto&&... args) {
|
||||
+ _ValidateSpecChildren(
|
||||
+ std::forward<decltype(args)>(args)...,
|
||||
+ &dupeTokenSet);
|
||||
+ });
|
||||
+
|
||||
+ if (!m.IsClean()) {
|
||||
+ TfErrorTransport transport = m.Transport();
|
||||
+ errorTransports.grow_by(1)->swap(transport);
|
||||
}
|
||||
},
|
||||
tbb::static_partitioner());
|
||||
|
||||
+ for (TfErrorTransport& transport : errorTransports) {
|
||||
+ transport.Post();
|
||||
+ }
|
||||
+
|
||||
+ if (!m.IsClean()) {
|
||||
+ return false;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
_lastSet = _data.end();
|
||||
|
||||
return true;
|
||||
@@ -851,6 +905,73 @@ private:
|
||||
return ret;
|
||||
}
|
||||
|
||||
+ inline bool _HasValidChildren(const SdfPath &path,
|
||||
+ const VtValue &val,
|
||||
+ TokenSet* dupeTokenSet) const {
|
||||
+ if (!val.IsHolding<TfTokenVector>()) {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ enum class ErrorType { Invalid, Duplicate };
|
||||
+ ErrorType errorType;
|
||||
+ dupeTokenSet->clear();
|
||||
+
|
||||
+ const TfTokenVector& children = val.UncheckedGet<TfTokenVector>();
|
||||
+ auto invalidChild = std::find_if(children.begin(), children.end(),
|
||||
+ [&](const TfToken& childName) {
|
||||
+ // Check that the child has a valid identifier and that the
|
||||
+ // child path exists in the data.
|
||||
+ if (!SdfPath::IsValidIdentifier(childName) ||
|
||||
+ _data.find(path.AppendChild(childName)) == _data.end()) {
|
||||
+ errorType = ErrorType::Invalid;
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ // Check that the child does not duplicate another child.
|
||||
+ if (!dupeTokenSet->insert(childName).second) {
|
||||
+ errorType = ErrorType::Duplicate;
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ return false;
|
||||
+ });
|
||||
+ if (ARCH_UNLIKELY(invalidChild != children.end())) {
|
||||
+ TF_RUNTIME_ERROR(
|
||||
+ "%s child identifier '%s' found on parent '%s'",
|
||||
+ (errorType == ErrorType::Duplicate ?
|
||||
+ "Duplicate" : "Invalid"),
|
||||
+ invalidChild->GetText(), path.GetAsString().c_str());
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ inline bool _ValidateSpecChildren(const CrateFile::Spec& spec,
|
||||
+ const _SpecData &specData,
|
||||
+ TokenSet* dupeTokenSet) const {
|
||||
+ if (specData.specType == SdfSpecTypePrim) {
|
||||
+ // Check for invalid children in primChildren field
|
||||
+ _FieldValuePairVector const &fields = specData.fields.Get();
|
||||
+ auto field = std::find_if(fields.begin(), fields.end(),
|
||||
+ [](_FieldValuePair const &fieldValue) {
|
||||
+ return fieldValue.first == SdfChildrenKeys->PrimChildren;
|
||||
+ });
|
||||
+ if (field != fields.end()) {
|
||||
+ SdfPath const &path = _crateFile->GetPath(spec.pathIndex);
|
||||
+ VtValue const &value = field->second;
|
||||
+ if (!_HasValidChildren(path, value, dupeTokenSet)) {
|
||||
+ TF_RUNTIME_ERROR(
|
||||
+ "Invalid children found in primChildren field for path "
|
||||
+ "'%s'", path.GetAsString().c_str());
|
||||
+ return false;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
inline std::vector<double> const &
|
||||
_ListTimeSamplesForPath(const SdfPath &path) const {
|
||||
TF_DESCRIBE_SCOPE(GetAssetPath().c_str());
|
||||
--
|
||||
2.52.0
|
||||
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
From 9fd6089b3e95bb882199ee359fbba83f7c4bb410 Mon Sep 17 00:00:00 2001
|
||||
From 07716964aaf5aab8345e1801a18bcab8a493e5e5 Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Thu, 29 Aug 2024 13:30:18 -0400
|
||||
Subject: [PATCH 2/6] Downstream-only: use the system lz4 library
|
||||
|
||||
---
|
||||
pxr/base/tf/CMakeLists.txt | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
pxr/base/tf/CMakeLists.txt | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt
|
||||
index b45df65b8..5e6de96da 100644
|
||||
index 749af9a2b..56ca1fd83 100644
|
||||
--- a/pxr/base/tf/CMakeLists.txt
|
||||
+++ b/pxr/base/tf/CMakeLists.txt
|
||||
@@ -106,6 +106,8 @@ function(add_py_dll_link_test)
|
||||
@@ -111,6 +111,8 @@ function(add_py_dll_link_test)
|
||||
endfunction()
|
||||
|
||||
find_library(double-conversion_LIBRARY NAMES double-conversion REQUIRED)
|
||||
|
|
@ -20,18 +20,19 @@ index b45df65b8..5e6de96da 100644
|
|||
|
||||
pxr_library(tf
|
||||
LIBRARIES
|
||||
@@ -113,6 +115,10 @@ pxr_library(tf
|
||||
@@ -118,9 +120,11 @@ pxr_library(tf
|
||||
${WINLIBS}
|
||||
TBB::tbb
|
||||
${TBB_tbb_LIBRARY}
|
||||
${double-conversion_LIBRARY}
|
||||
+ ${LZ4_LIBRARIES}
|
||||
+
|
||||
+ INCLUDE_DIRS
|
||||
|
||||
INCLUDE_DIRS
|
||||
${TBB_INCLUDE_DIRS}
|
||||
+ ${LZ4_INCLUDE_DIRS}
|
||||
|
||||
PUBLIC_CLASSES
|
||||
anyUniquePtr
|
||||
@@ -279,7 +285,6 @@ pxr_library(tf
|
||||
@@ -284,7 +288,6 @@ pxr_library(tf
|
||||
|
||||
CPPFILES
|
||||
initConfig.cpp
|
||||
|
|
@ -40,5 +41,5 @@ index b45df65b8..5e6de96da 100644
|
|||
PYMODULE_CPPFILES
|
||||
module.cpp
|
||||
--
|
||||
2.55.0
|
||||
2.48.1
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
From 73637a9bf67b3f7afe5070e5d56b07524e14a073 Mon Sep 17 00:00:00 2001
|
||||
From 6723d17b04358284e46b717da6dd3d9a25fd094d Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Fri, 30 Aug 2024 09:32:08 -0400
|
||||
Subject: [PATCH 3/6] Downstream-only: use the system pugixml library
|
||||
|
||||
---
|
||||
third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt | 6 +++---
|
||||
.../renderman-26/plugin/rmanArgsParser/CMakeLists.txt | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt b/third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt
|
||||
index 244f27aa8..1e00413c4 100644
|
||||
--- a/third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt
|
||||
+++ b/third_party/renderman/plugin/rmanArgsParser/CMakeLists.txt
|
||||
diff --git a/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt b/third_party/renderman-26/plugin/rmanArgsParser/CMakeLists.txt
|
||||
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 @@
|
||||
set(PXR_PREFIX "")
|
||||
set(PXR_PACKAGE rmanArgsParser)
|
||||
|
|
@ -20,9 +20,9 @@ index 244f27aa8..1e00413c4 100644
|
|||
pxr_plugin(rmanArgsParser
|
||||
LIBRARIES
|
||||
arch
|
||||
@@ -9,12 +11,10 @@ pxr_plugin(rmanArgsParser
|
||||
vt
|
||||
@@ -10,12 +12,10 @@ pxr_plugin(rmanArgsParser
|
||||
ar
|
||||
ndr
|
||||
sdr
|
||||
+ ${pugixml_LIBRARY}
|
||||
|
||||
|
|
@ -35,5 +35,5 @@ index 244f27aa8..1e00413c4 100644
|
|||
PRIVATE_HEADERS
|
||||
api.h
|
||||
--
|
||||
2.55.0
|
||||
2.48.1
|
||||
|
||||
|
|
|
|||
|
|
@ -1,23 +1,22 @@
|
|||
From f331a476a66e41e93d83b7a2e438d3ee7f12ea32 Mon Sep 17 00:00:00 2001
|
||||
From 69a381db3ad7e0a457fb547eab46d6fdd6532f32 Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Sat, 31 Aug 2024 11:08:18 -0400
|
||||
Subject: [PATCH 4/6] Downstream-only: use the system rapidjson library
|
||||
|
||||
---
|
||||
pxr/base/js/CMakeLists.txt | 40 --------------------------------------
|
||||
1 file changed, 40 deletions(-)
|
||||
pxr/base/js/CMakeLists.txt | 37 -------------------------------------
|
||||
1 file changed, 37 deletions(-)
|
||||
|
||||
diff --git a/pxr/base/js/CMakeLists.txt b/pxr/base/js/CMakeLists.txt
|
||||
index 8cbda8c52..ec8f3c249 100644
|
||||
index d59dc1f6d..086d1bc48 100644
|
||||
--- a/pxr/base/js/CMakeLists.txt
|
||||
+++ b/pxr/base/js/CMakeLists.txt
|
||||
@@ -15,46 +15,6 @@ pxr_library(js
|
||||
@@ -15,43 +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
|
||||
|
|
@ -27,7 +26,6 @@ index 8cbda8c52..ec8f3c249 100644
|
|||
- rapidjson/filewritestream.h
|
||||
- rapidjson/fwd.h
|
||||
- rapidjson/internal/biginteger.h
|
||||
- rapidjson/internal/clzll.h
|
||||
- rapidjson/internal/diyfp.h
|
||||
- rapidjson/internal/dtoa.h
|
||||
- rapidjson/internal/ieee754.h
|
||||
|
|
@ -52,12 +50,11 @@ index 8cbda8c52..ec8f3c249 100644
|
|||
- rapidjson/schema.h
|
||||
- rapidjson/stream.h
|
||||
- rapidjson/stringbuffer.h
|
||||
- rapidjson/uri.h
|
||||
- rapidjson/writer.h
|
||||
-
|
||||
DOXYGEN_FILES
|
||||
overview.dox
|
||||
)
|
||||
--
|
||||
2.55.0
|
||||
2.48.1
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
From a537b44edabe942380d2e87ea7069bdf32b93dbc Mon Sep 17 00:00:00 2001
|
||||
From 190572d6e81729f7e04ddf50891c7af368ea4995 Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Sun, 1 Sep 2024 21:30:11 -0400
|
||||
Subject: [PATCH 5/6] Downstream-only: use the system libdeflate
|
||||
|
||||
---
|
||||
pxr/imaging/hio/CMakeLists.txt | 7 +++++++
|
||||
.../hioOpenEXR/OpenEXR/OpenEXRCore/compression.c | 3 +--
|
||||
.../plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h | 12 ------------
|
||||
pxr/imaging/hio/CMakeLists.txt | 7 +++++++
|
||||
pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c | 3 +--
|
||||
pxr/imaging/hio/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 e61fc7c54..7cfbe9d70 100644
|
||||
index 75e1e6298..09264c600 100644
|
||||
--- a/pxr/imaging/hio/CMakeLists.txt
|
||||
+++ b/pxr/imaging/hio/CMakeLists.txt
|
||||
@@ -1,6 +1,9 @@
|
||||
|
|
@ -34,10 +34,10 @@ index e61fc7c54..7cfbe9d70 100644
|
|||
|
||||
PUBLIC_CLASSES
|
||||
fieldTextureData
|
||||
diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c
|
||||
diff --git a/pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c b/pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c
|
||||
index a672e833b..1d2eaea56 100644
|
||||
--- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c
|
||||
+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c
|
||||
--- a/pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c
|
||||
+++ b/pxr/imaging/hio/OpenEXR/OpenEXRCore/compression.c
|
||||
@@ -8,8 +8,7 @@
|
||||
#include "internal_memory.h"
|
||||
#include "internal_structs.h"
|
||||
|
|
@ -48,10 +48,10 @@ index a672e833b..1d2eaea56 100644
|
|||
|
||||
#if ( \
|
||||
LIBDEFLATE_VERSION_MAJOR > 1 || \
|
||||
diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h
|
||||
diff --git a/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h b/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h
|
||||
index 7481a346e..71bdde9cc 100644
|
||||
--- a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h
|
||||
+++ b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h
|
||||
--- a/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h
|
||||
+++ b/pxr/imaging/hio/OpenEXR/OpenEXRCoreUnity.h
|
||||
@@ -8,18 +8,6 @@
|
||||
|
||||
#include "OpenEXRCore/openexr_config.h"
|
||||
|
|
@ -72,5 +72,5 @@ index 7481a346e..71bdde9cc 100644
|
|||
|
||||
#include "OpenEXRCore/attributes.c"
|
||||
--
|
||||
2.55.0
|
||||
2.48.1
|
||||
|
||||
|
|
|
|||
|
|
@ -1,28 +1,28 @@
|
|||
From f2a3615238a691e11a4029c33498e7f21a34fff9 Mon Sep 17 00:00:00 2001
|
||||
From 8173625c157a1cb59c0f5cf8039afde9cce84641 Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Wed, 4 Sep 2024 11:09:47 -0400
|
||||
Subject: [PATCH 6/6] Downstream-only: use the system libavif
|
||||
|
||||
---
|
||||
pxr/imaging/plugin/hioAvif/AVIFImage.cpp | 2 +-
|
||||
pxr/imaging/plugin/hioAvif/CMakeLists.txt | 194 +---------------------
|
||||
2 files changed, 7 insertions(+), 189 deletions(-)
|
||||
pxr/imaging/plugin/hioAvif/CMakeLists.txt | 195 +---------------------
|
||||
2 files changed, 8 insertions(+), 189 deletions(-)
|
||||
|
||||
diff --git a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp
|
||||
index b56369ee5..c6fcb4a6c 100644
|
||||
index b902a9806..e83af2acc 100644
|
||||
--- a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp
|
||||
+++ b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp
|
||||
@@ -30,7 +30,7 @@ ARCH_PRAGMA_UNUSED_FUNCTION
|
||||
@@ -29,7 +29,7 @@ ARCH_PRAGMA_UNUSED_FUNCTION
|
||||
#include "pxr/base/tf/stringUtils.h"
|
||||
#include "pxr/base/tf/type.h"
|
||||
|
||||
-#include "pxr/imaging/plugin/hioAvif/AVIF/src/avif/avif.h"
|
||||
+#include <avif/avif.h>
|
||||
|
||||
PXR_NAMESPACE_OPEN_SCOPE
|
||||
|
||||
#include "pxr/base/arch/export.h"
|
||||
diff --git a/pxr/imaging/plugin/hioAvif/CMakeLists.txt b/pxr/imaging/plugin/hioAvif/CMakeLists.txt
|
||||
index 1ac2683f6..7d583c137 100644
|
||||
index 29ffe0fdf..7f1680eaf 100644
|
||||
--- a/pxr/imaging/plugin/hioAvif/CMakeLists.txt
|
||||
+++ b/pxr/imaging/plugin/hioAvif/CMakeLists.txt
|
||||
@@ -1,6 +1,9 @@
|
||||
|
|
@ -35,11 +35,14 @@ index 1ac2683f6..7d583c137 100644
|
|||
pxr_plugin(hioAvif
|
||||
LIBRARIES
|
||||
ar
|
||||
@@ -8,197 +11,12 @@ pxr_plugin(hioAvif
|
||||
@@ -8,196 +11,12 @@ pxr_plugin(hioAvif
|
||||
gf
|
||||
hio
|
||||
tf
|
||||
+ ${AVIF_LIBRARIES}
|
||||
+
|
||||
+ INCLUDE_DIRS
|
||||
+ ${AVIF_INCLUDE_DIRS}
|
||||
|
||||
- PRIVATE_HEADERS
|
||||
- aom/aom.h
|
||||
|
|
@ -50,89 +53,89 @@ index 1ac2683f6..7d583c137 100644
|
|||
- aom/aom_image.h
|
||||
- aom/aom_integer.h
|
||||
- aom/aomdx.h
|
||||
- aom/aom_external_partition.h
|
||||
- aom/aom_dsp/binary_codes_reader.h
|
||||
- aom/aom_dsp/bitreader.h
|
||||
- aom/aom_dsp/aom_dsp_common.h
|
||||
- aom/aom_dsp/bitreader_buffer.h
|
||||
- aom/aom_dsp/blend.h
|
||||
- aom/aom_dsp/entcode.h
|
||||
- aom/aom_dsp/entdec.h
|
||||
- aom/aom_dsp/grain_table.h
|
||||
- aom/aom_dsp/aom_filter.h
|
||||
- aom/aom_dsp/grain_synthesis.h
|
||||
- aom/aom_dsp/intrapred_common.h
|
||||
- aom/aom_dsp/prob.h
|
||||
- aom/aom_dsp/recenter.h
|
||||
- aom/aom_dsp/txfm_common.h
|
||||
- aom/aom_mem/aom_mem.h
|
||||
- aom/aom_mem/include/aom_mem_intrnl.h
|
||||
- aom/aom_ports/bitops.h
|
||||
- aom/aom_ports/aom_once.h
|
||||
- aom/aom_ports/mem.h
|
||||
- aom/aom_ports/mem_ops.h
|
||||
- aom/aom_ports/mem_ops_aligned.h
|
||||
- aom/aom_ports/msvc.h
|
||||
- aom/aom_ports/system_state.h
|
||||
- aom/aom_ports/aom_timer.h
|
||||
- aom/aom_scale/aom_scale.h
|
||||
- aom/aom_scale/yv12config.h
|
||||
- aom/aom_util/aom_thread.h
|
||||
- aom/av1/av1_iface_common.h
|
||||
- aom/av1/common/av1_common_int.h
|
||||
- aom/av1/common/alloccommon.h
|
||||
- aom/av1/common/av1_inv_txfm1d.h
|
||||
- aom/av1/common/av1_inv_txfm1d_cfg.h
|
||||
- aom/av1/common/av1_loopfilter.h
|
||||
- aom/av1/common/av1_txfm.h
|
||||
- aom/av1/common/blockd.h
|
||||
- aom/av1/common/cdef.h
|
||||
- aom/av1/common/cdef_block.h
|
||||
- aom/av1/common/cfl.h
|
||||
- aom/av1/common/common.h
|
||||
- aom/av1/common/common_data.h
|
||||
- aom/av1/common/convolve.h
|
||||
- aom/av1/common/entropy.h
|
||||
- aom/av1/common/entropymode.h
|
||||
- aom/av1/common/entropymv.h
|
||||
- aom/av1/common/enums.h
|
||||
- aom/av1/common/filter.h
|
||||
- aom/av1/common/frame_buffers.h
|
||||
- aom/av1/common/mv.h
|
||||
- aom/av1/common/mvref_common.h
|
||||
- aom/av1/common/idct.h
|
||||
- aom/av1/common/obmc.h
|
||||
- aom/av1/common/obu_util.h
|
||||
- aom/av1/common/odintrin.h
|
||||
- aom/av1/common/pred_common.h
|
||||
- aom/av1/common/quant_common.h
|
||||
- aom/av1/common/reconinter.h
|
||||
- aom/av1/common/reconintra.h
|
||||
- aom/av1/common/resize.h
|
||||
- aom/av1/common/restoration.h
|
||||
- aom/av1/common/scale.h
|
||||
- aom/av1/common/scan.h
|
||||
- aom/av1/common/seg_common.h
|
||||
- aom/av1/common/thread_common.h
|
||||
- aom/av1/common/tile_common.h
|
||||
- aom/av1/common/timing.h
|
||||
- aom/av1/common/token_cdfs.h
|
||||
- aom/av1/common/txb_common.h
|
||||
- aom/av1/common/warped_motion.h
|
||||
- aom/av1/decoder/decodeframe.h
|
||||
- aom/av1/decoder/decoder.h
|
||||
- aom/av1/decoder/decodemv.h
|
||||
- aom/av1/decoder/decodetxb.h
|
||||
- aom/av1/decoder/detokenize.h
|
||||
- aom/av1/decoder/dthread.h
|
||||
- aom/av1/decoder/obu.h
|
||||
- aom/config/aom_config.h
|
||||
- aom/config/aom_dsp_rtcd.h
|
||||
- aom/config/aom_scale_rtcd.h
|
||||
- aom/config/aom_version.h
|
||||
- aom/config/av1_rtcd.h
|
||||
- aom/internal/aom_codec_internal.h
|
||||
- aom/internal/aom_image_internal.h
|
||||
- aom_dsp/aom_dsp_common.h
|
||||
- aom_dsp/aom_filter.h
|
||||
- aom_dsp/binary_codes_reader.h
|
||||
- aom_dsp/bitreader.h
|
||||
- aom_dsp/bitreader_buffer.h
|
||||
- aom_dsp/blend.h
|
||||
- aom_dsp/entcode.h
|
||||
- aom_dsp/entdec.h
|
||||
- aom_dsp/flow_estimation/corner_detect.h
|
||||
- aom_dsp/flow_estimation/flow_estimation.h
|
||||
- aom_dsp/grain_params.h
|
||||
- aom_dsp/grain_table.h
|
||||
- aom_dsp/intrapred_common.h
|
||||
- aom_dsp/odintrin.h
|
||||
- aom_dsp/prob.h
|
||||
- aom_dsp/pyramid.h
|
||||
- aom_dsp/recenter.h
|
||||
- aom_dsp/txfm_common.h
|
||||
- aom_mem/aom_mem.h
|
||||
- aom_mem/include/aom_mem_intrnl.h
|
||||
- aom_ports/aom_once.h
|
||||
- aom_ports/aom_timer.h
|
||||
- aom_ports/bitops.h
|
||||
- aom_ports/mem.h
|
||||
- aom_ports/mem_ops.h
|
||||
- aom_ports/mem_ops_aligned.h
|
||||
- aom_ports/sanitizer.h
|
||||
- aom_scale/yv12config.h
|
||||
- aom_util/aom_thread.h
|
||||
- aom_util/aom_pthread.h
|
||||
- av1/av1_iface_common.h
|
||||
- av1/common/alloccommon.h
|
||||
- av1/common/av1_common_int.h
|
||||
- av1/common/av1_inv_txfm1d.h
|
||||
- av1/common/av1_inv_txfm1d_cfg.h
|
||||
- av1/common/av1_loopfilter.h
|
||||
- av1/common/av1_txfm.h
|
||||
- av1/common/blockd.h
|
||||
- av1/common/cdef.h
|
||||
- av1/common/cdef_block.h
|
||||
- av1/common/cfl.h
|
||||
- av1/common/common.h
|
||||
- av1/common/common_data.h
|
||||
- av1/common/convolve.h
|
||||
- av1/common/entropy.h
|
||||
- av1/common/entropymode.h
|
||||
- av1/common/entropymv.h
|
||||
- av1/common/enums.h
|
||||
- av1/common/filter.h
|
||||
- av1/common/frame_buffers.h
|
||||
- av1/common/idct.h
|
||||
- av1/common/mv.h
|
||||
- av1/common/mvref_common.h
|
||||
- av1/common/obmc.h
|
||||
- av1/common/obu_util.h
|
||||
- av1/common/pred_common.h
|
||||
- av1/common/quant_common.h
|
||||
- av1/common/reconinter.h
|
||||
- av1/common/reconinter_template.inc
|
||||
- av1/common/reconintra.h
|
||||
- av1/common/resize.h
|
||||
- av1/common/restoration.h
|
||||
- av1/common/scale.h
|
||||
- av1/common/scan.h
|
||||
- av1/common/seg_common.h
|
||||
- av1/common/thread_common.h
|
||||
- av1/common/tile_common.h
|
||||
- av1/common/timing.h
|
||||
- av1/common/token_cdfs.h
|
||||
- av1/common/txb_common.h
|
||||
- av1/common/warped_motion.h
|
||||
- av1/decoder/decodeframe.h
|
||||
- av1/decoder/decodemv.h
|
||||
- av1/decoder/decoder.h
|
||||
- av1/decoder/decodetxb.h
|
||||
- av1/decoder/detokenize.h
|
||||
- av1/decoder/dthread.h
|
||||
- av1/decoder/grain_synthesis.h
|
||||
- av1/decoder/obu.h
|
||||
- common/args_helper.h
|
||||
- aom/internal/common/args_helper.h
|
||||
- AVIF/src/avif/avif.h
|
||||
- AVIF/src/avif/internal.h
|
||||
- AVIF/src/src-libyuv/libyuv/basic_types.h
|
||||
|
|
@ -142,74 +145,71 @@ index 1ac2683f6..7d583c137 100644
|
|||
- AVIF/src/src-libyuv/libyuv/scale.h
|
||||
- AVIF/src/src-libyuv/libyuv/scale_row.h
|
||||
- AVIF/src/src-libyuv/libyuv/version.h
|
||||
+ INCLUDE_DIRS
|
||||
+ ${AVIF_INCLUDE_DIRS}
|
||||
|
||||
-
|
||||
CPPFILES
|
||||
- aom/src/aom_codec.c
|
||||
- aom/src/aom_decoder.c
|
||||
- aom/src/aom_image.c
|
||||
- aom/src/aom_integer.c
|
||||
- aom_dsp/aom_convolve.c
|
||||
- aom_dsp/aom_dsp_rtcd.c
|
||||
- aom_dsp/binary_codes_reader.c
|
||||
- aom_dsp/bitreader.c
|
||||
- aom_dsp/bitreader_buffer.c
|
||||
- aom_dsp/blend_a64_hmask.c
|
||||
- aom_dsp/blend_a64_mask.c
|
||||
- aom_dsp/blend_a64_vmask.c
|
||||
- aom_dsp/entcode.c
|
||||
- aom_dsp/entdec.c
|
||||
- aom_dsp/intrapred.c
|
||||
- aom_dsp/loopfilter.c
|
||||
- aom_dsp/odintrin.c
|
||||
- aom_dsp/pyramid.c
|
||||
- aom_mem/aom_mem.c
|
||||
- aom_scale/aom_scale_rtcd.c
|
||||
- aom_scale/generic/yv12config.c
|
||||
- aom_scale/generic/yv12extend.c
|
||||
- aom_util/aom_thread.c
|
||||
- av1/av1_dx_iface.c
|
||||
- av1/common/alloccommon.c
|
||||
- av1/common/av1_inv_txfm1d.c
|
||||
- av1/common/av1_inv_txfm2d.c
|
||||
- av1/common/av1_loopfilter.c
|
||||
- av1/common/av1_rtcd.c
|
||||
- av1/common/av1_txfm.c
|
||||
- av1/common/blockd.c
|
||||
- av1/common/cdef.c
|
||||
- av1/common/cdef_block.c
|
||||
- av1/common/cfl.c
|
||||
- av1/common/common_data.c
|
||||
- av1/common/convolve.c
|
||||
- av1/common/entropy.c
|
||||
- av1/common/entropymode.c
|
||||
- av1/common/entropymv.c
|
||||
- av1/common/frame_buffers.c
|
||||
- av1/common/idct.c
|
||||
- av1/common/mvref_common.c
|
||||
- av1/common/obu_util.c
|
||||
- av1/common/pred_common.c
|
||||
- av1/common/quant_common.c
|
||||
- av1/common/reconinter.c
|
||||
- av1/common/reconintra.c
|
||||
- av1/common/resize.c
|
||||
- av1/common/restoration.c
|
||||
- av1/common/scale.c
|
||||
- av1/common/scan.c
|
||||
- av1/common/seg_common.c
|
||||
- av1/common/thread_common.c
|
||||
- av1/common/tile_common.c
|
||||
- av1/common/timing.c
|
||||
- av1/common/txb_common.c
|
||||
- av1/common/warped_motion.c
|
||||
- av1/decoder/decodeframe.c
|
||||
- av1/decoder/decodemv.c
|
||||
- av1/decoder/decoder.c
|
||||
- av1/decoder/decodetxb.c
|
||||
- av1/decoder/detokenize.c
|
||||
- av1/decoder/grain_synthesis.c
|
||||
- av1/decoder/obu.c
|
||||
- aom/aom_codec.c
|
||||
- aom/aom_decoder.c
|
||||
- aom/aom_image.c
|
||||
- aom/aom_integer.c
|
||||
- aom/aom_dsp/aom_convolve.c
|
||||
- aom/aom_dsp/aom_dsp_rtcd.c
|
||||
- aom/aom_dsp/binary_codes_reader.c
|
||||
- aom/aom_dsp/bitreader.c
|
||||
- aom/aom_dsp/bitreader_buffer.c
|
||||
- aom/aom_dsp/blend_a64_hmask.c
|
||||
- aom/aom_dsp/blend_a64_vmask.c
|
||||
- aom/aom_dsp/blend_a64_mask.c
|
||||
- aom/aom_dsp/entcode.c
|
||||
- aom/aom_dsp/entdec.c
|
||||
- aom/aom_dsp/grain_synthesis.c
|
||||
- aom/aom_dsp/intrapred.c
|
||||
- aom/aom_dsp/loopfilter.c
|
||||
- aom/aom_mem/aom_mem.c
|
||||
- aom/aom_scale/aom_scale_rtcd.c
|
||||
- aom/aom_scale/generic/aom_scale.c
|
||||
- aom/aom_scale/generic/gen_scalers.c
|
||||
- aom/aom_scale/generic/yv12config.c
|
||||
- aom/aom_scale/generic/yv12extend.c
|
||||
- aom/aom_util/aom_thread.c
|
||||
- aom/av1/av1_dx_iface.c
|
||||
- aom/av1/common/alloccommon.c
|
||||
- aom/av1/common/av1_inv_txfm1d.c
|
||||
- aom/av1/common/av1_inv_txfm2d.c
|
||||
- aom/av1/common/av1_loopfilter.c
|
||||
- aom/av1/common/av1_txfm.c
|
||||
- aom/av1/common/av1_rtcd.c
|
||||
- aom/av1/common/blockd.c
|
||||
- aom/av1/common/cdef.c
|
||||
- aom/av1/common/cdef_block.c
|
||||
- aom/av1/common/cfl.c
|
||||
- aom/av1/common/convolve.c
|
||||
- aom/av1/common/entropymode.c
|
||||
- aom/av1/common/entropy.c
|
||||
- aom/av1/common/entropymv.c
|
||||
- aom/av1/common/frame_buffers.c
|
||||
- aom/av1/common/idct.c
|
||||
- aom/av1/common/mvref_common.c
|
||||
- aom/av1/common/obu_util.c
|
||||
- aom/av1/common/pred_common.c
|
||||
- aom/av1/common/quant_common.c
|
||||
- aom/av1/common/reconinter.c
|
||||
- aom/av1/common/reconintra.c
|
||||
- aom/av1/common/resize.c
|
||||
- aom/av1/common/restoration.c
|
||||
- aom/av1/common/av1_scale.c
|
||||
- aom/av1/common/scan.c
|
||||
- aom/av1/common/seg_common.c
|
||||
- aom/av1/common/thread_common.c
|
||||
- aom/av1/common/timing.c
|
||||
- aom/av1/common/txb_common.c
|
||||
- aom/av1/common/tile_common.c
|
||||
- aom/av1/common/warped_motion.c
|
||||
- aom/av1/decoder/decodeframe.c
|
||||
- aom/av1/decoder/decodemv.c
|
||||
- aom/av1/decoder/decoder.c
|
||||
- aom/av1/decoder/decodetxb.c
|
||||
- aom/av1/decoder/detokenize.c
|
||||
- aom/av1/decoder/obu.c
|
||||
- AVIF/src/alpha.c
|
||||
- AVIF/src/avif.c
|
||||
- AVIF/src/codec_aom.c
|
||||
|
|
@ -237,5 +237,5 @@ index 1ac2683f6..7d583c137 100644
|
|||
|
||||
RESOURCE_FILES
|
||||
--
|
||||
2.55.0
|
||||
2.48.1
|
||||
|
||||
|
|
|
|||
217
2266.patch
Normal file
217
2266.patch
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
From a07a6b4d1da19bfc499db49641d74fb7c1a71e9b Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
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 <embree3/rtcore.h>
|
||||
+#include <embree4/rtcore.h>
|
||||
|
||||
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 <embree3/rtcore.h>
|
||||
-#include <embree3/rtcore_ray.h>
|
||||
+#include <embree4/rtcore.h>
|
||||
+#include <embree4/rtcore_ray.h>
|
||||
|
||||
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 <embree3/rtcore.h>
|
||||
-#include <embree3/rtcore_geometry.h>
|
||||
+#include <embree4/rtcore.h>
|
||||
+#include <embree4/rtcore_geometry.h>
|
||||
|
||||
#include <bitset>
|
||||
|
||||
diff --git a/pxr/imaging/plugin/hdEmbree/pch.h b/pxr/imaging/plugin/hdEmbree/pch.h
|
||||
index 0369fea3a1..2f9f19fa09 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
|
||||
-#include <embree3/rtcore.h>
|
||||
-#include <embree3/rtcore_geometry.h>
|
||||
-#include <embree3/rtcore_ray.h>
|
||||
+#include <embree4/rtcore.h>
|
||||
+#include <embree4/rtcore_geometry.h>
|
||||
+#include <embree4/rtcore_ray.h>
|
||||
#include <tbb/blocked_range.h>
|
||||
#include <tbb/cache_aligned_allocator.h>
|
||||
#include <tbb/concurrent_hash_map.h>
|
||||
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 <mutex>
|
||||
-#include <embree3/rtcore.h>
|
||||
+#include <embree4/rtcore.h>
|
||||
|
||||
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 <embree3/rtcore.h>
|
||||
+#include <embree4/rtcore.h>
|
||||
|
||||
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 <embree3/rtcore.h>
|
||||
-#include <embree3/rtcore_ray.h>
|
||||
+#include <embree4/rtcore.h>
|
||||
+#include <embree4/rtcore_ray.h>
|
||||
|
||||
#include <random>
|
||||
#include <atomic>
|
||||
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 <embree3/rtcore.h>
|
||||
+#include <embree4/rtcore.h>
|
||||
#include <iostream>
|
||||
|
||||
PXR_NAMESPACE_USING_DIRECTIVE
|
||||
22
3487.patch
Normal file
22
3487.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
From 97151da9044e0fb488b61d664cc56fda0b711bf7 Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Tue, 21 Jan 2025 22:05:01 -0500
|
||||
Subject: [PATCH] Add missing #include <cstdint>
|
||||
|
||||
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 <cstdint>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
34
534b22c12dc18203ab5b233792debca8bf843b2e.patch
Normal file
34
534b22c12dc18203ab5b233792debca8bf843b2e.patch
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
From 534b22c12dc18203ab5b233792debca8bf843b2e Mon Sep 17 00:00:00 2001
|
||||
From: Matt Johnson <matt.johnson@epicgames.com>
|
||||
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
|
||||
|
||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (OpenUSD-26.08.tar.gz) = 82f7bb4f77b295be79cd36f591f242276d36c0d589b0fca383344c27e70daf7e29151bf587528bb2fc2b2a8b974387a253993ace3caf5f79ae70f9ebbc71cf1a
|
||||
SHA512 (OpenUSD-25.02a.tar.gz) = 6369b902d4e84bda7f3b54357915a933f2d3ea7753b9f702350af6d341572d49a0644ccf803a469e9b452aad1f3d81d7cbfab340f2509fba1213ffd575cf402b
|
||||
|
|
|
|||
173
usd.spec
173
usd.spec
|
|
@ -2,13 +2,15 @@
|
|||
# package version, as a reminder of the need to rebuild dependent packages on
|
||||
# every update. See additional notes near the downstream ABI versioning patch.
|
||||
# It should be 0.MAJOR.MINOR without leading zeros, e.g. 22.03 → 0.22.3.
|
||||
%global downstream_so_version 0.26.8
|
||||
%global downstream_so_version 0.25.2
|
||||
|
||||
%bcond alembic 1
|
||||
%bcond draco 1
|
||||
%bcond embree 1
|
||||
%bcond jemalloc 0
|
||||
%bcond materialx 1
|
||||
# Not yet packaged: https://github.com/AcademySoftwareFoundation/MaterialX
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2262694
|
||||
%bcond materialx 0
|
||||
# Default "UNIX Makefiles" backend for CMake would also work fine; ninja is a
|
||||
# bit faster. We conditionalize it just in case there are backend-specific
|
||||
# issues in the future.
|
||||
|
|
@ -25,7 +27,7 @@
|
|||
%bcond test 0
|
||||
|
||||
Name: usd
|
||||
Version: 26.08
|
||||
Version: 25.02a
|
||||
Release: %autorelease
|
||||
Summary: 3D VFX pipeline interchange file format
|
||||
|
||||
|
|
@ -33,15 +35,12 @@ Summary: 3D VFX pipeline interchange file format
|
|||
#
|
||||
# Apache-2.0:
|
||||
# - pxr/imaging/hgiVulkan/spirv_reflect.{cpp,h}
|
||||
# - pxr/imaging/plugin/hdEmbree/pxrPbrt/pbrtUtils.h
|
||||
# - pxr/imaging/plugin/hdEmbree/pxrIES/pxr-IES.patch
|
||||
# - pxr/imaging/plugin/hdEmbree/pxrIES/ies.{cpp,h}
|
||||
# BSD-3-Clause:
|
||||
# - pxr/base/gf/ilmbase_*
|
||||
# - pxr/base/js/rapidjson/msinttypes/ (removed in %%prep)
|
||||
# - pxr/base/tf/pxrCLI11/ (removed in %%prep)
|
||||
# - pxr/base/tf/pxrDoubleConversion/ (removed in %%prep)
|
||||
# - pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/
|
||||
# - pxr/imaging/hio/OpenEXR/OpenEXRCore/
|
||||
# - pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/
|
||||
# BSD-2-Clause:
|
||||
# - pxr/base/tf/pxrLZ4/ (removed in %%prep)
|
||||
|
|
@ -59,14 +58,14 @@ Summary: 3D VFX pipeline interchange file format
|
|||
# - pxr/base/tf/pxrTslRobinMap/
|
||||
# - pxr/imaging/garch/khrplatform.h
|
||||
# - pxr/imaging/hgiVulkan/vk_mem_alloc.h
|
||||
# - pxr/imaging/plugin/hioOpenEXR/OpenEXR/deflate/ (removed in %%prep)
|
||||
# - third_party/renderman/plugin/rmanArgsParser/pugixml/ (removed in %%prep)
|
||||
# - pxr/imaging/hio/OpenEXR/deflate/ (removed in %%prep)
|
||||
# - third_party/renderman-26/plugin/rmanArgsParser/pugixml/ (removed in %%prep)
|
||||
# MIT OR Unlicense:
|
||||
# - pxr/imaging/hio/stb/
|
||||
# Pixar AND GPL-3.0-or-later WITH Bison-exception-2.2:
|
||||
# - pxr/usd/sdf/path.tab.{cpp,h}
|
||||
# - pxr/usd/sdf/textFileFormat.tab.{cpp,h}
|
||||
# - third_party/renderman/plugin/hdPrman/virtualStructConditionalGrammar.tab.{cpp,h}
|
||||
# - third_party/renderman-26/plugin/hdPrman/virtualStructConditionalGrammar.tab.{cpp,h}
|
||||
#
|
||||
# Additionally, the following would be listed above but are removed in %%prep:
|
||||
#
|
||||
|
|
@ -127,13 +126,12 @@ Source1: org.openusd.usdview.desktop
|
|||
# built with -DPXR_BUILD_EXAMPLES=OFF, but it is.)
|
||||
Patch: 0001-Downstream-only-add-an-SONAME-version.patch
|
||||
|
||||
# Downstream-only: use Valgrind macro instead of inline assembly
|
||||
#
|
||||
# Upstream already has a plan to make this change, but is waiting to be
|
||||
# able to add a build dependency on valgrind-devel. We have no such
|
||||
# obstacle, and this change fixes the inline assembly failing to compile
|
||||
# on aarch64.
|
||||
Patch: 0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch
|
||||
# Port to Embree 4.x
|
||||
# https://github.com/PixarAnimationStudios/OpenUSD/pull/2266
|
||||
# See also:
|
||||
# hdEmbree: add support for building against embree4
|
||||
# https://github.com/PixarAnimationStudios/USD/pull/2266
|
||||
Patch: %{forgeurl}/pull/2266.patch
|
||||
|
||||
# Downstream-only: use the system double-conversion library
|
||||
Patch: 0001-Downstream-only-use-the-system-double-conversion-lib.patch
|
||||
|
|
@ -148,17 +146,37 @@ 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 <cstdint>
|
||||
# https://github.com/PixarAnimationStudios/OpenUSD/pull/3487
|
||||
# Fixes failure to compile with GCC 15
|
||||
Patch: %{forgeurl}/pull/3487.patch
|
||||
|
||||
# Backport fixes for CVE-2025-64181 etc. in OpenEXRCore
|
||||
# https://github.com/PixarAnimationStudios/OpenUSD/pull/3903
|
||||
Patch: %{forgeurl}/pull/3903.patch
|
||||
# Rebased on v25.02a
|
||||
Patch: 0001-Backport-fixes-for-CVE-2025-64181-etc.-in-OpenEXRCor.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
|
||||
# sdf: Guard against invalid primChildren in crate files
|
||||
# https://github.com/PixarAnimationStudios/OpenUSD/commit/b9530922b6a8ea72cd43661226b693fff8abbe4c
|
||||
#
|
||||
# Fixes:
|
||||
#
|
||||
# CVE-2025-14439 usd: OpenUSD File Parsing Use-After-Free Remote Code Execution
|
||||
# Vulnerability [fedora-42]
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2422275
|
||||
#
|
||||
# …which is:
|
||||
#
|
||||
# OpenUSD File Parsing Use-After-Free Remote Code Execution Vulnerability
|
||||
# https://github.com/advisories/GHSA-grjp-54v3-c442
|
||||
#
|
||||
# Cherry-picked on v25.08.
|
||||
Patch: 0001-sdf-Guard-against-invalid-primChildren-in-crate-file.patch
|
||||
|
||||
# Base
|
||||
BuildRequires: gcc-c++
|
||||
|
|
@ -170,17 +188,15 @@ BuildRequires: ninja-build
|
|||
|
||||
BuildRequires: dos2unix
|
||||
BuildRequires: help2man
|
||||
# For applying 0001-sdf-Guard-against-invalid-primChildren-in-crate-file.patch,
|
||||
# which includes binary diffs.
|
||||
BuildRequires: git-core
|
||||
|
||||
BuildRequires: pkgconfig(blosc)
|
||||
BuildRequires: pkgconfig(dri)
|
||||
BuildRequires: hdf5-devel
|
||||
BuildRequires: cmake(OpenSubdiv)
|
||||
BuildRequires: opensubdiv-devel >= 3.6.0
|
||||
BuildRequires: pkgconfig(tbb)
|
||||
# This seems to be an indirect dependency, probably through OpenSubdiv.
|
||||
# Ideally, everything would take care of its own dependencies, and we wouldn’t
|
||||
# have to specify it directly, but we haven’t studied the problem closely
|
||||
# enough to propose a fix.
|
||||
BuildRequires: pkgconfig(OpenCL)
|
||||
# Unbundled:
|
||||
BuildRequires: cmake(double-conversion)
|
||||
BuildRequires: pkgconfig(liblz4)
|
||||
|
|
@ -194,9 +210,6 @@ BuildRequires: pkgconfig(libavif)
|
|||
|
||||
BuildRequires: cmake(Imath) >= 3.0
|
||||
|
||||
# Introduced by 0001-Downstream-only-use-Valgrind-macro-instead-of-inline.patch
|
||||
BuildRequires: valgrind-devel
|
||||
|
||||
%if %{with alembic}
|
||||
BuildRequires: cmake(Alembic)
|
||||
%endif
|
||||
|
|
@ -213,13 +226,6 @@ BuildRequires: embree-devel
|
|||
BuildRequires: pkgconfig(jemalloc)
|
||||
%endif
|
||||
|
||||
%if %{with materialx}
|
||||
BuildRequires: cmake(materialx)
|
||||
BuildRequires: materialx-data
|
||||
BuildRequires: pkgconfig(xt)
|
||||
BuildRequires: python3-materialx
|
||||
%endif
|
||||
|
||||
%if %{with ocio}
|
||||
BuildRequires: cmake(OpenColorIO)
|
||||
%endif
|
||||
|
|
@ -238,7 +244,7 @@ BuildRequires: openvdb-devel
|
|||
%endif
|
||||
|
||||
%if %{with ptex}
|
||||
BuildRequires: cmake(ptex)
|
||||
BuildRequires: pkgconfig(ptex)
|
||||
%endif
|
||||
|
||||
# Header-only library: -static is for tracking per guidelines
|
||||
|
|
@ -300,9 +306,8 @@ Provides: bundled(ilmbase) = 2.5.3
|
|||
# Currently, Fedora’s PEGTL is too old:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1902427
|
||||
Provides: bundled(PEGTL) = 3.2.7
|
||||
# Version from
|
||||
# pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/openexr_version.h
|
||||
# From pxr/imaging/plugin/hioOpenEXR/OpenEXR/README.md:
|
||||
# Version from pxr/imaging/hio/OpenEXR/OpenEXRCore/openexr_version.h
|
||||
# From pxr/imaging/hio/OpenEXR/README.md:
|
||||
# A few changes are still in progress to upstreamed to the OpenEXR project,
|
||||
# but these are minor, and otherwise, almost all differences between the
|
||||
# interred OpenEXRCore and the official OpenEXR repo are consolidated to the
|
||||
|
|
@ -331,39 +336,6 @@ 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
|
||||
|
|
@ -376,7 +348,7 @@ Provides: bundled(cycles) = 4.5.0^20251210.0be21d4
|
|||
# Version from: pxr/base/tf/pxrCLI11/README.md
|
||||
# Provides: bundled(cli11) = 2.3.1
|
||||
# Version from:
|
||||
# third_party/renderman/plugin/rmanArgsParser/pugixml/pugiconfig.hpp
|
||||
# third_party/renderman-26/plugin/rmanArgsParser/pugixml/pugiconfig.hpp
|
||||
# (header comment)
|
||||
# Provides: bundled(pugixml) = 1.9
|
||||
# Version from: pxr/base/js/rapidjson/rapidjson.h
|
||||
|
|
@ -385,7 +357,7 @@ Provides: bundled(cycles) = 4.5.0^20251210.0be21d4
|
|||
# Version from: pxr/base/tf/pxrTslRobinMap/robin_growth_policy.h
|
||||
# (PXR_TSL_RH_VERSION_{MAJOR,MINOR,PATCH})
|
||||
# Provides: bundled(robin-map) = 1.3.0
|
||||
# Version from pxr/imaging/plugin/hioOpenEXR/OpenEXR/deflate/libdeflate.h
|
||||
# Version from pxr/imaging/hio/OpenEXR/deflate/libdeflate.h
|
||||
# Provides: bundled(libdeflate) = 1.18
|
||||
# Version from pxr/imaging/plugin/hioAvif/AVIF/src/avif/avif.h
|
||||
# We actually have a post-release snapshot of libavif, because
|
||||
|
|
@ -400,8 +372,8 @@ Provides: bundled(cycles) = 4.5.0^20251210.0be21d4
|
|||
# https://chromium.googlesource.com/libyuv/libyuv and find the commit hash that
|
||||
# corresponds to a particular serial number.
|
||||
# LIBYUV_VERSION 1895 = commit a97746349b244efd54ab1eb0c0a7366717b33f39
|
||||
# Provides: bundled(libyuv) = 0^20240812.a977463
|
||||
# Version from pxr/imaging/plugin/hioAvif/config/aom_version.h
|
||||
# Provides: bundled(libyuv) = 0^20240812gita977463
|
||||
# Version from pxr/imaging/plugin/hioAvif/aom/config/aom_version.h
|
||||
# Provides: bundled(aom) = 3.0.0
|
||||
|
||||
%description libs
|
||||
|
|
@ -416,11 +388,6 @@ Requires: usd-libs%{?_isa} = %{version}-%{release}
|
|||
# Unbundled, and exposed in the API:
|
||||
Requires: cli11-devel cli11-static
|
||||
Requires: robin-map-devel robin-map-static
|
||||
# Needed by cmake config
|
||||
Requires: cmake(OpenSubdiv)
|
||||
%if %{with materialx}
|
||||
Requires: cmake(materialx)
|
||||
%endif
|
||||
|
||||
%description devel
|
||||
This package contains the C++ header files and symbolic links to the shared
|
||||
|
|
@ -437,8 +404,8 @@ BuildRequires: python3dist(jinja2)
|
|||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: python3dist(pyside6)
|
||||
BuildRequires: pyside6-tools
|
||||
BuildRequires: python3dist(pyopengl)
|
||||
%endif
|
||||
BuildRequires: python3dist(pyopengl)
|
||||
Requires: font(roboto)
|
||||
Requires: font(robotoblack)
|
||||
Requires: font(robotolight)
|
||||
|
|
@ -446,8 +413,8 @@ Requires: font(robotomono)
|
|||
Requires: python3dist(jinja2)
|
||||
%if %{with usdview}
|
||||
Requires: python3dist(pyside6)
|
||||
Requires: python3dist(pyopengl)
|
||||
%endif
|
||||
Requires: python3dist(pyopengl)
|
||||
|
||||
Requires: usd-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
|
|
@ -457,7 +424,10 @@ Requires: usd-libs%{?_isa} = %{version}-%{release}
|
|||
Python language bindings for the Universal Scene Description (USD) C++ API
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n OpenUSD-%{version}
|
||||
# The -S git is for applying
|
||||
# 0001-sdf-Guard-against-invalid-primChildren-in-crate-file.patch, which
|
||||
# includes binary diffs.
|
||||
%autosetup -p1 -n OpenUSD-%{version} -S git
|
||||
|
||||
# Convert NOTICE.txt from CRNL line encoding
|
||||
dos2unix NOTICE.txt
|
||||
|
|
@ -520,9 +490,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}" <<EOF
|
||||
#include <$(basename "${hdr}")>
|
||||
|
|
@ -545,7 +515,7 @@ namespace pxr_tsl = tsl;
|
|||
EOF
|
||||
done
|
||||
# Remove the bundled copy of libdeflate.
|
||||
rm -rv pxr/imaging/plugin/hioOpenEXR/OpenEXR/deflate/
|
||||
rm -rv pxr/imaging/hio/OpenEXR/deflate/
|
||||
# Remove the bundled copies of libavif, along with the associated libaom and
|
||||
# the libyuv that is in the libavif sources.
|
||||
rm -rv pxr/imaging/plugin/hioAvif/aom/ \
|
||||
|
|
@ -619,13 +589,13 @@ extra_flags="${extra_flags-} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1"
|
|||
-DPXR_BUILD_TESTS=%{expr:%{with test}?"ON":"OFF"} \
|
||||
-DPXR_BUILD_TUTORIALS=OFF \
|
||||
-DPXR_BUILD_USD_IMAGING=ON \
|
||||
-DPXR_BUILD_EXEC=ON \
|
||||
-DPXR_BUILD_USD_TOOLS=ON \
|
||||
-DPXR_BUILD_USDVIEW=%{expr:%{with usdview}?"ON":"OFF"} \
|
||||
\
|
||||
-DPXR_BUILD_ALEMBIC_PLUGIN=%{expr:%{with alembic}?"ON":"OFF"} \
|
||||
-DPXR_BUILD_DRACO_PLUGIN=%{expr:%{with draco}?"ON":"OFF"} \
|
||||
-DPXR_BUILD_EMBREE_PLUGIN=%{expr:%{with embree}?"ON":"OFF"} \
|
||||
-DPXR_BUILD_MATERIALX_PLUGIN=%{expr:%{with materialx}?"ON":"OFF"} \
|
||||
-DPXR_BUILD_OPENCOLORIO_PLUGIN=%{expr:%{with ocio}?"ON":"OFF"} \
|
||||
-DPXR_BUILD_OPENIMAGEIO_PLUGIN=%{expr:%{with oiio}?"ON":"OFF"} \
|
||||
-DPXR_BUILD_PRMAN_PLUGIN=OFF \
|
||||
|
|
@ -635,7 +605,6 @@ extra_flags="${extra_flags-} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1"
|
|||
-DPXR_ENABLE_PTEX_SUPPORT=%{expr:%{with ptex}?"ON":"OFF"} \
|
||||
-DPXR_ENABLE_OSL_SUPPORT=%{expr:%{with openshading}?"ON":"OFF"} \
|
||||
-DPXR_ENABLE_MALLOCHOOK_SUPPORT=OFF \
|
||||
-DPXR_ENABLE_MATERIALX_SUPPORT=%{expr:%{with materialx}?"ON":"OFF"} \
|
||||
-DPXR_ENABLE_PYTHON_SUPPORT=ON \
|
||||
\
|
||||
-DPXR_INSTALL_LOCATION="%{_libdir}/usd/plugin" \
|
||||
|
|
@ -654,10 +623,6 @@ extra_flags="${extra_flags-} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1"
|
|||
mkdir -p %{buildroot}%{python3_sitearch}
|
||||
mv %{buildroot}%{python3_sitelib}/* %{buildroot}%{python3_sitearch}
|
||||
|
||||
# Upstream may expect to use this as a script in development, but we install it
|
||||
# without executable permissions, so we remove the shebang.
|
||||
sed -r -i '1{/^#!/d}' '%{buildroot}%{python3_sitearch}/pxr/Usd/usdGenSchema.py'
|
||||
|
||||
%if %{with usdview}
|
||||
# Install a desktop icon for usdview
|
||||
desktop-file-install \
|
||||
|
|
@ -701,11 +666,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d
|
|||
%{_bindir}/hdGenSchema
|
||||
%{_bindir}/sdfdump
|
||||
%{_bindir}/sdffilter
|
||||
%if %{with materialx}
|
||||
%{_bindir}/usdBakeMaterialX
|
||||
%endif
|
||||
%{_bindir}/usdGenSchema
|
||||
%{_bindir}/usdInitSchema
|
||||
%{_bindir}/usdcat
|
||||
%{_bindir}/usdchecker
|
||||
%if %{with draco}
|
||||
|
|
@ -722,7 +683,6 @@ 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
|
||||
|
|
@ -733,11 +693,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.d
|
|||
%{_mandir}/man1/hdGenSchema.1*
|
||||
%{_mandir}/man1/sdfdump.1*
|
||||
%{_mandir}/man1/sdffilter.1*
|
||||
%if %{with materialx}
|
||||
%{_mandir}/man1/usdBakeMaterialX.1*
|
||||
%endif
|
||||
%{_mandir}/man1/usdGenSchema.1*
|
||||
%{_mandir}/man1/usdInitSchema.1*
|
||||
%{_mandir}/man1/usdcat.1*
|
||||
%{_mandir}/man1/usdchecker.1*
|
||||
%if %{with draco}
|
||||
|
|
@ -754,7 +710,6 @@ 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*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue