X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=maint%2FMakefile.PL.inc%2F12_authordeps.pl;h=398722e11e8cfd97be3995440493c654e5f3c397;hb=7975645bb827d021778c61d94eefc27ae330d00d;hp=c4944d0e244d72ad1fa87f168aef4bd67d173ea5;hpb=df65d4da1dbe1d485bb7a35f9e71898d1193e277;p=dbsrgits%2FDBIx-Class.git diff --git a/maint/Makefile.PL.inc/12_authordeps.pl b/maint/Makefile.PL.inc/12_authordeps.pl index c4944d0..398722e 100644 --- a/maint/Makefile.PL.inc/12_authordeps.pl +++ b/maint/Makefile.PL.inc/12_authordeps.pl @@ -32,12 +32,19 @@ else { EOW require DBIx::Class::Optional::Dependencies; - my %reqs_for_group = %{DBIx::Class::Optional::Dependencies->req_group_list}; # exclude the rdbms_* groups which are for DBIC users - $opt_testdeps = { - map { %{$reqs_for_group{$_}} } grep { !/^rdbms_/ } keys %reqs_for_group - }; + # and the moose-related stuff iff we are under 5.8.3 + $opt_testdeps = DBIx::Class::Optional::Dependencies->req_list_for([ + grep { + !/^rdbms_|^dist_/ + and + ($] > 5.008002 or !/^ (?: test_ )? (?: admin | admin_script | replicated ) $/x ) + } keys %{DBIx::Class::Optional::Dependencies->req_group_list} + ]); + + # this one is "special" - we need it both in optdeps and as a hard dep + delete $opt_testdeps->{'DBD::SQLite'}; print "Including all optional deps\n"; $reqs->{test_requires} = { @@ -66,6 +73,9 @@ EOW # this will run after the Makefile is written and the main Makefile.PL terminates # END { + # shit already hit the fan + return if $?; + # Re-write META.yml at the end to _exclude_ all forced build-requires (we do not # want to ship this) We are also not using M::I::AuthorRequires as this will be # an extra dep, and deps in Makefile.PL still suck @@ -88,9 +98,18 @@ END { if (keys %removed_build_requires) { print "Regenerating META with author requires excluded\n"; + # M::I understands unicode in meta but does not write with the right + # layers - fhtagn!!! + local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /Wide character in print/ }; Meta->write; } + # strip possible crlf from META + if ($^O eq 'MSWin32' or $^O eq 'cygwin') { + local $ENV{PERLIO} = 'unix'; + system( $^X, qw( -MExtUtils::Command -e dos2unix -- META.yml), ); + } + # test that we really took things away (just in case, happened twice somehow) if (! -f 'META.yml') { warn "No META.yml generated?! aborting...\n"; @@ -99,6 +118,12 @@ END { } my $meta = do { local @ARGV = 'META.yml'; local $/; <> }; + $meta =~ /^\Qname: DBIx-Class\E$/m or do { + warn "Seemingly malformed META.yml...?\n"; + unlink 'Makefile'; + exit 1; + }; + # this is safe as there is a fatal check earlier in the main Makefile.PL # to make sure there are no duplicates (i.e. $opt_testdeps does not contain # any real dependencies)