From 2fdc54c8f392e74a50a1c911087d6c9d48e66cbe Mon Sep 17 00:00:00 2001 From: encode42 Date: Wed, 15 Apr 2026 16:11:32 -0400 Subject: [PATCH] Update to the latest version of maddy --- config/server/groupware/maddy.nix | 4 ++ packages/default.nix | 1 + packages/maddy/default.nix | 75 +++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 packages/maddy/default.nix diff --git a/config/server/groupware/maddy.nix b/config/server/groupware/maddy.nix index e8f70c7..13ed95c 100644 --- a/config/server/groupware/maddy.nix +++ b/config/server/groupware/maddy.nix @@ -4,6 +4,8 @@ ssl, }: +{ pkgs-flake, ... }: + let subdomain = "mx.${domain}"; @@ -35,6 +37,8 @@ in services.maddy = { enable = true; + package = pkgs-flake.maddy; + primaryDomain = subdomain; localDomains = [ diff --git a/packages/default.nix b/packages/default.nix index 1965011..8a8ce34 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -17,6 +17,7 @@ rec { emby-server = pkgs.callPackage ./emby-server { }; iso2god-rs = pkgs.callPackage ./iso2god-rs { }; lutris-gamepad-ui = pkgs.callPackage ./lutris-gamepad-ui { }; + maddy = pkgs.callPackage ./maddy { }; mediaelch = pkgs.callPackage ./mediaelch { }; network-optimizer = pkgs.callPackage ./network-optimizer { }; omnipoly = pkgs.callPackage ./omnipoly { }; diff --git a/packages/maddy/default.nix b/packages/maddy/default.nix new file mode 100644 index 0000000..145ae21 --- /dev/null +++ b/packages/maddy/default.nix @@ -0,0 +1,75 @@ +# https://github.com/NixOS/nixpkgs/pull/503383 + +{ + lib, + stdenv, + buildGoModule, + fetchFromGitHub, + pam, + coreutils, + installShellFiles, + scdoc, + nixosTests, +}: + +buildGoModule (finalAttrs: { + pname = "maddy"; + version = "0.9.3"; + + src = fetchFromGitHub { + owner = "foxcpp"; + repo = "maddy"; + rev = "v${finalAttrs.version}"; + sha256 = "sha256-rhQh8aNPv1pPGO6pMFX/1+w78SRho7puz39gejx+lpI="; + }; + + vendorHash = "sha256-URD2Q9Qo+huzRNIpOTKweleDzAxWtqHlxJks+eH2gsQ="; + + tags = [ "libpam" ]; + + ldflags = [ + "-s" + "-w" + "-X github.com/foxcpp/maddy.Version=${finalAttrs.version}" + ]; + + subPackages = [ "cmd/maddy" ]; + + buildInputs = [ pam ]; + + nativeBuildInputs = [ + installShellFiles + scdoc + ]; + + postInstall = '' + for f in docs/man/*.scd; do + local page="docs/man/$(basename "$f" .scd)" + scdoc < "$f" > "$page" + installManPage "$page" + done + + ln -s "$out/bin/maddy" "$out/bin/maddyctl" + + mkdir -p $out/lib/systemd/system + + substitute dist/systemd/maddy.service $out/lib/systemd/system/maddy.service \ + --replace "/usr/local/bin/maddy" "$out/bin/maddy" \ + --replace "/bin/kill" "${coreutils}/bin/kill" + + substitute dist/systemd/maddy@.service $out/lib/systemd/system/maddy@.service \ + --replace "/usr/local/bin/maddy" "$out/bin/maddy" \ + --replace "/bin/kill" "${coreutils}/bin/kill" + ''; + + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=strict-prototypes"; + + passthru.tests.nixos = nixosTests.maddy; + + meta = { + description = "Composable all-in-one mail server"; + homepage = "https://maddy.email"; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ nickcao ]; + }; +}) -- 2.51.2