[
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
|
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
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)
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