cmucl_binary: 21b -> 21d

And a complete rewite of this somewhat old expression.
This commit is contained in:
AndersonTorres 2022-10-23 12:06:33 -03:00
parent 925c0fa54a
commit 9df05da28f

View file

@ -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" ];
};
}
})