{ 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; }; }