Compare commits

..

9 commits

Author SHA1 Message Date
Benjamin A. Beasley
8930f44c55 Update minimum stb_image versions
Ensure we have a fix for null pointer dereference bug
https://github.com/nothings/stb/issues/1452.
2023-02-26 07:56:56 -05:00
Benjamin A. Beasley
3c88eacb60 Fix patch to work with stb_image 2.28 2023-01-30 20:10:31 -05:00
Benjamin A. Beasley
fce9ae1632 Security fix for CVE-2022-28041
Rebuild with an appropriate minimum version of stb_image-devel.
2022-04-20 10:53:14 -04:00
Benjamin A. Beasley
de82e836fe Do not package pxrConfig.cmake (close RHBZ#2055414)
Since the pxrConfig.cmake is not correct for non-monolithic builds, and
monolithic builds are required for USD to be a Blender dependency, we at
least stop shipping the incorrect CMake file.
2022-04-03 07:00:02 -04:00
Benjamin A. Beasley
3d56d0ce14 Apply a patch that would be required to build the tests 2022-04-03 07:00:00 -04:00
Benjamin A. Beasley
76cf88ee24 Move bundled library virtual Provides to -libs 2022-04-03 06:59:59 -04:00
Benjamin A. Beasley
36ae4d8894 No need to explicitly disable in-source build on Fedora 2022-04-03 06:59:58 -04:00
Benjamin A. Beasley
fd0845aa6a Stop using jemalloc
Instead of using jemalloc as a workaround for malloc hooks removed in
glibc 2.34, use a patch to disable the hooks as is done upstream on
non-Linux platforms. This patch replaces a sed expression that
accomplished the same goal.
2022-04-03 06:59:53 -04:00
Benjamin A. Beasley
79f6abfb8b Partially backport bdfba188
Backport the spec style changes without changing the .so versioning patch
2022-04-03 06:59:35 -04:00
22 changed files with 4196 additions and 1576 deletions

22
.gitignore vendored
View file

@ -2,25 +2,3 @@
/usd-21.08.tar.gz
/usd-21.11.tar.gz
/usd-22.03.tar.gz
/usd-22.05.tar.gz
/usd-22.05a.tar.gz
/usd-22.05b.tar.gz
/usd-22.08.tar.gz
/usd-22.11.tar.gz
/usd-23.02.tar.gz
/usd-23.05.tar.gz
/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
/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

View file

@ -1,87 +0,0 @@
From ee4e9b30e14133e35c23821d3dc7aa93df354a38 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
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream was asked about .so versioning and setting SONAME properly and
seemed unprepared to handle the request:
https://github.com/PixarAnimationStudios/USD/issues/1259#issuecomment-657120216
A patch was offered:
https://github.com/PixarAnimationStudios/USD/issues/1387
but it was not sufficient for the general case, since (1) it only handled the
monolithic build, and (2) it derived the .so version from PXR_MAJOR_VERSION,
which is *not* reliably bumped on API or ABI changes, and currently is still
zero.
We will therefore probably need to keep doing downstream .so versioning for
the foreseeable future. Currently we are assuming that the ABI is likely to
change on every release (an appropriate assumption for a large C++ project
with no ABI stability policy), so we build the .so version from the project
version. Note that the “hidden” major version is zero, so this complies with
the “0.” prefix recommended in the packaging guidelines.
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_downstream_so_name_versioning
A known defect of this patch is that it causes the hdTiny.so example plugin
to be versioned as well, which is undesired. This is not a serious problem
because we do not want to package the built plugin anyway. (It should not be
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(+)
diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake
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 "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}")
+
+set(PXR_DOWNSTREAM_SOVERSION "${PXR_MAJOR_VERSION}.${PXR_MINOR_VERSION}.${PXR_PATCH_VERSION}"
+ CACHE
+ STRING
+ "Downstream shared object version"
+)
diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake
index cddb4e095..5e4b4603a 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
IMPORT_PREFIX "${args_PREFIX}"
+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION}
PREFIX "${args_PREFIX}"
SUFFIX "${args_SUFFIX}"
)
diff --git a/cmake/macros/Public.cmake b/cmake/macros/Public.cmake
index 5f6a5456b..553b645ec 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)
PREFIX "${libPrefix}"
IMPORT_PREFIX "${libPrefix}"
OUTPUT_NAME ${libName}
+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION}
)
_get_install_dir("lib" libInstallPrefix)
install(
--
2.55.0

View file

@ -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

View file

@ -1,46 +0,0 @@
From 2d851f23e912d8312f2ea6818963150a8c484138 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
---
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 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)
endfunction()
+find_library(double-conversion_LIBRARY NAMES double-conversion REQUIRED)
+
pxr_library(tf
LIBRARIES
arch
${WINLIBS}
TBB::tbb
+ ${double-conversion_LIBRARY}
PUBLIC_CLASSES
anyUniquePtr
@@ -276,14 +279,6 @@ pxr_library(tf
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
PYMODULE_CPPFILES
--
2.55.0

View file

@ -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

View file

@ -1,44 +0,0 @@
From 9fd6089b3e95bb882199ee359fbba83f7c4bb410 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(-)
diff --git a/pxr/base/tf/CMakeLists.txt b/pxr/base/tf/CMakeLists.txt
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)
endfunction()
find_library(double-conversion_LIBRARY NAMES double-conversion REQUIRED)
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(LZ4 REQUIRED liblz4)
pxr_library(tf
LIBRARIES
@@ -113,6 +115,10 @@ pxr_library(tf
${WINLIBS}
TBB::tbb
${double-conversion_LIBRARY}
+ ${LZ4_LIBRARIES}
+
+ INCLUDE_DIRS
+ ${LZ4_INCLUDE_DIRS}
PUBLIC_CLASSES
anyUniquePtr
@@ -279,7 +285,6 @@ pxr_library(tf
CPPFILES
initConfig.cpp
- pxrLZ4/lz4.cpp
PYMODULE_CPPFILES
module.cpp
--
2.55.0

View file

@ -1,39 +0,0 @@
From 73637a9bf67b3f7afe5070e5d56b07524e14a073 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 +++---
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
@@ -1,6 +1,8 @@
set(PXR_PREFIX "")
set(PXR_PACKAGE rmanArgsParser)
+find_library(pugixml_LIBRARY NAMES pugixml REQUIRED)
+
pxr_plugin(rmanArgsParser
LIBRARIES
arch
@@ -9,12 +11,10 @@ pxr_plugin(rmanArgsParser
vt
ar
sdr
+ ${pugixml_LIBRARY}
PRIVATE_CLASSES
rmanArgsParser
-
- CPPFILES
- pugixml/pugixml.cpp
PRIVATE_HEADERS
api.h
--
2.55.0

View file

@ -1,63 +0,0 @@
From f331a476a66e41e93d83b7a2e438d3ee7f12ea32 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(-)
diff --git a/pxr/base/js/CMakeLists.txt b/pxr/base/js/CMakeLists.txt
index 8cbda8c52..ec8f3c249 100644
--- a/pxr/base/js/CMakeLists.txt
+++ b/pxr/base/js/CMakeLists.txt
@@ -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
- rapidjson/error/en.h
- rapidjson/error/error.h
- rapidjson/filereadstream.h
- 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
- 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/uri.h
- rapidjson/writer.h
-
DOXYGEN_FILES
overview.dox
)
--
2.55.0

View file

@ -1,76 +0,0 @@
From a537b44edabe942380d2e87ea7069bdf32b93dbc 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 ------------
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
--- 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,6 +14,10 @@ pxr_library(hio
trace
ar
hf
+ ${DEFLATE_LIBRARIES}
+
+ INCLUDE_DIRS
+ ${DEFLATE_INCLUDE_DIRS}
PUBLIC_CLASSES
fieldTextureData
diff --git a/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c b/pxr/imaging/plugin/hioOpenEXR/OpenEXR/OpenEXRCore/compression.c
index a672e833b..1d2eaea56 100644
--- 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"
-// pxr #include <libdeflate.h>
-#include "../deflate/libdeflate.h"
+#include <libdeflate.h>
#if ( \
LIBDEFLATE_VERSION_MAJOR > 1 || \
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/plugin/hioOpenEXR/OpenEXR/OpenEXRCoreUnity.h
+++ b/pxr/imaging/plugin/hioOpenEXR/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.55.0

View file

@ -1,241 +0,0 @@
From f2a3615238a691e11a4029c33498e7f21a34fff9 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(-)
diff --git a/pxr/imaging/plugin/hioAvif/AVIFImage.cpp b/pxr/imaging/plugin/hioAvif/AVIFImage.cpp
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
#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
diff --git a/pxr/imaging/plugin/hioAvif/CMakeLists.txt b/pxr/imaging/plugin/hioAvif/CMakeLists.txt
index 1ac2683f6..7d583c137 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,197 +11,12 @@ pxr_plugin(hioAvif
gf
hio
tf
+ ${AVIF_LIBRARIES}
- 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_external_partition.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
- 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
+ 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
- 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.55.0

View file

@ -0,0 +1,65 @@
From 04dd02515d1ee05e26629ba540afc53986ae60e0 Mon Sep 17 00:00:00 2001
From: Bastien Montagne <bastien@blender.org>
Date: Fri, 18 Feb 2022 11:05:34 +0100
Subject: [PATCH] Fix compilation on GCC11.
GCC11 removed some 'implicit includes', see
https://www.gnu.org/software/gcc/gcc-11/porting_to.html#header-dep-changes
for reference.
---
pxr/base/js/testenv/testJsWriter.cpp | 1 +
pxr/base/tf/testenv/weakPtr.cpp | 1 +
pxr/base/work/singularTask.h | 2 +-
pxr/usd/sdr/shaderMetadataHelpers.h | 2 ++
4 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/pxr/base/js/testenv/testJsWriter.cpp b/pxr/base/js/testenv/testJsWriter.cpp
index cd897b8f4c..bd2a1788a0 100644
--- a/pxr/base/js/testenv/testJsWriter.cpp
+++ b/pxr/base/js/testenv/testJsWriter.cpp
@@ -29,6 +29,7 @@
#include "pxr/base/tf/diagnostic.h"
#include <fstream>
+#include <limits>
PXR_NAMESPACE_USING_DIRECTIVE
diff --git a/pxr/base/tf/testenv/weakPtr.cpp b/pxr/base/tf/testenv/weakPtr.cpp
index 6950d502d3..53e55d48b7 100644
--- a/pxr/base/tf/testenv/weakPtr.cpp
+++ b/pxr/base/tf/testenv/weakPtr.cpp
@@ -37,6 +37,7 @@
#include <map>
#include <mutex>
#include <string>
+#include <thread>
PXR_NAMESPACE_USING_DIRECTIVE
diff --git a/pxr/base/work/singularTask.h b/pxr/base/work/singularTask.h
index 0c7914d0b7..bc82bbf748 100644
--- a/pxr/base/work/singularTask.h
+++ b/pxr/base/work/singularTask.h
@@ -108,7 +108,7 @@ class WorkSingularTask
// case we go again to ensure the task can do whatever it
// was awakened to do. Once we successfully take the count
// to zero, we stop.
- size_t old = count;
+ std::size_t old = count;
do { _fn(); } while (
!count.compare_exchange_strong(old, 0));
});
diff --git a/pxr/usd/sdr/shaderMetadataHelpers.h b/pxr/usd/sdr/shaderMetadataHelpers.h
index 1402a27e71..0ed3274a94 100644
--- a/pxr/usd/sdr/shaderMetadataHelpers.h
+++ b/pxr/usd/sdr/shaderMetadataHelpers.h
@@ -32,6 +32,8 @@
#include "pxr/base/tf/token.h"
#include "pxr/usd/sdr/declare.h"
+#include <limits>
+
PXR_NAMESPACE_OPEN_SCOPE
/// \namespace ShaderMetadataHelpers

54
1676.patch Normal file
View file

@ -0,0 +1,54 @@
From 0f6c20fa64a6b2e84cd966aa210570576fe1fcc9 Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
Date: Sat, 6 Nov 2021 22:52:12 -0400
Subject: [PATCH] Fix #1675
Stop accidentally treating a message as a printf-style format string in
three places.
See details in issue #1675.
---
pxr/imaging/hd/dirtyList.cpp | 2 +-
pxr/imaging/hd/renderIndex.cpp | 2 +-
pxr/imaging/hdSt/drawItemsCache.cpp | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/pxr/imaging/hd/dirtyList.cpp b/pxr/imaging/hd/dirtyList.cpp
index 7fc798c336..1bd2600f6c 100644
--- a/pxr/imaging/hd/dirtyList.cpp
+++ b/pxr/imaging/hd/dirtyList.cpp
@@ -191,7 +191,7 @@ HdDirtyList::UpdateRenderTagsAndReprSelectors(
std::stringstream ss;
ss << "Resetting tracked reprs in dirty list from "
<< _trackedReprs << " to " << reprs << "\n";
- TfDebug::Helper().Msg(ss.str().c_str());
+ TfDebug::Helper().Msg(ss.str());
}
_trackedReprs = reprs;
trackedReprsChanged = true;
diff --git a/pxr/imaging/hd/renderIndex.cpp b/pxr/imaging/hd/renderIndex.cpp
index 1503cc6988..b251c970b2 100644
--- a/pxr/imaging/hd/renderIndex.cpp
+++ b/pxr/imaging/hd/renderIndex.cpp
@@ -1412,7 +1412,7 @@ HdRenderIndex::SyncAll(HdTaskSharedPtrVector *tasks,
<< ratioNonVarying * 100.0f << "% ("
<< numNonVarying << " / " << numDirtyRprims << ") \n";
- TfDebug::Helper().Msg(ss.str().c_str());
+ TfDebug::Helper().Msg(ss.str());
}
}
}
diff --git a/pxr/imaging/hdSt/drawItemsCache.cpp b/pxr/imaging/hdSt/drawItemsCache.cpp
index 1be6aec721..61bc6794e5 100644
--- a/pxr/imaging/hdSt/drawItemsCache.cpp
+++ b/pxr/imaging/hdSt/drawItemsCache.cpp
@@ -114,7 +114,7 @@ HdSt_DrawItemsCache::GetDrawItems(
<< collection << ", render tags " << renderTags << "\n";
}
- TfDebug::Helper().Msg(ss.str().c_str());
+ TfDebug::Helper().Msg(ss.str());
}
if (cacheMiss || staleEntry) {

View file

@ -1,83 +0,0 @@
From 3e51fb244dd264b09179999d29dc7c5afd7e71e3 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 +++-
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;

File diff suppressed because it is too large Load diff

11
USD-20.05-soversion.patch Normal file
View file

@ -0,0 +1,11 @@
diff -up USD-20.05/cmake/macros/Public.cmake.sover USD-20.05/cmake/macros/Public.cmake
--- USD-20.05/cmake/macros/Public.cmake.sover 2020-09-16 16:40:05.489056637 +0200
+++ USD-20.05/cmake/macros/Public.cmake 2020-09-16 16:38:43.784595457 +0200
@@ -926,6 +926,7 @@ function(pxr_toplevel_prologue)
FOLDER "${folder}"
PREFIX "${PXR_LIB_PREFIX}"
IMPORT_PREFIX "${PXR_LIB_PREFIX}"
+ SOVERSION ${PXR_MAJOR_VERSION}
)
_get_install_dir("lib" libInstallPrefix)
install(

186
USD-21.08-OpenEXR3.patch Normal file
View file

@ -0,0 +1,186 @@
diff -Naur USD-21.08-original/cmake/defaults/Packages.cmake USD-21.08/cmake/defaults/Packages.cmake
--- USD-21.08-original/cmake/defaults/Packages.cmake 2021-07-15 02:00:41.000000000 -0400
+++ USD-21.08/cmake/defaults/Packages.cmake 2021-08-10 10:41:05.317624337 -0400
@@ -188,6 +188,7 @@
# --OpenImageIO
if (PXR_BUILD_OPENIMAGEIO_PLUGIN)
find_package(OpenEXR REQUIRED)
+ find_package(Imath REQUIRED)
find_package(OpenImageIO REQUIRED)
add_definitions(-DPXR_OIIO_PLUGIN_ENABLED)
endif()
@@ -254,7 +255,7 @@
endif()
# --OpenVDB
if (PXR_ENABLE_OPENVDB_SUPPORT)
- find_package(OpenEXR REQUIRED)
+ find_package(Imath REQUIRED)
find_package(OpenVDB REQUIRED)
add_definitions(-DPXR_OPENVDB_SUPPORT_ENABLED)
endif()
@@ -283,7 +284,7 @@
if (PXR_BUILD_ALEMBIC_PLUGIN)
find_package(Alembic REQUIRED)
- find_package(OpenEXR REQUIRED)
+ find_package(Imath REQUIRED)
if (PXR_ENABLE_HDF5_SUPPORT)
find_package(HDF5 REQUIRED
COMPONENTS
@@ -305,6 +306,7 @@
if(PXR_ENABLE_OSL_SUPPORT)
find_package(OSL REQUIRED)
find_package(OpenEXR REQUIRED)
+ find_package(Imath REQUIRED)
add_definitions(-DPXR_OSL_SUPPORT_ENABLED)
endif()
diff -Naur USD-21.08-original/cmake/modules/FindOpenEXR.cmake USD-21.08/cmake/modules/FindOpenEXR.cmake
--- USD-21.08-original/cmake/modules/FindOpenEXR.cmake 2021-07-15 02:00:41.000000000 -0400
+++ USD-21.08/cmake/modules/FindOpenEXR.cmake 1969-12-31 19:00:00.000000000 -0500
@@ -1,101 +0,0 @@
-#
-# Copyright 2016 Pixar
-#
-# Licensed under the Apache License, Version 2.0 (the "Apache License")
-# with the following modification; you may not use this file except in
-# compliance with the Apache License and the following modification to it:
-# Section 6. Trademarks. is deleted and replaced with:
-#
-# 6. Trademarks. This License does not grant permission to use the trade
-# names, trademarks, service marks, or product names of the Licensor
-# and its affiliates, except as required to comply with Section 4(c) of
-# the License and to reproduce the content of the NOTICE file.
-#
-# You may obtain a copy of the Apache License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the Apache License with the above modification is
-# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the Apache License for the specific
-# language governing permissions and limitations under the Apache License.
-#
-
-find_path(OPENEXR_INCLUDE_DIR
- OpenEXR/half.h
-HINTS
- "${OPENEXR_LOCATION}"
- "$ENV{OPENEXR_LOCATION}"
-PATH_SUFFIXES
- include/
-DOC
- "OpenEXR headers path"
-)
-
-if(OPENEXR_INCLUDE_DIR)
- set(openexr_config_file "${OPENEXR_INCLUDE_DIR}/OpenEXR/OpenEXRConfig.h")
- if(EXISTS ${openexr_config_file})
- file(STRINGS
- ${openexr_config_file}
- TMP
- REGEX "#define OPENEXR_VERSION_STRING.*$")
- string(REGEX MATCHALL "[0-9.]+" OPENEXR_VERSION ${TMP})
-
- file(STRINGS
- ${openexr_config_file}
- TMP
- REGEX "#define OPENEXR_VERSION_MAJOR.*$")
- string(REGEX MATCHALL "[0-9]" OPENEXR_MAJOR_VERSION ${TMP})
-
- file(STRINGS
- ${openexr_config_file}
- TMP
- REGEX "#define OPENEXR_VERSION_MINOR.*$")
- string(REGEX MATCHALL "[0-9]" OPENEXR_MINOR_VERSION ${TMP})
- endif()
-endif()
-
-foreach(OPENEXR_LIB
- Half
- Iex
- Imath
- IlmImf
- IlmThread
- IlmImfUtil
- IexMath
- )
-
- # OpenEXR libraries may be suffixed with the version number, so we search
- # using both versioned and unversioned names.
- find_library(OPENEXR_${OPENEXR_LIB}_LIBRARY
- NAMES
- ${OPENEXR_LIB}-${OPENEXR_MAJOR_VERSION}_${OPENEXR_MINOR_VERSION}
- ${OPENEXR_LIB}
- HINTS
- "${OPENEXR_LOCATION}"
- "$ENV{OPENEXR_LOCATION}"
- PATH_SUFFIXES
- lib/
- DOC
- "OPENEXR's ${OPENEXR_LIB} library path"
- )
-
- if(OPENEXR_${OPENEXR_LIB}_LIBRARY)
- list(APPEND OPENEXR_LIBRARIES ${OPENEXR_${OPENEXR_LIB}_LIBRARY})
- endif()
-endforeach(OPENEXR_LIB)
-
-# So #include <half.h> works
-list(APPEND OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR})
-list(APPEND OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR}/OpenEXR)
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(OpenEXR
- REQUIRED_VARS
- OPENEXR_INCLUDE_DIRS
- OPENEXR_LIBRARIES
- VERSION_VAR
- OPENEXR_VERSION
-)
-
diff -Naur USD-21.08-original/pxr/imaging/hioOpenVDB/CMakeLists.txt USD-21.08/pxr/imaging/hioOpenVDB/CMakeLists.txt
--- USD-21.08-original/pxr/imaging/hioOpenVDB/CMakeLists.txt 2021-07-15 02:00:41.000000000 -0400
+++ USD-21.08/pxr/imaging/hioOpenVDB/CMakeLists.txt 2021-08-10 10:39:27.478207730 -0400
@@ -14,7 +14,7 @@
hio
tf
usd
- ${OPENEXR_Half_LIBRARY}
+ ${IMATH_LIBRARIES}
${OPENVDB_LIBRARY}
INCLUDE_DIRS
diff -Naur USD-21.08-original/pxr/imaging/plugin/hioOiio/CMakeLists.txt USD-21.08/pxr/imaging/plugin/hioOiio/CMakeLists.txt
--- USD-21.08-original/pxr/imaging/plugin/hioOiio/CMakeLists.txt 2021-07-15 02:00:41.000000000 -0400
+++ USD-21.08/pxr/imaging/plugin/hioOiio/CMakeLists.txt 2021-08-10 10:39:31.578183423 -0400
@@ -17,6 +17,7 @@
tf
${OIIO_LIBRARIES}
${OPENEXR_LIBRARIES}
+ ${IMATH_LIBRARIES}
INCLUDE_DIRS
${OIIO_INCLUDE_DIRS}
diff -Naur USD-21.08-original/pxr/usd/plugin/usdAbc/CMakeLists.txt USD-21.08/pxr/usd/plugin/usdAbc/CMakeLists.txt
--- USD-21.08-original/pxr/usd/plugin/usdAbc/CMakeLists.txt 2021-07-15 02:00:41.000000000 -0400
+++ USD-21.08/pxr/usd/plugin/usdAbc/CMakeLists.txt 2021-08-10 11:55:33.840880041 -0400
@@ -23,15 +23,12 @@
usd
usdGeom
${ALEMBIC_LIBRARIES}
- ${OPENEXR_Half_LIBRARY}
- ${OPENEXR_Imath_LIBRARY}
- ${OPENEXR_Iex_LIBRARY}
- ${OPENEXR_IexMath_LIBRARY}
+ ${IMATH_LIBRARIES}
${optionalLibs}
INCLUDE_DIRS
${ALEMBIC_INCLUDE_DIR}
- ${OPENEXR_INCLUDE_DIRS}
+ ${IMATH_INCLUDE_DIRS}
${optionalIncludeDirs}
PRIVATE_CLASSES

View file

@ -0,0 +1,23 @@
diff -Naur USD-21.11-original/pxr/base/arch/mallocHook.cpp USD-21.11/pxr/base/arch/mallocHook.cpp
--- USD-21.11-original/pxr/base/arch/mallocHook.cpp 2021-11-01 13:10:51.000000000 -0400
+++ USD-21.11/pxr/base/arch/mallocHook.cpp 2022-03-31 17:26:22.176739670 -0400
@@ -177,7 +177,7 @@
_underlyingMemalignFunc || _underlyingFreeFunc;
}
-#if defined(ARCH_OS_LINUX)
+#if 0
template <typename T>
static bool _GetSymbol(T* addr, const char* name, string* errMsg) {
if (void* symbol = dlsym(RTLD_DEFAULT, name)) {
@@ -241,8 +241,8 @@
ARCH_UNUSED_ARG void (*freeWrapper)(void*, const void*),
string* errMsg)
{
-#if !defined(ARCH_OS_LINUX)
- *errMsg = "ArchMallocHook functionality not implemented for non-linux systems";
+#if 1
+ *errMsg = "ArchMallocHook functionality not implemented";
return false;
#else
if (IsInitialized()) {

View file

@ -1,92 +0,0 @@
* Sat Oct 08 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.05b-11
- Fix rpmautospec changelog problems
* Fri Oct 07 2022 Richard Shaw <hobbes1069@gmail.com> 22.05b-10
- Rebuild for OpenImageIO 2.4.4.2.
* Wed Aug 03 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.05b-9
- Revert "Update to 22.08 (.so version bump); close RHBZ#2110024"
* Tue Aug 02 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.08-1
- Update to 22.08 (.so version bump); close RHBZ#2110024
- The monolithic library is also renamed from libusd_usd_ms.so to
libusd_ms.so.
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> 22.05b-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jul 06 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.05b-7
- Re-enable usdview now that RHBZ#2025599 is fixed
* Mon Jul 04 2022 Luya Tshimbalanga <luya@fedoraproject.org> 22.05b-6
- Rebuild for embree 3.13.3
* Thu Jun 30 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.05b-5
- Updated (cleaner) patch in upstream PR#1928
* Tue Jun 28 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.05b-4
- Updated patch for upstream PR#1928
* Tue Jun 28 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.05b-3
- Temporarily disable usdview (close RHBZ#2099184)
- It can be re-enabled when pyside2 is ready for Python 3.11 (RHBZ#2025599)
* Tue Jun 28 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.05b-2
- Fix a Python 3.11 incompatibility
- Apply upstream PR#1928 “Do not access PyFrameObject fields directly on
Python 3.10+”
* Wed Jun 15 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.05b-1
- Update to 22.05b (close RHBZ#2097211)
* Fri May 27 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.05a-1
- Update to 22.05a (close RHBZ#2078041)
- For working around deprecated/removed glibc malloc hooks, switch to
upstream PR#1830, which has similar effect to our pre-existing patch, but
is a little tidier
- Move usdview/testusdview binaries to python3-usd subpackage
- New downstream .so version 0.22.5
* Wed May 04 2022 Thomas Rodgers <trodgers@redhat.com> 22.03-9
- Rebuilt for Boost 1.78
* Wed Apr 20 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.03-8
- Security fix for CVE-2022-28041
* Fri Apr 01 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.03-7
- Do not package pxrConfig.cmake (close RHBZ#2055414)
* Fri Apr 01 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.03-6
- Apply a patch that would be required to build the tests
* Fri Apr 01 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.03-5
- Move bundled library virtual Provides to -libs
* Fri Apr 01 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.03-4
- No need to explicitly disable in-source build on Fedora
* Fri Apr 01 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.03-3
- Stop using jemalloc
* Wed Mar 30 2022 Benjamin A. Beasley <code@musicinmybrain.net> 22.03-2
- Change downstream .so version scheme
- Use the entire version number in the .so version to reflect the lack of
an upstream ABI stability policy.
- Use a separate .so version macro in the spec file rather than deducing it
from the package version. Having to manually change the .so version macro
on updates is a valuable reminder of the need to rebuild dependent
packages.
- Also support versioning shared libraries in non-monolithic builds.
* Mon Feb 21 2022 Luya Tshimbalanga <luya@fedoraproject.org> 22.03-1
- New upstream release 22.03 This update adds workaround removing
depreciated glibc mallocHock
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> 21.11-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sun Nov 28 2021 Mamoru TASAKA <mtasaka@fedoraproject.org> 21.11-4
- empty commit to fix upgrade path from F35
* Sat Nov 13 2021 Luya Tshimbalanga <luya@fedoraproject.org> 21.11-3
- RPMAUTOSPEC: unresolvable merge

View file

@ -1,7 +1,7 @@
[Desktop Entry]
Name=USD view
GenericName=Universal Scene Description Viewer
Comment=Visualize USD files
Comment=Open .cbr & .cbz files
Exec=usdview
Icon=applications-graphics
Terminal=false

View file

@ -1 +1 @@
SHA512 (OpenUSD-26.08.tar.gz) = 82f7bb4f77b295be79cd36f591f242276d36c0d589b0fca383344c27e70daf7e29151bf587528bb2fc2b2a8b974387a253993ace3caf5f79ae70f9ebbc71cf1a
SHA512 (usd-22.03.tar.gz) = eb0d789b5e8db611f69ed61894a00f9e9131feff26c056eb9617f52a470b4477108013a0485b7f01c84b8a31a463149a2d511e6d0c8994e3377fd59b0719d031

155
stb_image.patch Normal file
View file

@ -0,0 +1,155 @@
--- stb/stb_image.h 2021-09-16 11:52:38.284782000 -0700k
+++ stb_image.h 2021-09-16 13:45:48.159770000 -0700
@@ -488,14 +488,14 @@
STBIDEF void stbi_image_free (void *retval_from_stbi_load);
// get image dimensions & components without fully decoding
-STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp);
-STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp);
+STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, float *gamma);
+STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, float *gamma);
STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len);
STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user);
#ifndef STBI_NO_STDIO
-STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp);
-STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp);
+STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp, float *gamma);
+STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp, float *gamma);
STBIDEF int stbi_is_16_bit (char const *filename);
STBIDEF int stbi_is_16_bit_from_file(FILE *f);
#endif
@@ -911,7 +911,7 @@
#ifndef STBI_NO_PNG
static int stbi__png_test(stbi__context *s);
static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
-static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp);
+static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp, float *gamma);
static int stbi__png_is16(stbi__context *s);
#endif
@@ -4554,6 +4554,7 @@
stbi__context *s;
stbi_uc *idata, *expanded, *out;
int depth;
+ float gamma = 0;
} stbi__png;
@@ -5112,6 +5113,13 @@
break;
}
+ case STBI__PNG_TYPE('g','A','M','A'): {
+ if (first) return stbi__err("first not IHDR", "Corrupt PNG");
+ if (4 != c.length) return stbi__err("invalid gAMA","Corrupt PNG");
+ z->gamma = stbi__get32be(s) / 100000.0f;
+ break;
+ }
+
case STBI__PNG_TYPE('I','D','A','T'): {
if (first) return stbi__err("first not IHDR", "Corrupt PNG");
if (pal_img_n && !pal_len) return stbi__err("no PLTE","Corrupt PNG");
@@ -5243,7 +5251,7 @@
return r;
}
-static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp)
+static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp, float *gamma)
{
if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) {
stbi__rewind( p->s );
@@ -5252,21 +5260,22 @@
if (x) *x = p->s->img_x;
if (y) *y = p->s->img_y;
if (comp) *comp = p->s->img_n;
+ if (gamma) *gamma = p->gamma;
return 1;
}
-static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp)
+static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp, float *gamma)
{
stbi__png p;
p.s = s;
- return stbi__png_info_raw(&p, x, y, comp);
+ return stbi__png_info_raw(&p, x, y, comp, gamma);
}
static int stbi__png_is16(stbi__context *s)
{
stbi__png p;
p.s = s;
- if (!stbi__png_info_raw(&p, NULL, NULL, NULL))
+ if (!stbi__png_info_raw(&p, NULL, NULL, NULL, NULL))
return 0;
if (p.depth != 16) {
stbi__rewind(p.s);
@@ -7538,14 +7547,14 @@
}
#endif
-static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp)
+static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp, float *gamma)
{
#ifndef STBI_NO_JPEG
if (stbi__jpeg_info(s, x, y, comp)) return 1;
#endif
#ifndef STBI_NO_PNG
- if (stbi__png_info(s, x, y, comp)) return 1;
+ if (stbi__png_info(s, x, y, comp, gamma)) return 1;
#endif
#ifndef STBI_NO_GIF
@@ -7597,23 +7606,23 @@
}
#ifndef STBI_NO_STDIO
-STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp)
+STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp, float *gamma)
{
FILE *f = stbi__fopen(filename, "rb");
int result;
if (!f) return stbi__err("can't fopen", "Unable to open file");
- result = stbi_info_from_file(f, x, y, comp);
+ result = stbi_info_from_file(f, x, y, comp, gamma);
fclose(f);
return result;
}
-STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp)
+STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp, float *gamma)
{
int r;
stbi__context s;
long pos = ftell(f);
stbi__start_file(&s, f);
- r = stbi__info_main(&s,x,y,comp);
+ r = stbi__info_main(&s,x,y,comp, gamma);
fseek(f,pos,SEEK_SET);
return r;
}
@@ -7640,18 +7649,18 @@
}
#endif // !STBI_NO_STDIO
-STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp)
+STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, float *gamma)
{
stbi__context s;
stbi__start_mem(&s,buffer,len);
- return stbi__info_main(&s,x,y,comp);
+ return stbi__info_main(&s,x,y,comp, gamma);
}
-STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp)
+STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp, float *gamma)
{
stbi__context s;
stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user);
- return stbi__info_main(&s,x,y,comp);
+ return stbi__info_main(&s,x,y,comp, gamma);
}
STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len)

842
usd.spec

File diff suppressed because it is too large Load diff