Reproducible builds: Write the rpm changelog entry with a fixed date - #10834
Merged
Conversation
linus-mullvad
force-pushed
the
reproducible-builds-rpm-changelog
branch
from
July 30, 2026 07:50
cb2acd1 to
e5b8fda
Compare
dlon
previously approved these changes
Jul 30, 2026
dlon
left a comment
Member
There was a problem hiding this comment.
@dlon reviewed 1 file and all commit messages, and made 1 comment.
Reviewable status:complete! all files reviewed, all discussions resolved.
Collaborator
Author
|
I contributed a PR upstream that fixes the bug in fpm. If they merge that, and when electron-builder bumps to the fixed version, we can remove this workaround again. jordansissel/fpm#2155 |
fpm stamps the %changelog entry it generates with the current date. Its deb output copies SOURCE_DATE_EPOCH into the attribute that date is read from, but its rpm output never does, so the entry followed the wall clock. rpm parses the date into the CHANGELOGTIME header, so two rpms built from the same commit on different days differed. Pass the entry to fpm instead of letting it generate one, since reproducible builds require it to be fixed. The date is formatted in UTC, so the time zone of the build machine cannot shift it across a day boundary either. fpm renders it in local time.
linus-mullvad
force-pushed
the
reproducible-builds-rpm-changelog
branch
from
July 30, 2026 09:35
e5b8fda to
7b31a2e
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.
Another day, another reproducible builds PR. Joke intended (the fact that this PR stops the RPM build to break on different days)
fpm stamps the
%changelogentry it generates with the build machine current date at build time. Its deb output copiesSOURCE_DATE_EPOCH(as it should) into the attribute that date is read from, but its rpm output never does, so the entry followed the wall clock. rpm parses the date into theCHANGELOGTIMEheader, so two rpms built from the same commit on different days differed.Pass the entry to fpm instead of letting it generate one, since reproducible builds require it to be fixed. The date is formatted in UTC, so the time zone of the build machine cannot shift it across a day boundary either. fpm renders it in local time.
This workaround is due to a bug in fpm. It should honor
SOURCE_DATE_EPOCH, but it does not. I reported it upstream at jordansissel/fpm#2154.This change is