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

Bug 230359

Summary: dev-java/icedtea6-1.2: Circular dependencies
Product: Portage Development Reporter: Pascal Lim <pascalim>
Component: Core - DependenciesAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal CC: bmintern, chewi, gnu_andrew, java, marek
Priority: High Keywords: InVCS
Version: 2.2   
Hardware: AMD64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 216231    
Attachments: solve circular deps if there's a suitable jdk installed already

Description Pascal Lim 2008-07-01 15:20:58 UTC
Added java-overlay to get icedtea, but I keep getting circular dependencies.  I can't think of any java related packages on my pc causing possible issues.

Reproducible: Always

Steps to Reproduce:
1. emerge -av icedtea6
2.
3.

Actual Results:  
Circular dependencies, unable to merge

Expected Results:  
No circular dependencies

Calculating dependencies... done!


[nomerge      ] dev-java/icedtea6-1.2  USE="-debug -doc -examples -nsplugin -zero" 
[ebuild  N    ]  dev-java/gcj-jdk-4.3.1  
[ebuild  N    ]   dev-java/eclipse-ecj-3.3.0-r2  
[ebuild  N    ]  dev-java/xalan-2.7.1  USE="-doc -source" 
[ebuild  N    ]   dev-java/xerces-2.9.1  USE="-doc -examples -source" 
[ebuild  N    ]    dev-java/xjavac-20041208-r5  
[ebuild  N    ]    dev-java/xml-commons-resolver-1.2  USE="-doc -source" 
[ebuild  N    ]   dev-java/bcel-5.2  USE="-doc -source" 
[ebuild  N    ]   dev-java/javacup-0.11a_beta20060608  USE="-doc -source" 
[ebuild  N    ]  dev-java/eclipse-ecj-3.4_rc4  USE="-java6" 
[nomerge      ] dev-java/xalan-2.7.1  USE="-doc -source" 
[ebuild  N    ]  dev-java/xalan-serializer-2.7.1  USE="-doc -source" 
[ebuild  N    ]   dev-java/xml-commons-external-1.3.04  USE="-doc -source" 
[ebuild  N    ]    dev-java/ant-core-1.7.0-r2  USE="-doc -source" 
[ebuild  N    ]    virtual/jre-1.6.0  
[ebuild  N    ]     virtual/jdk-1.6.0  
[ebuild  N    ]      dev-java/icedtea6-1.2  USE="-debug -doc -examples -nsplugin -zero" 

 * Error: circular dependencies:

('ebuild', '/', 'dev-java/gcj-jdk-4.3.1', 'merge') depends on
   ('ebuild', '/', 'dev-java/eclipse-ecj-3.3.0-r2', 'merge') (hard)
('ebuild', '/', 'virtual/jre-1.6.0', 'merge') depends on
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (medium)
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (medium)
('ebuild', '/', 'dev-java/xjavac-20041208-r5', 'merge') depends on
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (hard)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
('ebuild', '/', 'dev-java/eclipse-ecj-3.4_rc4', 'merge') depends on
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (hard)
('ebuild', '/', 'dev-java/eclipse-ecj-3.3.0-r2', 'merge') depends on
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (hard)
('ebuild', '/', 'dev-java/xerces-2.9.1', 'merge') depends on
   ('ebuild', '/', 'dev-java/xml-commons-external-1.3.04', 'merge') (hard)
   ('ebuild', '/', 'dev-java/xalan-serializer-2.7.1', 'merge') (hard)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (hard)
   ('ebuild', '/', 'dev-java/xml-commons-resolver-1.2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/xjavac-20041208-r5', 'merge') (hard)
('ebuild', '/', 'dev-java/xml-commons-external-1.3.04', 'merge') depends on
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (hard)
('ebuild', '/', 'dev-java/xalan-serializer-2.7.1', 'merge') depends on
   ('ebuild', '/', 'dev-java/xml-commons-external-1.3.04', 'merge') (hard)
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (hard)
('ebuild', '/', 'dev-java/javacup-0.11a_beta20060608', 'merge') depends on
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (hard)
('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') depends on
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (medium)
('ebuild', '/', 'dev-java/xml-commons-resolver-1.2', 'merge') depends on
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (hard)
('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') depends on
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (hard)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
('ebuild', '/', 'dev-java/bcel-5.2', 'merge') depends on
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (hard)
('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') depends on
   ('ebuild', '/', 'dev-java/eclipse-ecj-3.4_rc4', 'merge') (hard)
   ('ebuild', '/', 'dev-java/gcj-jdk-4.3.1', 'merge') (hard)
   ('ebuild', '/', 'dev-java/xalan-2.7.1', 'merge') (hard)
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (hard)
   ('ebuild', '/', 'dev-java/xerces-2.9.1', 'merge') (hard)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
('ebuild', '/', 'dev-java/xalan-2.7.1', 'merge') depends on
   ('ebuild', '/', 'dev-java/xml-commons-external-1.3.04', 'merge') (hard)
   ('ebuild', '/', 'dev-java/xalan-serializer-2.7.1', 'merge') (hard)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/javacup-0.11a_beta20060608', 'merge') (hard)
   ('ebuild', '/', 'virtual/jdk-1.6.0', 'merge') (hard)
   ('ebuild', '/', 'dev-java/xerces-2.9.1', 'merge') (hard)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/bcel-5.2', 'merge') (hard)

 * Note that circular dependencies can often be avoided by temporarily
 * disabling USE flags that trigger optional dependencies.
Comment 1 Auke Booij (tulcod) 2008-07-02 17:58:36 UTC
seems like you need to have your default JDK set to something different first. read http://www.gentoo.org/doc/en/java.xml
Comment 2 Pascal Lim 2008-07-03 01:46:54 UTC
(In reply to comment #1)
> seems like you need to have your default JDK set to something different first.
> read http://www.gentoo.org/doc/en/java.xml
> 

Emerged blackdown for 1.4 and sun-jdk for 1.6, java-check-environment says that my environment is sane but problem still remains.  


output of java-check-environment:

 * === Java Environment Checker ===
 * The purpose of this script is to check the sanity of your Java Environment.
 * We have significantly changed and improved the way Java is handled in many
 * respects.
 * Please refer to our upgrade guide for details:
 * \thttp://www.gentoo.org/proj/en/java/java-upgrade.xml

 * Checking fastjar ...                                                   [ ok ]

 * Checking vm_environment_files ...                                      [ ok ]

 * Checking user_settings ...
 * Running as root. Don't need to check user settings.                    [ ok ]

 * Checking generation_1_system_vm ...                                    [ ok ]

 * Checking virtual_provides ...                                          [ ok ]

 * Checking overlays_eclasses ...
 * Java eclasses found in the following overlay(s):
 * /usr/local/overlays/java-overlay

 * This may or not be desired. Make sure you don't use any obsolete overlays.
 * Especially any overlays (migration etc) from www.gentooexperimental.org/svn/java/
 * Overlays (except axxo-overlay) from http://overlays.gentoo.org/proj/java/ should be fine
 * gcj-overlay changes may not reflect changes in portage fast enough
 * If you experience any problems, remove it from your PORTDIR_OVERLAY and try again
                                                                          [ ok ]

 * Checking package_env ...
grep: /usr/share/*/package.env: No such file or directory
grep: /usr/share/*/package.env: No such file or directory                 [ ok ]

 * Java environment is sane. Congratulations!


output of emerge -av icedtea6:

[nomerge      ] dev-java/icedtea6-1.2  USE="nsplugin -debug -doc -examples -zero" 
[ebuild  N    ]  dev-java/xalan-2.7.1  USE="-doc -source" 
[ebuild  N    ]   dev-java/xerces-2.9.1  USE="-doc -examples -source" 
[ebuild  N    ]    dev-java/xjavac-20041208-r5  
[ebuild  N    ]    dev-java/xml-commons-resolver-1.2  USE="-doc -source" 
[ebuild  N    ]   dev-java/bcel-5.2  USE="-doc -source" 
[ebuild  N    ]   dev-java/javacup-0.11a_beta20060608  USE="-doc -source" 
[ebuild  N    ]  dev-java/eclipse-ecj-3.4_rc4  USE="-java6" 
[nomerge      ] dev-java/xalan-2.7.1  USE="-doc -source" 
[ebuild  N    ]  dev-java/xalan-serializer-2.7.1  USE="-doc -source" 
[ebuild  N    ]   dev-java/xml-commons-external-1.3.04  USE="-doc -source" 
[ebuild  N    ]    virtual/jre-1.6.0  
[ebuild  N    ]    dev-java/ant-core-1.7.0-r2  USE="-doc -source" 
[ebuild  N    ]     dev-java/icedtea6-1.2  USE="nsplugin -debug -doc -examples -zero" 

 * Error: circular dependencies:

('ebuild', '/', 'dev-java/xml-commons-external-1.3.04', 'merge') depends on
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
('ebuild', '/', 'dev-java/eclipse-ecj-3.4_rc4', 'merge') depends on
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
('ebuild', '/', 'dev-java/xalan-serializer-2.7.1', 'merge') depends on
   ('ebuild', '/', 'dev-java/xml-commons-external-1.3.04', 'merge') (hard)
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') depends on
   ('ebuild', '/', 'dev-java/eclipse-ecj-3.4_rc4', 'merge') (hard)
   ('ebuild', '/', 'dev-java/xalan-2.7.1', 'merge') (hard)
   ('ebuild', '/', 'dev-java/xerces-2.9.1', 'merge') (hard)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
('ebuild', '/', 'dev-java/javacup-0.11a_beta20060608', 'merge') depends on
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
('ebuild', '/', 'dev-java/xalan-2.7.1', 'merge') depends on
   ('ebuild', '/', 'dev-java/xml-commons-external-1.3.04', 'merge') (hard)
   ('ebuild', '/', 'dev-java/xalan-serializer-2.7.1', 'merge') (hard)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/javacup-0.11a_beta20060608', 'merge') (hard)
   ('ebuild', '/', 'dev-java/xerces-2.9.1', 'merge') (hard)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/bcel-5.2', 'merge') (hard)
('ebuild', '/', 'dev-java/xml-commons-resolver-1.2', 'merge') depends on
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
('ebuild', '/', 'dev-java/xerces-2.9.1', 'merge') depends on
   ('ebuild', '/', 'dev-java/xml-commons-external-1.3.04', 'merge') (hard)
   ('ebuild', '/', 'dev-java/xalan-serializer-2.7.1', 'merge') (hard)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/xml-commons-resolver-1.2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/xjavac-20041208-r5', 'merge') (hard)
('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') depends on
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
('ebuild', '/', 'virtual/jre-1.6.0', 'merge') depends on
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (medium)
('ebuild', '/', 'dev-java/xjavac-20041208-r5', 'merge') depends on
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)
('ebuild', '/', 'dev-java/bcel-5.2', 'merge') depends on
   ('ebuild', '/', 'virtual/jre-1.6.0', 'merge') (medium)
   ('ebuild', '/', 'dev-java/ant-core-1.7.0-r2', 'merge') (hard)
   ('ebuild', '/', 'dev-java/icedtea6-1.2', 'merge') (hard)

Comment 3 Siavash Safi 2008-07-08 12:24:45 UTC
Same problem here.
Solved it by adding the following overlay:
http://icedtea.classpath.org/hg/icedtea6

note that you still need java-overlay
Comment 4 Siavash Safi 2008-07-08 12:26:31 UTC
(In reply to comment #3)
> Same problem here.
> Solved it by adding the following overlay:
> http://icedtea.classpath.org/hg/icedtea6
> 
> note that you still need java-overlay
> 

oops!
here's the link: http://fuseyism.com/hg/libre_java_overlay
Comment 5 Brandon Mintern 2008-07-08 19:59:06 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > Same problem here.
> > Solved it by adding the following overlay:
> > http://icedtea.classpath.org/hg/icedtea6
> > 
> > note that you still need java-overlay
> > 
> 
> oops!
> here's the link: http://fuseyism.com/hg/libre_java_overlay

Thanks for the info. This resolved my circular dependency issues, but the emerge still failed on one of the ant packages due to a VM problem. I tried temporarily installing blackdown-jre, but the problem remained, so I ended up just adding the arcon overlay and installing icedtea-bin as recommended at http://gentoo-wiki.com/HOWTO_AMD64/java
Comment 6 James Le Cuirot gentoo-dev 2008-07-12 20:42:52 UTC
Hmmm. It's hard to see what's going on here. You shouldn't need that overlay anymore since I've never used it. I know that ant-core-1.7.0-r3 is required but that shouldn't make any difference to this. That has been updated in the icedtea6 ebuild along with a bunch of other things so it's worth updating your copy of java-overlay and trying again. It's worth noting that I can do "USE=-X emerge -ep icedtea6" and it doesn't bring up any problems. I need to do USE=-X to work around an unrelated slot conflict.

Comment 7 Marek Sapota 2008-07-20 17:48:08 UTC
I've fixed this circular dependences by emerging all dependences with --oneshot and then icedtea6 didn't complain. All was done with gcj (4.3) from main tree and gcj-jdk from java overlay. No other overlays needed.
Comment 8 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2008-09-01 18:47:27 UTC
Reassigning to portage, the situation where another jdk is already installed satisfying the virtual was fixed in svn as Zac told me:
http://sources.gentoo.org/viewcvs.py/portage?view=rev&rev=11478

Fixing the situation where no jdk is yet installed will require backtracking to select another alternative (since icedtea6 is listed as first in the overlay's virtual/jdk) which is not yet implemented.
Comment 9 Zac Medico gentoo-dev 2008-09-01 18:57:55 UTC
Created attachment 164281 [details, diff]
solve circular deps if there's a suitable jdk installed already

If this patch is saved as /tmp/circular.patch, then it can be applied as follows:

patch /usr/lib/portage/pym/portage/__init__.py /tmp/circular.patch

Note that this patch only helps if you already have a suitable jdk installed for bootstrap purposes.
Comment 10 Zac Medico gentoo-dev 2008-09-26 00:53:23 UTC
This is fixed in 2.2_rc9.
Comment 11 Andrew Savchenko gentoo-dev 2009-07-08 00:48:27 UTC
emerge gnu-classpath-jdk prior icedtea6, this helps me (on new setup without icedtea6 preinstalled).
Comment 12 Zac Medico gentoo-dev 2010-09-22 04:53:39 UTC
(In reply to comment #9)
> Created an attachment (id=164281) [details]
> solve circular deps if there's a suitable jdk installed already

Via gitweb:

http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=ed589e570b592a8aad5665f8763e947164abd1ce

This was released in 2.1.6.