Source: libjpeg-turbo
Severity: normal
Version: 1:2.0.5-1.1
Tags: patch
User: reproducible-bui...@lists.alioth.debian.org
Usertags: timezone
X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org

The build date is embedded in various files such as libjpeg.so.62.3.0:

  libjpeg-turbo·version·2.0.5·(build·20200731)  vs. 
libjpeg-turbo·version·2.0.5·(build·20200801)


While CMake respects SOURCE_DATE_EPOCH, it still can produce a different
date depending on the timezone of the running system.

Applying the attached patch explicitly sets the timezone to UTC and
should result in a reproducible build for bullseye:

  https://tests.reproducible-builds.org/debian/libjpeg-turbo

There may be other reproducibility issues caused by changing build path
for sid tests that are not addressed by this patch.

Thanks for maintaining libjpeg-turbo!

live well,
  vagrant

From 9a7f5e988f982f0e957eb08ad9122388ba376569 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagr...@reproducible-builds.org>
Date: Tue, 18 Aug 2020 18:47:02 +0000
Subject: [PATCH] Add patch to use UTC timestamp to enable reproducible build.

---
 debian/patches/1001-use-utc-timestamp.patch | 21 +++++++++++++++++++++
 debian/patches/series                       |  1 +
 2 files changed, 22 insertions(+)
 create mode 100644 debian/patches/1001-use-utc-timestamp.patch

diff --git a/debian/patches/1001-use-utc-timestamp.patch b/debian/patches/1001-use-utc-timestamp.patch
new file mode 100644
index 0000000..e689e4d
--- /dev/null
+++ b/debian/patches/1001-use-utc-timestamp.patch
@@ -0,0 +1,21 @@
+Author: Vagrant Cascadian <vagr...@reproducible-builds.org>
+Description: Use UTC timezone for build timestamp
+
+While CMake respects SOURCE_DATE_EPOCH, it still can produce a
+different date depending on the timezone of the running system.
+
+Specify timezone in UTC to enable a reproducible build.
+
+Index: libjpeg-turbo/CMakeLists.txt
+===================================================================
+--- libjpeg-turbo.orig/CMakeLists.txt
++++ libjpeg-turbo/CMakeLists.txt
+@@ -25,7 +25,7 @@ pad_number(VERSION_MINOR 3)
+ pad_number(VERSION_REVISION 3)
+ set(LIBJPEG_TURBO_VERSION_NUMBER ${VERSION_MAJOR}${VERSION_MINOR}${VERSION_REVISION})
+ 
+-string(TIMESTAMP DEFAULT_BUILD "%Y%m%d")
++string(TIMESTAMP DEFAULT_BUILD "%Y%m%d" UTC)
+ set(BUILD ${DEFAULT_BUILD} CACHE STRING "Build string (default: ${DEFAULT_BUILD})")
+ 
+ # NOTE: On Windows, this does nothing except when using MinGW or Cygwin.
diff --git a/debian/patches/series b/debian/patches/series
index 281f1c6..c226907 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
+1001-use-utc-timestamp.patch
 2001_dont-set-RPATH.patch
-- 
2.28.0

Attachment: signature.asc
Description: PGP signature

Reply via email to