cmucl_binary: 21b -> 21d
And a complete rewite of this somewhat old expression.
This commit is contained in:
parent
925c0fa54a
commit
9df05da28f
|
@ -1,44 +1,62 @@
|
||||||
{lib, stdenv, fetchurl}:
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchurl
|
||||||
|
, installShellFiles
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
inherit (stdenv.hostPlatform) system;
|
|
||||||
version = "21b";
|
|
||||||
downloadUrl = arch:
|
|
||||||
"http://common-lisp.net/project/cmucl/downloads/release/" +
|
|
||||||
"${version}/cmucl-${version}-${arch}.tar.bz2";
|
|
||||||
fetchDist = {arch, sha256}: fetchurl {
|
|
||||||
url = downloadUrl arch;
|
|
||||||
inherit sha256;
|
|
||||||
};
|
|
||||||
dist =
|
|
||||||
if system == "i686-linux" then fetchDist {
|
|
||||||
arch = "x86-linux";
|
|
||||||
sha256 = "13k3b5ygnbsq6n2i3r5i4ljw3r1qlskn2p5f4x9hrx6vfvbb3k7a";
|
|
||||||
}
|
|
||||||
else throw "Unsupported platform for cmucl.";
|
|
||||||
in
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
pname = "cmucl-binary";
|
pname = "cmucl-binary";
|
||||||
inherit version;
|
version = "21d";
|
||||||
|
|
||||||
buildCommand = ''
|
srcs = [
|
||||||
mkdir -p $out
|
(fetchurl {
|
||||||
tar -C $out -xjf ${dist}
|
url = "http://common-lisp.net/project/cmucl/downloads/release/"
|
||||||
|
+ finalAttrs.version + "/cmucl-${finalAttrs.version}-x86-linux.tar.bz2";
|
||||||
|
hash = "sha256-RdctcqPTtQh1Yb3BrpQ8jtRFQn85OcwOt1l90H6xDZs=";
|
||||||
|
})
|
||||||
|
(fetchurl {
|
||||||
|
url = "http://common-lisp.net/project/cmucl/downloads/release/"
|
||||||
|
+ finalAttrs.version + "/cmucl-${finalAttrs.version}-x86-linux.extra.tar.bz2";
|
||||||
|
hash = "sha256-zEmiW3m5VPpFgPxV1WJNCqgYRlHMovtaMXcgXyNukls=";
|
||||||
|
})];
|
||||||
|
|
||||||
|
sourceRoot = ".";
|
||||||
|
|
||||||
|
outputs = [ "out" "doc" "man" ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
installShellFiles
|
||||||
|
];
|
||||||
|
|
||||||
|
dontConfigure = true;
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -pv $out $doc/share $man
|
||||||
|
mv bin lib -t $out
|
||||||
|
mv -v doc -t $doc/share
|
||||||
|
installManPage man/man1/*
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||||
$out/bin/lisp
|
$out/bin/lisp
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = with lib; {
|
||||||
|
homepage = "http://www.cons.org/cmucl/";
|
||||||
description = "The CMU implementation of Common Lisp";
|
description = "The CMU implementation of Common Lisp";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
CMUCL is a free implementation of the Common Lisp programming language
|
CMUCL is a free implementation of the Common Lisp programming language
|
||||||
which runs on most major Unix platforms. It mainly conforms to the
|
which runs on most major Unix platforms. It mainly conforms to the
|
||||||
ANSI Common Lisp standard.
|
ANSI Common Lisp standard.
|
||||||
'';
|
'';
|
||||||
license = lib.licenses.free; # public domain
|
license = licenses.publicDomain;
|
||||||
homepage = "http://www.cons.org/cmucl/";
|
|
||||||
maintainers = [ ];
|
maintainers = [ ];
|
||||||
platforms = lib.platforms.linux;
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
|
|
Loading…
Reference in a new issue