summary refs log tree commit diff
path: root/pkgs/development/compilers/graalvm/community-edition/truffleruby/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/graalvm/community-edition/truffleruby/default.nix')
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/truffleruby/default.nix38
1 files changed, 38 insertions, 0 deletions
diff --git a/pkgs/development/compilers/graalvm/community-edition/truffleruby/default.nix b/pkgs/development/compilers/graalvm/community-edition/truffleruby/default.nix
new file mode 100644
index 00000000000..95e9c56fc23
--- /dev/null
+++ b/pkgs/development/compilers/graalvm/community-edition/truffleruby/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, stdenv
+, fetchurl
+, graalvmCEPackages
+, libyaml
+, openssl
+}:
+
+graalvmCEPackages.buildGraalvmProduct {
+  src = fetchurl (import ./hashes.nix).hashes.${stdenv.system};
+  version = (import ./hashes.nix).version;
+
+  product = "truffleruby";
+
+  extraBuildInputs = [
+    libyaml
+    openssl
+  ];
+
+  preFixup = lib.optionalString stdenv.isLinux ''
+    patchelf $out/lib/mri/openssl.so \
+      --replace-needed libssl.so.10 libssl.so \
+      --replace-needed libcrypto.so.10 libcrypto.so
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    echo "Testing TruffleRuby"
+    # Fixup/silence warnings about wrong locale
+    export LANG=C
+    export LC_ALL=C
+    $out/bin/ruby -e 'puts(1 + 1)'
+    ${# broken in darwin with sandbox enabled
+      lib.optionalString stdenv.isLinux ''
+      echo '1 + 1' | $out/bin/irb
+    ''}
+  '';
+}