perl5.8 fixup

Eric Hall opendarwin.org at darkart.com
Thu Mar 5 13:43:57 PST 2009


On Tue, Mar 03, 2009 at 08:21:10PM -0800, Bradley Giesbrecht wrote:
> On Mar 3, 2009, at 4:22 PM, Bradley Giesbrecht wrote:
> 
> >Situation: I removed macports and reinstalled using the macports  
> >wiki recommended methods.
> >I installed perl5.8 and only perl5.8 using all variants.
> >I looked for and found a p5 that thought would not activate without  
> >using -f.
> >Seeing as threads along these lines are current I'm going to assume  
> >the readers of this message know something about what I'm talking  
> >about.
> >
> >Profession: I believe there is a problem with some port p5 modules  
> >that conflict with perl5.8 installed modules.
> >
> >Acknowledgments: I don't beleive I'm qualified to offer a solution  
> >for the p5 conflicts with perl5.8.
> >
> >Problems: Without the user adding another env var it appears the  
> >port perl5.8 modules may not be found. Some port p5 modules seem to  
> >collide with port pelr5.8 installed modules.
> >
> >Goal: Build consensus that there is a problem with port perl5.8 base  
> >modules not being available without adding another env var. Build  
> >consensus that some port p5 modules collide with port perl5.8 base  
> >modules. Move toward a solution.
> >

[snip]


	I think removing perl module ports that *currently* conflict
with and match modules installed by the perl5 port is a bad idea.
In particular, until perl5.8 @5.8.9, there were several perl modules
installed by perl5.8 (@5.8.8 here, File::Temp for example) that were 
too old for some other modules and/or perl-based code/ports.  Thus
a newer version of the module needed to be installed in order for 
the higher-level ports to function.  I fully expect this problem will
occur again, and we need to be able to solve it.

	One of the ways is to invert the @INC tree (ala FreeBSD
ports) so that macports installed perl modules (from p5-*) are found
before the base perl modules (from the perl5.x port), thus the
ports don't have to be set to overwrite the installed perl modules.

	The other problem is what to do with the man pages.  This is
a fairly recent problem (appeared around the time perl5.8 went to
perl 5.8.9).  I haven't come up with a satisfactory solution for this
yet, the primary problem being that when a user types, for example,
'man CGI', how do we ensure that they get the "right" CGI man page?
How do we ensure they get a mac-ports installed man page when they have
perl5.8 installed, but not the p5-cgi port?  And if they have both
perl5.8 and p5-cgi, which man page should they get when they type
'man CGI'?

	Overall I agree there is a problem with the way that
perl (at least perl5.8) and modules (p5-*) currently interact, and
we need a good (great? sufficient?) solution for the problem.

		-eric



More information about the macports-dev mailing list