summary refs log tree commit diff
path: root/pkgs/development/compilers/sbcl/bootstrap.nix
diff options
context:
space:
mode:
authorWilliam A. Kennington III <william@wkennington.com>2015-10-01 10:43:44 -0700
committerWilliam A. Kennington III <william@wkennington.com>2015-10-01 10:43:44 -0700
commit98172435f7ccf1912ab7804296c5026a545ae2dd (patch)
tree8df4430c1dbb2a5a09ca5085cd9198da896c4a87 /pkgs/development/compilers/sbcl/bootstrap.nix
parente7bb9e102323f79832c2e0553b98651a582368c9 (diff)
parent14961c87810330d22fc1ee11e11a17e32805ff8b (diff)
downloadnixpkgs-98172435f7ccf1912ab7804296c5026a545ae2dd.tar
nixpkgs-98172435f7ccf1912ab7804296c5026a545ae2dd.tar.gz
nixpkgs-98172435f7ccf1912ab7804296c5026a545ae2dd.tar.bz2
nixpkgs-98172435f7ccf1912ab7804296c5026a545ae2dd.tar.lz
nixpkgs-98172435f7ccf1912ab7804296c5026a545ae2dd.tar.xz
nixpkgs-98172435f7ccf1912ab7804296c5026a545ae2dd.tar.zst
nixpkgs-98172435f7ccf1912ab7804296c5026a545ae2dd.zip
Merge branch 'master.upstream' into staging.upstream
Diffstat (limited to 'pkgs/development/compilers/sbcl/bootstrap.nix')
-rw-r--r--pkgs/development/compilers/sbcl/bootstrap.nix62
1 files changed, 47 insertions, 15 deletions
diff --git a/pkgs/development/compilers/sbcl/bootstrap.nix b/pkgs/development/compilers/sbcl/bootstrap.nix
index 40c98072e6e..ddbef4e8b99 100644
--- a/pkgs/development/compilers/sbcl/bootstrap.nix
+++ b/pkgs/development/compilers/sbcl/bootstrap.nix
@@ -1,32 +1,64 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, makeWrapper }:
 
+let
+  options = rec {
+    x86_64-darwin = rec {
+      version = "1.1.8";
+      system = "x86-64-darwin";
+      sha256 = "006pr88053wclvbjfjdypnbiw8wymbzdzi7a6kbkpdfn4zf5943j";
+    };
+    x86_64-linux = rec {
+      version = "1.2.15";
+      system = "x86-64-linux";
+      sha256 = "1bpbfz9x2w73hy2kh8p0kd4m1p6pin90h2zycq52r3bbz8yv47aw";
+    };
+    i686-linux = rec {
+      version = "1.2.7";
+      system = "x86-linux";
+      sha256 = "07f3bz4br280qvn85i088vpzj9wcz8wmwrf665ypqx181pz2ai3j";
+    };
+    armv7l-linux = rec {
+      version = "1.2.14";
+      system = "armhf-linux";
+      sha256 = "0sp5445rbvms6qvzhld0kwwvydw51vq5iaf4kdqsf2d9jvaz3yx5";
+    };
+    armv6l-linux = armv7l-linux;
+  };
+  cfg = options.${stdenv.system};
+in
 stdenv.mkDerivation rec {
   name    = "sbcl-bootstrap-${version}";
-  version = "1.1.8";
+  version = cfg.version;
 
-  src = if stdenv.isDarwin
-    then fetchurl {
-      url = mirror://sourceforge/project/sbcl/sbcl/1.1.8/sbcl-1.1.8-x86-64-darwin-binary.tar.bz2;
-      sha256 = "006pr88053wclvbjfjdypnbiw8wymbzdzi7a6kbkpdfn4zf5943j";
-    }
-    else fetchurl {
-      url = mirror://sourceforge/project/sbcl/sbcl/1.1.8/sbcl-1.1.8-x86-64-linux-binary.tar.bz2;
-      sha256 = "0lh1jglxlfwk4cm6sgwk1jnb6ikhbrkx7p5aha2nbmkd6zl96prx";
-    };
+  src = fetchurl {
+    url = "mirror://sourceforge/project/sbcl/sbcl/${version}/sbcl-${version}-${cfg.system}-binary.tar.bz2";
+    sha256 = cfg.sha256;
+  };
+
+  buildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir -p $out/bin
     cp -p src/runtime/sbcl $out/bin
     install_name_tool -change /usr/lib/libgcc_s.1.dylib ${stdenv.libc}/lib/libgcc_s.10.5.dylib $out/bin/sbcl
+
     mkdir -p $out/share/sbcl
+    cp -p src/runtime/sbcl $out/share/sbcl
     cp -p output/sbcl.core $out/share/sbcl
+    mkdir -p $out/bin
+    makeWrapper $out/share/sbcl/sbcl $out/bin/sbcl \
+      --add-flags "--core $out/share/sbcl/sbcl.core"
+  '';
+
+  postFixup = stdenv.lib.optionalString (!stdenv.isArm) ''
+    patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/share/sbcl/sbcl
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Lisp compiler";
     homepage = "http://www.sbcl.org";
-    license = "bsd";
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.publicDomain; # and FreeBSD
+    maintainers = [maintainers.raskin];
+    platforms = attrNames options;
   };
 }