We have looked at the dependency data within rpm packages. All packages normally provide a list of included shared libraries and also automatically generated perl deps. The list of packages providing the same "provides" dependency data is pretty long. The shortened list that only includes duplicate entries and also might match any requirement lines in FC-devel is the following: ('perl(Automake::XFile)', 32776L, '1.1') ['automake16-1.6.3-5.noarch.rpm', 'automake17-1.7.9-6.noarch.rpm'] ('webclient', 0L, '') ['elinks-0.10.3-1.i386.rpm', 'firefox-1.0.2-3.i386.rpm', 'lynx-2.8.5-23.i386.rpm', 'mozilla-1.7.6-2.i386.rpm', 'w3m-0.5.1-8.i386.rpm', 'wget-1.9.1-22.i386.rpm'] ('/usr/sbin/sendmail', 0L, '') ['postfix-2.2.1-1.i386.rpm', 'sendmail-8.13.3-2.i386.rpm'] ('smtpdaemon', 0L, '') ['postfix-2.2.1-1.i386.rpm', 'sendmail-8.13.3-2.i386.rpm'] ('perl(Pod::Select)', 32776L, '1.13') ['mrtg-2.11.1-3.i386.rpm', 'perl-5.8.6-5.i386.rpm'] ('perl(Automake::General)', 32768L, '') ['automake-1.9.5-1.noarch.rpm', 'automake16-1.6.3-5.noarch.rpm', 'automake17-1.7.9-6.noarch.rpm'] ('perl(Automake::Struct)', 32776L, '0.58') ['automake-1.9.5-1.noarch.rpm', 'automake15-1.5-13.noarch.rpm', 'automake16-1.6.3-5.noarch.rpm', 'automake17-1.7.9-6.noarch.rpm'] ('libxmlsec1.so.1', 32768L, '') ['openoffice.org-core-1.9.88-4.i386.rpm', 'xmlsec1-1.2.7-4.i386.rpm'] ('perl(Automake::Channels)', 32768L, '') ['automake-1.9.5-1.noarch.rpm', 'automake17-1.7.9-6.noarch.rpm'] ('perl(Inline)', 32768L, '') ['perl-Inline-0.44-14.i386.rpm', 'perl-PDL-2.4.1-9.i386.rpm'] ('libmd5.so.0', 32768L, '') ['libsilc-0.9.12-9.i386.rpm', 'w3c-libwww-5.4.0-13.i386.rpm'] ('libbind.so.3', 32768L, '') ['bind-libbind-devel-9.3.1-1_FC4.i386.rpm', 'bind-libs-9.3.1-1_FC4.i386.rpm'] So it is currently no real problem for FC-devel packages since we normally make sure to link against system libs and the duplicate perl items are also ok. This might look differently if we look at require dependencies e.g. from Fedora Core Extras and then check which deps might have duplicate provides within rpm packages to find maybe real problems with our current deps. greetings, Florian La Roche dupes = [ ("glibc", "i386"), ("nptl-devel", "i386"), ("openssl", "i386"), ("kernel", "i586"), ("kernel-smp", "i686"), ("kernel-smp-devel", "i686"), ("kernel-xen0", "i686"), ("kernel-xenU", "i686"), ("kernel-devel", "i586") ] def checkProvides(repo): provides = {} requires = {} for rpm in repo: req = rpm.getRequires() if not req: continue for r in req: if not requires.has_key(r[0]): requires[r[0]] = [] requires[r[0]].append(rpm.getFilename()) for rpm in repo: if (rpm["name"], rpm["arch"]) in dupes: continue provs = rpm.getProvides() if not provs: continue for p in provs: if not provides.has_key(p): provides[p] = [] provides[p].append(rpm.getFilename()) print "Duplicate provides:" for p in provides.keys(): if len(provides[p]) > 1: # also check if the rpm is different between provides/requires if not requires.has_key(p[0]): continue print p, provides[p]