On Tue, Apr 27, 2010 at 05:57:11PM +0200, Jean-Fran?ois Mertens wrote:
> 
> On 27 Apr 2010, at 17:43, Jack Howarth wrote:
> 
> >   To recap, the problem with using a single package with split-off
> > strategy is that both gcc4x and gcc4x-bin would require a Conflicts/
> > Replaces on the older gcc4x packages which have overlapping files.
> > This is because the older gcc4x packages can't know that they are
> > are able co-exist with the newer gcc4x package and will Conflict  
> > with it.
> > This causes dependency failures for fink in the absence of an explicit
> 
> Jack _ I told you since the beginning (Re: co-existing gcc4x packages,  
> april 25)  that it would be much simpler to keep the name gcc45 for  
> the splitoff containing the symlinks _ This way, no need to bother  
> other pkgs, and you
> avoid the trouble you mention..

That is the same layout/solution I was suggesting, which I think Jack
read backwards from the way I tried to describe. For example:

Currently:

  gcc4x:
    Conflicts/Replaces all other gcc4x
    Depends: gcc4x-shlibs
    contents:
      compiler in lib/gcc4.x/ *1
      info/manpages in share/ *1
      symlinks from bin/ to lib/gcc4.x/ *2
    splitoff:gcc4x-shlibs

*1 are the generic-name/collisions among different gcc4x that prevent
concurrent installation. It's the "default compiler in the standard
visible location".

*2 are the actual compilers, in a subdir that is specific/named for
each different gcc4x package

I and I think jfm are suggesting moving *2 into a new package.

  gcc4x:
    Conflicts/Replaces all other gcc4x
    Depends: gcc4x-compiler
    contents:
      compiler in lib/gcc4.x *1
      info/manpages in share *1
    splitoff:gcc4x-compiler
      Replaces: gcc4x *3
      Depends: gcc4x-shlibs
      contents:
        symlinks in bin to lib/gcc4.x
    splitoff:gcc4x-shlibs

*3 is so that user can upgrade cleanly from the old gcc4x
package...allows new package to overwrite same-named files in old
package that are now supposed to be in new/different package.

Packages that currently have a dependency on gcc4x and rely on that to
supply a compiler in bin/ (i.e., the default PATH), well, that's still
true. And the manpages and texinfo files that are in the default doc
sets are in that same package. All the "default" stuff is a
self-consistent set in a single package. Obviously you can't "default"
to more than one gcc4x at a time...

But now, all the gcc4x-compiler packages are the actual compilers, and
because they are each in their own subdir in lib/, they can all be
installed concurrently. If a package really wants to, it can access
them there (adjusting its PATH or using absolute pathname to ignore
the default PATH and therefore not caring what gcc4x "default"
package--if any--is installed).

dan

-- 
Daniel Macks
dma...@netspace.org
http://www.netspace.org/~dmacks


------------------------------------------------------------------------------
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to