1 use inc::Module::Install 0.87;
3 perl_version '5.008001';
5 name 'Catalyst-Runtime';
6 all_from 'lib/Catalyst/Runtime.pm';
8 requires 'namespace::clean';
9 requires 'B::Hooks::EndOfScope' => '0.08';
10 requires 'MooseX::Emulate::Class::Accessor::Fast' => '0.00801';
11 requires 'Class::MOP' => '0.83';
12 requires 'Moose' => '0.78';
13 requires 'MooseX::MethodAttributes::Inheritable' => '0.12';
15 requires 'Class::C3::Adopt::NEXT' => '0.07';
16 requires 'CGI::Simple::Cookie';
17 requires 'Data::Dump';
18 requires 'File::Modified';
19 requires 'HTML::Entities';
20 requires 'HTTP::Body' => '1.04'; # makes uploadtmp work
21 requires 'HTTP::Headers' => '1.64';
22 requires 'HTTP::Request';
23 requires 'HTTP::Response';
24 requires 'HTTP::Request::AsCGI' => '0.8';
25 requires 'LWP::UserAgent';
26 requires 'Module::Pluggable' => '3.01';
27 requires 'Path::Class' => '0.09';
28 requires 'Scalar::Util';
29 requires 'Sub::Exporter';
30 requires 'Text::SimpleTable' => '0.03';
31 requires 'Time::HiRes';
32 requires 'Tree::Simple' => '1.15';
33 requires 'Tree::Simple::Visitor::FindByPath';
34 requires 'URI' => '1.35';
35 requires 'Text::Balanced'; # core in 5.8.x but mentioned for completeness
36 requires 'MRO::Compat';
38 recommends 'B::Hooks::OP::Check::StashChange';
40 test_requires 'Class::Data::Inheritable';
41 test_requires 'Test::Exception';
43 # aggregate tests if AGGREGATE_TESTS is set and a recent Test::Aggregate is available
44 if ($ENV{AGGREGATE_TESTS} && can_use('Test::Aggregate', '0.34_01')) {
45 test_requires('Test::Aggregate', '0.34_01');
49 grep { $_ ne 't/aggregate.t' }
50 map { glob } qw[t/*.t t/aggregate/*.t];
53 my @force_build_requires_if_author = qw(
60 if ($Module::Install::AUTHOR) {
61 foreach my $module (@force_build_requires_if_author) {
62 build_requires $module;
64 darwin_check_no_resource_forks();
67 install_script glob('script/*.pl');
71 if ($Module::Install::AUTHOR) {
73 # Strip out the author only build_requires from META.yml
74 # Need to do this _after_ WriteAll else it looses track of them
75 strip_author_only_build_requires(@force_build_requires_if_author, 'Test::Aggregate');
77 Meta->{values}{resources} = [
78 [ 'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst' ],
79 [ 'IRC' => 'irc://irc.perl.org/#catalyst' ],
80 [ 'license', => 'http://dev.perl.org/licenses/' ],
81 [ 'homepage', => 'http://dev.catalyst.perl.org/'],
82 [ 'repository', => 'http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Runtime/' ],
92 This library is for running Catalyst applications.
94 For development and use of catalyst.pl and myapp_create.pl, make sure
95 you also install the development tools package Catalyst::Devel.
97 perl -MCPANPLUS -e 'install Catalyst::Devel' # or
98 perl -MCPAN -e 'install Catalyst::Devel'
100 To get some commonly used plugins, as well as the TT view and DBIC
101 model, install Task::Catalyst in the same way.
106 # NOTE - This is the version number of the _incompatible_ code,
107 # not the version number of the fixed version.
109 'Catalyst::Component::ACCEPT_CONTEXT' => '0.06',
110 'Catalyst::Plugin::ENV' => '9999', # This plugin is just stupid, full stop
111 # should have been a core fix.
112 'Catalyst::Plugin::Unicode::Encoding' => '0.2',
113 'Catalyst::Authentication::Credential::HTTP' => '1.009',
114 'Catalyst::Plugin::Session::Store::File' => '0.16',
115 'Catalyst::Plugin::Session' => '0.21',
116 'Catalyst::Plugin::Session::State::Cookie' => '0.10',
117 'Catalyst::Plugin::Session::Store::FastMmap' => '0.09',
118 'Catalyst::Controller::AllowDisable' => '0.03',
119 'Reaction' => '0.001999',
120 'Catalyst::Plugin::Upload::Image::Magick' => '0.03',
121 'Catalyst::Plugin::ConfigLoader' => '0.22', # Older versions work but
122 # throw Data::Visitor warns
123 'Catalyst::Devel' => '0.09',
124 'Catalyst::Plugin::SmartURI' => '0.032',
125 'CatalystX::CRUD' => '0.37',
126 'Catalyst::Action::RenderView' => '0.07',
127 'Catalyst::Plugin::DebugCookie' => '0.999002',
128 'Catalyst::Plugin::Authentication' => '0.100091',
129 'CatalystX::Imports' => '0.03',
130 'Catalyst::Plugin::HashedCookies' => '1.03',
131 'Catalyst::Action::REST' => '0.67',
132 'CatalystX::CRUD' => '0.42',
133 'CatalystX::CRUD::Model::RDBO' => '0.20',
135 check_conflicts(%conflicts);
137 # End of script, helper functions below.
139 sub darwin_check_no_resource_forks {
140 if ($^O eq 'darwin') {
141 my $osx_ver = `/usr/bin/sw_vers -productVersion`;
144 # TAR on 10.4 wants COPY_EXTENDED_ATTRIBUTES_DISABLE
145 # On 10.5 (Leopard) it wants COPYFILE_DISABLE
146 my $attr = $osx_ver eq '10.5' ? 'COPYFILE_DISABLE' : 'COPY_EXTENDED_ATTRIBUTES_DISABLE';
148 makemaker_args(dist => { PREOP => qq{\@if [ "\$\$$attr" != "true" ]; then}.
149 qq{ echo "You must set the ENV variable $attr to true,"; }.
150 ' echo "to avoid getting resource forks in your dist."; exit 255; fi' });
154 sub strip_author_only_build_requires {
155 my @build_requires_to_strip = @_;
156 Meta->{values}{build_requires} = [ grep {
158 foreach my $module (@build_requires_to_strip) {
159 if ($_->[0] =~ /$module/) {
165 } @{Meta->{values}{build_requires}} ];
168 sub check_conflicts {
172 for my $mod ( sort keys %conflicts ) {
173 eval "require($mod)";
176 my $installed = $mod->VERSION();
177 $conflicts_found{$mod} = $installed if ( $installed le $conflicts{$mod} );
180 return unless scalar keys %conflicts_found;
186 This version of Catalyst conflicts with the versions of
187 some components you have installed.
189 You will need to upgrade these modules after installing
190 this version of Catalyst.
192 List of the conflicting components and their installed versions:
196 foreach my $mod (keys %conflicts_found) {
197 print sprintf(" %s => %s\n", $mod, $conflicts_found{$mod});
201 # More or less copied from Module::Build, via Moose
202 return if $ENV{PERL_MM_USE_DEFAULT};
203 return unless -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT));