Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] Problem installing feature due to unhelpful version range requirements

I suspect that part of the problem is the use of Includes vs Requires in your features. Quite separate from p2, features have always used exact versions for "included" things and version ranges for "required" things. So when you author your feature to require something and spec a range, that should be translated into the same range in p2 metadata and you should be happy.

Jeff

Francis Upton wrote:
I am using the standard PDE build scripts that call p2.generator to generate the metadata in my repository. I have many features and products and they are all generated to the same repository. So far so good.

The problem I'm having is the feature.group (e.g. com.oaklandsw.transform.feature.deps.gui.feature.group) in the content.xml get generated with a version range requirement that is exactly the versions of the plugins that are installed in the Eclipse build I'm running against. In my source feature.xml, all of the versions are 0.0.0 which is what I want, but the p2.generator does not use my source, it uses the feature.xml that winds up in the build output, which has all of the versions put into it.

This means that when installing this feature, it will insist on having these exact versions of the plugins, so because I built it on a 3.4.0 system, it will not properly install on a 3.4.1 system (it gets the usual cryptic error message about unable to satisfy the dependency).

If I manually hack the content.xml file to remove these range attributes, I run into a related problem. My product depends on the org.eclipse.rcp feature group, and this feature group in the content.xml (like all of the others) has the exact plugin versions. So the installation will again get a conflict (on swt this time) because the org.eclipse.rcp feature in the installation target does not match the one generated in the content.xml.

I'm sure somewhere I took a left turn that I should not have and there is an easy solution to this mess, but I have not yet found it.

Any ideas?



Back to the top