https://bugzilla.redhat.com/show_bug.cgi?id=1129801
Bug ID: 1129801 Summary: Bootstrap build fails in clean build root Product: Fedora Version: rawhide Component: tycho Assignee: rgrunber@redhat.com Reporter: ryankimbrell@hotmail.com QA Contact: extras-qa@fedoraproject.org CC: java-sig-commits@lists.fedoraproject.org, krzysztof.daniel@gmail.com, mat.booth@redhat.com, mizdebsk@redhat.com, rgrunber@redhat.com
Description of problem: Unable to perform a build from spec when spec global tycho_bootstrap is set to 1. A circular build dependency exists. Tycho BuildRequires maven-plugin-testing-harness which requires icu4j-eclipse. In order to build icu4j-eclipse, eclipse-pde is required, which is unavailable in my buildroot because I am trying to perform a bootstrap tycho build so I can build eclipse so I can do a full icu4j build that includes icu4j-eclipse. Also, the global eclipse_boostrap BuildRequires icu4j-eclipse, which does not exist in a clean build root.
Version-Release number of selected component (if applicable): 0.21.0-1, but problem exists in earlier spec releases
How reproducible: Always
Steps to Reproduce: 1. Set spec global tycho_bootstrap = 1 2. Set spec global eclipse_bootstrap = 1
Actual results: Excerpt from build.log in local Koji instance: DEBUG util.py:283: --> maven-plugin-testing-harness-2.1-11.el7.noarch DEBUG util.py:283: Error: No Package found for icu4j-eclipse DEBUG util.py:373: Child return code was: 1
Expected results: Bootstrap build to complete successfully.
Additional info:
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
--- Comment #1 from Ryan ryankimbrell@hotmail.com --- Created attachment 926538 --> https://bugzilla.redhat.com/attachment.cgi?id=926538&action=edit Local koji root log
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
--- Comment #2 from Ryan ryankimbrell@hotmail.com --- *Correction for bug description. The excerpt is from our local koji root.log, not the build.log. I have attached the full root.log.
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
Roland Grunberg rgrunber@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED
--- Comment #3 from Roland Grunberg rgrunber@redhat.com --- I wasn't able to find any indication that maven-plugin-testing-harness requires icu4j-eclipse but Tycho clearly has a BuildRequires on it so I believe the only solution in this case is to disable the 'BuildRequires: icu4j-eclipse' when %{eclipse_bootstrap} is set to 1. We'd also need to package the icu4j-eclipse jar into the bootstrap repository. I'll have a fix for this very soon.
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
--- Comment #4 from Roland Grunberg rgrunber@redhat.com --- I've packaged a tycho srpm that has the necessary changes : https://rgrunber.fedorapeople.org/tycho/tycho-0.21.0-2.fc22.src.rpm . Can you confirm this builds for you ? There might be additional content that depends back on Eclipse (maybe not in building Tycho, but for other rpms), and it may need to be added to Tycho's bootstrapping repo.
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
--- Comment #5 from Ryan ryankimbrell@hotmail.com --- There are some errors due to RHEL/CentOS 7 not having the newer aether-0.9.0. I definitely consider that a separate issue and there are separate bugs to file for building aether-0.9.0x against 7. However, you are correct about content being missing from the bootstrap repo. I am attaching my build.log because there are a few tyco poms that fail to resolve due to them being missing in the bootstrap repo. Unfortunately, I will be unable to confirm a successful build for any further changes you come up with until I am able to successfully build aether-0.9.0x against RHEL/CentOS 7, but I will be able to at least perform a build and confirm whether or not the tyco* poms are resolvable. When looking at the build.log, should tycho have a BR for aether-0.9.0+ since 0.9.0 switched from Sonatype aether to Eclipse aether?
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
--- Comment #6 from Ryan ryankimbrell@hotmail.com --- Created attachment 927187 --> https://bugzilla.redhat.com/attachment.cgi?id=927187&action=edit build from spec in Comment 4
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
--- Comment #7 from Roland Grunberg rgrunber@redhat.com --- (In reply to comment #5)
I am attaching my build.log because there are a few tyco poms that fail to resolve due to them being missing in the bootstrap repo.
If you search for "ERROR", or "COMPILATION ERROR" you'll see the build fails in tycho-core due to the aether incompatibility. As a result when the build gets to tycho-maven-plugin, it fails with :
[ERROR] Failed to execute goal on project tycho-maven-plugin: Could not resolve dependencies for project org.eclipse.tycho:tycho-maven-plugin:maven-plugin:0.21.0-SNAPSHOT: The following artifacts could not be resolved: org.eclipse.tycho:tycho-core:jar:0.21.0-SNAPSHOT, org.eclipse.tycho:tycho-p2-facade:jar:0.21.0-SNAPSHOT
The build is intentionally made to not halt on failures in the bootstrap phase so that any subsequent, independent errors may also be caught looking at the same failed log. On the other hand, this means that some errors are the result of other errors carried forward.
Since tycho-maven-plugin failed to build, I believe its pom never gets installed and so you end up seeing :
[WARNING] Failed to resolve artifact: org.eclipse.tycho:tycho-maven-plugin:pom:0.21.0-SNAPSHOT
There are a few other tycho poms that fail to resolve for the same reason.
When looking at the build.log, should tycho have a BR for aether-0.9.0+ since 0.9.0 switched from Sonatype aether to Eclipse aether?
It should be possible to use either version of aether with some minor changs to Tycho sources.
For example, in Fedora there was an update to aether (from sonatype upstream version, to eclipse upstream version) that only required updating the package namespaces used (See http://pkgs.fedoraproject.org/cgit/tycho.git/diff/tycho.spec?id=42c8fb1cb9bb... , at 'Move from org.sonatype.aether to org.eclipse.aether' ). Those few lines could probably be removed and it would fix things if you prefer not to update aether.
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
--- Comment #8 from Ryan ryankimbrell@hotmail.com --- Ah, yes, thank you for pointing that out. That solution is much cleaner. Alright, I did a build with your modified spec from Comment 4 and removed the three lines following the comment 'Move from org.sonatype.aether to org.eclipse.aether'. I believe the errors I get now may be closer to what you expected in Comment 4. I have attached the build.log.
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
Ryan ryankimbrell@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #927187|0 |1 is obsolete| |
--- Comment #9 from Ryan ryankimbrell@hotmail.com --- Created attachment 928072 --> https://bugzilla.redhat.com/attachment.cgi?id=928072&action=edit build from spec in Comment 4
spec from Comment 4 minus the lines following 'Move from org.sonatype.aether to org.eclipse.aether'
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
--- Comment #10 from Roland Grunberg rgrunber@redhat.com --- I don't think we've ever encountered this kind of error. It looks like it could be related to http://jira.codehaus.org/browse/MNG-5346 since maven-plugin-plugin:3.1:descriptor is running before compilation has occurred, and given that the maven plugins in tycho now uses Java 5 annotations, this fails.
The confusing part is that Tycho 0.21.0 upstream contains the proper workaround for this exact problem in the top-level pom.xml (it references MNG-5346). The only other thing I can think of is that maven-plugin-plugin 3.3 is actually needed, or that maven-compiler-plugin didn't run for some reason. It might help to add the -X flag to the xmvn command in tycho-bootstrap.sh to determine what the actual project build plan is for some that are failing.
I'll have to eventually mark this as CLOSED (NOTABUG) because this doesn't really apply to Fedora.
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
--- Comment #11 from Ryan ryankimbrell@hotmail.com --- I think your resolution in Comment 3 is still valid in the context of performing a bootstrap build in Fedora. Either way, I will defer to your expertise and I am content to close the bug. Thank you very much for your time. It was extremely helpful and appreciated.
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
Ryan ryankimbrell@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |CLOSED Resolution|--- |NOTABUG Last Closed| |2014-08-19 16:30:32
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
Roland Grunberg rgrunber@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|CLOSED |ASSIGNED Resolution|NOTABUG |--- Keywords| |Reopened
--- Comment #12 from Roland Grunberg rgrunber@redhat.com --- (In reply to comment #11)
I think your resolution in Comment 3 is still valid in the context of performing a bootstrap build in Fedora.
After some thought on this topic, I think it's worth fixing due to other future bootstrapping requirements.
When looking back at other secondary archs where Tycho was bootstrapped I was surprised I never needed to make this change earlier, given that icu4j it would have always required eclipse-pde to build. Then I realized that because the package itself is 'noarch', it is likely being imported directly onto other architectures. However to support other build systems that have not yet built an icu4j, this would be useful.
Thanks again for filing this.
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
Roland Grunberg rgrunber@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |CLOSED Resolution|--- |RAWHIDE Last Closed|2014-08-19 16:30:32 |2014-10-28 14:42:12
--- Comment #13 from Roland Grunberg rgrunber@redhat.com --- I've pushed a fix for this at http://pkgs.fedoraproject.org/cgit/tycho.git/commit/?id=ea349edafee942a5a564... .
https://bugzilla.redhat.com/show_bug.cgi?id=1129801
--- Comment #14 from Roland Grunberg rgrunber@redhat.com --- Just some additional news regarding this particular topic :
(In reply to comment #0)
In order to build icu4j-eclipse, eclipse-pde is required, which is unavailable in my buildroot because I am trying to perform a bootstrap tycho build so I can build eclipse so I can do a full icu4j build that includes icu4j-eclipse. Also, the global eclipse_boostrap BuildRequires icu4j-eclipse, which does not exist in a clean build root.
As of http://pkgs.fedoraproject.org/cgit/icu4j.git/commit/?id=736c03c493c21a1517ac... , building 'icu4j-eclipse' no longer requires eclipse-pde, and 'icu4j-eclipse' is now provided by the main package. I'll therefore be reverting the commit in Comment #13 (only on rawhide) as it won't be necessary.
java-sig-commits@lists.fedoraproject.org