summary refs log tree commit diff
path: root/pkgs/development/pharo/vm/vms.nix
blob: 080da830af69886e2aafa719c6aa9875263a3d8a (plain) (blame)
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
54
55
56
57
58
59
60
61
62
63
64
65
{ cmake
, stdenv
, fetchurl
, bash
, unzip
, glibc
, openssl
, gcc
, libgit2
, libGLU, libGL
, freetype
, xorg
, alsaLib
, cairo
, libuuid
, autoreconfHook
, gcc48
, fetchFromGitHub
, makeWrapper
, runtimeShell
} @args:

let
  pharo-vm-build = import ./build-vm.nix args;
  pharo-vm-build-legacy = import ./build-vm-legacy.nix args;
in

let suffix = if stdenv.is64bit then "64" else "32"; in

{
  # Build the latest VM
  spur = pharo-vm-build rec {
    name = "pharo-spur${suffix}";
    version = "git.${revision}";
    src = fetchFromGitHub {
      owner = "pharo-project";
      repo = "pharo-vm";
      rev = revision;
      sha256 = "0dkiy5fq1xn2n93cwf767xz24c01ic0wfw94jk9nvn7pmcfj7m62";
    };
    # This metadata will be compiled into the VM and introspectable
    # from Smalltalk. This has been manually extracted from 'git log'.
    #
    # The build would usually generate this automatically using
    # opensmalltalk-vm/.git_filters/RevDateURL.smudge but that script
    # is too impure to run from nix.
    revision = "6a63f68a3dd4deb7c17dd2c7ac6e4dd4b0b6d937";
    source-date = "Tue May 30 19:41:27 2017 -0700";
    source-url  = "https://github.com/pharo-project/pharo-vm";
  };

  # Build an old ("legacy") CogV3 VM for running pre-spur images.
  # (Could be nicer to build the latest VM in CogV3 mode but this is
  # not supported on the Pharo VM variant at the moment.)
  cog = pharo-vm-build-legacy rec {
    version = "2016.02.18";
    name = "pharo-cog${suffix}";
    base-url = http://files.pharo.org/vm/src/vm-unix-sources/blessed;
    src = fetchurl {
      url = "${base-url}/pharo-vm-${version}.tar.bz2";
      sha256 = "16n2zg7v2s1ml0vvpbhkw6khmgn637sr0d7n2b28qm5yc8pfhcj4";
    };
  };

}