Improve support for SOURCE_DATE_EPOCH by forcing UTC timezone; fix TrueType epoch timezone#70
Open
gioele wants to merge 2 commits intokreativekorp:masterfrom
Open
Improve support for SOURCE_DATE_EPOCH by forcing UTC timezone; fix TrueType epoch timezone#70gioele wants to merge 2 commits intokreativekorp:masterfrom
gioele wants to merge 2 commits intokreativekorp:masterfrom
Conversation
The patch in PR kreativekorp#69 and its extension in commit 39936be did not address the reproducibility issues that arise when different timezones are used. The Reproducible Builds project suggests forcing the use of the UTC timezone whenever `SOURCE_DATE_EPOCH` is used.
The TrueType epoch is supposed to be understood as an UTC date. Instantiating `GregorianCalendar` with a date implicitly sets its timezone to the local timezone. Because it is not possible to pass both a date and a timezone to the constructor of `GregorianCalendar`, let's store the offset as a precalculated number (`date --date="1904-01-01 00:00:00 UTC" +%s`). While we are at it, let's also switch from negative- to positive-offset calculations.
f7569d1 to
7e0f2cf
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The patch in PR #69 and its extension in commit 39936be did not address the reproducibility issues that arise when different timezones are used.
The Reproducible Builds project suggests forcing the use of the UTC timezone whenever
SOURCE_DATE_EPOCHis used.In order to be fully timezone-independent, the code that deals with the TrueType epoch must be fixed as well.
The TrueType epoch is supposed to be understood as an UTC date. Instantiating
GregorianCalendarwith a date implicitly sets its timezone to the local timezone.Because it is not possible to pass both a date and a timezone to the constructor of
GregorianCalendar, let's store the offset as a precalculated number (date --date="1904-01-01 00:00:00 UTC" +%s).While we are at it, let's also switch from negative- to positive-offset calculations.