[svn:dbi] r14009 - dbi/trunk

[email protected]
Newsgroups perl.dbi.changes
Message-ID <[email protected]>
Author: REHSACK
Date: Sat May 22 09:15:21 2010
New Revision: 14009

Modified:
   dbi/trunk/Makefile.PL

Log:
- modernize toolchain requirements
- handle conflicting modules
- discard incompatible EU::MM parameters for older EU::MM
- removed explicit prerequisites which are included in
  required Perl 5.8 core


Modified: dbi/trunk/Makefile.PL
==============================================================================
--- dbi/trunk/Makefile.PL	(original)
+++ dbi/trunk/Makefile.PL	Sat May 22 09:15:21 2010
@@ -81,19 +81,36 @@
     $::opt_thread = 0;
 }
 
-
- 
 my %opts = (
     NAME   => 'DBI',
     AUTHOR => 'Tim Bunce ([email protected])',
     VERSION_FROM  => 'DBI.pm',
     ABSTRACT_FROM => 'DBI.pm',
-    PREREQ_PM => {
-        "Test::Simple" => 0.84,
-        "Storable" => 1,
-        "File::Spec" => 0,
-        "Scalar::Util" => 0,
+    MIN_PERL_VERSION => '5.008',
+    BUILD_REQUIRES => {
+        'ExtUtils::MakeMaker' => '6.48',
+        'Test::Simple' => '0.90',
+    },
+    META_MERGE => {
+	resources => {
+	    repository  => 'https://svn.perl.org/modules/dbi/trunk/',
+	    MailingList => 'mailto:[email protected]',
+	    license     => 'http://dev.perl.org/licenses/',
+	},
+	recommends => {
+	    'RPC::PlServer' => 0.2001,
+	    'Net::Daemon' => 0,
+	    'SQL::Statement' => 1.28,
+	    'MLDBM' => 0,
+	    'DB_File' => 0,
+	},
+    },
+    CONFLICTS => {
+	'SQL::Statement' => '1.27',
+	'DBD::AnyData' => '0.09',
+	'DBD::CSV' => '0.29',
     },
+    LICENSE => 'perl',
     EXE_FILES => [ "dbiproxy$ext_pl", "dbiprof$ext_pl", "dbilogstrip$ext_pl" ],
     DIR => [ ],
     dynamic_lib => { OTHERLDFLAGS => "$::opt_g" },
@@ -105,7 +122,6 @@
 	COMPRESS => 'gzip -v9', SUFFIX => 'gz',
     },
 );
-$opts{LICENSE} = 'perl' if $ExtUtils::MakeMaker::VERSION >= 6.3002;
 $opts{CAPI} = 'TRUE' if $Config{archname} =~ /-object\b/i;
 
 if (my $gccversion = $Config{gccversion}) {	# ask gcc to be more pedantic
@@ -155,8 +171,71 @@
 # before any other action is taken
 $is_developer && -d ".git" && -f "git-svn-vsn.pl" and system $^X, "git-svn-vsn.pl";
 
+my $conflictMsg = <<EOCM;
+***
+    This version of DBI conflicts with the version of
+    module %s (%s) you have installed.
+
+    It's strongly recommended that you update it after
+    installing this version of DBI.
+***
+EOCM
+
+sub CheckConflicts {
+    my %params    = @_;
+    my %conflicts = %{ $params{CONFLICTS} };
+    my $found     = 0;
+
+    while ( my ( $module, $version ) = each(%conflicts) ) {
+        undef $@;
+        eval "require $module";
+        next if $@;
+        my $installed = eval "\$" . $module . "::VERSION";
+        if ( $installed le $version ) {
+            ++$found;
+            my $msg = $conflictMsg;
+            my $warning = sprintf( $msg, $module, $installed );
+            warn $warning;
+        }
+    }
+
+    return !$found;
+}
+
+sub WriteMakefile1 {
+    #Written by Alexandr Ciornii, version 0.21. Added by eumm-upgrade.
+    my %params       = @_;
+    my $eumm_version = $ExtUtils::MakeMaker::VERSION;
+    $eumm_version = eval $eumm_version;
+    die "EXTRA_META is deprecated" if ( exists( $params{EXTRA_META} ) );
+    die "License not specified"    if ( !exists( $params{LICENSE} ) );
+    if ( $params{BUILD_REQUIRES} and ( $eumm_version < 6.5503 ) ) {
+        #EUMM 6.5502 has problems with BUILD_REQUIRES
+        $params{PREREQ_PM} = { %{ $params{PREREQ_PM} || {} }, %{ $params{BUILD_REQUIRES} } };
+        delete $params{BUILD_REQUIRES};
+    }
+    delete $params{CONFIGURE_REQUIRES} if ( $eumm_version < 6.52 );
+    delete $params{MIN_PERL_VERSION}   if ( $eumm_version < 6.48 );
+    delete $params{META_MERGE}         if ( $eumm_version < 6.46 );
+    delete $params{META_ADD}           if ( $eumm_version < 6.46 );
+    delete $params{LICENSE}            if ( $eumm_version < 6.31 );
+
+    # more or less taken from Moose' Makefile.PL
+    if ( $params{CONFLICTS} ) {
+        my $ok = CheckConflicts(%params);
+        exit(0) if ( $params{PREREQ_FATAL} and not $ok );
+        my $cpan_smoker = grep { $_ =~ m/(?:CR_SMOKER|CPAN_REPORTER|AUTOMATED_TESTING)/ } keys %ENV;
+        unless ( $cpan_smoker || $ENV{PERL_MM_USE_DEFAULT} ) {
+            sleep 4 unless ($ok);
+        }
+        delete $params{CONFLICTS};
+    }
+
+    WriteMakefile(%params);
+}
+
 $Verbose = $::opt_v;
-WriteMakefile(
+WriteMakefile1(
     dbd_edit_mm_attribs(\%opts, {
 	create_pp_tests => 1,
 	create_nano_tests => 1,
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.