From 7aee32121aab12571a3d9b20992d1b61c76d3f58 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Sun, 25 Oct 2020 15:48:37 +0100 Subject: [PATCH] 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" --- pkgs/development/interpreters/ruby/default.nix | 3 +++ 1 file changed, 3 insertions(+) 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