aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/Geo
Commit message (Expand)AuthorAgeLines
* [Zurich] Use new LV95/CH1903+ geocoder and base map tilesDave Arter2016-07-07-12/+17
* Use env in shebang lines, and remove unneeded onesMatthew Somerville2015-01-19-2/+0
* Simplify projection logic, and use X/Y same way round as everywhere else.Matthew Somerville2012-12-03-12/+2
* Add server side handling of Swiss co-ordinates and tile clicks.Matthew Somerville2012-11-28-0/+115
62'>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
# setenv script
requires 'List::MoreUtils', '0.402';
requires 'local::lib';
requires 'Class::Unload';

# Interesting installation issues, see end of this file
requires 'ExtUtils::MakeMaker', '6.72'; # [1]
# requires 'MooseX::NonMoose'; # [2]

# Minimum versions of dependencies to upgrade for bugfixes
requires 'Guard', '1.023';
requires 'PadWalker', '2.2';
requires 'aliased', '0.34';

# 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::MIME';
requires 'Email::Send';
requires 'Email::Send::SMTP';
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::MaybeXS';
requires 'Locale::gettext';
requires 'LWP::Simple';
requires 'LWP::UserAgent';
requires 'Math::Trig';
requires 'Module::Pluggable';
requires 'Moose';
requires 'MooX::Types::MooseLike';
requires 'namespace::autoclean';
requires 'Net::DNS::Resolver';
requires 'Net::Domain::TLD';
requires 'Net::Facebook::Oauth2';
requires 'Net::OAuth';
requires 'Net::SMTP::SSL', '1.03';
requires 'Net::SMTP::TLS';
requires 'Net::Twitter::Lite::WithAPIv1_1';
requires 'Path::Class';
requires 'POSIX';
requires 'Readonly';
requires 'Regexp::Common';
requires 'Scalar::Util';
requires 'Statistics::Distributions';
requires 'Storable';
requires 'Template::Plugin::Number::Format';
requires 'Text::CSV';
requires 'URI', '1.71';
requires 'URI::Escape';
requires 'URI::QueryParam';
requires 'XML::RSS';
requires 'XML::Simple';
requires 'YAML';

feature 'uk', 'FixMyStreet.com specific requirements' => sub {
    # East Hampshire & Angus
    requires 'SOAP::Lite';
};

feature 'open311-endpoint', 'Open311::Endpoint specific requirements' => sub {
    requires 'Web::Simple';
    requires 'Data::Rx';
    requires 'MooX::HandlesVia';
    requires 'Types::Standard';
    requires 'DateTime::Format::Oracle'; # for EXOR
    requires 'Convert::NLS_DATE_FORMAT', '0.06'; # Perl 5.22 upgrade
};

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';

# Modules used by the test suite
requires 'Test::PostgreSQL';
requires 'CGI::Simple';
requires 'HTTP::Headers';
requires 'HTTP::Response';
requires 'LWP::Protocol::PSGI';
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';
requires 'Web::Simple';

#################################################################
#
# [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...