lib/ExtUtils/t/Packlist.t See if Packlist works
lib/ExtUtils/t/postamble.t See if postamble works
lib/ExtUtils/t/prefixify.t See if MakeMaker can apply a PREFIX
+lib/ExtUtils/t/prereq_print.t See if PREREQ_PRINT works
lib/ExtUtils/t/problems.t How MakeMaker reacts to build problems
lib/ExtUtils/t/prompt.t See if E::MM::prompt() works
lib/ExtUtils/t/recurs.t See if recursive builds work
+6.16 Mon Aug 18 01:39:51 PDT 2003
+ * Fixing the max exec length for Windows to account for old
+ versions of nmake (the one you can download for free from MS).
+ - Hack to normalize //foo//bar paths in ExtUtils::Installed.
+ [Sreeji K Das]
+ * Adding Module::Build utility files to MANIFEST.SKIP
+ - PREREQ_PRINT is supposed to exit after dumping. (Wolfgang Friebel
+ bleadperl@20530)
+ - maniadd() was trying to open the MANIFEST even if it didn't need to
+ causing unnecessary errors for read-only MANIFESTs (rt.cpan.org 3180)
+
6.15 Sun Aug 3 16:41:05 PDT 2003
- Make FIXIN on Win32 use the new pl2bat rather than an already
installed one when building the core (Mattia Barbon)
require VMS::Filespec if $Is_VMS;
use vars qw($VERSION);
-$VERSION = '0.07';
+$VERSION = '0.08';
sub _is_prefix {
my ($self, $path, $prefix) = @_;
$prefix = VMS::Filespec::unixify($prefix);
$path = VMS::Filespec::unixify($path);
}
- $prefix =~ m!/+! && $prefix =~ s!/+!/!g;
- $path =~ m!/+! && $path =~ s!/+!/!g;
+
+ # Sloppy Unix path normalization.
+ $prefix =~ s{/+}{/}g;
+ $path =~ s{/+}{/}g;
return 1 if substr($path, 0, length($prefix)) eq $prefix;
\bMakeMaker-\d
\bpm_to_blib$
+# Avoid Module::Build generated and utility files.
+\bBuild$
+\b_build/
+
# Avoid temp and backup files.
~$
\.old$
# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
name: ExtUtils-MakeMaker
-version: 6.15
+version: 6.16
version_from: lib/ExtUtils/MakeMaker.pm
installdirs: perl
requires:
Pod::Man: 0
distribution_type: module
-generated_by: ExtUtils::MakeMaker version 6.15
+generated_by: ExtUtils::MakeMaker version 6.16
=item max_exec_len
-Using 31K, a safe number gotten from Windows 2000.
+nmake 1.50 limits command length to 2048 characters.
=cut
sub max_exec_len {
my $self = shift;
- return $self->{_MAX_EXEC_LEN} ||= 31 * 1024;
+ return $self->{_MAX_EXEC_LEN} ||= 2 * 1024;
}
}
-=item max_exec_len
-
-Setting to 2500, a value obtained by experimentation.
-
-=cut
-
-sub max_exec_len {
- my $self = shift;
-
- return $self->{_MAX_EXEC_LEN} ||= 2500;
-}
-
-
=item os_flavor
Win95 and Win98 and WinME are collectively Win9x and Win32
BEGIN {require 5.005_03;}
-$VERSION = '6.15';
-($Revision) = q$Revision: 1.130 $ =~ /Revision:\s+(\S+)/;
+$VERSION = '6.16';
+($Revision) = q$Revision: 1.131 $ =~ /Revision:\s+(\S+)/;
require Exporter;
use Config;
# PRINT_PREREQ is RedHatism.
if ("@ARGV" =~ /\bPRINT_PREREQ\b/) {
- print join(" ", map { "perl($_)>=$self->{PREREQ_PM}->{$_} " } sort keys %{$self->{PREREQ_PM}}), "\n";
+ print join(" ", map { "perl($_)>=$self->{PREREQ_PM}->{$_} " }
+ sort keys %{$self->{PREREQ_PM}}), "\n";
exit 0;
}
=item PREREQ_PRINT
Bool. If this parameter is true, the prerequisites will be printed to
-stdout and MakeMaker will exit. The output format is
+stdout and MakeMaker will exit. The output format is an evalable hash
+ref.
$PREREQ_PM = {
'A::B' => Vers1,
$VERSION = '1.00';
*VERSION = \'1.01';
- $VERSION = sprintf "%d.%03d", q$Revision: 1.130 $ =~ /(\d+)/g;
+ $VERSION = sprintf "%d.%03d", q$Revision: 1.131 $ =~ /(\d+)/g;
$FOO::VERSION = '1.10';
*FOO::VERSION = \'1.11';
our $VERSION = 1.2.3; # new for perl5.6.0
$Is_MacOS $Is_VMS
$Debug $Verbose $Quiet $MANIFEST $DEFAULT_MSKIP);
-$VERSION = 1.39;
+$VERSION = 1.41;
@ISA=('Exporter');
@EXPORT_OK = qw(mkmanifest
manicheck filecheck fullcheck skipcheck
checks if all the files within a C<MANIFEST> in the current directory
really do exist. If C<MANIFEST> and the tree below the current
-directory are in sync it exits silently, returning an empty list.
+directory are in sync it silently returns an empty list.
Otherwise it returns a list of files which are listed in the
C<MANIFEST> but missing from the directory, and by default also
outputs these names to STDERR.
_fix_manifest($MANIFEST);
my $manifest = maniread();
- open(MANIFEST, ">>$MANIFEST") or die "Could not open $MANIFEST: $!";
+ my $is_open;
foreach my $file (_sort keys %$additions) {
next if exists $manifest->{$file};
+ $is_open++ or open(MANIFEST, ">>$MANIFEST") or
+ die "Could not open $MANIFEST: $!";
+
my $comment = $additions->{$file} || '';
printf MANIFEST "%-40s%s\n", $file, $comment;
}
- close MANIFEST;
+ close MANIFEST if $is_open;
}
'Big-Dummy/Makefile.PL' => <<'END',
use ExtUtils::MakeMaker;
-printf "Current package is: %s\n", __PACKAGE__;
+# This will interfere with the PREREQ_PRINT tests.
+printf "Current package is: %s\n", __PACKAGE__ unless "@ARGV" =~ /PREREQ/;
WriteMakefile(
NAME => 'Big::Dummy',
use strict;
# these files help the test run
-use Test::More tests => 39;
+use Test::More tests => 41;
use Cwd;
# these files are needed for the module itself
);
is_deeply( $files, \%expect, 'maniadd() vs MANIFEST without trailing newline');
+SKIP: {
+ chmod( 0400, 'MANIFEST' );
+ skip "Can't make MANIFEST read-only", 2 if -w 'MANIFEST';
+
+ eval {
+ maniadd({ 'META.yml' => 'hock' });
+ };
+ is( $@, '', "maniadd() won't open MANIFEST if it doesn't need to" );
+
+ eval {
+ maniadd({ 'grrrwoof' => 'yippie' });
+ };
+ like( $@, qr/^Could not open MANIFEST/,
+ "maniadd() dies if it can't open the MANIFEST" );
+
+}
+
+
END {
- # the args are evaluated in scalar context
is( unlink( keys %Files ), keys %Files, 'remove all added files' );
remove_dir( 'moretest', 'copy' );
--- /dev/null
+#!/usr/bin/perl -w
+
+BEGIN {
+ if( $ENV{PERL_CORE} ) {
+ chdir 't' if -d 't';
+ @INC = ('../lib', 'lib');
+ }
+ else {
+ unshift @INC, 't/lib';
+ }
+}
+
+use strict;
+use Config;
+
+use Test::More tests => 8;
+use MakeMaker::Test::Utils;
+
+# 'make disttest' sets a bunch of environment variables which interfere
+# with our testing.
+delete @ENV{qw(PREFIX LIB MAKEFLAGS)};
+
+my $Perl = which_perl();
+my $Makefile = makefile_name();
+my $Is_VMS = $^O eq 'VMS';
+
+chdir($Is_VMS ? 'BFD_TEST_ROOT:[t]' : 't');
+perl_lib;
+
+$| = 1;
+
+ok( chdir('Big-Dummy'), "chdir'd to Big-Dummy" ) ||
+ diag("chdir failed: $!");
+
+unlink $Makefile;
+my $prereq_out = run(qq{$Perl Makefile.PL "PREREQ_PRINT=1"});
+ok( !-r $Makefile, "PREREQ_PRINT produces no $Makefile" );
+is( $?, 0, ' exited normally' );
+{
+ package _Prereq::Print;
+ no strict;
+ $PREREQ_PM = undef; # shut up "used only once" warning.
+ eval $prereq_out;
+ ::is_deeply( $PREREQ_PM, { strict => 0 }, 'prereqs dumped' );
+ ::is( $@, '', ' without error' );
+}
+
+
+$prereq_out = run(qq{$Perl Makefile.PL "PRINT_PREREQ=1"});
+ok( !-r $Makefile, "PRINT_PREREQ produces no $Makefile" );
+is( $?, 0, ' exited normally' );
+::like( $prereq_out, qr/^perl\(strict\) \s* >= \s* 0 \s*$/x,
+ 'prereqs dumped' );
+
+
+# Currently a bug.
+#my $prereq_out = run(qq{$Perl Makefile.PL "PREREQ_PRINT=0"});
+#ok( -r $Makefile, "PREREQ_PRINT=0 produces a $Makefile" );
+#is( $?, 0, ' exited normally' );
+#unlink $Makefile;
+
+# Currently a bug.
+#my $prereq_out = run(qq{$Perl Makefile.PL "PRINT_PREREQ=1"});
+#ok( -r $Makefile, "PRINT_PREREQ=0 produces a $Makefile" );
+#is( $?, 0, ' exited normally' );
+#unlink $Makefile;