Add Squeak and Squeaker
This commit is contained in:
parent
7fee5e35fe
commit
cecebbc118
|
@ -25,6 +25,10 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
preserves-tools = final.callPackage ./preserves-tools { rust = rust'; };
|
preserves-tools = final.callPackage ./preserves-tools { rust = rust'; };
|
||||||
|
|
||||||
|
squeak = final.callPackage ./squeak { };
|
||||||
|
squeaker = final.python3Packages.callPackage ./squeaker { };
|
||||||
|
|
||||||
syndicate-server =
|
syndicate-server =
|
||||||
final.callPackage ./syndicate-server { rust = rust'; };
|
final.callPackage ./syndicate-server { rust = rust'; };
|
||||||
};
|
};
|
||||||
|
@ -35,7 +39,7 @@
|
||||||
|
|
||||||
packages = self.lib.mapAttrs (system: pkgs:
|
packages = self.lib.mapAttrs (system: pkgs:
|
||||||
with pkgs; {
|
with pkgs; {
|
||||||
inherit preserves-tools syndicate-server;
|
inherit preserves-tools squeak squeaker syndicate-server;
|
||||||
inherit (nimPackages) xdg_open_ng;
|
inherit (nimPackages) xdg_open_ng;
|
||||||
preserves-nim = nimPackages.preserves;
|
preserves-nim = nimPackages.preserves;
|
||||||
preserves-py = python3Packages.preserves;
|
preserves-py = python3Packages.preserves;
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
{ lib, stdenv, fetchurl, autoPatchelfHook, makeWrapper, unzip, alsa-lib, libGL
|
||||||
|
, libpulseaudio, libuuid, nas, openssl, pango, sndio, xorg }:
|
||||||
|
|
||||||
|
let
|
||||||
|
versionA = "6.0alpha";
|
||||||
|
versionB = "21485";
|
||||||
|
versionC = "202112201228";
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "squeak";
|
||||||
|
version = "${versionA}-${versionB}-${versionC}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url =
|
||||||
|
"http://files.squeak.org/trunk/Squeak${versionA}-${versionB}-64bit/Squeak${versionA}-${versionB}-64bit-${versionC}-Linux-x64.tar.gz";
|
||||||
|
sha256 = "sha256-4E32VJaZyQlE71Z98woiMX5shbaj6/cS0i7uloABANU=";
|
||||||
|
};
|
||||||
|
|
||||||
|
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}-64bit.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 = [ "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
{ lib, buildPythonApplication, fetchFromGitHub }:
|
||||||
|
|
||||||
|
buildPythonApplication rec {
|
||||||
|
pname = "squeaker";
|
||||||
|
version = "unstable-2022-03-04";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "tonyg";
|
||||||
|
repo = pname;
|
||||||
|
rev = "caf2ef0b6d5c3cd211b966d3933d4baa885676b5";
|
||||||
|
hash = "sha256-DXYKT3buaQ0WfebNwdGT3s2eAAKpndmZ3TczCD/alH0=";
|
||||||
|
};
|
||||||
|
|
||||||
|
# TODO: could inject squeak into the wrapper,
|
||||||
|
# but for now let the environment pick the VM
|
||||||
|
# propagatedBuildInputs = [ squeak ];
|
||||||
|
|
||||||
|
dontBuild = true;
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
install -Dt $out/bin squeaker
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = src.meta // {
|
||||||
|
description = "Like Docker, but for Squeak";
|
||||||
|
license = lib.licenses.mit;
|
||||||
|
maintainers = with lib.maintainers; [ ehmry ];
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue