lib/ExtUtils/t/hints.t See if hint files are honored.
lib/ExtUtils/t/Installapi2.t See if new api for ExtUtils::Install::install() works
lib/ExtUtils/t/INSTALL_BASE.t Test INSTALL_BASE in MakeMaker
+lib/ExtUtils/t/installed_file.t Test for ExtUtils::MakeMaker
lib/ExtUtils/t/Installed.t See if ExtUtils::Installed works
lib/ExtUtils/t/Install.t See if ExtUtils::Install works
lib/ExtUtils/t/INST_PREFIX.t See if MakeMaker can apply PREFIXs
'ExtUtils::MakeMaker' =>
{
'MAINTAINER' => 'mschwern',
- 'DISTRIBUTION' => 'MSCHWERN/ExtUtils-MakeMaker-6.53_02.tar.gz',
+ 'DISTRIBUTION' => 'MSCHWERN/ExtUtils-MakeMaker-6.53_03.tar.gz',
# note that t/lib/TieOut.pm is included in
# more than one distro
'FILES' => q[lib/ExtUtils/{Liblist,MakeMaker,Mkbootstrap,Mksymlists,MM*,MY,testlib}.pm
+6.53_03 Thu Jul 2 14:47:45 PDT 2009
+ Bug Fixes
+ * You'd get a warning if you had a PREREQ_PM on a module with no $VERSION
+ like Config (broken in 6.51_01) [rt.cpan.org 47448]
+
+ Test Fixes
+ * Upgrade the version of Test::More we ship with to 0.88.
+ * Fix MM_Cygwin.t for older Perls missing Cygwin::win_to_posix_path()
+ broken in 6.53_01.
+ * Fix miniperl.t for Windows. Our method of shutting off XS didn't
+ work for Win32.pm
+ * Old versions of version.pm, like what ships with OS X, dent Foo->VERSION
+ causing prereq.t to fail. [rt.cpan.org 47296]
+ * Add missing core test boilerplates
+ [blead e39d780342f3e91579069fdc80eda72bfe639ae7]
+
+
6.53_02 Sun Jun 7 19:24:56 PDT 2009
Test Fixes
* Stray use of Shell::Command broke older perls
our @EXPORT = qw(test_harness pod2man perllocal_install uninstall
warn_if_old_packlist);
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
my $Is_VMS = $^O eq 'VMS';
use strict;
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
use File::Spec;
require ExtUtils::Liblist::Kid;
# Broken out of MakeMaker from version 4.11
use strict;
-our $VERSION = 6.53_02;
+our $VERSION = 6.53_03;
use Config;
use Cwd 'cwd';
use strict;
use ExtUtils::MakeMaker::Config;
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
require ExtUtils::Liblist;
require ExtUtils::MakeMaker;
sub _is_win95 {
# miniperl might not have the Win32 functions available and we need
# to run in miniperl.
- return defined &Win32::IsWin95 ? Win32::IsWin95()
- : ! defined $ENV{SYSTEMROOT};
+ my $have_win32 = eval { require Win32 };
+ return $have_win32 && defined &Win32::IsWin95 ? Win32::IsWin95()
+ : ! defined $ENV{SYSTEMROOT};
}
my %Is = ();
package ExtUtils::MM_AIX;
use strict;
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
package ExtUtils::MM_Any;
use strict;
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
use Carp;
use File::Spec;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
=item os_flavor
require ExtUtils::MM_Win32;
our @ISA = qw( ExtUtils::MM_Unix );
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
=head1 NAME
use strict;
-our $VERSION = 6.53_02;
+our $VERSION = 6.53_03;
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Unix );
}
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
=head1 NAME
use strict;
-our $VERSION = 6.53_02;
+our $VERSION = 6.53_03;
sub new {
die <<'UNSUPPORTED';
use ExtUtils::MakeMaker::Config;
use File::Basename;
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
use ExtUtils::MakeMaker qw(neatvalue);
use File::Spec;
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
package ExtUtils::MM_QNX;
use strict;
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
package ExtUtils::MM_UWIN;
use strict;
-our $VERSION = 6.53_02;
+our $VERSION = 6.53_03;
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
# If we make $VERSION an our variable parse_version() breaks
use vars qw($VERSION);
-$VERSION = '6.53_02';
+$VERSION = '6.53_03';
require ExtUtils::MM_Any;
our @ISA = qw(ExtUtils::MM_Any);
use File::Basename;
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
package ExtUtils::MM_VOS;
use strict;
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
$ENV{EMXSHELL} = 'sh'; # to run `commands`
use strict;
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
use strict;
require ExtUtils::MM;
-our $VERSION = 6.53_02;
+our $VERSION = 6.53_03;
our @ISA = qw(ExtUtils::MM);
{
my @Prepend_parent;
my %Recognized_Att_Keys;
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
# Emulate something resembling CVS $Revision$
(our $Revision = $VERSION) =~ s{_}{};
my(%unsatisfied) = ();
foreach my $prereq (sort keys %{$self->{PREREQ_PM}}) {
- my $file = "$prereq.pm";
- $file =~ s{::}{/}g;
- my $path;
- for my $dir (@INC) {
- my $tmp = File::Spec->catfile($dir, $file);
- if( -r $tmp ) {
- $path = $tmp;
- last;
- }
- }
- my $pr_version = defined $path ? MM->parse_version($path) : 0;
+ my $installed_file = MM->_installed_file_for_module($prereq);
+ my $pr_version = 0;
+ $pr_version = MM->parse_version($installed_file) if $installed_file;
+ $pr_version = 0 if $pr_version eq 'undef';
# convert X.Y_Z alpha version #s to X.YZ for easier comparisons
$pr_version =~ s/(\d+)\.(\d+)_(\d+)/$1.$2$3/;
- if (!defined $path) {
+ if (!$installed_file) {
warn sprintf "Warning: prerequisite %s %s not found.\n",
$prereq, $self->{PREREQ_PM}{$prereq}
unless $self->{PREREQ_FATAL};
close $mfh or die "close $new for write: $!";
}
+
+=begin private
+
+=head3 _installed_file_for_module
+
+ my $file = MM->_installed_file_for_module($module);
+
+Return the first installed .pm $file associated with the $module. The
+one which will show up when you C<use $module>.
+
+$module is something like "strict" or "Test::More".
+
+=end private
+
+=cut
+
+sub _installed_file_for_module {
+ my $class = shift;
+ my $prereq = shift;
+
+ my $file = "$prereq.pm";
+ $file =~ s{::}{/}g;
+
+ my $path;
+ for my $dir (@INC) {
+ my $tmp = File::Spec->catfile($dir, $file);
+ if ( -r $tmp ) {
+ $path = $tmp;
+ last;
+ }
+ }
+
+ return $path;
+}
+
+
sub check_manifest {
print STDOUT "Checking if your kit is complete...\n";
require ExtUtils::Manifest;
use strict;
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
use Config ();
# There's just too much Dynaloader incest here to turn on strict vars.
use strict 'refs';
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
require Exporter;
our @ISA = ('Exporter');
our @ISA = qw(Exporter);
our @EXPORT = qw(&Mksymlists);
-our $VERSION = '6.53_02';
+our $VERSION = '6.53_03';
sub Mksymlists {
my(%spec) = @_;
# Tests for correct handling of maybe_command in /cygdrive/*
# and c:/*. $ENV{COMSPEC}, if it exists, should always be executable.
-
SKIP: {
- my $comspec = $ENV{COMSPEC};
- skip(q[$ENV{COMSPEC} does not exist], 1) unless $comspec;
+ skip "Needs Cygwin::win_to_posix_path()", 2 unless defined &Cygwin::win_to_posix_path;
- $comspec = Cygwin::win_to_posix_path($comspec);
+ SKIP: {
+ my $comspec = $ENV{COMSPEC};
+ skip(q[$ENV{COMSPEC} does not exist], 1) unless $comspec;
- ok MM->maybe_command($comspec), qq{'$comspec' should be executable"};
-}
+ $comspec = Cygwin::win_to_posix_path($comspec);
-# 'C:/' should *never* be executable, it's a directory.
-{
- my $cdrive = Cygwin::win_to_posix_path("C:/");
+ ok(MM->maybe_command($comspec), qq{'$comspec' should be executable"});
+ }
+
+ # 'C:/' should *never* be executable, it's a directory.
+ {
+ my $cdrive = Cygwin::win_to_posix_path("C:/");
- ok !MM->maybe_command($cdrive), qq{'$cdrive' should never be executable};
+ ok(!MM->maybe_command($cdrive), qq{'$cdrive' should never be executable});
+ }
}
# Our copy of Perl (with a unix-path) should always be executable.
-ok MM->maybe_command($Config{perlpath}), qq{'$Config{perlpath}' should be executable};
+ok(MM->maybe_command($Config{perlpath}), qq{'$Config{perlpath}' should be executable});
package FakeOut;
--- /dev/null
+#!/usr/bin/perl -w
+
+# Test MM->_installed_file_for_module()
+
+use strict;
+use warnings;
+
+use lib 't/lib';
+use ExtUtils::MakeMaker;
+use Test::More;
+use File::Spec;
+
+
+sub path_is {
+ my($have, $want, $name) = @_;
+
+ $have = File::Spec->canonpath($have);
+ $want = File::Spec->canonpath($want);
+
+ my $builder = Test::More->builder;
+ return $builder->is_eq( $have, $want, $name );
+}
+
+# Test when a module is not installed
+{
+ ok !MM->_installed_file_for_module("aaldkfjaldj"), "Module not installed";
+ ok !MM->_installed_file_for_module("aaldkfjaldj::dlajldkj");
+}
+
+# Try a single name module
+{
+ my $want = $INC{'strict.pm'};
+ path_is( MM->_installed_file_for_module("strict"), $want, "single name module" );
+}
+
+# And a tuple
+{
+ my $want = $INC{"Test/More.pm"};
+ path_is( MM->_installed_file_for_module("Test::More"), $want, "Foo::Bar style" );
+}
+
+
+done_testing(4);
#!/usr/bin/perl -w
+# Test our simulation of pod2man
+
BEGIN {
if ($ENV{PERL_CORE}) {
chdir 't' if -d 't';
- @INC = qw(../lib);
+ @INC = qw(../lib lib);
}
}
-# Test our simulation of pod2man
-
use strict;
use lib 't/lib';
);
is $warnings,
sprintf("Warning: prerequisite strict 99999 not found. We have %s.\n",
- strict->VERSION);
+ $strict::VERSION);
$warnings = '';
WriteMakefile(
is $warnings,
"Warning: prerequisite I::Do::Not::Exist 0 not found.\n".
sprintf("Warning: prerequisite strict 99999 not found. We have %s.\n",
- strict->VERSION);
+ $strict::VERSION);
$warnings = '';
eval {
use strict;
use warnings;
-our $VERSION = 6.53_02;
+our $VERSION = 6.53_03;
use Cwd;
use File::Spec;
require DynaLoader;
require XSLoader;
+# Things like Cwd key on this to decide if they're running miniperl
+delete $DynaLoader::{boot_DynaLoader};
+
+# This isn't 100%. Things like Win32.pm will crap out rather than
+# just not load. See ExtUtils::MM->_is_win95 for an example
no warnings 'redefine';
*DynaLoader::bootstrap = sub { confess "Tried to load XS for @_"; };
*XSLoader::load = sub { confess "Tried to load XS for @_"; };