about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/mail/sympa/default.nix
blob: 3e69274ff2d524f82547ac70600613506a11294f (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
{ stdenv, perl, fetchFromGitHub, autoreconfHook, nixosTests }:

let
  dataDir = "/var/lib/sympa";
  runtimeDir = "/run/sympa";
  perlEnv = perl.withPackages (p: with p; [
    ArchiveZip
    CGI
    CGIFast
    ClassSingleton
    DateTime
    DBI
    DateTimeFormatMail
    DateTimeTimeZone
    DigestMD5
    Encode
    FCGI
    FileCopyRecursive
    FileNFSLock
    FilePath
    HTMLParser
    HTMLFormatter
    HTMLTree
    HTMLStripScriptsParser
    IO
    IOStringy
    LWP
    libintl_perl

    MHonArc
    MIMEBase64
    MIMECharset
    MIMETools
    MIMEEncWords
    MIMELiteHTML
    MailTools
    NetCIDR
    ScalarListUtils
    SysSyslog
    TermProgressBar
    TemplateToolkit
    URI
    UnicodeLineBreak
    XMLLibXML

    ### Features
    Clone
    CryptEksblowfish

    DBDPg
    DBDSQLite
    DBDmysql

    DataPassword
    EncodeLocale
    IOSocketSSL
    MailDKIM
    NetDNS
    NetLDAP
    NetSMTP
    SOAPLite
  ]);
in
stdenv.mkDerivation rec {
  pname = "sympa";
  version = "6.2.56";

  src = fetchFromGitHub {
    owner = "sympa-community";
    repo = pname;
    rev = version;
    sha256 = "13cs2azpskmp2hkfy5zqf4qb6sb9r8d4wwzc8mw74mg2kdjnvfpy";
  };

  configureFlags = [
    "--enable-fhs"
    "--without-initdir"
    "--without-unitsdir"
    "--without-smrshdir"

    "--with-lockdir=${runtimeDir}"
    "--with-piddir=${runtimeDir}"
    "--with-confdir=${dataDir}/etc"
    "--sysconfdir=${dataDir}/etc"
    "--with-spooldir=${dataDir}/spool"
    "--with-expldir=${dataDir}/list_data"
  ];
  nativeBuildInputs = [ autoreconfHook ];
  buildInputs = [ perlEnv ];
  patches = [ ./make-docs.patch ];

  prePatch = ''
    patchShebangs po/sympa/add-lang.pl
  '';

  preInstall = ''
    mkdir "$TMP/bin"
    for i in chown chgrp chmod; do
      echo '#!${stdenv.shell}' >> "$TMP/bin/$i"
      chmod +x "$TMP/bin/$i"
    done
    PATH="$TMP/bin:$PATH"
  '';

  postInstall = ''
    rm -rf "$TMP/bin"
  '';

  passthru.tests = {
    inherit (nixosTests) sympa;
  };

  meta = with stdenv.lib; {
    description = "Open source mailing list manager";
    homepage = "https://www.sympa.org";
    license = licenses.gpl2;
    maintainers = with maintainers; [ sorki mmilata ];
    platforms = platforms.all;
  };
}