GFADTRREUCYL4L72MWLPGEYCAXDAZ6B5ZRI3FMQTZDEORVDQKYNAC { stdenv, fetchurl, writeText, sbclBootstrap, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit", threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system), disableImmobileSpace ? false# Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.# Note that the created binaries still need `patchelf --set-interpreter ...`# to get rid of ${glibc} dependency., purgeNixReferences ? false, texinfo, version, sha}:lettheVersion = version;theSha = sha;instdenv.mkDerivation rec {pname = "sbcl";version = theVersion;src = fetchurl {url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";sha256 = theSha;};buildInputs = [texinfo];patchPhase = ''echo '"${version}.nixos"' > version.lisp-exprpwd# SBCL checks whether files are up-to-date in many places..# Unfortunately, same timestamp is not good enoughsed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp#sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lispsed -i src/cold/slam.lisp -e \'/file-write-date input/a)'sed -i src/cold/slam.lisp -e \'/file-write-date output/i(or (and (= 2208988801 (file-write-date output)) (= 2208988801 (file-write-date input)))'sed -i src/code/target-load.lisp -e \'/date defaulted-fasl/a)'sed -i src/code/target-load.lisp -e \'/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'# Fix the testssed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lispsed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp# Use whatever `cc` the stdenv providessubstituteInPlace src/runtime/Config.x86-64-darwin --replace gcc ccsubstituteInPlace src/runtime/Config.x86-64-darwin \--replace mmacosx-version-min=10.4 mmacosx-version-min=10.5''+ (if purgeNixReferencesthen# This is the default location to look for the core; by default in $out/lib/sbcl''sed 's@^\(#define SBCL_HOME\) .*$@\1 "/no-such-path"@' \-i src/runtime/runtime.c''else# Fix software version retrieval''sed -e "s@/bin/uname@$(command -v uname)@g" -i src/code/*-os.lisp \src/code/run-program.lisp'');preBuild = ''export INSTALL_ROOT=$outmkdir -p test-homeexport HOME=$PWD/test-home'';enableFeatures = with stdenv.lib;optional threadSupport "sb-thread" ++optional stdenv.isAarch32 "arm";disableFeatures = with stdenv.lib;optional (!threadSupport) "sb-thread" ++optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ];buildPhase = ''sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" ${stdenv.lib.concatStringsSep " "(builtins.map (x: "--with-${x}") enableFeatures ++builtins.map (x: "--without-${x}") disableFeatures)}(cd doc/manual ; make info)'';installPhase = ''INSTALL_ROOT=$out sh install.sh''+ stdenv.lib.optionalString (!purgeNixReferences) ''cp -r src $out/lib/sbclcp -r contrib $out/lib/sbclcat >$out/lib/sbcl/sbclrc <<EOF(setf (logical-pathname-translations "SYS")'(("SYS:SRC;**;*.*.*" #P"$out/lib/sbcl/src/**/*.*")("SYS:CONTRIB;**;*.*.*" #P"$out/lib/sbcl/contrib/**/*.*")))EOF'';setupHook = stdenv.lib.optional purgeNixReferences (writeText "setupHook.sh" ''addEnvHooks "$targetOffset" _setSbclHome_setSbclHome() {export SBCL_HOME='@out@/lib/sbcl/'}'');meta = sbclBootstrap.meta // {inherit version;updateWalker = true;};}
{ pkgs }:letpackages = extras:(with pkgs; [ dtach nixpkgs-fmt nixfmt glibcLocales ]) ++ extras;utils = {untar = path:pkgs.runCommand "untar" { buildInputs = [ pkgs.gnutar ]; } ''mkdir -p "$out"cd "$out"tar --strip-components=1 -xf "${path}"'';};in{ inherit packages utils; }
{ stdenv, fetchurl, writeText, sbclBootstrap, sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit", threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system), disableImmobileSpace ? false# Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.# Note that the created binaries still need `patchelf --set-interpreter ...`# to get rid of ${glibc} dependency., purgeNixReferences ? false, texinfo, version, sha}:lettheVersion = version;theSha = sha;instdenv.mkDerivation rec {pname = "sbcl";version = theVersion;src = fetchurl {url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${pname}-${version}-source.tar.bz2";sha256 = theSha;};buildInputs = [texinfo];patchPhase = ''echo '"${version}.nixos"' > version.lisp-exprpwd# SBCL checks whether files are up-to-date in many places..# Unfortunately, same timestamp is not good enoughsed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp#sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lispsed -i src/cold/slam.lisp -e \'/file-write-date input/a)'sed -i src/cold/slam.lisp -e \'/file-write-date output/i(or (and (= 2208988801 (file-write-date output)) (= 2208988801 (file-write-date input)))'sed -i src/code/target-load.lisp -e \'/date defaulted-fasl/a)'sed -i src/code/target-load.lisp -e \'/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'# Fix the testssed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lispsed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp# Use whatever `cc` the stdenv providessubstituteInPlace src/runtime/Config.x86-64-darwin --replace gcc ccsubstituteInPlace src/runtime/Config.x86-64-darwin \--replace mmacosx-version-min=10.4 mmacosx-version-min=10.5''+ (if purgeNixReferencesthen# This is the default location to look for the core; by default in $out/lib/sbcl''sed 's@^\(#define SBCL_HOME\) .*$@\1 "/no-such-path"@' \-i src/runtime/runtime.c''else# Fix software version retrieval''sed -e "s@/bin/uname@$(command -v uname)@g" -i src/code/*-os.lisp \src/code/run-program.lisp'');preBuild = ''export INSTALL_ROOT=$outmkdir -p test-homeexport HOME=$PWD/test-home'';enableFeatures = with stdenv.lib;optional threadSupport "sb-thread" ++optional stdenv.isAarch32 "arm";disableFeatures = with stdenv.lib;optional (!threadSupport) "sb-thread" ++optionals disableImmobileSpace [ "immobile-space" "immobile-code" "compact-instance-header" ];buildPhase = ''sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" ${stdenv.lib.concatStringsSep " "(builtins.map (x: "--with-${x}") enableFeatures ++builtins.map (x: "--without-${x}") disableFeatures)}(cd doc/manual ; make info)'';installPhase = ''INSTALL_ROOT=$out sh install.sh''+ stdenv.lib.optionalString (!purgeNixReferences) ''cp -r src $out/lib/sbclcp -r contrib $out/lib/sbclcat >$out/lib/sbcl/sbclrc <<EOF(setf (logical-pathname-translations "SYS")'(("SYS:SRC;**;*.*.*" #P"$out/lib/sbcl/src/**/*.*")("SYS:CONTRIB;**;*.*.*" #P"$out/lib/sbcl/contrib/**/*.*")))EOF'';setupHook = stdenv.lib.optional purgeNixReferences (writeText "setupHook.sh" ''addEnvHooks "$targetOffset" _setSbclHome_setSbclHome() {export SBCL_HOME='@out@/lib/sbcl/'}'');meta = sbclBootstrap.meta // {inherit version;updateWalker = true;};}
{ pkgs }:letpackages = extras:(with pkgs; [ dtach nixpkgs-fmt nixfmt glibcLocales ]) ++ extras;utils = {untar = path:pkgs.runCommand "untar" { buildInputs = [ pkgs.gnutar ]; } ''mkdir -p "$out"cd "$out"tar --strip-components=1 -xf "${path}"'';};in{ inherit packages utils; }