forked from sympa-community/sympa
-
Notifications
You must be signed in to change notification settings - Fork 2
/
cpanfile
346 lines (252 loc) · 12.6 KB
/
cpanfile
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
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
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
### Requirements
##
# Minimum version of Perl required.
# Notation suggested on https://metacpan.org/pod/Carton#PERL-VERSIONS
requires 'perl', '5.16.0';
# Used to zip/unzip for archive and shared document download/upload.
# Note: Some environments not providing 'Archive::Zip::Simple*' modules may
# use a memory-consuming module 'Archive::Zip' for the alternative.
requires 'Archive::Zip::SimpleUnzip', '>= 0.024';
requires 'Archive::Zip::SimpleZip', '>= 0.021';
#requires 'Archive::Zip', '>= 1.05';
# Required to run Sympa web interface
requires 'CGI', '>= 3.51';
# Note: 'CGI::Cookie' is included in CGI.
# Note: 'CGI::Util' is included in CGI.
# 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
# Note: 'CGI::Fast' was included in core of Perl < 5.22 so that dependency
# upon 'FCGI' might not be enforced.
# Note: 1.08 is at least version with CGI 3.51.
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';
# Note: 'DateTime' is used by DateTime::Format::Mail.
# 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';
# Note: 'Fcntl' is core module.
# Note: 'File::Basename' is core module.
# 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 parse arguments of command line tools
requires 'Getopt::Long', '>= 2.24';
# Note: 'HTML::Entities' >=3.59 is included in HTML-Parser which
# 'HTML::StripScripts::Parser' depends on.
# Used to compute plaindigest messages from HTML
requires 'HTML::FormatText';
# Note: 'HTML::Parser' is used by HTML::StripScripts::Parser.
# Required for XSS protection on the web interface
requires 'HTML::StripScripts::Parser', '>= 1.03';
# Used to compute plaindigest messages from HTML
requires 'HTML::TreeBuilder';
# Note: 'HTTP::Cookies' is included or depended on by libwww-perl which
# includes 'LWP::UserAgent'.
# Note: 'HTTP::Request' is included or depended on by libwww-perl which
# includes 'LWP::UserAgent'.
# 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
# Note: The pure-perl version of Scalar::Util::looks_like_number() was
# unstable. To force using XS version, check existence of 'List::Util::XS'.
requires 'List::Util::XS', '>= 1.20';
# Internationalization functions
# Note: 1.22 or later is recommended.
requires 'Locale::Messages', '>= 1.20';
# MHonArc is used to build Sympa web archives
requires 'MHonArc::UTF8', '>= 2.6.24';
# Required to compute digest for password and emails
requires 'MIME::Base64', '>= 3.11';
# 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.015';
# 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 show POD documentation for command line utilities
requires 'Pod::Usage', '>= 1.63';
# Note: 'Scalar::Util' is included in Scalar-List-Utils which includes
# 'List::Util'.
# 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', '>= 2018.012';
# Used to get time with sub-second precision
requires 'Time::HiRes', '>= 1.29';
# Used to get Unix time from local time
requires 'Time::Local', '>= 1.23';
# Used to create URI containing non URI-canonical characters.
# Note: '3.28' is the version included in URI-1.35.
requires 'URI::Escape', '>= 3.28';
# Note: 'Unicode::GCString' is included in Unicode-LineBreak which includes
# 'Text::LineFold'.
# 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';
# Note: 'Mail::DKIM::Signer' is included in Mail-DKIM.
# Note: 'Mail::DKIM::TextWrap' is included in Mail-DKIM.
# 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';
# This is required if you set "list_check_smtp" sympa.conf parameter, used to check existing aliases before mailing list creation.
recommends 'Net::SMTP';
# Normalizes file names represented by Unicode
# Note: Perl 5.8.1 bundles version 0.23.
# Note: Perl 5.10.1 bundles 1.03 (per Unicode 5.1.0).
recommends 'Unicode::Normalize', '>= 1.03';
recommends 'Unicode::UTF8', '>= 0.60';
### 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';
};
feature 'Clone', 'Used to make copy of internal data structures.' => sub {
requires 'Clone', '>= 0.31';
};
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';
};
feature 'Crypt::Eksblowfish', 'Used to encrypt passwords with the Bcrypt hash algorithm.' => sub {
requires 'Crypt::Eksblowfish', '>= 0.009';
};
feature 'x509-auth', 'Required to extract user certificates for SSL clients and S/MIME messages.' => sub {
# Note: email() for certificate on versions < 1.909 was broken.
requires 'Crypt::OpenSSL::X509', '>= 1.909';
};
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.
# Note: value() for extension on versions < 1.808 was broken.
# Note: email() for certificate on versions < 1.909 was broken.
requires 'Crypt::OpenSSL::X509', '>= 1.909';
};
feature 'csv', 'CSV database driver, required if you include list members, owners or moderators 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';
};
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';
};
feature 'macos', 'Requirements specific to macOS.' => sub {
# Use dlopen() for macOS Big Sur or later.
requires 'ExtUtils::MakeMaker', '>= 7.58';
};
feature 'remote-list-including', 'Required when including members of a remote list.' => sub {
requires 'LWP::Protocol::https';
};
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 'Mail::DKIM::ARC::Signer', 'Required in order to use ARC features to add ARC seals.' => sub {
requires 'Mail::DKIM::ARC::Signer', '>= 0.57';
# Note: Mail::DKIM::ARC::Verifier is also included in Mail-DKIM.
# Note: Mail::AuthenticationResults::Parser is depended on Mail-DKIM.
};
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';
};
feature 'ipv6', 'Required to support IPv6 with client features.' => sub {
# Note: Perl 5.14 bundles Socket 0.95 which exports AF_INET6. Earlier
# version also requires Socket6 >= 0.23.
# Note: Some distributions e.g. RHEL/CentOS 6 do not provide package for
# IO::Socket::IP. If that is the case, use IO::Socket::INET6 instead.
# Note: Perl 5.20.0 bundles IO::Socket::IP 0.29.
requires 'IO::Socket::IP', '>= 0.21';
};
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';
# Note: 'Net::LDAP::Entry' and 'Net::LDAP::Util' are also
# included in perl-ldap.
};
feature 'ldap-secure', 'Required to query LDAP directories over TLS.' => sub {
requires 'Net::LDAP', '>= 0.40';
requires 'IO::Socket::SSL', '>= 0.90';
# Note: 'Net::LDAPS' is also included in perl-ldap.
};
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';
};
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';
};
feature 'safe-unicode', 'Sanitizes inputs with Unicode text.' => sub {
# Note: Perl 5.8.1 bundles version 0.23.
# Note: Perl 5.10.1 bundles 1.03 (per Unicode 5.1.0).
requires 'Unicode::Normalize', '>= 1.03';
requires 'Unicode::UTF8', '>= 0.60';
};
on 'test' => sub {
requires 'Test::Compile';
requires 'Test::Harness';
requires 'Test::More';
requires 'Test::Pod', '>= 1.41';
};
on 'develop' => sub {
requires 'Test::Fixme';
requires 'Test::PerlTidy', '== 20130104';
requires 'Perl::Tidy', '== 20180220';
requires 'Code::TidyAll';
requires 'Test::Net::LDAP', '>= 0.06';
};