about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAnderson Torres <torres.anderson.85@protonmail.com>2022-10-24 00:26:05 -0300
committerGitHub <noreply@github.com>2022-10-24 00:26:05 -0300
commita0ee3153a9a8baca6529b7f30452224e44a16a0d (patch)
tree043f75063e3e9e6f71b92d0d198dc1d7038c563b
parent3d13fe2b8cf4efac042475e94441070136a052e2 (diff)
parent9df05da28f9b13c361d7fb3fbcca41f940e3edd6 (diff)
Merge pull request #197303 from atorres1985-contrib/cmucl
cmucl_binary: 21b -> 21d
-rw-r--r--pkgs/development/compilers/cmucl/binary.nix78
1 files changed, 48 insertions, 30 deletions
diff --git a/pkgs/development/compilers/cmucl/binary.nix b/pkgs/development/compilers/cmucl/binary.nix
index 12e863b2070e1..fb0f8b2ce2c8a 100644
--- a/pkgs/development/compilers/cmucl/binary.nix
+++ b/pkgs/development/compilers/cmucl/binary.nix
@@ -1,44 +1,62 @@
-{lib, stdenv, fetchurl}:
-
-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 {
+{ lib
+, stdenv
+, fetchurl
+, installShellFiles
+}:
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "cmucl-binary";
-  inherit version;
+  version = "21d";
+
+  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;
 
-  buildCommand = ''
-    mkdir -p $out
-    tar -C $out -xjf ${dist}
+  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" ];
   };
-}
+})