Home » Archived » Buckminster » Building p2-enabled product with buckminster
Building p2-enabled product with buckminster [message #383568] |
Fri, 27 March 2009 11:43 |
Mikhail Kadan 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 |
|
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 |
Renat Zubairov 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 #383845 is a reply to message #383844] |
Tue, 31 March 2009 16:02 |
|
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 #384207 is a reply to message #384205] |
Wed, 08 April 2009 14:11 |
|
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 |
|
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 |
Mikhail Kadan 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 |
|
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
|
|
|
Goto Forum:
Current Time: Fri Apr 26 14:41:18 GMT 2024
Powered by FUDForum. Page generated in 0.04826 seconds
|