Fix minor uri_for documentation bug.
[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
64b2a0de 8requires 'namespace::clean';
acca8cd5 9requires 'B::Hooks::EndOfScope' => '0.08';
0a0c74aa 10requires 'MooseX::Emulate::Class::Accessor::Fast' => '0.00801';
fec3ecdf 11requires 'Class::MOP' => '0.83';
3db3a59f 12requires 'Moose' => '0.78';
c98492ae 13requires 'MooseX::MethodAttributes::Inheritable' => '0.10';
9ce44430 14requires 'Carp';
269408a4 15requires 'Class::C3::Adopt::NEXT' => '0.07';
fa32ac82 16requires 'CGI::Simple::Cookie';
f63c03e4 17requires 'Data::Dump';
24b3262a 18requires 'File::Modified';
19requires 'HTML::Entities';
2f381252 20requires 'HTTP::Body' => '1.04'; # makes uploadtmp work
1e514a51 21requires 'HTTP::Headers' => '1.64';
24b3262a 22requires 'HTTP::Request';
23requires 'HTTP::Response';
995f7cbd 24requires 'HTTP::Request::AsCGI' => '0.8';
24b3262a 25requires 'LWP::UserAgent';
d8e0de58 26requires 'Module::Pluggable' => '3.01';
1e514a51 27requires 'Path::Class' => '0.09';
24b3262a 28requires 'Scalar::Util';
64edd785 29requires 'Sub::Exporter';
1e514a51 30requires 'Text::SimpleTable' => '0.03';
24b3262a 31requires 'Time::HiRes';
1e514a51 32requires 'Tree::Simple' => '1.15';
24b3262a 33requires 'Tree::Simple::Visitor::FindByPath';
1e514a51 34requires 'URI' => '1.35';
ea0e58d9 35requires 'Text::Balanced'; # core in 5.8.x but mentioned for completeness
6f1f968a 36requires 'MRO::Compat';
a9835938 37
65b708a6 38recommends 'B::Hooks::OP::Check::StashChange';
39
1a667b7c 40test_requires 'Class::Data::Inheritable';
83ea876e 41test_requires 'Test::MockObject' => '1.07'; # Newish (hah, 2006!) version to
42 # hopefully avoid broken distro
43 # packages (RT#46104)
1a667b7c 44
e262f38e 45# aggregate tests if AGGREGATE_TESTS is set and a recent Test::Aggregate is available
46if ($ENV{AGGREGATE_TESTS} && can_use('Test::Aggregate', '0.34_01')) {
47 test_requires('Test::Aggregate', '0.34_01');
48}
49else {
bf6d41be 50 tests join q{ },
51 grep { $_ ne 't/aggregate.t' }
52 map { glob } qw[t/*.t t/aggregate/*.t];
53}
e262f38e 54
621f279b 55my @force_build_requires_if_author = qw(
0a0c74aa 56 Test::NoTabs
57 Test::Pod
58 Test::Pod::Coverage
621f279b 59 Pod::Coverage
60);
61
62if ($Module::Install::AUTHOR) {
c102399c 63 foreach my $module (@force_build_requires_if_author) {
64 build_requires $module;
65 }
66 darwin_check_no_resource_forks();
de925c79 67}
68
24b3262a 69install_script glob('script/*.pl');
b6395bce 70auto_install;
24b3262a 71WriteAll;
614f3ad6 72
621f279b 73if ($Module::Install::AUTHOR) {
74
75 # Strip out the author only build_requires from META.yml
76 # Need to do this _after_ WriteAll else it looses track of them
c508cb5c 77 strip_author_only_build_requires(@force_build_requires_if_author, 'Test::Aggregate');
c102399c 78
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/' ],
621f279b 85 ];
86
87 Meta->write;
88}
c102399c 89
614f3ad6 90print <<"EOF";
91
92 Important:
a5b5152b 93
0187a79d 94 This library is for running Catalyst applications.
95
341d40d1 96 For development and use of catalyst.pl and myapp_create.pl, make sure
97 you also install the development tools package Catalyst::Devel.
f63c03e4 98
6bc14aef 99 perl -MCPANPLUS -e 'install Catalyst::Devel' # or
100 perl -MCPAN -e 'install Catalyst::Devel'
101
ac5c933b 102 To get some commonly used plugins, as well as the TT view and DBIC
6bc14aef 103 model, install Task::Catalyst in the same way.
a5b5152b 104
a5b5152b 105 Have fun!
614f3ad6 106EOF
64d96919 107
d31581c6 108# NOTE - This is the version number of the _incompatible_ code,
109# not the version number of the fixed version.
110my %conflicts = (
c49128b1 111 'Catalyst::Authentication::Credential::HTTP' => '1.009',
3db3a59f 112 'Catalyst::Plugin::Session::Store::File' => '0.16',
1d9dd180 113 'Catalyst::Plugin::Session' => '0.21',
114 'Catalyst::Plugin::Session::State::Cookie' => '0.10',
3db3a59f 115 'Catalyst::Plugin::Session::Store::FastMmap' => '0.09',
90e5b064 116 'Catalyst::Controller::AllowDisable' => '0.03',
b7abc49b 117 'Reaction' => '0.001999',
800a9f17 118 'Catalyst::Plugin::Upload::Image::Magick' => '0.03',
d31581c6 119 'Catalyst::Plugin::ConfigLoader' => '0.22', # Older versions work but
120 # throw Data::Visitor warns
121 'Catalyst::Devel' => '0.09',
3db3a59f 122 'Catalyst::Plugin::SmartURI' => '0.032',
d31581c6 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',
0f64a277 130 'CatalystX::CRUD' => '0.42',
131 'CatalystX::CRUD::Model::RDBO' => '0.20',
d31581c6 132);
133check_conflicts(%conflicts);
134
c102399c 135# End of script, helper functions below.
136
137sub darwin_check_no_resource_forks {
138 if ($^O eq 'darwin') {
139 my $osx_ver = `/usr/bin/sw_vers -productVersion`;
140 chomp $osx_ver;
141
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';
145
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' });
149 }
150}
151
d31581c6 152sub strip_author_only_build_requires {
153 my @build_requires_to_strip = @_;
154 Meta->{values}{build_requires} = [ grep {
c102399c 155 my $ok = 1;
d31581c6 156 foreach my $module (@build_requires_to_strip) {
c102399c 157 if ($_->[0] =~ /$module/) {
158 $ok = 0;
159 last;
160 }
161 }
162 $ok;
d31581c6 163 } @{Meta->{values}{build_requires}} ];
c102399c 164}
64d96919 165
64d96919 166sub check_conflicts {
c102399c 167 my %conflicts = @_;
168
169 my %conflicts_found;
64d96919 170 for my $mod ( sort keys %conflicts ) {
dc0e73a3 171 eval "require($mod)";
64d96919 172 next if $@;
173
174 my $installed = $mod->VERSION();
d31581c6 175 $conflicts_found{$mod} = $installed if ( $installed le $conflicts{$mod} );
c102399c 176 }
177
178 return unless scalar keys %conflicts_found;
179
180 print <<"EOF";
64d96919 181
c102399c 182 WARNING:
64d96919 183
c102399c 184 This version of Catalyst conflicts with the versions of
185 some components you have installed.
64d96919 186
c102399c 187 You will need to upgrade these modules after installing
64d96919 188 this version of Catalyst.
c102399c 189
190 List of the conflicting components and their installed versions:
64d96919 191
192EOF
193
c102399c 194 foreach my $mod (keys %conflicts_found) {
195 print sprintf(" %s => %s\n", $mod, $conflicts_found{$mod});
64d96919 196 }
d31581c6 197 print "\n";
64d96919 198
d31581c6 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));
202
203 sleep 4;
64d96919 204}