about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/networking/listadmin/default.nix
blob: a59f65995e2e384891b07b91f2e7d559dd834c82 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{ lib, stdenvNoCC, fetchurl, makeWrapper, perl, installShellFiles }:

stdenvNoCC.mkDerivation rec {
  pname = "listadmin";
  version = "2.73";

  src = fetchurl {
    url = "mirror://sourceforge/project/listadmin/${version}/listadmin-${version}.tar.gz";
    sha256 = "00333d65ygdbm1hqr4yp2j8vh1cgh3hyfm7iy9y1alf0p0f6aqac";
  };

  buildInputs = [ perl ];
  nativeBuildInputs = [ makeWrapper installShellFiles ];

  # There is a Makefile, but we don’t need it, and it prints errors
  dontBuild = true;

  installPhase = ''
    mkdir -p $out/bin $out/share/man/man1
    install -m 755 listadmin.pl $out/bin/listadmin
    installManPage listadmin.1

    wrapProgram $out/bin/listadmin \
      --prefix PERL5LIB : "${with perl.pkgs; makeFullPerlPath [
        TextReform NetINET6Glue LWPProtocolHttps
        ]}"
  '';

  doInstallCheck = true;
  installCheckPhase = ''
    $out/bin/listadmin --help 2> /dev/null
  '';

  meta = with lib; {
    description = "Command line mailman moderator queue manipulation";
    longDescription = ''
       listadmin is a command line tool to manipulate the queues of messages
       held for moderator approval by mailman. It is designed to keep user
       interaction to a minimum, in theory you could run it from cron to prune
       the queue. It can use the score from a header added by SpamAssassin to
       filter, or it can match specific senders, subjects, or reasons.
    '';
    homepage = "https://sourceforge.net/projects/listadmin/";
    license = licenses.publicDomain;
    platforms = platforms.unix;
    maintainers = with maintainers; [ nomeata ];
  };
}