Merge pull request #90151 from doronbehar/ruby-gcc-ref
This commit is contained in:
commit
32fdf2118c
@ -89,6 +89,18 @@
|
||||
user D-Bus session available also for non-graphical logins.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>rubyMinimal</literal> was removed due to being unused and
|
||||
unusable. The default ruby interpreter includes JIT support, which makes
|
||||
it reference it's compiler. Since JIT support is probably needed by some
|
||||
Gems, it was decided to enable this feature with all cc references by
|
||||
default, and allow to build a Ruby derivation without references to cc,
|
||||
by setting <literal>jitSupport = false;</literal> in an overlay. See
|
||||
<link xlink:href="https://github.com/NixOS/nixpkgs/pull/90151">#90151</link>
|
||||
for more info.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The option <option>fonts.enableFontDir</option> has been renamed to
|
||||
|
@ -44,11 +44,22 @@ let
|
||||
, groff, docSupport ? true
|
||||
, libyaml, yamlSupport ? true
|
||||
, libffi, fiddleSupport ? true
|
||||
# By default, ruby has 3 observed references to stdenv.cc:
|
||||
#
|
||||
# - If you run:
|
||||
# ruby -e "puts RbConfig::CONFIG['configure_args']"
|
||||
# puts a reference to the C compiler in the binary.
|
||||
# This might be required by some gems at runtime,
|
||||
# but we allow to strip it out for smaller closure size.
|
||||
, removeReferencesTo, removeReferenceToCC ? true
|
||||
# - In:
|
||||
# $out/${passthru.libPath}/${stdenv.targetPlatform.system}/rbconfig.rb
|
||||
# Or (usually):
|
||||
# $(nix-build -A ruby)/lib/ruby/2.6.0/x86_64-linux/rbconfig.rb
|
||||
# - In $out/lib/libruby.so and/or $out/lib/libruby.dylib
|
||||
#
|
||||
# Since some Gems require JIT support, there's probably no
|
||||
# escape from this reference. Hence, it was decided to enable this
|
||||
# feature by default, as it's enabled by default by ruby's ./configure
|
||||
# script. If you'd like to have a ruby without reference to cc, setting
|
||||
# jitSupport to false should remove all known references mentioned above.
|
||||
, removeReferencesTo, jitSupport ? true
|
||||
, autoreconfHook, bison, autoconf
|
||||
, buildEnv, bundler, bundix
|
||||
, libiconv, libobjc, libunwind, Foundation
|
||||
@ -121,6 +132,7 @@ let
|
||||
|
||||
configureFlags = ["--enable-shared" "--enable-pthread" "--with-soname=ruby-${version}"]
|
||||
++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
|
||||
++ op (!jitSupport) "--disable-jit-support"
|
||||
++ op (!docSupport) "--disable-install-doc"
|
||||
++ ops stdenv.isDarwin [
|
||||
# on darwin, we have /usr/include/tk.h -- so the configure script detects
|
||||
@ -157,11 +169,14 @@ let
|
||||
# Remove unnecessary groff reference from runtime closure, since it's big
|
||||
sed -i '/NROFF/d' $out/lib/ruby/*/*/rbconfig.rb
|
||||
${
|
||||
lib.optionalString removeReferenceToCC ''
|
||||
lib.optionalString (!jitSupport) ''
|
||||
# Get rid of the CC runtime dependency
|
||||
${removeReferencesTo}/bin/remove-references-to \
|
||||
-t ${stdenv.cc} \
|
||||
$out/lib/libruby*
|
||||
${removeReferencesTo}/bin/remove-references-to \
|
||||
-t ${stdenv.cc} \
|
||||
$out/${passthru.libPath}/${stdenv.targetPlatform.system}/rbconfig.rb
|
||||
''
|
||||
}
|
||||
# Bundler tries to create this directory
|
||||
|
@ -501,6 +501,7 @@ mapAliases ({
|
||||
ruby_2_5_0 = throw "ruby_2_5_0 was deprecated on 2018-02-13: use a newer version of ruby";
|
||||
rubyPackages_2_4 = throw "rubyPackages_2_4 was deprecated in 2019-12: use a newer version of rubyPackages instead";
|
||||
rubygems = throw "rubygems was deprecated on 2016-03-02: rubygems is now bundled with ruby";
|
||||
rubyMinimal = throw "rubyMinimal was removed due to being unused";
|
||||
rxvt_unicode-with-plugins = rxvt-unicode; # added 2020-02-02
|
||||
rxvt_unicode = rxvt-unicode-unwrapped; # added 2020-02-02
|
||||
urxvt_autocomplete_all_the_things = rxvt-unicode-plugins.autocomplete-all-the-things; # added 2020-02-02
|
||||
|
@ -10545,19 +10545,6 @@ in
|
||||
ruby_2_6
|
||||
ruby_2_7;
|
||||
|
||||
rubyMinimal = ruby.override {
|
||||
# gem support is minimal overhead
|
||||
rubygemsSupport = true;
|
||||
useRailsExpress = false;
|
||||
zlibSupport = false;
|
||||
opensslSupport = false;
|
||||
gdbmSupport = false;
|
||||
cursesSupport = false;
|
||||
docSupport = false;
|
||||
yamlSupport = false;
|
||||
fiddleSupport = false;
|
||||
};
|
||||
|
||||
ruby = ruby_2_6;
|
||||
rubyPackages = rubyPackages_2_6;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user