Red Hat Bugzilla – Bug 806412
Eclipse spec file should have versioned "Requires" on libraries it uses
Last modified: 2012-04-24 10:58:37 EDT
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:
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):
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
Eclipse doesn't believe it has any plugins installed
All plugins still present
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
p.s. -- Search for "jetty" in the diff I attached and it will show the problem
Will this problem be solved by the auto-generated OSGI requires and provides ?
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.
(In reply to comment #3)
> Jetty was donated at some time to eclipse.org and thus
> 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.
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.
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.
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 :)
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.
eclipse-3.7.1-8.fc16 has been submitted as an update for Fedora 16.
* 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:
then log in and leave karma (feedback).
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.