<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>166564</bug_id>
          
          <creation_ts>2007-02-12 20:36 0000</creation_ts>
          <short_desc>Portage: Circular dependencies output is difficult to decipher</short_desc>
          <delta_ts>2007-02-28 18:06:45 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Portage Development</product>
          <component>Core - Dependencies</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>167107</blocked>
          
          <everconfirmed>1</everconfirmed>
          <reporter>radu124@gmail.com</reporter>
          <assigned_to>dev-portage@gentoo.org</assigned_to>
          <cc>dblmok115@gmail.com</cc>

      

      
          <long_desc isprivate="0">
            <who>radu124@gmail.com</who>
            <bug_when>2007-02-12 20:36:08 0000</bug_when>
            <thetext>Trying to emerge either gnome or kde results in an &quot;circular dependencies&quot; error</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2007-02-12 20:46:47 0000</bug_when>
            <thetext>Created an attachment (id=109992)
reduce the noise level in the circular dependency debug output

This patch will filter the noise so that it&apos;s easier to see the cycles.  If it&apos;s saved as /tmp/circular_deps.patch, then it can be applied as follows:

patch /usr/lib/portage/bin/emerge &lt; /tmp/circular_deps.patch

Generally, you can break dependency cycles by disabling use flags.  For example, to break a circular dependency between media-libs/libsdl-1.2.11 and dev-libs/DirectFB-0.9.25.1, you can temporarily disable the either of the directfb or sdl USE flags for one of those packages via package.use.  After both of them have been built, change the USE flags back to the original setting and rebuild the package that had a flag temporarily disabled.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>radu124@gmail.com</who>
            <bug_when>2007-02-13 09:57:05 0000</bug_when>
            <thetext>(In reply to comment #1)
&gt; reduce the noise level in the circular dependency debug output
I have solved the problem in the mean time, but I appreciate your feedback. 

Indeed, the amount of output gave me a hard time finding the cycle. It was a strange combination of alsa/jdk/doxygen. I&apos;m still a beginner with gentoo, so it will take a while to get used to these things.

There must be a better way to solve this though, maybe automatically discover conditional dependencies and performing the steps you just mentioned automatically. From the algorithmic point of view it should not be difficult, at least for the common case that you described, but I have no idea what it would take to implement it.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2007-02-13 18:23:05 0000</bug_when>
            <thetext>(In reply to comment #2)
&gt; There must be a better way to solve this though, maybe automatically discover
&gt; conditional dependencies and performing the steps you just mentioned
&gt; automatically. From the algorithmic point of view it should not be difficult,
&gt; at least for the common case that you described, but I have no idea what it
&gt; would take to implement it.

I&apos;m planning to rewrite the dependency resolver soon and that feature is certainly planned.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2007-02-19 21:48:02 0000</bug_when>
            <thetext>In addition to the reduced noise debug output, the nodes that are part of cycles are also displayed like a merge list with --tree mode enabled (including the USE flag settings).

This has been released in 2.1.2-r10.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>zmedico@gentoo.org</who>
            <bug_when>2007-02-28 18:06:45 0000</bug_when>
            <thetext>*** Bug 168697 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109992</attachid>
            <date>2007-02-12 20:46 0000</date>
            <desc>reduce the noise level in the circular dependency debug output</desc>
            <filename>circular_deps.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">SW5kZXg6IGJpbi9lbWVyZ2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluL2VtZXJnZQkocmV2aXNpb24gNTk1
NikKKysrIGJpbi9lbWVyZ2UJKHJldmlzaW9uIDU5NTcpCkBAIC0yMDU0LDYgKzIwNTQsMTUgQEAK
IAkJCQkJc2VsZi5hbHRsaXN0KCkKIAkJCQlwcmludCAiISEhIEVycm9yOiBjaXJjdWxhciBkZXBl
bmRlbmNpZXM6IgogCQkJCXByaW50CisJCQkJIyBSZWR1Y2UgdGhlIG5vaXNlIGxldmVsIHRvIGEg
bWluaW11bSB2aWEgZWxpbWluYXRpb24gb2Ygcm9vdAorCQkJCSMgbm9kZXMuCisJCQkJd2hpbGUg
VHJ1ZToKKwkJCQkJcm9vdF9ub2RlcyA9IG15Z3JhcGgucm9vdF9ub2RlcygKKwkJCQkJCWlnbm9y
ZV9wcmlvcml0eT1EZXBQcmlvcml0eS5TT0ZUKQorCQkJCQlpZiBub3Qgcm9vdF9ub2RlczoKKwkJ
CQkJCWJyZWFrCisJCQkJCWZvciBub2RlIGluIHJvb3Rfbm9kZXM6CisJCQkJCQlteWdyYXBoLnJl
bW92ZShub2RlKQogCQkJCW15Z3JhcGguZGVidWdfcHJpbnQoKQogCQkJCXN5cy5leGl0KDEpCiAK
</data>        

          </attachment>
    </bug>

</bugzilla>