FS#71895 - [opentimelineio] PKGBUILD does not pack C++ bindings

Attached to Project: Community Packages
Opened by Tércio Martins (tercio) - Sunday, 22 August 2021, 19:23 GMT
Last edited by Antonio Rojas (arojas) - Sunday, 19 September 2021, 11:19 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Antonio Rojas (arojas)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
The "opentimelineio" package only contains Python bindings. Programs that need the C++ bindings (like the "olive-git" package) cannot find it during build.
The C++ bindings are compiled during package creation, but the actual script ignores these files.
I have changed PKGBUILD to include these bindings in the package. Please update the package using it.

Additional info:
* package version(s): 0.13-1
   PKGBUILD (2.6 KiB)
This task depends upon

Closed by  Antonio Rojas (arojas)
Sunday, 19 September 2021, 11:19 GMT
Reason for closing:  Fixed
Additional comments about closing:  opentimelineio 0.13-2, thanks @loqs
Comment by Antonio Rojas (arojas) - Monday, 30 August 2021, 20:23 GMT
What do you mean by "the script ignores these files"? The C++ libraries are installed in /usr/lib/python3.9/site-packages/opentimelineio/cxx-libs/lib/, or are you talking about something else?
Comment by Tércio Martins (tercio) - Monday, 30 August 2021, 21:13 GMT
The current version of PKGBUILD:

- do not install header files in "/usr/include" directory
- and don't install the libraries in the "/usr/lib" directory

So, programs that need C++ bindings can't find it.

Here is the list of files that are part of it (and were not included in the current package):

usr/include/
usr/include/opentime/
usr/include/opentime/errorStatus.h
usr/include/opentime/rationalTime.h
usr/include/opentime/stringPrintf.h
usr/include/opentime/timeRange.h
usr/include/opentime/timeTransform.h
usr/include/opentime/version.h
usr/include/opentimelineio/
usr/include/opentimelineio/any.h
usr/include/opentimelineio/anyDictionary.h
usr/include/opentimelineio/anyVector.h
usr/include/opentimelineio/clip.h
usr/include/opentimelineio/composable.h
usr/include/opentimelineio/composition.h
usr/include/opentimelineio/deps/
usr/include/opentimelineio/deps/any/
usr/include/opentimelineio/deps/any/any.hpp
usr/include/opentimelineio/deps/nonstd/
usr/include/opentimelineio/deps/nonstd/optional.hpp
usr/include/opentimelineio/deserialization.h
usr/include/opentimelineio/effect.h
usr/include/opentimelineio/errorStatus.h
usr/include/opentimelineio/externalReference.h
usr/include/opentimelineio/freezeFrame.h
usr/include/opentimelineio/gap.h
usr/include/opentimelineio/generatorReference.h
usr/include/opentimelineio/imageSequenceReference.h
usr/include/opentimelineio/item.h
usr/include/opentimelineio/linearTimeWarp.h
usr/include/opentimelineio/marker.h
usr/include/opentimelineio/mediaReference.h
usr/include/opentimelineio/missingReference.h
usr/include/opentimelineio/optional.h
usr/include/opentimelineio/safely_typed_any.h
usr/include/opentimelineio/serializableCollection.h
usr/include/opentimelineio/serializableObject.h
usr/include/opentimelineio/serializableObjectWithMetadata.h
usr/include/opentimelineio/serialization.h
usr/include/opentimelineio/stack.h
usr/include/opentimelineio/stackAlgorithm.h
usr/include/opentimelineio/stringUtils.h
usr/include/opentimelineio/timeEffect.h
usr/include/opentimelineio/timeline.h
usr/include/opentimelineio/track.h
usr/include/opentimelineio/trackAlgorithm.h
usr/include/opentimelineio/transition.h
usr/include/opentimelineio/typeRegistry.h
usr/include/opentimelineio/unknownSchema.h
usr/include/opentimelineio/vectorIndexing.h
usr/include/opentimelineio/version.h
usr/lib/
usr/lib/libopentime.so
usr/lib/libopentimelineio.so
Comment by loqs (loqs) - Tuesday, 31 August 2021, 01:40 GMT
I think the changes in the attached diff should add the include files to a root based at usr/lib/python3.9/site-packages/opentimelineio/cxx-libs/
The project you want to use opentimelineio with is the current master of olive [1]? Which I believe can be given a path for the base of the opentimeio install OTIO_BASE_DIR [2]?
Edit:
Left in a commented out incorrect sed change to setup.py by mistake.
Edit2:
That missed the dep headers as [3] is not sourced due to unbundling pybind11, installing the two missing deps headers during package() then allows olive-git to detect opentimelineio. Upstream is dropping this approach [4].
Edit3:
PKGBUILD.diff.2 installs the deps headers. _cxx_libs_dir controls the root so it can be easily moved to /usr.


[1] https://aur.archlinux.org/packages/olive-git/
[2] https://github.com/olive-editor/olive/blob/master/cmake/FindOpenTimelineIO.cmake#L18
[3] https://github.com/PixarAnimationStudios/OpenTimelineIO/blob/v0.13/src/deps/CMakeLists.txt
[4] https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1004

Loading...