On Fri, Jan 29, 2010 at 10:09:43PM -0500, Hanspeter Niederstrasser wrote:
> Charles Lepple wrote:
> > The asciidoc package has a self-contained HTML generator, and "a2x",  
> > an everything-else generator that depends on Docbook and a number of  
> > related tools. Currently, the package has a 'Recommends' line for the  
> > a2x dependencies, but since Fink doesn't process the Recommends line,  
> > I figured it might be best to split that off into an asciidoc-a2x  
> > package with proper dependencies. I would also like the splitoff to be  
> > installed for users who are upgrading from the old unified package.
> > 
> > Should I use "Replaces: asciidoc (<< 8.4.5-3)" in the a2x splitoff, or  
> > will that confuse the Fink dependency engine? (I seem to have a way of  
> > finding things that work well with apt/dpkg, but not necessarily with  
> > Fink.)
> 
> Are you using the word 'splitoff' in the Fink sense of SplitOff within a 
> parent package (eg libfoo-dev and libfoo-shlibs are splitoffs of the 
> same package libfoo), or describing asciidoc-a2x as a totally separate 
> package independent of the rest of asciidoc?  In the first case, people 
> building the new 'trim' asciidoc will still end up building asciidoc-a2x 
> and pulling its dependencies even if they don't install it (a price to 
> pay with SplitOffs.  In the 2nd case, asciidox-a2x would probably Depend 
> on the new trimmed asciidoc, but the trimmed asciidoc would not care 
> whether asciidoc-a2x is around.
> 
> A possible solution would be to make a new package (whether a self 
> standing package or a SplitOff of another depends on your reasons for 
> doing this) called asciidoc-base, which includes everything that is not 
> a2x, as well as another package (or splitoff) called asciidoc-a2x, and 
> then have the newer revision of the package 'asciidoc' Depends on both 
> those packages.  This way someone with the old asciidoc will see the new 
> version and get both -base and -a2x automatically pulled in by the 
> dependency engine.  New users will get the option of installing just 
> -base, just -a2x, or both.
> 
> Package: asciidoc
> Depends: asciidoc-base, asciidoc-a2x
> Splitoff: <<
>    Package: asciidoc-base
>    Depends: whatever
>    Conflicts/Replaces: asciidoc (<< 8.4.5-3)
> <<
> Splitoff2: <<
>    Package: asciidoc-a2x
>    Depends: asciidoc-base (presumably), other stuff
>    Conflicts/Replaces: asciidoc (<< 8.4.5-3)
> <<

You only want Replaces in those two, not Conflicts, otherwise you have
a deadlock during upgrade from old asciidoc: when installing new
asciidoc, 1) old asciidoc is totally uninstalled, 2) new components
are installed (now that the Conflicts pkg is not present), 3) new
asciidoc is installed (now that its Depends are satisfied). But if an
external package Depends:asciidoc, step 1 can't happen.

> If you want to split a2x off because it pulls in too many random 
> Dependencies, then make SplitOff2 (-a2x) above be an entire new package 
> with its own .info file.  This way, someone building just asciidoc-base 
> will not pull in all those dependencies.

That sounds like a cleaner solution. Like it or not, fink is
substantially a source distro right now, so dependencies of "splitoffs
don't need" are still a burden.

dan

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


------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
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