diff mbox

[U-Boot] Makefile: Use correct timezone for U_BOOT_TZ

Message ID 1438337042-30762-1-git-send-email-judge.packham@gmail.com
State Changes Requested
Delegated to: Tom Rini
Headers show

Commit Message

Chris Packham July 31, 2015, 10:04 a.m. UTC
When building with SOURCE_DATE_EPOCH the timezone is in UTC. When
building normally the timezone is taken from the build machine's locale
setting.

Fixes: f3f431a71272 ("Reproducible U-Boot build support, using
SOURCE_DATE_EPOCH")
Signed-off-by: Chris Packham <judge.packham@gmail.com>
---
Hopefully this will suit everyone. I've done a quick sanity test with
sandbox and the date shown in the version output looks to be what I
expect with/without SOURCE_DATE_EPOCH.

 Makefile | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

Comments

Bin Meng July 31, 2015, 12:14 p.m. UTC | #1
On Fri, Jul 31, 2015 at 6:04 PM, Chris Packham <judge.packham@gmail.com> wrote:
> When building with SOURCE_DATE_EPOCH the timezone is in UTC. When
> building normally the timezone is taken from the build machine's locale
> setting.
>
> Fixes: f3f431a71272 ("Reproducible U-Boot build support, using
> SOURCE_DATE_EPOCH")
> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> ---
> Hopefully this will suit everyone. I've done a quick sanity test with
> sandbox and the date shown in the version output looks to be what I
> expect with/without SOURCE_DATE_EPOCH.
>
>  Makefile | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 394ed09..f75c730 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1230,10 +1230,16 @@ define filechk_version.h
>  endef
>
>  define filechk_timestamp.h
> -       (SOURCE_DATE="$${SOURCE_DATE_EPOCH:+@$$SOURCE_DATE_EPOCH}"; \
> -       LC_ALL=C date -u -d "$${SOURCE_DATE:-now}" +'#define U_BOOT_DATE "%b %d %C%y"'; \
> -       LC_ALL=C date -u -d "$${SOURCE_DATE:-now}" +'#define U_BOOT_TIME "%T"'; \
> -       LC_ALL=C date -u -d "$${SOURCE_DATE:-now}" +'#define U_BOOT_TZ "%z"' )
> +       (if test -n "$${SOURCE_DATE_EPOCH}"; then \
> +               SOURCE_DATE="@$${SOURCE_DATE_EPOCH}"; \
> +               LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DATE "%b %d %C%y"'; \
> +               LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TIME "%T"'; \
> +               LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"'; \
> +       else \
> +               LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \
> +               LC_ALL=C date +'#define U_BOOT_TIME "%T"'; \
> +               LC_ALL=C date +'#define U_BOOT_TZ "%z"'; \
> +       fi)
>  endef
>
>  $(version_h): include/config/uboot.release FORCE
> --

Tested-by: Bin Meng <bmeng.cn@gmail.com>
Paul Kocialkowski July 31, 2015, 5:05 p.m. UTC | #2
Le vendredi 31 juillet 2015 à 22:04 +1200, Chris Packham a écrit :
> When building with SOURCE_DATE_EPOCH the timezone is in UTC. When
> building normally the timezone is taken from the build machine's locale
> setting.

Thanks a lot for introducing this, I thought it might disturb a few
people.

> Fixes: f3f431a71272 ("Reproducible U-Boot build support, using
> SOURCE_DATE_EPOCH")

It is incorrect to say that your patch fixes my commit, because my
commit didn't introduce anything unexpected or faulty.

If anything, it was merged before people gave their opinion about
whether UTC should be default. I was also going to introduce a patch
like yours later. For the record, UTC is default for Coreboot's
timestamps.

Thus, please remove that line.

Otherwise, this is:
Tested-By: Paul Kocialkowski <contact@paulk.fr>

> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> ---
> Hopefully this will suit everyone. I've done a quick sanity test with
> sandbox and the date shown in the version output looks to be what I
> expect with/without SOURCE_DATE_EPOCH.
> 
>  Makefile | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 394ed09..f75c730 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1230,10 +1230,16 @@ define filechk_version.h
>  endef
>  
>  define filechk_timestamp.h
> -	(SOURCE_DATE="$${SOURCE_DATE_EPOCH:+@$$SOURCE_DATE_EPOCH}"; \
> -	LC_ALL=C date -u -d "$${SOURCE_DATE:-now}" +'#define U_BOOT_DATE "%b %d %C%y"'; \
> -	LC_ALL=C date -u -d "$${SOURCE_DATE:-now}" +'#define U_BOOT_TIME "%T"'; \
> -	LC_ALL=C date -u -d "$${SOURCE_DATE:-now}" +'#define U_BOOT_TZ "%z"' )
> +	(if test -n "$${SOURCE_DATE_EPOCH}"; then \
> +		SOURCE_DATE="@$${SOURCE_DATE_EPOCH}"; \
> +		LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DATE "%b %d %C%y"'; \
> +		LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TIME "%T"'; \
> +		LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"'; \
> +	else \
> +		LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \
> +		LC_ALL=C date +'#define U_BOOT_TIME "%T"'; \
> +		LC_ALL=C date +'#define U_BOOT_TZ "%z"'; \
> +	fi)
>  endef
>  
>  $(version_h): include/config/uboot.release FORCE
Chris Packham Aug. 1, 2015, 9:40 a.m. UTC | #3
(note I had some patman config that erroneously included extra people
on the original Cc list, I've now dropped them)

On Sat, Aug 1, 2015 at 5:05 AM, Paul Kocialkowski <contact@paulk.fr> wrote:
> Le vendredi 31 juillet 2015 à 22:04 +1200, Chris Packham a écrit :
>> When building with SOURCE_DATE_EPOCH the timezone is in UTC. When
>> building normally the timezone is taken from the build machine's locale
>> setting.
>
> Thanks a lot for introducing this, I thought it might disturb a few
> people.
>
>> Fixes: f3f431a71272 ("Reproducible U-Boot build support, using
>> SOURCE_DATE_EPOCH")
>
> It is incorrect to say that your patch fixes my commit, because my
> commit didn't introduce anything unexpected or faulty.
>
> If anything, it was merged before people gave their opinion about
> whether UTC should be default. I was also going to introduce a patch
> like yours later. For the record, UTC is default for Coreboot's
> timestamps.
>
> Thus, please remove that line.

Done. v2 on it's way.

The other mailing list thread also talked about the possibility of
having SOURCE_DATE_TZOFFSET I'll look at a proof of concept for that.

> Otherwise, this is:
> Tested-By: Paul Kocialkowski <contact@paulk.fr>
>
>> Signed-off-by: Chris Packham <judge.packham@gmail.com>
>> ---
>> Hopefully this will suit everyone. I've done a quick sanity test with
>> sandbox and the date shown in the version output looks to be what I
>> expect with/without SOURCE_DATE_EPOCH.
>>
>>  Makefile | 14 ++++++++++----
>>  1 file changed, 10 insertions(+), 4 deletions(-)
>>
>> diff --git a/Makefile b/Makefile
>> index 394ed09..f75c730 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -1230,10 +1230,16 @@ define filechk_version.h
>>  endef
>>
>>  define filechk_timestamp.h
>> -     (SOURCE_DATE="$${SOURCE_DATE_EPOCH:+@$$SOURCE_DATE_EPOCH}"; \
>> -     LC_ALL=C date -u -d "$${SOURCE_DATE:-now}" +'#define U_BOOT_DATE "%b %d %C%y"'; \
>> -     LC_ALL=C date -u -d "$${SOURCE_DATE:-now}" +'#define U_BOOT_TIME "%T"'; \
>> -     LC_ALL=C date -u -d "$${SOURCE_DATE:-now}" +'#define U_BOOT_TZ "%z"' )
>> +     (if test -n "$${SOURCE_DATE_EPOCH}"; then \
>> +             SOURCE_DATE="@$${SOURCE_DATE_EPOCH}"; \
>> +             LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DATE "%b %d %C%y"'; \
>> +             LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TIME "%T"'; \
>> +             LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"'; \
>> +     else \
>> +             LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \
>> +             LC_ALL=C date +'#define U_BOOT_TIME "%T"'; \
>> +             LC_ALL=C date +'#define U_BOOT_TZ "%z"'; \
>> +     fi)
>>  endef
>>
>>  $(version_h): include/config/uboot.release FORCE
>
diff mbox

Patch

diff --git a/Makefile b/Makefile
index 394ed09..f75c730 100644
--- a/Makefile
+++ b/Makefile
@@ -1230,10 +1230,16 @@  define filechk_version.h
 endef
 
 define filechk_timestamp.h
-	(SOURCE_DATE="$${SOURCE_DATE_EPOCH:+@$$SOURCE_DATE_EPOCH}"; \
-	LC_ALL=C date -u -d "$${SOURCE_DATE:-now}" +'#define U_BOOT_DATE "%b %d %C%y"'; \
-	LC_ALL=C date -u -d "$${SOURCE_DATE:-now}" +'#define U_BOOT_TIME "%T"'; \
-	LC_ALL=C date -u -d "$${SOURCE_DATE:-now}" +'#define U_BOOT_TZ "%z"' )
+	(if test -n "$${SOURCE_DATE_EPOCH}"; then \
+		SOURCE_DATE="@$${SOURCE_DATE_EPOCH}"; \
+		LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_DATE "%b %d %C%y"'; \
+		LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TIME "%T"'; \
+		LC_ALL=C date -u -d "$${SOURCE_DATE}" +'#define U_BOOT_TZ "%z"'; \
+	else \
+		LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"'; \
+		LC_ALL=C date +'#define U_BOOT_TIME "%T"'; \
+		LC_ALL=C date +'#define U_BOOT_TZ "%z"'; \
+	fi)
 endef
 
 $(version_h): include/config/uboot.release FORCE