cpanfile 8.8 KB
Newer Older
Luc Didry's avatar
Luc Didry committed
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
### Requirements
##

# This module provides zip/unzip for archive and shared document download/upload
requires 'Archive::Zip', '>= 1.05';

# Required to run Sympa web interface
requires 'CGI', '>= 3.51';

# WWSympa, Sympa's web interface can run as a FastCGI (i.e. a persistent CGI). If you install this module, you will also need to install FCGI module
requires 'CGI::Fast', '>= 1.08';

# Used to construct various singleton classes.
requires 'Class::Singleton', '>= 1.03';

# A generic Database Driver, required by Sympa to access Subscriber information and User preferences. An additional Database Driver is required for each database type you wish to connect to.
requires 'DBI', '>= 1.48';

# Used to decode date and time in message headers
requires 'DateTime::Format::Mail', '>= 0.28';

# Used to decode date and time in message headers
requires 'DateTime::TimeZone', '>= 0.59';

# Used to compute MD5 digests for passwords, etc.
requires 'Digest::MD5', '>= 2.00';

# Module for character encoding processing
requires 'Encode';

# WWSympa, Sympa's web interface can run as a FastCGI (i.e. a persistent CGI). If you install this module, you will also need to install the associated FastCGI frontend, e.g. mod_fcgid for Apache.
requires 'FCGI', '>= 0.67';

# Used to copy file hierarchies
requires 'File::Copy::Recursive', '>= 0.36';

# Required to perform NFS-safe file locking
requires 'File::NFSLock';

# Used to create or remove paths
requires 'File::Path', '>= 2.08';

# Used to compute plaindigest messages from HTML
requires 'HTML::FormatText';

# Required for XSS protection on the web interface
requires 'HTML::StripScripts::Parser', '>= 1.03';

# Used to compute plaindigest messages from HTML
requires 'HTML::TreeBuilder';

# Internal use for filehandle processing
requires 'IO::File', '>= 1.10';

# Internal use for string processing
requires 'IO::Scalar';

# Required when including members of a remote list
requires 'LWP::UserAgent';

# Set of various subroutines to handle scalar
requires 'List::Util::XS', '>= 1.20';

# Internationalization functions
requires 'Locale::Messages', '>= 1.20';

# MHonArc is used to build Sympa web archives
requires 'MHonArc::UTF8', '>= 2.6.18';

# Required to compute digest for password and emails
requires 'MIME::Base64', '>= 3.03';

# Used to encode mail body using a different charset
requires 'MIME::Charset', '>= 1.011.3';

# Required to decode/encode SMTP header fields without breaking character encoding
requires 'MIME::EncWords', '>= 1.014';

# Used to compose HTML mail from the web interface
requires 'MIME::Lite::HTML', '>= 1.23';

# Provides libraries for manipulating MIME messages
requires 'MIME::Tools', '>= 5.423';

# Used to parse or build mailboxes in message headers
requires 'Mail::Address', '>= 1.70';

# Used to check netmask within Sympa authorization scenario rules
requires 'Net::CIDR', '>= 0.16';

# Used to record system log via syslog
requires 'Sys::Syslog', '>= 0.03';

# Sympa template format, used for web pages and other mail, config file templates. See http://template-toolkit.org/.
requires 'Template', '>= 2.21';

# Used to show progress bar by command line utilities
requires 'Term::ProgressBar', '>= 2.09';

# Used to fold lines in HTML mail composer and system messages, prior to Text::Wrap
requires 'Text::LineFold', '>= 2011.05';

# Used to get time with sub-second precision
requires 'Time::HiRes', '>= 1.29';

# Used to create URI containing non URI-canonical characters.
requires 'URI::Escape', '>= 3.28';

# Used to parse list configuration templates and instanciate list families
# libxml2-devel is needed to build the Perl code
requires 'XML::LibXML', '>= 1.70';

### Recommendations
##

# Use XS version of some modules to make Sympa faster
# Used to make copy of internal data structures.
recommends 'Clone', '>= 0.31';

# Used to encrypt passwords with the Bcrypt hash algorithm
recommends 'Crypt::Eksblowfish', '>= 0.009';

# Used for configureable hardening of passwords via the password_validation sympa.conf directive.
recommends 'Data::Password', '>= 1.07';

# Useful when running command line utilities in the console not supporting UTF-8 encoding
recommends 'Encode::Locale', '>= 1.02';

# Required in order to use DKIM features (both for signature verification and signature insertion)
recommends 'Mail::DKIM::Verifier', '>= 0.37';

# This is required if you set a value for "dmarc_protection_mode" which requires DNS verification
recommends 'Net::DNS', '>= 0.65';

135
136
137
# This is required if you set "list_check_smtp" sympa.conf parameter, used to check existing aliases before mailing list creation.
recommends 'Net::SMTP';

Luc Didry's avatar
Luc Didry committed
138
139
140
141
142
143
144
145
146
147
# Normalizes file names represented by Unicode
recommends 'Unicode::Normalize', '>= 0.23';

### Features
##

feature 'cas', 'CAS Single Sign-On client libraries. Required if you configure Sympa to delegate web authentication to a CAS server.' => sub {
    requires 'AuthCAS', '>= 1.4';
};

148
149
150
151
feature 'Clone', 'Used to make copy of internal data structures.' => sub {
    requires 'Clone', '>= 0.31';
};

Luc Didry's avatar
Luc Didry committed
152
153
154
155
feature 'migrate-from-very-old-version', 'This module provides reversible encryption of user passwords in the database.  Useful when updating from old version with password reversible encryption, or if secure session cookies in non-SSL environments are required.' => sub {
    requires 'Crypt::CipherSaber', '>= 0.50';
};

156
157
158
159
feature 'Crypt::Eksblowfish', 'Used to encrypt passwords with the Bcrypt hash algorithm' => sub {
    requires 'Crypt::Eksblowfish', '>= 0.009';
};

Luc Didry's avatar
Luc Didry committed
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
feature 'x509-auth', 'Required to extract user certificates for SSL clients and S/MIME messages.' => sub {
    requires 'Crypt::OpenSSL::X509', '>= 1.800.1';
};

feature 'smime', 'Required to sign, verify, encrypt and decrypt S/MIME messages.' => sub {
    requires 'Crypt::SMIME', '>= 0.15';
    # Required to extract user certificates for SSL clients and S/MIME messages.
    requires 'Crypt::OpenSSL::X509', '>= 1.800.1';
};

feature 'csv', 'CSV database driver, required if you include list members, owners or editors from CSV file.' => sub {
    requires 'DBD::CSV', '>= 0.22';
};

feature 'odbc', 'ODBC database driver, required if you connect to a database via ODBC.' => sub {
    requires 'DBD::ODBC';
};

feature 'oracle', 'Oracle database driver, required if you connect to a Oracle database.' => sub {
    requires 'DBD::Oracle', '>= 1.02';
};

feature 'pg', 'PostgreSQL database driver, required if you connect to a PostgreSQL database.' => sub {
    # postgresql-devel and postgresql-server. PostgreSQL server should be running for make test to succeed
    requires 'DBD::Pg', '>= 2.00';
};

feature 'sqlite', 'SQLite database driver, required if you connect to a SQLite database.' => sub {
    # sqlite-devel. No need to install a server, the SQLite server code being provided with the client code.
    requires 'DBD::SQLite', '>= 1.31';
};

feature 'sybase', 'Sybase database driver, required if you connect to a Sybase database.' => sub {
    requires 'DBD::Sybase', '>= 0.90';
};

feature 'mysql', 'MySQL / MariaDB database driver, required if you connect to a MySQL (or MariaDB) database.' => sub {
    # mysql-devel and myslq-server. MySQL (or MariaDB) server should be running for make test to succeed
    requires 'DBD::mysql', '>= 4.008';
};

201
202
203
204
205
206
207
208
feature 'Data::Password', 'Used for configureable hardening of passwords via the password_validation sympa.conf directive.' => sub {
    requires 'Data::Password', '>= 1.07';
};

feature 'Encode::Locale', 'Useful when running command line utilities in the console not supporting UTF-8 encoding' => sub {
    requires 'Encode::Locale', '>= 1.02';
};

Luc Didry's avatar
Luc Didry committed
209
210
211
212
feature 'remote-list-including', 'Required when including members of a remote list' => sub {
    requires 'IO::Socket::SSL', '>= 0.90';
};

213
214
215
216
217
218
219
220
feature 'Mail::DKIM::Verifier', 'Required in order to use DKIM features (both for signature verification and signature insertion)' => sub {
    requires 'Mail::DKIM::Verifier', '>= 0.37';
};

feature 'Net::DNS', 'This is required if you set a value for "dmarc_protection_mode" which requires DNS verification' => sub {
    requires 'Net::DNS', '>= 0.65';
};

Luc Didry's avatar
Luc Didry committed
221
222
223
224
225
feature 'ldap', 'Required to query LDAP directories. Sympa can do LDAP-based authentication ; it can also build mailing lists with LDAP-extracted members.' => sub {
    # openldap-devel is needed to build the Perl code
    requires 'Net::LDAP', '>= 0.40';
};

226
227
228
229
feature 'Net::SMTP', 'This is required if you set "list_check_smtp" sympa.conf parameter, used to check existing aliases before mailing list creation.' => sub {
    requires 'Net::SMTP';
};

Luc Didry's avatar
Luc Didry committed
230
231
232
233
feature 'soap', 'Required if you want to run the Sympa SOAP server that provides mailing list services via a "web service"' => sub {
    requires 'SOAP::Lite', '>= 0.712';
};

234
235
236
feature 'Unicode::Normalize', 'Normalizes file names represented by Unicode' => sub {
    requires 'Unicode::Normalize', '>= 0.23';
};
Luc Didry's avatar
Luc Didry committed
237

238
239
240
on 'develop' => sub {
    requires 'Test::Fixme';
    requires 'Test::PerlTidy';
241
    requires 'Perl::Tidy', '== 20180220';
242
};