On Sunday, January 12, 2003, at 11:48 AM, Chris Dolan wrote:

No, that's not right at all. As I discussed with rangerrick on the submission tracker, Perl already HAS a standard for dealing with binary incompatible modules. Apple stupidly overrode that mechanism and we've been dealing with it ever since.

By default, Perl creates a 5.6.0 and site_perl/5.6.0 or 5.8.0 and site_perl/5.8.0 directory beneath the lib/perl5 dir. The .info file I created last summer(?) did exactly that. It had several other flaws, but incompatibility with the 5.6.0 distro was not one of them. Just try that .info file and you'll see.
Right, I was under the impression that when apple's perl is set to look in /sw/lib/perl5, it would also look in subdirectories, and so find the 5.8.0 stuff as well. From what you wrote in the package submission tracker, it sounds like that is not the case. I take it back, I was working under a false assumption. =D

With the exception of the /sw/lib/perl dir (no! it should be /sw/lib/perl5!), this is good, and is very similar to what I advocated to rangerrick. We should think carefully about where we want the user-installed packages to go. In /sw? in /usr/local? Somewhere else?
/usr/local has all kinds of other implications, it's probably best not to mess with it if nothing else so that end users don't end up breaking things without knowing it. At least if we put them in /sw/lib/perl5/foo we can say "you shouldn't have done that". Heck, maybe we should make site_perl be "/sw/lib/perl5/broken"... =D

So what we end up with is:

- old perl modules:
  /sw/lib/perl5
Yes.

- official stuff that comes with perl:
  /sw/lib/perl/5.8(/darwin)?
No.  /usr/lib/perl5/5.8.0{,/darwin} as per the perl default
Right.

- stuff that's installed by users in the fink tree (bad!)
  /sw/lib/perl/5.8/site_perl(/darwin)?
/usr/lib/perl5/site_perl/5.8.0
Right.

- stuff that's installed by fink packages:
  /sw/lib/perl/5.8/vendor_perl(/darwin)?
OK, how about /sw/lib/perl5/fink_perl/5.8.0
That would be fine. It's easy to do either way, we set the vendor_perl directory at perl compile time, after that it doesn't matter -- my fink patch uses the -V:vendor* stuff anyways, so it doens't care where it is.

Hmm, no. I think that perl 5.6.0 and 5.8.0 should happily coexist. That's the way it works on every unix platform except OSX. Just because Apple screwed this up doesn't mean we should, too.
But that causes issues in the Fink world, because....

1. I install fink
2. I install postgresql and the postgresql perl module (the module ends up in /sw/lib/perl5/darwin/DBD)
3. I install the fink perl 5.8.0 package
4. I install foo-pm, which uses DBD::Pg to access the database for whatever it is that it does, and since perl5.8.0 is installed, it puts it in /sw/lib/perl5/5.8.0/darwin/Foo

When I try to use foo-pm, it won't work, but as far as Fink is concerned, everything is OK. We have to have some way of determining dependencies are available.

Not only that, there is the secondary issue of package foo-pm being completely different depending on the existance of the perl 5.8.0 package or not, which goes against fink packaging policy of the deb's being the same on every system they're built on.



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to