From fa54d373d9a368151675383828293028235a4089 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Thu, 26 May 2016 10:02:54 +0100 Subject: [PATCH] util: Drop 'date' and 'time' arguments from ovs_set_program_name The 'date' and 'time' arguments are normally being set by 'ovs_set_program_name' using __DATE__ and __TIME__. However, this breaks reproducible builds since even without any changes in the toolchain, build system etc, the end binary will still differ in that regard. This is also visible when building with -Wdate-time: utilities/ovs-dpctl.c:61:29: warning: macro "__DATE__" might prevent reproducible builds [-Wdate-time] set_program_name(argv[0]); ^ and it's also something that triggers the following warning in the openSUSE OBS builds: [...] openvswitch.x86_64: W: file-contains-date-and-time /usr/bin/ovs-ofctl openvswitch.x86_64: W: file-contains-date-and-time /usr/bin/ovs-appctl Your file uses __DATE and __TIME__ this causes the package to rebuild when not needed [...] This patch drops these two arguments from ovs_set_program_name__ and renames the function to ovs_set_program_name dropping the previous preprocessor macro in the process. This finally removes the remaining references to __DATE__ and __TIME__ from the sources which is something that has already been done in commit 26bfaeaa9687 ("Stop using __DATE__ and __TIME__ in startup string.") for the kernel datapath. Cc: Jan Engelhardt Signed-off-by: Markos Chandras Signed-off-by: Ben Pfaff --- AUTHORS | 1 + include/openvswitch/util.h | 6 +----- lib/util.c | 17 +++++------------ 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/AUTHORS b/AUTHORS index 6abb07873..90789d10f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -144,6 +144,7 @@ Mark D. Gray mark.d.gray@intel.com Mark Hamilton mhamilton@nicira.com Mark Kavanagh mark.b.kavanagh@intel.com Mark Maglana mmaglana@gmail.com +Markos Chandras mchandras@suse.de Martin Casado casado@nicira.com Martino Fornasa mf@fornasa.it Maryam Tahhan maryam.tahhan@intel.com diff --git a/include/openvswitch/util.h b/include/openvswitch/util.h index 2230b2a0c..363fa39b6 100644 --- a/include/openvswitch/util.h +++ b/include/openvswitch/util.h @@ -25,11 +25,7 @@ extern "C" { #endif -void ovs_set_program_name__(const char *name, const char *version, - const char *date, const char *time); - -#define ovs_set_program_name(name, version) \ - ovs_set_program_name__(name, version, __DATE__, __TIME__) +void ovs_set_program_name(const char *name, const char *version); const char *ovs_get_program_name(void); const char *ovs_get_program_version(void); diff --git a/lib/util.c b/lib/util.c index 94311ac6a..6ca04ad88 100644 --- a/lib/util.c +++ b/lib/util.c @@ -461,14 +461,9 @@ ovs_strerror(int error) * vSwitch. Otherwise, it is assumed to be an external program linking against * the Open vSwitch libraries. * - * The 'date' and 'time' arguments should likely be called with - * "__DATE__" and "__TIME__" to use the time the binary was built. - * Alternatively, the "ovs_set_program_name" macro may be called to do this - * automatically. */ void -ovs_set_program_name__(const char *argv0, const char *version, const char *date, - const char *time) +ovs_set_program_name(const char *argv0, const char *version) { char *basename; #ifdef _WIN32 @@ -496,14 +491,12 @@ ovs_set_program_name__(const char *argv0, const char *version, const char *date, free(program_version); if (!strcmp(version, VERSION)) { - program_version = xasprintf("%s (Open vSwitch) "VERSION"\n" - "Compiled %s %s\n", - program_name, date, time); + program_version = xasprintf("%s (Open vSwitch) "VERSION"\n", + program_name); } else { program_version = xasprintf("%s %s\n" - "Open vSwitch Library "VERSION"\n" - "Compiled %s %s\n", - program_name, version, date, time); + "Open vSwitch Library "VERSION"\n", + program_name, version); } } -- 2.20.1