Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [equinox-dev] RE: Need help building a product with p2


Warren,

A) If you are just unziping GEF, EMF etc over the platform you must run that platform once in order for those bundles to be discovered and installed.  Then you can use the director to install your bundles into that.  Alternatively you can just use the director to install the GEF etc bundles into the platform.

B) This should work, however we suggest that you use the p2 director to install into a new location instead of trying to create the p2 directory in that install.  We haven't seen your problem with the stack trace below, this looks like the install is not set up properly, independent of p2.  (As if org.eclipse.equinox.common is missing).


C) Instead of trying to compose your product from pieces, you could do a product build.  Write a .product file that includes everything your product needs and use PDE/Build's productBuild.xml with the platform + GEF etc in the base location.  Turn on p2 metadata generation in the build and the result will be a repo that you can install from.

In RC4 there is help docs that might be helpful for you:
1) Platform Plug-in Developer Guide -> Programmer's Guide -> Packaging and delivering Eclipse based products -> Provisioning platform (p2)
                -> Installing software using p2 director application
                -> p2 metadata generation
2) Plug-in Development Environment Guide -> Tasks
                PDE Build -> Automated Building of RCP applications from a product configuration file
                PDE Build Advanced Topics -> PDE Build Integration with p2

-Andrew


<Warren.Paul@xxxxxxxxx>
Sent by: equinox-dev-bounces@xxxxxxxxxxx

06/11/2008 11:07 AM

Please respond to
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>

To
<equinox-dev@xxxxxxxxxxx>
cc
Subject
RE: [equinox-dev] RE: Need help building a product with p2





I hate being a pest, but this is the last day I have to get p2 working for our product.  If it's not working today, I have to disable it and use the old school updater.  At this point I'm just not convinced that I'm even doing the right thing, so if someone could please chime in and tell me the expected approach to p2-izing a complete product.
 
Should I:
 
A) Build our product (features/plugins), generate p2 metadata for it, and then install it using the p2 director into a fresh unzip of the platform (eclipse-platform-3.4RC4-win32.zip), gef (GEF-runtime-3.4.0RC4.zip), etc, and have it just update the p2 directory coming from the platform runtime archive?  My assumption here is that GEF, EMF, etc won't be updatable since nothing ever p2-ized them (e.g. no p2 stuff in the GEF archive).
 
B) Build our product and extract it into a fresh unzip of the platform (eclipse-platform-3.4RC4-win32.zip), gef (GEF-runtime-3.4.0RC4.zip), etc, minus the p2 directory from the platform runtime archive, and then generate p2 metadata for all of it.  Then use the p2 director to create the p2 directory in this install.  This is the approach I have been trying but always get the 0.0.0 version errors for p2 plugin dependencies.
 
C) Something else?
 
Thanks,
Warren


From: equinox-dev-bounces@xxxxxxxxxxx [mailto:equinox-dev-bounces@xxxxxxxxxxx] On Behalf Of ext Warren.Paul@xxxxxxxxx
Sent:
Tuesday, June 10, 2008 3:15 PM
To:
equinox-dev@xxxxxxxxxxx
Subject:
RE: [equinox-dev] RE: Need help building a product with p2


I'm about to give up.  I've spent too long on this already and don't feel like I'm much closer to having it working than I was this time last week.  Here's where I'm at.  Any advice would be greatly appreciated.
 
- I build our product configuration which gives me a zip of our features, plugins, and root files.
- I run the packager on a clean install of the platform, emf, gef, etc. which gives me a zip of all of those with the features we don't want removed.
- I extract those two into a product layout.  There is no p2 directory and no p2 references in the config.ini file.  I can run this product with no problems, but it does generated a p2 directory, and I launch the updater.
 
I _think_ I'm supposed to run the p2 metadata generator on the entire product layout (platform, emf, gef, our stuff, etc).  That should allow all features/plugins/root files to be updated, correct?  The generation works OK.  Then I run the p2 director using the generated metadata.  Depending on how it feels when I run it, it will either generate a p2 directory only, or it will generate that plus features/plugins.  This is with the exact same everything, same eclipse, same machine, same cmd line.  No errors either way, so I have very little trust that the tools are working correctly at any given time.  Anyway, I put the p2 directory in the product layout and run it, and I always get the error:
 
!ENTRY org.eclipse.equinox.p2.reconciler.dropins 4 0 2008-06-05
22:48:18.007
!MESSAGE
!STACK 0
org.osgi.framework.BundleException: The bundle could not be resolved.
Reason: Missing Constraint: Require-Bundle: org.eclipse.equinox.common;
bundle-version="0.0.0"
               at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHo
st.java:305)
               at
org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractB
undle.java:355)
               at
org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framewor
k.java:1074)
               at
org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles
(StartLevelManager.java:616)
               at
org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(Start
LevelManager.java:508)
               at
org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLev
el(StartLevelManager.java:299)
               at
org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent
(StartLevelManager.java:489)
               at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventMana
ger.java:211)
               at
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventMa
nager.java:321)

 
 


From: equinox-dev-bounces@xxxxxxxxxxx [mailto:equinox-dev-bounces@xxxxxxxxxxx] On Behalf Of ext Andrew Niefer
Sent:
Friday, June 06, 2008 2:35 PM
To:
Equinox development mailing list
Subject:
RE: [equinox-dev] RE: Need help building a product with p2



What version of eclipse are you using?  You could try I20080606-0100.  There were a couple of bug fixes regarding 0.0.0 versions.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=233816


I'm not sure about the absolute paths in the config.ini.  Perhaps -roaming would help?


Also, in that build are some freshly written docs that may be useful:

Plug-in Development Environment Guide -> Tasks -> PDE Build advanced Topics -> PDE Build Integration with p2

Platform Plug-in Developer Guide -> Programmer's Guide -> Packaging and delivering Eclipse based Products -> Provisioning platform (p2)


-Andrew


<Warren.Paul@xxxxxxxxx>
Sent by: equinox-dev-bounces@xxxxxxxxxxx

06/06/2008 09:43 AM

Please respond to
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>


To
<equinox-dev@xxxxxxxxxxx>
cc
Subject
RE: [equinox-dev] RE: Need help building a product with p2







After much trial and error, I have our product being built and packaged
using the steps I described below.  Basically this:

- build our product config
- use the packager to pull the desired bits from the Eclipse SDK
- extract the product and eclipse bits into a product layout
- run the p2 metadata generator on that layout
- run the p2 director on the generated metadata to generate the p2
directory in the product layout


Unfortunately, the product fails to launch.  The first problem is that
the generated config.ini file has a full path to a plugin on the build
server:

osgi.bundles=reference\:file\:/D\:/Products/Carbide/Tommy_product/Produc
t_Layout/eclipse/plugins/org.eclipse.equinox.p2.reconciler.dropins_1.0.0
.v20080529-1800.jar@4\:start

Any idea why?  Is there a hidden option for full paths or something?
Any way to debug this?


Anyway, I change that manually to

osgi.bundles=reference\:file\:org.eclipse.equinox.p2.reconciler.dropins_
1.0.0.v20080529-1800.jar@4\:start

and launch again.  Now I get the errors below.  It would appear that the
p2 info contains 0.0.0 as required bundle versions for some bundles.  I
looked through the content.xml file and do see 0.0.0 is some locations.
The generator and director both ran without errors, and nothing was
generated in the .log file.  Again, I'm not sure how to debug this
problem.  Any help would be greatly appreciated.  I've basically spent
the entire week trying to get this to work to no avail and it's been a
very frustrating experience.  :)

Thanks,
Warren


!ENTRY org.eclipse.equinox.p2.reconciler.dropins 4 0 2008-06-05
22:48:18.007
!MESSAGE
!STACK 0
org.osgi.framework.BundleException: The bundle could not be resolved.
Reason: Missing Constraint: Require-Bundle: org.eclipse.equinox.common;
bundle-version="0.0.0"
               at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHo
st.java:305)
               at
org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractB
undle.java:355)
               at
org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framewor
k.java:1074)
               at
org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles
(StartLevelManager.java:616)
               at
org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(Start
LevelManager.java:508)
               at
org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLev
el(StartLevelManager.java:299)
               at
org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent
(StartLevelManager.java:489)
               at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventMana
ger.java:211)
               at
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventMa
nager.java:321)

!ENTRY org.eclipse.osgi 2 0 2008-06-05 22:48:18.069
!MESSAGE One or more bundles are not resolved because the following root
constraints are not resolved:
!SUBENTRY 1 org.eclipse.osgi 2 0 2008-06-05 22:48:18.069
!MESSAGE Bundle
initial@reference:file:plugins/org.eclipse.equinox.p2.reconciler.dropins
_1.0.0.v20080529-1800.jar/ was not resolved.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.query_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing required bundle org.eclipse.equinox.common_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.configurator_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.director_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.metadata.query_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository_0.0.
0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.p2.artifact.repository_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.artifact.repository_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.metadata.repository_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.p2.extensionlocation_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing required bundle
org.eclipse.equinox.p2.touchpoint.eclipse_0.1.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package org.eclipse.equinox.app_1.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.core.repository_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.metadata_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.engine_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository_0.0.
0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.spi.p2.core.repository_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.p2.metadata.repository_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.p2.update_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.core_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.directorywatcher_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.069
!MESSAGE Missing imported package
org.eclipse.equinox.internal.p2.core.helpers_0.0.0.

!ENTRY org.eclipse.osgi 2 0 2008-06-05 22:48:18.085
!MESSAGE The following is a complete list of bundles which are not
resolved, see the prior log entry for the root cause if it exists:
!SUBENTRY 1 org.eclipse.osgi 2 0 2008-06-05 22:48:18.085
!MESSAGE Bundle
initial@reference:file:plugins/org.eclipse.equinox.p2.reconciler.dropins
_1.0.0.v20080529-1800.jar/ [1] was not resolved.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing required bundle org.eclipse.equinox.common_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing required bundle
org.eclipse.equinox.p2.touchpoint.eclipse_0.1.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package org.eclipse.equinox.app_1.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.p2.core.helpers_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.p2.extensionlocation_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.p2.artifact.repository_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.p2.metadata.repository_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.p2.update_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.configurator_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.artifact.repository_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.core_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.core.repository_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.director_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.directorywatcher_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.engine_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.metadata_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.metadata.query_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.metadata.repository_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.p2.query_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.spi.p2.artifact.repository_0.0.
0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.spi.p2.core.repository_0.0.0.
!SUBENTRY 2 org.eclipse.equinox.p2.reconciler.dropins 2 0 2008-06-05
22:48:18.085
!MESSAGE Missing imported package
org.eclipse.equinox.internal.provisional.spi.p2.metadata.repository_0.0.
0.

-----Original Message-----
From: equinox-dev-bounces@xxxxxxxxxxx
[mailto:equinox-dev-bounces@xxxxxxxxxxx] On Behalf Of ext
Warren.Paul@xxxxxxxxx
Sent: Tuesday, June 03, 2008 3:04 PM
To: equinox-dev@xxxxxxxxxxx
Subject: [equinox-dev] RE: Need help building a product with p2

I finally have the p2 director running and generating good data.
Unfortunately, I don't know what fixed it.  :)  The cmd line is exactly
the same.  I was getting JVM terminated dialogs after the p2 director
ran for a couple of minutes.  I rebooted my machine, installed RC3 (from
RC2), and tried again and got the JVM terminated once again.  Then I did
the same cmd line but also passed -clean.  It worked, and has been
working since!

More problems though.  I still can't get the product build to package
any org.eclipse stuff.  Maybe it's not supposed to?  I gave up that
route and decided to try using the Eclipse packager.  I copied the
template files and listed the features I was interested in.  It runs and
creates the zip file, but then I get this error:

BUILD FAILED
C:\Eclipse_3.4RC3\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080528\
scripts\
package.xml:86: The following error occurred while executing this line:
C:\Eclipse_3.4RC3\eclipse\plugins\org.eclipse.pde.build_3.4.0.v20080528\
scripts\
package.xml:51: The following error occurred while executing this line:
C:\testpackager3\workingPlace\package.all.xml:21: The following error
occurred w hile executing this line:
C:\testpackager3\workingPlace\package.all.xml:15: The following error
occurred w hile executing this line:
C:\Dev\Tommy\debug\eclipse\workspace\com.nokia.sdt.releng.tommybuilder\c
arbide.c
pp2\packager\customTargets.xml:16: The following error occurred while
executing this line:
C:\testpackager3\workingPlace\package..win32.win32.x86.xml:1600:
C:\testpackager
3\workingPlace\tmp\eclipse\win32.win32.x86\eclipse not found.

The generated Ant script is referencing a directory it never created.
No idea why.


Another issue I've run into is the headless product build fails if I
include the generate.p2.metadata stuff in the build.properties file.  It
fails when trying to delete the tmp directory because some of the
plugins are in use.  The appear to still be in use by the p2 metadata
generator.  If I remove that stuff from the build.properties file it
build fine.  For now I'm going to just try to run the metadata generator
from the command line myself after the product build.

So just to make sure I'm on the right track, here's my current thinking
on how it should work.  Please correct me if I'm wrong.

1) Create an Eclipse install with whatever we need to do our builds and
whatever we want to package that's pre-built (platform, cvs, emf, gef,
etc.)
2) Use that install to build our product from the cmd line.  Our product
only lists our features (no org.eclipse.*).
3) Use the packager to pull out the features we want to package from the
Eclipse install in (1)
4) Create a complete product layout from (2) and (3)
5) Run the p2 metadata generator on (4)
6) Run the p2 director on (5), generating a p2 directory in (4)


Thanks,
Warren





------------------------------

Message: 3
Date: Sat, 31 May 2008 07:41:37 -0500
From: <Warren.Paul@xxxxxxxxx>
Subject: [equinox-dev] RE: Need help building a product with p2
To: <equinox-dev@xxxxxxxxxxx>
Message-ID:
               
<78988A0C817D8B4F9734DE8EFCEA6F67019A4CFC@xxxxxxxxxxxxxxxxxxxxxx>
Content-Type: text/plain;                 charset="us-ascii"

Hi Andrew,

Changing the paths to URL's helped.  It now finds the product id
installIU, and takes a couple of minutes.  But it eventually comes back
with "Installation failed".  I wasn't sure what to put for profile.  I
assume PlatformProfile?  I tried that, SDKProfile, and remove the
profile option altogether.  I get the same error each time.  Is there a
way to get more details on what failed?  A verbose option perhaps?

Here's exactly how I'm invoking the director:

eclipsec.exe -nosplash -application
org.eclipse.equinox.p2.director.app.application -metadataRepository
file:C:\testproduct2\repository -artifactRepository
file:C:\testproduct2\repository -installIU com.nokia.carbide.cpp.product
-destination C:\testproduct2\eclipse -profile PlatformProfile
-profileProperties org.eclipse.update.install.features=true -bundlepool
C:\testproduct2\eclipse -p2.os win32 -p2.ws win32 -p2.arch x86 -roaming
-vmargs -Declipse.p2.data.area=C:\testproduct2\eclipse\p2


where C:\testproduct2\eclipse is where I exported the product to, and
C:\testproduct2\repository is what PDE generated for the product.

Thanks,
Warren


------------
Date: Fri, 30 May 2008 16:20:35 -0400
From: Andrew Niefer <aniefer@xxxxxxxxxx>
Subject: Re: [equinox-dev] Need help building a product with p2
To: Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
Message-ID:
               
<OFA0E574FE.7D42A298-ON85257459.00539CEC-85257459.006FBEE4@xxxxxxxxxx>
Content-Type: text/plain; charset="us-ascii"

Warren,

1) This is what I notice when I tried running your director command on a
product I exported:
-  the "-metadataRepository" and "-artifactRepository" values need to be
URLs: use "file:C:\testproduct\repository"
- I found I needed to specify -installIU to get anything out.  In this
case the IU is the product ID
- althrough not strictly necessary since the generated config.ini will
specify its location, you might want to put the p2.data.area in the same
folder as -destination.

My test product does not contain p2 bundles so I have not tried the
Software updates.





<Warren.Paul@xxxxxxxxx>
Sent by: equinox-dev-bounces@xxxxxxxxxxx
05/29/2008 08:25 PM
Please respond to
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>


To
<equinox-dev@xxxxxxxxxxx>
cc

Subject
[equinox-dev] Need help building a product with p2






I've received some help from Andrew in this Bugzilla (
https://bugs.eclipse.org/bugs/show_bug.cgi?id=226614) but I'm still
having problems so I thought I'd take it to the list rather than in that
Bugzilla.
We've been shipping an IDE product based on Eclipse for a few years now.

The way we've built our product in the past is essentially this:
1) Download the platform runtime, EMF, GEF, etc.. from eclipse.org and
extract them into a product layout directory.
2) Checkout and tag our features and plugins
3) Use headless feature build on all of our features, and extract the
generated archives into the product layout directory.
4) Copy our modified version of config.ini, .eclipseproduct, etc. into
the product layout directory.
5) Generate an update site based on the generated features/plugins.
This gives us a full product layout for new installs, and allows users
with older installs of our product to update to the new version using
the update site.
This process broke when we moved to Eclipse 3.4M6 when p2 was
introduced.
I've come to discover that we weren't really building it in the ideal
fashion to begin with, so I'm trying to do it the proper way so we can
get a properly p2-ized product layout and update site.
Andrew provided several useful links in that Bugzilla.  I've read about
doing product builds, using the p2 meta generator and p2 director.  I've

also played with the examples from EclipseCon presentation.
Here are some of the problems I'm having:
1) I created a .product file based on features.  I included our features

as well as those org.eclipse features that we bundle with.  When I
export it using the PDE product export from the UI, it generates a
directory containing everything we need - all features and plugins (ours
and org.eclipse.*), our branded launcher and ini file, .eclipseproduct
file,

config.ini file, jre, etc..  It of course does not contain the p2 data
though.  I told the exporter to generate a metadata repository which it
did.  I think I'm then supposed to run it through the p2 director to get

the proper p2 directory.  I tried this, and it generated something, but
I get the error "Cannot launch the Update UI.  This installation has not
been configured properly for Software Updates" when I try to go to
Help->Software Updates.  I assume I didn't get the command line correct
for the p2 director.  This is what I did:
eclipsec.exe -nosplash -application
org.eclipse.equinox.p2.director.app.application -metadataRepository
C:\testproduct\repository\ -artifactRepository
C:\testproduct\repository\ -destination C:\testproduct\eclipse\ -profile
PlatformProfile -profileProperties
org.eclipse.update.install.features=true -bundlepool
C:\testproduct\eclipse -p2.os win32 -p2.ws win32 -p2.arch x86 -roaming
-vmargs -Declipse.p2.data.area=C:\testproduct2\eclipse\p2
Any idea what I'm doing wrong?  I thought I should be passing -installIU

but wasn't sure what to pass with it.  I tried the product id but it
errored out saying it couldn't find the IU.

2) What I did in 1) was really just a test because we'll need to build
everything from the command line and not from the export wizard.  I
tried to build the product from the command line and kept getting an
error that org.eclipse.rcp could not be found.  I removed all
org.eclipse.* features from our product file and tried again.  Now it
builds, and it generates the repo directory because I added the stuff to
our build.properties file as instructed:
generate.p2.metadata=true
p2.metadata.repo = file:${buildDirectory}/repo p2.artifact.repo =
file:${buildDirectory}/repo p2.metadata.repo.name = Carbide.c++ Metadata
Repository p2.artifact.repo.name = Carbide.c++ Artifact Repository
p2.flavor = tooling p2.publish.artifacts=true This repo directory only
contains the two xml files though (artifacts.xml and content.xml),
unlike the product export which generated those as well as binary,
features and plugins directories.
The other issue is that none of the org.eclipse.* features/plugins are
included.  This is presumably because they're no longer in the .product
file, but I had to do that to get the build to work.  I tried creating a

master feature which just required all of our features and the
org.eclipse features, but still got the missing rcp error.  Note: in the
example2 from the EclispeCon zip, it builds a product and does include
the org.eclipse

stuff in the output.  This example is based on plugins rather than
features.  This is the only meaningful difference I could see in the
.product files.
I'm also confused about the topLevelElementType and topLevelElementId
attributes in the build.properties files.  I couldn't find any
documentation on these.  Ideally I'd put type=product and id=our product

id, and then I assume the installIU would be the product id?
Anyway, sorry for the long email, but I'm stuck and could really use
some help.
Thanks,
Warren

_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev



------------------------------

_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev


End of equinox-dev Digest, Vol 37, Issue 45
*******************************************
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev

_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev


Back to the top