Version 5.80007.
[catagits/Catalyst-Runtime.git] / Makefile.PL
CommitLineData
c66a708f 1use inc::Module::Install 0.87;
022d1311 2
2f381252 3perl_version '5.008001';
0ba80bce 4
341d40d1 5name 'Catalyst-Runtime';
6all_from 'lib/Catalyst/Runtime.pm';
24b3262a 7
5ad8be8c 8requires 'namespace::autoclean';
64b2a0de 9requires 'namespace::clean';
acca8cd5 10requires 'B::Hooks::EndOfScope' => '0.08';
0a0c74aa 11requires 'MooseX::Emulate::Class::Accessor::Fast' => '0.00801';
fec3ecdf 12requires 'Class::MOP' => '0.83';
3db3a59f 13requires 'Moose' => '0.78';
d75b106e 14requires 'MooseX::MethodAttributes::Inheritable' => '0.12';
9ce44430 15requires 'Carp';
269408a4 16requires 'Class::C3::Adopt::NEXT' => '0.07';
fa32ac82 17requires 'CGI::Simple::Cookie';
f63c03e4 18requires 'Data::Dump';
24b3262a 19requires 'File::Modified';
20requires 'HTML::Entities';
2f381252 21requires 'HTTP::Body' => '1.04'; # makes uploadtmp work
1e514a51 22requires 'HTTP::Headers' => '1.64';
24b3262a 23requires 'HTTP::Request';
24requires 'HTTP::Response';
995f7cbd 25requires 'HTTP::Request::AsCGI' => '0.8';
24b3262a 26requires 'LWP::UserAgent';
d8e0de58 27requires 'Module::Pluggable' => '3.01';
1e514a51 28requires 'Path::Class' => '0.09';
24b3262a 29requires 'Scalar::Util';
64edd785 30requires 'Sub::Exporter';
1e514a51 31requires 'Text::SimpleTable' => '0.03';
24b3262a 32requires 'Time::HiRes';
1e514a51 33requires 'Tree::Simple' => '1.15';
24b3262a 34requires 'Tree::Simple::Visitor::FindByPath';
1e514a51 35requires 'URI' => '1.35';
5ad8be8c 36requires 'Task::Weaken';
ea0e58d9 37requires 'Text::Balanced'; # core in 5.8.x but mentioned for completeness
6f1f968a 38requires 'MRO::Compat';
17b3d800 39requires 'String::RewritePrefix' => '0.004'; # Catalyst::Utils::resolve_namespace
a9835938 40
65b708a6 41recommends 'B::Hooks::OP::Check::StashChange';
42
1a667b7c 43test_requires 'Class::Data::Inheritable';
cdc96667 44test_requires 'Test::Exception';
1a667b7c 45
05b3a152 46# aggregate tests if AGGREGATE_TESTS is set and a recent Test::Aggregate and a Test::Simple it works with is available
47if ($ENV{AGGREGATE_TESTS} && can_use('Test::Simple', '0.88') && can_use('Test::Aggregate', '0.35_05')) {
48 test_requires('Test::Aggregate', '0.35_05');
49 test_requires('Test::Simple', '0.88');
e262f38e 50}
51else {
bf6d41be 52 tests join q{ },
53 grep { $_ ne 't/aggregate.t' }
54 map { glob } qw[t/*.t t/aggregate/*.t];
55}
e262f38e 56
621f279b 57my @force_build_requires_if_author = qw(
0a0c74aa 58 Test::NoTabs
59 Test::Pod
60 Test::Pod::Coverage
621f279b 61 Pod::Coverage
62);
63
64if ($Module::Install::AUTHOR) {
c102399c 65 foreach my $module (@force_build_requires_if_author) {
66 build_requires $module;
67 }
68 darwin_check_no_resource_forks();
de925c79 69}
70
24b3262a 71install_script glob('script/*.pl');
b6395bce 72auto_install;
24b3262a 73WriteAll;
614f3ad6 74
621f279b 75if ($Module::Install::AUTHOR) {
76
77 # Strip out the author only build_requires from META.yml
78 # Need to do this _after_ WriteAll else it looses track of them
c508cb5c 79 strip_author_only_build_requires(@force_build_requires_if_author, 'Test::Aggregate');
c102399c 80
81 Meta->{values}{resources} = [
82 [ 'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst' ],
83 [ 'IRC' => 'irc://irc.perl.org/#catalyst' ],
84 [ 'license', => 'http://dev.perl.org/licenses/' ],
85 [ 'homepage', => 'http://dev.catalyst.perl.org/'],
86 [ 'repository', => 'http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Runtime/' ],
621f279b 87 ];
88
89 Meta->write;
90}
c102399c 91
614f3ad6 92print <<"EOF";
93
94 Important:
a5b5152b 95
0187a79d 96 This library is for running Catalyst applications.
97
341d40d1 98 For development and use of catalyst.pl and myapp_create.pl, make sure
99 you also install the development tools package Catalyst::Devel.
f63c03e4 100
6bc14aef 101 perl -MCPANPLUS -e 'install Catalyst::Devel' # or
102 perl -MCPAN -e 'install Catalyst::Devel'
103
ac5c933b 104 To get some commonly used plugins, as well as the TT view and DBIC
6bc14aef 105 model, install Task::Catalyst in the same way.
a5b5152b 106
a5b5152b 107 Have fun!
614f3ad6 108EOF
64d96919 109
d31581c6 110# NOTE - This is the version number of the _incompatible_ code,
111# not the version number of the fixed version.
112my %conflicts = (
33632a44 113 'Catalyst::Component::ACCEPT_CONTEXT' => '0.06',
d75b106e 114 'Catalyst::Plugin::ENV' => '9999', # This plugin is just stupid, full stop
115 # should have been a core fix.
71b46798 116 'Catalyst::Plugin::Unicode::Encoding' => '0.2',
c49128b1 117 'Catalyst::Authentication::Credential::HTTP' => '1.009',
3db3a59f 118 'Catalyst::Plugin::Session::Store::File' => '0.16',
1d9dd180 119 'Catalyst::Plugin::Session' => '0.21',
120 'Catalyst::Plugin::Session::State::Cookie' => '0.10',
3db3a59f 121 'Catalyst::Plugin::Session::Store::FastMmap' => '0.09',
90e5b064 122 'Catalyst::Controller::AllowDisable' => '0.03',
b7abc49b 123 'Reaction' => '0.001999',
800a9f17 124 'Catalyst::Plugin::Upload::Image::Magick' => '0.03',
d31581c6 125 'Catalyst::Plugin::ConfigLoader' => '0.22', # Older versions work but
126 # throw Data::Visitor warns
127 'Catalyst::Devel' => '0.09',
3db3a59f 128 'Catalyst::Plugin::SmartURI' => '0.032',
d31581c6 129 'CatalystX::CRUD' => '0.37',
130 'Catalyst::Action::RenderView' => '0.07',
131 'Catalyst::Plugin::DebugCookie' => '0.999002',
132 'Catalyst::Plugin::Authentication' => '0.100091',
133 'CatalystX::Imports' => '0.03',
134 'Catalyst::Plugin::HashedCookies' => '1.03',
135 'Catalyst::Action::REST' => '0.67',
0f64a277 136 'CatalystX::CRUD' => '0.42',
137 'CatalystX::CRUD::Model::RDBO' => '0.20',
d31581c6 138);
139check_conflicts(%conflicts);
140
c102399c 141# End of script, helper functions below.
142
143sub darwin_check_no_resource_forks {
144 if ($^O eq 'darwin') {
145 my $osx_ver = `/usr/bin/sw_vers -productVersion`;
146 chomp $osx_ver;
147
148 # TAR on 10.4 wants COPY_EXTENDED_ATTRIBUTES_DISABLE
149 # On 10.5 (Leopard) it wants COPYFILE_DISABLE
150 my $attr = $osx_ver eq '10.5' ? 'COPYFILE_DISABLE' : 'COPY_EXTENDED_ATTRIBUTES_DISABLE';
151
152 makemaker_args(dist => { PREOP => qq{\@if [ "\$\$$attr" != "true" ]; then}.
153 qq{ echo "You must set the ENV variable $attr to true,"; }.
154 ' echo "to avoid getting resource forks in your dist."; exit 255; fi' });
155 }
156}
157
d31581c6 158sub strip_author_only_build_requires {
159 my @build_requires_to_strip = @_;
160 Meta->{values}{build_requires} = [ grep {
c102399c 161 my $ok = 1;
d31581c6 162 foreach my $module (@build_requires_to_strip) {
c102399c 163 if ($_->[0] =~ /$module/) {
164 $ok = 0;
165 last;
166 }
167 }
168 $ok;
d31581c6 169 } @{Meta->{values}{build_requires}} ];
c102399c 170}
64d96919 171
64d96919 172sub check_conflicts {
c102399c 173 my %conflicts = @_;
174
175 my %conflicts_found;
64d96919 176 for my $mod ( sort keys %conflicts ) {
dc0e73a3 177 eval "require($mod)";
64d96919 178 next if $@;
179
180 my $installed = $mod->VERSION();
d31581c6 181 $conflicts_found{$mod} = $installed if ( $installed le $conflicts{$mod} );
c102399c 182 }
183
184 return unless scalar keys %conflicts_found;
185
186 print <<"EOF";
64d96919 187
c102399c 188 WARNING:
64d96919 189
c102399c 190 This version of Catalyst conflicts with the versions of
191 some components you have installed.
64d96919 192
c102399c 193 You will need to upgrade these modules after installing
64d96919 194 this version of Catalyst.
c102399c 195
196 List of the conflicting components and their installed versions:
64d96919 197
198EOF
199
c102399c 200 foreach my $mod (keys %conflicts_found) {
201 print sprintf(" %s => %s\n", $mod, $conflicts_found{$mod});
64d96919 202 }
d31581c6 203 print "\n";
64d96919 204
d31581c6 205 # More or less copied from Module::Build, via Moose
206 return if $ENV{PERL_MM_USE_DEFAULT};
207 return unless -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT));
208
209 sleep 4;
64d96919 210}