nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 fetchFromGitHub,
3 lib,
4 perl,
5 pkg-config,
6 stdenv,
7 versionCheckHook,
8 zstd,
9}:
10
11stdenv.mkDerivation (finalAttrs: {
12 pname = "moarvm";
13 version = "2025.12";
14
15 # nixpkgs-update: no auto update
16 src = fetchFromGitHub {
17 owner = "MoarVM";
18 repo = "MoarVM";
19 tag = finalAttrs.version;
20 fetchSubmodules = true;
21 hash = "sha256-hftskJ+5p/XHahAJTG28ifWkExb8Z8u7J5CeoQooUYE=";
22 };
23
24 nativeBuildInputs = [ pkg-config ];
25 buildInputs = [ zstd ];
26
27 postPatch = ''
28 patchShebangs .
29 substituteInPlace Configure.pl \
30 --replace-fail 'my @check_tools = qw/ar cc ld/;' 'my @check_tools = ();'
31 ''
32 + lib.optionalString stdenv.hostPlatform.isDarwin ''
33 substituteInPlace Configure.pl \
34 --replace-fail '`/usr/bin/arch`' '"${stdenv.hostPlatform.darwinArch}"' \
35 --replace-fail '/usr/bin/arch' "$(type -P true)" \
36 --replace-fail '/usr/' '/nope/'
37 substituteInPlace 3rdparty/dyncall/configure \
38 --replace-fail '`sw_vers -productVersion`' '"11.0"'
39 '';
40
41 configureScript = "${lib.getExe perl} ./Configure.pl";
42 configureFlags = [
43 "--pkgconfig=${lib.getExe pkg-config}"
44 ];
45
46 doInstallCheck = true;
47 nativeInstallCheckInputs = [ versionCheckHook ];
48
49 meta = {
50 description = "VM with adaptive optimization and JIT compilation, built for Rakudo";
51 homepage = "https://moarvm.org";
52 license = lib.licenses.artistic2;
53 maintainers = with lib.maintainers; [
54 thoughtpolice
55 sgo
56 prince213
57 ];
58 mainProgram = "moar";
59 platforms = lib.platforms.unix;
60 };
61})