From 04ab5f59663fe1e1ceb409d342e7a0f8c1d91728 Mon Sep 17 00:00:00 2001 From: Dominic Hargreaves Date: Thu, 21 Apr 2016 22:23:25 +0100 Subject: 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 (cherry picked from commit fab07d6b75d8ddd9735b4bc02a57bf23cda5330f) --- 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 1705ac733..9e05bffb8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,6 +67,11 @@ endif() # Use the following directories as includes include_directories(${Anope_BINARY_DIR}/include ${Anope_SOURCE_DIR}/include) +# 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 f3f05cb15..49e7c7ddc 100644 --- a/include/anope.h +++ b/include/anope.h @@ -350,7 +350,9 @@ namespace Anope template using hash_map = std::unordered_map; template using locale_hash_map = std::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 dc8d68f43..3b306de07 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -592,7 +592,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 -- cgit