From fab07d6b75d8ddd9735b4bc02a57bf23cda5330f Mon Sep 17 00:00:00 2001 From: Dominic Hargreaves Date: Thu, 21 Apr 2016 22:23:25 +0100 Subject: [PATCH] Optionally strip variable build date from compiled program MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To aid build reproducibility, don't include the build date/time if -DREPRODUCIBLE_BUILD is defined. Based on the patch provided by Alexis Bienvenüe in the Debian report. Bug-Debian: https://bugs.debian.org/820152 Patch-Name: reproducible_datetime.diff --- CMakeLists.txt | 5 +++++ include/anope.h | 2 ++ src/misc.cpp | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b5d1d381b..595a12456 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -239,6 +239,11 @@ option(USE_PCH "Use precompiled headers" OFF) # source include directory so the precompiled headers work correctly. include_directories(${Anope_BINARY_DIR}/include ${Anope_SOURCE_DIR}/include ${Anope_BINARY_DIR}/language ${Anope_SOURCE_DIR}/modules/pseudoclients) +# Pass on REPRODUCIBLE_BUILD +if(REPRODUCIBLE_BUILD) + add_definitions(-DREPRODUCIBLE_BUILD) +endif(REPRODUCIBLE_BUILD) + # If using Windows, always add the _WIN32 define if(WIN32) add_definitions(-D_WIN32) diff --git a/include/anope.h b/include/anope.h index dadc73b13..48a4f7674 100644 --- a/include/anope.h +++ b/include/anope.h @@ -336,7 +336,9 @@ namespace Anope template class multimap : public std::multimap { }; template class hash_map : public TR1NS::unordered_map { }; +#ifndef REPRODUCIBLE_BUILD static const char *const compiled = __TIME__ " " __DATE__; +#endif /** The time Anope started. */ diff --git a/src/misc.cpp b/src/misc.cpp index e1d78c800..8149481ca 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -632,7 +632,11 @@ Anope::string Anope::VersionShort() Anope::string Anope::VersionBuildString() { +#ifdef REPRODUCIBLE_BUILD + Anope::string s = "build #" + stringify(BUILD); +#else Anope::string s = "build #" + stringify(BUILD) + ", compiled " + Anope::compiled; +#endif Anope::string flags; #ifdef DEBUG_BUILD