Detecting dependency cycles and conflict dependency problems in packages
Hi List,
I'm new to Debian (but not to Linux) and got so impressed with its
package management system that I started switching all my boxes to that
distribution. But playing with dselect or apt-get sometimes raises
surprises because of weird package dependencies (I am using testing). I
do not know if there are tools that check the whole package dependency
graph for cycles or other problems and will be glad to learn about URL
on the topic.
Anyhow, my pet project for tonight was to write such a graph checker.
You'll find the result attached : first, a python script that detects
dependency cycles and conflict dependency cycles, second the result of a
run with the maximum path lenght set to 10 (I need to check why it
converges so fast...).
What I call a dependency cycle is something like (A depends on B and B
depends on A) which basically implies that A and B *have*to* be
installed and removed together. It may not be a mistake for some closely
related packages, but chances are that it will be with cycles of lenght
longer than 2.
What I call a conflict dependency problem is something like (A conflicts
with B and B depends on A). I saw at least one case where this was on
purpose to facilitate upgrade, but I would say that it is an actual
problem in most cases.
Usage is as simple as :
python debdep.py 10 < /var/lib/dpkg/available > report.txt
A known limitation is that my script does not care about version numbers
and hence will probably report a number of false alarms.
If there is no such tool yet to help maintain Debian packages
dependencies, I would be willing to clean up my script and turn it into
something more robust that would be useful to everyone. In any case, I
am very interested in any other type of problem in the dependency graph
you may come up with and will implement some code to detect them.
Hope this helps, it was a fun hack :-)
--
Nicolas Chauvat
#!/usr/bin/env python
#
# (c) 2001-2002 Nicolas Chauvat <nico@logilab.fr> - License is GPL
"""
Script for Debian that loads the list of available packages, then perform
several checks on the package dependency graph :
- detect dependency cycle
Ex: A depends on B that depends on A (aka A --> B --> A)
Ex: A --> B --> C --> A
- detect conflict dependency problems
Ex: A conflicts with B that depends on A (A **> B --> A)
Ex: A **> B --> C --> A
Any idea for other pattern to look for ?
"""
import sys
import string
def make_graph_from_file(file) :
"""
read dpkg list of available packages and
return a graph of dependencies and a graph of conflicts
"""
dep_graph = {}
conf_graph = {}
pkg = None
for line in file.xreadlines() :
if line[:8] == 'Package:' :
pkg = string.strip(line[9:-1])
elif line[:8] == 'Depends:' :
dep_graph[pkg] = []
for dep in string.split(line[9:-1],',') :
try:
dep_graph[pkg].append( string.strip(dep[:dep.index('(')]) )
except ValueError :
dep_graph[pkg].append(string.strip(dep))
elif line[:10] == 'Conflicts:' :
conf_graph[pkg] = []
for conf in string.split(line[11:-1],',') :
conf = string.strip(conf)
try:
conf_graph[pkg].append( string.strip(conf[:conf.index('(')] ))
except ValueError :
conf_graph[pkg].append(string.strip(conf))
return dep_graph, conf_graph
def multiply(A,B) :
"""
Multiply matrix A by B.
(Use optimisation as A and B are mostly filled with zeros !)
"""
result = {}
for node, arcs_to in A.items() :
d = {}
for to in arcs_to :
if B.has_key(to) :
for n in B[to] :
d[n] = None
if d :
result[node] = d.keys()
return result
def find_path(graph,start_node,end_node) :
"""
Find shortest path from start_node to end_node in given graph
"""
paths = [ [start_node] ]
while paths:
new_paths = []
cycles = []
for path in paths :
if not graph.has_key(path[-1]) :
continue
for d in graph[path[-1]] :
if not graph.has_key(d) : continue
if d == end_node :
cycles.append( path + [d] )
elif d not in path :
new_paths.append( path + [d] )
else :
pass # let's break that fatal cycle attraction
if cycles :
return cycles
else :
paths = new_paths
return []
def detect_cycles(g,graph,max_power) :
"""
Detect cycles in graph. Stop when reaching paths of length max_power
"""
cycles = []
for p in range(max_power) :
sys.stderr.write('POWER %i - %i nodes left\n'%(p,len(g)))
g = multiply(g,graph)
for node, arcs in g.items() :
if node in arcs :
sys.stderr.write('CYCLE for %s at power %i\n' %(node,p))
cycles.append( (node,p) )
del g[node]
for node, arcs in g.items() :
if not arcs :
del g[node]
if len(g) == 0 : break
return cycles
def main(filename=None,max_power=10) :
if filename :
file = open(filename)
else :
file = sys.stdin
sys.stderr.write('reading graph...\n')
dep_graph, conf_graph = make_graph_from_file(file)
sys.stderr.write('detecting dependency cycles...\n')
cycles = detect_cycles(dep_graph,dep_graph, max_power)
if cycles :
print "\n*** DEPENDENCY CYCLES DETECTED ***"
for cycle in cycles :
for path in find_path(dep_graph,cycle[0],cycle[0]) :
print string.join(path,' --> ')
sys.stderr.write('detecting conflict problems...\n')
cycles = detect_cycles(conf_graph,dep_graph, max_power)
if cycles :
print "\n*** CONFLICT DEPENDENCY CYCLES DETECTED ***"
for cycle in cycles :
for c in conf_graph[cycle[0]] :
for path in find_path(dep_graph,c,cycle[0]) :
print cycle[0],'**>',string.join(path,' --> ')
if __name__ == '__main__' :
main(max_power=int(sys.argv[1]))
*** DEPENDENCY CYCLES DETECTED ***
amphetamine-data --> amphetamine --> amphetamine-data
gwydion-dylan --> gwydion-dylan
cpp-2.95 --> cpp --> cpp-2.95
syslog-common --> msyslog --> syslog-common
gaim --> gaim-common --> gaim
caudium --> caudium-modules --> caudium
g++ --> g++-2.95 --> g++
libpspell2 --> libpspell2
phpgroupware --> phpgroupware-admin --> phpgroupware
phpgroupware --> phpgroupware-preferences --> phpgroupware
phpgroupware --> phpgroupware-addressbook --> phpgroupware
gobjc --> gobjc-2.95 --> gobjc
libwxxt1 --> libwxxt1
gpc --> gpc-2.95 --> gpc
amphetamine --> amphetamine-data --> amphetamine
phpgroupware-admin --> phpgroupware --> phpgroupware-admin
libkmid-dev --> kdelibs-dev --> libkmid-dev
gcj-3.0 --> libgcj2-dev --> gcj-3.0
phpgroupware-preferences --> phpgroupware --> phpgroupware-preferences
libbsf-java --> libxalan-java --> libbsf-java
blt-common --> blt --> blt-common
powermanga-data --> powermanga --> powermanga-data
msyslog --> syslog-common --> msyslog
sitescooper --> sitescooper-sites --> sitescooper
postfix --> postfix-ldap --> postfix
postfix --> postfix-pcre --> postfix
libstdc++2.10-dev --> g++-2.95 --> libstdc++2.10-dev
libmedusa0 --> libmedusa0
bible-kjv --> bible-kjv-text --> bible-kjv
postfix-ldap --> postfix --> postfix-ldap
gcc-2.95 --> gcc --> gcc-2.95
libeel0 --> libeel-data --> libeel0
g++-2.95 --> g++ --> g++-2.95
g++-2.95 --> libstdc++2.10-dev --> g++-2.95
autoconf --> autoconf2.13 --> autoconf
xscreensaver --> xscreensaver-gnome --> xscreensaver
autoconf2.13 --> autoconf --> autoconf2.13
tom --> libtom2-dev --> tom
xlibs --> xlibs
chill-2.95 --> chill --> chill-2.95
kerberos4kth1 --> kerberos4kth1
postfix-pcre --> postfix --> postfix-pcre
libgnome-vfs-common --> libgnome-vfs0 --> libgnome-vfs-common
libgnorba-dev --> libgnome-dev --> libgnorba-dev
rep --> librep9 --> rep
libgnome-dev --> libgnorba-dev --> libgnome-dev
gcc --> gcc-2.95 --> gcc
libssl0.9.6 --> libssl0.9.6
omniorb --> omniorb
gnome-panel --> gnome-panel-data --> gnome-panel
librep9 --> rep --> librep9
chill --> chill-2.95 --> chill
libstdc++3-dev --> g++-3.0 --> libstdc++3-dev
sitescooper-sites --> sitescooper --> sitescooper-sites
g++-3.0 --> libstdc++3-dev --> g++-3.0
g77 --> g77-2.95 --> g77
gaim-common --> gaim --> gaim-common
cpp --> cpp-2.95 --> cpp
libeel-data --> libeel0 --> libeel-data
g77-2.95 --> g77 --> g77-2.95
libgcj2-dev --> gcj-3.0 --> libgcj2-dev
caudium-modules --> caudium --> caudium-modules
powermanga --> powermanga-data --> powermanga
wordnet --> wordnet-base --> wordnet
xscreensaver-gnome --> xscreensaver --> xscreensaver-gnome
libtom2-dev --> tom --> libtom2-dev
ivtools-unidraw --> ivtools-unidraw
blt --> blt-common --> blt
gpc-2.95 --> gpc --> gpc-2.95
perl --> perl-modules --> perl
libxalan-java --> libbsf-java --> libxalan-java
csound --> csound
phpgroupware-addressbook --> phpgroupware --> phpgroupware-addressbook
bible-kjv-text --> bible-kjv --> bible-kjv-text
gnome-card-games --> gnome-card-games
wordnet-base --> wordnet --> wordnet-base
gobjc-2.95 --> gobjc --> gobjc-2.95
libgtkhtml-data --> gtkhtml --> libgtkhtml-data
gtkhtml --> libgtkhtml-data --> gtkhtml
perl-modules --> perl --> perl-modules
libgnome-vfs0 --> libgnome-vfs-common --> libgnome-vfs0
kdelibs-dev --> libkmid-dev --> kdelibs-dev
gnome-panel-data --> gnome-panel --> gnome-panel-data
gnome-bin --> libgnome32 --> gnome-libs-data --> gnome-bin
gnome-bin --> libgnomesupport0 --> gnome-libs-data --> gnome-bin
gnome-bin --> libgnomeui32 --> gnome-libs-data --> gnome-bin
gnome-bin --> libgnorba27 --> gnome-libs-data --> gnome-bin
gnome-libs-data --> gnome-bin --> libgnome32 --> gnome-libs-data
gnome-libs-data --> gnome-bin --> libgnomesupport0 --> gnome-libs-data
gnome-libs-data --> gnome-bin --> libgnomeui32 --> gnome-libs-data
gnome-libs-data --> gnome-bin --> libgnorba27 --> gnome-libs-data
libgnomesupport0 --> gnome-libs-data --> gnome-bin --> libgnomesupport0
xemacs21-mule --> xemacs21-support --> xemacs21 --> xemacs21-mule
xemacs21-mule --> xemacs21-bin --> xemacs21 --> xemacs21-mule
libgnorba27 --> gnome-libs-data --> gnome-bin --> libgnorba27
libgnomeprint15 --> libgnomeprint-data --> libgnomeprint-bin --> libgnomeprint15
xemacs21-bin --> xemacs21 --> xemacs21-mule --> xemacs21-bin
libgnomeprint-bin --> libgnomeprint15 --> libgnomeprint-data --> libgnomeprint-bin
libgnomeui32 --> gnome-libs-data --> gnome-bin --> libgnomeui32
xemacs21-support --> xemacs21 --> xemacs21-mule --> xemacs21-support
xemacs21 --> xemacs21-mule --> xemacs21-support --> xemacs21
xemacs21 --> xemacs21-mule --> xemacs21-bin --> xemacs21
libgnomeprint-data --> libgnomeprint-bin --> libgnomeprint15 --> libgnomeprint-data
libgnome32 --> gnome-libs-data --> gnome-bin --> libgnome32
*** CONFLICT DEPENDENCY CYCLES DETECTED ***
cupsys-pstoraster **> cupsys --> cupsys-pstoraster
lidsadm-2.2.19 **> lids-2.2.19 --> lidsadm-2.2.19
console-common **> console-data --> console-common
geda-gschem **> geda --> geda-gschem
wu-ftpd **> wu-ftpd-academ --> wu-ftpd
libgtk-imlib-perl **> libgnome-perl --> libgtk-imlib-perl
libeel-data **> libeel0 --> libeel-data
kgeo **> keuklid --> kgeo
syslog-common **> msyslog --> syslog-common
libax25 **> ax25-tools --> libax25
libcompfaceg1 **> compface --> libcompfaceg1
qstat **> xqf --> qstat
expect-dev **> expect5.31-dev --> expect-dev
expect-dev **> expect5.24-dev --> expect-dev
wordnet-base **> wordnet --> wordnet-base
fvwm **> fvwm2 --> fvwm
tcpd **> netbase --> tcpd
krolden **> zicq --> krolden
apache-common **> apache --> apache-common
apache-common **> apache --> apache-common
isdnvboxclient **> isdnutils --> isdnvboxclient
isdnvboxclient **> isdnvbox --> isdnvboxclient
postgresql **> postgresql-contrib --> postgresql
host **> dnsutils --> host
rxsock **> searchscripts --> rxsock
plplot **> plplot-dev --> plplot
plplot **> plplot-tcl --> plplot
plplot **> plplot-tcl --> plplot
clanlib0-common **> clanlib0-display-x11 --> clanlib0-common
clanlib0-common **> clanlib0-display-glx --> clanlib0-display-x11 --> clanlib0-common
debconf **> debconf-utils --> debconf
lapack **> lapack-dev --> lapack
perl-doc **> perl-5.004-doc --> perl-doc
perl-doc **> perl-5.005-doc --> perl-doc
perl-doc **> perl-5.6-doc --> perl-doc
libmailtools-perl **> mailtools --> libmailtools-perl
asclock-themes **> asclock --> asclock-themes
jed-common **> jed --> jed-common
libsp1 **> sp --> libsp1
dpsyco-lib **> dpsyco-base --> dpsyco-lib
phpgroupware-preferences **> phpgroupware --> phpgroupware-preferences
vnc-common **> vncserver --> vnc-common
libglade0-dev **> libglade-gnome0-dev --> libglade0-dev
zope **> squishdot --> zope
defoma **> psfontmgr --> defoma
defoma **> x-ttcidfont-conf --> defoma
python1.5-base **> python-base --> python1.5-base
python1.5-base **> python-regrtest --> python-base --> python1.5-base
python1.5-base **> python-regrtest --> python-base --> python1.5-base
python1.5-base **> python-regrtest --> python1.5-regrtest --> python1.5-base
texinfo **> tetex-bin --> tetex-base --> texinfo
texinfo **> tetex-base --> texinfo
koffice-libs **> koffice --> koffice-libs
libqt2 **> kde-designer --> libqt2
blt-common **> blt --> blt-common
procps **> libproc-dev --> procps
procps **> w-bassman --> procps
procps **> w-bassman --> procps
netpbm **> netpbm-nonfree --> netpbm
language-env **> user-ja --> language-env
xlibs-dev **> xlib6g-dev --> xlibs-dev
xfonts-100dpi-transcoded **> xfonts-biznet-iso-8859-2-100dpi --> xfonts-100dpi-transcoded
dia-common **> dia --> dia-common
siagoffice-common **> siag-common --> siagoffice-common
siagoffice-common **> siag-common --> siagoffice-common
siagoffice-common **> xpw --> siagoffice-common
siagoffice-common **> egon --> siagoffice-common
kdelibs3 **> keystone --> kdelibs3
netbase **> xinetd --> netbase
netbase **> nis --> netbase
netbase **> rstatd --> netbase
inn2-inews **> inn2 --> inn2-inews
telnet-ssl **> ssltelnet --> telnet-ssl
rplay-server **> rplay --> rplay-server
perl-debug **> perl-5.004-debug --> perl-debug
perl-debug **> perl-5.005-debug --> perl-debug
perl-debug **> perl-5.6-debug --> perl-debug
libole2-0 **> gnumeric --> libole2-0
libsnmp-session-perl **> mrtg --> libsnmp-session-perl
alsa-base **> alsaconf --> alsa-base
alsa-base **> alsaconf-0.4 --> alsa-base
sfs-common **> sfs-client --> sfs-common
python-popy **> zope-popyda --> python-popy
libpcap0 **> tcpdump --> libpcap0
libpcap0 **> tcpdump --> libpcap0
autoconf2.13 **> autoconf --> autoconf2.13
xfonts-thai-nectec **> xfonts-thai --> xfonts-thai-nectec
svgalibg1 **> svgalib1 --> svgalibg1
libhtml-parser-perl **> libwww-perl --> libhtml-parser-perl
libhtml-parser-perl **> libhtml-tree-perl --> libhtml-parser-perl
libecasound7 **> ecasound --> libecasound7
xfonts-base-transcoded **> xfonts-biznet-iso-8859-2-base --> xfonts-base-transcoded
xtux-common **> xtux --> xtux-common
bigloo-runtime-2.4a **> bigloo --> bigloo-runtime-2.4a
bigloo-runtime-2.4a **> bigloo --> bigloo-runtime-2.4a
python2.1-elisp **> python-elisp --> python2.1-elisp
hns2-cgi **> hns2 --> hns2-cgi
sysvinit **> file-rc --> sysvinit
sysvinit **> kbd --> sysvinit
librplay3 **> rplay --> librplay3
libreadline4 **> libreadline4-dev --> libreadline4
autoconf **> autoconf2.13 --> autoconf
xfonts-thai-manop **> xfonts-thai --> xfonts-thai-manop
libsensors1 **> lm-sensors --> libsensors1
libcanna1g **> canna --> libcanna1g
gftp-common **> gftp-gtk --> gftp-common
gftp-common **> gftp-text --> gftp-common
linuxdoc-tools **> sgml-tools --> linuxdoc-tools
libxine0 **> xine-dvdnav --> libxine0
libprozilla **> prozgui --> libprozilla
powertweak-text **> powertweak --> powertweak-text
groff-base **> groff --> groff-base
groff-base **> troffcvt --> groff --> groff-base
librpm0 **> rpm --> librpm0
hermes1 **> hermes1-dev --> hermes1
bible-kjv-text **> bible-kjv --> bible-kjv-text
emacspeak **> emacspeak-ss --> emacspeak
festival **> festvox-rablpc8k --> festival
festival **> festvox-rablpc16k --> festival
festival **> festvox-kdlpc16k --> festival
festival **> festvox-kdlpc8k --> festival
festival **> festvox-don --> festival
festival **> festlex-cmu --> festival
festival **> festlex-oald --> festival
festival **> festlex-poslex --> festival
python-mysqldb **> zope-mysqlda --> python-mysqldb
python-base **> python-regrtest --> python-base
python-base **> python-regrtest --> python-base
xlibs **> xlib6 --> xlibs
xlibs **> xlib6g --> xlibs
xlibs **> xlib6g-dev --> xlibs-dev --> xlibs
xlibs **> xbase-clients --> xlibs
blas1 **> lapack --> blas1
telnetd-ssl **> ssltelnet --> telnetd-ssl
libruby **> libshell-ruby --> libruby
libruby **> libshell-ruby --> libruby
openssl **> ssleay --> openssl
courier-base **> courier-imap --> courier-base
xfonts-75dpi-transcoded **> xfonts-biznet-iso-8859-2-75dpi --> xfonts-75dpi-transcoded
isdnvboxserver **> isdnutils --> isdnvboxserver
isdnvboxserver **> isdnvbox --> isdnvboxserver
fte **> fte-console --> fte
powertweakd **> powertweak --> powertweakd
libpth13 **> libpth13-dbg --> libpth13
libpth13 **> libpth13-prof --> libpth13
libpth13 **> libpth-dev --> libpth13
gom **> gom-x --> gom
liblzo1 **> lzop --> liblzo1
expect **> expect5.31 --> expect
expect **> expect5.24 --> expect
timeout **> tct --> timeout
timeout **> netatalk --> timeout
mozilla-browser **> mozilla --> mozilla-browser
emacs20-dl **> emacs20-dl-el --> emacs20-dl
pilrc **> prc-tools --> pilrc
rplay-contrib **> rplay --> rplay-contrib
python **> python-tk --> python
python **> python-tk --> python
python **> python-gdbm --> python
python **> python-gdbm --> python
python **> python-mpz --> python
python **> python-mpz --> python
python **> python-examples --> python
python **> python-examples --> python
python **> python-elisp --> python
python **> python-elisp --> python
python **> idle --> python
python **> idle --> python
python **> forg --> python
python **> grc --> python
python **> ipcheck --> python
python **> muttzilla --> python
python **> plwm --> python
python **> pycmail --> python
python **> python-pyqt --> python
python **> python-stats --> python
python **> python-xlib --> python
python **> pythondoc --> python
python **> sip --> python
python **> snappea --> python
am-utils **> amd --> am-utils
sgmltools-lite **> sgmltools-2 --> sgmltools-lite
libc6-dev **> libstdc++2.10-dev --> libc6-dev
vflib2 **> watanabe-vfont --> vflib2
vflib2 **> asiya24-vfont --> vflib2
expectk **> expectk5.31 --> expectk
expectk **> expectk5.24 --> expectk
libhoard1 **> libhoard-dev --> libhoard1
librplay3-dev **> rplay --> librplay3-dev
rplay-client **> rplay --> rplay-client
libdigest-md5-perl **> libmd5-perl --> libdigest-md5-perl
postgresql-client **> postgresql --> postgresql-client
libmagick5 **> imagemagick --> libmagick5
phpgroupware-admin **> phpgroupware --> phpgroupware-admin
libparted1.4 **> parted --> libparted1.4
python1.5-regrtest **> python-regrtest --> python1.5-regrtest
libxaw6 **> xlib6g --> libxaw6
figlet **> figfonts --> figlet
figlet **> figfonts-cjk --> figlet
liburi-perl **> libwww-perl --> liburi-perl
gs-common **> gs --> gs-common
libgmp2 **> libgmp2-dev --> libgmp2
emacs20 **> emacs20-el --> emacs20
perl **> perl-5.004 --> perl
perl **> perl-5.005 --> perl
perl **> perl-5.6 --> perl
libldap-java **> libldap-java-doc --> libldap-java
zip **> zip-crypt --> zip
perl-suid **> perl-5.004-suid --> perl-suid
perl-suid **> perl-5.005-suid --> perl-suid
perl-suid **> perl-5.6-suid --> perl-suid
xbase-clients **> xdm --> xbase-clients
libwxxt1 **> wxhelp --> libwxxt1
libwxxt1 **> wxhelp --> libwxxt1
xfonts-thai-etl **> xfonts-thai --> xfonts-thai-etl
vim **> vim-perl --> vim
vim **> vim-python --> vim
vim **> vim-tcl --> vim
vim **> vim-gtk --> vim
rplay-perl **> rplay --> rplay-perl
powertweak-gtk **> powertweak --> powertweak-gtk
xfonts-biznet-100dpi **> xfonts-biznet-iso-8859-2-100dpi --> xfonts-biznet-100dpi
tetex-base **> tetex-bin --> tetex-base
gaim-common **> gaim --> gaim-common
gaim-common **> gaim-gnome --> gaim-common
python2.1 **> python --> python2.1
xfonts-biznet-75dpi **> xfonts-biznet-iso-8859-2-75dpi --> xfonts-biznet-75dpi
phpgroupware-addressbook **> phpgroupware --> phpgroupware-addressbook
libesd0 **> esound --> libesd0
festlex-oald **> festvox-rablpc16k --> festlex-oald
festlex-oald **> festvox-rablpc8k --> festlex-oald
libggi2 **> libggi-target-emu --> libggi2
libggi2 **> libggi-target-monotext --> libggi2
libggi2 **> libggi-target-terminfo --> libggi2
libggi2 **> libggi-target-vcsa --> libggi2
libggi2 **> libggi-target-fbdev --> libggi2
libggi2 **> libggi-target-glide --> libggi2
libggi2 **> libggi-target-aa --> libggi2
libggi2 **> libggi-target-x --> libggi2
libggi2 **> libggi-target-svgalib --> libggi2
sgml-base **> sgml-data --> sgml-base
sgml-base **> sgmltools-2 --> sgmltools-lite --> sgml-base
libpopt0 **> libpopt-dev --> libpopt0
libpopt0 **> rpm --> libpopt0
libhns2-perl **> hns2 --> libhns2-perl
xfonts-biznet-base **> xfonts-biznet-iso-8859-2-base --> xfonts-biznet-base
oo2c **> liboo2cx11-dev --> oo2c
oo2c **> voberon-dev --> oo2c
mew-bin **> mew --> mew-bin
libsane **> sane --> libsane
libsane **> sane --> libsane
mc-common **> mc --> mc-common
mc-common **> gmc --> mc-common
unzip **> unzip-crypt --> unzip
libgtk-perl **> libgnome-perl --> libgtk-perl
libgtk-perl **> libgtk-imlib-perl --> libgtk-perl
liborbit-dev **> libgnome-dev --> liborbit-dev
liborbit-dev **> libgnorba-dev --> libgnome-dev --> liborbit-dev
pilot-manager **> syncbbdb --> pilot-manager
octave2.0 **> octave --> octave2.0
gaim **> gaim-gnome --> gaim-common --> gaim
uic **> kde-designer --> libqt-dev --> uic
xscreensaver-gnome **> xscreensaver-nognome --> xscreensaver --> xscreensaver-gnome
libwrap0 **> netbase --> tcpd --> libwrap0
Reply to: