diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index 98e26a223b2..ee9b61259bb 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -27,6 +27,7 @@ let ver = version; tag = ver.gitTag; atLeast25 = lib.versionAtLeast ver.majMin "2.5"; + atLeast27 = lib.versionAtLeast ver.majMin "2.7"; baseruby = self.override { useRailsExpress = false; docSupport = false; @@ -116,6 +117,12 @@ let cp ${config}/config.sub tool/ ''; + # Force the revision.h generation. Somehow `revision.tmp` is an empty + # file and because we don't add `git` to buildInputs, hence the check is + # always true. + # https://github.com/ruby/ruby/commit/97a5af62a318fcd93a4e5e4428d576c0280ddbae + buildFlags = lib.optionals atLeast27 [ "REVISION_LATEST=0" ]; + configureFlags = ["--enable-shared" "--enable-pthread" "--with-soname=ruby_${tag}"] ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby" ++ op (!docSupport) "--disable-install-doc" @@ -246,4 +253,12 @@ in { git = "0pay6ic22ag3bnvxffhgwp7z6clkd0p93944a1l4lvc5hxc8v77j"; }; }; + + ruby_2_7 = generic { + version = rubyVersion "2" "7" "0" ""; + sha256 = { + src = "1glc3zpnih6h8mrgfcak0aa7cgmi4zyvxfyi6y2brwg2nn9sm6cc"; + git = "11iz64k95czs273mb10195d1j75mmbcgddfdx1vay5876ffw81dq"; + }; + }; } diff --git a/pkgs/development/interpreters/ruby/patchsets.nix b/pkgs/development/interpreters/ruby/patchsets.nix index 6fbb33b27fc..4838a1a09e5 100644 --- a/pkgs/development/interpreters/ruby/patchsets.nix +++ b/pkgs/development/interpreters/ruby/patchsets.nix @@ -16,4 +16,6 @@ "${patchSet}/patches/ruby/2.6/head/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.6/head/railsexpress/03-more-detailed-stacktrace.patch" ]; + "2.7.0" = ops useRailsExpress [ # no patches yet (2019-12-25) + ]; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 955bea68187..9fc2ea23b17 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9352,7 +9352,8 @@ in }) ruby_2_4 ruby_2_5 - ruby_2_6; + ruby_2_6 + ruby_2_7; rubyMinimal = ruby.override { # gem support is minimal overhead