Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » Buckminster » Building p2-enabled product with buckminster
Building p2-enabled product with buckminster [message #383568] Fri, 27 March 2009 11:43 Go to next message
Mikhail Kadan is currently offline Mikhail KadanFriend
Messages: 61
Registered: July 2009
Member
Hello.

This week I was investigating the possibility of using Buckminster to
build our Eclipse product. We were using PDE build before, and now is the
time of trying the new and progressive technology I think :)

The main problem I encountered was that Buckminster cannot automatically
create p2-repo and p2-enabled product. Surfing through message boards I
found, that p2 support is not integrated yet in Buckminster, and I have to
perform some additional ant calls. Ok, let's see how I understood this
process:

1) Create new plug-in based on RCP Mail template, f.e. "test"
2) Create new feature, f.e. "test.feature"
3) Include "test" plug-in into "test.feature"
4) Include "org.eclipse.platform" feature into "test.feature"
5) Create new product configuration, f.e. "test.product", in "test.feature"
6) Set this product name to "test.product", create new product id (place
it in "test" plug-in, set it's id to "product", application to
"test.application"), set version to "1.0.0", set application to
"test.application"
7) Make this product feature-based, add "test.feature" and
"org.eclipse.equinox.executable" (comes from RCP delta pack)

8) Test newly created product - everything is perfect except that Update
UI is not opening - but this is expected as self-hosted product was not
installed properly with p2-director

9) Test PDE build now - export product with "Generate metadata" set, next
use p2-director to install "test.product" IU from generated p2-repo,
launch it, see Update UI working perfectly - great!


Here comes the bad part - I don't want to use PDE build, I want to use
buckminster.

10) Invoke "create.test.product" action on "test.feature" bundle. We get
assembled product in ${buckminster.output} directory (user temp by
default).
11) We got
" ${buckminster.output}/build/test.feature_1.0.0-eclipse.featu re/eclipse "
folder with assembled product. Unfortunately, it's also not p2-enabled, so
we need to use p2-director to install it.
12) But the main problem is that we don't have p2-repo yet. To create it I
investigated PDE build scripts. There are calls to "p2.generator" task in
assemble, package and p2product script:

a) assemble script - called on almost empty product folder (contains only
product bundle) and generates launcher IUs (I guess :) ):
<p2.generator source="${eclipse.base}" append="${p2.append}"
flavor="${p2.flavor}" compress="${p2.compress}"
metadataRepository="${p2.metadata.repo}"
artifactRepository="${p2.artifact.repo}"
metadataRepositoryName="${p2.metadata.repo.name}"
artifactRepositoryName="${p2.artifact.repo.name}"
publishArtifacts="${p2.publish.artifacts}" site="${p2.category.site}"
p2OS="win32" mode="incremental" />
<p2.generator
config="${eclipse.base}/win32.win32.x86/${collectingFolder} "
append="${p2.append}" flavor="${p2.flavor}" compress="${p2.compress}"
metadataRepository="${p2.metadata.repo}"
artifactRepository="${p2.artifact.repo}"
metadataRepositoryName="${p2.metadata.repo.name}"
artifactRepositoryName="${p2.artifact.repo.name}"
launcherConfig="win32_win32_x86" p2OS="win32"
publishArtifacts="${p2.publish.artifacts}" mode="${p2.generation.mode}"
exe=" ${eclipse.base}/win32.win32.x86/${collectingFolder}/${launch erName} "
productFile=" C:\Work\eclipse\workspaces\test.xdoc\test.xdoc.feature\test. xdoc.product " />

b) package script - called on filled product folder (contains all the
other bundles bow) and generates IUs for all product bundles:
<p2.generator source="${eclipse.base}" append="${p2.append}"
flavor="${p2.flavor}" compress="${p2.compress}"
metadataRepository="${p2.metadata.repo}"
artifactRepository="${p2.artifact.repo}"
metadataRepositoryName="${p2.metadata.repo.name}"
artifactRepositoryName="${p2.artifact.repo.name}"
publishArtifacts="${p2.publish.artifacts}" site="${p2.category.site}"
p2OS="win32" mode="${p2.generation.mode}" />

c) p2product script - called on p2-repo itself and adds product IU to it:
<p2.generator append="${p2.append}" flavor="${p2.flavor}"
compress="${p2.compress}" metadataRepository="${p2.metadata.repo}"
artifactRepository="${p2.artifact.repo}"
metadataRepositoryName="${p2.metadata.repo.name}"
artifactRepositoryName="${p2.artifact.repo.name}"
publishArtifacts="${p2.publish.artifacts}" mode="final"
productFile=" C:\Work\eclipse\workspaces\runtime-New_configuration\test\te st.product "
versionAdvice=" C:\Work\eclipse\workspaces\runtime-New_configuration\.metada ta\.plugins\org.eclipse.pde.core\temp\org.eclipse.pde.contai ner.feature\versionAdvice.properties " />

13) Now I make this calls on my Buckminster-created product via additional
action in cspecx. This calls were mapped from PDE build scripts. It is an
issue though that I perform this calls on filled product folder already,
instead of on empty one as does PDE build assemble script.

<p2.generator
source="${buckminster.output}/site"
metadatarepository="file:${buckminster.output}/repository"
artifactrepository="file:${buckminster.output}/repository"
metadatarepositoryname=""
artifactrepositoryname=""
publishartifacts="true"
productfile="${buckminster.home}/test.xdoc.product"
flavor="tooling"
mode="incremental"
append="true"
p2os="win32"/>

<p2.generator
config="${buckminster.output}/eclipse"
metadatarepository="file:${buckminster.output}/repository"
artifactrepository="file:${buckminster.output}/repository"
metadatarepositoryname=""
artifactrepositoryname=""
publishartifacts="true"
productfile="${buckminster.home}/test.xdoc.product"
flavor="tooling"
mode="incremental"
append="true"
p2os="win32"
launcherConfig="win32_win32_x86"
exe="${buckminster.output}/eclipse/launcher.exe"/>

<p2.generator
metadatarepository="file:${buckminster.output}/repository"
artifactrepository="file:${buckminster.output}/repository"
metadatarepositoryname=""
artifactrepositoryname=""
publishartifacts="true"
productfile="${buckminster.home}/test.xdoc.product"
flavor="tooling"
mode="final"
append="true"/>

14) If I try to use p2-director afterwards I get the following error:
!
ENTRY org.eclipse.equinox.p2.director 4 0 2009-03-27 13:41:52.115
!MESSAGE Problems resolving provisioning plan.
!SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-03-27 13:41:52.115
!MESSAGE Unable to satisfy dependency from test.xdoc.product 1.0.0 to
requiredCapability: toolingtest.product/test.product.config/[1.0.0,1.0.0].
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-03-27 13:41:52.115
!MESSAGE No solution found because the problem in
C:\DOCUME~1\mkadan\LOCALS~1\Temp\p2Encoding11515508930702228 93.opb is
unsatisfiable.
Installation failed.

!ENTRY org.eclipse.equinox.p2.director 4 1 2009-03-27 13:41:52.975
!MESSAGE Cannot complete the install because some dependencies are not
satisfiable
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-03-27 13:41:52.975
!MESSAGE Unsatisfied dependency: [test.product 1.0.0] requiredCapability:
toolingtest.product/test.product.config/[1.0.0,1.0.0]
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-03-27 13:41:52.975
!MESSAGE Unsatisfied dependency: [test.product 1.0.0] requiredCapability:
toolingtest.product/test.product.config/[1.0.0,1.0.0]

15) Looking into content.xml show that "toolingtest.product.config" is not
provided. Comparing this file with PDE-generated one show, that it must be
provided by "toolingtest.product.config.win32.win32.x86" IU, which is
absent in Buckminster-generated p2-repo. Also this file is significantly
smaller than PDE generated.


It would be very helpful if somebody who knows how to properly generate
p2-repo will post here :)

Thanks.
Re: Building p2-enabled product with buckminster [message #383573 is a reply to message #383568] Fri, 27 March 2009 14:07 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi Mikhail,
A lot of things have changed in Buckminster for Galileo and the M6
release contains the functionality needed to build both P2 update sites
and P2 enabled products out of the box. No extra artifacts or build
scripts are needed.

In the Galileo release, any feature can serve as a description of a P2
repository. All features have the generated action 'site.p2'. Categories
can be added in the build.properties file for the feature. More info here:

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

The documentation is lagging behind but we're working on that. The demo
that Henrik Lindberg included in his talk at EclipseCon:

https://www.gpublication.com/eclipse/#requestedContent=conte ntID://EclipseConferences/EC2009/599

will be published at our Wiki. Meanwhile, perhaps you'd like to take a
look at our demo projects (you'll find them in our SVN here:)

http://dev.eclipse.org/svnroot/tools/org.eclipse.buckminster /trunk/org.eclipse.buckminster.tutorial.mailapp.product.feat ure
http://dev.eclipse.org/svnroot/tools/org.eclipse.buckminster /trunk/org.eclipse.buckminster.tutorial.mailapp
http://dev.eclipse.org/svnroot/tools/org.eclipse.buckminster /trunk/org.eclipse.buckminster.tutorial.mailapp.releng

Regards,
Thomas Hallgren


Mikhail Kadan wrote:
> Hello.
>
> This week I was investigating the possibility of using Buckminster to
> build our Eclipse product. We were using PDE build before, and now is
> the time of trying the new and progressive technology I think :)
>
> The main problem I encountered was that Buckminster cannot automatically
> create p2-repo and p2-enabled product. Surfing through message boards I
> found, that p2 support is not integrated yet in Buckminster, and I have
> to perform some additional ant calls. Ok, let's see how I understood
> this process:
>


> 1) Create new plug-in based on RCP Mail template, f.e. "test"
> 2) Create new feature, f.e. "test.feature"
> 3) Include "test" plug-in into "test.feature"
> 4) Include "org.eclipse.platform" feature into "test.feature"
> 5) Create new product configuration, f.e. "test.product", in "test.feature"
> 6) Set this product name to "test.product", create new product id (place
> it in "test" plug-in, set it's id to "product", application to
> "test.application"), set version to "1.0.0", set application to
> "test.application"
> 7) Make this product feature-based, add "test.feature" and
> "org.eclipse.equinox.executable" (comes from RCP delta pack)
>
> 8) Test newly created product - everything is perfect except that Update
> UI is not opening - but this is expected as self-hosted product was not
> installed properly with p2-director
>
> 9) Test PDE build now - export product with "Generate metadata" set,
> next use p2-director to install "test.product" IU from generated
> p2-repo, launch it, see Update UI working perfectly - great!
>
>
> Here comes the bad part - I don't want to use PDE build, I want to use
> buckminster.
>
> 10) Invoke "create.test.product" action on "test.feature" bundle. We get
> assembled product in ${buckminster.output} directory (user temp by
> default).
> 11) We got
> " ${buckminster.output}/build/test.feature_1.0.0-eclipse.featu re/eclipse "
> folder with assembled product. Unfortunately, it's also not p2-enabled,
> so we need to use p2-director to install it.
> 12) But the main problem is that we don't have p2-repo yet. To create it
> I investigated PDE build scripts. There are calls to "p2.generator" task
> in assemble, package and p2product script:
>
> a) assemble script - called on almost empty product folder (contains
> only product bundle) and generates launcher IUs (I guess :) ):
> <p2.generator source="${eclipse.base}" append="${p2.append}"
> flavor="${p2.flavor}" compress="${p2.compress}"
> metadataRepository="${p2.metadata.repo}"
> artifactRepository="${p2.artifact.repo}"
> metadataRepositoryName="${p2.metadata.repo.name}"
> artifactRepositoryName="${p2.artifact.repo.name}"
> publishArtifacts="${p2.publish.artifacts}" site="${p2.category.site}"
> p2OS="win32" mode="incremental" />
> <p2.generator
> config="${eclipse.base}/win32.win32.x86/${collectingFolder} "
> append="${p2.append}" flavor="${p2.flavor}" compress="${p2.compress}"
> metadataRepository="${p2.metadata.repo}"
> artifactRepository="${p2.artifact.repo}"
> metadataRepositoryName="${p2.metadata.repo.name}"
> artifactRepositoryName="${p2.artifact.repo.name}"
> launcherConfig="win32_win32_x86" p2OS="win32"
> publishArtifacts="${p2.publish.artifacts}" mode="${p2.generation.mode}"
> exe=" ${eclipse.base}/win32.win32.x86/${collectingFolder}/${launch erName} "
> productFile=" C:\Work\eclipse\workspaces\test.xdoc\test.xdoc.feature\test. xdoc.product "
> />
>
> b) package script - called on filled product folder (contains all the
> other bundles bow) and generates IUs for all product bundles:
> <p2.generator source="${eclipse.base}" append="${p2.append}"
> flavor="${p2.flavor}" compress="${p2.compress}"
> metadataRepository="${p2.metadata.repo}"
> artifactRepository="${p2.artifact.repo}"
> metadataRepositoryName="${p2.metadata.repo.name}"
> artifactRepositoryName="${p2.artifact.repo.name}"
> publishArtifacts="${p2.publish.artifacts}" site="${p2.category.site}"
> p2OS="win32" mode="${p2.generation.mode}" />
>
> c) p2product script - called on p2-repo itself and adds product IU to it:
> <p2.generator append="${p2.append}" flavor="${p2.flavor}"
> compress="${p2.compress}" metadataRepository="${p2.metadata.repo}"
> artifactRepository="${p2.artifact.repo}"
> metadataRepositoryName="${p2.metadata.repo.name}"
> artifactRepositoryName="${p2.artifact.repo.name}"
> publishArtifacts="${p2.publish.artifacts}" mode="final"
> productFile=" C:\Work\eclipse\workspaces\runtime-New_configuration\test\te st.product "
> versionAdvice=" C:\Work\eclipse\workspaces\runtime-New_configuration\.metada ta\.plugins\org.eclipse.pde.core\temp\org.eclipse.pde.contai ner.feature\versionAdvice.properties "
> />
>
> 13) Now I make this calls on my Buckminster-created product via
> additional action in cspecx. This calls were mapped from PDE build
> scripts. It is an issue though that I perform this calls on filled
> product folder already, instead of on empty one as does PDE build
> assemble script.
>
> <p2.generator
> source="${buckminster.output}/site"
> metadatarepository="file:${buckminster.output}/repository"
> artifactrepository="file:${buckminster.output}/repository"
> metadatarepositoryname=""
> artifactrepositoryname=""
> publishartifacts="true"
> productfile="${buckminster.home}/test.xdoc.product"
> flavor="tooling"
> mode="incremental"
> append="true"
> p2os="win32"/>
>
> <p2.generator
> config="${buckminster.output}/eclipse"
> metadatarepository="file:${buckminster.output}/repository"
> artifactrepository="file:${buckminster.output}/repository"
> metadatarepositoryname=""
> artifactrepositoryname=""
> publishartifacts="true"
> productfile="${buckminster.home}/test.xdoc.product"
> flavor="tooling"
> mode="incremental"
> append="true"
> p2os="win32"
> launcherConfig="win32_win32_x86"
> exe="${buckminster.output}/eclipse/launcher.exe"/>
>
> <p2.generator
> metadatarepository="file:${buckminster.output}/repository"
> artifactrepository="file:${buckminster.output}/repository"
> metadatarepositoryname=""
> artifactrepositoryname=""
> publishartifacts="true"
> productfile="${buckminster.home}/test.xdoc.product"
> flavor="tooling"
> mode="final"
> append="true"/>
>
> 14) If I try to use p2-director afterwards I get the following error:
> !
> ENTRY org.eclipse.equinox.p2.director 4 0 2009-03-27 13:41:52.115
> !MESSAGE Problems resolving provisioning plan.
> !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-03-27 13:41:52.115
> !MESSAGE Unable to satisfy dependency from test.xdoc.product 1.0.0 to
> requiredCapability: toolingtest.product/test.product.config/[1.0.0,1.0.0].
> !SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-03-27 13:41:52.115
> !MESSAGE No solution found because the problem in
> C:\DOCUME~1\mkadan\LOCALS~1\Temp\p2Encoding11515508930702228 93.opb is
> unsatisfiable.
> Installation failed.
>
> !ENTRY org.eclipse.equinox.p2.director 4 1 2009-03-27 13:41:52.975
> !MESSAGE Cannot complete the install because some dependencies are not
> satisfiable
> !SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-03-27 13:41:52.975
> !MESSAGE Unsatisfied dependency: [test.product 1.0.0]
> requiredCapability: toolingtest.product/test.product.config/[1.0.0,1.0.0]
> !SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-03-27 13:41:52.975
> !MESSAGE Unsatisfied dependency: [test.product 1.0.0]
> requiredCapability: toolingtest.product/test.product.config/[1.0.0,1.0.0]
>
> 15) Looking into content.xml show that "toolingtest.product.config" is
> not provided. Comparing this file with PDE-generated one show, that it
> must be provided by "toolingtest.product.config.win32.win32.x86" IU,
> which is absent in Buckminster-generated p2-repo. Also this file is
> significantly smaller than PDE generated.
>
>
> It would be very helpful if somebody who knows how to properly generate
> p2-repo will post here :)
>
> Thanks.
>
Re: Building p2-enabled product with buckminster [message #383832 is a reply to message #383568] Mon, 30 March 2009 06:46 Go to previous messageGo to next message
Renat Zubairov is currently offline Renat ZubairovFriend
Messages: 30
Registered: July 2009
Member
Hello Mikhail,

Unfortunately I don't know how to do it, however I remember I've seen
something like p2ize.product in one of the Eclipse projects called Spaces.
You can have a look there, may be you will find it.

Renat


On 27.03.09 12:43, in article
1b04de4cfbff5e9c21e7c1bc46882be7$1@www.eclipse.org, "Mikhail Kadan"
<mkadan@gmail.com> wrote:

> Hello.
>
> This week I was investigating the possibility of using Buckminster to
> build our Eclipse product. We were using PDE build before, and now is the
> time of trying the new and progressive technology I think :)
>
> The main problem I encountered was that Buckminster cannot automatically
> create p2-repo and p2-enabled product. Surfing through message boards I
> found, that p2 support is not integrated yet in Buckminster, and I have to
> perform some additional ant calls. Ok, let's see how I understood this
> process:
>
> 1) Create new plug-in based on RCP Mail template, f.e. "test"
> 2) Create new feature, f.e. "test.feature"
> 3) Include "test" plug-in into "test.feature"
> 4) Include "org.eclipse.platform" feature into "test.feature"
> 5) Create new product configuration, f.e. "test.product", in "test.feature"
> 6) Set this product name to "test.product", create new product id (place
> it in "test" plug-in, set it's id to "product", application to
> "test.application"), set version to "1.0.0", set application to
> "test.application"
> 7) Make this product feature-based, add "test.feature" and
> "org.eclipse.equinox.executable" (comes from RCP delta pack)
>
> 8) Test newly created product - everything is perfect except that Update
> UI is not opening - but this is expected as self-hosted product was not
> installed properly with p2-director
>
> 9) Test PDE build now - export product with "Generate metadata" set, next
> use p2-director to install "test.product" IU from generated p2-repo,
> launch it, see Update UI working perfectly - great!
>
>
> Here comes the bad part - I don't want to use PDE build, I want to use
> buckminster.
>
> 10) Invoke "create.test.product" action on "test.feature" bundle. We get
> assembled product in ${buckminster.output} directory (user temp by
> default).
> 11) We got
> " ${buckminster.output}/build/test.feature_1.0.0-eclipse.featu re/eclipse "
> folder with assembled product. Unfortunately, it's also not p2-enabled, so
> we need to use p2-director to install it.
> 12) But the main problem is that we don't have p2-repo yet. To create it I
> investigated PDE build scripts. There are calls to "p2.generator" task in
> assemble, package and p2product script:
>
> a) assemble script - called on almost empty product folder (contains only
> product bundle) and generates launcher IUs (I guess :) ):
> <p2.generator source="${eclipse.base}" append="${p2.append}"
> flavor="${p2.flavor}" compress="${p2.compress}"
> metadataRepository="${p2.metadata.repo}"
> artifactRepository="${p2.artifact.repo}"
> metadataRepositoryName="${p2.metadata.repo.name}"
> artifactRepositoryName="${p2.artifact.repo.name}"
> publishArtifacts="${p2.publish.artifacts}" site="${p2.category.site}"
> p2OS="win32" mode="incremental" />
> <p2.generator
> config="${eclipse.base}/win32.win32.x86/${collectingFolder} "
> append="${p2.append}" flavor="${p2.flavor}" compress="${p2.compress}"
> metadataRepository="${p2.metadata.repo}"
> artifactRepository="${p2.artifact.repo}"
> metadataRepositoryName="${p2.metadata.repo.name}"
> artifactRepositoryName="${p2.artifact.repo.name}"
> launcherConfig="win32_win32_x86" p2OS="win32"
> publishArtifacts="${p2.publish.artifacts}" mode="${p2.generation.mode}"
> exe=" ${eclipse.base}/win32.win32.x86/${collectingFolder}/${launch erName} "
> productFile=" C:\Work\eclipse\workspaces\test.xdoc\test.xdoc.feature\test. xdoc.
> product" />
>
> b) package script - called on filled product folder (contains all the
> other bundles bow) and generates IUs for all product bundles:
> <p2.generator source="${eclipse.base}" append="${p2.append}"
> flavor="${p2.flavor}" compress="${p2.compress}"
> metadataRepository="${p2.metadata.repo}"
> artifactRepository="${p2.artifact.repo}"
> metadataRepositoryName="${p2.metadata.repo.name}"
> artifactRepositoryName="${p2.artifact.repo.name}"
> publishArtifacts="${p2.publish.artifacts}" site="${p2.category.site}"
> p2OS="win32" mode="${p2.generation.mode}" />
>
> c) p2product script - called on p2-repo itself and adds product IU to it:
> <p2.generator append="${p2.append}" flavor="${p2.flavor}"
> compress="${p2.compress}" metadataRepository="${p2.metadata.repo}"
> artifactRepository="${p2.artifact.repo}"
> metadataRepositoryName="${p2.metadata.repo.name}"
> artifactRepositoryName="${p2.artifact.repo.name}"
> publishArtifacts="${p2.publish.artifacts}" mode="final"
> productFile=" C:\Work\eclipse\workspaces\runtime-New_configuration\test\te st.pr
> oduct"
> versionAdvice=" C:\Work\eclipse\workspaces\runtime-New_configuration\.metada ta\
> .plugins\org.eclipse.pde.core\temp\org.eclipse.pde.container .feature\versionAd
> vice.properties" />
>
> 13) Now I make this calls on my Buckminster-created product via additional
> action in cspecx. This calls were mapped from PDE build scripts. It is an
> issue though that I perform this calls on filled product folder already,
> instead of on empty one as does PDE build assemble script.
>
> <p2.generator
> source="${buckminster.output}/site"
> metadatarepository="file:${buckminster.output}/repository"
> artifactrepository="file:${buckminster.output}/repository"
> metadatarepositoryname=""
> artifactrepositoryname=""
> publishartifacts="true"
> productfile="${buckminster.home}/test.xdoc.product"
> flavor="tooling"
> mode="incremental"
> append="true"
> p2os="win32"/>
>
> <p2.generator
> config="${buckminster.output}/eclipse"
> metadatarepository="file:${buckminster.output}/repository"
> artifactrepository="file:${buckminster.output}/repository"
> metadatarepositoryname=""
> artifactrepositoryname=""
> publishartifacts="true"
> productfile="${buckminster.home}/test.xdoc.product"
> flavor="tooling"
> mode="incremental"
> append="true"
> p2os="win32"
> launcherConfig="win32_win32_x86"
> exe="${buckminster.output}/eclipse/launcher.exe"/>
>
> <p2.generator
> metadatarepository="file:${buckminster.output}/repository"
> artifactrepository="file:${buckminster.output}/repository"
> metadatarepositoryname=""
> artifactrepositoryname=""
> publishartifacts="true"
> productfile="${buckminster.home}/test.xdoc.product"
> flavor="tooling"
> mode="final"
> append="true"/>
>
> 14) If I try to use p2-director afterwards I get the following error:
> !
> ENTRY org.eclipse.equinox.p2.director 4 0 2009-03-27 13:41:52.115
> !MESSAGE Problems resolving provisioning plan.
> !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-03-27 13:41:52.115
> !MESSAGE Unable to satisfy dependency from test.xdoc.product 1.0.0 to
> requiredCapability: toolingtest.product/test.product.config/[1.0.0,1.0.0].
> !SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-03-27 13:41:52.115
> !MESSAGE No solution found because the problem in
> C:\DOCUME~1\mkadan\LOCALS~1\Temp\p2Encoding11515508930702228 93.opb is
> unsatisfiable.
> Installation failed.
>
> !ENTRY org.eclipse.equinox.p2.director 4 1 2009-03-27 13:41:52.975
> !MESSAGE Cannot complete the install because some dependencies are not
> satisfiable
> !SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-03-27 13:41:52.975
> !MESSAGE Unsatisfied dependency: [test.product 1.0.0] requiredCapability:
> toolingtest.product/test.product.config/[1.0.0,1.0.0]
> !SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-03-27 13:41:52.975
> !MESSAGE Unsatisfied dependency: [test.product 1.0.0] requiredCapability:
> toolingtest.product/test.product.config/[1.0.0,1.0.0]
>
> 15) Looking into content.xml show that "toolingtest.product.config" is not
> provided. Comparing this file with PDE-generated one show, that it must be
> provided by "toolingtest.product.config.win32.win32.x86" IU, which is
> absent in Buckminster-generated p2-repo. Also this file is significantly
> smaller than PDE generated.
>
>
> It would be very helpful if somebody who knows how to properly generate
> p2-repo will post here :)
>
> Thanks.
>
Re: Building p2-enabled product with buckminster [message #383844 is a reply to message #383573] Tue, 31 March 2009 15:45 Go to previous messageGo to next message
Mikhail Kadan is currently offline Mikhail KadanFriend
Messages: 61
Registered: July 2009
Member
By the way, is it possible to make buckminster understand "dropins" folder
in targetPlatformPath? I've used Buckminster 3.5 r10062 (which is said to
be fully p2-ized), but it doesn't look under that folder while resolving
components, so I had to manually move them to "plugins" in platform root.
Re: Building p2-enabled product with buckminster [message #383845 is a reply to message #383844] Tue, 31 March 2009 16:02 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
I think the way to achieve that would be to install a feature that
includes the reconciler. That way, the things present in the dropins
folder will be installed into the runtime the same way it's done when
the IDE starts.

This would only work when the target platform is the same as the
runtime. If that's not the case, then I'm afraid there's no way to do this.

Regards,
Thomas Hallgren

Mikhail Kadan wrote:
> By the way, is it possible to make buckminster understand "dropins"
> folder in targetPlatformPath? I've used Buckminster 3.5 r10062 (which is
> said to be fully p2-ized), but it doesn't look under that folder while
> resolving components, so I had to manually move them to "plugins" in
> platform root.
>
Re: Building p2-enabled product with buckminster [message #384205 is a reply to message #383573] Wed, 08 April 2009 12:42 Go to previous messageGo to next message
Mikhail Kadan is currently offline Mikhail KadanFriend
Messages: 61
Registered: July 2009
Member
Hi Thomas!

Your post was very helpful! I was able to create p2-site and install my
product from it using p2-director. But now I have some problems with
updating it.

Let me describe them on example of
org.eclipse.buckminster.tutorial.mailapp from buckminster svn.

At first I must say, that to be able to install it I had to:
1) add org.eclipse.equinox.p2.metadata plug-in to
org.eclipse.buckminster.tutorial.rcpp2.feature
2) add org.eclipse.help feature to
org.eclipse.buckminster.tutorial.mailapp.product.feature

Can you please make this changes in svn to provide us with fully working
tutorial? :P

Ok, next. As I said, I've created p2-site for this tutorial (using site.p2
action) and then installed product from this site using p2-director. What
I wanted next was to update my splashscreen. So I made following steps:

1) changed splashscreen in photoshop :)
2) increased org.eclipse.buckminster.tutorial.mailapp plug-in version to
1.0.1
3) rebuilt p2-site
4) invoked Help -> Check For Updates from my installed application, but no
updates were found

5) increased org.eclipse.buckminster.tutorial.mailapp.product.feature
feature version to 1.0.1
6) rebuilt p2-site
7) invoked Help -> Check For Updates from my installed application, but no
updates were found

8) increased testmailapp.product product version to 1.0.1 (it is placed in
org.eclipse.buckminster.tutorial.mailapp.product.feature feature)
9) rebuilt p2-site
10) invoked Help -> Check For Updates from my installed application, but
no updates were found

Can you help me and explain, what I have to do to make my application find
an update?

Thanks.
Re: Building p2-enabled product with buckminster [message #384206 is a reply to message #384205] Wed, 08 April 2009 13:52 Go to previous messageGo to next message
Mikhail Kadan is currently offline Mikhail KadanFriend
Messages: 61
Registered: July 2009
Member
Sorry, was writing in a hurry, so there were some mistakes in a post

> At first I must say, that to be able to install it I had to:
> 1) add org.eclipse.equinox.p2.metadata plug-in to
> org.eclipse.buckminster.tutorial.rcpp2.feature
> 2) add org.eclipse.help feature to
> org.eclipse.buckminster.tutorial.mailapp.product.feature

sorry but was looking at already modified version of tutorial :( for pure
svn version we need to:
1) add org.eclipse.equinox.p2.repository plug-in to
org.eclipse.buckminster.tutorial.rcpp2.feature
2) remove org.eclipse.equinox.security.macosx plug-in from
org.eclipse.buckminster.tutorial.rcpp2.feature


Also ready web-presentaion you provided:
https://www.gpublication.com/eclipse/#requestedContent=conte ntID://EclipseConferences/EC2009/599

There is a page in it which tells about update (page 34). It says I have
to add local update site manually fue to some bugs. But my product doesn't
have an "Add" button in p2 UI, nor preference pages! So I just cannot add
this site :)
Re: Building p2-enabled product with buckminster [message #384207 is a reply to message #384205] Wed, 08 April 2009 14:11 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi Mikhail,

Mikhail Kadan wrote:
> At first I must say, that to be able to install it I had to: 1) add
> org.eclipse.equinox.p2.metadata plug-in to
> org.eclipse.buckminster.tutorial.rcpp2.feature
> 2) add org.eclipse.help feature to
> org.eclipse.buckminster.tutorial.mailapp.product.feature
>
> Can you please make this changes in svn to provide us with fully working
> tutorial? :P
>
The best way to get this in is to submit a bugzilla with a patch. That way, you will also be included in our log of
contributors (the IP-log).


> Ok, next. As I said, I've created p2-site for this tutorial (using
> site.p2 action) and then installed product from this site using
> p2-director. What I wanted next was to update my splashscreen. So I made
> following steps:
>
> 1) changed splashscreen in photoshop :)
> 2) increased org.eclipse.buckminster.tutorial.mailapp plug-in version to
> 1.0.1
> 3) rebuilt p2-site
> 4) invoked Help -> Check For Updates from my installed application, but
> no updates were found
>
> 5) increased org.eclipse.buckminster.tutorial.mailapp.product.feature
> feature version to 1.0.1
> 6) rebuilt p2-site
> 7) invoked Help -> Check For Updates from my installed application, but
> no updates were found
>
> 8) increased testmailapp.product product version to 1.0.1 (it is placed
> in org.eclipse.buckminster.tutorial.mailapp.product.feature feature)
> 9) rebuilt p2-site
> 10) invoked Help -> Check For Updates from my installed application, but
> no updates were found
>
> Can you help me and explain, what I have to do to make my application
> find an update?
>
I've seen this too and I think this might actually be a p2 bug. I used the "Install new software" instead and it
discovers the new updated feature and lists it as such (two rotating arrows).

What version of P2 are you currently using?

- thomas
Re: Building p2-enabled product with buckminster [message #384728 is a reply to message #384206] Wed, 08 April 2009 14:15 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Mikhail Kadan wrote:
> 1) add org.eclipse.equinox.p2.repository plug-in to
> org.eclipse.buckminster.tutorial.rcpp2.feature
>
Right, this one was added to P2 post M6. So it wasn't present when the demo was written.

> 2) remove org.eclipse.equinox.security.macosx plug-in from
> org.eclipse.buckminster.tutorial.rcpp2.feature
>
This is probably because you don't have the delta-pack installed. In essence you cannot build a platform independent
update site without it.

> Also ready web-presentaion you provided:
> https://www.gpublication.com/eclipse/#requestedContent=conte ntID://EclipseConferences/EC2009/599
>
>
> There is a page in it which tells about update (page 34). It says I have
> to add local update site manually fue to some bugs. But my product
> doesn't have an "Add" button in p2 UI, nor preference pages! So I just
> cannot add this site :)
>
Hmm, that doesn't sound right. No "Avaliable sites" either?

- thomas
Re: Building p2-enabled product with buckminster [message #384729 is a reply to message #384728] Wed, 08 April 2009 15:19 Go to previous messageGo to next message
Mikhail Kadan is currently offline Mikhail KadanFriend
Messages: 61
Registered: July 2009
Member
Hi, Thomas!


> The best way to get this in is to submit a bugzilla with a patch.
> That way, you will also be included in our log of contributors (the IP-log).

I'll try to do this. Just have to read what is a bugzilla patch and how to
create one. By the way, to bring update UI in application, I had to
include org.eclipse.platform and org.eclipse.help features into it. I
think this also have to come with this patch.


> I've seen this too and I think this might actually be a p2 bug.
> I used the "Install new software" instead and it discovers the
> new updated feature and lists it as such (two rotating arrows).
> What version of P2 are you currently using?

I'm using p2 which comes with Eclipse integration build I20090401-1325


> This is probably because you don't have the delta-pack installed.
> In essence you cannot build a platform independent update site without it.

But I have... And I've found this plug-in in my platform on hard drive,
but not in Window -> Prefernces. I think this is because I'm using Windows
OS, and this plug-in just is filtered out from platform at runtime (I'm
using build from IDE, maybe on headless build this problem will vanish).
By the way, is it needed in the product? If yes, what I have to do to
build product on Windows? Maybe declare this plugin optional?


> Hmm, that doesn't sound right. No "Avaliable sites" either?

Nope, no "Add" button and no "Avaliable sites" link also. Here is
screenshot of my update UI in installed product.
http://zergirl.at.tut.by/broken_p2_ui.JPG


Just another additional question. When I provide some branding in .product
file (for example launcher name or executable icon) it doesn't appear in
installed product. Is this feature not implemented yet?


Thanks.
Re: Building p2-enabled product with buckminster [message #384730 is a reply to message #384729] Wed, 08 April 2009 21:53 Go to previous message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Mikhail Kadan wrote:

> But I have... And I've found this plug-in in my platform on hard drive,
> but not in Window -> Prefernces. I think this is because I'm using
> Windows OS, and this plug-in just is filtered out from platform at
> runtime (I'm using build from IDE, maybe on headless build this problem
> will vanish).
No, that's not very likely. There used to be a check-box in the target platform for this, but it's removed now. I'll
have to investigate this further.

> By the way, is it needed in the product? If yes, what I
> have to do to build product on Windows? Maybe declare this plugin optional?
>
The problem is that you're building an update site, not a product. Normally you don't know what platform the end user
will be on so you don't want to apply filters until install time.

>> Hmm, that doesn't sound right. No "Avaliable sites" either?
>
> Nope, no "Add" button and no "Avaliable sites" link also. Here is
> screenshot of my update UI in installed product.
> http://zergirl.at.tut.by/broken_p2_ui.JPG
>
Henrik must answer that when he gets back from his vacation. I'm not very familiar with the P2 UI.

>
> Just another additional question. When I provide some branding in
> .product file (for example launcher name or executable icon) it doesn't
> appear in installed product. Is this feature not implemented yet?
>
Not fully. It's being worked on.

- thomas
Previous Topic:Migrating to the fresh p2 Buckminster
Next Topic:File not found for http://download.eclipse.org/tools/buckminster/headless-3.5/
Goto Forum:
  


Current Time: Fri Apr 26 14:41:18 GMT 2024

Powered by FUDForum. Page generated in 0.04826 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top