Fix last commit
[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';
647a251f 41test_requires 'Test::MockObject';
1a667b7c 42
e262f38e 43# aggregate tests if AGGREGATE_TESTS is set and a recent Test::Aggregate is available
44if ($ENV{AGGREGATE_TESTS} && can_use('Test::Aggregate', '0.34_01')) {
45 test_requires('Test::Aggregate', '0.34_01');
46}
47else {
bf6d41be 48 tests join q{ },
49 grep { $_ ne 't/aggregate.t' }
50 map { glob } qw[t/*.t t/aggregate/*.t];
51}
e262f38e 52
621f279b 53my @force_build_requires_if_author = qw(
0a0c74aa 54 Test::NoTabs
55 Test::Pod
56 Test::Pod::Coverage
621f279b 57 Pod::Coverage
58);
59
60if ($Module::Install::AUTHOR) {
c102399c 61 foreach my $module (@force_build_requires_if_author) {
62 build_requires $module;
63 }
64 darwin_check_no_resource_forks();
de925c79 65}
66
24b3262a 67install_script glob('script/*.pl');
b6395bce 68auto_install;
24b3262a 69WriteAll;
614f3ad6 70
621f279b 71if ($Module::Install::AUTHOR) {
72
73 # Strip out the author only build_requires from META.yml
74 # Need to do this _after_ WriteAll else it looses track of them
c508cb5c 75 strip_author_only_build_requires(@force_build_requires_if_author, 'Test::Aggregate');
c102399c 76
77 Meta->{values}{resources} = [
78 [ 'MailingList' => 'http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst' ],
79 [ 'IRC' => 'irc://irc.perl.org/#catalyst' ],
80 [ 'license', => 'http://dev.perl.org/licenses/' ],
81 [ 'homepage', => 'http://dev.catalyst.perl.org/'],
82 [ 'repository', => 'http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Runtime/' ],
621f279b 83 ];
84
85 Meta->write;
86}
c102399c 87
614f3ad6 88print <<"EOF";
89
90 Important:
a5b5152b 91
0187a79d 92 This library is for running Catalyst applications.
93
341d40d1 94 For development and use of catalyst.pl and myapp_create.pl, make sure
95 you also install the development tools package Catalyst::Devel.
f63c03e4 96
6bc14aef 97 perl -MCPANPLUS -e 'install Catalyst::Devel' # or
98 perl -MCPAN -e 'install Catalyst::Devel'
99
ac5c933b 100 To get some commonly used plugins, as well as the TT view and DBIC
6bc14aef 101 model, install Task::Catalyst in the same way.
a5b5152b 102
a5b5152b 103 Have fun!
614f3ad6 104EOF
64d96919 105
d31581c6 106# NOTE - This is the version number of the _incompatible_ code,
107# not the version number of the fixed version.
108my %conflicts = (
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
d31581c6 150sub strip_author_only_build_requires {
151 my @build_requires_to_strip = @_;
152 Meta->{values}{build_requires} = [ grep {
c102399c 153 my $ok = 1;
d31581c6 154 foreach my $module (@build_requires_to_strip) {
c102399c 155 if ($_->[0] =~ /$module/) {
156 $ok = 0;
157 last;
158 }
159 }
160 $ok;
d31581c6 161 } @{Meta->{values}{build_requires}} ];
c102399c 162}
64d96919 163
64d96919 164sub check_conflicts {
c102399c 165 my %conflicts = @_;
166
167 my %conflicts_found;
64d96919 168 for my $mod ( sort keys %conflicts ) {
dc0e73a3 169 eval "require($mod)";
64d96919 170 next if $@;
171
172 my $installed = $mod->VERSION();
d31581c6 173 $conflicts_found{$mod} = $installed if ( $installed le $conflicts{$mod} );
c102399c 174 }
175
176 return unless scalar keys %conflicts_found;
177
178 print <<"EOF";
64d96919 179
c102399c 180 WARNING:
64d96919 181
c102399c 182 This version of Catalyst conflicts with the versions of
183 some components you have installed.
64d96919 184
c102399c 185 You will need to upgrade these modules after installing
64d96919 186 this version of Catalyst.
c102399c 187
188 List of the conflicting components and their installed versions:
64d96919 189
190EOF
191
c102399c 192 foreach my $mod (keys %conflicts_found) {
193 print sprintf(" %s => %s\n", $mod, $conflicts_found{$mod});
64d96919 194 }
d31581c6 195 print "\n";
64d96919 196
d31581c6 197 # More or less copied from Module::Build, via Moose
198 return if $ENV{PERL_MM_USE_DEFAULT};
199 return unless -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT));
200
201 sleep 4;
64d96919 202}