ruby: make the build reproducible #101655
Motivation for this change
ext/io/console/io-console.gemspec was embedding a timestamp which made
This file has been fixed in
The text was updated successfully, but these errors were encountered:
when the build finally finished, nixpkgs-review spitted out a bunch of errors like this:
It looks like nixpkgs-review doesn't work if there are more than 1024 outputs being rebuilt.
ext/io/console/io-console.gemspec was embedding a timestamp which made the build not reproducible. Gems respect SOURCE_DATE_EPOCH so it's enough to just delete that line if it exists. This file has been fixed in ruby/io-console@679a941#diff-d8422f096931c58d4463e2489f62a228b0f24f0492950ba88c8c89a0d741cfe6 And then ruby regularly merges that gem into their own repository. Ruby master is fixed but none of the ruby releases have been fixed yet. lib/ruby/gems/2.6.0/specifications/default/io-console-0.4.7.gemspec now contains: s.date = "1980-01-01"
The generated Makefile is not reproducible. The HDRS section is inode dependent. "sitearchdir" and "sitelibdir" contains a timestamp and random postfix. See https://r13y.com/diff/8350ec80865096f84705f3e000d97f151760e768bf626e52c84570413c5e1093-f9dea788fe62d683e90e12e166f29b778c39c699a5be39f9262e5cffb77d3e45.html Instead of trying to make it reproducible, remove it entirely. It was only useful for generating the .so file and it no longer needed. See also https://bugs.ruby-lang.org/issues/15304 Fixes the rubyPackages.nokogiry reproducibility for example.