{ pkgs ? import { } }: with pkgs; let isabelle2021_1 = stdenv.mkDerivation { pname = "isabelle-unpatched"; version = "2021-1"; src = fetchzip { url = "https://isabelle.in.tum.de/dist/Isabelle2021-1_linux.tar.gz"; sha256 = "sha256-kJsFPcdlcV8SMWYoqUVJ0sPm7bTAhRDFJ8nddz0Pyik="; }; phases = [ "buildPhase" ]; buildPhase = '' mkdir -p $out cp -r $src/* $out ''; }; isabelle2022 = stdenv.mkDerivation { pname = "isabelle-unpatched"; version = "2022"; src = fetchzip { url = "https://isabelle.in.tum.de/dist/Isabelle2022_linux.tar.gz"; sha256 = "sha256-qwcCRAa8fuGMXbI8og+kbZ0HCel1YKb34EJsc7GUz3s="; }; phases = [ "buildPhase" ]; buildPhase = '' mkdir -p $out cp -r $src/* $out ''; }; mkEnv = name: isabelle: buildFHSUserEnv { inherit name; targetPkgs = pkgs: with pkgs; [ dbus expat file fontconfig freetype gdb glib gmp nspr nss udev xorg.libX11 xorg.libXScrnSaver xorg.libXcomposite xorg.libXcursor xorg.libXdamage xorg.libXext xorg.libXfixes xorg.libXi xorg.libXrandr xorg.libXrender xorg.libXtst xorg.libxcb xorg.xcbutilkeysyms zlib # for the dotnet component (icu is optional; without it set DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1) openssl icu ]; runScript = isabelle; }; in { isabelle2021_1 = mkEnv "isabelle" "${isabelle2021_1}/bin/isabelle"; isabelle2022 = mkEnv "isabelle" "${isabelle2022}/bin/isabelle"; inherit mkEnv; }