Bug 806412

Summary: Eclipse spec file should have versioned "Requires" on libraries it uses
Product: [Fedora] Fedora Reporter: Mary Ellen Foster <mefoster>
Component: eclipseAssignee: Alexander Kurtakov <akurtako>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 16CC: akurtako, andjrobins, kdaniel, overholt, rgrunber, sgehwolf, swagiaal
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: eclipse-3.7.1-8.fc16 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-04-24 14:58:37 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Diff between my local bundles.info and the system one none

Description Mary Ellen Foster 2012-03-23 16:28:39 UTC
Created attachment 572328 [details]
Diff between my local bundles.info and the system one

Description of problem:
Currently, Eclipse has requirements like this on libraries it uses:
jetty >= 6.1.24-1
jsch >= 0.1.41

However, this fails miserably if you update one of those libraries to a new version.

For example, eclipse-platform contains the file:
/usr/lib64/eclipse/plugins/org.mortbay.jetty.server_6.1.26.jar

This will only really work if you actually have jetty-6.1.26 installed on your machine. If you update to a different version of jetty, then you get very confusing differences between your use bundles.info and the system bundles.info which mean that all of your plugins appear to go away.

Version-Release number of selected component (if applicable):
eclipse-3.7.1-7.fc16.src.rpm

How reproducible:
Every time

Steps to Reproduce:
1. yum --enablerepo=rawhide update jetty (on F16)
2. (re)install some other eclipse plugin (e.g., "yum reinstall eclipse-subclipse"
3. restart eclipse
  
Actual results:
Eclipse doesn't believe it has any plugins installed

Expected results:
All plugins still present

Additional info:
You can see the differences in bundles.info as follows:
diff -u `find /usr/lib*/eclipse -name bundles.info` `find ~/.eclipse -name bundles.info` 

I've attached a file from my computer where I did exactly the above steps

Comment 1 Mary Ellen Foster 2012-03-23 16:30:36 UTC
p.s. -- Search for "jetty" in the diff I attached and it will show the problem

Comment 2 Sami Wagiaalla 2012-03-23 20:26:01 UTC
Alex, 

Will this problem be solved by the auto-generated OSGI requires and provides ?

Comment 3 Krzysztof Daniel 2012-03-24 16:31:51 UTC
Jetty was donated at some time to eclipse.org and thus 
http://wiki.eclipse.org/Jetty/Starting/Porting_to_Jetty_7#Renaming_of_Packages_and_Classes happened, breaking all the compatibility.

I am in favour of limiting jetty in Eclipse 3.7 spec:
Requires: jetty >= 6.1.24-1
Requires: jetty < 7

What's more, we need some tool to parse eclipse manifest and report constraints that may not be satisfied by fedora.

Questions/comments?

Comment 4 Alexander Kurtakov 2012-03-29 03:56:55 UTC
(In reply to comment #3)
> Jetty was donated at some time to eclipse.org and thus 
> http://wiki.eclipse.org/Jetty/Starting/Porting_to_Jetty_7#Renaming_of_Packages_and_Classes
> happened, breaking all the compatibility.
> 
> I am in favour of limiting jetty in Eclipse 3.7 spec:
> Requires: jetty >= 6.1.24-1
> Requires: jetty < 7

This will not help at all because the exact version is saved in the metadata.

> 
> What's more, we need some tool to parse eclipse manifest and report constraints
> that may not be satisfied by fedora.
> 
> Questions/comments?

NO, there is no way strict versions can help. One should remember the number of build cycles we have. Adding proper >= Requires is the best we can do because if we have = Requires we can not update packages freely. 
To give the simplest failure example:
* update jsch (no manifest changes, rpm release is bumped)
* you're no longer able to install eclipse because of the exact versioned require, hence no longer being able to rebuild things that needs eclipse to build e.g. icu4j.
Putting this constraints to packagers is destined to fail as we would have to rebuild Eclipse everytime one of the underlying libraries changes and the same is true for all the plugins too. Considering the dropins issues on updates I'm definetely not looking towards an exact versions requires.

Comment 5 Alexander Kurtakov 2012-03-29 04:01:02 UTC
Sami, osgi requires/provides will not help as we do have versioned provides generated but not requires. Having versioned requires autogenerated will bee too much of a problem because of version ranges.

Comment 6 Alexander Kurtakov 2012-03-29 04:03:19 UTC
I would propose closing this bug as wontfix because soon it will get even uglier thanks to eclipse-emf. If we have strict requires having to rebuild eclipse everytime emf is rebuild is something that will bite us more times than people installing things from rawhide. 
Sorry, Mary :)

Comment 7 Krzysztof Daniel 2012-03-29 06:12:52 UTC
I think that in this one case actually limiting the jetty version could help - mostly because we know that jetty packages were renamed and there is no way any pre-3.8 Eclipse will ever work with >= 7 jetty version.

Comment 8 Fedora Update System 2012-04-12 08:26:23 UTC
eclipse-3.7.1-8.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/eclipse-3.7.1-8.fc16

Comment 9 Fedora Update System 2012-04-13 21:29:14 UTC
Package eclipse-3.7.1-8.fc16:
* should fix your issue,
* was pushed to the Fedora 16 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing eclipse-3.7.1-8.fc16'
as soon as you are able to, then reboot.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-5804/eclipse-3.7.1-8.fc16
then log in and leave karma (feedback).

Comment 10 Fedora Update System 2012-04-24 14:58:37 UTC
eclipse-3.7.1-8.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.