Notes for shotcut - reproducible builds result

Version annotated: 22.10.22+ds-1
Identified issues:
Identifier: captures_kernel_variant
Description Similar to captures_kernel_version, but specifically refers to capturing
x86_64 vs i686. This can (currently) happen when testing the i386
architecture as we use a 64-bit kernel with a 32-bit Debian userland.
.
Notably, we do not use `linux32` to emulate the 32 bit personality when
running those builds, as normally this hides packages that are making use of
`uname` to detect the host architecture when they really should not.
Identifier: timestamps_in_cmake
Description Timestamps generated by cmake TIMESTAMP function respect
SOURCE_DATE_EPOCH, but use the local timezone. In CMakeLists.txt,
uses of the TIMESTAMP function need to specify the timezone as
UTC:
.
string(TIMESTAMP CURRENT_TIME "%Y-%m-%d" UTC)
.
Likely affected packages:
https://codesearch.debian.net/search?q=string%5C%28TIMESTAMP.*%5B%5EU%5D%5B%5ET%5D%5B%5EC%5D%5C%29&literal=0
Identifier: cmake_rpath_contains_build_path
URL https://gitlab.kitware.com/cmake/cmake/issues/18413
Description When an executable is linked with a shared library from the same project,
RPATH will contain the build path. Even if this is stripped on installation,
the build-id will remain unchanged.
.
With CMake 3.14+, packages can set `-DCMAKE_BUILD_RPATH_USE_ORIGIN=ON` to
fix the issue. This is done automatically when using the currently
experimental debhelper compat level v14.
https://cmake.org/cmake/help/latest/prop_tgt/BUILD_RPATH_USE_ORIGIN.html
.
When working with older CMake versions, the `CMAKE_SKIP_RPATH` option can be
enabled instead, but it may be required to also set `LD_LIBRARY_PATH` while
running tests.
Bugs noted: 1039623+: "shotcut: reproducible-builds: build paths trigger differences, embedded date-based version"
Comments: Uses CMake timestamp without specifying UTC
https://sources.debian.org/src/shotcut/23.06.14%2Bgit20230616%2Bds-4/CMakeLists.txt/#L8
.
rpath issue fixed by -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON
 

Our notes about issues affecting packages are stored in notes.git and are targeted at packages in Debian in 'unstable/amd64' (unless they say otherwise).