Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 73 lines 1.7 kB view raw
1{ 2 lib, 3 stdenv, 4 buildGoModule, 5 fetchFromGitHub, 6 pam, 7 coreutils, 8 installShellFiles, 9 scdoc, 10 nixosTests, 11}: 12 13buildGoModule rec { 14 pname = "maddy"; 15 version = "0.8.1"; 16 17 src = fetchFromGitHub { 18 owner = "foxcpp"; 19 repo = "maddy"; 20 rev = "v${version}"; 21 sha256 = "sha256-cR5qRUYQnFfm+ZOwwwNNRo1odq/ntI2QlGmhJBTjaF4="; 22 }; 23 24 vendorHash = "sha256-YbXhxcRDTkNDdlCAKtQS2G8fwRIrRGpouIYx+5RG2lY="; 25 26 tags = [ "libpam" ]; 27 28 ldflags = [ 29 "-s" 30 "-w" 31 "-X github.com/foxcpp/maddy.Version=${version}" 32 ]; 33 34 subPackages = [ "cmd/maddy" ]; 35 36 buildInputs = [ pam ]; 37 38 nativeBuildInputs = [ 39 installShellFiles 40 scdoc 41 ]; 42 43 postInstall = '' 44 for f in docs/man/*.scd; do 45 local page="docs/man/$(basename "$f" .scd)" 46 scdoc < "$f" > "$page" 47 installManPage "$page" 48 done 49 50 ln -s "$out/bin/maddy" "$out/bin/maddyctl" 51 52 mkdir -p $out/lib/systemd/system 53 54 substitute dist/systemd/maddy.service $out/lib/systemd/system/maddy.service \ 55 --replace "/usr/local/bin/maddy" "$out/bin/maddy" \ 56 --replace "/bin/kill" "${coreutils}/bin/kill" 57 58 substitute dist/systemd/maddy@.service $out/lib/systemd/system/maddy@.service \ 59 --replace "/usr/local/bin/maddy" "$out/bin/maddy" \ 60 --replace "/bin/kill" "${coreutils}/bin/kill" 61 ''; 62 63 env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=strict-prototypes"; 64 65 passthru.tests.nixos = nixosTests.maddy; 66 67 meta = with lib; { 68 description = "Composable all-in-one mail server"; 69 homepage = "https://maddy.email"; 70 license = licenses.gpl3Plus; 71 maintainers = with maintainers; [ nickcao ]; 72 }; 73}