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::MockObject' => '1.07'; # Newish (hah, 2006!) version to
42 # hopefully avoid broken distro
44 test_requires 'Test::Exception';
46 # aggregate tests if AGGREGATE_TESTS is set and a recent Test::Aggregate is available
47 if ($ENV{AGGREGATE_TESTS} && can_use('Test::Aggregate', '0.34_01')) {
48 test_requires('Test::Aggregate', '0.34_01');
52 grep { $_ ne 't/aggregate.t' }
53 map { glob } qw[t/*.t t/aggregate/*.t];
56 my @force_build_requires_if_author = qw(
63 if ($Module::Install::AUTHOR) {
64 foreach my $module (@force_build_requires_if_author) {
65 build_requires $module;
67 darwin_check_no_resource_forks();
70 install_script glob('script/*.pl');
74 if ($Module::Install::AUTHOR) {
76 # Strip out the author only build_requires from META.yml
77 # Need to do this _after_ WriteAll else it looses track of them
78 strip_author_only_build_requires(@force_build_requires_if_author, 'Test::Aggregate');
80 Meta->{values}{resources} = [
81 [ 'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst' ],
82 [ 'IRC' => 'irc://irc.perl.org/#catalyst' ],
83 [ 'license', => 'http://dev.perl.org/licenses/' ],
84 [ 'homepage', => 'http://dev.catalyst.perl.org/'],
85 [ 'repository', => 'http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Runtime/' ],
95 This library is for running Catalyst applications.
97 For development and use of catalyst.pl and myapp_create.pl, make sure
98 you also install the development tools package Catalyst::Devel.
100 perl -MCPANPLUS -e 'install Catalyst::Devel' # or
101 perl -MCPAN -e 'install Catalyst::Devel'
103 To get some commonly used plugins, as well as the TT view and DBIC
104 model, install Task::Catalyst in the same way.
109 # NOTE - This is the version number of the _incompatible_ code,
110 # not the version number of the fixed version.
112 'Catalyst::Component::ACCEPT_CONTEXT' => '0.06',
113 'Catalyst::Plugin::ENV' => '9999', # This plugin is just stupid, full stop
114 # should have been a core fix.
115 'Catalyst::Plugin::Unicode::Encoding' => '0.2',
116 'Catalyst::Authentication::Credential::HTTP' => '1.009',
117 'Catalyst::Plugin::Session::Store::File' => '0.16',
118 'Catalyst::Plugin::Session' => '0.21',
119 'Catalyst::Plugin::Session::State::Cookie' => '0.10',
120 'Catalyst::Plugin::Session::Store::FastMmap' => '0.09',
121 'Catalyst::Controller::AllowDisable' => '0.03',
122 'Reaction' => '0.001999',
123 'Catalyst::Plugin::Upload::Image::Magick' => '0.03',
124 'Catalyst::Plugin::ConfigLoader' => '0.22', # Older versions work but
125 # throw Data::Visitor warns
126 'Catalyst::Devel' => '0.09',
127 'Catalyst::Plugin::SmartURI' => '0.032',
128 'CatalystX::CRUD' => '0.37',
129 'Catalyst::Action::RenderView' => '0.07',
130 'Catalyst::Plugin::DebugCookie' => '0.999002',
131 'Catalyst::Plugin::Authentication' => '0.100091',
132 'CatalystX::Imports' => '0.03',
133 'Catalyst::Plugin::HashedCookies' => '1.03',
134 'Catalyst::Action::REST' => '0.67',
135 'CatalystX::CRUD' => '0.42',
136 'CatalystX::CRUD::Model::RDBO' => '0.20',
138 check_conflicts(%conflicts);
140 # End of script, helper functions below.
142 sub darwin_check_no_resource_forks {
143 if ($^O eq 'darwin') {
144 my $osx_ver = `/usr/bin/sw_vers -productVersion`;
147 # TAR on 10.4 wants COPY_EXTENDED_ATTRIBUTES_DISABLE
148 # On 10.5 (Leopard) it wants COPYFILE_DISABLE
149 my $attr = $osx_ver eq '10.5' ? 'COPYFILE_DISABLE' : 'COPY_EXTENDED_ATTRIBUTES_DISABLE';
151 makemaker_args(dist => { PREOP => qq{\@if [ "\$\$$attr" != "true" ]; then}.
152 qq{ echo "You must set the ENV variable $attr to true,"; }.
153 ' echo "to avoid getting resource forks in your dist."; exit 255; fi' });
157 sub strip_author_only_build_requires {
158 my @build_requires_to_strip = @_;
159 Meta->{values}{build_requires} = [ grep {
161 foreach my $module (@build_requires_to_strip) {
162 if ($_->[0] =~ /$module/) {
168 } @{Meta->{values}{build_requires}} ];
171 sub check_conflicts {
175 for my $mod ( sort keys %conflicts ) {
176 eval "require($mod)";
179 my $installed = $mod->VERSION();
180 $conflicts_found{$mod} = $installed if ( $installed le $conflicts{$mod} );
183 return unless scalar keys %conflicts_found;
189 This version of Catalyst conflicts with the versions of
190 some components you have installed.
192 You will need to upgrade these modules after installing
193 this version of Catalyst.
195 List of the conflicting components and their installed versions:
199 foreach my $mod (keys %conflicts_found) {
200 print sprintf(" %s => %s\n", $mod, $conflicts_found{$mod});
204 # More or less copied from Module::Build, via Moose
205 return if $ENV{PERL_MM_USE_DEFAULT};
206 return unless -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT));