From ab8af29cfa244484299b0f73b3ad754755a4fa84 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Mon, 15 Dec 2025 20:13:54 +0800 Subject: [PATCH 1/7] dnsvizor.unix: init at 0-unstable-2025-12-15 --- flake.lock | 186 +++++++++++++++++++++++++++- flake.nix | 31 +++++ maintainers/shells/default.nix | 1 + pkgs/by-name/default.nix | 5 + pkgs/by-name/dnsvizor/hillingar.nix | 46 +++++++ pkgs/lib.nix | 1 + 6 files changed, 269 insertions(+), 1 deletion(-) create mode 100644 pkgs/by-name/dnsvizor/hillingar.nix diff --git a/flake.lock b/flake.lock index f21f080f9..d2ae61355 100644 --- a/flake.lock +++ b/flake.lock @@ -62,6 +62,22 @@ } }, "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { "flake": false, "locked": { "lastModified": 1761588595, @@ -179,6 +195,79 @@ "type": "github" } }, + "hillingar": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "mirage-opam-overlays": [ + "mirage-opam-overlays" + ], + "nix-filter": "nix-filter", + "nixpkgs": [ + "nixpkgs" + ], + "opam-nix": [ + "opam-nix" + ], + "opam-overlays": [ + "opam-overlays" + ], + "opam-repository": [ + "opam-repository" + ], + "opam2json": [ + "opam-nix", + "opam2json" + ] + }, + "locked": { + "lastModified": 1765762451, + "narHash": "sha256-5W+OLqVA7Nv+0rC463PasGbYuJoqhnLwi9mdhP7s6as=", + "owner": "linj-fork", + "repo": "hillingar", + "rev": "750327155eb31a49e276cafb33c733a3b88c171c", + "type": "github" + }, + "original": { + "owner": "linj-fork", + "ref": "local/debug-clean", + "repo": "hillingar", + "type": "github" + } + }, + "mirage-opam-overlays": { + "flake": false, + "locked": { + "lastModified": 1760115982, + "narHash": "sha256-vXpXKP3fWPk1e6tiVtv1dj01mdDtRWckqSzCW62FnCU=", + "owner": "dune-universe", + "repo": "mirage-opam-overlays", + "rev": "eddcd1bc7e035392596b603d23dde67a88e6f6bc", + "type": "github" + }, + "original": { + "owner": "dune-universe", + "repo": "mirage-opam-overlays", + "type": "github" + } + }, + "nix-filter": { + "locked": { + "lastModified": 1659352118, + "narHash": "sha256-X/Tdlj/PYxcQg/1hcHXxdnDr5zLO22LohIudX+oT968=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "3e1fff9ec0112fe5ec61ea7cc6d37c1720d865f8", + "type": "github" + }, + "original": { + "owner": "numtide", + "ref": "3e1fff9", + "repo": "nix-filter", + "type": "github" + } + }, "nixdoc-to-github": { "flake": false, "locked": { @@ -211,9 +300,99 @@ "type": "github" } }, - "pre-commit-hooks": { + "opam-nix": { "inputs": { "flake-compat": "flake-compat_2", + "flake-utils": [ + "flake-utils" + ], + "mirage-opam-overlays": [ + "mirage-opam-overlays" + ], + "nixpkgs": [ + "nixpkgs" + ], + "opam-overlays": [ + "opam-overlays" + ], + "opam-repository": [ + "opam-repository" + ], + "opam2json": "opam2json" + }, + "locked": { + "lastModified": 1762273592, + "narHash": "sha256-dXex1fPdmzj4xKWEWrcvbgin/iLFaxrt9vi305m6nUc=", + "owner": "tweag", + "repo": "opam-nix", + "rev": "98ca8f4401e996aeac38b6f14bf3a82d85b7add7", + "type": "github" + }, + "original": { + "owner": "tweag", + "repo": "opam-nix", + "type": "github" + } + }, + "opam-overlays": { + "flake": false, + "locked": { + "lastModified": 1765419722, + "narHash": "sha256-tjb9uZAuex5nOeFo5oRL+Z7AnXK6Of0n7s+rIotlD34=", + "owner": "dune-universe", + "repo": "opam-overlays", + "rev": "12731a6f86d7c452a94c72106fa9d3327988582d", + "type": "github" + }, + "original": { + "owner": "dune-universe", + "repo": "opam-overlays", + "type": "github" + } + }, + "opam-repository": { + "flake": false, + "locked": { + "lastModified": 1765797137, + "narHash": "sha256-Rsn3UIIlx5h06yK7FVsfwh5FX0RlNnqd01B5E3NqNe8=", + "owner": "ocaml", + "repo": "opam-repository", + "rev": "8b6f76de0667cb0c30783304412259e597e5cdc0", + "type": "github" + }, + "original": { + "owner": "ocaml", + "repo": "opam-repository", + "type": "github" + } + }, + "opam2json": { + "inputs": { + "nixpkgs": [ + "opam-nix", + "nixpkgs" + ], + "systems": [ + "systems" + ] + }, + "locked": { + "lastModified": 1749457947, + "narHash": "sha256-+QVm+HOYikF3wUhqSIV8qJbE/feSG+p48fgxIosbHS0=", + "owner": "tweag", + "repo": "opam2json", + "rev": "0ecd66fc2bfb25d910522c990dd36412259eac1f", + "type": "github" + }, + "original": { + "owner": "tweag", + "repo": "opam2json", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat_3", "gitignore": "gitignore", "nixpkgs": [ "nixpkgs" @@ -282,8 +461,13 @@ "buildbot-nix": "buildbot-nix", "dream2nix": "dream2nix", "flake-utils": "flake-utils", + "hillingar": "hillingar", + "mirage-opam-overlays": "mirage-opam-overlays", "nixdoc-to-github": "nixdoc-to-github", "nixpkgs": "nixpkgs", + "opam-nix": "opam-nix", + "opam-overlays": "opam-overlays", + "opam-repository": "opam-repository", "pre-commit-hooks": "pre-commit-hooks", "sbt-derivation": "sbt-derivation", "sops-nix": "sops-nix", diff --git a/flake.nix b/flake.nix index 01051346e..52c69adfd 100644 --- a/flake.nix +++ b/flake.nix @@ -17,6 +17,37 @@ inputs.nixdoc-to-github.flake = false; inputs.nixdoc-to-github.url = "github:fricklerhandwerk/nixdoc-to-github"; + inputs.hillingar.inputs.nixpkgs.follows = "nixpkgs"; + inputs.hillingar.inputs.flake-utils.follows = "flake-utils"; + inputs.hillingar.inputs.opam-repository.follows = "opam-repository"; + inputs.hillingar.inputs.opam-overlays.follows = "opam-overlays"; + inputs.hillingar.inputs.mirage-opam-overlays.follows = "mirage-opam-overlays"; + inputs.hillingar.inputs.opam-nix.follows = "opam-nix"; + inputs.hillingar.inputs.opam2json.follows = "opam-nix/opam2json"; + # TODO(linj) handle my patches proerly: upstream them + inputs.hillingar.url = "github:linj-fork/hillingar?ref=local/debug-clean"; + inputs.opam-nix.inputs.nixpkgs.follows = "nixpkgs"; + inputs.opam-nix.inputs.flake-utils.follows = "flake-utils"; + inputs.opam-nix.inputs.opam2json.inputs.systems.follows = "systems"; + inputs.opam-nix.inputs.opam-repository.follows = "opam-repository"; + inputs.opam-nix.inputs.opam-overlays.follows = "opam-overlays"; + inputs.opam-nix.inputs.mirage-opam-overlays.follows = "mirage-opam-overlays"; + # update opam-nix to fix eval error of new Nixpkgs: attribute 'overrideScope'' missing + inputs.opam-nix.url = "github:tweag/opam-nix"; + # update ocaml-related overlays to use new-enough ocaml packages + inputs.opam-repository = { + url = "github:ocaml/opam-repository"; + flake = false; + }; + inputs.opam-overlays = { + url = "github:dune-universe/opam-overlays"; + flake = false; + }; + inputs.mirage-opam-overlays = { + url = "github:dune-universe/mirage-opam-overlays"; + flake = false; + }; + # See for plans to support Darwin. inputs.systems.url = "github:nix-systems/default-linux"; diff --git a/maintainers/shells/default.nix b/maintainers/shells/default.nix index 0fc85b658..765e5d7d3 100644 --- a/maintainers/shells/default.nix +++ b/maintainers/shells/default.nix @@ -61,6 +61,7 @@ pkgs.mkShellNoCC { # FIX: package scope "bigbluebutton" "heads" + "dnsvizor" # FIX: don't update `sparql-queries` if there is no version change "inventaire-client" # fetcher not supported diff --git a/pkgs/by-name/default.nix b/pkgs/by-name/default.nix index 923f69de2..114d8b0d8 100644 --- a/pkgs/by-name/default.nix +++ b/pkgs/by-name/default.nix @@ -2,6 +2,7 @@ lib, pkgs, dream2nix, + hillingar, sources, }: let @@ -82,6 +83,10 @@ let callPackage (directory + "/sbt-derivation.nix") { inherit mkSbtDerivation; } + else if pathExists (directory + "/hillingar.nix") then + callPackage (directory + "/hillingar.nix") { + inherit hillingar; + } else throw "No package.nix, dream2.nix or sbt-derivation.nix found in ${directory}" ) packageDirectories; diff --git a/pkgs/by-name/dnsvizor/hillingar.nix b/pkgs/by-name/dnsvizor/hillingar.nix new file mode 100644 index 000000000..d00a54ee3 --- /dev/null +++ b/pkgs/by-name/dnsvizor/hillingar.nix @@ -0,0 +1,46 @@ +{ + lib, + hillingar, + fetchFromGitHub, + gmp, +}: + +let + version = "0-unstable-2025-12-15"; + + unikernel = + lib.flip hillingar.mkUnikernelPackages + (fetchFromGitHub { + # owner = "robur-coop"; + # TODO(linj) handle my patches properly + # - upstream them to dnsvizor + # - convert them arguments of mkUnikernelPackages: query, monorepoQuery + owner = "linj-fork"; + repo = "dnsvizor"; + rev = "8b5281ebfdbd3eb0784f5ffdf145d955c438a634"; + hash = "sha256-Q+g4SO2GDlD2wjz8sjfSEypObpoldkTUMth9RfP1ZdY="; + }) + { + # in .cirrus.yml, there are ocaml versions used by upstream CI + unikernelName = "dnsvizor"; + depexts = [ gmp ]; + monorepoQuery = { + }; + query = { + }; + }; + + enabledTargets = [ "unix" ]; # TODO(linj) build more targtes such as hvt + + # This project has no release so the inferred version is "dev", which is invalid for nix. + # Use this function to make it valid when necessary. + overrideVersionIfDev = + newVersion: package: + package.overrideAttrs (old: { + version = if old.version == "dev" then newVersion else old.version; + __intentionallyOverridingVersion = true; + }); +in +lib.mapAttrs (_target: package: overrideVersionIfDev version package) ( + lib.filterAttrs (target: _package: lib.elem target enabledTargets) unikernel +) diff --git a/pkgs/lib.nix b/pkgs/lib.nix index 42c8a5d39..8ef9e6dd0 100644 --- a/pkgs/lib.nix +++ b/pkgs/lib.nix @@ -32,6 +32,7 @@ rec { call = self.newScope { nixdoc-to-github = self.callPackage sources.nixdoc-to-github { }; dream2nix = sources.dream2nix; + hillingar = sources.hillingar.lib.${system}; }; # Similar to `import`, but aware of `default` scope attributes. From 0544255edfd108ccbaf77242bceb4f0c1d224662 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Tue, 16 Dec 2025 01:57:23 +0800 Subject: [PATCH 2/7] dnsvizor: enable hvt, spt, xen, qubes, virtio and muen targets --- pkgs/by-name/dnsvizor/hillingar.nix | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/dnsvizor/hillingar.nix b/pkgs/by-name/dnsvizor/hillingar.nix index d00a54ee3..400227bbe 100644 --- a/pkgs/by-name/dnsvizor/hillingar.nix +++ b/pkgs/by-name/dnsvizor/hillingar.nix @@ -2,7 +2,7 @@ lib, hillingar, fetchFromGitHub, - gmp, + pkgsStatic, }: let @@ -21,16 +21,30 @@ let hash = "sha256-Q+g4SO2GDlD2wjz8sjfSEypObpoldkTUMth9RfP1ZdY="; }) { - # in .cirrus.yml, there are ocaml versions used by upstream CI unikernelName = "dnsvizor"; - depexts = [ gmp ]; + depexts = [ + pkgsStatic.gmp # some targets, such as hvt, need static gmp + ]; monorepoQuery = { + uutf = "1.0.3+dune"; # default version is not in the dune overlay yet }; query = { + # follow upstream CI version (.cirrus.yml) because newer ones fail to build + ocaml-base-compiler = "4.14.2"; }; }; - enabledTargets = [ "unix" ]; # TODO(linj) build more targtes such as hvt + enabledTargets = [ + "unix" + "hvt" + "spt" + "xen" + "qubes" + "virtio" + "muen" + # "macosx" + # "genode" + ]; # This project has no release so the inferred version is "dev", which is invalid for nix. # Use this function to make it valid when necessary. From dfb67b43c62d6b6b0d7902da43193e17bac60a41 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Tue, 16 Dec 2025 14:10:47 +0800 Subject: [PATCH 3/7] dnsvizor: do not expose known bad targets bad: eval failure by IFD or build failure --- pkgs/by-name/dnsvizor/hillingar.nix | 37 ++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/dnsvizor/hillingar.nix b/pkgs/by-name/dnsvizor/hillingar.nix index 400227bbe..e73a90b8d 100644 --- a/pkgs/by-name/dnsvizor/hillingar.nix +++ b/pkgs/by-name/dnsvizor/hillingar.nix @@ -3,6 +3,7 @@ hillingar, fetchFromGitHub, pkgsStatic, + stdenv, }: let @@ -34,7 +35,7 @@ let }; }; - enabledTargets = [ + targets = [ "unix" "hvt" "spt" @@ -42,10 +43,32 @@ let "qubes" "virtio" "muen" - # "macosx" - # "genode" + "macosx" + "genode" ]; + # not use lib.isDerivation because it triggers IFD error if there is one + isDerivation = target: _package: lib.elem target targets; + + # bad: eval failure by IFD or build failure + # do not use/set meta.broken because it doesn't cover eval failure by IFD + knownBad = + target: + (lib.elem target [ + "macosx" + "genode" + ]) + || ( + stdenv.hostPlatform.isAarch64 + && lib.elem target [ + "xen" + "qubes" + "virtio" + "muen" + ] + ); + notKnownBad = target: _package: !(knownBad target); + # This project has no release so the inferred version is "dev", which is invalid for nix. # Use this function to make it valid when necessary. overrideVersionIfDev = @@ -55,6 +78,8 @@ let __intentionallyOverridingVersion = true; }); in -lib.mapAttrs (_target: package: overrideVersionIfDev version package) ( - lib.filterAttrs (target: _package: lib.elem target enabledTargets) unikernel -) +lib.pipe unikernel [ + (lib.filterAttrs isDerivation) + (lib.filterAttrs notKnownBad) + (lib.mapAttrs (_target: package: overrideVersionIfDev version package)) +] From b0ece016b27a81b0edb1c6b21c4c38bc2c1c9940 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Wed, 17 Dec 2025 01:01:12 +0800 Subject: [PATCH 4/7] dnsvizor: switch to upstream hillingar My patches has been upstreamed. --- flake.lock | 48 ++++++++++++++--------------- flake.nix | 13 +------- pkgs/by-name/dnsvizor/hillingar.nix | 7 ++++- 3 files changed, 30 insertions(+), 38 deletions(-) diff --git a/flake.lock b/flake.lock index d2ae61355..b0a49fb48 100644 --- a/flake.lock +++ b/flake.lock @@ -207,31 +207,25 @@ "nixpkgs": [ "nixpkgs" ], - "opam-nix": [ - "opam-nix" - ], + "opam-nix": "opam-nix", "opam-overlays": [ "opam-overlays" ], "opam-repository": [ "opam-repository" ], - "opam2json": [ - "opam-nix", - "opam2json" - ] + "opam2json": "opam2json" }, "locked": { - "lastModified": 1765762451, - "narHash": "sha256-5W+OLqVA7Nv+0rC463PasGbYuJoqhnLwi9mdhP7s6as=", - "owner": "linj-fork", + "lastModified": 1766236620, + "narHash": "sha256-HGlWtnNeUKih2mhCyC71EHAj9uodhFjXzaJOFjWbtzw=", + "owner": "RyanGibb", "repo": "hillingar", - "rev": "750327155eb31a49e276cafb33c733a3b88c171c", + "rev": "cdc7ea9cdf071dd92197db07dd282510796f8394", "type": "github" }, "original": { - "owner": "linj-fork", - "ref": "local/debug-clean", + "owner": "RyanGibb", "repo": "hillingar", "type": "github" } @@ -304,21 +298,29 @@ "inputs": { "flake-compat": "flake-compat_2", "flake-utils": [ + "hillingar", "flake-utils" ], "mirage-opam-overlays": [ + "hillingar", "mirage-opam-overlays" ], "nixpkgs": [ + "hillingar", "nixpkgs" ], "opam-overlays": [ + "hillingar", "opam-overlays" ], "opam-repository": [ + "hillingar", "opam-repository" ], - "opam2json": "opam2json" + "opam2json": [ + "hillingar", + "opam2json" + ] }, "locked": { "lastModified": 1762273592, @@ -353,11 +355,11 @@ "opam-repository": { "flake": false, "locked": { - "lastModified": 1765797137, - "narHash": "sha256-Rsn3UIIlx5h06yK7FVsfwh5FX0RlNnqd01B5E3NqNe8=", + "lastModified": 1766253070, + "narHash": "sha256-s1WDiWw488G5FsJeYz9Dqgz6T1tuzodGTQhqjLjf7pc=", "owner": "ocaml", "repo": "opam-repository", - "rev": "8b6f76de0667cb0c30783304412259e597e5cdc0", + "rev": "a2ea42d4ff1fc1152596f11a8cb64c1a396f89ea", "type": "github" }, "original": { @@ -369,19 +371,16 @@ "opam2json": { "inputs": { "nixpkgs": [ - "opam-nix", + "hillingar", "nixpkgs" - ], - "systems": [ - "systems" ] }, "locked": { - "lastModified": 1749457947, - "narHash": "sha256-+QVm+HOYikF3wUhqSIV8qJbE/feSG+p48fgxIosbHS0=", + "lastModified": 1671540003, + "narHash": "sha256-5pXfbUfpVABtKbii6aaI2EdAZTjHJ2QntEf0QD2O5AM=", "owner": "tweag", "repo": "opam2json", - "rev": "0ecd66fc2bfb25d910522c990dd36412259eac1f", + "rev": "819d291ea95e271b0e6027679de6abb4d4f7f680", "type": "github" }, "original": { @@ -465,7 +464,6 @@ "mirage-opam-overlays": "mirage-opam-overlays", "nixdoc-to-github": "nixdoc-to-github", "nixpkgs": "nixpkgs", - "opam-nix": "opam-nix", "opam-overlays": "opam-overlays", "opam-repository": "opam-repository", "pre-commit-hooks": "pre-commit-hooks", diff --git a/flake.nix b/flake.nix index 52c69adfd..9e70c3dbe 100644 --- a/flake.nix +++ b/flake.nix @@ -22,18 +22,7 @@ inputs.hillingar.inputs.opam-repository.follows = "opam-repository"; inputs.hillingar.inputs.opam-overlays.follows = "opam-overlays"; inputs.hillingar.inputs.mirage-opam-overlays.follows = "mirage-opam-overlays"; - inputs.hillingar.inputs.opam-nix.follows = "opam-nix"; - inputs.hillingar.inputs.opam2json.follows = "opam-nix/opam2json"; - # TODO(linj) handle my patches proerly: upstream them - inputs.hillingar.url = "github:linj-fork/hillingar?ref=local/debug-clean"; - inputs.opam-nix.inputs.nixpkgs.follows = "nixpkgs"; - inputs.opam-nix.inputs.flake-utils.follows = "flake-utils"; - inputs.opam-nix.inputs.opam2json.inputs.systems.follows = "systems"; - inputs.opam-nix.inputs.opam-repository.follows = "opam-repository"; - inputs.opam-nix.inputs.opam-overlays.follows = "opam-overlays"; - inputs.opam-nix.inputs.mirage-opam-overlays.follows = "mirage-opam-overlays"; - # update opam-nix to fix eval error of new Nixpkgs: attribute 'overrideScope'' missing - inputs.opam-nix.url = "github:tweag/opam-nix"; + inputs.hillingar.url = "github:RyanGibb/hillingar"; # update ocaml-related overlays to use new-enough ocaml packages inputs.opam-repository = { url = "github:ocaml/opam-repository"; diff --git a/pkgs/by-name/dnsvizor/hillingar.nix b/pkgs/by-name/dnsvizor/hillingar.nix index e73a90b8d..aa1abe7d3 100644 --- a/pkgs/by-name/dnsvizor/hillingar.nix +++ b/pkgs/by-name/dnsvizor/hillingar.nix @@ -19,7 +19,12 @@ let owner = "linj-fork"; repo = "dnsvizor"; rev = "8b5281ebfdbd3eb0784f5ffdf145d955c438a634"; - hash = "sha256-Q+g4SO2GDlD2wjz8sjfSEypObpoldkTUMth9RfP1ZdY="; + hash = "sha256-RyqSTxlJOMKQcZscH/ZcE5zuDYCsoHpr0f+cftMgc/I="; + # TODO(linj) enable test + # currently tests fail to build if target is not "unix" + postFetch = '' + rm -vrf $out/test + ''; }) { unikernelName = "dnsvizor"; From 7ebc13c07d4b7c1957044f10eece44e047282183 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Mon, 22 Dec 2025 21:56:41 +0800 Subject: [PATCH 5/7] dnsvizor: switch to upstream dnsvizor My patches are applied using nix. --- pkgs/by-name/dnsvizor/hillingar.nix | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/dnsvizor/hillingar.nix b/pkgs/by-name/dnsvizor/hillingar.nix index aa1abe7d3..3fdbfe2e7 100644 --- a/pkgs/by-name/dnsvizor/hillingar.nix +++ b/pkgs/by-name/dnsvizor/hillingar.nix @@ -7,23 +7,25 @@ }: let - version = "0-unstable-2025-12-15"; + version = "0-unstable-2025-12-17"; unikernel = lib.flip hillingar.mkUnikernelPackages (fetchFromGitHub { - # owner = "robur-coop"; - # TODO(linj) handle my patches properly - # - upstream them to dnsvizor - # - convert them arguments of mkUnikernelPackages: query, monorepoQuery - owner = "linj-fork"; + owner = "robur-coop"; repo = "dnsvizor"; - rev = "8b5281ebfdbd3eb0784f5ffdf145d955c438a634"; - hash = "sha256-RyqSTxlJOMKQcZscH/ZcE5zuDYCsoHpr0f+cftMgc/I="; - # TODO(linj) enable test - # currently tests fail to build if target is not "unix" + rev = "57dbfa7208c765ba531995d9638f4a68b4cc6c15"; + hash = "sha256-heiCAB+1TlAVa23r1GD6WP2w3Ha8kbqKup/gzJz0EW8="; + # ideally we should use postPatch, but we cannot postFetch = '' + # TODO(linj) enable test + # currently tests fail to build if target is not "unix" rm -vrf $out/test + + # TODO(linj) remove this patch after dnsvizor#114 is merged + substituteInPlace $out/config.ml --replace-fail \ + 'package ~min:"0.5.0" "metrics";' \ + 'package ~min:"0.5.0" "metrics"; package ~min:"0.5.0" "metrics-lwt";' ''; }) { From bf173c8ecb027b4338908ff8ae0921743f499666 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Wed, 24 Dec 2025 21:28:57 +0800 Subject: [PATCH 6/7] ci: set buildbot-nix attribute to "checks.x86_64-linux" By default, buildbot-nix looks at "checks", which consists of "checks.x86_64-linux" and "checks.aarch64-linux". Our buildbot-nix CI runs on a x86_64-linux[1] machine so buildbot-nix errors out for IFDs needing to build on aarch64-linux systems. This patch fixes that error by letting buildbot-nix only look at "checks.x86_64-linux", which was made possible by [2]. Compared to the previous state, the only disadvantage is that we do not catch eval errors on aarch64-linux in the buildbot-nix CI any more. There are 3 possible alternative fixes: 1. ban IFD in ngipkgs 2. exclude "aarch64-linux" from "checks" 3. emulate aarch64-linux on a x86_64-linux machine using boot.binfmt.emulatedSystems = [ "aarch64-linux" ] The 1st alternative fix usually needs extra work to implement and usually means we have to commit generated lock files to ngipkgs repo. The 2nd alternative fix affects more than just buildbot-nix CI, such as "nix flake check", which may not be desirable. The 3rd alternative fix will slow down the buildbox-nix CI since emulating another system is slow. [1]: https://github.com/ngi-nix/ngipkgs/blob/dfab738d4a1d00f6c1b958be29163d672badf05f/infra/makemake/default.nix#L3 [2]: https://github.com/nix-community/buildbot-nix/pull/318 --- buildbot-nix.toml | 1 + 1 file changed, 1 insertion(+) create mode 100644 buildbot-nix.toml diff --git a/buildbot-nix.toml b/buildbot-nix.toml new file mode 100644 index 000000000..ac64389e4 --- /dev/null +++ b/buildbot-nix.toml @@ -0,0 +1 @@ +attribute = "checks.x86_64-linux" From 2ebb8d4eeb4e561324fdcad635323bb8d632a7e0 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Fri, 26 Dec 2025 05:16:13 +0800 Subject: [PATCH 7/7] dnsvizor: add comments about supported targets --- pkgs/by-name/dnsvizor/hillingar.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/dnsvizor/hillingar.nix b/pkgs/by-name/dnsvizor/hillingar.nix index 3fdbfe2e7..cf9c11e9b 100644 --- a/pkgs/by-name/dnsvizor/hillingar.nix +++ b/pkgs/by-name/dnsvizor/hillingar.nix @@ -59,11 +59,12 @@ let # bad: eval failure by IFD or build failure # do not use/set meta.broken because it doesn't cover eval failure by IFD + # more detailed support state can be found in https://github.com/Solo5/solo5/blob/dabc69fd89b8119449ec4088c54b458d4ccc851b/docs/building.md?plain=1#L55 knownBad = target: (lib.elem target [ "macosx" - "genode" + "genode" # removed in solo5 0.7.0 ]) || ( stdenv.hostPlatform.isAarch64