diff --git a/common/shlibs b/common/shlibs index bec2f470613..38c9c2656ae 100644 --- a/common/shlibs +++ b/common/shlibs @@ -3313,6 +3313,8 @@ libarcan_shmif_server.so.0.16 arcan-0.6.3.3_1 libarcan_tui.so.0.16 arcan-0.6.3.3_1 libarcan_a12.so.0.1 arcan-0.6.1.1_1 liblwipv6.so.2 lwipv6-1.5a_1 +libopentime.so.17 OpenTimelineIO-0.17.0_1 +libopentimelineio.so.17 OpenTimelineIO-0.17.0_1 libpipewire-0.3.so.0 libpipewire-0.3.6_1 libvolk.so.3.1 volk-3.1.0_1 libgnuradio-runtime.so.3.10.11 gnuradio-3.10.11.0_1 diff --git a/srcpkgs/OpenTimelineIO-devel b/srcpkgs/OpenTimelineIO-devel new file mode 120000 index 00000000000..173e9869955 --- /dev/null +++ b/srcpkgs/OpenTimelineIO-devel @@ -0,0 +1 @@ +OpenTimelineIO \ No newline at end of file diff --git a/srcpkgs/OpenTimelineIO/patches/0001-Use-System-rapidjson.patch b/srcpkgs/OpenTimelineIO/patches/0001-Use-System-rapidjson.patch new file mode 100644 index 00000000000..dd1aa9382f0 --- /dev/null +++ b/srcpkgs/OpenTimelineIO/patches/0001-Use-System-rapidjson.patch @@ -0,0 +1,118 @@ +From 2bd90edfb4730780b71fcacae9e492ff15a16268 Mon Sep 17 00:00:00 2001 +From: Christophe Marin +Date: Fri, 7 Mar 2025 10:42:48 +0100 +Subject: [PATCH 1/2] Use system rapidjson + +--- + CMakeLists.txt | 56 +++---------------------------- + src/opentimelineio/CMakeLists.txt | 5 ++- + 2 files changed, 7 insertions(+), 54 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 825ad9d..0a4d0ce 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -28,7 +28,7 @@ project(OpenTimelineIO VERSION ${OTIO_VERSION} LANGUAGES C CXX) + # Installation options + option(OTIO_CXX_INSTALL "Install the C++ bindings" ON) + option(OTIO_PYTHON_INSTALL "Install the Python bindings" OFF) +-option(OTIO_DEPENDENCIES_INSTALL "Install OTIO's C++ header dependencies (any and nonstd)" ON) ++option(OTIO_DEPENDENCIES_INSTALL "Install OTIO's C++ header dependencies (any and nonstd)" OFF) + option(OTIO_INSTALL_PYTHON_MODULES "Install OTIO pure Python modules/files" ON) + option(OTIO_INSTALL_COMMANDLINE_TOOLS "Install the OTIO command line tools" ON) + option(OTIO_INSTALL_CONTRIB "Install the opentimelineio_contrib Python package" ON) +@@ -149,63 +149,16 @@ endif() + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS OFF) + +-if(OTIO_CXX_COVERAGE AND NOT MSVC) +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") +- # this causes cmake to produce file.gcno instead of file.cpp.gcno +- set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE 1) +- message(STATUS "Building C++ with Coverage: ON") +-else() +- message(STATUS "Building C++ with Coverage: OFF") +-endif() + +-if(WIN32) +- # Windows debug builds for Python require a d in order for the module to +- # load. This also helps ensure that debug builds in general are matched +- # to the Microsoft debug CRT. +- set(OTIO_DEBUG_POSTFIX "d") +-endif() ++ ++ + + set_property(GLOBAL PROPERTY USE_FOLDERS ON) + + #------------------------------------------------------------------------------ + # Fetch or refresh submodules if requested + # +-if (OTIO_AUTOMATIC_SUBMODULES) +- # make sure that git submodules are up to date when building +- find_package(Git QUIET) +- if (GIT_FOUND) +- message(STATUS "Checking git repo is available:") +- execute_process( +- # the following command returns true if cwd is in the repo +- COMMAND ${GIT_EXECUTABLE} rev-parse --is-inside-work-tree +- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +- RESULT_VARIABLE IN_A_GIT_REPO_RETCODE +- ) +- endif() + +- if (GIT_FOUND AND IN_A_GIT_REPO_RETCODE EQUAL 0) +- # you might want to turn this off if you're working in one of the submodules +- # or trying it out with a different version of the submodule +- option(GIT_UPDATE_SUBMODULES "Update submodules each build" ON) +- if (GIT_UPDATE_SUBMODULES) +- message( +- STATUS "root: Updating git submodules to make sure they are up to date" +- ) +- execute_process( +- COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive +- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +- RESULT_VARIABLE GIT_UPDATE_SUBMODULES_RESULT +- ) +- if (NOT GIT_UPDATE_SUBMODULES_RESULT EQUAL "0") +- message( +- FATAL_ERROR +- "git submodule update --init --recursive failed with \ +- ${GIT_UPDATE_SUBMODULES_RESULT}" +- ) +- endif() +- endif() +- endif() +-endif() + + #------------------------------------------------------------------------------ + # Setup tests +@@ -245,7 +198,8 @@ else() + endif() + + # set up the internally hosted dependencies +-add_subdirectory(src/deps) ++# add_subdirectory(src/deps) ++find_package(RapidJSON CONFIG REQUIRED) + + set (OTIO_IMATH_TARGETS + # For OpenEXR/Imath 3.x: +diff --git a/src/opentimelineio/CMakeLists.txt b/src/opentimelineio/CMakeLists.txt +index 4b08e6d..e98828b 100644 +--- a/src/opentimelineio/CMakeLists.txt ++++ b/src/opentimelineio/CMakeLists.txt +@@ -80,9 +80,8 @@ add_library(OTIO::opentimelineio ALIAS opentimelineio) + target_include_directories(opentimelineio + PRIVATE "${IMATH_INCLUDES}" + "${PROJECT_SOURCE_DIR}/src" +- "${PROJECT_SOURCE_DIR}/src/deps" +- "${PROJECT_SOURCE_DIR}/src/deps/rapidjson/include" +- "${IMATH_INCLUDES}") ++ "${IMATH_INCLUDES}" ++ ${RapidJSON_INCLUDE_DIRS}) + + target_link_libraries(opentimelineio + PUBLIC opentime ${OTIO_IMATH_TARGETS}) +-- +2.48.1 + diff --git a/srcpkgs/OpenTimelineIO/patches/0002-43de3e5065c860865ede0c0bbb879578c7b325a2.patch b/srcpkgs/OpenTimelineIO/patches/0002-43de3e5065c860865ede0c0bbb879578c7b325a2.patch new file mode 100644 index 00000000000..ce92aec9030 --- /dev/null +++ b/srcpkgs/OpenTimelineIO/patches/0002-43de3e5065c860865ede0c0bbb879578c7b325a2.patch @@ -0,0 +1,85 @@ +From 43de3e5065c860865ede0c0bbb879578c7b325a2 Mon Sep 17 00:00:00 2001 +From: Darby Johnston +Date: Wed, 2 Apr 2025 17:15:48 -0700 +Subject: [PATCH] Add SOVERSION for the C++ libraries (#1860) + +* Add SOVERSION for the C++ libraries + +Co-authored-by: Nick Porcino +Signed-off-by: Darby Johnston +--- + CMakeLists.txt | 25 +++++++++++++++++++++++++ + src/opentime/CMakeLists.txt | 6 ++++++ + src/opentimelineio/CMakeLists.txt | 6 ++++++ + 3 files changed, 37 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fa4defd3f..00e18a5fc 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -119,6 +119,31 @@ else() + endif() + endif() + ++# Set the SO version. The SO version must be incremented every time a change ++# occurs to the ABI that causes a backward incompatibility. Such changes ++# include, exhaustively: ++# ++# * a change to struct or class layout ++# * enum changes that would cause a renumbering of previously published enums ++# * a removal of a struct, class, enumeration, or function ++# * a change in parameters to a free standing function ++# * a removal of a global variable ++# ++# OTIO currently designates the minor version number for breaking changes, ++# e.g. v0.15, v0.16.0, v0.17.0, accordingly the SO version will be incremented ++# to match. SO version must be monotically increasing, so the ABI version ++# should be computed as: major * 100 + revision. The third digit will never ++# implicate an ABI version change. So for example, the following OTIO versions ++# would map to these ABI versions: ++# ++# * v0.18.0 - 18 ++# * v0.19.0 - 19 ++# * v0.19.1 - 19 # No ABI changes with minor version changes ++# * v1.0.0 - 100 ++# * v1.1.0 - 101 ++# ++math(EXPR OTIO_SOVERSION "${OTIO_VERSION_MAJOR} * 100 + ${OTIO_VERSION_MINOR}") ++ + set(OTIO_RESOLVED_CXX_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}") + + if(OTIO_CXX_INSTALL) +diff --git a/src/opentime/CMakeLists.txt b/src/opentime/CMakeLists.txt +index b7cc47cf4..a973d03fa 100644 +--- a/src/opentime/CMakeLists.txt ++++ b/src/opentime/CMakeLists.txt +@@ -24,6 +24,12 @@ set_target_properties(opentime PROPERTIES + POSITION_INDEPENDENT_CODE TRUE + WINDOWS_EXPORT_ALL_SYMBOLS true) + ++if(BUILD_SHARED_LIBS) ++ set_target_properties(opentime PROPERTIES ++ SOVERSION ${OTIO_SOVERSION} ++ VERSION ${OTIO_VERSION}) ++endif() ++ + if(APPLE) + set_target_properties(opentime PROPERTIES + INSTALL_NAME_DIR "@loader_path" +diff --git a/src/opentimelineio/CMakeLists.txt b/src/opentimelineio/CMakeLists.txt +index 728b485cb..732793f2a 100644 +--- a/src/opentimelineio/CMakeLists.txt ++++ b/src/opentimelineio/CMakeLists.txt +@@ -98,6 +98,12 @@ set_target_properties(opentimelineio PROPERTIES + POSITION_INDEPENDENT_CODE TRUE + WINDOWS_EXPORT_ALL_SYMBOLS true) + ++if(BUILD_SHARED_LIBS) ++ set_target_properties(opentimelineio PROPERTIES ++ SOVERSION ${OTIO_SOVERSION} ++ VERSION ${OTIO_VERSION}) ++endif() ++ + if(APPLE) + set_target_properties(opentimelineio PROPERTIES + INSTALL_NAME_DIR "@loader_path" diff --git a/srcpkgs/OpenTimelineIO/patches/0099-cmake.patch b/srcpkgs/OpenTimelineIO/patches/0099-cmake.patch new file mode 100644 index 00000000000..150d7847db2 --- /dev/null +++ b/srcpkgs/OpenTimelineIO/patches/0099-cmake.patch @@ -0,0 +1,77 @@ +--- a/src/opentimelineio/CMakeLists.txt 2024-06-25 01:08:54.000000000 +0200 ++++ - 2025-04-19 23:24:03.444723937 +0200 +@@ -124,7 +124,7 @@ + RUNTIME DESTINATION "${OTIO_RESOLVED_CXX_DYLIB_INSTALL_DIR}") + + install(EXPORT OpenTimelineIOTargets +- DESTINATION "${OTIO_RESOLVED_CXX_INSTALL_DIR}/share/opentimelineio" ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/OpenTimelineIO" + NAMESPACE OTIO:: ) + + include(CMakePackageConfigHelpers) +@@ -132,7 +132,7 @@ + ${CMAKE_CURRENT_SOURCE_DIR}/OpenTimelineIOConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/OpenTimelineIOConfig.cmake + INSTALL_DESTINATION +- ${OTIO_RESOLVED_CXX_INSTALL_DIR}/share/opentimelineio ++ ${CMAKE_INSTALL_LIBDIR}/cmake/OpenTimelineIO + NO_SET_AND_CHECK_MACRO + NO_CHECK_REQUIRED_COMPONENTS_MACRO + ) +@@ -141,6 +141,6 @@ + FILES + ${CMAKE_CURRENT_BINARY_DIR}/OpenTimelineIOConfig.cmake + DESTINATION +- ${OTIO_RESOLVED_CXX_INSTALL_DIR}/share/opentimelineio ++ ${CMAKE_INSTALL_LIBDIR}/cmake/OpenTimelineIO + ) + endif() +--- a/src/opentime/CMakeLists.txt 2024-06-25 01:08:54.000000000 +0200 ++++ - 2025-04-19 23:24:45.851845467 +0200 +@@ -49,7 +49,7 @@ + RUNTIME DESTINATION "${OTIO_RESOLVED_CXX_DYLIB_INSTALL_DIR}") + + install(EXPORT OpenTimeTargets +- DESTINATION "${OTIO_RESOLVED_CXX_INSTALL_DIR}/share/opentime" ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/OpenTime" + NAMESPACE OTIO:: ) + + include(CMakePackageConfigHelpers) +@@ -57,7 +57,7 @@ + ${CMAKE_CURRENT_SOURCE_DIR}/OpenTimeConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/OpenTimeConfig.cmake + INSTALL_DESTINATION +- ${OTIO_RESOLVED_CXX_INSTALL_DIR}/share/opentime ++ ${CMAKE_INSTALL_LIBDIR}/cmake/OpenTime + NO_SET_AND_CHECK_MACRO + NO_CHECK_REQUIRED_COMPONENTS_MACRO + ) +@@ -66,7 +66,7 @@ + FILES + ${CMAKE_CURRENT_BINARY_DIR}/OpenTimeConfig.cmake + DESTINATION +- ${OTIO_RESOLVED_CXX_INSTALL_DIR}/share/opentime ++ ${CMAKE_INSTALL_LIBDIR}/cmake/OpenTime + ) + endif() + +--- a/CMakeLists.txt 2024-06-25 01:08:54.000000000 +0200 ++++ - 2025-04-21 12:15:44.839270019 +0200 +@@ -20,6 +20,8 @@ + + project(OpenTimelineIO VERSION ${OTIO_VERSION} LANGUAGES C CXX) + ++include(GNUInstallDirs) ++ + #------------------------------------------------------------------------------ + # Options + # Add all options and settings here for all subprojects to aid in project +@@ -100,7 +102,7 @@ + endif() + + else() +- set(OTIO_RESOLVED_CXX_DYLIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib") ++ set(OTIO_RESOLVED_CXX_DYLIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}") + message(STATUS "OTIO C++ installing to ${CMAKE_INSTALL_PREFIX}") + endif() + diff --git a/srcpkgs/OpenTimelineIO/template b/srcpkgs/OpenTimelineIO/template new file mode 100644 index 00000000000..98857225845 --- /dev/null +++ b/srcpkgs/OpenTimelineIO/template @@ -0,0 +1,23 @@ +# Template file for 'OpenTimelineIO' +pkgname=OpenTimelineIO +version=0.17.0 +revision=1 +build_style=cmake +configure_args="-DOTIO_FIND_IMATH=ON -DBUILD_SHARED_LIBS=ON" +makedepends="imath-devel rapidjson" +short_desc="Interchange format for editorial timeline information" +maintainer="John " +license="Apache-2.0" +homepage="https://github.com/AcademySoftwareFoundation/OpenTimelineIO" +distfiles="https://github.com/AcademySoftwareFoundation/OpenTimelineIO/archive/refs/tags/v${version}.tar.gz" +checksum=cdf8281c6091a18a4147295b660e13b610a6d58919a79608bf03e5359c1c2d24 + +OpenTimelineIO-devel_package() { + depends="${sourcepkg}>=${version}_${revision}" + short_desc+=" - development files" + pkg_install() { + vmove usr/include + vmove usr/lib/cmake + vmove "usr/lib/*.so" + } +}