SRV4LBBQDIUAU5DKOXKHMF2SSZH3CBUOOLBXE4HAAAKTBP257BVQC
O64MDIXXQUX3R7OO7C4NSOWU7N5B7FBLA2FX2UMZOTDLB53CQV2QC
XMQDYKOX2VNEECSWSU35YNLMPHKXRB3YUGHBLJKWBQ3B6TJHQTDAC
RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC
A3TVGLVHSVLMEHLHB3TPBSD3QGNVGX3DIK6BEBDTTHWBNW4ALMRAC
F34L7LZ23AYW2BR2O3BIMVQGDQKONUTJB3XXKPBJTZXZDP3IRQYQC
T4IOSDWCXXUNSAMBWQ5372FYKMIUN3K5SW7UY7Z7MF24CWQ35LRQC
K4KPTJTYRAJID6IBUIXMLOUKQ7J7XXHHFNSJHMYHDU5IA7ZJXABQC
PRE42LRLBF7CR3L7ERIPSQJJTDAQQ4UJ2H5KOHSVX7TL4STJXYNAC
PNSLB3HLQELG4BZJYQB2T2R4ZFYQVPZHQZXAEOBCR4ZVMJ36LYNAC
6C7VS6EJHONLCEMARQBXVI5VJYH37QBYEQDBSGS4OCYKMNRAYSNAC
JKMUUTI3UKS5CAYIAVKHEEELUW25FF4TNMC26XPCVFQ2KNV5TBNAC
U4UPWSDP734EPIQUV35UH25QZ7XIBLXVS2WG7FB6UCEHIZMGPKPAC
{
lib,
stdenv,
src,
writeText,
sbclBootstrap,
zstd,
sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit",
texinfo,
}: let
version = builtins.substring 0 7 src.rev;
in
stdenv.mkDerivation rec {
pname = "sbcl";
inherit version;
inherit src;
nativeBuildInputs = [texinfo];
buildInputs = [zstd];
# There are no patches necessary for the currently enabled versions, but this
# code is left in place for the next potential patch.
postPatch = ''
echo '"${version}.nixos"' > version.lisp-expr
# SBCL checks whether files are up-to-date in many places..
# Unfortunately, same timestamp is not good enough
sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
#sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
sed -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 tests
sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
sed -e "s@/bin/uname@$(command -v uname)@g" -i src/code/*-os.lisp \
src/code/run-program.lisp
'';
preBuild = ''
export INSTALL_ROOT=$out
mkdir -p test-home
export HOME=$PWD/test-home
'';
enableFeatures = ["sb-thread" "sb-core-compression"];
# Fails to find `O_LARGEFILE` otherwise.
env.NIX_CFLAGS_COMPILE = "-D_GNU_SOURCE";
buildPhase = ''
runHook preBuild
sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" --fancy ${lib.optionalString (stdenv.hostPlatform.system == "aarch64-darwin") "--arch=arm64"}
(cd doc/manual ; make info)
runHook postBuild
'';
installPhase = ''
runHook preInstall
INSTALL_ROOT=$out sh install.sh
runHook postInstall
'';
meta = sbclBootstrap.meta;
}
{
lib,
stdenv,
src,
writeText,
sbclBootstrap,
zstd,
sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit",
texinfo,
}: let
version = builtins.substring 0 7 src.rev;
in
stdenv.mkDerivation rec {
pname = "sbcl";
inherit version;
inherit src;
nativeBuildInputs = [texinfo];
buildInputs = [zstd];
# There are no patches necessary for the currently enabled versions, but this
# code is left in place for the next potential patch.
postPatch = ''
echo '"${version}.nixos"' > version.lisp-expr
# SBCL checks whether files are up-to-date in many places..
# Unfortunately, same timestamp is not good enough
sed -e 's@> x y@>= x y@' -i contrib/sb-aclrepl/repl.lisp
#sed -e '/(date)/i((= date 2208988801) 2208988800)' -i contrib/asdf/asdf.lisp
sed -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 tests
sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
sed -e "s@/bin/uname@$(command -v uname)@g" -i src/code/*-os.lisp \
src/code/run-program.lisp
'';
preBuild = ''
export INSTALL_ROOT=$out
mkdir -p test-home
export HOME=$PWD/test-home
'';
enableFeatures = ["sb-thread" "sb-core-compression"];
# Fails to find `O_LARGEFILE` otherwise.
env.NIX_CFLAGS_COMPILE = "-D_GNU_SOURCE";
buildPhase = ''
runHook preBuild
sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" --fancy ${lib.optionalString (stdenv.hostPlatform.system == "aarch64-darwin") "--arch=arm64"}
(cd doc/manual ; make info)
runHook postBuild
'';
installPhase = ''
runHook preInstall
INSTALL_ROOT=$out sh install.sh
runHook postInstall
'';
meta = sbclBootstrap.meta;
}