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

Bug#977412: klayout: reproducible builds: Binaries contain build timestamps



Source: klayout
Severity: normal
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-bugs@lists.alioth.debian.org

Several binaries shipped with klayout include the build time:

  https://tests.reproducible-builds.org/debian/rb-pkg/bullseye/amd64/diffoscope-results/klayout.html

  ./usr/lib/klayout/klayout
  124 	2021-12-18
  124 	2020-11-16


The attached patch fixes this by adjusting the call to date in
version.sh to use the SOURCE_DATE_EPOCH environment variable.

This patch does not resolve all reproducibility issues (e.g. build
paths), but combined with a patch soon to follow, should make klayout
reproducible when it lands in bullseye (where build paths are not
tested).


Thanks for maintaining klayout!


live well,
  vagrant
From 7bf8f643614cf1398e7ef7108d3ba47200d8300d Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@reproducible-builds.org>
Date: Mon, 14 Dec 2020 19:56:24 +0000
Subject: [PATCH 1/2] Set KLAYOUT_VERSION_DATE in version.sh using value from
 SOURCE_DATE_EPOCH.

  https://reproducible-builds.org/docs/source-date-epoch/

This patch requires GNU date extensions, and may require adjustments
for portability with other date implementations.
---
 version.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.sh b/version.sh
index 7065aa1..03192ba 100644
--- a/version.sh
+++ b/version.sh
@@ -8,7 +8,7 @@ KLAYOUT_VERSION="0.26.2"
 KLAYOUT_PYPI_VERSION="0.26.2"
 
 # The build date
-KLAYOUT_VERSION_DATE=$(date "+%Y-%m-%d")
+KLAYOUT_VERSION_DATE=$(LC_ALL=C date --utc --date=@${SOURCE_DATE_EPOCH} "+%Y-%m-%d")
 
 # The short SHA hash of the commit
 KLAYOUT_VERSION_REV=$(git rev-parse --short HEAD 2>/dev/null)
-- 
2.29.2

Attachment: signature.asc
Description: PGP signature


Reply to: