-
-
Notifications
You must be signed in to change notification settings - Fork 649
Expand file tree
/
Copy pathcpanfile
More file actions
180 lines (163 loc) 路 8.44 KB
/
Copy pathcpanfile
File metadata and controls
180 lines (163 loc) 路 8.44 KB
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
# Should also be available as Debian packages
# If a minimum version number is specified, "cpanm --skip-satisfied" will install a newer version than apt if one is available in cpan.
requires 'Array::Diff';
requires 'CGI', '==4.70';
requires 'File::Slurp'; # libfile-slurp-perl
requires 'Tie::IxHash'; # libtie-ixhash-perl
requires 'LWP::Authen::Digest'; # libwww-perl
requires 'LWP::UserAgent'; # libwww-perl
requires 'Image::Magick'; # libimage-magick-perl
requires 'XML::Encoding'; # libxml-encoding-perl
requires 'MIME::Lite'; # libmime-lite-perl
requires 'MIME::Base32';
requires 'Cache::Memcached::Fast'; #libcache-memcached-fast-perl
requires 'CHI'; # required by the packager code refresh scripts
requires 'JSON'; # libjson-perl
requires 'JSON::PP'; # libjson-pp-perl
requires 'Cpanel::JSON::XS'; # libcpanel-json-xs-perl - fast parsing
requires 'JSON::MaybeXS'; # libjson-maybexs-perl
requires 'Clone'; # libclone-perl
requires 'Crypt::PasswdMD5'; #11866: Delete after Keycloak Migration
requires 'Data::Table'; # libdata-table-perl - required by the packager code refresh scripts
requires 'Encode::Detect'; # libencode-detect-perl
requires 'Barcode::ZBar'; # libbarcode-zbar-perl
requires 'XML::FeedPP'; # libxml-feedpp-perl
requires 'URI::Find'; # liburi-find-perl
requires 'XML::Simple'; # libxml-simple-perl
requires 'experimental'; # libexperimental-perl
requires 'Apache2::Request'; # libapache2-request-perl
requires 'Digest::MD5'; # libdigest-md5-perl
requires 'Time::Local'; # libtime-local-perl
requires 'Template', '>= 3.009'; # libtemplate-perl
requires 'URI::Escape::XS'; # liburi-escape-xs-perl
requires 'Math::Random::Secure'; # libmath-random-secure-perl. deps: libtest-sharedfork-perl, libtest-warn-perl, libmath-random-isaac-perl, libcrypt-random-source-perl
requires 'Email::Stuffer', '>= 0.018'; # libemail-stuffer-perl
requires 'File::Copy::Recursive', '>= 0.45'; # libfile-copy-recursive-perl
requires 'List::MoreUtils', '>= 0.430'; # liblist-moreutils-perl
requires 'Excel::Writer::XLSX', '>= 1.09'; # libexcel-writer-xlsx-perl
requires 'Pod::Simple::HTMLBatch'; # libpod-simple-perl
requires 'GeoIP2', '>= 2.006002, < 3.0'; # libgeoip2-perl, deps: libdata-validate-ip-perl libio-compress-perl libjson-maybexs-perl liblist-someutils-perl, libdata-dumper-concise-perl, libdata-printer-perl
requires 'Email::Valid', '>= 1.202, < 2.0'; # libemail-valid-perl
requires 'Path::Tiny', '>= 0.118'; # libpath-tiny-perl
requires 'XML::LibXSLT'; # libxml-libxslt-perl - required by the packager code refresh scripts
requires 'XML::RPC', '>= 2'; # libxml-rpc-fast-perl
requires 'AnyEvent::RipeRedis'; # libanyevent-redis-perl
# Probably not available as Debian/Ubuntu packages
requires 'MongoDB', '>= 2.2.2, < 2.3'; # libmongodb-perl has 1.8.1/2.0.3 vs 2.2.2. deps: libauthen-sasl-saslprep-perl, libbson-perl, libauthen-scram-perl, libclass-xsaccessor-perl, libdigest-hmac-perl, libsafe-isa-perl, libconfig-autoconf-perl, libpath-tiny-perl
# we fix this because MongoDB depends on it, and 0.023 does not install correctly
# 2025/02/03: bumping to 0.025 as 0.022 is not download from CPAN anymore - https://github.com/openfoodfacts/openfoodfacts-server/issues/13000
requires 'Type::Tiny::XS', '==0.025';
requires 'GraphViz2'; # deps: libfile-which-perl, libdata-section-simple-perl, libwant-perl, libipc-run3-perl, liblog-handler-perl, libtest-deep-perl
requires 'Algorithm::CheckDigits'; # libalgorithm-checkdigits-perl has 0.50 vs 1.3.3. deps: libprobe-perl-perl
requires 'Image::OCR::Tesseract'; # deps: libfile-find-rule-perl
requires 'DateTime', '>= 1.54, < 2.0'; # libdatetime-perl has 1.46. deps: libclass-singleton-perl
requires 'DateTime::Locale', '>= 1.32, < 2.0'; # libdatetime-locale-perl has 1.17. deps: libfile-sharedir-install-perl
requires 'DateTime::Format::ISO8601'; # libdatetime-format-iso8601-perl
requires 'Crypt::ScryptKDF'; #11866: Delete after Keycloak Migration
requires 'Locale::Maketext::Lexicon::Getcontext', '>= 0.05'; # deps: liblocale-maketext-lexicon-perl
requires 'CLDR::Number::Format::Decimal';
requires 'CLDR::Number::Format::Percent';
requires 'CLDR::Number'; # deps: libmath-round-perl, libtest-differences-perl, libsoftware-license-perl
requires 'Modern::Perl', '>= 1.20200211'; # libmodern-perl-perl has 1.20170117/1.20180901
requires 'Data::Dumper::AutoEncode'; # deps: libmodule-build-pluggable-perl, libclass-accessor-lite-perl
requires 'XML::Rules';
requires 'Text::CSV', '>= 2.01, < 3.0'; # libtext-csv-perl has 1.95/1.99 vs 2.00.
requires 'Text::CSV_XS';
requires 'Text::Fuzzy';
requires 'Spreadsheet::CSV'; # deps: libspreadsheet-parseexcel-perl
requires 'File::chmod::Recursive'; # deps: libfile-chmod-perl
requires 'Devel::Size'; # deps: libdevel-size-perl
requires 'JSON::Create';
requires 'JSON::Parse';
requires 'Data::DeepAccess';
requires 'XML::XML2JSON';
requires 'Digest::SHA1';
requires 'Data::Difference';
requires 'Data::Compare';
# Mojolicious/Minion
requires 'Mojolicious::Lite';
requires 'Minion'; # libminion-perl has 9.09 vs 10.13.
requires 'Mojo::Pg'; # libmojo-pg-perl has 4.13 vs 4.19. deps: libsql-abstract-perl
# Logging
requires 'Log::Any', '>= 1.710, < 2.0'; # liblog-any-perl has 1.707
requires 'Log::Log4perl', '>= 1.54, < 2.0'; # liblog-log4perl-perl
requires 'Log::Any::Adapter::Log4perl', '>= 0.09'; # liblog-any-adapter-log4perl-perl
# Retry
requires 'LWP::UserAgent::Plugin';
requires 'LWP::UserAgent::Plugin::Retry';
# AnyEvent
requires 'AnyEvent';
requires 'AnyEvent::Inotify::Simple';
# more Apache stuff
requires 'Apache::Bootstrap'; # needed by Apache2::Connection::XForwardedFor
requires 'Apache2::Connection::XForwardedFor';
# GS1 Sunrise 2027
requires 'GS1::SyntaxEngine::FFI';
requires 'Imager';
requires 'Imager::zxing';
requires 'Imager::File::AVIF';
requires 'Imager::File::HEIF';
requires 'Imager::File::JPEG';
requires 'Imager::File::PNG';
requires 'Imager::File::WEBP';
# OIDC / OAuth
# Note: (2025/06/18) in production (not Docker), we had to first install Crypt::OpenSSL::RSA
# (required by OIDC::Lite)
# with the Debian package as it had errors with building with cpan
# then "cpanm --cpanfile cpanfile --installdeps ." worked
requires 'OIDC::Lite';
requires 'Crypt::JWT';
# To dynamically load Config_*.pm modules
requires 'Module::Load';
# To measure the time taken by requests
requires 'Time::HiRes';
# To measure similarity between words and find possible typo
requires 'Text::Levenshtein';
# To handle Unicode string graphics and width rendering
requires 'Unicode::GCString';
# To handle IP and IP blocks white lists
requires 'Net::CIDR'; # libnet-cidr-perl
on 'test' => sub {
requires 'Test2::V0';
requires 'Mock::Quick';
requires 'Test::Files';
requires 'File::Spec';
requires 'Log::Any::Adapter::TAP'; # liblog-any-adapter-tap-perl
requires 'IO::Capture::Stdout::Extended';
requires 'IO::Capture::Stderr::Extended';
requires 'HTTP::Cookies';
requires 'File::Tail';
requires 'Test2::Plugin::UTF8';
requires 'Devel::Cover';
requires 'Devel::Cover::Report::Codecov';
requires 'Devel::Cover::Report::Codecovbash';
requires 'Test::Fake::HTTPD';
requires 'URL::Encode';
requires 'Test::File::Contents';
requires 'FindBin';
requires 'Test::Pod';
requires 'UUID';
};
on 'develop' => sub {
requires 'Test::Perl::Critic', '>=1.04', '<2.0'; # perl-critic refuse to install without this explicit deps
requires 'Perl::Critic', '>= 1.140, < 2.0'; # libperl-critic-perl has 1.132 vs 1.138, and all the depended on packages are old too.
requires 'Devel::DebugHooks'; # provides Apache::DB compat layer for remote debugging via mod_perl
requires 'Perl::Tidy';
requires 'Perl::Critic';
requires 'Devel::Cover';
requires 'Devel::Cover::Report::Codecov';
requires 'Devel::Cover::Report::Codecovbash';
requires 'Test2::Harness', '<2'; # Seems to be a problem with newer versions in Docker. See #11858
# Keep the JUnit renderer out of cpanfile: it is still installed in the build image
# for test runs, but leaving it here breaks SBOM dependency resolution in CI.
requires 'App::CPAN::SBOM', '1.03'; # For generating SBOMs
};
feature "off_server_dev_tools", "Optional development tools" => sub {
# Modules needed to ease development but not need to run CI tasks or automated tests
# on GitHub, or for production
# For docker, use CPANMOPTS=--with-develop --with-feature=off_server_dev_tools
requires 'Devel::REPL';
requires 'Term::ReadLine::Gnu', '>= 1.42, < 2.0'; # readline support for the Perl debugger. libterm-readline-gnu-perl is available.
requires 'Perl::LanguageServer';
requires 'Hash::SafeKeys'; # Perl::LanguageServer dependency
};