File reproducible.patch of Package siproxd
From f47a3e0f0bcd04b425fe31b547b99c19f0a7d9f7 Mon Sep 17 00:00:00 2001
From: Thomas Ries <tries@gmx.net>
Date: Fri, 18 Feb 2022 07:40:32 +0100
Subject: [PATCH] added configure option for reproducible builds (static values
in BUILDDATE and BUILDSTR)
---
configure.ac | 18 ++++++++++++++++++
src/Makefile.am | 14 +++++++++++---
2 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index 3193668..d43674e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -58,6 +58,7 @@ dnl 28-May-2017 tries going for CentOS7 as development platform,
dnl lots of cleanup needed for autoconf (2.69),
dnl automake (1.13.4), libtool/libltdl (2.4.2)
dnl 25-Aug-2020 tries releae 0.8.3
+dnl 17-Feb-2022 tries add option for reproducible builds
dnl
dnl
@@ -389,6 +390,23 @@ dnl --with-custom-fwmodule
AC_MSG_RESULT($FWLIBS), AC_MSG_RESULT(no))
+dnl
+dnl add
+dnl --enable-reproducible-build
+ reproducible_build="no"
+ AC_MSG_CHECKING(whether to enable a reproducible build)
+ AC_ARG_ENABLE(reproducible-build,
+ [ --enable-reproducible-build
+ enable reproducible build (default is no)],
+ [ if test "x$enableval" = "xyes"; then
+ reproducible_build="yes"
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+ ], [AC_MSG_RESULT(no)])
+ AM_CONDITIONAL(REPRODUCIBLE_BUILD, test "x$reproducible_build" = "xyes")
+
dnl
dnl Checks for header files.
dnl
diff --git a/src/Makefile.am b/src/Makefile.am
index 7993d31..5ae307c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2002-2017 Thomas Ries <tries@gmx.net>
+# Copyright (C) 2002-2022 Thomas Ries <tries@gmx.net>
#
# This file is part of Siproxd.
#
@@ -19,10 +19,18 @@
#
+if REPRODUCIBLE_BUILD
+BUILDDATE="\"unknown\""
+BUILDSTR="\"none\""
+else
+BUILDDATE="\"`date -u '+%Y-%m-%dT%H:%M:%S'`\""
+BUILDSTR="\"`cat .buildno`\""
+endif
+
AM_CFLAGS = -D_GNU_SOURCE $(LTDLDEF) \
-Werror-implicit-function-declaration \
- -DBUILDSTR="\"`cat .buildno`\"" \
- -DBUILDDATE="\"`date -u '+%Y-%m-%dT%H:%M:%S'`\""
+ -DBUILDSTR=$(BUILDSTR) \
+ -DBUILDDATE=$(BUILDDATE)
#&&&INCLUDES = $(LTDLINCL)
AM_CPPFLAGS = $(LTDLINCL)
From 4750bea4ffedb4543a404dafc979c2b16b53e523 Mon Sep 17 00:00:00 2001
From: Thomas Ries <tries@gmx.net>
Date: Fri, 18 Feb 2022 13:42:41 +0100
Subject: [PATCH] support for SOURCE_DATE_EPOCH (reproducible builds)
---
ChangeLog | 1 +
configure.ac | 23 +++++++++++++++++------
src/Makefile.am | 15 ++++++++++-----
3 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/configure.ac b/configure.ac
index d43674e..ae8f668 100644
--- a/configure.ac
+++ b/configure.ac
@@ -391,20 +391,31 @@ dnl --with-custom-fwmodule
dnl
-dnl add
-dnl --enable-reproducible-build
+dnl reproducible-build:
+dnl SOURCE_DATE_EPOCH defined, or --enable-reproducible-build given
+dnl
reproducible_build="no"
+ dnl check SOURCE_DATE_EPOCH
+ AC_MSG_CHECKING(whether we have SOURCE_DATE_EPOCH defined)
+ if test "x$SOURCE_DATE_EPOCH" != "x"; then
+ AC_SUBST(SOURCE_DATE_EPOCH, $SOURCE_DATE_EPOCH)
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi
+ AM_CONDITIONAL(HAVE_SOURCE_DATE_EPOCH, test "x$SOURCE_DATE_EPOCH" != "x")
+
+ dnl check --enable-reproducible-build
AC_MSG_CHECKING(whether to enable a reproducible build)
AC_ARG_ENABLE(reproducible-build,
[ --enable-reproducible-build
enable reproducible build (default is no)],
[ if test "x$enableval" = "xyes"; then
reproducible_build="yes"
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
fi
- ], [AC_MSG_RESULT(no)])
+ ]
+ )
+ AC_MSG_RESULT($reproducible_build)
AM_CONDITIONAL(REPRODUCIBLE_BUILD, test "x$reproducible_build" = "xyes")
dnl
diff --git a/src/Makefile.am b/src/Makefile.am
index 5ae307c..3edaa3c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -18,13 +18,18 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
-
+# some magic for reproducible builds
+if HAVE_SOURCE_DATE_EPOCH
+ BUILDDATE="\"`date -d @$(SOURCE_DATE_EPOCH) -u '+%Y-%m-%dT%H:%M:%S'`\""
+ BUILDSTR="\"none\""
+else
if REPRODUCIBLE_BUILD
-BUILDDATE="\"unknown\""
-BUILDSTR="\"none\""
+ BUILDDATE="\"unknown\""
+ BUILDSTR="\"none\""
else
-BUILDDATE="\"`date -u '+%Y-%m-%dT%H:%M:%S'`\""
-BUILDSTR="\"`cat .buildno`\""
+ BUILDDATE="\"`date -u '+%Y-%m-%dT%H:%M:%S'`\""
+ BUILDSTR="\"`cat .buildno`\""
+endif
endif
AM_CFLAGS = -D_GNU_SOURCE $(LTDLDEF) \