Skip to content

Commit 5ff53d6

Browse files
authored
Fix Nix Flake to continue building (#188)
The check phase for merlin had to be disabled as they depend on a MERLIN_TEST_OCAML_PATH of a locally built ocaml. Flake lock file updates: • Updated input 'flake-utils': 'github:numtide/flake-utils/b1d9ab70662946ef0850d488da1c9019f3a9752a?narHash=sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ%3D' (2024-03-11) → 'github:numtide/flake-utils/11707dc2f618dd54ca8739b309ec4fc024de578b?narHash=sha256-l0KFg5HjrsfsO/JpG%2Br7fRrqm12kzFHyUHqHCVpMMbI%3D' (2024-11-13) • Updated input 'menhir-repository': 'gitlab:fpottier/menhir/abb46d3d9c536bcbe30025f37474e3b4c8288590?host=gitlab.inria.fr&narHash=sha256-i/Xs6G1L/bZ1zj%2BLB5ehiaBC10ounc1koURV3vFolhI%3D' (2020-12-16) → 'gitlab:fpottier/menhir/d3d815e4f554da68b8c247241c8f8678926eecaa?host=gitlab.inria.fr&narHash=sha256-veB0ORHp6jdRwCyDDAfc7a7ov8sOeHUmiELdOFf/QYk%3D' (2023-12-31) • Updated input 'nixpkgs': 'github:nixos/nixpkgs/c58b4a9118498c1055c5908a5bbe666e56abe949?narHash=sha256-YtlyfqOdYMuu7gumZtK0Kg7jr4OKfHUhJkZfNUryw68%3D' (2024-06-17) → 'github:nixos/nixpkgs/8eaee110344796db060382e15d3af0a9fc396e0e?narHash=sha256-iCGWf/LTy%2BaY0zFu8q12lK8KuZp7yvdhStehhyX1v8w%3D' (2025-09-19)
1 parent 836629a commit 5ff53d6

File tree

2 files changed

+50
-26
lines changed

2 files changed

+50
-26
lines changed

flake.lock

Lines changed: 11 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 39 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,36 @@
22
description = "Merlin Nix Flake";
33

44
inputs.flake-utils.url = "github:numtide/flake-utils";
5-
inputs.nixpkgs.url = "github:nixos/nixpkgs";
5+
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
66
inputs.menhir-repository = {
77
url = "gitlab:fpottier/menhir/20231231?host=gitlab.inria.fr";
88
flake = false;
99
};
1010

11-
outputs = { self, nixpkgs, flake-utils, menhir-repository }:
12-
flake-utils.lib.eachDefaultSystem (system:
11+
outputs =
12+
{
13+
self,
14+
nixpkgs,
15+
flake-utils,
16+
menhir-repository,
17+
}:
18+
flake-utils.lib.eachDefaultSystem (
19+
system:
1320
let
1421
pkgs = nixpkgs.legacyPackages."${system}";
1522

1623
# Build with OCaml 5.2
17-
ocamlPackages = pkgs.ocaml-ng.ocamlPackages_5_2.overrideScope'
18-
(_: osuper: {
24+
ocamlPackages = pkgs.ocaml-ng.ocamlPackages_5_2.overrideScope (
25+
_: osuper: {
1926
# Override menhirLib to the pinned version
2027
menhirLib = osuper.menhirLib.overrideAttrs (_: {
2128
version = "20231231";
2229
src = menhir-repository;
2330
});
2431

2532
inherit (packages) merlin-lib dot-merlin-reader merlin;
26-
});
33+
}
34+
);
2735

2836
inherit (ocamlPackages) buildDunePackage;
2937

@@ -32,16 +40,19 @@
3240
merlin-lib = buildDunePackage {
3341
pname = "merlin-lib";
3442
version = "dev";
35-
src = ./.;
43+
src = self;
3644
duneVersion = "3";
37-
propagatedBuildInputs = with ocamlPackages; [ csexp ];
45+
propagatedBuildInputs = with ocamlPackages; [
46+
csexp
47+
alcotest
48+
];
3849
doCheck = true;
3950
};
4051

4152
dot-merlin-reader = buildDunePackage {
4253
pname = "dot-merlin-reader";
4354
version = "dev";
44-
src = ./.;
55+
src = self;
4556
duneVersion = "3";
4657
propagatedBuildInputs = [ ocamlPackages.findlib ];
4758
buildInputs = [ merlin-lib ];
@@ -51,7 +62,7 @@
5162
merlin = buildDunePackage {
5263
pname = "merlin";
5364
version = "dev";
54-
src = ./.;
65+
src = self;
5566
duneVersion = "3";
5667
buildInputs = [
5768
merlin-lib
@@ -60,25 +71,37 @@
6071
ocamlPackages.menhirSdk
6172
ocamlPackages.yojson
6273
];
63-
nativeBuildInputs = [ ocamlPackages.menhir pkgs.jq ];
74+
nativeBuildInputs = [
75+
ocamlPackages.menhir
76+
pkgs.jq
77+
];
6478
nativeCheckInputs = [ dot-merlin-reader ];
6579
checkInputs = with ocamlPackages; [ ppxlib ];
66-
doCheck = true;
80+
doCheck = false; # Depends on a OxCaml
6781
checkPhase = ''
6882
runHook preCheck
83+
6984
patchShebangs tests/merlin-wrapper
70-
dune build @check @runtest
85+
MERLIN_TEST_OCAML_PATH=${ocamlPackages.ocaml} \
86+
dune build @check @runtest
87+
7188
runHook postCheck
7289
'';
73-
meta = with pkgs; { mainProgram = "ocamlmerlin"; };
90+
meta = with pkgs; {
91+
mainProgram = "ocamlmerlin";
92+
};
7493
};
7594
};
76-
in {
95+
in
96+
{
7797
inherit packages;
7898

99+
formatter = pkgs.nixfmt-tree;
100+
79101
devShells.default = pkgs.mkShell {
80102
inputsFrom = pkgs.lib.attrValues packages;
81103
buildInputs = with ocamlPackages; [ merlin ];
82104
};
83-
});
105+
}
106+
);
84107
}

0 commit comments

Comments
 (0)