diff options
-rw-r--r-- | cpanfile | 53 | ||||
-rw-r--r-- | cpanfile.snapshot | 16 |
2 files changed, 69 insertions, 0 deletions
@@ -3,6 +3,10 @@ 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'; @@ -129,3 +133,52 @@ 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... diff --git a/cpanfile.snapshot b/cpanfile.snapshot index a5859b742..9bade8038 100644 --- a/cpanfile.snapshot +++ b/cpanfile.snapshot @@ -4176,6 +4176,22 @@ DISTRIBUTIONS Test::More 0.88 namespace::autoclean 0 namespace::clean 0.10 + MooseX-NonMoose-0.26 + pathname: D/DO/DOY/MooseX-NonMoose-0.26.tar.gz + provides: + MooseX::NonMoose 0.26 + MooseX::NonMoose::InsideOut 0.26 + MooseX::NonMoose::Meta::Role::Class 0.26 + MooseX::NonMoose::Meta::Role::Constructor 0.26 + requirements: + ExtUtils::MakeMaker 6.30 + List::MoreUtils 0 + Module::Runtime 0 + Moose::Exporter 0 + Moose::Role 2.0000 + Moose::Util 0 + Try::Tiny 0 + warnings 0 MooseX-Params-Validate-0.18 pathname: D/DR/DROLSKY/MooseX-Params-Validate-0.18.tar.gz provides: |