## START: Set by rpmautospec ## (rpmautospec version 0.7.3) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 3; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec # We hard-code the ABI version here, even though it can be derived from the # package version, as a reminder of the need to rebuild dependent packages on # every update. See additional notes near the downstream ABI versioning patch. # It should be 0.MAJOR.MINOR without leading zeros, e.g. 22.03 → 0.22.3. %global downstream_so_version 0.24.11 %bcond alembic 1 %bcond draco 1 %bcond embree 1 %bcond jemalloc 0 # Not yet packaged: https://github.com/AcademySoftwareFoundation/MaterialX # https://bugzilla.redhat.com/show_bug.cgi?id=2262694 %bcond materialx 0 # Default "UNIX Makefiles" backend for CMake would also work fine; ninja is a # bit faster. We conditionalize it just in case there are backend-specific # issues in the future. %bcond ninja 1 %bcond openshading 1 %bcond openvdb 1 %bcond ocio 1 %bcond oiio 1 %bcond ptex 1 %bcond usdview 1 # TODO: Figure out how to re-enable the tests. Currently these want to install # into /usr/tests, and there are issues with the launchers finding the # command-line tools in the buildroot. %bcond test 0 Name: usd Version: 24.11 Release: %autorelease Summary: 3D VFX pipeline interchange file format # The entire source is Pixar except: # # Apache-2.0: # - pxr/imaging/hgiVulkan/spirv_reflect.{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/hio/OpenEXR/OpenEXRCore/ # - pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/ # BSD-2-Clause: # - pxr/base/tf/pxrLZ4/ (removed in %%prep) # - pxr/imaging/plugin/hioAvif/AVIF/, except # pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/; # pxr/imaging/plugin/hioAvif/AVIF/src/avif_obu.c has a different copyright # - pxr/imaging/plugin/hioAvif/aom/ # BSL-1.0: # - pxr/external/boost/ # MIT: # - docs/doxygen/doxygen-awesome-css/ (removed in %%prep) # - pxr/base/js/rapidjson/, except pxr/base/js/rapidjson/msinttypes/ (both # removed in %%prep) # - pxr/base/pegtl/ # - pxr/base/tf/pxrTslRobinMap/ # - pxr/imaging/garch/khrplatform.h # - pxr/imaging/hgiVulkan/vk_mem_alloc.h # - 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-26/plugin/hdPrman/virtualStructConditionalGrammar.tab.{cpp,h} # # Additionally, the following would be listed above but are removed in %%prep: # # Apache-2.0: # - pxr/usdImaging/usdviewq/fonts/Roboto_Mono/ # - pxr/usdImaging/usdviewq/fonts/Roboto/ # MIT: # - docs/doxygen/doxygen-awesome-css/ (except doxygen-awesome-darkmode-toggle.js) # MIT AND Apache-2.0: # - docs/doxygen/doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js # # (Certain build system files are also under licenses other than Apache-2.0, but # do not contribute their license terms to the built RPMs.) # # Note that the license assigned the SPDX identifier Pixar was later officially # named Tomorrow Open Source Technology License 1.0, TOST-1.0, with no change # to its terms. License: %{shrink: Pixar AND Apache-2.0 AND BSD-3-Clause AND BSD-2-Clause AND BSL-1.0 AND MIT AND (MIT OR Unlicense) AND (Pixar AND GPL-3.0-or-later WITH Bison-exception-2.2) } URL: http://www.openusd.org/ %global forgeurl https://github.com/PixarAnimationStudios/OpenUSD Source0: %{forgeurl}/archive/v%{version}/OpenUSD-%{version}.tar.gz Source1: org.openusd.usdview.desktop # Latest stb_image.patch that applies cleanly against 2.27: # %%{forgeurl}/raw/8f9bb9563980b41e7695148b63bf09f7abd38a41/pxr/imaging/hio/stb/stb_image.patch # We treat this as a source file because it is applied separately during # unbundling. It has been hand-edited to apply to 2.28, where # stbi__unpremultiply_on_load_thread is already renamed to # stbi_set_unpremultiply_on_load_thread. Source2: stb_image.patch # Downstream-only: add an SONAME version # # 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.) Patch: 0001-Downstream-only-add-an-SONAME-version.patch # Port to Embree 4.x # https://github.com/PixarAnimationStudios/OpenUSD/pull/2266 # See also: # hdEmbree: add support for building against embree4 # https://github.com/PixarAnimationStudios/USD/pull/2266 Patch: %{forgeurl}/pull/2266.patch # Downstream-only: use the system double-conversion library Patch: 0001-Downstream-only-use-the-system-double-conversion-lib.patch # Downstream-only: use the system lz4 library Patch: 0002-Downstream-only-use-the-system-lz4-library.patch # Downstream-only: use the system pugixml library Patch: 0003-Downstream-only-use-the-system-pugixml-library.patch # Downstream-only: use the system rapidjson library Patch: 0004-Downstream-only-use-the-system-rapidjson-library.patch # Downstream-only: use the system libdeflate library Patch: 0005-Downstream-only-use-the-system-libdeflate.patch # Downstream-only: use the system libavif library Patch: 0006-Downstream-only-use-the-system-libavif.patch # work: account for task_group_base interface change in oneTBB 2022.0.0 # https://github.com/PixarAnimationStudios/OpenUSD/pull/3392 Patch: %{forgeurl}/pull/3392.patch # Base BuildRequires: gcc-c++ BuildRequires: cmake %if %{with ninja} BuildRequires: ninja-build %endif BuildRequires: dos2unix BuildRequires: help2man BuildRequires: pkgconfig(blosc) BuildRequires: pkgconfig(dri) BuildRequires: hdf5-devel BuildRequires: opensubdiv-devel >= 3.6.0 BuildRequires: pkgconfig(tbb) # Unbundled: BuildRequires: cmake(double-conversion) BuildRequires: pkgconfig(liblz4) BuildRequires: cli11-devel cli11-static BuildRequires: cmake(pugixml) BuildRequires: rapidjson-devel rapidjson-static BuildRequires: robin-map-devel robin-map-static BuildRequires: pkgconfig(libdeflate) # Unbundling this means we also use external versions of libaom and libyuv. BuildRequires: pkgconfig(libavif) BuildRequires: cmake(Imath) >= 3.0 %if %{with alembic} BuildRequires: cmake(Alembic) %endif %if %{with draco} BuildRequires: draco-devel %endif %if %{with embree} BuildRequires: embree-devel %endif %if %{with jemalloc} BuildRequires: pkgconfig(jemalloc) %endif %if %{with ocio} BuildRequires: cmake(OpenColorIO) %endif %if %{with oiio} BuildRequires: cmake(OpenImageIO) %endif %if %{with openshading} BuildRequires: openshadinglanguage BuildRequires: pkgconfig(oslexec) %endif %if %{with openvdb} BuildRequires: openvdb-devel %endif %if %{with ptex} BuildRequires: pkgconfig(ptex) %endif # Header-only library: -static is for tracking per guidelines # # Enforce the the minimum EVR to contain fixes for all of: # CVE-2021-28021 # CVE-2021-42715 # CVE-2021-42716 # CVE-2022-28041 # CVE-2023-43898 # CVE-2023-45661 # CVE-2023-45662 # CVE-2023-45663 # CVE-2023-45664 # CVE-2023-45666 # CVE-2023-45667 BuildRequires: stb_image-devel >= 2.28^20231011gitbeebb24-12 BuildRequires: stb_image-static BuildRequires: stb_image_write-devel >= 1.16 BuildRequires: stb_image_write-static BuildRequires: stb_image_resize-devel >= 0.97 BuildRequires: stb_image_resize-static Requires: usd-libs%{?_isa} = %{version}-%{release} Requires: python3-usd%{?_isa} = %{version}-%{release} # This package is only available for x86_64 and aarch64 # Will fail to build on other architectures # https://bugzilla.redhat.com/show_bug.cgi?id=1960848 # # Note that pxr/base/arch/assumptions.cpp explicitly tests the machine is not # big-endian, and pxr/base/arch/defines.h explicitly enforces x86_64 or ARM64. ExclusiveArch: aarch64 x86_64 %description Universal Scene Description (USD) is a time-sampled scene description for interchange between graphics applications. %package libs Summary: Universal Scene Description library # Filed ticket to convince upstream to use system libraries # Use system libraries instead of bundling them when possible # https://github.com/PixarAnimationStudios/USD/issues/1490 # See also: # Path to using external/system copies of OpenEXRCore and libdeflate? # https://github.com/PixarAnimationStudios/OpenUSD/issues/2619 # Version from: pxr/base/gf/ilmbase_half.README # # This is difficult to unbundle even in the manner of double-conversion: code # that uses the half type is compatible with ilmbase version 2 (as packaged in # openexr2) rather than version 3 (as packaged in the ilmbase package). # Unfortunately, we need cmake(Imath) elsewhere in the package, and this comes # from the imath package (version 3), which conflicts with the imath version 2 # libraries included with openexr2. So this will not be possible until the # surrounding code is patched (upstream or downstream) for compatibility with # ilmbase version 3, something we’re currently not willing to attempt. Provides: bundled(ilmbase) = 2.5.3 # Version from: pxr/base/pegtl/pegtl/version.hpp # Currently, Fedora’s PEGTL is too old: # https://bugzilla.redhat.com/show_bug.cgi?id=1902427 Provides: bundled(PEGTL) = 3.2.7 # Version from pxr/imaging/hio/OpenEXR/OpenEXRCore/openexr_version.h # From pxr/imaging/hio/OpenEXR/README.md: # A few changes are still in progress to upstreamed to the OpenEXR project, # but these are minor, and otherwise, almost all differences between the # interred OpenEXRCore and the official OpenEXR repo are consolidated to the # openexr_conf.h header. The remaining differences are removing an extern # marking from the few global data tables. # This suggests that it may not be entirely safe to unbundle this. Provides: bundled(openexr) = 3.2.0 # Version from the message for the commit # e7a8d718c7c113e1c653ee31dc52421f17e09b42 that introduced pxr/external/boost/: # # python: Initial import of boost::python from boost 1.85.0 # This change just brings boost::python into the tree as a starting point for # the pxr_boost::python implementation. The src/ and test/ directories are # placed next to the public headers since we don't have separate # public/private directory hierarchies like boost, but the code itself is # unchanged and not included in the build. # # We use boost 1.85.0 as the starting point even though we're currently on # VFX Reference Platform 2022, which specifies boost 1.76.0. This is because # later versions of boost are needed for other platforms and versions of # Python that OpenUSD supports. For example Python 3.11 requires boost # 1.82.0+. # # This is not a candidate for unbundling because upstream has explicitly forked # boost::python and modified it to work without the rest of Boost as part of an # effort to remove the Boost dependency. While pxr_boost::python is derived # from boost::python, it is not intended to remain compatible with it. Provides: bundled(boost) = 1.85.0 # We are currently able to unbundle these and use system libraries, but we # retain the virtual Provides, commented out, as documentation and in case we # ever have to switch back to the bundled versions. # # Version from: pxr/base/tf/pxrDoubleConversion/README # Provides: bundled(double-conversion) = 3.3.0 # Version from: pxr/base/tf/pxrLZ4/lz4.h (LZ4_VERSION_{MAJOR,MINOR_PATCH}) # Provides: bundled(lz4) = 1.9.2 # Version from: pxr/base/tf/pxrCLI11/README.md # Provides: bundled(cli11) = 2.3.1 # Version from: # third_party/renderman-26/plugin/rmanArgsParser/pugixml/pugiconfig.hpp # (header comment) # Provides: bundled(pugixml) = 1.9 # Version from: pxr/base/js/rapidjson/rapidjson.h # (RAPIDJSON_{MAJOR,MINOR,PATCH}_VERSION) # Provides: bundled(rapidjson) = 1.1.0 # Version from: pxr/base/tf/pxrTslRobinMap/robin_growth_policy.h # (PXR_TSL_RH_VERSION_{MAJOR,MINOR,PATCH}) # Provides: bundled(robin-map) = 1.3.0 # Version from pxr/imaging/hio/OpenEXR/deflate/libdeflate.h # Provides: bundled(libdeflate) = 1.18 # Version from pxr/imaging/plugin/hioAvif/AVIF/src/avif/avif.h # We actually have a post-release snapshot of libavif, because # AVIF_VERSION_DEVEL is nonzero, but it’s not easy to determine which commit # hash it was copied from. # Provides: bundled(libavif) = 1.0.1 # Version from pxr/imaging/plugin/hioAvif/AVIF/src/src-libyuv/libyuv/version.h # LIBYUV_VERSION is a “serial number” version, e.g. 1895, that gets incremented # every time changes are dumped into git from an internal VCS; the libyuv # package in Fedora is considered to have version 0 and uses snapshot # versioning. We can dig through # https://chromium.googlesource.com/libyuv/libyuv and find the commit hash that # corresponds to a particular serial number. # LIBYUV_VERSION 1895 = commit a97746349b244efd54ab1eb0c0a7366717b33f39 # Provides: bundled(libyuv) = 0^20240812gita977463 # Version from pxr/imaging/plugin/hioAvif/aom/config/aom_version.h # Provides: bundled(aom) = 3.0.0 %description libs Universal Scene Description (USD) is an efficient, scalable system for authoring, reading, and streaming time-sampled scene description for interchange between graphics applications. %package devel Summary: Development files for USD Requires: usd-libs%{?_isa} = %{version}-%{release} # Unbundled, and exposed in the API: Requires: cli11-devel cli11-static Requires: robin-map-devel robin-map-static %description devel This package contains the C++ header files and symbolic links to the shared libraries for usd. If you would like to develop programs using usd, you will need to install usd-devel. # For usdview, usdcompress %package -n python3-usd Summary: %{summary} BuildRequires: pkgconfig(python3) BuildRequires: python3dist(jinja2) %if %{with usdview} BuildRequires: desktop-file-utils BuildRequires: python3dist(pyside6) BuildRequires: pyside6-tools %endif BuildRequires: python3dist(pyopengl) Requires: font(roboto) Requires: font(robotoblack) Requires: font(robotolight) Requires: font(robotomono) Requires: python3dist(jinja2) %if %{with usdview} Requires: python3dist(pyside6) %endif Requires: python3dist(pyopengl) Requires: usd-libs%{?_isa} = %{version}-%{release} %py_provides python3-pxr %description -n python3-usd Python language bindings for the Universal Scene Description (USD) C++ API %prep %autosetup -p1 -n OpenUSD-%{version} # Convert NOTICE.txt from CRNL line encoding dos2unix NOTICE.txt # Fix all Python shebangs recursively in . %py3_shebang_fix . # Further drop shebangs line for some py files sed -r -i '1{/^#!/d}' \ pxr/usd/sdr/shaderParserTestUtils.py \ pxr/usd/usdUtils/updateSchemaWithSdrNode.py \ pxr/usdImaging/usdviewq/usdviewApi.py # Unbundle Google Roboto fonts rm -rvf pxr/usdImaging/usdviewq/fonts/* ln -s %{_datadir}/fonts/google-roboto pxr/usdImaging/usdviewq/fonts/Roboto ln -s %{_datadir}/fonts/google-roboto-mono \ pxr/usdImaging/usdviewq/fonts/Roboto_Mono # Unbundle stb_image, stb_image_write, stb_image_resize: pushd pxr/imaging/hio/stb cp -p %{_usr}/include/stb_image.h . patch -p1 < '%{SOURCE2}' ln -svf %{_usr}/include/stb_image_resize.h \ %{_usr}/include/stb_image_write.h ./ popd # Remove bundled doxygen-awesome-css (CSS and JS files) since we are not # building Doxygen-generated HTML documentation. rm -rf docs/doxygen/doxygen-awesome-css/ # Remove the bundled copy of double-conversion. # # From pxr/base/tf/pxrDoubleConversion/README, the upstream double-conversion # is patched with pxr/base/tf/pxrDoubleConversion/pxr-double-conversion.patch; # examination of that patch shows that it merely adds namespaces and renames # symbols, rather than making functional changes, so using the system library # should be safe. find pxr/base/tf/pxrDoubleConversion -type f ! -name '*.h' -print -delete for hdr in pxr/base/tf/pxrDoubleConversion/*.h do cat > "${hdr}" < namespace pxr_double_conversion = double_conversion; EOF done # Similarly, remove the bundled copy of lz4. Change in the bundled copy can be # identified by source-code comments, and appear to be limited to adding # namespaces and removing C linkage. rm -v pxr/base/tf/pxrLZ4/* cat > pxr/base/tf/pxrLZ4/lz4.h <<'EOF' #include // System LZ4 has C linkage; this just allows "using namespace" namespace pxr_lz4 {} EOF # Remove the bundled copy of cli11. rm -v pxr/base/tf/pxrCLI11/* cat > pxr/base/tf/pxrCLI11/CLI11.h <<'EOF' #include namespace pxr_CLI = CLI; EOF # Remove the bundled copy of pugixml. find third_party/renderman-*/plugin/rmanArgsParser/pugixml/ \ -type f ! -name '*.hpp' -print -delete for hdr in third_party/renderman-*/plugin/rmanArgsParser/pugixml/*.hpp do cat > "${hdr}" < EOF done # Remove the bundled copy of rapidjson. It does not seem to have been modified # or forked at all. rm -rv pxr/base/js/rapidjson/ # Remove the bundled copy of robin-map. There are several macros that are # renamed from TSL_*/tsl_* to PXR_TSL_*/pxr_tsl_* in the bundled copy, and we # could “alias” these if necessary to avoid patching call sites, but for now # are not used outside the library headers and we can get by with merely # aliasing the namespace. find pxr/base/tf/pxrTslRobinMap -type f ! -name '*.h' -print -delete for hdr in pxr/base/tf/pxrTslRobinMap/*.h do cat > "${hdr}" < namespace pxr_tsl = tsl; EOF done # Remove the bundled copy of libdeflate. rm -rv pxr/imaging/hio/OpenEXR/deflate/ # Remove the bundled copies of libavif, along with the associated libaom and # the libyuv that is in the libavif sources. rm -rv pxr/imaging/plugin/hioAvif/aom/ \ pxr/imaging/plugin/hioAvif/AVIF/ # Use c++17 standard otherwise build fails sed -i 's|set(CMAKE_CXX_STANDARD 14)|set(CMAKE_CXX_STANDARD 17)|g' \ cmake/defaults/CXXDefaults.cmake # Fix libdir installation sed -i 's|lib/usd|%{_libdir}/usd|g' \ cmake/macros/{Private,Public}.cmake sed -i 's|plugin/usd|%{_libdir}/usd/plugin|g' \ cmake/macros/{Private,Public}.cmake sed -i 's|"lib"|%{_libdir}|g' \ cmake/macros/{Private,Public}.cmake sed -i 's|/python|/python%{python3_version}/site-packages|g' \ cmake/macros/{Private,Public}.cmake pxr/usdImaging/usdviewq/CMakeLists.txt sed -i 's|/pxrConfig.cmake|%{_libdir}/cmake/pxr/pxrConfig.cmake|g' \ pxr/CMakeLists.txt sed -i 's|"cmake"|"%{_libdir}/cmake/pxr"|g' \ pxr/CMakeLists.txt sed -i 's|${PXR_CMAKE_DIR}/cmake|${PXR_CMAKE_DIR}|g' \ pxr/pxrConfig.cmake.in sed -i 's|${PXR_CMAKE_DIR}/include|/usr/include|g' \ pxr/pxrConfig.cmake.in sed -i 's|EXACT COMPONENTS|COMPONENTS|g' \ pxr/pxrConfig.cmake.in # Fix cmake directory destination sed -i 's|"${CMAKE_INSTALL_PREFIX}"|%{_libdir}/cmake/pxr|g' pxr/CMakeLists.txt # Use Embree4 instead of Embree3. The find-then-modify pattern preserves mtimes # on sources that did not need to be modified. find . -type f -exec gawk '/embree3/ { print FILENAME }' '{}' '+' | xargs -r sed -r -i 's/(embree)3/\14/' %build # The necessary include path for Imath is not set everywhere it’s needed. It’s # not immediately clear exactly why this is happening here or what should be # changed upstream. extra_flags="${extra_flags-} $(pkgconf --cflags Imath)" # Suppress deprecation warnings from TBB; upstream should act on them # eventually, but they just add noise here. extra_flags="${extra_flags-} -DTBB_SUPPRESS_DEPRECATED_MESSAGES=1" %cmake \ %if %{with ninja} -GNinja \ %endif %if %{with jemalloc} -DPXR_MALLOC_LIBRARY="%{_libdir}/libjemalloc.so" \ %endif \ -DCMAKE_CXX_FLAGS_RELEASE="${CXXFLAGS-} ${extra_flags}" \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_C_FLAGS_RELEASE="${CFLAGS-} ${extra_flags}" \ -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \ -DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}" \ -DCMAKE_SKIP_INSTALL_RPATH=ON \ -DCMAKE_SKIP_RPATH=ON \ -DCMAKE_VERBOSE_MAKEFILE=ON \ \ -DPXR_BUILD_HTML_DOCUMENTATION=FALSE \ -DPXR_BUILD_PYTHON_DOCUMENTATION=FALSE \ -DPXR_BUILD_EXAMPLES=OFF \ -DPXR_BUILD_IMAGING=ON \ -DPXR_BUILD_MONOLITHIC=ON \ -DPXR_BUILD_TESTS=%{expr:%{with test}?"ON":"OFF"} \ -DPXR_BUILD_TUTORIALS=OFF \ -DPXR_BUILD_USD_IMAGING=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 \ \ -DPXR_ENABLE_OPENVDB_SUPPORT=%{expr:%{with openvdb}?"ON":"OFF"} \ -DPXR_ENABLE_HDF5_SUPPORT=ON \ -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_PYTHON_SUPPORT=ON \ \ -DPXR_INSTALL_LOCATION="%{_libdir}/usd/plugin" \ \ -DPXR_VALIDATE_GENERATED_CODE=OFF \ \ -DPYSIDEUICBINARY:PATH=pyside6-uic \ -DPYSIDE_AVAILABLE=ON \ -DPYTHON_EXECUTABLE=%{python3} %cmake_build %install %cmake_install # Fix python3 files installation mkdir -p %{buildroot}%{python3_sitearch} mv %{buildroot}%{python3_sitelib}/* %{buildroot}%{python3_sitearch} %if %{with usdview} # Install a desktop icon for usdview desktop-file-install \ --dir=%{buildroot}%{_datadir}/applications \ %{SOURCE1} %endif # Remove examples that were built and installed even though we set # -DPXR_BUILD_EXAMPLES=OFF. rm -vrf '%{buildroot}%{_datadir}/usd/examples' # Generate and install man pages. While generating the man pages might more # properly go in %%build, it is generally much easier to do this here in a # single step, using the entry points installed into the buildroot. This is # especially true for the entry points that are Python scripts. install -d '%{buildroot}%{_mandir}/man1' for cmd in %{buildroot}%{_bindir}/* do PYTHONPATH='%{buildroot}%{python3_sitearch}' \ LD_LIBRARY_PATH='%{buildroot}%{_libdir}' \ help2man \ --no-info --no-discard-stderr --version-string='%{version}' \ --output="%{buildroot}%{_mandir}/man1/$(basename "${cmd}").1" \ "${cmd}" done %check %if %{with usdview} desktop-file-validate %{buildroot}%{_datadir}/applications/org.openusd.usdview.desktop %endif %{?with_test:%ctest} %files %doc NOTICE.txt README.md %{_bindir}/hdGenSchema %{_bindir}/sdfdump %{_bindir}/sdffilter %{_bindir}/usdGenSchema %{_bindir}/usdcat %{_bindir}/usdchecker %if %{with draco} %{_bindir}/usdcompress %endif %{_bindir}/usddiff %{_bindir}/usddumpcrate %{_bindir}/usdedit %{_bindir}/usdfixbrokenpixarschemas %{_bindir}/usdgenschemafromsdr %{_bindir}/usdmeasureperformance %{_bindir}/usdrecord %{_bindir}/usdresolve %{_bindir}/usdstitch %{_bindir}/usdstitchclips %{_bindir}/usdtree %{_bindir}/usdzip %if %{with usdview} %{_datadir}/applications/org.openusd.usdview.desktop %{_bindir}/testusdview %{_bindir}/usdview %endif %{_mandir}/man1/hdGenSchema.1* %{_mandir}/man1/sdfdump.1* %{_mandir}/man1/sdffilter.1* %{_mandir}/man1/usdGenSchema.1* %{_mandir}/man1/usdcat.1* %{_mandir}/man1/usdchecker.1* %if %{with draco} %{_mandir}/man1/usdcompress.1* %endif %{_mandir}/man1/usddiff.1* %{_mandir}/man1/usddumpcrate.1* %{_mandir}/man1/usdedit.1* %{_mandir}/man1/usdfixbrokenpixarschemas.1* %{_mandir}/man1/usdgenschemafromsdr.1* %{_mandir}/man1/usdmeasureperformance.1* %{_mandir}/man1/usdrecord.1* %{_mandir}/man1/usdresolve.1* %{_mandir}/man1/usdstitch.1* %{_mandir}/man1/usdstitchclips.1* %{_mandir}/man1/usdtree.1* %{_mandir}/man1/usdzip.1* %if %{with usdview} %{_mandir}/man1/testusdview.1* %{_mandir}/man1/usdview.1* %endif %files -n python3-usd %{python3_sitearch}/pxr/ %files libs %license LICENSE.txt %doc NOTICE.txt README.md %{_libdir}/libusd_ms.so.%{downstream_so_version} # While headers normally go in -devel packages, those in # %%{_libdir}/usd/usd/resources/codegenTemplates/ are used as data (templates # for generated code), and it makes sense to package them with the rest of the # library resources. (Technically, these are currently used only by the # usdGenSchema command-line tool, so they could be moved to the base package, # but this is probably too fussy.) %{_libdir}/usd/ %files devel %doc BUILDING.md CHANGELOG.md VERSIONS.md %{_includedir}/pxr/ %{_libdir}/libusd_ms.so %{_libdir}/cmake/pxr/pxrConfig.cmake %{_libdir}/cmake/pxr/pxrTargets.cmake %{_libdir}/cmake/pxr/pxrTargets-release.cmake %changelog ## START: Generated by rpmautospec * Mon Dec 09 2024 Adrià Cabello - 24.11-3 - Correct dekstop file comment * Fri Dec 06 2024 Benjamin A. Beasley - 24.11-2 - Patch for tbb 2022.0.0 compatibility * Thu Nov 14 2024 Benjamin A. Beasley - 24.11-1 - Update to 24.11 (close RHBZ#2321975) * Fri Oct 25 2024 Orion Poplawski - 24.08-19 - Rebuild for hdf5 1.14.5 * Wed Oct 09 2024 Richard Shaw - 24.08-18 - Rebuild for OpenColorIO 2.4.0. * Wed Sep 04 2024 Benjamin A. Beasley - 24.08-17 - Add dependencies from -devel on unbundled libraries that are exposed in the API * Wed Sep 04 2024 Benjamin A. Beasley - 24.08-16 - Unbundle libavif/aom/libyuv * Mon Sep 02 2024 Benjamin A. Beasley - 24.08-15 - Unbundle libdeflate * Mon Sep 02 2024 Benjamin A. Beasley - 24.08-12 - Unbundle robin-map * Mon Sep 02 2024 Benjamin A. Beasley - 24.08-11 - Unbundle rapidjson * Sat Aug 31 2024 Benjamin A. Beasley - 24.08-10 - Unbundle pugixml * Fri Aug 30 2024 Benjamin A. Beasley - 24.08-8 - Simplified unbundling patches for double-conversion and lz4 - Use “stub” headers to avoid patching the call sites * Fri Aug 30 2024 Benjamin A. Beasley - 24.08-6 - Unbundle cli11 * Thu Aug 29 2024 Benjamin A. Beasley - 24.08-5 - Unbundle lz4 * Wed Aug 28 2024 Benjamin A. Beasley - 24.08-2 - Unbundle double-conversion * Tue Aug 27 2024 Benjamin A. Beasley - 24.08-1 - Update to 24.08 (close RHBZ#2265775) * Thu Aug 01 2024 Benjamin A. Beasley - 24.03-12 - Re-enable usdview with PySide6 (and pyside6-uic) * Wed Jul 31 2024 Benjamin A. Beasley - 24.03-11 - Remove the pyside6 build conditional * Wed Jul 31 2024 Benjamin A. Beasley - 24.03-10 - Disable usdview again - Without the right UI compiler, it is still broken on PySide6 * Sat Jul 20 2024 Fedora Release Engineering - 24.03-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Wed Jun 26 2024 Benjamin A. Beasley - 24.03-8 - Rebuilt for Python 3.13 (close RHBZ#2292015) * Mon Jun 24 2024 Benjamin A. Beasley - 24.03-7 - Correct pkgconfig(Ptext) to pkgconfig(ptex) for ptex-2.4.3 * Wed Jun 12 2024 Luya Tshimbalanga - 24.03-6 - Rebuild for openvdb with required tbb2020.3 * Thu May 16 2024 Adrià Cabello - 24.03-5 - Update usd.spec * Thu Apr 25 2024 Benjamin A. Beasley - 24.03-4 - Rebuilt for OpenColorIO 2.3.2 * Sun Apr 21 2024 Benjamin A. Beasley - 24.03-3 - Rebuild for OpenVDB 11 without backward-compatible ABI * Fri Apr 12 2024 Benjamin A. Beasley - 24.03-2 - Re-enable usdview with PySide6 * Fri Apr 12 2024 Benjamin A. Beasley - 24.03-1 - Update to 24.03 (close RHBZ#2265775) * Tue Apr 02 2024 Benjamin A. Beasley - 23.11-10 - Rebuild for OpenVDB 11 with backward-compatible ABI (fix RHBZ#2272507) * Fri Mar 29 2024 Luya Tshimbalanga - 23.11-9 - Rebuild for openshadinglanguage 1.13.7.0 * Fri Mar 15 2024 Yaakov Selkowitz - 23.11-8 - Fix flatpak build * Tue Jan 30 2024 Richard Shaw - 23.11-7 - Rebuild for OpenImageIO 2.5.x. * Tue Jan 30 2024 Richard Shaw - 23.11-6 - Rebuild for OpenImageIO 2.5.x. * Sat Jan 27 2024 Fedora Release Engineering - 23.11-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Sun Jan 21 2024 Luya Tshimbalanga - 23.11-4 - Rebuild for draco 1.5.7 * Wed Jan 17 2024 Jonathan Wakely - 23.11-3 - Build against tbb2020.3 instead of tbb (#2036372) * Fri Nov 10 2023 Benjamin A. Beasley - 23.11-2 - Correct license to Pixar AND … * Mon Oct 30 2023 Benjamin A. Beasley - 23.11-1 - Update to 23.11 (close RHBZ#2246597) * Fri Oct 27 2023 Benjamin A. Beasley - 23.08-4 - Rebuild for openvdb-10.1.0 (close RHBZ#2246616) * Thu Oct 26 2023 Benjamin A. Beasley - 23.08-3 - Add versioned Requires on usd-libs from python3-usd * Wed Oct 25 2023 Benjamin A. Beasley - 23.08-2 - Ensure stb_image contains the latest CVE patches * Fri Aug 25 2023 Benjamin A. Beasley - 23.08-1 - Update to 23.08 (close RHBZ#2224683) * Fri Aug 25 2023 Benjamin A. Beasley - 23.05-11 - Drop conditional for building documentation * Sat Jul 22 2023 Fedora Release Engineering - 23.05-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Tue Jul 18 2023 Benjamin A. Beasley - 23.05-9 - Rebuild for Python 3.12 (close RHBZ#2220617) * Tue Jul 18 2023 Benjamin A. Beasley - 23.05-8 - Temporarily disable usdview application - Works around python-pyside2 FTBFS/FTI with Python 3.12 * Thu Jul 06 2023 Benjamin A. Beasley - 23.05-7 - Use new (rpm 4.17.1+) bcond style * Sat Jun 03 2023 Benjamin A. Beasley - 23.05-6 - Remove explicit %%set_build_flags, not needed since F36 * Sat May 13 2023 Luya Tshimbalanga - 23.05-5 - Rebuild for embree 4.1.0 * Sun May 07 2023 Benjamin A. Beasley - 23.05-4 - Rebuild for draco 1.5.6 (close RHBZ#2195997) * Tue Apr 25 2023 Benjamin A. Beasley - 23.05-3 - Move codegenTemplates from -devel to -libs * Sat Apr 22 2023 Benjamin A. Beasley - 23.05-2 - Add generated man pages * Fri Apr 21 2023 Benjamin A. Beasley - 23.05-1 - Update to 23.05 (close RHBZ#2110024) * Fri Apr 21 2023 Benjamin A. Beasley - 23.02-17 - Be explicit about building the CLI tools * Fri Apr 21 2023 Benjamin A. Beasley - 23.02-16 - Stop conditionalizing imaging/usd_imaging * Fri Apr 21 2023 Benjamin A. Beasley - 23.02-15 - Be explicit about not validating generated code * Fri Apr 21 2023 Benjamin A. Beasley - 23.02-14 - Explicitly enable/disable all plugins * Fri Apr 21 2023 Benjamin A. Beasley - 23.02-13 - Reorganize the CMake options for readability * Fri Apr 21 2023 Benjamin A. Beasley - 23.02-12 - Write the uic-wrapper script in prep, not build * Fri Apr 21 2023 Benjamin A. Beasley - 23.02-11 - Use Ninja backend for CMake by default (a bit faster) * Fri Apr 21 2023 Benjamin A. Beasley - 23.02-10 - Set CMake options more compactly and explicitly * Fri Apr 21 2023 Benjamin A. Beasley - 23.02-9 - Slightly improve handling of compiler/linker flags * Fri Apr 21 2023 Benjamin A. Beasley - 23.02-8 - Be more explicit that we are on OpenEXR/Imath 3 * Mon Apr 17 2023 Benjamin A. Beasley - 23.02-7 - Reduce macro indirection in the spec file * Mon Apr 17 2023 Benjamin A. Beasley - 23.02-6 - Put all the tools and apps in the base package * Mon Apr 17 2023 Benjamin A. Beasley - 23.02-5 - Stop conditionalizing Python * Mon Apr 17 2023 Benjamin A. Beasley - 23.02-4 - Build with the draco plugin * Mon Mar 20 2023 Benjamin A. Beasley - 23.02-3 - Re-enable OpenShadingLanguage and OpenVDB support * Mon Mar 20 2023 Benjamin A. Beasley - 23.02-2 - Drop manual dependency on cmake-filesystem, now automatic * Mon Mar 20 2023 Benjamin A. Beasley - 23.02-1 - Update to 23.02 (close RHBZ#2110024) * Mon Mar 20 2023 Benjamin A. Beasley - 22.11-1 - Update to 22.11 * Mon Mar 20 2023 Benjamin A. Beasley - 22.08-1 - Update to 22.08 (.so version bump) - The monolithic library is also renamed from libusd_usd_ms.so to libusd_ms.so. * Wed Mar 08 2023 Mamoru TASAKA - 22.05b-27 - Fix FTBFS on F39 - Apply upstream PR to fix build with boost 1.81 - Backport upstream fix for additional header inclusion for g++13 * Sat Feb 25 2023 Benjamin A. Beasley - 22.05b-25 - Update minimum stb_image versions * Mon Feb 20 2023 Jonathan Wakely - 22.05b-24 - Rebuilt for Boost 1.81 * Sat Feb 11 2023 Benjamin A. Beasley - 22.05b-23 - Port to Embree 4 * Sat Feb 11 2023 Luya Tshimbalanga - 22.05b-22 - Rebuild for embree 4.0.0 * Sat Feb 11 2023 Luya Tshimbalanga - 22.05b-21 - Rebuild for embree-4.0.0 * Sun Jan 29 2023 Benjamin A. Beasley - 22.05b-20 - Fix patch to work with stb_image 2.28 * Sun Jan 29 2023 Benjamin A. Beasley - 22.05b-19 - Add missing #include for GCC13 * Sat Jan 21 2023 Fedora Release Engineering - 22.05b-18 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Mon Jan 09 2023 Richard Shaw - 22.05b-17 - Rebuild for OpenColorIO. * Mon Jan 02 2023 Luya Tshimbalanga - 22.05b-16 - Rebuild for openvdb 10.0.1 * Wed Dec 14 2022 Benjamin A. Beasley - 22.05b-15 - Remove obsolete conditionals * Tue Nov 29 2022 Benjamin A. Beasley - 22.05b-14 - Update License to SPDX * Tue Nov 15 2022 Richard Shaw - 22.05b-13 - Move from OpenColorIO 1 compat package to OpenColorIO 2 as the compat package does not build with yaml-cpp 0.7.0. * Tue Nov 15 2022 Richard Shaw - 22.05b-12 - Move from OpenColorIO 1 compat package to OpenColorIO 2 as the compat package does not build with yaml-cpp 0.7.0. * Sat Oct 08 2022 Benjamin A. Beasley 22.05b-11 - Fix rpmautospec changelog problems * Fri Oct 07 2022 Richard Shaw 22.05b-10 - Rebuild for OpenImageIO 2.4.4.2. * Wed Aug 03 2022 Benjamin A. Beasley 22.05b-9 - Revert "Update to 22.08 (.so version bump); close RHBZ#2110024" * Tue Aug 02 2022 Benjamin A. Beasley 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 22.05b-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Wed Jul 06 2022 Benjamin A. Beasley 22.05b-7 - Re-enable usdview now that RHBZ#2025599 is fixed * Mon Jul 04 2022 Luya Tshimbalanga 22.05b-6 - Rebuild for embree 3.13.3 * Thu Jun 30 2022 Benjamin A. Beasley 22.05b-5 - Updated (cleaner) patch in upstream PR#1928 * Tue Jun 28 2022 Benjamin A. Beasley 22.05b-4 - Updated patch for upstream PR#1928 * Tue Jun 28 2022 Benjamin A. Beasley 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 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 22.05b-1 - Update to 22.05b (close RHBZ#2097211) * Fri May 27 2022 Benjamin A. Beasley 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 22.03-9 - Rebuilt for Boost 1.78 * Wed Apr 20 2022 Benjamin A. Beasley 22.03-8 - Security fix for CVE-2022-28041 * Fri Apr 01 2022 Benjamin A. Beasley 22.03-7 - Do not package pxrConfig.cmake (close RHBZ#2055414) * Fri Apr 01 2022 Benjamin A. Beasley 22.03-6 - Apply a patch that would be required to build the tests * Fri Apr 01 2022 Benjamin A. Beasley 22.03-5 - Move bundled library virtual Provides to -libs * Fri Apr 01 2022 Benjamin A. Beasley 22.03-4 - No need to explicitly disable in-source build on Fedora * Fri Apr 01 2022 Benjamin A. Beasley 22.03-3 - Stop using jemalloc * Wed Mar 30 2022 Benjamin A. Beasley 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 22.03-1 - New upstream release 22.03 This update adds workaround removing depreciated glibc mallocHock * Sat Jan 22 2022 Fedora Release Engineering 21.11-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Sun Nov 28 2021 Mamoru TASAKA 21.11-4 - empty commit to fix upgrade path from F35 * Sat Nov 13 2021 Luya Tshimbalanga 21.11-3 - RPMAUTOSPEC: unresolvable merge ## END: Generated by rpmautospec