ruby: Use hostPlatform
Using `stdenv.targetPlatform` gives the wrong platform in buildPackages.
E.g.:
```
$ nix-diff --color never $(env -i nix-instantiate -A pkgs.ruby -A pkgs.pkgsCross.aarch64-multiplatform.buildPackages.ruby)
- /nix/store/w8wk99p4gadns35n2l0fr7wx56jlwnnx-ruby-2.6.6.drv:{out}
+ /nix/store/5ywj7nicjai6ji4g33yh6nvz1b5fq7xw-ruby-2.6.6.drv:{out}
• The input named `ruby-2.6.6` differs
- /nix/store/4a6nag89dcxwdf32820z6dfwwpfgab8s-ruby-2.6.6.drv:{out}
+ /nix/store/40pakkdfv578zffx3y11qd5ckcp2xpzm-ruby-2.6.6.drv:{out}
• The environments do not match:
postInstall=''
# Remove unnecessary groff reference from runtime closure, since it's big
sed -i '/NROFF/d' $out/lib/ruby/*/*/rbconfig.rb
# Bundler tries to create this directory
mkdir -p $out/nix-support
cat > $out/nix-support/setup-hook <<EOF
addGemPath() {
addToSearchPath GEM_PATH \$1/lib/ruby/gems/2.6.0
}
addRubyLibPath() {
addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby
addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby/2.6.0
addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby/2.6.0/←x86_←→aarch→64-linux
}
addEnvHooks "$hostOffset" addGemPath
addEnvHooks "$hostOffset" addRubyLibPath
EOF
rbConfig=$(find $out/lib/ruby -name rbconfig.rb)
''
• Skipping environment comparison
```
`pkgs.pkgsCros.*.buildPackage.ruby` should be equivalent to `pkgs.ruby`.
It wasn't.
This commit is contained in:
@@ -50,7 +50,7 @@ let
|
|||||||
# - If you run:
|
# - If you run:
|
||||||
# ruby -e "puts RbConfig::CONFIG['configure_args']"
|
# ruby -e "puts RbConfig::CONFIG['configure_args']"
|
||||||
# - In:
|
# - In:
|
||||||
# $out/${passthru.libPath}/${stdenv.targetPlatform.system}/rbconfig.rb
|
# $out/${passthru.libPath}/${stdenv.hostPlatform.system}/rbconfig.rb
|
||||||
# Or (usually):
|
# Or (usually):
|
||||||
# $(nix-build -A ruby)/lib/ruby/2.6.0/x86_64-linux/rbconfig.rb
|
# $(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
|
# - In $out/lib/libruby.so and/or $out/lib/libruby.dylib
|
||||||
@@ -175,7 +175,7 @@ let
|
|||||||
$out/lib/libruby*
|
$out/lib/libruby*
|
||||||
${removeReferencesTo}/bin/remove-references-to \
|
${removeReferencesTo}/bin/remove-references-to \
|
||||||
-t ${stdenv.cc} \
|
-t ${stdenv.cc} \
|
||||||
$out/${passthru.libPath}/${stdenv.targetPlatform.system}/rbconfig.rb
|
$out/${passthru.libPath}/${stdenv.hostPlatform.system}/rbconfig.rb
|
||||||
''
|
''
|
||||||
}
|
}
|
||||||
# Bundler tries to create this directory
|
# Bundler tries to create this directory
|
||||||
@@ -187,7 +187,7 @@ let
|
|||||||
addRubyLibPath() {
|
addRubyLibPath() {
|
||||||
addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby
|
addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby
|
||||||
addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby/${ver.libDir}
|
addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby/${ver.libDir}
|
||||||
addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby/${ver.libDir}/${stdenv.targetPlatform.system}
|
addToSearchPath RUBYLIB \$1/lib/ruby/site_ruby/${ver.libDir}/${stdenv.hostPlatform.system}
|
||||||
}
|
}
|
||||||
|
|
||||||
addEnvHooks "$hostOffset" addGemPath
|
addEnvHooks "$hostOffset" addGemPath
|
||||||
|
|||||||
Reference in New Issue
Block a user