'ExtUtils::MakeMaker' =>
{
'MAINTAINER' => 'mschwern',
- 'DISTRIBUTION' => 'MSCHWERN/ExtUtils-MakeMaker-6.55_02.tar.gz',
+ 'DISTRIBUTION' => 'MSCHWERN/ExtUtils-MakeMaker-6.55_03.tar.gz',
'FILES' => q[cpan/ExtUtils-MakeMaker],
'EXCLUDED' => [ qr{^t/lib/Test/},
qr{^inc/ExtUtils/},
+ Bug Fixes
+ * BUILD_REQUIRES will not be used when generating ppd, PRINT_PREREQ and
+ 'requires' section of META.yml (Alexandr Ciornii)
+
+ OS/2
+ * Better compatibility with miniperl [rt.cpan.org 48534] (Ilya Zakharevich)
+
6.55_02 Wed Aug 5 00:36:36 PDT 2009
Feature Changes
* PREFIX now applies to relative directories. This is a change since
+.gitignore
bin/instmodsh
Changes
+inc/ExtUtils/Command.pm
+inc/ExtUtils/Install.pm
+inc/ExtUtils/Installed.pm
+inc/ExtUtils/Manifest.pm
+inc/ExtUtils/MANIFEST.SKIP
+inc/ExtUtils/Packlist.pm
lib/ExtUtils/Command/MM.pm
lib/ExtUtils/Liblist.pm
lib/ExtUtils/Liblist/Kid.pm
lib/ExtUtils/testlib.pm
Makefile.PL
MANIFEST This list of files
+MANIFEST.SKIP
NOTES
PATCHING
README
t/lib/MakeMaker/Test/Setup/Recurs.pm
t/lib/MakeMaker/Test/Setup/XS.pm
t/lib/MakeMaker/Test/Utils.pm
+t/lib/Test/Builder.pm
+t/lib/Test/Builder/IO/Scalar.pm
+t/lib/Test/Builder/Module.pm
+t/lib/Test/More.pm
+t/lib/Test/Simple.pm
t/lib/TieIn.pm
t/lib/TieOut.pm
t/Liblist.t
t/writemakefile_args.t
t/xs.t
TODO
+META.yml Module meta-data (added by MakeMaker)
our @EXPORT = qw(test_harness pod2man perllocal_install uninstall
warn_if_old_packlist);
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
my $Is_VMS = $^O eq 'VMS';
use strict;
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
use File::Spec;
require ExtUtils::Liblist::Kid;
# Broken out of MakeMaker from version 4.11
use strict;
-our $VERSION = 6.55_02;
+our $VERSION = 6.55_03;
use Config;
use Cwd 'cwd';
use strict;
use ExtUtils::MakeMaker::Config;
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
require ExtUtils::Liblist;
require ExtUtils::MakeMaker;
package ExtUtils::MM_AIX;
use strict;
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
package ExtUtils::MM_Any;
use strict;
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
use Carp;
use File::Spec;
Implements PRINT_PREREQ, a slightly different version of PREREQ_PRINT
added by Redhat to, I think, support generating RPMs from Perl modules.
+Should not include BUILD_REQUIRES as RPMs do not incluide them.
+
Refactored out of MakeMaker->new().
=end private
sub _PRINT_PREREQ {
my $self = shift;
- my $prereqs= $self->_all_prereqs;
+ my $prereqs= $self->{PREREQ_PM};
my @prereq = map { [$_, $prereqs->{$_}] } keys %$prereqs;
if ( $self->{MIN_PERL_VERSION} ) {
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
=item os_flavor
require ExtUtils::MM_Win32;
our @ISA = qw( ExtUtils::MM_Unix );
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
=head1 NAME
use strict;
-our $VERSION = 6.55_02;
+our $VERSION = 6.55_03;
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Unix );
}
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
=head1 NAME
use strict;
-our $VERSION = 6.55_02;
+our $VERSION = 6.55_03;
sub new {
die <<'UNSUPPORTED';
use ExtUtils::MakeMaker::Config;
use File::Basename;
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
use ExtUtils::MakeMaker qw(neatvalue);
use File::Spec;
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
# print "emximp -o tmpimp$Config::Config{lib_ext} tmpimp.imp\n";
system "emximp -o tmpimp$Config::Config{lib_ext} tmpimp.imp"
and die "Cannot make import library: $!, \$?=$?";
- unlink <tmp_imp/*>;
+ # May be running under miniperl, so have no glob...
+ eval "unlink <tmp_imp/*>; 1" or system "rm tmp_imp/*";
system "cd tmp_imp; $Config::Config{ar} x ../tmpimp$Config::Config{lib_ext}"
and die "Cannot extract import objects: $!, \$?=$?";
}
package ExtUtils::MM_QNX;
use strict;
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
package ExtUtils::MM_UWIN;
use strict;
-our $VERSION = 6.55_02;
+our $VERSION = 6.55_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.55_02';
+$VERSION = '6.55_03';
require ExtUtils::MM_Any;
our @ISA = qw(ExtUtils::MM_Any);
is. $VERSION should be for all to see, so C<our $VERSION> or plain $VERSION
are okay, but C<my $VERSION> is not.
+C<<package Foo VERSION>> is also checked for. The first version
+declaration found is used, but this may change as it differs from how
+Perl does it.
+
parse_version() will try to C<use version> before checking for
C<$VERSION> so the following will work.
next if $inpod || /^\s*#/;
chop;
next if /^\s*(if|unless)/;
- next unless m{(?<!\\) ([\$*]) (([\w\:\']*) \bVERSION)\b .* =}x;
- my $eval = qq{
- package ExtUtils::MakeMaker::_version;
- no strict;
- BEGIN { eval {
- # Ensure any version() routine which might have leaked
- # into this package has been deleted. Interferes with
- # version->import()
- undef *version;
- require version;
- "version"->import;
- } }
-
- local $1$2;
- \$$2=undef;
- do {
- $_
+ if ( m{^ \s* package \s+ \w[\w\:\']* \s+ (v?[0-9._]+) \s* ; }x ) {
+ local $^W = 0;
+ $result = $1;
+ }
+ elsif ( m{(?<!\\) ([\$*]) (([\w\:\']*) \bVERSION)\b .* =}x ) {
+ my $eval = qq{
+ package ExtUtils::MakeMaker::_version;
+ no strict;
+ BEGIN { eval {
+ # Ensure any version() routine which might have leaked
+ # into this package has been deleted. Interferes with
+ # version->import()
+ undef *version;
+ require version;
+ "version"->import;
+ } }
+
+ local $1$2;
+ \$$2=undef;
+ do {
+ $_
+ };
+ \$$2;
};
- \$$2;
- };
- local $^W = 0;
- $result = eval($eval); ## no critic
- warn "Could not eval '$eval' in $parsefile: $@" if $@;
+ local $^W = 0;
+ $result = eval($eval); ## no critic
+ warn "Could not eval '$eval' in $parsefile: $@" if $@;
+ }
+ else {
+ next;
+ }
last if defined $result;
}
close $fh;
use File::Basename;
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
package ExtUtils::MM_VOS;
use strict;
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_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.55_02';
+our $VERSION = '6.55_03';
$ENV{EMXSHELL} = 'sh'; # to run `commands`
use strict;
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
use strict;
require ExtUtils::MM;
-our $VERSION = 6.55_02;
+our $VERSION = 6.55_03;
our @ISA = qw(ExtUtils::MM);
{
my @Prepend_parent;
my %Recognized_Att_Keys;
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
# Emulate something resembling CVS $Revision$
(our $Revision = $VERSION) =~ s{_}{};
# MakeMaker Parameters:
END
- # CPAN.pm takes prereqs from this field in 'Makefile'
- # and does not know about BUILD_REQUIRES
- if( $att->{PREREQ_PM} || $att->{BUILD_REQUIRES} ) {
- %{$att->{'PREREQ_PM'}} = (%{$att->{'PREREQ_PM'}||{}}, %{$att->{'BUILD_REQUIRES'}||{}});
- }
-
foreach my $key (sort keys %$att){
next if $key eq 'ARGS';
+ my ($v) = neatvalue($att->{$key});
+ if ($key eq 'PREREQ_PM') {
+ # CPAN.pm takes prereqs from this field in 'Makefile'
+ # and does not know about BUILD_REQUIRES
+ $v = neatvalue({ %{ $att->{PREREQ_PM} || {} }, %{ $att->{BUILD_REQUIRES} || {} } });
+ } else {
+ $v = neatvalue($att->{$key});
+ }
- my($v) = neatvalue($att->{$key});
$v =~ s/(CODE|HASH|ARRAY|SCALAR)\([\dxa-f]+\)/$1\(...\)/;
$v =~ tr/\n/ /s;
push @result, "# $key => $v";
This will go into the C<configure_requires> field of your F<META.yml>.
-Defaults to C<{ "ExtUtils::MakeMaker" => 0 }>
+Defaults to C<<< { "ExtUtils::MakeMaker" => 0 } >>>
The format is the same as PREREQ_PM.
MakeMaker parse a file to determine the version number. The parsing
routine requires that the file named by VERSION_FROM contains one
single line to compute the version number. The first line in the file
-that contains the regular expression
-
- /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/
-
-will be evaluated with eval() and the value of the named variable
-B<after> the eval() will be assigned to the VERSION attribute of the
-MakeMaker object. The following lines will be parsed o.k.:
-
- $VERSION = '1.00';
- *VERSION = \'1.01';
- ($VERSION) = q$Revision$ =~ /(\d+)/g;
- $FOO::VERSION = '1.10';
- *FOO::VERSION = \'1.11';
+that contains something like a $VERSION assignment or C<package Name
+VERSION> will be used. The following lines will be parsed o.k.:
+
+ # Good
+ package Foo::Bar 1.23; # 1.23
+ $VERSION = '1.00'; # 1.00
+ *VERSION = \'1.01'; # 1.01
+ ($VERSION) = q$Revision$ =~ /(\d+)/g; # The digits in $Revision$
+ $FOO::VERSION = '1.10'; # 1.10
+ *FOO::VERSION = \'1.11'; # 1.11
but these will fail:
use strict;
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
use Config ();
# There's just too much Dynaloader incest here to turn on strict vars.
use strict 'refs';
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
require Exporter;
our @ISA = ('Exporter');
our @ISA = qw(Exporter);
our @EXPORT = qw(&Mksymlists);
-our $VERSION = '6.55_02';
+our $VERSION = '6.55_03';
sub Mksymlists {
my(%spec) = @_;
use strict;
use warnings;
-our $VERSION = 6.55_02;
+our $VERSION = 6.55_03;
use Cwd;
use File::Spec;
chdir "..";
my $manifest = "MANIFEST";
open(my $manifest_fh, "<", $manifest) or die "Can't open $manifest: $!";
-my @modules = map { m{^lib/(\S+)}; $1 }
+my @modules = map { m{^lib/(\S+)}; $1 }
grep { m{^lib/\S+\.pm} }
<$manifest_fh>;
+
chomp @modules;
close $manifest_fh;
#!/usr/bin/perl -w
-BEGIN {
- if( $ENV{PERL_CORE} ) {
- chdir 't' if -d 't';
- unshift @INC, '../lib';
- }
- else {
- unshift @INC, 't/lib';
- }
-}
+use lib 't/lib';
chdir 't';
use strict;
use Config;
use ExtUtils::MakeMaker;
-use Test::More tests => 79;
+use Test::More tests => 80;
use MakeMaker::Test::Utils;
use MakeMaker::Test::Setup::BFD;
use File::Find;
' <AUTHOR>' );
like( $ppd_html, qr{^\s*<IMPLEMENTATION>}m, ' <IMPLEMENTATION>');
like( $ppd_html, qr{^\s*<REQUIRE NAME="strict::" />}m, ' <REQUIRE>' );
+unlike( $ppd_html, qr{^\s*<REQUIRE NAME="warnings::" />}m, 'no <REQUIRE> for build_require' );
my $archname = $Config{archname};
if( $] >= 5.008 ) {
configure_requires:
ExtUtils::MakeMaker: 0
build_requires:
- ExtUtils::MakeMaker: 0
+ warnings: 0
requires:
strict: 0
no_index:
#!/usr/bin/perl -w
-BEGIN {
- unshift @INC, 't/lib/';
-}
+use lib 't/lib';
chdir 't';
use Test::More tests => 1;
VERSION_FROM => 'lib/Big/Dummy.pm',
EXE_FILES => [qw(bin/program)],
PREREQ_PM => { strict => 0 },
+ BUILD_REQUIRES => { warnings => 0 },
ABSTRACT_FROM => 'lib/Big/Dummy.pm',
AUTHOR => 'Michael G Schwern <schwern@pobox.com>',
);
'$VERSION = sprintf("%d.%03d", q$Revision: 3.74 $ =~ /(\d+)\.(\d+)/);' => '3.074',
'$VERSION = substr(q$Revision: 2.8 $, 10) + 2 . "";' => '4.8',
+
);
if( $Has_Version ) {
$versions{q[$VERSION = qv("1.2.3")]} = qv("1.2.3");
}
+if( $] >= 5.011001 ) {
+ $versions{'package Foo 1.23;' } = '1.23';
+ $versions{'package Foo::Bar 1.23;' } = '1.23';
+ $versions{'package Foo v1.2.3;' } = 'v1.2.3';
+ $versions{'package Foo::Bar v1.2.3;' } = 'v1.2.3';
+ $versions{' package Foo::Bar 1.23 ;' } = '1.23';
+ $versions{"package Foo'Bar 1.23;" } = '1.23';
+ $versions{"package Foo::Bar 1.2.3;" } = '1.2.3';
+ $versions{'package Foo 1.230;' } = '1.230';
+ $versions{'package Foo 1.23_01;' } = '1.23_01';
+ $versions{'package Foo v1.23_01;' } = 'v1.23_01';
+ $versions{q["package Foo 1.23"]} = 'undef';
+ $versions{<<'END'} = '1.23';
+package Foo 1.23;
+our $VERSION = 2.34;
+END
+
+ $versions{<<'END'} = '2.34';
+our $VERSION = 2.34;
+package Foo 1.23;
+END
+
+ $versions{<<'END'} = '2.34';
+package Foo::100;
+our $VERSION = 2.34;
+END
+}
+
plan tests => (2 * keys %versions) + 4;
-while( my($code, $expect) = each %versions ) {
- is( parse_version_string($code), $expect, $code );
+for my $code ( sort keys %versions ) {
+ my $expect = $versions{$code};
+ (my $label = $code) =~ s/\n/\\n/g;
+ is( parse_version_string($code), $expect, $label );
}
$_ = 'foo';
my $version = MM->parse_version('VERSION.tmp');
is( $_, 'foo', '$_ not leaked by parse_version' );
-
+
unlink "VERSION.tmp";
-
+
return $version;
}
SKIP: {
skip "need version.pm", 4 unless $Has_Version;
is parse_version_string(q[ $VERSION = '1.00'; sub version { $VERSION } ]),
- '1.00';
+ '1.00', "eval 'sub version {...} in version string";
is parse_version_string(q[ use version; $VERSION = version->new("1.2.3") ]),
- qv("1.2.3");
+ qv("1.2.3"), "version.pm not confused by version sub";
}