This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Module-Build to CPAN version 0.40
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Thu, 31 May 2012 11:47:36 +0000 (12:47 +0100)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Fri, 15 Jun 2012 13:33:49 +0000 (14:33 +0100)
  [DELTA]

  0.40 - Fri Feb 24 18:47:48 CET 2012

  - Released 0.39_02 as 0.40 without any code changes

  0.39_02 - Thu Feb 17 00:33:18 MET 2012

  [BUG FIXES]

  - Fixed bug where modules without $VERSION might have a version of '0'
    listed in 'provides' metadata, which will be rejected by PAUSE
    [David Golden, reported by Christopher Fields]

  - Fixed bug in PodParser to allow numerals in module names
    [Tokuhirom]

  - Fixed bug where giving arguments twice led to them becoming arrays,
    resulting in install paths like "ARRAY(0xdeadbeef)/lib/Foo.pm"
    [Leon Timmermans]

  [DOCUMENTATION]

  - Fixed deviance from alphabetical order in documentation of
    constructor parameters. [Eric Brine]

  - Add documentation for configure_requires constructor parameter.
    [Eric Brine]

  - Change some of the docs' language describing relationship to
    MakeMaker. [Ken Williams]

  [OTHER]

    - List Perl-Toolchain-Gang repo as official repo

32 files changed:
Porting/Maintainers.pl
cpan/Module-Build/Changes
cpan/Module-Build/lib/Module/Build.pm
cpan/Module-Build/lib/Module/Build/API.pod
cpan/Module-Build/lib/Module/Build/Authoring.pod
cpan/Module-Build/lib/Module/Build/Base.pm
cpan/Module-Build/lib/Module/Build/Compat.pm
cpan/Module-Build/lib/Module/Build/Config.pm
cpan/Module-Build/lib/Module/Build/Cookbook.pm
cpan/Module-Build/lib/Module/Build/Dumper.pm
cpan/Module-Build/lib/Module/Build/ModuleInfo.pm
cpan/Module-Build/lib/Module/Build/Notes.pm
cpan/Module-Build/lib/Module/Build/PPMMaker.pm
cpan/Module-Build/lib/Module/Build/Platform/Amiga.pm
cpan/Module-Build/lib/Module/Build/Platform/Default.pm
cpan/Module-Build/lib/Module/Build/Platform/EBCDIC.pm
cpan/Module-Build/lib/Module/Build/Platform/MPEiX.pm
cpan/Module-Build/lib/Module/Build/Platform/MacOS.pm
cpan/Module-Build/lib/Module/Build/Platform/RiscOS.pm
cpan/Module-Build/lib/Module/Build/Platform/Unix.pm
cpan/Module-Build/lib/Module/Build/Platform/VMS.pm
cpan/Module-Build/lib/Module/Build/Platform/VOS.pm
cpan/Module-Build/lib/Module/Build/Platform/Windows.pm
cpan/Module-Build/lib/Module/Build/Platform/aix.pm
cpan/Module-Build/lib/Module/Build/Platform/cygwin.pm
cpan/Module-Build/lib/Module/Build/Platform/darwin.pm
cpan/Module-Build/lib/Module/Build/Platform/os2.pm
cpan/Module-Build/lib/Module/Build/PodParser.pm
cpan/Module-Build/lib/inc/latest.pm
cpan/Module-Build/lib/inc/latest/private.pm
cpan/Module-Build/t/install.t
cpan/Module-Build/t/metadata.t

index d338d30..7bc4759 100755 (executable)
@@ -1231,7 +1231,7 @@ use File::Glob qw(:case);
 
     'Module::Build' => {
         'MAINTAINER'   => 'kwilliams',
-        'DISTRIBUTION' => 'DAGOLDEN/Module-Build-0.39_01.tar.gz',
+        'DISTRIBUTION' => 'LEONT/Module-Build-0.40.tar.gz',
         'FILES'        => q[cpan/Module-Build],
         'EXCLUDED'     => [
             qw( t/par.t
index 02f73b0..f5b158c 100644 (file)
@@ -1,5 +1,39 @@
 Revision history for Perl extension Module::Build.
 
+0.40 - Fri Feb 24 18:47:48 CET 2012
+
+  - Released 0.39_02 as 0.40 without any code changes
+
+0.39_02 - Thu Feb 17 00:33:18 MET 2012
+
+  [BUG FIXES]
+
+  - Fixed bug where modules without $VERSION might have a version of '0'
+    listed in 'provides' metadata, which will be rejected by PAUSE
+    [David Golden, reported by Christopher Fields]
+
+  - Fixed bug in PodParser to allow numerals in module names
+    [Tokuhirom]
+
+  - Fixed bug where giving arguments twice led to them becoming arrays,
+    resulting in install paths like "ARRAY(0xdeadbeef)/lib/Foo.pm"
+    [Leon Timmermans]
+
+  [DOCUMENTATION]
+
+  - Fixed deviance from alphabetical order in documentation of
+    constructor parameters. [Eric Brine]
+
+  - Add documentation for configure_requires constructor parameter.
+    [Eric Brine]
+
+  - Change some of the docs' language describing relationship to
+    MakeMaker. [Ken Williams]
+
+  [OTHER]
+
+    - List Perl-Toolchain-Gang repo as official repo
+
 0.39_01 - Thu Jul 21 16:48:48 EDT 2011
 
   [BUG FIXES]
index e1fc6ca..69fd77f 100644 (file)
@@ -16,7 +16,7 @@ use Module::Build::Base;
 
 use vars qw($VERSION @ISA);
 @ISA = qw(Module::Build::Base);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 
 
@@ -967,24 +967,28 @@ platform you're installing on.
 =item prefix
 
 Provided for compatibility with C<ExtUtils::MakeMaker>'s PREFIX argument.
-C<prefix> should be used when you wish Module::Build to install your
-modules, documentation and scripts in the same place
-C<ExtUtils::MakeMaker> does.
+C<prefix> should be used when you want Module::Build to install your
+modules, documentation, and scripts in the same place as
+C<ExtUtils::MakeMaker>'s PREFIX mechanism.
 
 The following are equivalent.
 
     perl Build.PL --prefix /tmp/foo
     perl Makefile.PL PREFIX=/tmp/foo
 
-Because of the very complex nature of the prefixification logic, the
+Because of the complex nature of the prefixification logic, the
 behavior of PREFIX in C<MakeMaker> has changed subtly over time.
 Module::Build's --prefix logic is equivalent to the PREFIX logic found
 in C<ExtUtils::MakeMaker> 6.30.
 
-If you do not need to retain compatibility with C<ExtUtils::MakeMaker> or
+The maintainers of C<MakeMaker> do understand the troubles with the
+PREFIX mechanism, and added INSTALL_BASE support in version 6.31 of
+C<MakeMaker>, which was released in 2006.
+
+If you don't need to retain compatibility with old versions (pre-6.31) of C<ExtUtils::MakeMaker> or
 are starting a fresh Perl installation we recommend you use
 C<install_base> instead (and C<INSTALL_BASE> in C<ExtUtils::MakeMaker>).
-See L<Module::Build::Cookbook/Instaling in the same location as
+See L<Module::Build::Cookbook/Installing in the same location as
 ExtUtils::MakeMaker> for further information.
 
 
@@ -1046,14 +1050,14 @@ perl.
 It is risky to make major changes to C<MakeMaker>, since it does so many
 things, is so important, and generally works.  C<Module::Build> is an
 entirely separate package so that I can work on it all I want, without
-worrying about backward compatibility.
+worrying about backward compatibility with C<MakeMaker>.
 
 =item *
 
 Finally, Perl is said to be a language for system administration.
 Could it really be the case that Perl isn't up to the task of building
-and installing software?  Even if that software is a bunch of stupid
-little C<.pm> files that just need to be copied from one place to
+and installing software?  Even if that software is a bunch of
+C<.pm> files that just need to be copied from one place to
 another?  My sense was that we could design a system to accomplish
 this in a flexible, extensible, and friendly manner.  Or die trying.
 
@@ -1083,7 +1087,7 @@ Bug reports are also welcome at
 <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build>.
 
 The latest development version is available from the Git
-repository at <https://github.com/dagolden/module-build/>
+repository at <https://github.com/Perl-Toolchain-Gang/Module-Build>
 
 
 =head1 COPYRIGHT
index 29d2f35..2760673 100644 (file)
@@ -157,6 +157,24 @@ checking on binary/packaged distributions of the module.
 See the documentation for L<Module::Build::Authoring/"PREREQUISITES">
 for the details of how requirements can be specified.
 
+=item configure_requires
+
+[version 0.30]
+
+Modules listed in this section must be installed I<before> configuring
+this distribution (i.e. before running the F<Build.PL> script).
+This might be a specific minimum version of C<Module::Build> or any
+other module the F<Build.PL> needs in order to do its stuff.  Clients
+like C<CPAN.pm> or C<CPANPLUS> will be expected to pick
+C<configure_requires> out of the F<META.yml> file and install these
+items before running the C<Build.PL>.
+
+Module::Build may automatically add itself to configure_requires.
+See L</auto_configure_requires> for details.
+
+See the documentation for L<Module::Build::Authoring/"PREREQUISITES">
+for the details of how requirements can be specified.
+
 =item create_packlist
 
 [version 0.28]
@@ -834,6 +852,17 @@ SIGNATURE file to the MANIFEST (therefore, don't add it yourself).
 The default value is false.  In the future, the default may change to
 true if you have C<Module::Signature> installed on your system.
 
+=item tap_harness_args
+
+[version 0.2808_03]
+
+An optional parameter specifying parameters to be passed to TAP::Harness when
+running tests. Must be given as a hash reference of parameters; see the
+L<TAP::Harness|TAP::Harness> documentation for details. Note that specifying
+this parameter will implicitly set C<use_tap_harness> to a true value. You
+must therefore be sure to add TAP::Harness as a requirement for your module in
+L</build_requires>.
+
 =item test_files
 
 [version 0.23]
@@ -862,17 +891,6 @@ therefore be sure to add TAP::Harness as a requirement for your module in
 L</build_requires>. Implicitly set to a true value if C<tap_harness_args> is
 specified.
 
-=item tap_harness_args
-
-[version 0.2808_03]
-
-An optional parameter specifying parameters to be passed to TAP::Harness when
-running tests. Must be given as a hash reference of parameters; see the
-L<TAP::Harness|TAP::Harness> documentation for details. Note that specifying
-this parameter will implicitly set C<use_tap_harness> to a true value. You
-must therefore be sure to add TAP::Harness as a requirement for your module in
-L</build_requires>.
-
 =item xs_files
 
 [version 0.19]
index 92164df..b1dc584 100644 (file)
@@ -304,7 +304,7 @@ Bug reports are also welcome at
 <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Module-Build>.
 
 The latest development version is available from the Git
-repository at <https://github.com/dagolden/module-build/>
+repository at <https://github.com/Perl-Toolchain-Gang/Module-Build>
 
 
 =head1 SEE ALSO
index a29f500..795ed91 100644 (file)
@@ -4,7 +4,7 @@ package Module::Build::Base;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 BEGIN { require 5.00503 }
 
@@ -38,7 +38,9 @@ sub new {
 
   $self->check_manifest;
   $self->auto_require;
-  if ( $self->check_prereq + $self->check_autofeatures != 2) {
+
+  # All checks must run regardless if one fails, so no short circuiting!
+  if( grep { !$_ } $self->check_prereq, $self->check_autofeatures ) {
     $self->log_warn(<<EOF);
 
 ERRORS/WARNINGS FOUND IN PREREQUISITES.  You may wish to install the versions
@@ -142,16 +144,16 @@ sub _construct {
   my $config = delete $input{config} || {};
 
   my $self = bless {
-                   args => {%$args},
-                   config => Module::Build::Config->new(values => $config),
-                   properties => {
-                                  base_dir        => $package->cwd,
-                                  mb_version      => $Module::Build::VERSION,
-                                  %input,
-                                 },
-                   phash => {},
-                    stash => {}, # temporary caching, not stored in _build
-                  }, $package;
+      args => {%$args},
+      config => Module::Build::Config->new(values => $config),
+      properties => {
+          base_dir        => $package->cwd,
+          mb_version      => $Module::Build::VERSION,
+          %input,
+      },
+      phash => {},
+      stash => {}, # temporary caching, not stored in _build
+  }, $package;
 
   $self->_set_defaults;
   my ($p, $ph) = ($self->{properties}, $self->{phash});
@@ -163,7 +165,7 @@ sub _construct {
     if (exists $p->{$_}) {
       my $vals = delete $p->{$_};
       while (my ($k, $v) = each %$vals) {
-       $self->$_($k, $v);
+        $self->$_($k, $v);
       }
     }
   }
@@ -250,37 +252,37 @@ sub _default_install_paths {
   $p->{install_sets} =
     {
      core   => {
-               lib     => $c->get('installprivlib'),
-               arch    => $c->get('installarchlib'),
-               bin     => $c->get('installbin'),
-               script  => $c->get('installscript'),
-               bindoc  => $bindoc,
-               libdoc  => $libdoc,
-               binhtml => $binhtml,
-               libhtml => $libhtml,
-              },
+       lib     => $c->get('installprivlib'),
+       arch    => $c->get('installarchlib'),
+       bin     => $c->get('installbin'),
+       script  => $c->get('installscript'),
+       bindoc  => $bindoc,
+       libdoc  => $libdoc,
+       binhtml => $binhtml,
+       libhtml => $libhtml,
+     },
      site   => {
-               lib     => $c->get('installsitelib'),
-               arch    => $c->get('installsitearch'),
-               bin     => $c->get('installsitebin') || $c->get('installbin'),
-               script  => $c->get('installsitescript') ||
-                          $c->get('installsitebin') || $c->get('installscript'),
-               bindoc  => $c->get('installsiteman1dir') || $bindoc,
-               libdoc  => $c->get('installsiteman3dir') || $libdoc,
-               binhtml => $c->get('installsitehtml1dir') || $binhtml,
-               libhtml => $c->get('installsitehtml3dir') || $libhtml,
-              },
+       lib     => $c->get('installsitelib'),
+       arch    => $c->get('installsitearch'),
+       bin     => $c->get('installsitebin')      || $c->get('installbin'),
+       script  => $c->get('installsitescript')   ||
+         $c->get('installsitebin') || $c->get('installscript'),
+       bindoc  => $c->get('installsiteman1dir')  || $bindoc,
+       libdoc  => $c->get('installsiteman3dir')  || $libdoc,
+       binhtml => $c->get('installsitehtml1dir') || $binhtml,
+       libhtml => $c->get('installsitehtml3dir') || $libhtml,
+     },
      vendor => {
-               lib     => $c->get('installvendorlib'),
-               arch    => $c->get('installvendorarch'),
-               bin     => $c->get('installvendorbin') || $c->get('installbin'),
-               script  => $c->get('installvendorscript') ||
-                          $c->get('installvendorbin') || $c->get('installscript'),
-               bindoc  => $c->get('installvendorman1dir') || $bindoc,
-               libdoc  => $c->get('installvendorman3dir') || $libdoc,
-               binhtml => $c->get('installvendorhtml1dir') || $binhtml,
-               libhtml => $c->get('installvendorhtml3dir') || $libhtml,
-              },
+       lib     => $c->get('installvendorlib'),
+       arch    => $c->get('installvendorarch'),
+       bin     => $c->get('installvendorbin')      || $c->get('installbin'),
+       script  => $c->get('installvendorscript')   ||
+         $c->get('installvendorbin') || $c->get('installscript'),
+       bindoc  => $c->get('installvendorman1dir')  || $bindoc,
+       libdoc  => $c->get('installvendorman3dir')  || $libdoc,
+       binhtml => $c->get('installvendorhtml1dir') || $binhtml,
+       libhtml => $c->get('installvendorhtml3dir') || $libhtml,
+     },
     };
 
   $p->{original_prefix} =
@@ -311,35 +313,35 @@ sub _default_install_paths {
   $p->{prefix_relpaths} =
     {
      core => {
-             lib        => [@libstyle],
-             arch       => [@libstyle, $version, $arch],
-             bin        => ['bin'],
-             script     => ['bin'],
-             bindoc     => ['man', 'man1'],
-             libdoc     => ['man', 'man3'],
-             binhtml    => ['html'],
-             libhtml    => ['html'],
-            },
+       lib        => [@libstyle],
+       arch       => [@libstyle, $version, $arch],
+       bin        => ['bin'],
+       script     => ['bin'],
+       bindoc     => ['man', 'man1'],
+       libdoc     => ['man', 'man3'],
+       binhtml    => ['html'],
+       libhtml    => ['html'],
+     },
      vendor => {
-               lib        => [@libstyle],
-               arch       => [@libstyle, $version, $arch],
-               bin        => ['bin'],
-               script     => ['bin'],
-               bindoc     => ['man', 'man1'],
-               libdoc     => ['man', 'man3'],
-               binhtml    => ['html'],
-               libhtml    => ['html'],
-              },
+       lib        => [@libstyle],
+       arch       => [@libstyle, $version, $arch],
+       bin        => ['bin'],
+       script     => ['bin'],
+       bindoc     => ['man', 'man1'],
+       libdoc     => ['man', 'man3'],
+       binhtml    => ['html'],
+       libhtml    => ['html'],
+     },
      site => {
-             lib        => [@libstyle, 'site_perl'],
-             arch       => [@libstyle, 'site_perl', $version, $arch],
-             bin        => ['bin'],
-             script     => ['bin'],
-             bindoc     => ['man', 'man1'],
-             libdoc     => ['man', 'man3'],
-             binhtml    => ['html'],
-             libhtml    => ['html'],
-            },
+       lib        => [@libstyle, 'site_perl'],
+       arch       => [@libstyle, 'site_perl', $version, $arch],
+       bin        => ['bin'],
+       script     => ['bin'],
+       bindoc     => ['man', 'man1'],
+       libdoc     => ['man', 'man3'],
+       binhtml    => ['html'],
+       libhtml    => ['html'],
+     },
     };
     return $p
 }
@@ -523,24 +525,24 @@ sub _discover_perl_interpreter {
 
 # Adapted from IPC::Cmd::can_run()
 sub find_command {
-    my ($self, $command) = @_;
+  my ($self, $command) = @_;
 
-    if( File::Spec->file_name_is_absolute($command) ) {
-        return $self->_maybe_command($command);
+  if( File::Spec->file_name_is_absolute($command) ) {
+    return $self->_maybe_command($command);
 
-    } else {
-        for my $dir ( File::Spec->path ) {
-            my $abs = File::Spec->catfile($dir, $command);
-            return $abs if $abs = $self->_maybe_command($abs);
-        }
+  } else {
+    for my $dir ( File::Spec->path ) {
+      my $abs = File::Spec->catfile($dir, $command);
+      return $abs if $abs = $self->_maybe_command($abs);
     }
+  }
 }
 
 # Copied from ExtUtils::MM_Unix::maybe_command
 sub _maybe_command {
-    my($self,$file) = @_;
-    return $file if -x $file && ! -d $file;
-    return;
+  my($self,$file) = @_;
+  return $file if -x $file && ! -d $file;
+  return;
 }
 
 sub _is_interactive {
@@ -657,7 +659,7 @@ sub features     {
   while (my ($name, $info) = each %auto_features) {
     my $failures = $self->prereq_failures($info);
     my $disabled = grep( /^(?:\w+_)?(?:requires|conflicts)$/,
-                        keys %$failures ) ? 1 : 0;
+                        keys %$failures ) ? 1 : 0;
     $features{$name} = $disabled ? 0 : 1;
   }
   %features = (%features, $ph->{features}->access());
@@ -705,22 +707,22 @@ sub ACTION_config_data {
   my $notes_pm = File::Spec->catfile($self->blib, 'lib', split /::/, "$notes_name.pm");
 
   return if $self->up_to_date(['Build.PL',
-                              $self->config_file('config_data'),
-                              $self->config_file('features')
-                             ], $notes_pm);
+                               $self->config_file('config_data'),
+                               $self->config_file('features')
+                              ], $notes_pm);
 
   $self->log_verbose("Writing config notes to $notes_pm\n");
   File::Path::mkpath(File::Basename::dirname($notes_pm));
 
   Module::Build::Notes->write_config_data
-      (
-       file => $notes_pm,
-       module => $module_name,
-       config_module => $notes_name,
-       config_data => scalar $self->config_data,
-       feature => scalar $self->{phash}{features}->access(),
-       auto_features => scalar $self->auto_features,
-      );
+    (
+     file => $notes_pm,
+     module => $module_name,
+     config_module => $notes_name,
+     config_data => scalar $self->config_data,
+     feature => scalar $self->{phash}{features}->access(),
+     auto_features => scalar $self->auto_features,
+    );
 }
 
 ########################################################################
@@ -1173,7 +1175,7 @@ sub dist_version_from {
   my $p = $self->{properties};
   if ($self->module_name) {
     $p->{dist_version_from} ||=
-       join( '/', 'lib', split(/::/, $self->module_name) ) . '.pm';
+      join( '/', 'lib', split(/::/, $self->module_name) ) . '.pm';
   }
   return $p->{dist_version_from} || undef;
 }
@@ -1557,17 +1559,17 @@ sub prereq_failures {
       my $status = $self->check_installed_status($modname, $spec);
 
       if ($type =~ /^(?:\w+_)?conflicts$/) {
-       next if !$status->{ok};
-       $status->{conflicts} = delete $status->{need};
-       $status->{message} = "$modname ($status->{have}) conflicts with this distribution";
+        next if !$status->{ok};
+        $status->{conflicts} = delete $status->{need};
+        $status->{message} = "$modname ($status->{have}) conflicts with this distribution";
 
       } elsif ($type =~ /^(?:\w+_)?recommends$/) {
-       next if $status->{ok};
-       $status->{message} = (!ref($status->{have}) && $status->{have} eq '<none>'
-                             ? "$modname is not installed"
-                             : "$modname ($status->{have}) is installed, but we prefer to have $spec");
+        next if $status->{ok};
+        $status->{message} = (!ref($status->{have}) && $status->{have} eq '<none>'
+                              ? "$modname is not installed"
+                              : "$modname ($status->{have}) is installed, but we prefer to have $spec");
       } else {
-       next if $status->{ok};
+        next if $status->{ok};
       }
 
       $out->{$type}{$modname} = $status;
@@ -1986,8 +1988,8 @@ sub check_manifest {
   $self->log_verbose("Checking whether your kit is complete...\n");
   if (my @missed = ExtUtils::Manifest::manicheck()) {
     $self->log_warn("WARNING: the following files are missing in your kit:\n",
-                   "\t", join("\n\t", @missed), "\n",
-                   "Please inform the author.\n\n");
+                    "\t", join("\n\t", @missed), "\n",
+                    "Please inform the author.\n\n");
   } else {
     $self->log_verbose("Looks good\n\n");
   }
@@ -2077,8 +2079,8 @@ sub unparse_args {
   my @out;
   while (my ($k, $v) = each %$args) {
     push @out, (UNIVERSAL::isa($v, 'HASH')  ? map {+"--$k", "$_=$v->{$_}"} keys %$v :
-               UNIVERSAL::isa($v, 'ARRAY') ? map {+"--$k", $_} @$v :
-               ("--$k", $v));
+                UNIVERSAL::isa($v, 'ARRAY') ? map {+"--$k", $_} @$v :
+                ("--$k", $v));
   }
   return @out;
 }
@@ -2119,12 +2121,14 @@ sub _translate_option {
   return $opt;
 }
 
+my %singular_argument = map { ($_ => 1) } qw/install_base prefix destdir installdir verbose quiet uninst debug sign/;
+
 sub _read_arg {
   my ($self, $args, $key, $val) = @_;
 
   $key = $self->_translate_option($key);
 
-  if ( exists $args->{$key} ) {
+  if ( exists $args->{$key} and not $singular_argument{$key} ) {
     $args->{$key} = [ $args->{$key} ] unless ref $args->{$key};
     push @{$args->{$key}}, $val;
   } else {
@@ -2215,7 +2219,7 @@ sub read_args {
     $args{$_} = [ $args{$_} ] unless ref $args{$_};
     foreach my $arg ( @{$args{$_}} ) {
       $arg =~ /($opt_re)=(.*)/
-       or die "Malformed '$_' argument: '$arg' should be something like 'foo=bar'";
+        or die "Malformed '$_' argument: '$arg' should be something like 'foo=bar'";
       $hash{$1} = $2;
     }
     $args{$_} = \%hash;
@@ -2234,10 +2238,10 @@ sub read_args {
       next if !defined $args{$key}{$subkey};
       my $subkey_ext = $self->_detildefy($args{$key}{$subkey});
       if ( $subkey eq 'html' ) { # translate for compatibility
-       $args{$key}{binhtml} = $subkey_ext;
-       $args{$key}{libhtml} = $subkey_ext;
+        $args{$key}{binhtml} = $subkey_ext;
+        $args{$key}{libhtml} = $subkey_ext;
       } else {
-       $args{$key}{$subkey} = $subkey_ext;
+        $args{$key}{$subkey} = $subkey_ext;
       }
     }
   }
@@ -2267,8 +2271,8 @@ sub _merge_arglist {
     if ( exists( $opts1->{$key} ) ) {
       if ( ref( $val ) eq 'HASH' ) {
         while (my ($k, $v) = each %$val) {
-         $new_opts{$key}{$k} = $v unless exists( $opts1->{$key}{$k} );
-       }
+          $new_opts{$key}{$k} = $v unless exists( $opts1->{$key}{$k} );
+        }
       }
     } else {
       $new_opts{$key} = $val
@@ -2318,8 +2322,8 @@ sub read_modulebuildrc {
     $modulebuildrc = $ENV{MODULEBUILDRC};
   } elsif ( exists($ENV{MODULEBUILDRC}) ) {
     $self->log_warn("WARNING: Can't find resource file " .
-                   "'$ENV{MODULEBUILDRC}' defined in environment.\n" .
-                   "No options loaded\n");
+                    "'$ENV{MODULEBUILDRC}' defined in environment.\n" .
+                    "No options loaded\n");
     return ();
   } else {
     $modulebuildrc = $self->_find_user_config( '.modulebuildrc' );
@@ -2337,9 +2341,9 @@ sub read_modulebuildrc {
 
     if ( $line =~ /^\S/ ) {
       if ( $buffer ) {
-       my( $action, $options ) = split( /\s+/, $buffer, 2 );
-       $options{$action} .= $options . ' ';
-       $buffer = '';
+        my( $action, $options ) = split( /\s+/, $buffer, 2 );
+        $options{$action} .= $options . ' ';
+        $buffer = '';
       }
       $buffer = $line;
     } else {
@@ -2394,9 +2398,9 @@ sub merge_args {
                    $self->{args}               ;
 
       if ($additive{$key}) {
-       $add_to->{$_} = $val->{$_} foreach keys %$val;
+        $add_to->{$_} = $val->{$_} foreach keys %$val;
       } else {
-       $add_to->{$key} = $val;
+        $add_to->{$key} = $val;
       }
     }
   }
@@ -2687,7 +2691,7 @@ sub generic_test {
 
   # Make sure we test the module in blib/
   unshift @INC, (File::Spec->catdir($p->{base_dir}, $self->blib, 'lib'),
-                File::Spec->catdir($p->{base_dir}, $self->blib, 'arch'));
+                 File::Spec->catdir($p->{base_dir}, $self->blib, 'arch'));
 
   # Filter out nonsensical @INC entries - some versions of
   # Test::Harness will really explode the number of entries here
@@ -2825,7 +2829,7 @@ sub ACTION_testcover {
 
     $self->do_system(qw(cover -delete))
       unless $self->up_to_date($pm_files,         $cover_files)
-         && $self->up_to_date($self->test_files, $cover_files);
+          && $self->up_to_date($self->test_files, $cover_files);
   }
 
   local $Test::Harness::switches    =
@@ -2996,14 +3000,14 @@ sub find_PL_files {
 
     if (UNIVERSAL::isa($files, 'ARRAY')) {
       return { map {$_, [/^(.*)\.PL$/]}
-              map $self->localize_file_path($_),
-              @$files };
+               map $self->localize_file_path($_),
+               @$files };
 
     } elsif (UNIVERSAL::isa($files, 'HASH')) {
       my %out;
       while (my ($file, $to) = each %$files) {
-       $out{ $self->localize_file_path($file) } = [ map $self->localize_file_path($_),
-                                                    ref $to ? @$to : ($to) ];
+        $out{ $self->localize_file_path($file) } = [ map $self->localize_file_path($_),
+                                                     ref $to ? @$to : ($to) ];
       }
       return \%out;
 
@@ -3042,8 +3046,8 @@ sub find_test_files {
   if (my $files = $p->{test_files}) {
     $files = [keys %$files] if UNIVERSAL::isa($files, 'HASH');
     $files = [map { -d $_ ? $self->expand_test_dir($_) : $_ }
-             map glob,
-             $self->split_like_shell($files)];
+              map glob,
+              $self->split_like_shell($files)];
 
     # Always given as a Unix file spec.
     return [ map $self->localize_file_path($_), @$files ];
@@ -3067,9 +3071,9 @@ sub _find_file_by_type {
 
   return {} unless -d $dir;
   return { map {$_, $_}
-          map $self->localize_file_path($_),
-          grep !/\.\#/,
-          @{ $self->rscan_dir($dir, $self->file_qr("\\.$type\$")) } };
+           map $self->localize_file_path($_),
+           grep !/\.\#/,
+           @{ $self->rscan_dir($dir, $self->file_qr("\\.$type\$")) } };
 }
 
 sub localize_file_path {
@@ -3192,8 +3196,8 @@ sub _is_default_installable {
   my $type = shift;
   return ( $self->install_destination($type) &&
            ( $self->install_path($type) ||
-            $self->install_sets($self->installdirs)->{$type} )
-        ) ? 1 : 0;
+             $self->install_sets($self->installdirs)->{$type} )
+         ) ? 1 : 0;
 }
 
 sub _is_ActivePerl {
@@ -3248,7 +3252,7 @@ sub manify_bin_pods {
     # This is expected to change in a future version (Pod::Simple > 3.03).
     my $parser  = Pod::Man->new( section => 1 ); # binaries go in section 1
     my $manpage = $self->man1page_name( $file ) . '.' .
-                 $self->config( 'man1ext' );
+                  $self->config( 'man1ext' );
     my $outfile = File::Spec->catfile($mandir, $manpage);
     next if $self->up_to_date( $file, $outfile );
     $self->log_verbose("Manifying $file -> $outfile\n");
@@ -3273,7 +3277,7 @@ sub manify_lib_pods {
     # This is expected to change in a future version (Pod::Simple > 3.03).
     my $parser  = Pod::Man->new( section => 3 ); # libraries go in section 3
     my $manpage = $self->man3page_name( $relfile ) . '.' .
-                 $self->config( 'man3ext' );
+                  $self->config( 'man3ext' );
     my $outfile = File::Spec->catfile( $mandir, $manpage);
     next if $self->up_to_date( $file, $outfile );
     $self->log_verbose("Manifying $file -> $outfile\n");
@@ -3292,7 +3296,7 @@ sub _find_pods {
 
     FILE: foreach my $file ( @{ $self->rscan_dir( $dir ) } ) {
       foreach my $regexp ( @{ $args{exclude} } ) {
-       next FILE if $file =~ $regexp;
+        next FILE if $file =~ $regexp;
       }
       $files{$file} = File::Spec->abs2rel($file, $dir) if $self->contains_pod( $file )
     }
@@ -3542,8 +3546,8 @@ sub ACTION_diff {
       my $installed = Module::Build::ModuleInfo->find_module_by_name(
                         join('::', @parts), \@myINC );
       if (not $installed) {
-       print "Only in lib: $file\n";
-       next;
+        print "Only in lib: $file\n";
+        next;
       }
 
       my $status = File::Compare::compare($installed, $file);
@@ -3551,9 +3555,9 @@ sub ACTION_diff {
       die "Can't compare $installed and $file: $!" if $status == -1;
 
       if ($file =~ $text_suffix) {
-       $self->do_system('diff', @flags, $installed, $file);
+        $self->do_system('diff', @flags, $installed, $file);
       } else {
-       print "Binary files $file and $installed differ\n";
+        print "Binary files $file and $installed differ\n";
       }
     }
   }
@@ -3742,12 +3746,12 @@ sub ACTION_ppmdist {
     foreach my $file ( @$files ) {
       next unless -f $file;
       my $rel_file =
-       File::Spec->abs2rel( File::Spec->rel2abs( $file ),
-                            File::Spec->rel2abs( $dir  ) );
+        File::Spec->abs2rel( File::Spec->rel2abs( $file ),
+                             File::Spec->rel2abs( $dir  ) );
       my $to_file  =
-       File::Spec->catfile( $ppm, 'blib',
-                           exists( $types{$type} ) ? $types{$type} : $type,
-                           $rel_file );
+        File::Spec->catfile( $ppm, 'blib',
+                            exists( $types{$type} ) ? $types{$type} : $type,
+                            $rel_file );
       $self->copy_if_modified( from => $file, to => $to_file );
     }
   }
@@ -3996,14 +4000,14 @@ EOF
 
       my $old_parse_file;
       $old_parse_file = \&{"Pod::Simple::parse_file"}
-       and
+        and
       local *{"Pod::Simple::parse_file"} = sub {
-       my $self = shift;
-       $self->output_fh($_[1]) if $_[1];
-       $self->$old_parse_file($_[0]);
+        my $self = shift;
+        $self->output_fh($_[1]) if $_[1];
+        $self->$old_parse_file($_[0]);
       }
         if $Pod::Text::VERSION
-         == 3.01; # Split line to avoid evil version-finder
+          == 3.01; # Split line to avoid evil version-finder
 
       Pod::Text::pod2text( $docfile, $fh );
 
@@ -4083,14 +4087,14 @@ sub ACTION_disttest {
   $self->_do_in_dir
     ( $self->dist_dir,
       sub {
-       # XXX could be different names for scripts
-
-       $self->run_perl_script('Build.PL') # XXX Should this be run w/ --nouse-rcfile
-         or die "Error executing 'Build.PL' in dist directory: $!";
-       $self->run_perl_script('Build')
-         or die "Error executing 'Build' in dist directory: $!";
-       $self->run_perl_script('Build', [], ['test'])
-         or die "Error executing 'Build test' in dist directory";
+        # XXX could be different names for scripts
+
+        $self->run_perl_script('Build.PL') # XXX Should this be run w/ --nouse-rcfile
+          or die "Error executing 'Build.PL' in dist directory: $!";
+        $self->run_perl_script('Build')
+          or die "Error executing 'Build' in dist directory: $!";
+        $self->run_perl_script('Build', [], ['test'])
+          or die "Error executing 'Build test' in dist directory";
       });
 }
 
@@ -4729,7 +4733,7 @@ sub prepare_metadata {
   my $pkgs = eval { $self->find_dist_packages };
   if ($@) {
     $self->log_warn("$@\nWARNING: Possible missing or corrupt 'MANIFEST' file.\n" .
-                   "Nothing to enter for 'provides' field in metafile.\n");
+                    "Nothing to enter for 'provides' field in metafile.\n");
   } else {
     $node->{provides} = $pkgs if %$pkgs;
   }
@@ -4741,9 +4745,9 @@ sub prepare_metadata {
   $add_node->('generated_by', "Module::Build version $Module::Build::VERSION");
 
   $add_node->('meta-spec',
-             {version => '1.4',
-              url     => 'http://module-build.sourceforge.net/META-spec-v1.4.html',
-             });
+              {version => '1.4',
+               url     => 'http://module-build.sourceforge.net/META-spec-v1.4.html',
+              });
 
   while (my($k, $v) = each %{$self->meta_add}) {
     $add_node->($k, $v);
@@ -4834,42 +4838,42 @@ sub find_packages_in_files {
     if ( exists( $prime{$package} ) ) { # primary package selected
 
       if ( $result->{err} ) {
-       # Use the selected primary package, but there are conflicting
-       # errors among multiple alternative packages that need to be
-       # reported
+        # Use the selected primary package, but there are conflicting
+        # errors among multiple alternative packages that need to be
+        # reported
         $self->log_warn(
-         "Found conflicting versions for package '$package'\n" .
-         "  $prime{$package}{file} ($prime{$package}{version})\n" .
-         $result->{err}
+          "Found conflicting versions for package '$package'\n" .
+          "  $prime{$package}{file} ($prime{$package}{version})\n" .
+          $result->{err}
         );
 
       } elsif ( defined( $result->{version} ) ) {
-       # There is a primary package selected, and exactly one
-       # alternative package
-
-       if ( exists( $prime{$package}{version} ) &&
-            defined( $prime{$package}{version} ) ) {
-         # Unless the version of the primary package agrees with the
-         # version of the alternative package, report a conflict
-         if ( $self->compare_versions( $prime{$package}{version}, '!=',
-                                       $result->{version} ) ) {
+        # There is a primary package selected, and exactly one
+        # alternative package
+
+        if ( exists( $prime{$package}{version} ) &&
+             defined( $prime{$package}{version} ) ) {
+          # Unless the version of the primary package agrees with the
+          # version of the alternative package, report a conflict
+          if ( $self->compare_versions( $prime{$package}{version}, '!=',
+                                        $result->{version} ) ) {
             $self->log_warn(
               "Found conflicting versions for package '$package'\n" .
-             "  $prime{$package}{file} ($prime{$package}{version})\n" .
-             "  $result->{file} ($result->{version})\n"
+              "  $prime{$package}{file} ($prime{$package}{version})\n" .
+              "  $result->{file} ($result->{version})\n"
             );
-         }
+          }
 
-       } else {
-         # The prime package selected has no version so, we choose to
-         # use any alternative package that does have a version
-         $prime{$package}{file}    = $result->{file};
-         $prime{$package}{version} = $result->{version};
-       }
+        } else {
+          # The prime package selected has no version so, we choose to
+          # use any alternative package that does have a version
+          $prime{$package}{file}    = $result->{file};
+          $prime{$package}{version} = $result->{version};
+        }
 
       } else {
-       # no alt package found with a version, but we have a prime
-       # package so we use it whether it has a version or not
+        # no alt package found with a version, but we have a prime
+        # package so we use it whether it has a version or not
       }
 
     } else { # No primary package was selected, use the best alternative
@@ -4877,7 +4881,7 @@ sub find_packages_in_files {
       if ( $result->{err} ) {
         $self->log_warn(
           "Found conflicting versions for package '$package'\n" .
-         $result->{err}
+          $result->{err}
         );
       }
 
@@ -4885,14 +4889,18 @@ sub find_packages_in_files {
       # something rather than nothing
       $prime{$package}{file}    = $result->{file};
       $prime{$package}{version} = $result->{version}
-         if defined( $result->{version} );
+          if defined( $result->{version} );
     }
   }
 
-  # Normalize versions.  Can't use exists() here because of bug in YAML::Node.
-  # XXX "bug in YAML::Node" comment seems irrelvant -- dagolden, 2009-05-18
-  for (grep defined $_->{version}, values %prime) {
-    $_->{version} = $self->normalize_version( $_->{version} );
+  # Normalize versions or delete them if undef/0
+  for my $provides ( values %prime ) {
+    if ( $provides->{version} ) {
+      $provides->{version} = $self->normalize_version( $provides->{version} )
+    }
+    else {
+      delete $provides->{version};
+    }
   }
 
   return \%prime;
@@ -4910,16 +4918,16 @@ sub _resolve_module_versions {
   my $err = '';
     foreach my $p ( @$packages ) {
       if ( defined( $p->{version} ) ) {
-       if ( defined( $version ) ) {
-         if ( $self->compare_versions( $version, '!=', $p->{version} ) ) {
-           $err .= "  $p->{file} ($p->{version})\n";
-         } else {
-           # same version declared multiple times, ignore
-         }
-       } else {
-         $file    = $p->{file};
-         $version = $p->{version};
-       }
+        if ( defined( $version ) ) {
+          if ( $self->compare_versions( $version, '!=', $p->{version} ) ) {
+            $err .= "  $p->{file} ($p->{version})\n";
+          } else {
+            # same version declared multiple times, ignore
+          }
+        } else {
+          $file    = $p->{file};
+          $version = $p->{version};
+        }
       }
       $file ||= $p->{file} if defined( $p->{file} );
     }
@@ -5106,9 +5114,9 @@ sub prefix_relative {
   my $relpath = $self->install_sets($installdirs)->{$type};
 
   return $self->_prefixify($relpath,
-                          $self->original_prefix($installdirs),
-                          $type,
-                         );
+                           $self->original_prefix($installdirs),
+                           $type,
+                          );
 }
 
 # Translated from ExtUtils::MM_Unix::prefixify()
@@ -5262,8 +5270,8 @@ sub rscan_dir {
   local $_; # find() can overwrite $_, so protect ourselves
   my $subr = !$pattern ? sub {push @result, $File::Find::name} :
              !ref($pattern) || (ref $pattern eq 'Regexp') ? sub {push @result, $File::Find::name if /$pattern/} :
-            ref($pattern) eq 'CODE' ? sub {push @result, $File::Find::name if $pattern->()} :
-            die "Unknown pattern type";
+             ref($pattern) eq 'CODE' ? sub {push @result, $File::Find::name if $pattern->()} :
+             die "Unknown pattern type";
 
   File::Find::find({wanted => $subr, no_chdir => 1}, $dir);
   return \@result;
@@ -5329,11 +5337,11 @@ sub compile_c {
   return $obj_file if $self->up_to_date($file, $obj_file);
 
   $b->compile(source => $file,
-             defines => $args{defines},
-             object_file => $obj_file,
-             include_dirs => $self->include_dirs,
-             extra_compiler_flags => $self->extra_compiler_flags,
-            );
+              defines => $args{defines},
+              object_file => $obj_file,
+              include_dirs => $self->include_dirs,
+              extra_compiler_flags => $self->extra_compiler_flags,
+             );
 
   return $obj_file;
 }
@@ -5348,7 +5356,7 @@ sub link_c {
 
   return $spec->{lib_file}
     if $self->up_to_date([$spec->{obj_file}, @$objects],
-                        $spec->{lib_file});
+                         $spec->{lib_file});
 
   my $module_name = $spec->{module_name} || $self->module_name;
 
@@ -5369,10 +5377,10 @@ sub compile_xs {
   if (eval {require ExtUtils::ParseXS; 1}) {
 
     ExtUtils::ParseXS::process_file(
-                                   filename => $file,
-                                   prototypes => 0,
-                                   output => $args{outfile},
-                                  );
+                                    filename => $file,
+                                    prototypes => 0,
+                                    output => $args{outfile},
+                                   );
   } else {
     # Ok, I give up.  Just use backticks.
 
@@ -5393,7 +5401,7 @@ sub compile_xs {
     my $perl = $self->{properties}{perl};
 
     my @command = ($perl, "-I".$cf->get('installarchlib'), "-I".$cf->get('installprivlib'), $xsubpp, '-noprototypes',
-                  @typemaps, $file);
+                   @typemaps, $file);
 
     $self->log_info("@command\n");
     my $fh = IO::File->new("> $args{outfile}") or die "Couldn't write $args{outfile}: $!";
@@ -5480,18 +5488,18 @@ sub _infer_xs_spec {
   $spec{module_name} = join( '::', (@d, $file_base) );
 
   $spec{archdir} = File::Spec->catdir($self->blib, 'arch', 'auto',
-                                     @d, $file_base);
+                                      @d, $file_base);
 
   $spec{bs_file} = File::Spec->catfile($spec{archdir}, "${file_base}.bs");
 
   $spec{lib_file} = File::Spec->catfile($spec{archdir},
-                                       "${file_base}.".$cf->get('dlext'));
+                                        "${file_base}.".$cf->get('dlext'));
 
   $spec{c_file} = File::Spec->catfile( $spec{src_dir},
-                                      "${file_base}.c" );
+                                       "${file_base}.c" );
 
   $spec{obj_file} = File::Spec->catfile( $spec{src_dir},
-                                        "${file_base}".$cf->get('obj_ext') );
+                                         "${file_base}".$cf->get('obj_ext') );
 
   return \%spec;
 }
@@ -5514,7 +5522,7 @@ sub process_xs {
   # .c -> .o
   my $v = $self->dist_version;
   $self->compile_c($spec->{c_file},
-                  defines => {VERSION => qq{"$v"}, XS_VERSION => qq{"$v"}});
+                   defines => {VERSION => qq{"$v"}, XS_VERSION => qq{"$v"}});
 
   # archdir
   File::Path::mkpath($spec->{archdir}, 0, oct(777)) unless -d $spec->{archdir};
@@ -5559,9 +5567,9 @@ sub do_system {
 sub copy_if_modified {
   my $self = shift;
   my %args = (@_ > 3
-             ? ( @_ )
-             : ( from => shift, to_dir => shift, flatten => shift )
-            );
+              ? ( @_ )
+              : ( from => shift, to_dir => shift, flatten => shift )
+             );
   $args{verbose} = !$self->quiet
     unless exists $args{verbose};
 
@@ -5578,8 +5586,8 @@ sub copy_if_modified {
     $to_path = $args{to};
   } elsif (defined $args{to_dir} and length $args{to_dir}) {
     $to_path = File::Spec->catfile( $args{to_dir}, $args{flatten}
-                                   ? File::Basename::basename($file)
-                                   : $file );
+                                    ? File::Basename::basename($file)
+                                    : $file );
   } else {
     die "No 'to' or 'to_dir' parameter given to copy_if_modified";
   }
@@ -5645,8 +5653,8 @@ sub dir_contains {
   return 0 if @second_dirs < @first_dirs;
 
   my $is_same = ( $self->_case_tolerant
-                 ? sub {lc(shift()) eq lc(shift())}
-                 : sub {shift() eq shift()} );
+                  ? sub {lc(shift()) eq lc(shift())}
+                  : sub {shift() eq shift()} );
 
   while (@first_dirs) {
     return 0 unless $is_same->(shift @first_dirs, shift @second_dirs);
index 452dfb9..dc8ad70 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Compat;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 
 use File::Basename ();
 use File::Spec;
index 9f3dc67..d65f28e 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Config;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Config;
 
index 80af7c4..e318a65 100644 (file)
@@ -1,7 +1,7 @@
 package Module::Build::Cookbook;
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 
 
 =head1 NAME
index 8191410..8c2a211 100644 (file)
@@ -1,7 +1,7 @@
 package Module::Build::Dumper;
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 
 # This is just a split-out of a wrapper function to do Data::Dumper
 # stuff "the right way".  See:
index a4c6685..53bd82e 100644 (file)
@@ -4,7 +4,7 @@ package Module::Build::ModuleInfo;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 
 require Module::Metadata;
index 9a80a59..c7611b6 100644 (file)
@@ -4,7 +4,7 @@ package Module::Build::Notes;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Data::Dumper;
 use IO::File;
index 62e8b04..c0d6c33 100644 (file)
@@ -5,7 +5,7 @@ use Config;
 use vars qw($VERSION);
 use IO::File;
 
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 
 # This code is mostly borrowed from ExtUtils::MM_Unix 6.10_03, with a
index e088c84..c83eee7 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::Amiga;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Base;
 
index 8669036..2a770dd 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::Default;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Base;
 
index 0cd5264..ef691ec 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::EBCDIC;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Base;
 
index 21c757b..681e108 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::MPEiX;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Base;
 
index 3f49c82..2f1034c 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::MacOS;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Base;
 use vars qw(@ISA);
index 4717481..75a3c78 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::RiscOS;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Base;
 
index 611c2cf..2f34385 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::Unix;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Base;
 
index 4842e6c..b253934 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::VMS;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Base;
 use Config;
index bec44da..e9cf5ee 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::VOS;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Base;
 
index 5094c41..b117019 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::Windows;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 
 use Config;
index cd4cf24..9472aab 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::aix;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Platform::Unix;
 
index 2ecd9ae..51a9753 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::cygwin;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Platform::Unix;
 
index e7d256a..1e3b094 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::darwin;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Platform::Unix;
 
index d943671..abe402e 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::Platform::os2;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use Module::Build::Platform::Unix;
 
index 8230192..456f8de 100644 (file)
@@ -2,7 +2,7 @@ package Module::Build::PodParser;
 
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 use vars qw(@ISA);
 
@@ -28,7 +28,7 @@ sub parse_from_filehandle {
   local $_;
   while (<$fh>) {
     next unless /^=(?!cut)/ .. /^=cut/;  # in POD
-    last if ($self->{abstract}) = /^  (?:  [a-z:]+  \s+ - \s+  )  (.*\S)  /ix;
+    last if ($self->{abstract}) = /^  (?:  [a-z0-9:]+  \s+ - \s+  )  (.*\S)  /ix;
   }
 
   my @author;
index c831671..8c53ea8 100644 (file)
@@ -1,7 +1,7 @@
 package inc::latest;
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 
 use Carp;
index 9e4d5d7..cf7a718 100644 (file)
@@ -1,7 +1,7 @@
 package inc::latest::private;
 use strict;
 use vars qw($VERSION);
-$VERSION = '0.39_01';
+$VERSION = '0.40';
 $VERSION = eval $VERSION;
 
 use File::Spec;
index ffe8afc..2d487f6 100644 (file)
@@ -2,7 +2,7 @@
 
 use strict;
 use lib 't/lib';
-use MBTest tests => 34;
+use MBTest tests => 35;
 
 blib_load('Module::Build');
 
@@ -166,6 +166,10 @@ is $@, '';
                                              '--install_base', $basedir])};
   is $@, '';
 
+  eval {$mb->run_perl_script($cmd, [], ['install', '--destdir', $destdir,
+                                             '--install_base', $basedir, '--install_base', $basedir])};
+  is $@, '';
+
   $install_to = File::Spec->catfile($destdir, $libdir, $dist->name ) . '.pm';
   is -e $install_to, 1, "Look for file at $install_to";
 
index a495f15..4401e1a 100644 (file)
@@ -2,7 +2,7 @@
 
 use strict;
 use lib 't/lib';
-use MBTest tests => 52;
+use MBTest tests => 53;
 
 blib_load('Module::Build');
 blib_load('Module::Build::ConfigData');
@@ -296,7 +296,20 @@ is_deeply($provides,
                      version => '1.23' }}); # XXX should be 2.34?
 like( $err, qr/already declared/, '  with conflicting versions reported' );
 
+# Missing version should not show up in provides as version "0"
 
+$dist->change_file( 'lib/Simple.pm', <<'---' );
+package Foo;
+$VERSION = undef;
+1;
+---
+$dist->regen( clean => 1 );
+$err = stderr_of( sub { $mb = new_build() } );
+$err = stderr_of( sub { $provides = $mb->find_dist_packages } );
+is_deeply($provides,
+    {'Foo' => { file => $simple_file } },
+    "undef \$VERSION is omitted from 'provides'"
+);
 
 ############################## Multiple Modules