[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1039623: shotcut: reproducible-builds: build paths trigger differences, embedded date-based version



Source: shotcut
Version: 23.06.14+git20230616+ds-4
Severity: normal
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps timezone buildpath
X-Debbugs-Cc: reproducible-bugs@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 <vagrant@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 <vagrant@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

Attachment: signature.asc
Description: PGP signature


Reply to: