[ioquake3] 03/39: Pick up date from SOURCE_DATE_EPOCH, for reproducible builds

Simon McVittie smcv at debian.org
Sat Nov 5 20:26:21 UTC 2016


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to branch debian/master
in repository ioquake3.

commit 9c76b546e33559c5679f6c066ff976bc7f923cbb
Author: Simon McVittie <smcv at debian.org>
Date:   Thu Apr 2 11:10:26 2015 +0100

    Pick up date from SOURCE_DATE_EPOCH, for reproducible builds
    
    The goal of reproducible builds is that a rebuild of the same source
    code with the same compiler, libraries, etc. should result in the same
    binaries. SOURCE_DATE_EPOCH provides a standard way for build systems
    to fill in the date of the latest source change, typically from a git
    commit or from metadata like the debian/changelog in Debian packages.
    
    This does not change anything if SOURCE_DATE_EPOCH is not defined;
    the intention is that a larger build system like a Debian package
    will define it.
    
    Please see https://reproducible-builds.org/ for more information about
    reproducible builds.
---
 Makefile                | 5 +++++
 code/game/g_main.c      | 4 ++--
 code/qcommon/common.c   | 4 ++--
 code/qcommon/q_shared.h | 4 ++++
 code/sys/sys_main.c     | 2 +-
 5 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile
index fb7efd0..6594598 100644
--- a/Makefile
+++ b/Makefile
@@ -1098,6 +1098,11 @@ else
   STRIP_FLAG = -s
 endif
 
+# https://reproducible-builds.org/specs/source-date-epoch/
+ifdef SOURCE_DATE_EPOCH
+  BASE_CFLAGS += -DPRODUCT_DATE=\\\"$(shell date --date="@$$SOURCE_DATE_EPOCH" "+%b %_d %Y" | sed -e 's/ /\\\ /'g)\\\"
+endif
+
 BASE_CFLAGS += -DPRODUCT_VERSION=\\\"$(VERSION)\\\"
 BASE_CFLAGS += -Wformat=2 -Wno-format-zero-length -Wformat-security -Wno-format-nonliteral
 BASE_CFLAGS += -Wstrict-aliasing=2 -Wmissing-format-attribute
diff --git a/code/game/g_main.c b/code/game/g_main.c
index e3903bf..6d9d9fa 100644
--- a/code/game/g_main.c
+++ b/code/game/g_main.c
@@ -101,7 +101,7 @@ static cvarTable_t		gameCvarTable[] = {
 
 	// noset vars
 	{ NULL, "gamename", GAMEVERSION , CVAR_SERVERINFO | CVAR_ROM, 0, qfalse  },
-	{ NULL, "gamedate", __DATE__ , CVAR_ROM, 0, qfalse  },
+	{ NULL, "gamedate", PRODUCT_DATE , CVAR_ROM, 0, qfalse  },
 	{ &g_restarted, "g_restarted", "0", CVAR_ROM, 0, qfalse  },
 
 	// latched vars
@@ -408,7 +408,7 @@ void G_InitGame( int levelTime, int randomSeed, int restart ) {
 
 	G_Printf ("------- Game Initialization -------\n");
 	G_Printf ("gamename: %s\n", GAMEVERSION);
-	G_Printf ("gamedate: %s\n", __DATE__);
+	G_Printf ("gamedate: %s\n", PRODUCT_DATE);
 
 	srand( randomSeed );
 
diff --git a/code/qcommon/common.c b/code/qcommon/common.c
index 84b5f62..70a6b1b 100644
--- a/code/qcommon/common.c
+++ b/code/qcommon/common.c
@@ -2639,7 +2639,7 @@ void Com_Init( char *commandLine ) {
 	char	*s;
 	int	qport;
 
-	Com_Printf( "%s %s %s\n", Q3_VERSION, PLATFORM_STRING, __DATE__ );
+	Com_Printf( "%s %s %s\n", Q3_VERSION, PLATFORM_STRING, PRODUCT_DATE );
 
 	if ( setjmp (abortframe) ) {
 		Sys_Error ("Error during initialization");
@@ -2760,7 +2760,7 @@ void Com_Init( char *commandLine ) {
 	com_introPlayed = Cvar_Get( "com_introplayed", "0", CVAR_ARCHIVE);
 #endif
 
-	s = va("%s %s %s", Q3_VERSION, PLATFORM_STRING, __DATE__ );
+	s = va("%s %s %s", Q3_VERSION, PLATFORM_STRING, PRODUCT_DATE );
 	com_version = Cvar_Get ("version", s, CVAR_ROM | CVAR_SERVERINFO );
 	com_gamename = Cvar_Get("com_gamename", GAMENAME_FOR_MASTER, CVAR_SERVERINFO | CVAR_INIT);
 	com_protocol = Cvar_Get("com_protocol", va("%i", PROTOCOL_VERSION), CVAR_SERVERINFO | CVAR_INIT);
diff --git a/code/qcommon/q_shared.h b/code/qcommon/q_shared.h
index 1812f5e..791a5ab 100644
--- a/code/qcommon/q_shared.h
+++ b/code/qcommon/q_shared.h
@@ -70,6 +70,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
   #define PRODUCT_VERSION "1.36"
 #endif
 
+#ifndef PRODUCT_DATE
+#  define PRODUCT_DATE __DATE__
+#endif
+
 #define Q3_VERSION PRODUCT_NAME " " PRODUCT_VERSION
 
 #define MAX_TEAMNAME		32
diff --git a/code/sys/sys_main.c b/code/sys/sys_main.c
index 8bbc3a5..019ea12 100644
--- a/code/sys/sys_main.c
+++ b/code/sys/sys_main.c
@@ -553,7 +553,7 @@ void Sys_ParseArgs( int argc, char **argv )
 		if( !strcmp( argv[1], "--version" ) ||
 				!strcmp( argv[1], "-v" ) )
 		{
-			const char* date = __DATE__;
+			const char* date = PRODUCT_DATE;
 #ifdef DEDICATED
 			fprintf( stdout, Q3_VERSION " dedicated server (%s)\n", date );
 #else

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/ioquake3.git



More information about the Pkg-games-commits mailing list