Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: master
Fetching contributors…

Cannot retrieve contributors at this time

186 lines (174 sloc) 6.77 kB
# setenv script
requires 'List::MoreUtils';
requires 'local::lib';
requires 'Class::Unload';
# Interesting installation issues, see end of this file
requires 'ExtUtils::MakeMaker', '6.72'; # [1]
# requires 'MooseX::NonMoose'; # [2]
# Catalyst itself, and modules/plugins used
requires 'Catalyst', '5.80031';
requires 'Catalyst::Action::RenderView';
requires 'Catalyst::Authentication::Store::DBIx::Class';
requires 'Catalyst::Devel';
requires 'Catalyst::Model::Adaptor';
requires 'Catalyst::Plugin::Authentication';
requires 'Catalyst::Plugin::Session::State::Cookie';
requires 'Catalyst::Plugin::Session::Store::DBIC';
requires 'Catalyst::Plugin::SmartURI';
requires 'Catalyst::Plugin::Static::Simple';
requires 'Catalyst::Plugin::Unicode::Encoding';
requires 'Catalyst::View::TT';
# Modules used by FixMyStreet
requires 'Authen::SASL';
requires 'Cache::Memcached';
requires 'Carp';
requires 'CGI';
requires 'Crypt::Eksblowfish::Bcrypt';
requires 'DateTime';
requires 'DateTime::Format::HTTP';
requires 'DateTime::Format::ISO8601';
requires 'DateTime::Format::Pg';
requires 'DateTime::Format::W3CDTF';
requires 'DateTime::TimeZone';
requires 'DBD::Pg', '2.9.2';
requires 'DBI';
requires 'DBIx::Class::EncodedColumn', '0.00013';
requires 'DBIx::Class::EncodedColumn::Crypt::Eksblowfish::Bcrypt';
requires 'DBIx::Class::FilterColumn';
requires 'DBIx::Class::InflateColumn::DateTime';
requires 'DBIx::Class::ResultSet';
requires 'DBIx::Class::Schema::Loader';
requires 'Digest::MD5';
requires 'Digest::SHA';
requires 'Email::Send';
requires 'Email::Send::SMTP';
requires 'Email::Simple';
requires 'Email::Valid';
requires 'Error';
requires 'FCGI';
requires 'File::Find';
requires 'File::Path';
requires 'File::Slurp';
requires 'Geography::NationalGrid';
requires 'Getopt::Long::Descriptive';
requires 'HTML::Entities';
requires 'HTTP::Request::Common';
requires 'Image::Size';
requires 'IO::String';
requires 'JSON';
requires 'JSON::XS';
requires 'Locale::gettext';
requires 'LWP::Simple';
requires 'LWP::UserAgent';
requires 'Math::Trig';
requires 'Module::Pluggable';
requires 'Moose';
requires 'namespace::autoclean';
requires 'Net::Domain::TLD';
requires 'Net::SMTP::SSL';
requires 'Net::SMTP::TLS';
requires 'Path::Class';
requires 'POSIX';
requires 'Readonly';
requires 'Regexp::Common';
requires 'Scalar::Util';
requires 'Statistics::Distributions';
requires 'Storable';
requires 'Template::Plugin::Comma';
requires 'Text::CSV';
requires 'URI';
requires 'URI::Escape';
requires 'URI::QueryParam';
requires 'XML::RSS';
requires 'XML::Simple';
requires 'YAML';
feature 'uk', 'FixMyStreet.com specific requirements' => sub {
# East Hampshire
requires 'SOAP::Lite';
# Barnet
# TODO: This can perhaps be removed since Barnet switched to email for problem reports
requires 'SOAP::WSDL';
};
feature 'open311-endpoint', 'Open311::Endpoint specific requirements' => sub {
requires 'Web::Simple';
requires 'Data::Rx';
requires 'MooX::HandlesVia';
requires 'Types::Standard';
requires 'LWP::Protocol::PSGI'; # for testing end-to-end
requires 'DateTime::Format::Oracle'; # for EXOR
};
feature 'zurich', 'Zueri wie neu specific requirements' => sub {
# # Geocoder
requires 'SOAP::Lite';
};
# Moderation by from_body user
requires 'Algorithm::Diff';
# Modules used by css watcher
requires 'File::ChangeNotify';
requires 'Path::Tiny';
requires 'File::Find::Rule';
feature 'run-tests', 'Spin up a test database and config to run tests' => sub {
requires 'Test::PostgreSQL';
};
# Modules used by the test suite
requires 'CGI::Simple';
requires 'HTTP::Headers';
requires 'HTTP::Response';
requires 'Sort::Key';
requires 'Sub::Override';
requires 'Test::Exception';
requires 'Test::LongString';
requires 'Test::MockTime';
requires 'Test::More', '0.88';
requires 'Test::Warn';
requires 'Test::WWW::Mechanize::Catalyst';
requires 'Web::Scraper';
#################################################################
#
# [1] Many things in cpanfile.snapshot require ExtUtils::MakeMaker 6.59, and
# one thing (DBIx::Class::IntrospectableM2M) requires 6.72, and so the snapshot
# contains the details for ExtUtils::MakeMaker 6.72. carton itself requires
# ExtUtils::MakeMaker 6.64.
#
# I don't understand the intracacies of carton/cpanm, but from the
# build.logs, I ascertain that DBIx::Class::Schema::Loader requires
# DBIx::Class::IntrospectableM2M and somehow in the process sets it up so that
# DBIx::Class::IntrospectableM2M tries to install the version of
# ExtUtils::MakeMaker used during the DBIx::Class::Schema::Loader installation.
#
# It seems as if the version of ExtUtils::MakeMaker used at any point is the
# one in local if present, then the one in local-carton if present, then the
# system one. Let's look at a few different installation platforms:
#
# On Debian wheezy, ExtUtils::MakeMaker is version 6.57. The installation of
# carton installs ExtUtils::MakeMaker 7.04 in local-carton. Running carton
# install installs ExtUtils::MakeMaker 6.72 in local at some point before
# DBIx::Class::Schema::Loader (due to one of the 6.59 requirements), and so
# DBIx::Class::IntrospectableM2M uses and tries to install 6.72, which is fine.
#
# On Ubuntu trusty, ExtUtils::MakeMaker is version 6.66. The installation of
# carton is satisfied already. Running carton install, nothing else upgrades
# ExtUtils::MakeMaker (as 6.66 > 6.59), and so when we get to
# DBIx::Class::IntrospectableM2M it uses the system 6.66 and upgrades to 6.72,
# which is again fine.
#
# On Mac OS X 10.9.5, ExtUtils::MakeMaker is version 6.63. The installation of
# carton installs ExtUtils::MakeMaker 7.04 in local-carton. Running carton
# install, nothing else upgrades ExtUtils::MakeMaker (as 6.63 > 6.59), and when
# we get to DBIx::Class::IntrospectableM2M it therefore uses 7.04 and can't
# install it (as the snapshot only contains 6.72) and fails.
#
# Therefore, if we make sure the ExtUtils::MakeMaker from the snapshot is
# installed early in the process, it will be available when we get to
# DBIx::Class::IntrospectableM2M, be used and match its own condition.
# I'm sure this isn't the correct solution, but it is a working one.
#
#
# [2] The installation of Catalyst::Model::DBIC::Schema tries to install any
# module that it finds already present in an optional section. On a Mac, the
# system has MooseX::NonMoose version 0.22, which is an optional component for
# Catalyst::Helper support, and it finds that but then thinks it is not
# installed, tries to install it but doesn't find it in the snapshot, and
# fails. The easiest solution here is to include MooseX::NonMoose in
# cpanfile.snapshot so it can be found, though I guess it shouldn't be trying
# to install it if it's already thought that 0.22 was installed...
Jump to Line
Something went wrong with that request. Please try again.