Bug 263568 - Galileo build broken when using 3.5M5
Summary: Galileo build broken when using 3.5M5
Status: RESOLVED FIXED
Alias: None
Product: Equinox
Classification: Eclipse Project
Component: p2 (show other bugs)
Version: unspecified   Edit
Hardware: Power PC Linux-GTK
: P3 blocker (vote)
Target Milestone: 3.5 M5   Edit
Assignee: P2 Inbox CLA
QA Contact:
URL: http://build.eclipse.org/galileo/buil...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-02-03 20:21 EST by Richard Gronback CLA
Modified: 2009-04-16 11:53 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Richard Gronback CLA 2009-02-03 20:21:49 EST
The Galileo build was updated to use 3.5M5 and now fails with the following error during the director invocation:

run.director:
     [exec] Installing org.eclipse.galileo.product 1.0.0.v200902031913.
     [exec] !SESSION 2009-02-03 19:27:00.014 -----------------------------------------------
     [exec] eclipse.buildId=I20090202-1535
     [exec] java.fullversion=J2RE 1.5.0 IBM J9 2.3 Linux ppc-32 j9vmxp3223-20071007 (JIT enabled)
     [exec] J9VM - 20071004_14218_bHdSMR
     [exec] JIT  - 20070820_1846ifx1_r8
     [exec] GC   - 200708_10
     [exec] BootLoader constants: OS=linux, ARCH=ppc, WS=gtk, NL=en_US
     [exec] Framework arguments:  -application org.eclipse.equinox.p2.director.app.application -p2.flavor tooling -installIU org.eclipse.galileo.product -version 1.0.0.v200902031913 -p2.os linux -p2.ws gtk -p2.arch ppc -roaming -profile galileoProfile -profileProperties org.eclipse.update.install.features=true -metadataRepository file:/shared/galileo/build/galileo/I20090203-1913/repo -artifactRepository file:/shared/galileo/build/galileo/I20090203-1913/repo -destination /shared/galileo/build/galileo/I20090203-1913/p2/tmp/linux.gtk.ppc/galileo -bundlepool /shared/galileo/build/galileo/I20090203-1913/p2/tmp/linux.gtk.ppc/galileo
     [exec] Command-line arguments:  -os linux -ws gtk -arch ppc -application org.eclipse.equinox.p2.director.app.application -consoleLog -p2.flavor tooling -installIU org.eclipse.galileo.product -version 1.0.0.v200902031913 -p2.os linux -p2.ws gtk -p2.arch ppc -roaming -profile galileoProfile -profileProperties org.eclipse.update.install.features=true -metadataRepository file:/shared/galileo/build/galileo/I20090203-1913/repo -artifactRepository file:/shared/galileo/build/galileo/I20090203-1913/repo -destination /shared/galileo/build/galileo/I20090203-1913/p2/tmp/linux.gtk.ppc/galileo -bundlepool /shared/galileo/build/galileo/I20090203-1913/p2/tmp/linux.gtk.ppc/galileo

     [exec] !ENTRY org.eclipse.equinox.p2.director 4 0 2009-02-03 19:27:08.033
     [exec] !MESSAGE Problems resolving provisioning plan.
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.034
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.user.ui.feature.group 1.1.0.v20090202-7b3FULFTy215R8uqOA_6aY to org.eclipse.ecf [3.0.0,4.0.0).
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.034
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.user.ui.feature.group 1.1.0.v20090202-7b3FULFTy215R8uqOA_6aY to org.eclipse.ecf.filetransfer [3.0.0,4.0.0).
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.035
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.user.ui.feature.group 1.1.0.v20090202-7b3FULFTy215R8uqOA_6aY to org.eclipse.ecf.identity [3.0.0,4.0.0).
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.035
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.user.ui.feature.group 1.1.0.v20090202-7b3FULFTy215R8uqOA_6aY to org.eclipse.ecf.provider.filetransfer [3.0.0,4.0.0).
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.035
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.user.ui.feature.group 1.1.0.v20090202-7b3FULFTy215R8uqOA_6aY to org.eclipse.ecf.provider.filetransfer.ssl [1.0.0,2.0.0).
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.036
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.user.ui.feature.group 1.1.0.v20090202-7b3FULFTy215R8uqOA_6aY to org.eclipse.ecf.ssl [1.0.0,2.0.0).
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.036
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.user.ui.feature.group 1.1.0.v20090202-7b3FULFTy215R8uqOA_6aY to org.eclipse.ecf.provider.filetransfer.httpclient [3.0.0,4.0.0).
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.036
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.user.ui.feature.group 1.1.0.v20090202-7b3FULFTy215R8uqOA_6aY to org.eclipse.ecf.provider.filetransfer.httpclient.ssl [1.0.0,2.0.0).
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.037
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.metadata.repository 1.0.100.v20090124-2000 to bundle org.eclipse.ecf 1.2.0.
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.037
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.metadata.repository 1.0.100.v20090124-2000 to bundle org.eclipse.ecf.filetransfer 2.0.0.
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.037
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.updatesite 1.0.100.v20090119 to bundle org.eclipse.ecf.filetransfer 0.0.0.
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.037
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.updatesite 1.0.100.v20090119 to bundle org.eclipse.ecf 0.0.0.
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.038
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.artifact.repository 1.0.100.v20090124 to bundle org.eclipse.ecf.filetransfer 0.0.0.
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 2 0 2009-02-03 19:27:08.038
     [exec] !MESSAGE Unable to satisfy dependency from org.eclipse.equinox.p2.artifact.repository 1.0.100.v20090124 to bundle org.eclipse.ecf 0.0.0.
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-02-03 19:27:08.038
     [exec] !MESSAGE No solution found because the problem in /tmp/p2Encoding23190.opb is unsatisfiable.
     [exec] Installation failed.

     [exec] !ENTRY org.eclipse.equinox.p2.director 4 1 2009-02-03 19:27:19.852
     [exec] !MESSAGE Cannot complete the install because some dependencies are not satisfiable
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-02-03 19:27:19.852
     [exec] !MESSAGE "org.eclipse.equinox.p2.metadata.repository 1.0.100.v20090124-2000" requires "bundle org.eclipse.ecf 1.2.0" 
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-02-03 19:27:19.853
     [exec] !MESSAGE "org.eclipse.equinox.p2.metadata.repository 1.0.100.v20090124-2000" requires "bundle org.eclipse.ecf.filetransfer 2.0.0" 
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-02-03 19:27:19.853
     [exec] !MESSAGE "org.eclipse.equinox.p2.metadata.repository 1.0.100.v20090124-2000" requires "bundle org.eclipse.ecf 1.2.0" 
     [exec] !SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2009-02-03 19:27:19.853
     [exec] !MESSAGE "org.eclipse.equinox.p2.metadata.repository 1.0.100.v20090124-2000" requires "bundle org.eclipse.ecf.filetransfer 2.0.0" 

 ...

See the URL for the full build log.
Comment 1 Andrew Niefer CLA 2009-02-04 08:56:48 EST
Where is ecf?
The log basically just says: We can't install org.eclipse.galileo.product because we require ecf and it is not there.

The SDK changed its dependency on ecf from an includes to a requires so that ecf is not confined to shipping the version in the SDK.  See bug 256345.

When PDE/Build does a fetch and packaging for a build it follows includes but not requires, this could be why ecf is missing.

You may need to add an ecf feature to your galileo.product
Comment 2 Richard Gronback CLA 2009-02-04 09:38:56 EST
(In reply to comment #1)
> The SDK changed its dependency on ecf from an includes to a requires so that
> ecf is not confined to shipping the version in the SDK.  See bug 256345.

Good to know, thanks.

> When PDE/Build does a fetch and packaging for a build it follows includes but
> not requires, this could be why ecf is missing.

This seem strange to me, as requires != optional.  I guess I don't see the distinction between "includes" and "requires" when it comes to product build and repo generation.  IMHO, if I'm starting with the SDK as my base, include the SDK in my product, ECF should be populated in my repo created during the product build and therefore be available to the director, as it's required.

> You may need to add an ecf feature to your galileo.product

I tried that, and now have the following error: https://build.eclipse.org/hudson/job/galileo.build/ws/galileo.build.log.txt

It seems I'll need to specify the same ECF versions used by the platform in its build, which means the ecf.build model will need to be updated along with ep.build (which I have been doing myself).

Copying Scott to get his input here.

Comment 3 Andrew Niefer CLA 2009-02-04 11:00:58 EST
(In reply to comment #2)
> This seem strange to me, as requires != optional.  I guess I don't see the
> distinction between "includes" and "requires" when it comes to product build
> and repo generation.  IMHO, if I'm starting with the SDK as my base, include
> the SDK in my product, ECF should be populated in my repo created during the
> product build and therefore be available to the director, as it's required.

You are right, and this is mostly just that PDE/Build has not yet fully caught up to the brave new world that is p2.  However, I can also see an argument that product builds (productBuild.xml) should treat requires as includes.  We can use bug 177247 to consider this topic.

> I tried that, and now have the following error:
> https://build.eclipse.org/hudson/job/galileo.build/ws/galileo.build.log.txt
> 
> It seems I'll need to specify the same ECF versions used by the platform in its
> build, which means the ecf.build model will need to be updated along with
> ep.build (which I have been doing myself).
> 
> Copying Scott to get his input here.
> 

It seems the SDK is shipping a newer version than the feature you are currently including.  The newer version is getting resolved by osgi, and the feature is asking for the old one.

Your comment re requires/includes for products does suggest another possible fix.  You could leave your product as it was before, and just ensure that the ecf bundles get metadata generated into your repo (/shared/galileo/build/galileo/I20090203-1913/repo).  This could be done just before invoking the director by calling the old metadata generator, or new publisher.

Fancy new publisher task in M5 (requires org.eclipse.equinox.publisher in your builder):
 <p2.publish.featuresAndBundles repository="file:/build/repo" >
    <bundles dir="target/eclipse/plugins" includes="org.eclipse.ecf*.jar"/>
 </p2.publish.featuresAndBundles>
: <bundles> (and also <features>) are filesets
: setting repository is equivalent to setting both artifactRepository and metadataRepository to the same location).

The old generator call is less precise and works on whole directories:
<p2.generator source="target/eclipse" append="true" flavor="tooling" metadataRepository="file:${repo}" artifactRepository="file:${repo}" publishArtifacts="true"  />
Comment 4 Andrew Niefer CLA 2009-02-04 11:23:54 EST
I was also going to suggest using "filteredDependencyCheck=true" as a fix to including the ecf feature, but upon closer examination, I don't think this will work, I have raised bug 263658.
Comment 5 Richard Gronback CLA 2009-02-04 13:33:10 EST
Scott has adjusted the ecf.build model to match the version used by the platform M5 build, and I have included ECF in the build.  Note that this also means others taking this approach will require EMF as well, as there's an EMF dependency from the ECF feature.