Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the Inline CPAN distribution.

Report information
The Basics
Id: 58171
Status: resolved
Priority: 0/
Queue: Inline

People
Owner: Nobody in particular
Requestors: jolemartin [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in:
  • 0.46
  • 0.46_01
Fixed in: (no value)



Have trouble with running/make test in a multi-version perl install. The trouble comes from creat_config_file picking up binary incompatible versions of modules when it mungs the @INC to limit module search directories after searching for all Inline.pm(s). As I'm not certain why it's limiting the number of include directories I don't know if this fix is kosher. It does avoid the failure where a 5.8.8 Data/Dumper.so was trying to load for a 5.10.1 install, I have Inline installed in 5.8.8 and am trying to install in 5.10.1 For illustration, here's my @INC before create_config_file mungs it to create the -I arguments during make test ../blib/lib blib/lib /my/lib/perl5/5.10.1/x86_64-linux-thread-multi /my/lib/perl5/5.10.1 /my/lib/perl5/site_perl/5.10.1/x86_64-linux-thread-multi /my/lib/perl5/site_perl/5.10.1 /my/lib/perl5/site_perl/5.8.8 /my/lib/perl5/site_perl these are the -I args it comes up with by grepping for Inline and auto/Inline -I../blib/lib/ -I../blib/lib -Iblib/lib -I/my/lib/perl5/site_perl/5.10.1/x86_64-linux-thread-multi -I/my/lib/perl5/site_perl/5.10.1 -I/my/lib/perl5/site_perl/5.8.8 and this is the @INC Inline.pm reports from the subsequent system perl call ( from an added BEGIN block ) ../blib/lib/ ../blib/lib blib/lib /my/lib/perl5/site_perl/5.10.1/x86_64-linux-thread-multi /my/lib/perl5/site_perl/5.10.1/x86_64-linux-thread-multi /my/lib/perl5/site_perl/5.10.1 /my/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /my/lib/perl5/site_perl/5.8.8 /my/lib/perl5/5.10.1/x86_64-linux-thread-multi /my/lib/perl5/5.10.1 /my/lib/perl5/site_perl/5.10.1/x86_64-linux-thread-multi /my/lib/perl5/site_perl/5.10.1 /my/lib/perl5/site_perl/5.8.8 /my/lib/perl5/site_perl . which is out of order and 5.8.8 site_perl modules that have migrated to core cause the trouble. the change below seems to work, but I doubt it's correct as those manipulations probably have a purpose. --- prev/Inline.pm 2010-03-31 03:11:33.000000000 -0700 +++ new/Inline.pm 2010-06-05 17:32:52.680573000 -0700 @@ -788,9 +788,8 @@ # -d File::Spec->catdir($_,"auto","Inline") # )} @INC); #system "$perl $INC -MInline=_CONFIG_ -e1 $dir" - my @INC = map { "-I$_" } - ($inline, - grep {(-d File::Spec->catdir($_,"Inline") or -d File::Spec->catdir($_,"auto","Inline"))} @INC); + my @INC = map { "-I$_" } ( $inline, @INC ); + #grep {(-d File::Spec->catdir($_,"Inline") or -d File::Spec->catdir($_,"auto","Inline"))} @INC); system $perl, @INC, "-MInline=_CONFIG_", "-e1", "$dir" and croak M20_config_creation_failed($dir); return;
RT-Send-CC: jolemartin [...] gmail.com
On Sat Jun 05 21:18:25 2010, jmartin wrote: Show quoted text
> and this is the @INC Inline.pm reports from the subsequent system perl > call ( from an added BEGIN block ) > > ../blib/lib/ > ../blib/lib > blib/lib > /my/lib/perl5/site_perl/5.10.1/x86_64-linux-thread-multi > /my/lib/perl5/site_perl/5.10.1/x86_64-linux-thread-multi > /my/lib/perl5/site_perl/5.10.1 > /my/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi > /my/lib/perl5/site_perl/5.8.8 > /my/lib/perl5/5.10.1/x86_64-linux-thread-multi > /my/lib/perl5/5.10.1 > /my/lib/perl5/site_perl/5.10.1/x86_64-linux-thread-multi > /my/lib/perl5/site_perl/5.10.1 > /my/lib/perl5/site_perl/5.8.8 > /my/lib/perl5/site_perl > . > > which is out of order and 5.8.8 site_perl modules that have migrated
to Show quoted text
> core cause the trouble. >
It would be preferable if this could be fixed by simply re-ordering this @INC. (As regards Inline's @INC manipulations, I don't really know what's needed ... or why :-) Immediately after the assignment to 'my @INC' try: ################### @INC = sort by_version @INC; sub by_version { no warnings 'numeric'; if($b !~ /\D5\./) {return 0} if($a !~ /\D5\./) {return -1} (split /\D5\./, $b)[1] <=> (split /\D5\./, $a)[1]; } ################### Does that fix the problem ? If you're going to rebuild Inline from source, make that amendment to Inline.pm in the source distro before building. If you want to test it with your existing Inline installation (ie without rebuilding) then you'll need to place that code in auto/Inline/create_config_file.al (instead of Inline.pm) and then, I think, remove any existing _Inline/config file (to force Inline to write another one). Sorry for the delay in responding. I missed the initial bug report - perhaps aided by the fact that there's no subject line :-) Cheers, Rob
Lack of follow-up