Fix RT#64500
[dbsrgits/DBIx-Class.git] / Makefile.PL
index 3a91cc7..73cbceb 100644 (file)
@@ -57,13 +57,14 @@ my $test_requires = {
 
 my $runtime_requires = {
   'Carp::Clan'               => '6.0',
-  'Class::Accessor::Grouped' => '0.10000',
+  'Class::Accessor::Grouped' => '0.10002',
   'Class::C3::Componentised' => '1.0005',
   'Class::Inspector'         => '1.24',
   'Config::Any'              => '0.20',
   'Context::Preserve'        => '0.01',
   'Data::Dumper::Concise'    => '1.000',
   'Data::Page'               => '2.00',
+  'Hash::Merge'              => '0.12',
   'MRO::Compat'              => '0.09',
   'Module::Find'             => '0.06',
   'Path::Class'              => '0.18',
@@ -77,12 +78,8 @@ my $runtime_requires = {
   'Sub::Name'                => '0.04',
   'Variable::Magic'          => '0.44',
 
-  # corelibs needing a specific bugfixed version
+  # dual-life corelibs needing a specific bugfixed version
   'File::Path'               => '2.07',
-
-  # Oracle-only optionals
-  'Math::BigInt'             => '1.89',
-  'Math::Base36'             => '0.07',
 };
 
 # this is so we can order requires alphabetically
@@ -93,8 +90,11 @@ my $reqs = {
   test_requires => { %$test_requires },
 };
 
+my %reqs_for_group = %{DBIx::Class::Optional::Dependencies->req_group_list};
+
+# exclude the rdbms_* groups which are for DBIC users
 my $opt_testdeps = {
-  map { %$_ } (values %{DBIx::Class::Optional::Dependencies->req_group_list})
+  map { %{$reqs_for_group{$_}} } grep { !/^rdbms_/ } keys %reqs_for_group
 };
 
 # require extra modules for testing if we're in a checkout
@@ -164,6 +164,22 @@ warn $optdep_msg if $Module::Install::AUTHOR;
 auto_install();
 warn $optdep_msg if $Module::Install::AUTHOR;
 
+# if this is a smoker, and some known-to-be-trouble reqs are already present
+# (are not missing reqs) - we can exit 1 now so that we register an N/A report
+# instead of a FAIL
+if ($ENV{AUTOMATED_TESTING} && ! $ENV{PERL5_CPANM_IS_RUNNING} && ! $ENV{RELEASE_TESTING}) {
+
+  eval {
+    require Package::Stash;
+    my $psv = Package::Stash->VERSION;
+    if ($psv != 0.13 and $psv >= 0.09 and $psv <= 0.15) {
+      warn "A trial version $psv of Package::Stash detected (known to break namespace::clean). "
+          ."Aborting useless smoke test\n";
+      exit 1;
+    }
+  };
+}
+
 # re-create various autogenerated documentation bits
 if ($Module::Install::AUTHOR) {
 
@@ -278,7 +294,10 @@ if ($Module::Install::AUTHOR && keys %removed_build_requires) {
 }
 
 # test that we really took things away (just in case, happened twice somehow)
-exit 0 unless -f 'META.yml';  # in case bizarro comes around
+if (! -f 'META.yml') {
+  warn "No META.yml generated?! aborting...\n";
+  exit 1;
+}
 my $meta = do { local @ARGV = 'META.yml'; local $/; <> };
 
 # this is safe as there is a fatal check earlier to make sure $opt_testdeps does