Begin forwarded message:

Date: Tue, 18 Dec 2012 12:20:47 -0000
From: "Jess Robinson" <casta...@desert-island.me.uk>
To: perl5-port...@perl.org
Subject: Re: JROBINSON grant report, #13


On Tue, 18 Dec 2012 11:48:51 -0000, Jess Robinson  
<casta...@desert-island.me.uk> wrote:

> diff -ru ./lib/DBI/DBD.pm  
> /usr/src/perl/perl-cross-compile/repo/perl/cpan/DBI/lib/DBI/DBD.pm
> --- ./lib/DBI/DBD.pm  2012-02-04 20:51:40.000000000 +0000
> +++  
> /usr/src/perl/perl-cross-compile/repo/perl/cpan/DBI/lib/DBI/DBD.pm    
> 2012-12-16  
> 15:11:29.000000000 +0000
> @@ -3283,7 +3283,7 @@
>
>   BEGIN {
>       $is_dbi = (-r 'DBI.pm' && -r 'DBI.xs' && -r 'DBIXS.h');
> -    require DBI unless $is_dbi;
> +    require DBI unless $is_dbi or $ENV{PERL_CORE};
>   }
>
>   my $done_inst_checks;
> @@ -3437,13 +3437,27 @@
>   sub dbd_dbi_arch_dir {
>       _inst_checks();
>       return '$(INST_ARCHAUTODIR)' if $is_dbi;
> -    my $dbidir = dbd_dbi_dir();
>       my %seen;
> +    my $dbi_version = '';
> +    if($ENV{PERL_CORE}) {
> +        ## also if($Config{usecrosscompile}) ? - cant load DBI as built  
> for other arch.
> +        my $updir = File::Spec->updir;
> +        my $CORElibdir = File::Spec->catdir(($updir) x 2, 'lib');
> +        my $DBI_pm = File::Spec->catfile($CORElibdir, 'DBI.pm');
> +        my $autoDBIdir = File::Spec->catdir($CORElibdir, 'auto', 'DBI');
> +        if(!-d $autoDBIdir) {
> +            die "Running under PERL_CORE, can't find $autoDBIdir";
> +        }
> +        $dbi_version = ExtUtils::MM_Unix->parse_version($DBI_pm);
> +    } else {
> +        $dbi_version = $DBI::VERSION;
> +    }
>       my @try = grep { not $seen{$_}++ } map { vmsify( unixify($_) .  
> "/auto/DBI/" ) } @INC;
>       my @xst = grep { -f vmsify( unixify($_) . "/Driver.xst" ) } @try;
>       Carp::croak("Unable to locate Driver.xst in @try") unless @xst;
>       Carp::carp( "Multiple copies of Driver.xst found in: @xst") if  
> @xst > 1;
> -    print "Using DBI $DBI::VERSION (for perl $] on $Config{archname})  
> installed in $xst[0]\n";
> +    print "Using DBI $dbi_version (for perl $] on $Config{archname})  
> installed in $xst[0]\n";
>       return File::Spec->canonpath($xst[0]);
>   }
>
> Looking at the above I've just realised I failed to change actual  
> finding of Driver.xst somewhere other than @INC, no wonder I had issues  
> with the actual building... I'll go fix that now!
>

Oops, nope, I was wrong. Somehow my brain read %INC not @INC, so this  
locating of Driver.xst does work without changes.

Jess


-- 
H.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/
using perl5.00307 .. 5.17   porting perl5 on HP-UX, AIX, and openSUSE
http://mirrors.develooper.com/hpux/        http://www.test-smoke.org/
http://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/

Reply via email to