summary refs log tree commit diff
path: root/pkgs/development/interpreters
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2017-08-17 18:34:17 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2017-08-17 18:34:17 +0200
commit8f2ea38f8fda5876cfaf963097b9fe709159f3ff (patch)
tree5b5e304fec50ede4c46c475c9ed1d0414e54ab6b /pkgs/development/interpreters
parent9289365627ce6b82d9ec2f3029e82aa8fc93e655 (diff)
parent31eea73f994b8cca50d3f88d6a4fadd98e09e798 (diff)
downloadnixlib-8f2ea38f8fda5876cfaf963097b9fe709159f3ff.tar
nixlib-8f2ea38f8fda5876cfaf963097b9fe709159f3ff.tar.gz
nixlib-8f2ea38f8fda5876cfaf963097b9fe709159f3ff.tar.bz2
nixlib-8f2ea38f8fda5876cfaf963097b9fe709159f3ff.tar.lz
nixlib-8f2ea38f8fda5876cfaf963097b9fe709159f3ff.tar.xz
nixlib-8f2ea38f8fda5876cfaf963097b9fe709159f3ff.tar.zst
nixlib-8f2ea38f8fda5876cfaf963097b9fe709159f3ff.zip
Merge remote-tracking branch 'upstream/master' into HEAD
Diffstat (limited to 'pkgs/development/interpreters')
-rw-r--r--pkgs/development/interpreters/red/default.nix92
1 files changed, 92 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/red/default.nix b/pkgs/development/interpreters/red/default.nix
new file mode 100644
index 000000000000..01b95adf92f4
--- /dev/null
+++ b/pkgs/development/interpreters/red/default.nix
@@ -0,0 +1,92 @@
+{ stdenv, stdenv_32bit, pkgsi686Linux, fetchFromGitHub, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "red-v${version}";
+  version = "0.6.3";
+  src = fetchFromGitHub {
+    rev = "6a43c767fa2e85d668b83f749158a18e62c30f70";
+    owner = "red";
+    repo = "red";
+    sha256 = "1zh6xc728bs7r4v5jz1jjrdk0xd838xsxmvy9gfg75a3zffm0slr";
+  };
+
+  rebol = fetchurl {
+    url = "http://www.rebol.com/downloads/v278/rebol-core-278-4-2.tar.gz";
+    sha256 = "1c1v0pyhf3d8z98qc93a5zmx0bbl0qq5lr8mbkdgygqsq2bv2xbz";
+  };
+
+  buildInputs = [ pkgsi686Linux.curl stdenv_32bit ];
+
+  r2 = "./rebol/releases/rebol-core/rebol";
+
+  configurePhase = ''
+    # Download rebol
+    mkdir rebol/
+    tar -xzvf ${rebol} -C rebol/
+    patchelf --set-interpreter \
+        ${stdenv_32bit.cc.libc.out}/lib/32/ld-linux.so.2 \
+        ${r2}
+  '';
+
+  buildPhase = ''
+    # Do tests
+    #${r2} -qw run-all.r
+
+    # Build test
+    ${r2} -qw red.r tests/hello.red
+
+    # Compiling the Red console...
+    ${r2} -qw red.r -r environment/console/console.red
+
+    # Generating docs...
+    cd docs
+    ../${r2} -qw makedoc2.r red-system-specs.txt
+    ../${r2} -qw makedoc2.r red-system-quick-test.txt
+    cd ../
+  '';
+
+  installPhase = ''
+    mkdir $out
+
+    # Install
+    install -d $out/opt/red
+    find quick-test -type f -executable -print0 | xargs -0 rm
+    cp -R * $out/opt/red/
+    rm -rf $out/opt/red/rebol
+    install -Dm755 console $out/bin/red
+    install -Dm644 BSD-3-License.txt                          \
+        $out/share/licenses/${name}/BSD-3-License.txt
+    install -Dm644 BSL-License.txt                            \
+        $out/share/licenses/${name}/BSL-License.txt
+    install -Dm644 docs/red-system-quick-test.html            \
+        $out/share/doc/${name}/red-system-quick-test.html
+    install -Dm644 docs/red-system-specs.html                 \
+        $out/share/doc/${name}/red-system-specs.html
+
+    # PathElf
+    patchelf --set-interpreter                            \
+        ${stdenv_32bit.cc.libc.out}/lib/32/ld-linux.so.2  \
+        $out/opt/red/console
+    patchelf --set-rpath ${pkgsi686Linux.curl.out}/lib \
+        $out/opt/red/console
+    patchelf --set-interpreter                            \
+        ${stdenv_32bit.cc.libc.out}/lib/32/ld-linux.so.2  \
+        $out/bin/red
+    patchelf --set-rpath ${pkgsi686Linux.curl.out}/lib \
+        $out/bin/red
+
+  '';
+
+  meta = with stdenv.lib; {
+    description = ''
+      New programming language strongly inspired by Rebol, but with a
+      broader field of usage thanks to its native-code compiler, from system
+      programming to high-level scripting, while providing modern support for
+      concurrency and multi-core CPUs
+    '';
+    maintainers = with maintainers; [ uralbash ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    license = licenses.bsd3;
+    homepage = http://www.red-lang.org/;
+  };
+}