Circular dependencies

Dimitris Glezos dimitris at glezos.com
Wed Nov 8 21:00:04 UTC 2006


Ralf Ertzinger wrote:
> Is it "legal" to have two packages which Require: each other
> (explicitly or implicitly)?

Speaking in general graph theory (dependencies can be seen as nodes
connected with directed arrows producing a directed graph), it becomes
more tricky when one allows circles, ie jump from Directed Acyclic
Graphs (DAGs) to cyclic ones.

I can't imagine how this could currently affect our tools but it could
become a thorn if we ever need to do smart handling of the dependency
graph. For example, Directed Acyclic Graphs have topological orders [1] 
(which might be useful for, or is already used by yum), simpler/faster 
search algorithms (depth-first search) etc.

Don't know if this "potential" is worth the effort of circumventing the
mutual dependency though (for example, by creating a dummy "parent"
dependency package that both package will depend on, etc). I would say 
*it is*, because it keeps things simple and keeps some potentials open, 
but then again, I am neither a maintainer nor the specialist on the 
internals of rpm/yum, or even on graph theory. :)

-d


[1]: http://en.wikipedia.org/wiki/Topological_sort


-- 
Dimitris Glezos
Jabber ID: glezos at jabber.org, PGP: 0xA5A04C3B
http://dimitris.glezos.com/

"He who gives up functionality for ease of use
loses both and deserves neither." (Anonymous)
--




More information about the fedora-extras-list mailing list