RPM Soft dependencies (Was: Re: Agenda for the 2009-05-26 Packaging Committee meeting)

Adam Williamson awilliam at redhat.com
Sun May 31 05:23:11 UTC 2009


On Sat, 2009-05-30 at 12:09 -0400, Horst H. von Brand wrote:

> This whole "soft dependencies" idea has been discussed to death numerous
> times already, and the conclusion has always been that they really don't
> solve anything. There is a wide range of very different functionalities 
> under this idea: Suggestions for additional packages that might be useful
> for a tiny minority to packages that should be installed together always
> except if you are extremely tight on space, packages that work well
> together, packages that form a set with a common UI, ...

I can't agree with that. There's cases where they're clearly very
useful.

One obvious one I maintain for Mandriva is Elisa (which just got renamed
to Moovida). If certain other packages are involved, it gains very
useful features...but it works perfectly well without them, and some
users may not want those features. A soft dependency covers this
situation pretty perfectly; by default you get the extra dependencies
installed so the features will be available, but if you're someone who
needs to optimize disk space or number of installed packages you'll have
configured urpmi not to install soft dependencies so you won't get them,
and if you didn't do that but you later decide to remove one of the soft
deps, you can. I consider this a significant win, the package would be
objectively less good without this.

Here's the external soft deps in the packages...

# visualizations in music playback
Suggests:	gstreamer0.10-libvisual
# iPod support
Suggests:	python-gpod
# For UPnP support
Suggests:	python-coherence
# For the weather report plugin
Suggests:	python-pymetar
# lets moovida be a UPNP server
Suggests:	python-coherence
# DAAP support
Suggests:	python-daap
# Needed for DAAP plugin
Suggests:	avahi-python
# Needed for yes.fm support
Suggests:	python-simplejson
# For LIRC input support
Suggests:	python-lirc

I really think the soft deps are the right way to do things here. Those
things aren't hard deps, the app works without them, and there are
perfectly valid reasons you might not want them. But on the other hand,
it kinda sucks to have no indication of the fact that they provide
significant useful features to Moovida in the package metadata. They're
certainly not things you'd easily figure out on your own, you'd probably
just think Moovida couldn't *do* that stuff. I'm having a hard time
seeing how the soft deps aren't performing a really useful function,
here.

That was just one example. I used soft deps in quite a lot of my MDV
packages. They just seemed a good way to handle several situations. mc
is another example of an app which works with quite a minimal set of
other packages installed, but has a lot more features with more
installed. I really think it's nice to have a way to handle this.
-- 
Adam Williamson
Fedora QA Community Monkey
IRC: adamw | Fedora Talk: adamwill AT fedoraproject DOT org
http://www.happyassassin.net




More information about the devel mailing list