summary refs log tree commit diff
path: root/pkgs/development/interpreters/ruby
diff options
context:
space:
mode:
authorzimbatm <zimbatm@zimbatm.com>2020-10-25 15:48:37 +0100
committerzimbatm <zimbatm@zimbatm.com>2020-10-27 14:20:08 +0100
commit7aee32121aab12571a3d9b20992d1b61c76d3f58 (patch)
treef4553f28b28f2b5d2b19a9e3f219d1b8321efa91 /pkgs/development/interpreters/ruby
parent8b98955451a7175e61b2a0aa2f289acbc98ad10a (diff)
downloadnixpkgs-7aee32121aab12571a3d9b20992d1b61c76d3f58.tar
nixpkgs-7aee32121aab12571a3d9b20992d1b61c76d3f58.tar.gz
nixpkgs-7aee32121aab12571a3d9b20992d1b61c76d3f58.tar.bz2
nixpkgs-7aee32121aab12571a3d9b20992d1b61c76d3f58.tar.lz
nixpkgs-7aee32121aab12571a3d9b20992d1b61c76d3f58.tar.xz
nixpkgs-7aee32121aab12571a3d9b20992d1b61c76d3f58.tar.zst
nixpkgs-7aee32121aab12571a3d9b20992d1b61c76d3f58.zip
ruby: make the build reproducible
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
https://github.com/ruby/io-console/commit/679a941d05d869f5e575730f6581c027203b7b26#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"
Diffstat (limited to 'pkgs/development/interpreters/ruby')
-rw-r--r--pkgs/development/interpreters/ruby/default.nix3
1 files changed, 3 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index 7b36b04d114..189be8945fa 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -108,6 +108,9 @@ let
           sed -i configure.ac -e '/config.guess/d'
           cp --remove-destination ${config}/config.guess tool/
           cp --remove-destination ${config}/config.sub tool/
+          # Make the build reproducible for ruby <= 2.7
+          # See https://github.com/ruby/io-console/commit/679a941d05d869f5e575730f6581c027203b7b26#diff-d8422f096931c58d4463e2489f62a228b0f24f0492950ba88c8c89a0d741cfe6
+          sed -i ext/io/console/io-console.gemspec -e '/s\.date/d'
         '';
 
         # Force the revision.h generation. Somehow `revision.tmp` is an empty