syndicate-flake/squeak/default.nix

75 lines
2.0 KiB
Nix

{ lib, stdenv, fetchurl, autoPatchelfHook, makeWrapper, unzip, alsa-lib, libGL
, libpulseaudio, libuuid, nas, openssl, pango, sndio, xorg }:
let
versionA = "6.0alpha";
versionB = "21540";
versionC = "202112201228";
bits = with stdenv.hostPlatform;
if is32bit then
"32"
else if is64bit then
"64"
else
throw "too many addressing bits";
sources = {
i686-linux = fetchurl {
url =
"http://files.squeak.org/trunk/Squeak${versionA}-${versionB}-32bit/Squeak${versionA}-${versionB}-${bits}bit-${versionC}-Linux-x86.tar.gz";
sha256 = "sha256-41xQyY6lR4E87rFx8wT7NBSQJOktNCuRjTJ1Og1wGOk=";
};
x86_64-linux = fetchurl {
url =
"http://files.squeak.org/trunk/Squeak${versionA}-${versionB}-${bits}bit/Squeak${versionA}-${versionB}-${bits}bit-${versionC}-Linux-x64.tar.gz";
sha256 = "sha256-1h8WP2GCzRg/aHxmzDj24Y2HH4IsXUA4O4dB7WNGD9E=";
};
};
in stdenv.mkDerivation rec {
pname = "squeak";
version = "${versionA}-${versionB}-${versionC}";
src = sources.${stdenv.system};
nativeBuildInputs = [ autoPatchelfHook makeWrapper unzip ];
buildInputs = with xorg; [
alsa-lib
libGL
libICE
libSM
libX11
libXext
libXrender
libpulseaudio
libuuid
nas
pango
sndio
];
dontBuild = true;
installPhase = ''
mkdir -p $out/bin
cp -a bin $out/lib
cp -a shared/* $out/lib
makeWrapper $out/lib/squeak $out/bin/squeak \
--prefix LD_LIBRARY_PATH ":" "$out/lib:${
lib.makeLibraryPath [ openssl ]
}" \
--set SQUEAK_IMAGE $out/lib/Squeak${versionA}-${versionB}-${bits}bit.image
'';
preFixup = ''
patchelf $out/lib/vm-sound-sndio.so \
--replace-needed libsndio.so.6.1 libsndio.so
'';
meta = {
description = "Squeak virtual machine and image";
homepage = "https://squeak.org/";
license = with lib.licenses; [ asl20 mit ];
maintainers = with lib.maintainers; [ ehmry ];
platforms = builtins.attrNames sources;
};
}