On Mon, Mar 15, 2010 at 03:49:16PM +0100, Max Horn wrote:
> Hi there,
> 
> so last night I finally made the move from OS X 10.5 to 10.6. As part of 
> that, I reinstalled Fink from scratch. This went mostly fine, but there were 
> a couple of annoyances, one of which I want to describe here:
> 
> Several packages, among them libcurl4 and coreutils (maintainers CCed), 
> forced me to install the fink-obsolete-packages package -- even though I 
> installed nothing that was obsolete. The reason for this is of course that 
> these packages have obsolete splitoffs, which depend on 
> fink-obsolete-packages and hence pull in fink-obsolete-packages.
> 
> This is not very nice, IMO. For me personally it's easy to determine that the 
> dependency on fink-obsolete-packages is only an unwanted side effect and I 
> just removed it after those packages installed. But for users in general, 
> this seems like a negative experience... they install a brand new package and 
> suddenly see something about obsolete stuff being installed. Not nice :/.
> 
> I am not sure what the best way is to resolve this, but I hope that it can be 
> resolved ... one idea that comes to mind is forbidding splitoffs to depend on 
> fink-obsolete-packages, i.e. enforcing a policy where either all splitoffs 
> (including the master splitoff) in an .info file depend on 
> fink-obsolete-packages, or none. In this particular case that would mean that 
> the obsolete splitoffs needs to go to separate .info files. That seems easy 
> enough to do, however, I am not sure whether this couldn't cause some other 
> weird dependency side effects, when upgrading from old package versions... 

Lots of weird dependency problems (usually upgrade deadlocks) have
happened when I tried that in some places. One common case is an
existing foo:depends:foo-split(=%v-%r) when foo-split becomes obsolete
and moves from foo.info to foo-split.info. Fink seems smart enough to
do atomic update of multiple packages in a single .info. But in
separate .info, if foo-split is in the upgrade pile first it will fail
because upgrading it would break the existing dep of foo on it.

dan
> The other alternative would be to implement the ancient idea of an 
> "RuntimeDepends" (or "InstallDepends", or whatever) field. I.e. a field which 
> is kind of the  complement of BuildDepends: Any dependencies declared in it 
> only count when installing the package, but do *not* count towards build 
> dependencies. 
> Then, fink-obsolete-packages could be a RuntimeDepends. I vaguely recall that 
> in the past, we had other cases which might benefit from such a field (and 
> the analogous RuntimeConflicts / InstallConflicts field), although the 
> details elude me right now.
> It would be quite easy to add this field, but the fact that it doesn't yet 
> exists might indicate that it's a bad idea for some reason I am not seeing 
> right now, or that it's simply not useful enough to warrant adding it (and 
> thus bloating the .info syntax further).

I still love this feature idea--always seemed like a very rare need to
have it though (this is one of the few I can think of where we have a
runtime requirement that isn't also a buildtime one). There are some
hooks in the engine already for it (related feature: actual Shlibs
dependency support), but I assume that because it hasn't been used
other things have been changed and may need hacking to respect it.

Conflicts actually is not parallel to the Depends behavior: Conflicts
is only a runtime thing, not implicitly also included in
BuildConflicts.

dan

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


------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
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