nixpkgs/pkgs/by-name/ma/maddy/package.nix
Winter a19cd4ffb1 Revert "treewide: replace rev with tag"
This reverts commit 65a333600d5c88a98d674f637d092807cfc12253.

This wasn't tested for correctness with something like fodwatch [0],
and should not have been (self-)merged so quickly, especially without
further review.

It also resulted in the breakage of at least one package [1] (and that's
the one we know of and was caught).

A few packages that were updated in between this commit and this revert
were not reverted back to using `rev`, but other than that, this is a
1:1 revert.

[0]: https://codeberg.org/raphaelr/fodwatch
[1]: https://github.com/NixOS/nixpkgs/pull/396904 / 758551e4587d75882aebc21a04bee960418f8ce9
2025-04-08 02:57:25 -04:00

74 lines
1.6 KiB
Nix

{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
pam,
coreutils,
installShellFiles,
scdoc,
nixosTests,
}:
buildGoModule rec {
pname = "maddy";
version = "0.8.1";
src = fetchFromGitHub {
owner = "foxcpp";
repo = "maddy";
rev = "v${version}";
sha256 = "sha256-cR5qRUYQnFfm+ZOwwwNNRo1odq/ntI2QlGmhJBTjaF4=";
};
vendorHash = "sha256-YbXhxcRDTkNDdlCAKtQS2G8fwRIrRGpouIYx+5RG2lY=";
tags = [ "libpam" ];
ldflags = [
"-s"
"-w"
"-X github.com/foxcpp/maddy.Version=${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 = with lib; {
description = "Composable all-in-one mail server";
homepage = "https://maddy.email";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ nickcao ];
};
}