[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Non-related 'Recommends' dependencies - bug or not?

Eugene V. Lyubimkin wrote:
> libgstreamer-plugins-base0.10-0 is only suggests gnome-app-install.
> I've found the actual chain:
> p   libeel2-2.20 Recommends synaptic

To me this definitely looks wrong.

In general libs should be extremely careful about using Recommends for 
applications, especially if they are used by other generic applications 
or even pulled in almost by default by desktop environments.

Dependencies should in principle be "top down", not "bottom up". And 
defining dependencies from libs to apps is almost per definition "bottom 

The Recommends here should probably be replaced by a Suggests, same may be 
true for app-install-data, which it also recommended.

There are plenty of other examples. Here's a few of my favorites (look up 
what packages depend on these libs yourself):
- libadns1 -> libadns1-bin (test tools/utils)
- libdjvulibre21 -> djvulibre-desktop (WTF?)
- libesd0 -> esound-clients
- libgpod3 -> libgpod-common (I don't have an iPod, but do want amarok)
- libpcsclite1 -> pcscd (a daemon even; I don't have a smartcard reader)
- libsane -> sane-utils (OK, I do have a scanner; but how many don't?)

No, I did not file bugs for these yet, but now that I've assembled the 
list I probably will.

The thing is that loads of people will get these libs pulled in. Hardly 
any of them will ever need/want/use/miss the apps currently installed 
alongside. Apps should pull in libs, not the other way around.

Maintainers, try this if you have a lib recommending apps:
$ wget http://alioth.debian.org/~fjp/debtree/debtree_0.7.2_all.deb
# dpkg -i debtree_0.7.2_all.deb
$ debtree --no-conflicts --no-versions <lib> | dot -Tpng -o <lib>.png
$ $viewer <lib>.png

Anything behind black arrows (recommends) from your lib is possibly pulled 
in needlessly. The result for libdjvulibre21 is amazing; it's so amazing 
that I did not manage to create a viewable image for it, but the .dot 
file is here [1].
See the debtree website for info and other usages of debtree (shameless 
plug ;-)

A few examples where recommends (IMHO) probably do make sense:
- libdbus -> dbus
- libfam0 -> fam
- a number of recommends of udev

> And, for possible future similar issues, is debian-devel mailing list
> right place to discuss them in?

IMO, it's the perfect place to discuss this. Especially as long as there 
seems to be no general agreement on the use of recommends or as long as 
too many packages get it wrong.

It would be good to have a solid discussion that people filing bugs can 
refer to.


[1] http://alioth.debian.org/~fjp/tmp/dejavu.dot

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply to: