Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib
2, stdenv
3, fetchFromGitHub
4, perl
5, CoreServices
6, ApplicationServices
7}:
8
9stdenv.mkDerivation rec {
10 pname = "moarvm";
11 version = "2023.04";
12
13 src = fetchFromGitHub {
14 owner = "moarvm";
15 repo = "moarvm";
16 rev = version;
17 hash = "sha256-QYA4nSsrouYFaw1eju/6gNWwMcE/VeL0sNJmsTvtU3I=";
18 fetchSubmodules = true;
19 };
20
21 postPatch = ''
22 patchShebangs .
23 '' + lib.optionalString stdenv.isDarwin ''
24 substituteInPlace Configure.pl \
25 --replace '`/usr/bin/arch`' '"${stdenv.hostPlatform.darwinArch}"' \
26 --replace '/usr/bin/arch' "$(type -P true)" \
27 --replace '/usr/' '/nope/'
28 substituteInPlace 3rdparty/dyncall/configure \
29 --replace '`sw_vers -productVersion`' '"$MACOSX_DEPLOYMENT_TARGET"'
30 '';
31
32 buildInputs = [ perl ] ++ lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];
33 doCheck = false; # MoarVM does not come with its own test suite
34
35 configureScript = "${perl}/bin/perl ./Configure.pl";
36
37 meta = with lib; {
38 description = "VM with adaptive optimization and JIT compilation, built for Rakudo";
39 homepage = "https://moarvm.org";
40 license = licenses.artistic2;
41 maintainers = with maintainers; [ thoughtpolice vrthra sgo ];
42 mainProgram = "moar";
43 platforms = platforms.unix;
44 };
45}