components/vim/patches/build_date.patch
author Danek Duvall <danek.duvall@oracle.com>
Mon, 26 Sep 2016 21:06:11 -0700
changeset 7049 e8d705cba87d
child 7378 a73f22c6eecf
permissions -rw-r--r--
24676533 vim 8.0.0016 15542060 Better defaults for vim 15631212 vim should be vim, not vi 17585183 vim --version still refers to opensolaris.org
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7049
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     1
From 51ad2b56dce42fa1a44ba663946ffe04bd3e4378 Mon Sep 17 00:00:00 2001
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     2
From: James McCoy <[email protected]>
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     3
Date: Thu, 28 Jan 2016 10:55:11 -0500
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     4
Subject: [PATCH] Support defining compilation date in $SOURCE_DATE_EPOCH
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     5
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     6
There is an ongoing effort[0] to make FOSS software reproducibly
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     7
buildable.  In order to make Vim build reproducibly, it is necessary to
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     8
allow defining the date/time that is part of VIM_VERSION_LONG as part of
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     9
the build process.
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    10
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    11
This commit enables that by adding support for the SOURCE_DATE_EPOCH
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    12
spec[1].  When the $SOURCE_DATE_EPOCH environment variable is defined,
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    13
it will be used to populate the BUILD_DATE preprocessor define.
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    14
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    15
If BUILD_DATE is not defined, the existing behavior of relying on the
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    16
preprocessor's __DATE__/__TIME__ symbols will be used.
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    17
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    18
[0]: https://reproducible-builds.org/
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    19
[1]: https://reproducible-builds.org/specs/source-date-epoch/
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    20
---
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    21
 src/config.h.in  |  3 +++
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    22
 src/configure.in | 10 ++++++++++
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    23
 src/version.c    |  6 ++++++
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    24
 3 files changed, 19 insertions(+)
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    25
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    26
diff --git a/src/auto/configure b/src/auto/configure
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    27
index fea1f2c..4698269 100755
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    28
--- a/src/auto/configure
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    29
+++ b/src/auto/configure
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    30
@@ -4081,6 +4081,15 @@ $as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    31
 fi
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    32
 
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    33
 
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    34
+if test -n "$SOURCE_DATE_EPOCH"; then
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    35
+  DATE_FMT="%b %d %Y %H:%M:%S"
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    36
+  BUILD_DATE=$(LC_ALL=C gdate -u -d "@$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || LC_ALL=C date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || LC_ALL=C date -u "+$DATE_FMT")
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    37
+  cat >>confdefs.h <<_ACEOF
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    38
+#define BUILD_DATE "$BUILD_DATE"
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    39
+_ACEOF
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    40
+
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    41
+fi
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    42
+
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    43
 
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    44
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-fail-if-missing argument" >&5
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    45
 $as_echo_n "checking --enable-fail-if-missing argument... " >&6; }
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    46
diff --git a/src/config.h.in b/src/config.h.in
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    47
index 8e115f5..2b64247 100644
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    48
--- a/src/config.h.in
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    49
+++ b/src/config.h.in
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    50
@@ -30,6 +30,9 @@
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    51
 /* Define when __DATE__ " " __TIME__ can be used */
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    52
 #undef HAVE_DATE_TIME
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    53
 
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    54
+/* Defined as the date of last modification */
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    55
+#undef BUILD_DATE
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    56
+
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    57
 /* Define when __attribute__((unused)) can be used */
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    58
 #undef HAVE_ATTRIBUTE_UNUSED
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    59
 
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    60
diff --git a/src/configure.in b/src/configure.in
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    61
index 92a1bb5..70367ca 100644
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    62
--- a/src/configure.in
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    63
+++ b/src/configure.in
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    64
@@ -29,6 +29,16 @@ dnl in autoconf needs it, where it uses STDC_HEADERS.
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    65
 AC_HEADER_STDC
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    66
 AC_HEADER_SYS_WAIT
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    67
 
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    68
+dnl If $SOURCE_DATE_EPOCH is present in the environment, use that as the
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    69
+dnl "compiled" timestamp in :version's output.  Attempt to get the formatted
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    70
+dnl date using GNU date syntax, BSD date syntax, and finally falling back to
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    71
+dnl just using the current time.
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    72
+if test -n "$SOURCE_DATE_EPOCH"; then
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    73
+  DATE_FMT="%b %d %Y %H:%M:%S"
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    74
+  BUILD_DATE=$(LC_ALL=C gdate -u -d "@$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || LC_ALL=C date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || LC_ALL=C date -u "+$DATE_FMT")
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    75
+  AC_DEFINE_UNQUOTED(BUILD_DATE, ["$BUILD_DATE"])
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    76
+fi
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    77
+
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    78
 dnl Check for the flag that fails if stuff are missing.
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    79
 
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    80
 AC_MSG_CHECKING(--enable-fail-if-missing argument)
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    81
diff --git a/src/version.c b/src/version.c
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    82
index 766937d..9cb6e57 100644
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    83
--- a/src/version.c
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    84
+++ b/src/version.c
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    85
@@ -44,11 +44,17 @@ make_version(void)
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    86
      * VAX C can't catenate strings in the preprocessor.
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    87
      */
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    88
     strcpy(longVersion, VIM_VERSION_LONG_DATE);
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    89
+#ifdef BUILD_DATE
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    90
+    strcat(longVersion, BUILD_DATE);
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    91
+#else
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    92
     strcat(longVersion, __DATE__);
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    93
     strcat(longVersion, " ");
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    94
     strcat(longVersion, __TIME__);
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    95
+#endif
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    96
     strcat(longVersion, ")");
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    97
 }
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    98
+# elif defined(BUILD_DATE)
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    99
+char	*longVersion = VIM_VERSION_LONG_DATE BUILD_DATE ")";
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   100
 # else
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   101
 char	*longVersion = VIM_VERSION_LONG_DATE __DATE__ " " __TIME__ ")";
e8d705cba87d 24676533 vim 8.0.0016
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   102
 # endif