Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 33440

Summary: MetaBug: Circular Dependency issues
Product: Portage Development Reporter: Robin Johnson <robbat2>
Component: UnclassifiedAssignee: Portage team <dev-portage>
Status: RESOLVED WORKSFORME    
Severity: major CC: sascha-gentoo-bugzilla
Priority: High    
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 13632, 14178, 16240, 17303, 26236, 27114, 39318, 41661, 56235, 65014, 93262, 93795, 99533    

Description Robin Johnson archtester Gentoo Infrastructure gentoo-dev Security 2003-11-13 21:47:55 UTC
This is a meta-bug for tracking all circular dependancy bugs.
Comment 1 paul 2004-05-07 09:23:33 UTC
For a Meta-Bug there is very low traffic here.

The problem:
In short, during a new install based on 2004.1 livecd I noticed that 
circular dependencies are not *handled* anymore (in former releases of 
portage you got an error if there was such situation) and subsequently, 
files are merged in the wrong order. Please let me illustrate this with 
the situation at hand.

Basically I have three packages heimdal,cyrus-sasl and openldap that 
depend on each other. I have changed my /etc/make.profile/packages so 
that they are affected by an emerge system:
--------------------------------------------------
gentoo root # emerge -pv system
Calculating system dependencies ...done!
[ebuild  N    ] dev-libs/cyrus-sasl-2.1.18  -gdbm -java +kerberos +ldap 
-mysql +pam -postgres +ssl -static  0 kB [1]
[ebuild  N    ] net-nds/openldap-2.2.11  +berkdb +crypt -debug -gdbm 
-ipv6 -odbc +perl +readline -samba +sasl +slp +ssl +tcpd  0 kB
[ebuild  N    ] app-crypt/heimdal-0.6.1  +berkdb -ipv6 +ldap +ssl  0 kB [1]

and:

gentoo root # emerge -pv openldap
Calculating dependencies ...done!
[ebuild  N    ] app-crypt/heimdal-0.6.1  +berkdb -ipv6 +ldap +ssl  0 kB [1]
[ebuild  N    ] dev-libs/cyrus-sasl-2.1.18  -gdbm -java +kerberos +ldap 
-mysql +pam -postgres +ssl -static  0 kB [1]
[ebuild  N    ] net-nds/openldap-2.2.11  +berkdb +crypt -debug -gdbm 
-ipv6 -odbc +perl +readline -samba +sasl +slp +ssl +tcpd  0 kB

and:

gentoo All # emerge -pv cyrus-sasl
Calculating dependencies ...done!
[ebuild  N    ] net-nds/openldap-2.2.11  +berkdb +crypt -debug -gdbm 
-ipv6 -odbc +perl +readline -samba +sasl +slp +ssl +tcpd  0 kB
[ebuild  N    ] app-crypt/heimdal-0.6.1  +berkdb -ipv6 +ldap +ssl  0 kB [1]
[ebuild  N    ] dev-libs/cyrus-sasl-2.1.18  -gdbm -java +kerberos +ldap 
-mysql +pam -postgres +ssl -static  0 kB [1]
------------------------------------------------------
This is all wrong. The correct order would be: heimdal (libsonly?) --> 
sasl(libsonly?) --> openldap --> heimdal --> sasl.

Questions:

Do I miss some magic behind the scene and everything is just fine?
Am I tricked by emerge saying that all went fine but the result is not?
Why is the error (circular dependency) gone?
Where can I read up on discussed/implemented solutions? (pointers to 
portage code welcomed)

thanks
  Paul
Comment 2 Jason Stubbs (RETIRED) gentoo-dev 2005-10-07 07:26:08 UTC
Not sure what the correct resolution is, but WORKSFORME is the closest. There's 
only about 5 issues with the dep resolver and "circular dependencies" is only 
one of them. They can all be found at the top of the list of portage's open 
bugs when ordered by bug number.