Port to Module::Install::AuthorRequires.
[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')) {
a85294b6 48 author_requires('Test::Aggregate', '0.35_05');
49 author_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
a85294b6 57author_requires($_) for qw(
0a0c74aa 58 Test::NoTabs
59 Test::Pod
60 Test::Pod::Coverage
621f279b 61 Pod::Coverage
62);
63
64if ($Module::Install::AUTHOR) {
c102399c 65 darwin_check_no_resource_forks();
de925c79 66}
67
24b3262a 68install_script glob('script/*.pl');
b6395bce 69auto_install;
24b3262a 70WriteAll;
614f3ad6 71
621f279b 72if ($Module::Install::AUTHOR) {
c102399c 73 Meta->{values}{resources} = [
74 [ 'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst' ],
75 [ 'IRC' => 'irc://irc.perl.org/#catalyst' ],
76 [ 'license', => 'http://dev.perl.org/licenses/' ],
77 [ 'homepage', => 'http://dev.catalyst.perl.org/'],
78 [ 'repository', => 'http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Runtime/' ],
621f279b 79 ];
80
81 Meta->write;
82}
c102399c 83
614f3ad6 84print <<"EOF";
85
86 Important:
a5b5152b 87
0187a79d 88 This library is for running Catalyst applications.
89
341d40d1 90 For development and use of catalyst.pl and myapp_create.pl, make sure
91 you also install the development tools package Catalyst::Devel.
f63c03e4 92
6bc14aef 93 perl -MCPANPLUS -e 'install Catalyst::Devel' # or
94 perl -MCPAN -e 'install Catalyst::Devel'
95
ac5c933b 96 To get some commonly used plugins, as well as the TT view and DBIC
6bc14aef 97 model, install Task::Catalyst in the same way.
a5b5152b 98
a5b5152b 99 Have fun!
614f3ad6 100EOF
64d96919 101
d31581c6 102# NOTE - This is the version number of the _incompatible_ code,
103# not the version number of the fixed version.
104my %conflicts = (
33632a44 105 'Catalyst::Component::ACCEPT_CONTEXT' => '0.06',
d75b106e 106 'Catalyst::Plugin::ENV' => '9999', # This plugin is just stupid, full stop
107 # should have been a core fix.
71b46798 108 'Catalyst::Plugin::Unicode::Encoding' => '0.2',
c49128b1 109 'Catalyst::Authentication::Credential::HTTP' => '1.009',
3db3a59f 110 'Catalyst::Plugin::Session::Store::File' => '0.16',
1d9dd180 111 'Catalyst::Plugin::Session' => '0.21',
112 'Catalyst::Plugin::Session::State::Cookie' => '0.10',
3db3a59f 113 'Catalyst::Plugin::Session::Store::FastMmap' => '0.09',
90e5b064 114 'Catalyst::Controller::AllowDisable' => '0.03',
b7abc49b 115 'Reaction' => '0.001999',
800a9f17 116 'Catalyst::Plugin::Upload::Image::Magick' => '0.03',
d31581c6 117 'Catalyst::Plugin::ConfigLoader' => '0.22', # Older versions work but
118 # throw Data::Visitor warns
119 'Catalyst::Devel' => '0.09',
3db3a59f 120 'Catalyst::Plugin::SmartURI' => '0.032',
d31581c6 121 'CatalystX::CRUD' => '0.37',
122 'Catalyst::Action::RenderView' => '0.07',
123 'Catalyst::Plugin::DebugCookie' => '0.999002',
124 'Catalyst::Plugin::Authentication' => '0.100091',
125 'CatalystX::Imports' => '0.03',
126 'Catalyst::Plugin::HashedCookies' => '1.03',
127 'Catalyst::Action::REST' => '0.67',
0f64a277 128 'CatalystX::CRUD' => '0.42',
129 'CatalystX::CRUD::Model::RDBO' => '0.20',
d31581c6 130);
131check_conflicts(%conflicts);
132
c102399c 133# End of script, helper functions below.
134
135sub darwin_check_no_resource_forks {
136 if ($^O eq 'darwin') {
137 my $osx_ver = `/usr/bin/sw_vers -productVersion`;
138 chomp $osx_ver;
139
140 # TAR on 10.4 wants COPY_EXTENDED_ATTRIBUTES_DISABLE
141 # On 10.5 (Leopard) it wants COPYFILE_DISABLE
142 my $attr = $osx_ver eq '10.5' ? 'COPYFILE_DISABLE' : 'COPY_EXTENDED_ATTRIBUTES_DISABLE';
143
144 makemaker_args(dist => { PREOP => qq{\@if [ "\$\$$attr" != "true" ]; then}.
145 qq{ echo "You must set the ENV variable $attr to true,"; }.
146 ' echo "to avoid getting resource forks in your dist."; exit 255; fi' });
147 }
148}
149
64d96919 150sub check_conflicts {
c102399c 151 my %conflicts = @_;
152
153 my %conflicts_found;
64d96919 154 for my $mod ( sort keys %conflicts ) {
dc0e73a3 155 eval "require($mod)";
64d96919 156 next if $@;
157
158 my $installed = $mod->VERSION();
d31581c6 159 $conflicts_found{$mod} = $installed if ( $installed le $conflicts{$mod} );
c102399c 160 }
161
162 return unless scalar keys %conflicts_found;
163
164 print <<"EOF";
64d96919 165
c102399c 166 WARNING:
64d96919 167
c102399c 168 This version of Catalyst conflicts with the versions of
169 some components you have installed.
64d96919 170
c102399c 171 You will need to upgrade these modules after installing
64d96919 172 this version of Catalyst.
c102399c 173
174 List of the conflicting components and their installed versions:
64d96919 175
176EOF
177
c102399c 178 foreach my $mod (keys %conflicts_found) {
179 print sprintf(" %s => %s\n", $mod, $conflicts_found{$mod});
64d96919 180 }
d31581c6 181 print "\n";
64d96919 182
d31581c6 183 # More or less copied from Module::Build, via Moose
184 return if $ENV{PERL_MM_USE_DEFAULT};
185 return unless -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT));
186
187 sleep 4;
64d96919 188}