From 3f440dc3a8be5623b76e13494ff7b635697b5027 Mon Sep 17 00:00:00 2001 From: Ethan Carter Edwards Date: Sat, 14 Jun 2025 17:35:12 -0400 Subject: [PATCH 1/4] projects/holo: init Holo the package was added in 3af2d5fad2d59c57dc1d4acf4d85ada3890172ff but then later migrated to Nixpkgs. Its page is here: https://nlnet.nl/project/HoloRouting Signed-off-by: Ethan Carter Edwards --- projects/holo/default.nix | 29 +++++++++++++++++++ .../holo/programs/holo/examples/basic.nix | 5 ++++ projects/holo/programs/holo/module.nix | 21 ++++++++++++++ projects/holo/programs/holo/tests/basic.nix | 28 ++++++++++++++++++ 4 files changed, 83 insertions(+) create mode 100644 projects/holo/default.nix create mode 100644 projects/holo/programs/holo/examples/basic.nix create mode 100644 projects/holo/programs/holo/module.nix create mode 100644 projects/holo/programs/holo/tests/basic.nix diff --git a/projects/holo/default.nix b/projects/holo/default.nix new file mode 100644 index 000000000..dbde983c6 --- /dev/null +++ b/projects/holo/default.nix @@ -0,0 +1,29 @@ +{ + lib, + pkgs, + sources, +}@args: + +{ + metadata = { + summary = "Holo is a suite of routing protocols designed to address the needs of modern networks"; + subgrants = [ + "HoloRouting" + ]; + }; + + nixos.modules.programs = { + holo = { + name = "holo"; + # if a project has `packages`, add them inside the `module.nix` file + module = ./programs/holo/module.nix; + examples.basic = { + module = ./programs/holo/examples/basic.nix; + description = "Enable holo to install the holo-cli package"; + tests.basic = import ./programs/holo/tests/basic.nix args; + }; + }; + }; + + # TODO: add service module +} diff --git a/projects/holo/programs/holo/examples/basic.nix b/projects/holo/programs/holo/examples/basic.nix new file mode 100644 index 000000000..97db60dc6 --- /dev/null +++ b/projects/holo/programs/holo/examples/basic.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + programs.holo.enable = true; +} diff --git a/projects/holo/programs/holo/module.nix b/projects/holo/programs/holo/module.nix new file mode 100644 index 000000000..9b87af863 --- /dev/null +++ b/projects/holo/programs/holo/module.nix @@ -0,0 +1,21 @@ +{ + config, + lib, + pkgs, + ... +}: +let + cfg = config.programs.holo; +in +{ + options.programs.holo = { + enable = lib.mkEnableOption "holo"; + package = lib.mkPackageOption pkgs "holo-cli" { }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + cfg.package + ]; + }; +} diff --git a/projects/holo/programs/holo/tests/basic.nix b/projects/holo/programs/holo/tests/basic.nix new file mode 100644 index 000000000..4505c36df --- /dev/null +++ b/projects/holo/programs/holo/tests/basic.nix @@ -0,0 +1,28 @@ +{ + sources, + ... +}: + +{ + name = "Program Name"; + + nodes = { + machine = + { ... }: + { + imports = [ + sources.modules.ngipkgs + sources.modules.programs.holo + sources.examples.holo.basic + ]; + }; + }; + + testScript = + { nodes, ... }: + '' + start_all() + + machine.succeed("holo-cli --version") + ''; +} From 7d38c3520f1fdc6948f4e290d53ec481e841dc8e Mon Sep 17 00:00:00 2001 From: Ethan Carter Edwards Date: Sat, 14 Jun 2025 18:14:30 -0400 Subject: [PATCH 2/4] Update projects/holo/default.nix Co-authored-by: Fedi Jamoussi --- projects/holo/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/holo/default.nix b/projects/holo/default.nix index dbde983c6..83eeb0ec6 100644 --- a/projects/holo/default.nix +++ b/projects/holo/default.nix @@ -19,7 +19,7 @@ module = ./programs/holo/module.nix; examples.basic = { module = ./programs/holo/examples/basic.nix; - description = "Enable holo to install the holo-cli package"; + description = "Enable the holo program"; tests.basic = import ./programs/holo/tests/basic.nix args; }; }; From b1040a90cc989667953ee6b772e2eccb32c104e0 Mon Sep 17 00:00:00 2001 From: Ethan Carter Edwards Date: Sat, 14 Jun 2025 18:14:43 -0400 Subject: [PATCH 3/4] Update projects/holo/programs/holo/tests/basic.nix to use holo Co-authored-by: Fedi Jamoussi --- projects/holo/programs/holo/tests/basic.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/holo/programs/holo/tests/basic.nix b/projects/holo/programs/holo/tests/basic.nix index 4505c36df..2e6a7a5c6 100644 --- a/projects/holo/programs/holo/tests/basic.nix +++ b/projects/holo/programs/holo/tests/basic.nix @@ -4,7 +4,7 @@ }: { - name = "Program Name"; + name = "holo"; nodes = { machine = From cb36fa0c0dc992059fe50607d467f1f94be588c9 Mon Sep 17 00:00:00 2001 From: Ethan Carter Edwards Date: Sat, 14 Jun 2025 18:14:56 -0400 Subject: [PATCH 4/4] Update projects/holo/default.nix to make the service for holo-daemon null Co-authored-by: Fedi Jamoussi --- projects/holo/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/projects/holo/default.nix b/projects/holo/default.nix index 83eeb0ec6..283c89aac 100644 --- a/projects/holo/default.nix +++ b/projects/holo/default.nix @@ -26,4 +26,5 @@ }; # TODO: add service module + nixos.modules.services.holo-daemon = null; }