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} = {
# 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
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";
}
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)