blob: 36047759baae396d7c22be8e065fc0ed5d800190 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
{ stdenv, stdenv_32bit, pkgsi686Linux, fetchFromGitHub, fetchurl }:
stdenv.mkDerivation rec {
name = "red-${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/;
};
}
|