[Yum-devel] soft deps(Suggests, Recommends, etc)

Florian Festi ffesti at redhat.com
Tue Sep 8 10:03:24 UTC 2009

On 09/04/2009 05:18 PM, Seth Vidal wrote:
> Thoughts?
> Problems I'm not thinking of with an implementation like this?
> Is this a solution looking for a problem? (distinct possibility in my 
> mind)
You should have a deeper look at the soft requirements SUSE is using in 
their stack. Their are using additional tags within packages and comps 
group like "pattern" that reside in additional files but use the same 
tags. The documentation in their wiki [1][2] could be a bit more precise 
but I hope we can fix the ambiguities soon (May be asking helps.).

There are some very interesting things that can be done with the right 
combination of those tags [3]. With a bit of syntactic sugar and a 
depsolver that keeps an eye on some of the installed tags [5] it is 
possible to make translation/lang support packages work (smoothly, I 
hope) and though could finally replace the conditionals in the comps file.

I personally doubt that a solution that resides in either the packages 
or the meta data *only* will be able to solve all or even most use 
cases. A lot of stuff is supposed to just work - like language support - 
and it should be the packagers responsibility to make it just work. 
Grouping packages otoh typically should be done centralized or per spin 
or by a user that puts his own view of the (Fedora) world on his home page.

As the natural implementation IMHO is adding virtual packages that 
contain the (soft) requires support for those tags in real packages 
should be a byproduct as soon as RPM upstream adds those.

The other question is to what extend the yum dep solver is capable of 
handling such requirements or can be extended accordingly. As a greedy 
(polynomial) algorithm it is too simple to solve the "general package 
handling problem" which is (sort of) NP complete (SAT [6] solver, 
remember) [7]. While it's short comings may be acceptable in normal 
install/update situations massive use of soft requires will make it fail 
much more often.

Expect a better founded opinion/posting after my return from the 
openSUSE conference in about two weeks.


[1] http://en.opensuse.org/Software_Management/Dependencies
[2] http://en.opensuse.org/Patterns
[3] http://en.opensuse.org/Software_Management/Dependencies/Conjunctions
[4] http://en.opensuse.org/Software_Management/Dependencies/Language
[5] http://en.opensuse.org/Libzypp/Dependencies/Language/Internals
[6] http://en.wikipedia.org/wiki/Boolean_satisfiability_problem
[7] The typical real world problems can be solved in polynomial time nevertheless the algorithm need to be able deal with all situations.

Reg. Adresse: Red Hat GmbH, Hauptstätter Str. 58, 70178 Stuttgart
Handelsregister: Amtsgericht Muenchen HRB 153243
Geschaeftsfuehrer: Brendan Lane, Charlie Peters, Michael Cunningham,
Charles Cachera

More information about the Yum-devel mailing list