cmucl_binary: 21b -> 21d
And a complete rewite of this somewhat old expression.
This commit is contained in:
parent
925c0fa54a
commit
9df05da28f
1 changed files with 47 additions and 29 deletions
|
@ -1,44 +1,62 @@
|
|||
{lib, stdenv, fetchurl}:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, installShellFiles
|
||||
}:
|
||||
|
||||
let
|
||||
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 {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cmucl-binary";
|
||||
inherit version;
|
||||
version = "21d";
|
||||
|
||||
buildCommand = ''
|
||||
mkdir -p $out
|
||||
tar -C $out -xjf ${dist}
|
||||
srcs = [
|
||||
(fetchurl {
|
||||
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)" \
|
||||
$out/bin/lisp
|
||||
'';
|
||||
|
||||
meta = {
|
||||
meta = with lib; {
|
||||
homepage = "http://www.cons.org/cmucl/";
|
||||
description = "The CMU implementation of Common Lisp";
|
||||
longDescription = ''
|
||||
CMUCL is a free implementation of the Common Lisp programming language
|
||||
which runs on most major Unix platforms. It mainly conforms to the
|
||||
ANSI Common Lisp standard.
|
||||
'';
|
||||
license = lib.licenses.free; # public domain
|
||||
homepage = "http://www.cons.org/cmucl/";
|
||||
license = licenses.publicDomain;
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.linux;
|
||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue