587713944a
GitOrigin-RevId: 6143fc5eeb9c4f00163267708e26191d1e918932
93 lines
2.9 KiB
Nix
93 lines
2.9 KiB
Nix
{ lib, stdenv, stdenv_32bit, pkgsi686Linux, fetchFromGitHub, fetchurl }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "red";
|
|
version = "0.6.4";
|
|
src = fetchFromGitHub {
|
|
rev = "755eb943ccea9e78c2cab0f20b313a52404355cb";
|
|
owner = "red";
|
|
repo = "red";
|
|
sha256 = "sha256:045rrg9666zczgrwyyyglivzdzja103s52b0fzj7hqmr1fz68q37";
|
|
};
|
|
|
|
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/CLI/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/${pname}-${version}/BSD-3-License.txt
|
|
install -Dm644 BSL-License.txt \
|
|
$out/share/licenses/${pname}-${version}/BSL-License.txt
|
|
install -Dm644 docs/red-system-quick-test.html \
|
|
$out/share/doc/${pname}-${version}/red-system-quick-test.html
|
|
install -Dm644 docs/red-system-specs.html \
|
|
$out/share/doc/${pname}-${version}/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 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
|
|
'';
|
|
mainProgram = "red";
|
|
maintainers = with maintainers; [ uralbash ];
|
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
|
license = licenses.bsd3;
|
|
homepage = "https://www.red-lang.org/";
|
|
};
|
|
}
|