Bug#1103797: schism: please make the build reproducible

Chris Lamb lamby at debian.org
Mon Apr 21 17:26:00 BST 2025


Source: schism
Version: 2:20250313-1
Severity: wishlist
Tags: patch
User: reproducible-builds at lists.alioth.debian.org
Usertags: timestamps
X-Debbugs-Cc: reproducible-bugs at lists.alioth.debian.org

Hi,

Whilst working on the Reproducible Builds effort [0], we noticed that
schism could not be built reproducibly.

This is because it embedded the timestamp of a source file via the
__TIMESTAMP__ macro. Unlike __DATE__ and __TIME__, this macro is not
automatically adjusted to SOURCE_DATE_EPOCH.

│ │ │ ├── ./usr/bin/schismtracker
│ │ │ │ ├── strings --all --bytes=8 {}
│ │ │ │ │ @@ -2382,15 +2382,15 @@
│ │ │ │ │  %3s %3s %d %d:%d:%d %d
│ │ │ │ │ -Thu Mar 13 15:04:35 2025
│ │ │ │ │ +Fri Mar 14 17:04:35 2025
│ │ │ │ │  %3s %3s  %d %d:%d:%d %d
│ │ │ │ │  %3s %d %d

Patch attached, although other solutions are obviously available.

 [0] https://reproducible-builds.org/


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      lamby at debian.org / chris-lamb.co.uk
       `-
-------------- next part --------------
--- a/debian/patches/0001-Reproducible-build.patch	1969-12-31 16:00:00.000000000 -0800
--- b/debian/patches/0001-Reproducible-build.patch	2025-04-21 09:19:54.639357255 -0700
@@ -0,0 +1,22 @@
+Description: Make the build reproducible
+Author: Chris Lamb <lamby at debian.org>
+Last-Update: 2025-04-21
+
+--- schism-20250313.orig/schism/version.c
++++ schism-20250313/schism/version.c
+@@ -218,6 +218,7 @@ static inline int get_version_date(int *
+ #endif
+ 
+ #ifdef __TIMESTAMP__
++#ifndef SOURCE_DATE_EPOCH
+ 	/* The last time THIS source file was actually edited. */
+ 	{
+ 		char day_of_week[4], month[4];
+@@ -236,6 +237,7 @@ static inline int get_version_date(int *
+ 		}
+ 	}
+ #endif
++#endif
+ 
+ 	{
+ 		// __DATE__ should be defined everywhere.
--- a/debian/patches/series	1969-12-31 16:00:00.000000000 -0800
--- b/debian/patches/series	2025-04-21 09:15:06.770698318 -0700
@@ -0,0 +1 @@
+0001-Reproducible-build.patch
--- a/debian/rules	2025-04-21 09:00:43.520722724 -0700
--- b/debian/rules	2025-04-21 09:19:50.271347256 -0700
@@ -1,10 +1,12 @@
 #! /usr/bin/make -f
 
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+export DEB_CPPFLAGS_MAINT_APPEND = -DSOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH)
 
 DPKG_EXPORT_BUILDFLAGS = 1
 include /usr/share/dpkg/buildflags.mk
 
+
 %:
 	dh $@
 


More information about the Reproducible-bugs mailing list