summaryrefslogtreecommitdiff
path: root/cpan/ExtUtils-MakeMaker
diff options
context:
space:
mode:
authorFlorian Ragwitz <rafl@debian.org>2010-09-11 22:48:43 +0200
committerFlorian Ragwitz <rafl@debian.org>2010-09-11 22:59:35 +0200
commit37f6eaa490d61972fa887e4e7bbeaf0de90b3ee9 (patch)
tree6fb462065ea0bb119a720b7271cabba569f84a19 /cpan/ExtUtils-MakeMaker
parentc299d03b5bebd7013bbf77d78a58826ab4d27179 (diff)
downloadperl-37f6eaa490d61972fa887e4e7bbeaf0de90b3ee9.tar.gz
Upgrade EUMM from version 6.57_01 to 6.57_05
Diffstat (limited to 'cpan/ExtUtils-MakeMaker')
-rw-r--r--cpan/ExtUtils-MakeMaker/Changes22
-rw-r--r--cpan/ExtUtils-MakeMaker/MANIFEST4
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm4
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm101
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm4
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm44
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/YAML.pm658
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/t/INST.t4
-rw-r--r--cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t4
-rw-r--r--cpan/ExtUtils-MakeMaker/t/basic.t64
-rw-r--r--cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/SAS.pm67
-rw-r--r--cpan/ExtUtils-MakeMaker/t/metafile_data.t2
-rw-r--r--cpan/ExtUtils-MakeMaker/t/min_perl_version.t10
-rw-r--r--cpan/ExtUtils-MakeMaker/t/several_authors.t130
-rw-r--r--cpan/ExtUtils-MakeMaker/t/writemakefile_args.t31
37 files changed, 1148 insertions, 45 deletions
diff --git a/cpan/ExtUtils-MakeMaker/Changes b/cpan/ExtUtils-MakeMaker/Changes
index fff588d4f6..8ac998f58c 100644
--- a/cpan/ExtUtils-MakeMaker/Changes
+++ b/cpan/ExtUtils-MakeMaker/Changes
@@ -1,3 +1,25 @@
+6.57_05 Sat Sep 11 23:24:00 EEST 2010
+ Bug Fixes
+ * AUTHOR compatibility code should also be called after CONFIGURE callback
+
+6.57_04 Thu Sep 09 23:59:00 EEST 2010
+ Bug Fixes
+ * Fix several_authors.t
+ * Upgrade bundled modules: ExtUtils::Manifest 1.58.
+
+6.57_03 Thu Sep 09 01:31:00 EEST 2010
+ Bug Fixes
+ * Update MANIFEST
+
+6.57_02 Wed Sep 08 02:40:00 EEST 2010
+ Bug Fixes
+ * Don't do MANIFEST checks in PERL_CORE (Robin Barker)
+
+ New Features
+ * Accept several values (arrayref) in AUTHOR (Alexandr Ciornii)
+ * Add MYMETA.yml support (Adam Kennedy, Alexandr Ciornii)
+ * NO_MYMETA key to suppress MYMETA.yml generation (Alexandr Ciornii)
+
6.57_01 Tue Aug 24 01:36:20 PDT 2010
Improvements
* parse_abstract() is more robust supporting "Package.pm" and multiple
diff --git a/cpan/ExtUtils-MakeMaker/MANIFEST b/cpan/ExtUtils-MakeMaker/MANIFEST
index 93e77bcd8f..929765ee20 100644
--- a/cpan/ExtUtils-MakeMaker/MANIFEST
+++ b/cpan/ExtUtils-MakeMaker/MANIFEST
@@ -15,6 +15,7 @@ lib/ExtUtils/MakeMaker.pm
lib/ExtUtils/MakeMaker/Config.pm
lib/ExtUtils/MakeMaker/FAQ.pod
lib/ExtUtils/MakeMaker/Tutorial.pod
+lib/ExtUtils/MakeMaker/YAML.pm
lib/ExtUtils/Mkbootstrap.pm
lib/ExtUtils/Mksymlists.pm
lib/ExtUtils/MM.pm
@@ -65,6 +66,7 @@ t/lib/MakeMaker/Test/Setup/MPV.pm
t/lib/MakeMaker/Test/Setup/PL_FILES.pm
t/lib/MakeMaker/Test/Setup/Problem.pm
t/lib/MakeMaker/Test/Setup/Recurs.pm
+t/lib/MakeMaker/Test/Setup/SAS.pm
t/lib/MakeMaker/Test/Setup/XS.pm
t/lib/MakeMaker/Test/Utils.pm
t/lib/Test/Builder.pm
@@ -106,6 +108,7 @@ t/problems.t
t/prompt.t
t/recurs.t
t/revision.t
+t/several_authors.t
t/split_command.t
t/test_boilerplate.t
t/testdata/reallylongdirectoryname/arch1/Config.pm
@@ -117,4 +120,3 @@ t/writemakefile_args.t
t/xs.t
TODO
META.yml Module meta-data (added by MakeMaker)
-SIGNATURE Public-key signature (added by MakeMaker)
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
index 0d23c24edc..40bf780dea 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
@@ -8,9 +8,9 @@ use warnings;
require Exporter;
our @ISA = qw(Exporter);
-our @EXPORT = qw(test_harness pod2man perllocal_install uninstall
+our @EXPORT = qw(test_harness pod2man perllocal_install uninstall
warn_if_old_packlist);
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
my $Is_VMS = $^O eq 'VMS';
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
index b21fc01a59..2184c4a6d7 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
@@ -2,7 +2,7 @@ package ExtUtils::Liblist;
use strict;
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
use File::Spec;
require ExtUtils::Liblist::Kid;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
index a434a0f1d0..cf4826fe36 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
@@ -9,7 +9,7 @@ use 5.006;
# Broken out of MakeMaker from version 4.11
use strict;
-our $VERSION = 6.57_01;
+our $VERSION = 6.57_05;
use Config;
use Cwd 'cwd';
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
index d39118cd59..945f24513b 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
@@ -3,7 +3,7 @@ package ExtUtils::MM;
use strict;
use ExtUtils::MakeMaker::Config;
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
require ExtUtils::Liblist;
require ExtUtils::MakeMaker;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
index 8490f2fcf2..021238523e 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_AIX;
use strict;
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
index a94ab43717..a38f2740f7 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_Any;
use strict;
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
use Carp;
use File::Spec;
@@ -486,8 +486,8 @@ clean :: clean_subdirs
split /\s+/, $attribs{FILES} ;
}
- push(@files, qw[$(MAKE_APERL_FILE)
- perlmain.c tmon.out mon.out so_locations
+ push(@files, qw[$(MAKE_APERL_FILE)
+ MYMETA.yml perlmain.c tmon.out mon.out so_locations
blibdirs.ts pm_to_blib pm_to_blib.ts
*$(OBJ_EXT) *$(LIB_EXT) perl.exe perl perl$(EXE_EXT)
$(BOOTSTRAP) $(BASEEXT).bso
@@ -880,7 +880,7 @@ sub metafile_data {
);
# The author key is required and it takes a list.
- $meta{author} = defined $self->{AUTHOR} ? [$self->{AUTHOR}] : [];
+ $meta{author} = defined $self->{AUTHOR} ? $self->{AUTHOR} : [];
$meta{requires} = $self->{PREREQ_PM} if defined $self->{PREREQ_PM};
$meta{requires}{perl} = $self->{MIN_PERL_VERSION} if $self->{MIN_PERL_VERSION};
@@ -1085,6 +1085,99 @@ MAKE
}
+=head3 mymeta
+
+ my $mymeta = $mm->mymeta;
+
+Generate MYMETA information as a hash either from an existing META.yml
+or from internal data.
+
+=cut
+
+sub mymeta {
+ my $self = shift;
+
+ my $mymeta;
+
+ if ( -e 'META.yml' ) {
+ $mymeta = $self->_mymeta_from_meta();
+ }
+
+ unless ( $mymeta ) {
+ my @metadata = $self->metafile_data(
+ $self->{META_ADD} || {},
+ $self->{META_MERGE} || {},
+ );
+ $mymeta = {@metadata};
+ }
+
+ $mymeta->{dynamic_config} = 0;
+
+ return $mymeta;
+}
+
+
+sub _mymeta_from_meta {
+ my $self = shift;
+
+ my $meta;
+ eval {
+ my @yaml = ExtUtils::MakeMaker::YAML::LoadFile('META.yml');
+ $meta = $yaml[0];
+ };
+ return undef unless $meta;
+
+ # META.yml before 6.25_01 cannot be trusted. META.yml lived in the source directory.
+ # There was a good chance the author accidentally uploaded a stale META.yml if they
+ # rolled their own tarball rather than using "make dist".
+ if ($meta->{generated_by} &&
+ $meta->{generated_by} =~ /ExtUtils::MakeMaker version ([\d\._]+)/) {
+ my $eummv = do { local $^W = 0; $1+0; };
+ if ($eummv < 6.2501) {
+ return undef;
+ }
+ }
+
+ # Overwrite the non-configure dependency hashs
+ delete $meta->{requires};
+ delete $meta->{build_requires};
+ delete $meta->{recommends};
+ if ( exists $self->{PREREQ_PM} ) {
+ $meta->{requires} = $self->{PREREQ_PM} || {};
+ }
+ if ( exists $self->{BUILD_REQUIRES} ) {
+ $meta->{build_requires} = $self->{BUILD_REQUIRES} || {};
+ }
+ return $meta;
+}
+
+
+=head3 write_mymeta
+
+ $self->write_mymeta( $mymeta );
+
+Write MYMETA information to MYMETA.yml.
+
+This will probably be refactored into a more generic YAML dumping method.
+
+=cut
+
+sub write_mymeta {
+ my $self = shift;
+ my $mymeta = shift;
+
+ require ExtUtils::MakeMaker::YAML;
+ my $mymeta_content = ExtUtils::MakeMaker::YAML::Dump($mymeta);
+
+ open(my $myfh, ">", "MYMETA.yml")
+ or die "Unable to open MYMETA.yml: $!";
+ print $myfh $mymeta_content;
+ close $myfh;
+
+ return;
+}
+
+
=head3 realclean (o)
Defines the realclean target.
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
index 1c1eb4f2ba..0eeb795e48 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
@@ -26,7 +26,7 @@ require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
=item os_flavor
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
index 7bee0b938d..d1de9d23f1 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
@@ -9,7 +9,7 @@ require ExtUtils::MM_Unix;
require ExtUtils::MM_Win32;
our @ISA = qw( ExtUtils::MM_Unix );
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
=head1 NAME
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
index 0c50626098..68612a80ac 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_DOS;
use strict;
-our $VERSION = 6.57_01;
+our $VERSION = 6.57_05;
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
index d74cbe353d..20aeb79164 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
@@ -7,7 +7,7 @@ BEGIN {
our @ISA = qw( ExtUtils::MM_Unix );
}
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
=head1 NAME
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
index b19d037561..4dcb6e55ec 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_MacOS;
use strict;
-our $VERSION = 6.57_01;
+our $VERSION = 6.57_05;
sub new {
die <<'UNSUPPORTED';
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
index 5f06e201f7..2089e8f88c 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
@@ -22,7 +22,7 @@ use strict;
use ExtUtils::MakeMaker::Config;
use File::Basename;
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
index dc0390caa0..46d57be293 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
@@ -5,7 +5,7 @@ use strict;
use ExtUtils::MakeMaker qw(neatvalue);
use File::Spec;
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
index 0650b3c6fb..5efd3771f3 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_QNX;
use strict;
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
index 62bc1e0f97..032bf35b84 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_UWIN;
use strict;
-our $VERSION = 6.57_01;
+our $VERSION = 6.57_05;
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
index 0719988ee7..ea2668aa45 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
@@ -15,7 +15,7 @@ use ExtUtils::MakeMaker qw($Verbose neatvalue);
# If we make $VERSION an our variable parse_version() breaks
use vars qw($VERSION);
-$VERSION = '6.57_01';
+$VERSION = '6.57_05';
require ExtUtils::MM_Any;
our @ISA = qw(ExtUtils::MM_Any);
@@ -2884,7 +2884,7 @@ sub ppd {
$abstract =~ s/</&lt;/g;
$abstract =~ s/>/&gt;/g;
- my $author = $self->{AUTHOR} || '';
+ my $author = join(', ',@{$self->{AUTHOR} || []});
$author =~ s/</&lt;/g;
$author =~ s/>/&gt;/g;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
index 34b74d2ad3..b4c7ae4198 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
@@ -15,7 +15,7 @@ BEGIN {
use File::Basename;
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
index ad86cc8a88..e5b60d78e3 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
@@ -1,7 +1,7 @@
package ExtUtils::MM_VOS;
use strict;
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
require ExtUtils::MM_Unix;
our @ISA = qw(ExtUtils::MM_Unix);
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
index c41075adbb..faaf219ecb 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
@@ -27,7 +27,7 @@ use ExtUtils::MakeMaker qw( neatvalue );
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
$ENV{EMXSHELL} = 'sh'; # to run `commands`
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
index 1cc0f12ec4..19f5c7d61e 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_Win95;
use strict;
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
require ExtUtils::MM_Win32;
our @ISA = qw(ExtUtils::MM_Win32);
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
index 4a0b61fbb6..464f814f0f 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
@@ -3,7 +3,7 @@ package ExtUtils::MY;
use strict;
require ExtUtils::MM;
-our $VERSION = 6.57_01;
+our $VERSION = 6.57_05;
our @ISA = qw(ExtUtils::MM);
{
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
index 7ab26e0b04..be9624e389 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
@@ -18,7 +18,7 @@ our @Overridable;
my @Prepend_parent;
my %Recognized_Att_Keys;
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
# Emulate something resembling CVS $Revision$
(our $Revision = $VERSION) =~ s{_}{};
@@ -52,6 +52,8 @@ sub WriteMakefile {
require ExtUtils::MY;
my %att = @_;
+ _convert_compat_attrs(\%att);
+
_verify_att(\%att);
my $mm = MM->new(\%att);
@@ -66,6 +68,7 @@ sub WriteMakefile {
# scalar.
my %Att_Sigs;
my %Special_Sigs = (
+ AUTHOR => 'ARRAY',
C => 'ARRAY',
CONFIG => 'ARRAY',
CONFIGURE => 'CODE',
@@ -111,6 +114,19 @@ my %Special_Sigs = (
@Att_Sigs{keys %Recognized_Att_Keys} = ('') x keys %Recognized_Att_Keys;
@Att_Sigs{keys %Special_Sigs} = values %Special_Sigs;
+sub _convert_compat_attrs {
+ my($att) = @_;
+ if (exists $att->{AUTHOR}) {
+ if ($att->{AUTHOR}) {
+ if (!ref($att->{AUTHOR})) {
+ my $t = $att->{AUTHOR};
+ $att->{AUTHOR} = [$t];
+ }
+ } else {
+ $att->{AUTHOR} = [];
+ }
+ }
+}
sub _verify_att {
my($att) = @_;
@@ -257,8 +273,8 @@ sub full_setup {
INC INCLUDE_EXT LDFROM LIB LIBPERL_A LIBS LICENSE
LINKTYPE MAKE MAKEAPERL MAKEFILE MAKEFILE_OLD MAN1PODS MAN3PODS MAP_TARGET
META_ADD META_MERGE MIN_PERL_VERSION BUILD_REQUIRES CONFIGURE_REQUIRES
- MYEXTLIB NAME NEEDS_LINKING NOECHO NO_META NORECURS NO_VC OBJECT OPTIMIZE
- PERL_MALLOC_OK PERL PERLMAINCC PERLRUN PERLRUNINST PERL_CORE
+ MYEXTLIB NAME NEEDS_LINKING NOECHO NO_META NO_MYMETA NORECURS NO_VC OBJECT
+ OPTIMIZE PERL_MALLOC_OK PERL PERLMAINCC PERLRUN PERLRUNINST PERL_CORE
PERL_SRC PERM_DIR PERM_RW PERM_RWX
PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE PPM_INSTALL_EXEC
PPM_INSTALL_SCRIPT PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ
@@ -409,7 +425,7 @@ sub new {
}
print STDOUT "MakeMaker (v$VERSION)\n" if $Verbose;
- if (-f "MANIFEST" && ! -f "Makefile"){
+ if (-f "MANIFEST" && ! -f "Makefile" && ! $ENV{PERL_CORE}){
check_manifest();
}
@@ -496,6 +512,7 @@ END
if (defined $self->{CONFIGURE}) {
if (ref $self->{CONFIGURE} eq 'CODE') {
%configure_att = %{&{$self->{CONFIGURE}}};
+ _convert_compat_attrs(\%configure_att);
$self = { %$self, %configure_att };
} else {
Carp::croak "Attribute 'CONFIGURE' to WriteMakefile() not a code reference\n";
@@ -1010,8 +1027,13 @@ sub flush {
warn "rename MakeMaker.tmp => $finalname: $!";
chmod 0644, $finalname unless $Is_VMS;
- my %keep = map { ($_ => 1) } qw(NEEDS_LINKING HAS_LINK_CODE);
+ unless ($self->{NO_MYMETA}) {
+ # Write MYMETA.yml to communicate metadata up to the CPAN clients
+ print STDOUT "Writing MYMETA.yml\n";
+ $self->write_mymeta( $self->mymeta );
+ }
+ my %keep = map { ($_ => 1) } qw(NEEDS_LINKING HAS_LINK_CODE);
if ($self->{PARENT} && !$self->{_KEEP_AFTER_FLUSH}) {
foreach (keys %$self) { # safe memory
delete $self->{$_} unless $keep{$_};
@@ -1021,7 +1043,6 @@ sub flush {
system("$Config::Config{eunicefix} $finalname") unless $Config::Config{eunicefix} eq ":";
}
-
# This is a rename for OS's where the target must be unlinked first.
sub _rename {
my($src, $dest) = @_;
@@ -1469,8 +1490,8 @@ the first line in the "=head1 NAME" section. $2 becomes the abstract.
=item AUTHOR
-String containing name (and email address) of package author(s). Is used
-in META.yml and PPD (Perl Package Description) files for PPM (Perl
+Array of strings containing name (and email address) of package author(s).
+Is used in META.yml and PPD (Perl Package Description) files for PPM (Perl
Package Manager).
=item BINARY_LOCATION
@@ -1995,6 +2016,13 @@ the META.yml module meta-data file during 'make distdir'.
Defaults to false.
+=item NO_MYMETA
+
+When true, suppresses the generation of MYMETA.yml module meta-data file
+during 'perl Makefile.PL'.
+
+Defaults to false.
+
=item NO_VC
In general, any generated Makefile checks for the current version of
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
index 0b83432545..a7ac47d94a 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
@@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Config;
use strict;
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
use Config ();
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/YAML.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/YAML.pm
new file mode 100644
index 0000000000..55ff6fdf43
--- /dev/null
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/YAML.pm
@@ -0,0 +1,658 @@
+package ExtUtils::MakeMaker::YAML;
+
+use strict;
+
+# UTF Support?
+sub HAVE_UTF8 () { $] >= 5.007003 }
+BEGIN {
+ if ( HAVE_UTF8 ) {
+ # The string eval helps hide this from Test::MinimumVersion
+ eval "require utf8;";
+ die "Failed to load UTF-8 support" if $@;
+ }
+
+ # Class structure
+ require 5.004;
+ require Exporter;
+ require Carp;
+ $ExtUtils::MakeMaker::YAML::VERSION = '1.44';
+ @ExtUtils::MakeMaker::YAML::ISA = qw{ Exporter };
+ @ExtUtils::MakeMaker::YAML::EXPORT = qw{ Load Dump };
+ @ExtUtils::MakeMaker::YAML::EXPORT_OK = qw{ LoadFile DumpFile freeze thaw };
+
+ # Error storage
+ $ExtUtils::MakeMaker::YAML::errstr = '';
+}
+
+# The character class of all characters we need to escape
+# NOTE: Inlined, since it's only used once
+# my $RE_ESCAPE = '[\\x00-\\x08\\x0b-\\x0d\\x0e-\\x1f\"\n]';
+
+# Printed form of the unprintable characters in the lowest range
+# of ASCII characters, listed by ASCII ordinal position.
+my @UNPRINTABLE = qw(
+ z x01 x02 x03 x04 x05 x06 a
+ x08 t n v f r x0e x0f
+ x10 x11 x12 x13 x14 x15 x16 x17
+ x18 x19 x1a e x1c x1d x1e x1f
+);
+
+# Printable characters for escapes
+my %UNESCAPES = (
+ z => "\x00", a => "\x07", t => "\x09",
+ n => "\x0a", v => "\x0b", f => "\x0c",
+ r => "\x0d", e => "\x1b", '\\' => '\\',
+);
+
+# Special magic boolean words
+my %QUOTE = map { $_ => 1 } qw{
+ null Null NULL
+ y Y yes Yes YES n N no No NO
+ true True TRUE false False FALSE
+ on On ON off Off OFF
+};
+
+
+
+
+
+#####################################################################
+# Implementation
+
+# Create an empty ExtUtils::MakeMaker::YAML object
+sub new {
+ my $class = shift;
+ bless [ @_ ], $class;
+}
+
+# Create an object from a file
+sub read {
+ my $class = ref $_[0] ? ref shift : shift;
+
+ # Check the file
+ my $file = shift or return $class->_error( 'You did not specify a file name' );
+ return $class->_error( "File '$file' does not exist" ) unless -e $file;
+ return $class->_error( "'$file' is a directory, not a file" ) unless -f _;
+ return $class->_error( "Insufficient permissions to read '$file'" ) unless -r _;
+
+ # Slurp in the file
+ local $/ = undef;
+ local *CFG;
+ unless ( open(CFG, $file) ) {
+ return $class->_error("Failed to open file '$file': $!");
+ }
+ my $contents = <CFG>;
+ unless ( close(CFG) ) {
+ return $class->_error("Failed to close file '$file': $!");
+ }
+
+ $class->read_string( $contents );
+}
+
+# Create an object from a string
+sub read_string {
+ my $class = ref $_[0] ? ref shift : shift;
+ my $self = bless [], $class;
+ my $string = $_[0];
+ unless ( defined $string ) {
+ return $self->_error("Did not provide a string to load");
+ }
+
+ # Byte order marks
+ # NOTE: Keeping this here to educate maintainers
+ # my %BOM = (
+ # "\357\273\277" => 'UTF-8',
+ # "\376\377" => 'UTF-16BE',
+ # "\377\376" => 'UTF-16LE',
+ # "\377\376\0\0" => 'UTF-32LE'
+ # "\0\0\376\377" => 'UTF-32BE',
+ # );
+ if ( $string =~ /^(?:\376\377|\377\376|\377\376\0\0|\0\0\376\377)/ ) {
+ return $self->_error("Stream has a non UTF-8 BOM");
+ } else {
+ # Strip UTF-8 bom if found, we'll just ignore it
+ $string =~ s/^\357\273\277//;
+ }
+
+ # Try to decode as utf8
+ utf8::decode($string) if HAVE_UTF8;
+
+ # Check for some special cases
+ return $self unless length $string;
+ unless ( $string =~ /[\012\015]+\z/ ) {
+ return $self->_error("Stream does not end with newline character");
+ }
+
+ # Split the file into lines
+ my @lines = grep { ! /^\s*(?:\#.*)?\z/ }
+ split /(?:\015{1,2}\012|\015|\012)/, $string;
+
+ # Strip the initial YAML header
+ @lines and $lines[0] =~ /^\%YAML[: ][\d\.]+.*\z/ and shift @lines;
+
+ # A nibbling parser
+ while ( @lines ) {
+ # Do we have a document header?
+ if ( $lines[0] =~ /^---\s*(?:(.+)\s*)?\z/ ) {
+ # Handle scalar documents
+ shift @lines;
+ if ( defined $1 and $1 !~ /^(?:\#.+|\%YAML[: ][\d\.]+)\z/ ) {
+ push @$self, $self->_read_scalar( "$1", [ undef ], \@lines );
+ next;
+ }
+ }
+
+ if ( ! @lines or $lines[0] =~ /^(?:---|\.\.\.)/ ) {
+ # A naked document
+ push @$self, undef;
+ while ( @lines and $lines[0] !~ /^---/ ) {
+ shift @lines;
+ }
+
+ } elsif ( $lines[0] =~ /^\s*\-/ ) {
+ # An array at the root
+ my $document = [ ];
+ push @$self, $document;
+ $self->_read_array( $document, [ 0 ], \@lines );
+
+ } elsif ( $lines[0] =~ /^(\s*)\S/ ) {
+ # A hash at the root
+ my $document = { };
+ push @$self, $document;
+ $self->_read_hash( $document, [ length($1) ], \@lines );
+
+ } else {
+ Carp::croak("ExtUtils::MakeMaker::YAML failed to classify the line '$lines[0]'");
+ }
+ }
+
+ $self;
+}
+
+# Deparse a scalar string to the actual scalar
+sub _read_scalar {
+ my ($self, $string, $indent, $lines) = @_;
+
+ # Trim trailing whitespace
+ $string =~ s/\s*\z//;
+
+ # Explitic null/undef
+ return undef if $string eq '~';
+
+ # Single quote
+ if ( $string =~ /^\'(.*?)\'\z/ ) {
+ return '' unless defined $1;
+ $string = $1;
+ $string =~ s/\'\'/\'/g;
+ return $string;
+ }
+
+ # Double quote.
+ # The commented out form is simpler, but overloaded the Perl regex
+ # engine due to recursion and backtracking problems on strings
+ # larger than 32,000ish characters. Keep it for reference purposes.
+ # if ( $string =~ /^\"((?:\\.|[^\"])*)\"\z/ ) {
+ if ( $string =~ /^\"([^\\"]*(?:\\.[^\\"]*)*)\"\z/ ) {
+ # Reusing the variable is a little ugly,
+ # but avoids a new variable and a string copy.
+ $string = $1;
+ $string =~ s/\\"/"/g;
+ $string =~ s/\\([never\\fartz]|x([0-9a-fA-F]{2}))/(length($1)>1)?pack("H2",$2):$UNESCAPES{$1}/gex;
+ return $string;
+ }
+
+ # Special cases
+ if ( $string =~ /^[\'\"!&]/ ) {
+ Carp::croak("ExtUtils::MakeMaker::YAML does not support a feature in line '$lines->[0]'");
+ }
+ return {} if $string eq '{}';
+ return [] if $string eq '[]';
+
+ # Regular unquoted string
+ return $string unless $string =~ /^[>|]/;
+
+ # Error
+ Carp::croak("ExtUtils::MakeMaker::YAML failed to find multi-line scalar content") unless @$lines;
+
+ # Check the indent depth
+ $lines->[0] =~ /^(\s*)/;
+ $indent->[-1] = length("$1");
+ if ( defined $indent->[-2] and $indent->[-1] <= $indent->[-2] ) {
+ Carp::croak("ExtUtils::MakeMaker::YAML found bad indenting in line '$lines->[0]'");
+ }
+
+ # Pull the lines
+ my @multiline = ();
+ while ( @$lines ) {
+ $lines->[0] =~ /^(\s*)/;
+ last unless length($1) >= $indent->[-1];
+ push @multiline, substr(shift(@$lines), length($1));
+ }
+
+ my $j = (substr($string, 0, 1) eq '>') ? ' ' : "\n";
+ my $t = (substr($string, 1, 1) eq '-') ? '' : "\n";
+ return join( $j, @multiline ) . $t;
+}
+
+# Parse an array
+sub _read_array {
+ my ($self, $array, $indent, $lines) = @_;
+
+ while ( @$lines ) {
+ # Check for a new document
+ if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) {
+ while ( @$lines and $lines->[0] !~ /^---/ ) {
+ shift @$lines;
+ }
+ return 1;
+ }
+
+ # Check the indent level
+ $lines->[0] =~ /^(\s*)/;
+ if ( length($1) < $indent->[-1] ) {
+ return 1;
+ } elsif ( length($1) > $indent->[-1] ) {
+ Carp::croak("ExtUtils::MakeMaker::YAML found bad indenting in line '$lines->[0]'");
+ }
+
+ if ( $lines->[0] =~ /^(\s*\-\s+)[^\'\"]\S*\s*:(?:\s+|$)/ ) {
+ # Inline nested hash
+ my $indent2 = length("$1");
+ $lines->[0] =~ s/-/ /;
+ push @$array, { };
+ $self->_read_hash( $array->[-1], [ @$indent, $indent2 ], $lines );
+
+ } elsif ( $lines->[0] =~ /^\s*\-(\s*)(.+?)\s*\z/ ) {
+ # Array entry with a value
+ shift @$lines;
+ push @$array, $self->_read_scalar( "$2", [ @$indent, undef ], $lines );
+
+ } elsif ( $lines->[0] =~ /^\s*\-\s*\z/ ) {
+ shift @$lines;
+ unless ( @$lines ) {
+ push @$array, undef;
+ return 1;
+ }
+ if ( $lines->[0] =~ /^(\s*)\-/ ) {
+ my $indent2 = length("$1");
+ if ( $indent->[-1] == $indent2 ) {
+ # Null array entry
+ push @$array, undef;
+ } else {
+ # Naked indenter
+ push @$array, [ ];
+ $self->_read_array( $array->[-1], [ @$indent, $indent2 ], $lines );
+ }
+
+ } elsif ( $lines->[0] =~ /^(\s*)\S/ ) {
+ push @$array, { };
+ $self->_read_hash( $array->[-1], [ @$indent, length("$1") ], $lines );
+
+ } else {
+ Carp::croak("ExtUtils::MakeMaker::YAML failed to classify line '$lines->[0]'");
+ }
+
+ } elsif ( defined $indent->[-2] and $indent->[-1] == $indent->[-2] ) {
+ # This is probably a structure like the following...
+ # ---
+ # foo:
+ # - list
+ # bar: value
+ #
+ # ... so lets return and let the hash parser handle it
+ return 1;
+
+ } else {
+ Carp::croak("ExtUtils::MakeMaker::YAML failed to classify line '$lines->[0]'");
+ }
+ }
+
+ return 1;
+}
+
+# Parse an array
+sub _read_hash {
+ my ($self, $hash, $indent, $lines) = @_;
+
+ while ( @$lines ) {
+ # Check for a new document
+ if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) {
+ while ( @$lines and $lines->[0] !~ /^---/ ) {
+ shift @$lines;
+ }
+ return 1;
+ }
+
+ # Check the indent level
+ $lines->[0] =~ /^(\s*)/;
+ if ( length($1) < $indent->[-1] ) {
+ return 1;
+ } elsif ( length($1) > $indent->[-1] ) {
+ Carp::croak("ExtUtils::MakeMaker::YAML found bad indenting in line '$lines->[0]'");
+ }
+
+ # Get the key
+ unless ( $lines->[0] =~ s/^\s*([^\'\" ][^\n]*?)\s*:(\s+|$)// ) {
+ if ( $lines->[0] =~ /^\s*[?\'\"]/ ) {
+ Carp::croak("ExtUtils::MakeMaker::YAML does not support a feature in line '$lines->[0]'");
+ }
+ Carp::croak("ExtUtils::MakeMaker::YAML failed to classify line '$lines->[0]'");
+ }
+ my $key = $1;
+
+ # Do we have a value?
+ if ( length $lines->[0] ) {
+ # Yes
+ $hash->{$key} = $self->_read_scalar( shift(@$lines), [ @$indent, undef ], $lines );
+ } else {
+ # An indent
+ shift @$lines;
+ unless ( @$lines ) {
+ $hash->{$key} = undef;
+ return 1;
+ }
+ if ( $lines->[0] =~ /^(\s*)-/ ) {
+ $hash->{$key} = [];
+ $self->_read_array( $hash->{$key}, [ @$indent, length($1) ], $lines );
+ } elsif ( $lines->[0] =~ /^(\s*)./ ) {
+ my $indent2 = length("$1");
+ if ( $indent->[-1] >= $indent2 ) {
+ # Null hash entry
+ $hash->{$key} = undef;
+ } else {
+ $hash->{$key} = {};
+ $self->_read_hash( $hash->{$key}, [ @$indent, length($1) ], $lines );
+ }
+ }
+ }
+ }
+
+ return 1;
+}
+
+# Save an object to a file
+sub write {
+ my $self = shift;
+ my $file = shift or return $self->_error('No file name provided');
+
+ # Write it to the file
+ open( CFG, '>' . $file ) or return $self->_error(
+ "Failed to open file '$file' for writing: $!"
+ );
+ print CFG $self->write_string;
+ close CFG;
+
+ return 1;
+}
+
+# Save an object to a string
+sub write_string {
+ my $self = shift;
+ return '' unless @$self;
+
+ # Iterate over the documents
+ my $indent = 0;
+ my @lines = ();
+ foreach my $cursor ( @$self ) {
+ push @lines, '---';
+
+ # An empty document
+ if ( ! defined $cursor ) {
+ # Do nothing
+
+ # A scalar document
+ } elsif ( ! ref $cursor ) {
+ $lines[-1] .= ' ' . $self->_write_scalar( $cursor, $indent );
+
+ # version object
+ } elsif ( ref $cursor eq 'version' ) {
+ $lines[-1] .= ' ' . $self->_write_scalar( $cursor->stringify, $indent );
+
+ # A list at the root
+ } elsif ( ref $cursor eq 'ARRAY' ) {
+ unless ( @$cursor ) {
+ $lines[-1] .= ' []';
+ next;
+ }
+ push @lines, $self->_write_array( $cursor, $indent, {} );
+
+ # A hash at the root
+ } elsif ( ref $cursor eq 'HASH' ) {
+ unless ( %$cursor ) {
+ $lines[-1] .= ' {}';
+ next;
+ }
+ push @lines, $self->_write_hash( $cursor, $indent, {} );
+
+ } else {
+ Carp::croak("Cannot serialize " . ref($cursor));
+ }
+ }
+
+ join '', map { "$_\n" } @lines;
+}
+
+sub _write_scalar {
+ my $string = $_[1];
+ return '~' unless defined $string;
+ return "''" unless length $string;
+ if ( $string =~ /[\x00-\x08\x0b-\x0d\x0e-\x1f\"\'\n]/ ) {
+ $string =~ s/\\/\\\\/g;
+ $string =~ s/"/\\"/g;
+ $string =~ s/\n/\\n/g;
+ $string =~ s/([\x00-\x1f])/\\$UNPRINTABLE[ord($1)]/g;
+ return qq|"$string"|;
+ }
+ if ( $string =~ /(?:^\W|\s)/ or $QUOTE{$string} ) {
+ return "'$string'";
+ }
+ return $string;
+}
+
+sub _write_array {
+ my ($self, $array, $indent, $seen) = @_;
+ if ( $seen->{refaddr($array)}++ ) {
+ die "ExtUtils::MakeMaker::YAML does not support circular references";
+ }
+ my @lines = ();
+ foreach my $el ( @$array ) {
+ my $line = (' ' x $indent) . '-';
+ my $type = ref $el;
+ if ( ! $type ) {
+ $line .= ' ' . $self->_write_scalar( $el, $indent + 1 );
+ push @lines, $line;
+
+ # version object
+ } elsif ( $type eq 'version' ) {
+ $line .= ' ' . $self->_write_scalar( $el->stringify, $indent + 1 );
+ push @lines, $line;
+
+ } elsif ( $type eq 'ARRAY' ) {
+ if ( @$el ) {
+ push @lines, $line;
+ push @lines, $self->_write_array( $el, $indent + 1, $seen );
+ } else {
+ $line .= ' []';
+ push @lines, $line;
+ }
+
+ } elsif ( $type eq 'HASH' ) {
+ if ( keys %$el ) {
+ push @lines, $line;
+ push @lines, $self->_write_hash( $el, $indent + 1, $seen );
+ } else {
+ $line .= ' {}';
+ push @lines, $line;
+ }
+
+ } else {
+ die "ExtUtils::MakeMaker::YAML does not support $type references";
+ }
+ }
+
+ @lines;
+}
+
+sub _write_hash {
+ my ($self, $hash, $indent, $seen) = @_;
+ if ( $seen->{refaddr($hash)}++ ) {
+ die "ExtUtils::MakeMaker::YAML does not support circular references";
+ }
+ my @lines = ();
+ foreach my $name ( sort keys %$hash ) {
+ my $el = $hash->{$name};
+ my $line = (' ' x $indent) . "$name:";
+ my $type = ref $el;
+ if ( ! $type ) {
+ $line .= ' ' . $self->_write_scalar( $el, $indent + 1 );
+ push @lines, $line;
+
+ # version object
+ } elsif ( $type eq 'version' ) {
+ $line .= ' ' . $self->_write_scalar( $el->stringify, $indent + 1 );
+ push @lines, $line;
+
+ } elsif ( $type eq 'ARRAY' ) {
+ if ( @$el ) {
+ push @lines, $line;
+ push @lines, $self->_write_array( $el, $indent + 1, $seen );
+ } else {
+ $line .= ' []';
+ push @lines, $line;
+ }
+
+ } elsif ( $type eq 'HASH' ) {
+ if ( keys %$el ) {
+ push @lines, $line;
+ push @lines, $self->_write_hash( $el, $indent + 1, $seen );
+ } else {
+ $line .= ' {}';
+ push @lines, $line;
+ }
+
+ } else {
+ die "ExtUtils::MakeMaker::YAML does not support $type references";
+ }
+ }
+
+ @lines;
+}
+
+# Set error
+sub _error {
+ $ExtUtils::MakeMaker::YAML::errstr = $_[1];
+ undef;
+}
+
+# Retrieve error
+sub errstr {
+ $ExtUtils::MakeMaker::YAML::errstr;
+}
+
+
+
+
+
+#####################################################################
+# YAML Compatibility
+
+sub Dump {
+ ExtUtils::MakeMaker::YAML->new(@_)->write_string;
+}
+
+sub Load {
+ my $self = ExtUtils::MakeMaker::YAML->read_string(@_);
+ unless ( $self ) {
+ Carp::croak("Failed to load YAML document from string");
+ }
+ if ( wantarray ) {
+ return @$self;
+ } else {
+ # To match YAML.pm, return the last document
+ return $self->[-1];
+ }
+}
+
+BEGIN {
+ *freeze = *Dump;
+ *thaw = *Load;
+}
+
+sub DumpFile {
+ my $file = shift;
+ ExtUtils::MakeMaker::YAML->new(@_)->write($file);
+}
+
+sub LoadFile {
+ my $self = ExtUtils::MakeMaker::YAML->read($_[0]);
+ unless ( $self ) {
+ Carp::croak("Failed to load YAML document from '" . ($_[0] || '') . "'");
+ }
+ if ( wantarray ) {
+ return @$self;
+ } else {
+ # Return only the last document to match YAML.pm,
+ return $self->[-1];
+ }
+}
+
+
+
+
+
+#####################################################################
+# Use Scalar::Util if possible, otherwise emulate it
+
+BEGIN {
+ eval {
+ require Scalar::Util;
+ *refaddr = *Scalar::Util::refaddr;
+ };
+ eval <<'END_PERL' if $@;
+# Failed to load Scalar::Util
+sub refaddr {
+ my $pkg = ref($_[0]) or return undef;
+ if (!!UNIVERSAL::can($_[0], 'can')) {
+ bless $_[0], 'Scalar::Util::Fake';
+ } else {
+ $pkg = undef;
+ }
+ "$_[0]" =~ /0x(\w+)/;
+ my $i = do { local $^W; hex $1 };
+ bless $_[0], $pkg if defined $pkg;
+ $i;
+}
+END_PERL
+
+}
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+ExtUtils::MakeMaker::YAML - clone of YAML::Tiny
+
+=head1 SYNOPSIS
+
+See L<YAML::Tiny>
+
+=head1 AUTHOR
+
+Adam Kennedy E<lt>adamk@cpan.orgE<gt>
+
+=head1 SEE ALSO
+
+L<YAML>, L<YAML::Syck>
+
+=head1 COPYRIGHT
+
+Copyright 2006 - 2010 Adam Kennedy.
+
+This program is free software; you can redistribute
+it and/or modify it under the same terms as Perl itself.
+
+=cut
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
index aeb8b27d14..fbf24156c6 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
@@ -3,7 +3,7 @@ package ExtUtils::Mkbootstrap;
# There's just too much Dynaloader incest here to turn on strict vars.
use strict 'refs';
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
require Exporter;
our @ISA = ('Exporter');
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
index e7992936fa..9aac3fd74a 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
@@ -10,7 +10,7 @@ use Config;
our @ISA = qw(Exporter);
our @EXPORT = qw(&Mksymlists);
-our $VERSION = '6.57_01';
+our $VERSION = '6.57_05';
sub Mksymlists {
my(%spec) = @_;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
index 628dda034f..7314410926 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
@@ -3,7 +3,7 @@ package ExtUtils::testlib;
use strict;
use warnings;
-our $VERSION = 6.57_01;
+our $VERSION = 6.57_05;
use Cwd;
use File::Spec;
diff --git a/cpan/ExtUtils-MakeMaker/t/INST.t b/cpan/ExtUtils-MakeMaker/t/INST.t
index 8a140eb0b4..6aac294fbf 100644
--- a/cpan/ExtUtils-MakeMaker/t/INST.t
+++ b/cpan/ExtUtils-MakeMaker/t/INST.t
@@ -46,10 +46,12 @@ my $mm = WriteMakefile(
);
like( $stdout->read, qr{
Writing\ $Makefile\ for\ Big::Liar\n
+ Writing\ MYMETA.yml\n
Big::Liar's\ vars\n
INST_LIB\ =\ \S+\n
INST_ARCHLIB\ =\ \S+\n
Writing\ $Makefile\ for\ Big::Dummy\n
+ Writing\ MYMETA.yml\n
}x );
undef $stdout;
untie *STDOUT;
@@ -126,10 +128,12 @@ $mm = WriteMakefile(
);
like( $stdout->read, qr{
Writing\ $Makefile\ for\ Big::Liar\n
+ Writing\ MYMETA.yml\n
Big::Liar's\ vars\n
INST_LIB\ =\ \S+\n
INST_ARCHLIB\ =\ \S+\n
Writing\ $Makefile\ for\ Big::Dummy\n
+ Writing\ MYMETA.yml\n
}x );
undef $stdout;
untie *STDOUT;
diff --git a/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t b/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
index 8bb9db8a1d..fbb18a375a 100644
--- a/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
+++ b/cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t
@@ -50,10 +50,12 @@ my $mm = WriteMakefile(
like( $stdout->read, qr{
Writing\ $Makefile\ for\ Big::Liar\n
+ Writing\ MYMETA.yml\n
Big::Liar's\ vars\n
INST_LIB\ =\ \S+\n
INST_ARCHLIB\ =\ \S+\n
Writing\ $Makefile\ for\ Big::Dummy\n
+ Writing\ MYMETA.yml\n
}x );
is( $mm->{PREFIX}, '$(SITEPREFIX)', 'PREFIX set based on INSTALLDIRS' );
@@ -78,10 +80,12 @@ $mm = WriteMakefile(
);
like( $stdout->read, qr{
Writing\ $Makefile\ for\ Big::Liar\n
+ Writing\ MYMETA.yml\n
Big::Liar's\ vars\n
INST_LIB\ =\ \S+\n
INST_ARCHLIB\ =\ \S+\n
Writing\ $Makefile\ for\ Big::Dummy\n
+ Writing\ MYMETA.yml\n
}x );
undef $stdout;
untie *STDOUT;
diff --git a/cpan/ExtUtils-MakeMaker/t/basic.t b/cpan/ExtUtils-MakeMaker/t/basic.t
index 1842a1c839..9cd1d931c3 100644
--- a/cpan/ExtUtils-MakeMaker/t/basic.t
+++ b/cpan/ExtUtils-MakeMaker/t/basic.t
@@ -11,7 +11,7 @@ use strict;
use Config;
use ExtUtils::MakeMaker;
-use Test::More tests => 80;
+use Test::More tests => 98;
use MakeMaker::Test::Utils;
use MakeMaker::Test::Setup::BFD;
use File::Find;
@@ -229,18 +229,23 @@ use ExtUtils::Manifest qw(maniread);
my $distdir = 'Big-Dummy-0.01';
$distdir =~ s/\./_/g if $Is_VMS;
my $meta_yml = "$distdir/META.yml";
+my $mymeta_yml = "$distdir/MYMETA.yml";
ok( !-f 'META.yml', 'META.yml not written to source dir' );
ok( -f $meta_yml, 'META.yml written to dist dir' );
ok( !-e "META_new.yml", 'temp META.yml file not left around' );
+ok( -f 'MYMETA.yml', 'MYMETA.yml is written to source dir' );
+ok( -f $mymeta_yml, 'MYMETA.yml is written to dist dir on disttest' );
+
SKIP: {
# META.yml spec 1.4 was added in 0.11
- skip "Test::YAML::Meta >= 0.11 required", 2
+ skip "Test::YAML::Meta >= 0.11 required", 4
unless eval { require Test::YAML::Meta } and
Test::YAML::Meta->VERSION >= 0.11;
Test::YAML::Meta::meta_spec_ok($meta_yml);
+ Test::YAML::Meta::meta_spec_ok($mymeta_yml);
}
ok open META, $meta_yml or diag $!;
@@ -272,6 +277,48 @@ meta-spec:
version: 1.4
END
+my $mymeta_expected_content=<<"END";
+---
+abstract: "Try \\"our\\" hot dog's"
+author:
+ - 'Michael G Schwern <schwern\@pobox.com>'
+build_requires:
+ warnings: 0
+configure_requires:
+ ExtUtils::MakeMaker: 0
+distribution_type: module
+dynamic_config: 0
+generated_by: 'ExtUtils::MakeMaker version $ExtUtils::MakeMaker::VERSION'
+license: unknown
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: Big-Dummy
+no_index:
+ directory:
+ - t
+ - inc
+requires:
+ strict: 0
+version: 0.01
+END
+
+{
+ok open META, $mymeta_yml or diag $!;
+my $mymeta_content = join '', <META>;
+ok close META;
+
+is($mymeta_content,$mymeta_expected_content,"MYMETA.yml (using Parse::CPAN::Meta) content is correct");
+}
+
+{
+ok open META, 'MYMETA.yml' or diag $!;
+my $mymeta_content = join '', <META>;
+ok close META;
+
+is($mymeta_content,$mymeta_expected_content,"MYMETA.yml (generated from scratch)content is correct");
+}
+
my $manifest = maniread("$distdir/MANIFEST");
# VMS is non-case preserving, so we can't know what the MANIFEST will
# look like. :(
@@ -281,12 +328,25 @@ is( $manifest->{'meta.yml'}, 'Module meta-data (added by MakeMaker)' );
# Test NO_META META.yml suppression
unlink $meta_yml;
+unlink 'MYMETA.yml';
ok( !-f $meta_yml, 'META.yml deleted' );
+ok( !-f 'MYMETA.yml','MYMETA.yml deleted' );
@mpl_out = run(qq{$perl Makefile.PL "NO_META=1"});
+ok( -f 'MYMETA.yml', 'MYMETA.yml generation not suppressed by NO_META' );
cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) || diag(@mpl_out);
+ok( !-f $meta_yml, 'META.yml generation suppressed by NO_META' );
my $distdir_out = run("$make distdir");
is( $?, 0, 'distdir' ) || diag($distdir_out);
ok( !-f $meta_yml, 'META.yml generation suppressed by NO_META' );
+unlink 'MYMETA.yml';
+
+ok( !-f 'MYMETA.yml','MYMETA.yml deleted' );
+@mpl_out = run(qq{$perl Makefile.PL "NO_MYMETA=1"});
+cmp_ok( $?, '==', 0, 'Makefile.PL exited with zero' ) || diag(@mpl_out);
+$distdir_out = run("$make distdir");
+is( $?, 0, 'distdir' ) || diag($distdir_out);
+ok( !-f 'MYMETA.yml','MYMETA.yml generation suppressed by NO_MYMETA' );
+ok( -f $meta_yml, 'META.yml generation not suppressed by NO_MYMETA' );
# Make sure init_dirscan doesn't go into the distdir
diff --git a/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/SAS.pm b/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/SAS.pm
new file mode 100644
index 0000000000..a8d31e1d60
--- /dev/null
+++ b/cpan/ExtUtils-MakeMaker/t/lib/MakeMaker/Test/Setup/SAS.pm
@@ -0,0 +1,67 @@
+package MakeMaker::Test::Setup::SAS;
+
+@ISA = qw(Exporter);
+require Exporter;
+@EXPORT = qw(setup_recurs teardown_recurs);
+
+use strict;
+use File::Path;
+use File::Basename;
+
+our $dirname='Multiple-Authors';
+my %Files = (
+ $dirname.'/Makefile.PL' => <<'END',
+use ExtUtils::MakeMaker;
+
+WriteMakefile(
+ NAME => 'Multiple::Authors',
+ AUTHOR => ['John Doe <jd@example.com>', 'Jane Doe <jd@example.com>'],
+ VERSION_FROM => 'lib/Multiple/Authors.pm',
+ PREREQ_PM => { strict => 0 },
+);
+END
+
+ $dirname.'/lib/Multiple/Authors.pm' => <<'END',
+package Multiple::Authors;
+
+$VERSION = 0.05;
+
+=head1 NAME
+
+Multiple::Authors - several authors
+
+=cut
+
+1;
+END
+
+);
+
+
+sub setup_recurs {
+ while(my($file, $text) = each %Files) {
+ # Convert to a relative, native file path.
+ $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file);
+
+ my $dir = dirname($file);
+ mkpath $dir;
+ open(FILE, ">$file") || die "Can't create $file: $!";
+ print FILE $text;
+ close FILE;
+ }
+
+ return 1;
+}
+
+sub teardown_recurs {
+ foreach my $file (keys %Files) {
+ my $dir = dirname($file);
+ if( -e $dir ) {
+ rmtree($dir) || return;
+ }
+ }
+ return 1;
+}
+
+
+1;
diff --git a/cpan/ExtUtils-MakeMaker/t/metafile_data.t b/cpan/ExtUtils-MakeMaker/t/metafile_data.t
index 7e970ceb3d..9e57cae79c 100644
--- a/cpan/ExtUtils-MakeMaker/t/metafile_data.t
+++ b/cpan/ExtUtils-MakeMaker/t/metafile_data.t
@@ -81,7 +81,7 @@ my $new_mm = sub {
my $mm = $new_mm->(
DISTNAME => 'Foo-Bar',
VERSION => 1.23,
- AUTHOR => 'Some Guy',
+ AUTHOR => ['Some Guy'],
PREREQ_PM => {
Foo => 2.34,
Bar => 4.56,
diff --git a/cpan/ExtUtils-MakeMaker/t/min_perl_version.t b/cpan/ExtUtils-MakeMaker/t/min_perl_version.t
index b0eb50631a..6d892b95ba 100644
--- a/cpan/ExtUtils-MakeMaker/t/min_perl_version.t
+++ b/cpan/ExtUtils-MakeMaker/t/min_perl_version.t
@@ -8,7 +8,7 @@ BEGIN {
}
use strict;
-use Test::More tests => 33;
+use Test::More tests => 35;
use TieOut;
use MakeMaker::Test::Utils;
@@ -180,6 +180,14 @@ END
my $distdir = 'Min-PerlVers-0.05';
$distdir =~ s{\.}{_}g if $Is_VMS;
+ my $mymeta_yml = "MYMETA.yml";
+ my $mymeta = slurp($mymeta_yml);
+
+ ok( defined($mymeta), ' MYMETA.yml present' );
+
+ like( $mymeta, qr{\nrequires:[^\S\n]*\n\s+perl:\s+5\.005\n\s+strict:\s+0\n},
+ ' MYMETA.yml content good');
+
my $meta_yml = "$distdir/META.yml";
my @make_out = run(qq{$make metafile});
END { rmtree $distdir }
diff --git a/cpan/ExtUtils-MakeMaker/t/several_authors.t b/cpan/ExtUtils-MakeMaker/t/several_authors.t
new file mode 100644
index 0000000000..b11d05e82d
--- /dev/null
+++ b/cpan/ExtUtils-MakeMaker/t/several_authors.t
@@ -0,0 +1,130 @@
+#!/usr/bin/perl -w
+
+# This is a test checking various aspects of the optional argument
+# MIN_PERL_VERSION to WriteMakefile.
+
+BEGIN {
+ unshift @INC, 't/lib';
+}
+
+use strict;
+use Test::More tests => 18;
+
+use TieOut;
+use MakeMaker::Test::Utils;
+use MakeMaker::Test::Setup::SAS;
+use File::Path;
+
+use ExtUtils::MakeMaker;
+
+# avoid environment variables interfering with our make runs
+delete @ENV{qw(LIB MAKEFLAGS)};
+
+my $perl = which_perl();
+my $make = make_run();
+my $makefile = makefile_name();
+
+chdir 't';
+
+perl_lib();
+
+ok( setup_recurs(), 'setup' );
+END {
+ ok( chdir(File::Spec->updir), 'leaving dir' );
+ ok( teardown_recurs(), 'teardown' );
+}
+
+ok( chdir $MakeMaker::Test::Setup::SAS::dirname, "entering dir $MakeMaker::Test::Setup::SAS::dirname" ) ||
+ diag("chdir failed: $!");
+
+{
+ # ----- argument verification -----
+
+ my $stdout = tie *STDOUT, 'TieOut';
+ ok( $stdout, 'capturing stdout' );
+ my $warnings = '';
+ local $SIG{__WARN__} = sub {
+ $warnings .= join '', @_;
+ };
+
+ eval {
+ WriteMakefile(
+ NAME => 'Multiple::Authors',
+ AUTHOR => ['John Doe <jd@example.com>', 'Jane Doe <jd@example.com>'],
+ );
+ };
+ is( $warnings, '', 'arrayref in AUTHOR does not trigger a warning' );
+ is( $@, '', ' nor a hard failure' );
+
+}
+
+
+{
+ # ----- argument verification -----
+
+ my $stdout = tie *STDOUT, 'TieOut';
+ ok( $stdout, 'capturing stdout' );
+ my $warnings = '';
+ local $SIG{__WARN__} = sub {
+ $warnings .= join '', @_;
+ };
+
+ eval {
+ WriteMakefile(
+ NAME => 'Multiple::Authors',
+ CONFIGURE => sub {
+ return {AUTHOR => 'John Doe <jd@example.com>',};
+ },
+ );
+ };
+ is( $warnings, '', 'scalar in AUTHOR inside CONFIGURE does not trigger a warning' );
+ is( $@, '', ' nor a hard failure' );
+
+}
+
+
+# ----- generated files verification -----
+{
+ unlink $makefile;
+ my @mpl_out = run(qq{$perl Makefile.PL});
+ END { unlink $makefile, makefile_backup() }
+
+ cmp_ok( $?, '==', 0, 'Makefile.PL exiting normally' ) || diag(@mpl_out);
+ ok( -e $makefile, 'Makefile present' );
+}
+
+
+# ----- ppd output -----
+{
+ my $ppd_file = 'Multiple-Authors.ppd';
+ my @make_out = run(qq{$make ppd});
+ END { unlink $ppd_file }
+
+ cmp_ok( $?, '==', 0, 'Make ppd exiting normally' ) || diag(@make_out);
+
+ my $ppd_html = slurp($ppd_file);
+ ok( defined($ppd_html), ' .ppd file present' );
+
+ like( $ppd_html, qr{John Doe &lt;jd\@example.com&gt;, Jane Doe &lt;jd\@example.com&gt;},
+ ' .ppd file content good' );
+}
+
+
+# ----- META.yml output -----
+{
+ my $distdir = 'Multiple-Authors-0.05';
+ $distdir =~ s{\.}{_}g if $Is_VMS;
+
+ my $meta_yml = "$distdir/META.yml";
+ my @make_out = run(qq{$make metafile});
+ END { rmtree $distdir }
+
+ cmp_ok( $?, '==', 0, 'Make metafile exiting normally' ) || diag(@make_out);
+ my $meta = slurp($meta_yml);
+ ok( defined($meta), ' META.yml present' );
+
+ like( $meta, qr{\nauthor:\n\s+- John Doe <jd\@example.com>\n\s+- Jane Doe <jd\@example.com>\n},
+ ' META.yml content good');
+}
+
+__END__
diff --git a/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t b/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t
index 10913b9f37..421a311c18 100644
--- a/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t
+++ b/cpan/ExtUtils-MakeMaker/t/writemakefile_args.t
@@ -8,7 +8,7 @@ BEGIN {
}
use strict;
-use Test::More tests => 35;
+use Test::More tests => 39;
use TieOut;
use MakeMaker::Test::Utils;
@@ -61,7 +61,7 @@ VERIFY
};
is( $warnings, <<VERIFY );
-WARNING: AUTHOR takes a string/number not a CODE reference.
+WARNING: AUTHOR takes a ARRAY reference not a CODE reference.
Please inform the author.
VERIFY
@@ -212,4 +212,31 @@ VERIFY
};
is( $warnings, '' );
is( $mm->{DISTVNAME}, 'Hooballoo' );
+
+
+ # AUTHOR / scalar
+ $warnings = '';
+ eval {
+ $mm = WriteMakefile(
+ NAME => 'Big::Dummy',
+ VERSION => '1.00',
+ AUTHOR => "test",
+ );
+ };
+ is( $warnings, '' );
+ is_deeply( $mm->{AUTHOR}, ["test"] );
+
+
+ # AUTHOR / array
+ $warnings = '';
+ eval {
+ $mm = WriteMakefile(
+ NAME => 'Big::Dummy',
+ VERSION => '1.00',
+ AUTHOR => ["test1", "test2"],
+ );
+ };
+ is( $warnings, '' );
+ is_deeply( $mm->{AUTHOR}, ["test1","test2"] );
+
}