diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:16:13 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:16:13 +0000 |
commit | e90fcc54809db2591dc083f43ef54c6ec8c60847 (patch) | |
tree | f20bc206c3c2d5d59d37c46c5cf5d53a20642556 /src/version.c | |
parent | Initial commit. (diff) | |
download | exim4-e90fcc54809db2591dc083f43ef54c6ec8c60847.tar.xz exim4-e90fcc54809db2591dc083f43ef54c6ec8c60847.zip |
Adding upstream version 4.96.upstream/4.96upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/version.c')
-rw-r--r-- | src/version.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/version.c b/src/version.c new file mode 100644 index 0000000..118ebbd --- /dev/null +++ b/src/version.c @@ -0,0 +1,68 @@ +/************************************************* +* Exim - an Internet mail transport agent * +*************************************************/ + +/* Copyright (c) University of Cambridge 1995 - 2009 */ +/* Copyright (c) The Exim Maintainers 2010 - 2018 */ +/* See the file NOTICE for conditions of use and distribution. */ + +/* Function for setting up the version string. */ + +#include "exim.h" + +#include "version.h" + + +/* The header file cnumber.h contains a single line containing the +compilation number, making it easy to have it updated automatically. +Hence the fudgery below to get the number turned into a string, since +we can't use #include inside a macro argument list */ + +void +version_init(void) +{ +static uschar cnumber_buffer[24]; +static uschar date_buffer[32]; + +uschar today[20]; +uschar *version_cnumber_format; + +int cnumber = +#include "cnumber.h" +; + +/* The odd magic after each of these is so they can be easily found +for automatic patching to standard values when running regression tests. +The reason that version_cnumber_format isn't just written inline in the +sprintf() call is the gcc -Wall warns about a \0 in a format string. */ + +version_cnumber = cnumber_buffer; +version_cnumber_format = US"%d\0<<eximcnumber>>"; +sprintf(CS version_cnumber, CS version_cnumber_format, cnumber); +version_string = US EXIM_VERSION_STR "\0<<eximversion>>"; + +#ifdef EXIM_BUILD_DATE_OVERRIDE +/* Reproducible build support; build tooling should have given us something looking like + * "25-Feb-2017 20:15:40" in EXIM_BUILD_DATE_OVERRIDE based on $SOURCE_DATE_EPOCH in environ + * per <https://reproducible-builds.org/specs/source-date-epoch/> + */ +version_date = date_buffer; +version_date[0] = 0; +Ustrncat(version_date, EXIM_BUILD_DATE_OVERRIDE, sizeof(date_buffer)); + +#else +Ustrcpy(today, US __DATE__); +if (today[4] == ' ') today[4] = '0'; +today[3] = today[6] = '-'; + +version_date = date_buffer; +version_date[0] = 0; +Ustrncat(version_date, today+4, 3); +Ustrncat(version_date, today, 4); +Ustrncat(version_date, today+7, 4); +Ustrcat(version_date, US" "); +Ustrcat(version_date, US __TIME__); +#endif +} + +/* End of version.c */ |