Actually, I've been able to determine:
1. Our product installs a single Freescale-specific root IU.
2. For CDT and RSE, the IU range spans to a high number (10.0.0), which
explains why I had no trouble updating those two features.
3. For all the platform IUs
org.eclipse.platform.feature.group), the range is restricted to a
single version! [x.y.z,x.y.z]. This would explain why I've been unable
to upgrade those IUs.
I think I know how to proceed from here. Thanks for your help!
On 11/10/2011 9:31 PM, Pascal Rapicault wrote:
Then you have two possibilities:
1) Specify ranges in the "Your product" IU
this case "Your Product" just has ranges on all the things it uses,
which then allow you to replace anything by requesting the install. For
example you would be able to replace CDT with another version by just
picking something from an update site. Note that this solution would
not tell the user when there are updates available, but would give
power users the possibility to mess around :)
2) Do not use a top level IU
In this case you no longer have the "Your product" IU. Instead what you
initially distribute (probably through a zip) would be
which allows you to install and remove any component at will
(the previous setup you would not be able to get rid of CDT) and also
benefit from the notification of new updates.
On 2011-11-10, at 10:20 PM, John Cortell wrote:
That makes sense, but it's a
bit heavy for what I'm trying to do. The
final mix will be used for internal testing, not for delivering to
customers. We want to be able to test a change in our Eclipse platform
with an existing product. I had hoped I could "swap in" a newer build
of the platform with minimal hassle. Having to define a new top-level
product IU, while possible, is a significant inconvenience. It would be
nice if I could tell p2 to relax its dependency checking and just let
me remove and install whatever I want--sort of an
"expert/let-me-shoot-myself-in-the-foot" mode. If the end result is
broken, so be it.
On 11/10/2011 8:47 PM, Pascal Rapicault wrote:
Assuming your product has the following dependency structure
(where each item in the tree is a p2 IU):
Your product 1.0
then you will have to create a new version of the "Your
IU that points at new version of the pieces.
Your product 1.1
This structure gives you complete control over what your
gets since when you publish a new update, the user sees that there is
an update to "Your product" and not the individual pieces he does not
want to know about. Note that even though the product version has
changed only the bundles that have actually been changed will be
p2-dev mailing list
On 2011-11-10, at 9:34 PM, John Cortell wrote:
So, it looks like I'm
stuck. We now internally have a p2 repo
with the platform.ide IU. So, I can upgrade a pure platform
installation (an installation with only the platform and no upstream
components) via p2 thanks to the help I got from the folks on this list.
However, what I'm ultimately trying to do is upgrade the platform in a
complete Eclipse commercial product--an installation that has not only
the platform, but CDT, RSE and a variety of other components.
Naturally, they all have a dependency on the platform.
So, the question is: how do I swap in a newer platform without
uninstalling all the upstream pieces that rely on the platform? Is that
at all possible? Is there a way to tell p2 "uninstall this piece even
though other things depend on it, so that I may install a newer version
On 10/27/2011 3:32 PM, DJ Houghton wrote:
If I'm reading what you're describing correctly, you are
with a 3.6.0 SDK zip. You can't take a 3.6 SDK and replace the platform
that it contains. What the error message you posted says is that the
SDK 3.6.0 requires the Platform 3.6.0 and if you install Platform 3.6.1
then you will break it.
Coincidentally enough, the p2 team has been working on a new feature so
if you run into the problem described above, we will recommend that you
also update the SDK to 3.6.1 (if available) and then your install will
complete. The feature is almost implemented and will appear in the 3.8
integration builds soon.
If you use the Platform zip (e.g.
eclipse-platform-3.6.1-macosx-cocoa-x86_64.tar.gz) you will see the
So to fix your problem you either need to use a Platform zip (and
update the org.eclipse.platform.ide IU) or change your command-line to
update the org.eclipse.sdk.ide IU.
04:01:17 PM---There is no IU called
org.eclipse.platform.ide in the p2 zip
John Cortell <rat042@xxxxxxxxxxxxx>
P2 developer discussions <p2-dev@xxxxxxxxxxx>, P2
developer discussions <p2-dev@xxxxxxxxxxx>
2011/10/27 04:01 PM
Re: [p2-dev] can platform be updated via
There is no IU called org.eclipse.platform.ide in the p2 zip (org.eclipse.platform-3.6.1.zip). The only IUs
in that p2 with 'platform' in the name are:
Here's what I get (cleaned up) when I try to
the platform in the 3.6 SDK with the one from the 3.6.1 p2 zip
I've tried specifying each of the IUs listed
None of them work.
Cannot complete the install because of a
Software being installed: Eclipse Platform
Software currently installed: Eclipse SDK
3.6.0.I20100608-0911 (org.eclipse.sdk.ide 3.6.0.I20100608-0911)
Only one of the following can be installed
Eclipse Platform 3.6.0.v201006080911
Eclipse Platform 3.6.1.v201009090800
Finally, here's the cmdline I'm using:
-application org.eclipse.equinox.p2.director ^
-profile SDKProfile ^
-installIU "org.eclipse.platform.feature.group" ^
-repository file:/f:/temp/testp2/plat361p2 ^
At 11:46 AM 10/27/2011, DJ Houghton wrote:
p2-dev mailing list
Yes, you should be able to update the
p2. If you have the platform zip, the platform.feature.group may be
blocked by the org.eclipse.platform.ide InstallableUnit. Try updating
that instead. _______________________________________________
p2-dev mailing list
p2-dev mailing list