diff --git a/pkgs/development/compilers/cmucl/binary.nix b/pkgs/development/compilers/cmucl/binary.nix index 12e863b2070e..fb0f8b2ce2c8 100644 --- a/pkgs/development/compilers/cmucl/binary.nix +++ b/pkgs/development/compilers/cmucl/binary.nix @@ -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" ]; }; -} +})