xref: /conch/cpanfile (revision 0997e738)
1# vim: set ft=perl ts=8 sts=4 sw=4 et :
2
3print "Installing dependencies for conch, using $^X at version $]\n";
4print "PERL5LIB=$ENV{PERL5LIB}\n\n";
5
6requires 'perl', '5.026';
7die "Your perl is too old! Requires 5.026, but this is $]" if "$]" < '5.026';
8
9# basics
10requires 'Carton';
11requires 'Cpanel::JSON::XS', '4.10';
12requires 'List::MoreUtils::XS';         # make List::MoreUtils faster
13requires 'Data::UUID';
14requires 'List::Compare';
15requires 'Try::Tiny';
16requires 'Time::HiRes';
17requires 'Time::Moment', '>= 0.43'; # for PR#28, fixes use of stdbool.h (thanks Dale)
18requires 'JSON::Validator', '3.08';
19requires 'Data::Validate::IP';      # for json schema validation of 'ipv4', 'ipv6' types
20requires 'HTTP::Tiny';
21requires 'Safe::Isa';
22requires 'Encode', '2.98';
23requires 'IPC::System::Simple';
24requires 'Dir::Self';
25requires 'Carp';
26requires 'Module::Runtime';
27requires 'Email::Valid';
28requires 'Email::Simple';
29requires 'Email::Sender::Simple';
30requires 'Email::Sender::Transport::SMTP';
31requires 'Net::DNS';    # not used directly, but Email::Valid sometimes demands it
32
33# mojolicious and networking
34requires 'Mojolicious', '8.15';
35requires 'Mojo::Pg';
36requires 'Mojo::JWT';
37requires 'Mojolicious::Plugin::Util::RandomString', '0.07'; # memory leak: https://rt.cpan.org/Ticket/Display.html?id=125981
38requires 'Mojolicious::Plugin::NYTProf';
39requires 'Mozilla::CA'; # not used directly, but IO::Socket::SSL sometimes demands it
40requires 'IO::Socket::SSL';
41
42requires 'Path::Tiny';
43requires 'Moo';
44requires 'MooX::HandlesVia';
45requires 'strictures', '2';
46requires 'namespace::clean';
47requires 'Type::Tiny';
48requires 'Types::Standard';
49requires 'Types::UUID';
50requires 'Role::Tiny';
51requires 'Getopt::Long::Descriptive';
52requires 'Session::Token';
53requires 'Sys::Hostname';
54requires 'HTTP::BrowserDetect';
55
56# debugging aids
57requires 'Data::Printer', '0.99_019', dist => 'GARU/Data-Printer-0.99_019.tar.gz';
58requires 'Devel::Confess';
59
60# misc scripts
61requires 'Pod::Usage';
62requires 'Pod::Markdown::Github';
63requires 'Getopt::Long';
64
65# database and rendering
66requires 'DBD::Pg';
67requires 'DBIx::Class';
68requires 'DBIx::Class::Schema::Loader';
69requires 'DBIx::Class::Helpers';
70requires 'DateTime::Format::Pg';    # used by DBIx::Class::Storage::DBI::Pg
71requires 'DBIx::Class::InflateColumn::TimeMoment';
72requires 'Lingua::EN::Inflexion';
73requires 'Text::CSV_XS';
74requires 'DBIx::Class::PassphraseColumn', dist => 'ETHER/DBIx-Class-PassphraseColumn-0.04-TRIAL.tar.gz';
75requires 'Authen::Passphrase::BlowfishCrypt';
76
77on 'test' => sub {
78    requires 'Test::More';
79    requires 'Test::PostgreSQL', '1.27';
80    requires 'Test::Pod::Coverage';
81    requires 'YAML::XS';
82    requires 'Test::Pod', '1.41';
83    requires 'Test::Warnings';
84    requires 'Test::Fatal';
85    requires 'Test::Deep';
86    requires 'Test::Deep::JSON';
87    requires 'Test::Memory::Cycle';
88    requires 'Module::CPANfile';
89    requires 'DBIx::Class::EasyFixture', '0.13';    # Moo not Moose
90    requires 'Moo';
91    requires 'MooX::HandlesVia';
92    requires 'Storable';
93    requires 'Test::Deep::NumberTolerant';
94    requires 'Test::Spelling';
95};
96
97# note: DBD::Pg will fail to install on macos 10.13.x because Apple is
98# shipping a bad berkeley-db. To fix (do this in a subshell you will close
99# afterward, so as to not pollute your environment):
100# sudo port install db48    # you may have this already
101# eval $(perl -Mlocal::lib='local/lib/perl5')
102# cpanm --look DB_File
103# (you're now in another subshell)
104# edit config.in to add these two lines, replacing the existing INCLUDE and LIB lines:
105#   INCLUDE	= /opt/local/include/db48
106#   LIB	= /opt/local/lib/db48
107# perl Makefile.PL; make install
108# <close subshell>
109# see also: https://rt.cpan.org/Public/Bug/Display.html?id=125238
110# and https://rt.perl.org/Ticket/Display.html?id=133280
111