Source: shotcut Version: 23.06.14+git20230616+ds-4 Severity: normal Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps timezone buildpath X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org
The RPATH contains a hash of the build path resulting in different buildid and the SHOTCUT_VERSION is set based on a timezone-dependent timestamp: https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/shotcut.html /usr/share/metainfo/org.shotcut.Shotcut.metainfo.xml <release·version="23.06.20"·date="2023-06-20"/> vs. <release·version="23.06.21"·date="2023-06-21"/> The attached patches modify debian/rules to pass -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON to dh_auto_configure to use a relative path for rpath, and modify CmakeLists.txt to set SHOTCUT_VERSION using UTC for the timezone. With both these patches applied, based on my local tests, shotcut should build reproducibly on tests.reproducible-builds.org! Thanks for maintaining shotcut! live well, vagrant
From 887be1759bf532e8008f213a6c7b61e81fee6c2a Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian <vagr...@reproducible-builds.org> Date: Tue, 27 Jun 2023 15:27:59 -0700 Subject: [PATCH 1/2] CmakeLists.txt: Use UTC for timestamp for reproducible builds. Otherwise, the timestamp will be timezone dependent. https://tests.reproducible-builds.org/debian/issues/unstable/timestamps_in_cmake_issue.html --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 254020b..b1f3d72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.20") endif() if(NOT DEFINED SHOTCUT_VERSION) - string(TIMESTAMP SHOTCUT_VERSION "%y.%m.%d") + string(TIMESTAMP SHOTCUT_VERSION "%y.%m.%d" UTC) endif() project(shotcut -- 2.39.2
From a17d43a3fc983995544156adebb5fea8d3467fd2 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian <vagr...@reproducible-builds.org> Date: Tue, 27 Jun 2023 16:01:27 -0700 Subject: [PATCH 2/2] debian/rules: Pass -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON via dh_auto_configure override. This avoids embedding the full path in RPATH, which triggers BuildId differences. https://tests.reproducible-builds.org/debian/issues/unstable/cmake_rpath_contains_build_path_issue.html --- debian/rules | 3 +++ 1 file changed, 3 insertions(+) diff --git a/debian/rules b/debian/rules index 510b5de..a709184 100755 --- a/debian/rules +++ b/debian/rules @@ -18,6 +18,9 @@ export QT_SELECT=qt5 %: dh $@ +override_dh_auto_configure: + dh_auto_configure -- -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON + override_dh_shlibdeps: dh_shlibdeps -l/usr/lib/shotcut $(DEBARCH) -- 2.39.2
signature.asc
Description: PGP signature