diff --git a/.gitignore b/.gitignore index b2a2bd2..786e509 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /usd-23.02.tar.gz /usd-23.05.tar.gz /OpenUSD-23.08.tar.gz +/OpenUSD-23.11.tar.gz diff --git a/0001-Downstream-only-add-an-SONAME-version.patch b/0001-Downstream-only-add-an-SONAME-version.patch new file mode 100644 index 0000000..a6d931b --- /dev/null +++ b/0001-Downstream-only-add-an-SONAME-version.patch @@ -0,0 +1,79 @@ +From 7bb13a999b2d3afe13ddad0a7bd8da1e4f99ff09 Mon Sep 17 00:00:00 2001 +From: "Benjamin A. Beasley" +Date: Fri, 27 Oct 2023 12:56:58 -0400 +Subject: [PATCH] Downstream-only: add an SONAME version +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 | 1 + + 3 files changed, 8 insertions(+) + +diff --git a/cmake/defaults/Version.cmake b/cmake/defaults/Version.cmake +index 1406ac2a9..197377ff2 100644 +--- a/cmake/defaults/Version.cmake ++++ b/cmake/defaults/Version.cmake +@@ -27,3 +27,9 @@ set(PXR_MINOR_VERSION "23") + set(PXR_PATCH_VERSION "11") # NOTE: Must not have leading 0 for single digits + + 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 21606d4d6..4cf8aeeb6 100644 +--- a/cmake/macros/Private.cmake ++++ b/cmake/macros/Private.cmake +@@ -1299,6 +1299,7 @@ function(_pxr_library NAME) + IMPORT_PREFIX "${args_PREFIX}" + 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 2080d7a36..2642b603f 100644 +--- a/cmake/macros/Public.cmake ++++ b/cmake/macros/Public.cmake +@@ -1007,6 +1007,7 @@ function(pxr_toplevel_prologue) + FOLDER "${folder}" + PREFIX "${libPrefix}" + IMPORT_PREFIX "${libPrefix}" ++ SOVERSION ${PXR_DOWNSTREAM_SOVERSION} + ) + _get_install_dir("lib" libInstallPrefix) + install( +-- +2.41.0 + diff --git a/sources b/sources index 5f70b2e..f9f1440 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (OpenUSD-23.08.tar.gz) = cf5f2bff2b15427bfbac2155be39b17b0f66e50176a567a4c55fa4d220d89e8b7c82753f42cd0e9398b0e567bd90391ea976155d42b343a5168d41f6a3767957 +SHA512 (OpenUSD-23.11.tar.gz) = a6f718c8c227cabcc467de80bd5197470bcf335aaf1738e49e37d8d0fa4b47a0c0d9dc1518032de8c603e3ef303d22f9960504caeede4c5053ab1d3c84987304 diff --git a/usd-23.08-soversion.patch b/usd-23.08-soversion.patch deleted file mode 100644 index 1512a54..0000000 --- a/usd-23.08-soversion.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff -Naur OpenUSD-23.08-original/cmake/defaults/Version.cmake OpenUSD-23.08/cmake/defaults/Version.cmake ---- OpenUSD-23.08-original/cmake/defaults/Version.cmake 2023-07-21 17:08:46.000000000 -0400 -+++ OpenUSD-23.08/cmake/defaults/Version.cmake 2023-08-23 15:54:51.498808451 -0400 -@@ -27,3 +27,9 @@ - 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 -Naur OpenUSD-23.08-original/cmake/macros/Private.cmake OpenUSD-23.08/cmake/macros/Private.cmake ---- OpenUSD-23.08-original/cmake/macros/Private.cmake 2023-07-21 17:08:46.000000000 -0400 -+++ OpenUSD-23.08/cmake/macros/Private.cmake 2023-08-23 15:54:51.498808451 -0400 -@@ -1299,6 +1299,7 @@ - IMPORT_PREFIX "${args_PREFIX}" - PREFIX "${args_PREFIX}" - SUFFIX "${args_SUFFIX}" -+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION} - ) - - target_compile_definitions(${NAME} -diff -Naur OpenUSD-23.08-original/cmake/macros/Public.cmake OpenUSD-23.08/cmake/macros/Public.cmake ---- OpenUSD-23.08-original/cmake/macros/Public.cmake 2023-07-21 17:08:46.000000000 -0400 -+++ OpenUSD-23.08/cmake/macros/Public.cmake 2023-08-23 15:54:51.499808464 -0400 -@@ -1003,6 +1003,7 @@ - FOLDER "${folder}" - PREFIX "${libPrefix}" - IMPORT_PREFIX "${libPrefix}" -+ SOVERSION ${PXR_DOWNSTREAM_SOVERSION} - ) - _get_install_dir("lib" libInstallPrefix) - install( diff --git a/usd.spec b/usd.spec index ebc0050..4c1cbf4 100644 --- a/usd.spec +++ b/usd.spec @@ -2,7 +2,7 @@ # package version, as a reminder of the need to rebuild dependent packages on # every update. See additional notes near the downstream ABI versioning patch. # It should be 0.MAJOR.MINOR without leading zeros, e.g. 22.03 → 0.22.3. -%global downstream_so_version 0.23.8 +%global downstream_so_version 0.23.11 %bcond alembic 1 %bcond draco 1 @@ -31,7 +31,7 @@ %bcond test 0 Name: usd -Version: 23.08 +Version: 23.11 Release: %autorelease Summary: 3D VFX pipeline interchange file format @@ -84,6 +84,8 @@ Source1: org.openusd.usdview.desktop # 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 @@ -108,7 +110,7 @@ Source2: stb_image.patch # 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: usd-23.08-soversion.patch +Patch: 0001-Downstream-only-add-an-SONAME-version.patch # Port to Embree 4.x # https://github.com/PixarAnimationStudios/USD/pull/2266