summaryrefslogtreecommitdiff
path: root/isabelle-nix-fhsenv/default.nix
blob: 2ea78a2357e6f101c6a45b5bf8d43d360ca6bb19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{ pkgs ? import <nixpkgs> { } }:

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