aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cpanfile53
-rw-r--r--cpanfile.snapshot16
2 files changed, 69 insertions, 0 deletions
diff --git a/cpanfile b/cpanfile
index ba92755f9..e6284d6b2 100644
--- a/cpanfile
+++ b/cpanfile
@@ -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: