From 0000000324d0f1e01cef043cf20fac9afc2dc693 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sun, 21 May 2023 18:53:12 +0200 Subject: [PATCH 1/2] nixos/portunus: use openldap compiled with libxcrypt-legacy It hardcodes sha256 crypt and the managed slapd crash loops otherwise. --- nixos/modules/services/misc/portunus.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/misc/portunus.nix b/nixos/modules/services/misc/portunus.nix index 5504fb942968..d18881986970 100644 --- a/nixos/modules/services/misc/portunus.nix +++ b/nixos/modules/services/misc/portunus.nix @@ -107,8 +107,9 @@ in ldap = { package = mkOption { type = types.package; - default = pkgs.openldap; - defaultText = lib.literalExpression "pkgs.openldap"; + # needs openldap built with a libxcrypt that support crypt sha256 until https://github.com/majewsky/portunus/issues/2 is solved + default = pkgs.openldap.override { libxcrypt = pkgs.libxcrypt-legacy; }; + defaultText = lib.literalExpression "pkgs.openldap.override { libxcrypt = pkgs.libxcrypt-legacy; }"; description = lib.mdDoc "The OpenLDAP package to use."; }; From 00000006e9812e28fecc192a3883e01e88053f89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sun, 21 May 2023 18:53:52 +0200 Subject: [PATCH 2/2] nixos/tests: init portunus --- nixos/tests/all-tests.nix | 1 + nixos/tests/portunus.nix | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 nixos/tests/portunus.nix diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 9f35dca5cc4f..dfeb4c1aa0ed 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -597,6 +597,7 @@ in { podman-tls-ghostunnel = handleTestOn ["aarch64-linux" "x86_64-linux"] ./podman/tls-ghostunnel.nix {}; polaris = handleTest ./polaris.nix {}; pomerium = handleTestOn ["x86_64-linux"] ./pomerium.nix {}; + portunus = handleTest ./portunus.nix { }; postfix = handleTest ./postfix.nix {}; postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {}; postfixadmin = handleTest ./postfixadmin.nix {}; diff --git a/nixos/tests/portunus.nix b/nixos/tests/portunus.nix new file mode 100644 index 000000000000..6fcae7e1c4ce --- /dev/null +++ b/nixos/tests/portunus.nix @@ -0,0 +1,18 @@ +import ./make-test-python.nix ({ lib, ... }: + +{ + name = "portunus"; + meta.maintainers = with lib.maintainers; [ SuperSandro2000 ]; + + nodes.machine = _: { + services.portunus = { + enable = true; + ldap.suffix = "dc=example,dc=org"; + }; + }; + + testScript = '' + machine.wait_for_unit("portunus.service") + machine.succeed("curl --fail -vvv http://localhost:8080/") + ''; +})