Author: dagolden
Date: Wed Oct 28 11:12:42 2009
New Revision: 13447

Modified:
   Module-Build/trunk/Build.PL
   Module-Build/trunk/lib/Module/Build/Base.pm

Log:
Fix fatal bug if EU::Manifest::maniskip isn't available

Modified: Module-Build/trunk/Build.PL
==============================================================================
--- Module-Build/trunk/Build.PL (original)
+++ Module-Build/trunk/Build.PL Wed Oct 28 11:12:42 2009
@@ -48,6 +48,7 @@
     'Archive::Tar'       => 1.08,
     'ExtUtils::CBuilder' => 0.260301, # numerous bug fixes
     'ExtUtils::Install'  => 0.30,
+    'ExtUtils::Manifest' => 1.54, # public maniskip()
     'ExtUtils::ParseXS'  => 2.21,
     'Pod::Readme'        => 0.04,
     'Module::Signature'  => 0.21,

Modified: Module-Build/trunk/lib/Module/Build/Base.pm
==============================================================================
--- Module-Build/trunk/lib/Module/Build/Base.pm (original)
+++ Module-Build/trunk/lib/Module/Build/Base.pm Wed Oct 28 11:12:42 2009
@@ -3384,9 +3384,13 @@
   require ExtUtils::Manifest;
   local $^W; # ExtUtils::Manifest is not warnings clean.
 
-  my $skip_check = ExtUtils::Manifest::maniskip($maniskip);
+  # older ExtUtils::Manifest had a private _maniskip
+  my $skip_factory = ExtUtils::Manifest->can('maniskip')
+                  || ExtUtils::Manifest->can('_maniskip');
+
   my $mymetafile = $self->mymetafile;
-  if ( ! $skip_check->( $mymetafile ) ) {
+  # we can't check it, just add it anyway to be safe
+  unless ( $skip_factory && $skip_factory->($maniskip)->($mymetafile) ) {
     $self->log_warn("File '$maniskip' does not include '$mymetafile'. Adding 
it now.\n");
     $self->_append_maniskip("^$mymetafile\$", $maniskip);
   }
@@ -3713,7 +3717,7 @@
 
   $content .= <<'EOF';
 # Avoid configuration metadata file
-^MYMETA.yml$
+^MYMETA\.$
 
 # Avoid Module::Build generated and utility files.
 \bBuild$

Reply via email to