Fix SOURCE_DATE_EPOCH bug; use UTC
Thanks to Juro Bystricky for the suggestion and prototype. Reviewed-by: Richard Levitte <levitte@openssl.org> (Merged from https://github.com/openssl/openssl/pull/4644)
This commit is contained in:
parent
47c9926a92
commit
8a8d9e1905
2 changed files with 32 additions and 36 deletions
|
@ -18,41 +18,22 @@ unsigned long OpenSSL_version_num(void)
|
|||
|
||||
const char *OpenSSL_version(int t)
|
||||
{
|
||||
if (t == OPENSSL_VERSION)
|
||||
switch (t) {
|
||||
case OPENSSL_VERSION:
|
||||
return OPENSSL_VERSION_TEXT;
|
||||
if (t == OPENSSL_BUILT_ON) {
|
||||
#ifdef DATE
|
||||
# ifdef OPENSSL_USE_BUILD_DATE
|
||||
case OPENSSL_BUILT_ON:
|
||||
return DATE;
|
||||
# else
|
||||
return "built on: reproducible build, date unspecified";
|
||||
# endif
|
||||
#else
|
||||
return "built on: date not available";
|
||||
#endif
|
||||
}
|
||||
if (t == OPENSSL_CFLAGS) {
|
||||
#ifdef CFLAGS
|
||||
return CFLAGS;
|
||||
#else
|
||||
return "compiler: information not available";
|
||||
#endif
|
||||
}
|
||||
if (t == OPENSSL_PLATFORM) {
|
||||
#ifdef PLATFORM
|
||||
case OPENSSL_CFLAGS:
|
||||
return compiler_flags;
|
||||
case OPENSSL_PLATFORM:
|
||||
return PLATFORM;
|
||||
#else
|
||||
return "platform: information not available";
|
||||
#endif
|
||||
}
|
||||
if (t == OPENSSL_DIR) {
|
||||
case OPENSSL_DIR:
|
||||
#ifdef OPENSSLDIR
|
||||
return "OPENSSLDIR: \"" OPENSSLDIR "\"";
|
||||
#else
|
||||
return "OPENSSLDIR: N/A";
|
||||
#endif
|
||||
}
|
||||
if (t == OPENSSL_ENGINES_DIR) {
|
||||
case OPENSSL_ENGINES_DIR:
|
||||
#ifdef ENGINESDIR
|
||||
return "ENGINESDIR: \"" ENGINESDIR "\"";
|
||||
#else
|
||||
|
|
|
@ -1,26 +1,43 @@
|
|||
#! /usr/bin/env perl
|
||||
# Copyright 2014-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
# Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the OpenSSL license (the "License"). You may not use
|
||||
# this file except in compliance with the License. You can obtain a copy
|
||||
# in the file LICENSE in the source distribution or at
|
||||
# https://www.openssl.org/source/license.html
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
my ($cflags, $platform) = @ARGV;
|
||||
|
||||
$cflags = "compiler: $cflags";
|
||||
$date = localtime();
|
||||
|
||||
my $date = gmtime($ENV{'SOURCE_DATE_EPOCH'} || time()) . " UTC";
|
||||
|
||||
print <<"END_OUTPUT";
|
||||
/* auto-generated by util/mkbuildinf.pl for crypto/cversion.c */
|
||||
#define CFLAGS cflags
|
||||
/*
|
||||
* Generate CFLAGS as an array of individual characters. This is a
|
||||
* WARNING: do not edit!
|
||||
* Generated by util/mkbuildinf.pl
|
||||
*
|
||||
* Copyright 2014-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the OpenSSL license (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
* in the file LICENSE in the source distribution or at
|
||||
* https://www.openssl.org/source/license.html
|
||||
*/
|
||||
|
||||
#define PLATFORM "platform: $platform"
|
||||
#define DATE "built on: $date"
|
||||
|
||||
/*
|
||||
* Generate compiler_flags as an array of individual characters. This is a
|
||||
* workaround for the situation where CFLAGS gets too long for a C90 string
|
||||
* literal
|
||||
*/
|
||||
static const char cflags[] = {
|
||||
static const char compiler_flags[] = {
|
||||
END_OUTPUT
|
||||
|
||||
my $ctr = 0;
|
||||
foreach my $c (split //, $cflags) {
|
||||
$c =~ s|([\\'])|\\$1|;
|
||||
|
@ -36,6 +53,4 @@ foreach my $c (split //, $cflags) {
|
|||
print <<"END_OUTPUT";
|
||||
'\\0'
|
||||
};
|
||||
#define PLATFORM "platform: $platform"
|
||||
#define DATE "built on: $date"
|
||||
END_OUTPUT
|
||||
|
|
Loading…
Reference in a new issue