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.10';
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
45 # aggregate tests if AGGREGATE_TESTS is set and a recent Test::Aggregate is available
46 if ($ENV{AGGREGATE_TESTS} && can_use('Test::Aggregate', '0.34_01')) {
47 test_requires('Test::Aggregate', '0.34_01');
51 grep { $_ ne 't/aggregate.t' }
52 map { glob } qw[t/*.t t/aggregate/*.t];
55 my @force_build_requires_if_author = qw(
62 if ($Module::Install::AUTHOR) {
63 foreach my $module (@force_build_requires_if_author) {
64 build_requires $module;
66 darwin_check_no_resource_forks();
69 install_script glob('script/*.pl');
73 if ($Module::Install::AUTHOR) {
75 # Strip out the author only build_requires from META.yml
76 # Need to do this _after_ WriteAll else it looses track of them
77 strip_author_only_build_requires(@force_build_requires_if_author, 'Test::Aggregate');
79 Meta->{values}{resources} = [
80 [ 'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst' ],
81 [ 'IRC' => 'irc://irc.perl.org/#catalyst' ],
82 [ 'license', => 'http://dev.perl.org/licenses/' ],
83 [ 'homepage', => 'http://dev.catalyst.perl.org/'],
84 [ 'repository', => 'http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Runtime/' ],
94 This library is for running Catalyst applications.
96 For development and use of catalyst.pl and myapp_create.pl, make sure
97 you also install the development tools package Catalyst::Devel.
99 perl -MCPANPLUS -e 'install Catalyst::Devel' # or
100 perl -MCPAN -e 'install Catalyst::Devel'
102 To get some commonly used plugins, as well as the TT view and DBIC
103 model, install Task::Catalyst in the same way.
108 # NOTE - This is the version number of the _incompatible_ code,
109 # not the version number of the fixed version.
111 'Catalyst::Authentication::Credential::HTTP' => '1.009',
112 'Catalyst::Plugin::Session::Store::File' => '0.16',
113 'Catalyst::Plugin::Session' => '0.21',
114 'Catalyst::Plugin::Session::State::Cookie' => '0.10',
115 'Catalyst::Plugin::Session::Store::FastMmap' => '0.09',
116 'Catalyst::Controller::AllowDisable' => '0.03',
117 'Reaction' => '0.001999',
118 'Catalyst::Plugin::Upload::Image::Magick' => '0.03',
119 'Catalyst::Plugin::ConfigLoader' => '0.22', # Older versions work but
120 # throw Data::Visitor warns
121 'Catalyst::Devel' => '0.09',
122 'Catalyst::Plugin::SmartURI' => '0.032',
123 'CatalystX::CRUD' => '0.37',
124 'Catalyst::Action::RenderView' => '0.07',
125 'Catalyst::Plugin::DebugCookie' => '0.999002',
126 'Catalyst::Plugin::Authentication' => '0.100091',
127 'CatalystX::Imports' => '0.03',
128 'Catalyst::Plugin::HashedCookies' => '1.03',
129 'Catalyst::Action::REST' => '0.67',
130 'CatalystX::CRUD' => '0.42',
131 'CatalystX::CRUD::Model::RDBO' => '0.20',
133 check_conflicts(%conflicts);
135 # End of script, helper functions below.
137 sub darwin_check_no_resource_forks {
138 if ($^O eq 'darwin') {
139 my $osx_ver = `/usr/bin/sw_vers -productVersion`;
142 # TAR on 10.4 wants COPY_EXTENDED_ATTRIBUTES_DISABLE
143 # On 10.5 (Leopard) it wants COPYFILE_DISABLE
144 my $attr = $osx_ver eq '10.5' ? 'COPYFILE_DISABLE' : 'COPY_EXTENDED_ATTRIBUTES_DISABLE';
146 makemaker_args(dist => { PREOP => qq{\@if [ "\$\$$attr" != "true" ]; then}.
147 qq{ echo "You must set the ENV variable $attr to true,"; }.
148 ' echo "to avoid getting resource forks in your dist."; exit 255; fi' });
152 sub strip_author_only_build_requires {
153 my @build_requires_to_strip = @_;
154 Meta->{values}{build_requires} = [ grep {
156 foreach my $module (@build_requires_to_strip) {
157 if ($_->[0] =~ /$module/) {
163 } @{Meta->{values}{build_requires}} ];
166 sub check_conflicts {
170 for my $mod ( sort keys %conflicts ) {
171 eval "require($mod)";
174 my $installed = $mod->VERSION();
175 $conflicts_found{$mod} = $installed if ( $installed le $conflicts{$mod} );
178 return unless scalar keys %conflicts_found;
184 This version of Catalyst conflicts with the versions of
185 some components you have installed.
187 You will need to upgrade these modules after installing
188 this version of Catalyst.
190 List of the conflicting components and their installed versions:
194 foreach my $mod (keys %conflicts_found) {
195 print sprintf(" %s => %s\n", $mod, $conflicts_found{$mod});
199 # More or less copied from Module::Build, via Moose
200 return if $ENV{PERL_MM_USE_DEFAULT};
201 return unless -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT));