Author: dagolden
Date: Sat Aug  8 04:17:12 2009
New Revision: 13177

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

Log:
Archive::Tar changed from 'requires' to 'recommends'

Changed from 'requires' to 'recommends' so non-authors without IO::Zlib can
still use Module::Build to install modules.  Thanks to Matt Trout for
pointing out this issue.



Modified: Module-Build/trunk/Build.PL
==============================================================================
--- Module-Build/trunk/Build.PL (original)
+++ Module-Build/trunk/Build.PL Sat Aug  8 04:17:12 2009
@@ -27,7 +27,6 @@
   },
   requires    => {
     'perl'                  => '5.006001',
-    'Archive::Tar'          => '1.08',
     'Data::Dumper'          => 0,
     'File::Basename'        => 0,
     'File::Compare'         => 0,
@@ -46,6 +45,7 @@
     'Test::Harness'         => 0,
   },
   recommends => {
+    'Archive::Tar'       => 1.08,
     'ExtUtils::CBuilder' => 0.15,
     'ExtUtils::Install'  => 0.30,
     'ExtUtils::ParseXS'  => 1.02,

Modified: Module-Build/trunk/Changes
==============================================================================
--- Module-Build/trunk/Changes  (original)
+++ Module-Build/trunk/Changes  Sat Aug  8 04:17:12 2009
@@ -7,6 +7,11 @@
  - Fixed failing debug.t on VMS (RT#48362) [Craig Berry]
  - Prevent par.t from dying on error in .zip extraction [David Golden]
 
+ Other:
+ - Archive::Tar changed from 'requires' to 'recommends' so non-authors
+   without IO::Zlib can still use Module::Build to install modules
+   [reported by Matt Trout, fix by David Golden]
+
 0.34_02 - Sun Jul 26 22:50:40 EDT 2009
 
  Bug-fixes:

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 Sat Aug  8 04:17:12 2009
@@ -3976,7 +3976,10 @@
     $self->do_system($self->split_like_shell($self->{args}{tar}), $tar_flags, 
"$file.tar", $dir);
     $self->do_system($self->split_like_shell($self->{args}{gzip}), 
"$file.tar") if $self->{args}{gzip};
   } else {
-    require Archive::Tar;
+    eval { require Archive::Tar && Archive::Tar->VERSION(1.08); 1 }
+      or die "You must install Archive::Tar to make a distribution tarball\n".
+             "or specify a binary tar program with the '--tar' option.\n".
+             "See the documentation for the 'dist' action.\n";
 
     # Archive::Tar versions >= 1.09 use the following to enable a compatibility
     # hack so that the resulting archive is compatible with older clients.

Modified: Module-Build/trunk/t/runthrough.t
==============================================================================
--- Module-Build/trunk/t/runthrough.t   (original)
+++ Module-Build/trunk/t/runthrough.t   Sat Aug  8 04:17:12 2009
@@ -150,10 +150,8 @@
   cmp_ok $1, '==', $mb->VERSION, "Check version used to create META.yml: $1 == 
" . $mb->VERSION;
 
   SKIP: {
-    skip( "not sure if we can create a tarball on this platform", 1 )
-      unless $mb->check_installed_version('Archive::Tar', 0) ||
-            $mb->isa('Module::Build::Platform::Unix');
-
+    skip( "Archive::Tar 1.08+ not installed", 1 )
+      unless eval { require Archive::Tar && Archive::Tar->VERSION(1.08); 1 };
     $mb->add_to_cleanup($mb->dist_dir . ".tar.gz");
     eval {$mb->dispatch('dist')};
     is $@, '';

Reply via email to