diff options
author | Jörg Thalheim <joerg@thalheim.io> | 2023-02-02 18:39:51 +0100 |
---|---|---|
committer | Jörg Thalheim <joerg@thalheim.io> | 2023-02-02 18:41:53 +0100 |
commit | 42a4f2fd0ae92e2e27a1b8902931cbd2e4b88f8c (patch) | |
tree | 6820a20b87072e25a47056fe9dd714423ddcfea0 /pkgs/development/interpreters/ruby | |
parent | e9211ef1843a07e2d8b750c078bfdf7da7763e79 (diff) |
ruby: fix default CC not beeing set
This is a regression introduced in https://github.com/NixOS/nixpkgs/pull/202041
Diffstat (limited to 'pkgs/development/interpreters/ruby')
-rw-r--r-- | pkgs/development/interpreters/ruby/default.nix | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix index 4461bd08365ea..28c508cae8ba7 100644 --- a/pkgs/development/interpreters/ruby/default.nix +++ b/pkgs/development/interpreters/ruby/default.nix @@ -190,14 +190,7 @@ let # Allow to override compiler. This is important for cross compiling as # we need to set a compiler that is different from the build one. - awk -i inplace -F' = ' \ - ' # operate on the line starting with - /^ CONFIG\["CC"\]/ { - # replace the right hand side - sub($2, "ENV[\"CC\"] || \"1\"") - }; { print }' "$rbConfig" - # test that the line isn't mangled in case upstream made the above unnecessary - grep -qx ' CONFIG\["CC"\] = ENV\["CC"\] || "1"' "$rbConfig" + sed -i 's/CONFIG\["CC"\] = "\(.*\)"/CONFIG["CC"] = if ENV["CC"].nil? || ENV["CC"].empty? then "\1" else ENV["CC"] end/' "$rbConfig" # Remove unnecessary external intermediate files created by gems extMakefiles=$(find $out/${passthru.gemPath} -name Makefile) @@ -235,6 +228,21 @@ let $rbConfig $out/lib/libruby* ''; + installCheckPhase = '' + overriden_cc=$(CC=foo $out/bin/ruby -rrbconfig -e 'puts RbConfig::CONFIG["CC"]') + if [[ "$overriden_cc" != "foo" ]]; then + echo "CC cannot be overwritten: $overriden_cc != foo" >&2 + false + fi + + fallback_cc=$(unset CC; $out/bin/ruby -rrbconfig -e 'puts RbConfig::CONFIG["CC"]') + if [[ "$fallback_cc" != "$CC" ]]; then + echo "CC='$fallback_cc' should be '$CC' by default" >&2 + false + fi + ''; + doInstallCheck = true; + disallowedRequisites = op (!jitSupport) stdenv.cc.cc ++ op useBaseRuby baseRuby; |