Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 316130

Summary: [planner] cannot install plugin and patched plugin (via feature patch) at once
Product: [Eclipse Project] Equinox Reporter: Jacek Pospychala <jacek.pospychala>
Component: p2Assignee: P2 Inbox <equinox.p2-inbox>
Status: RESOLVED WORKSFORME QA Contact:
Severity: major    
Priority: P3 CC: irbull, pascal
Version: 3.6   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Jacek Pospychala CLA 2010-06-08 09:42:09 EDT
When creating our product, we're using PDE Build to create big p2 repository of all dependencies and feature that will be included. Finally, in postBuild, we're creating product using following p2.director command line:

-application org.eclipse.equinox.p2.director -flavor tooling 
-installIU com.zend.php.ide/7.3.0.v20100608 
-p2.os win32 
-p2.ws win32 
-p2.arch x86 
-roaming 
-profile studioProfile 
-profileProperties org.eclipse.update.install.features=true 
-metadataRepository ${p2.metadata.repo} 
-artifactRepository ${p2.artifact.repo}
-destination ${p2.install.path}
-bundlepool ${p2.install.path}
-vmargs
-Declipse.p2.data.area=${p2.install.path}/p2
-Declipse.p2.MD5Check=false
-Declipse.p2.profile=${p2.profile}
-Xmx1024m

We're patching some of the features using feature patches, so both original features as well as feature patches are in the source repository.

Our product includes both, original features as well as a feature that contains all feature patches.

Unfortunately, when trying to install the product, director fails with following:
!ENTRY org.eclipse.equinox.p2.director 4 1 2010-06-08 12:49:20.146
!MESSAGE Cannot complete the install because of a conflicting dependency.
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 0 2010-06-08 12:49:20.146
!MESSAGE Software being installed: Zend Studio 7.3.0.v20100608 (com.zend.php.ide 7.3.0.v20100608)
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 1 2010-06-08 12:49:20.146
!MESSAGE Only one of the following can be installed at once: 
!SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2010-06-08 12:49:20.146
!MESSAGE Eclipse Data Tools Platform SQLite UI Enablement Plug-in 1.0.0.v200906020900 (org.eclipse.datatools.enablement.sqlite.ui 1.0.0.v200906020900)
!SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2010-06-08 12:49:20.147
!MESSAGE Eclipse Data Tools Platform SQLite UI Enablement Plug-in 1.0.0.v20100607 (org.eclipse.datatools.enablement.sqlite.ui 1.0.0.v20100607)
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 1 2010-06-08 12:49:20.147
!MESSAGE Cannot satisfy dependency:
!SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2010-06-08 12:49:20.147
!MESSAGE From: Zend Studio 7.3.0.v20100608 (com.zend.php.ide 7.3.0.v20100608)
!SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2010-06-08 12:49:20.147
!MESSAGE To: org.eclipse.datatools.enablement.sqlite.ui [1.0.0.v200906020900]
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 1 2010-06-08 12:49:20.147
!MESSAGE Cannot satisfy dependency:
!SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2010-06-08 12:49:20.148
!MESSAGE From: Zend Studio 7.3.0.v20100608 (com.zend.php.ide 7.3.0.v20100608)
!SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2010-06-08 12:49:20.148
!MESSAGE To: org.eclipse.datatools.enablement.sqlite.ui [1.0.0.v20100607]


As far as I understand, above error log says that com.zend.php.ide depends on two versions of org.eclipse.datatools.enablement.sqlite.ui. 
I'm not sure why it claims that. The dependency looks like this:

com.zend.php.ide (product)
+- org.eclipse.datatools.enablement.feature (feature)
|  +- org.eclipse.datatools.enablement.sqlite.ui 1.0.0.v200906020900
+- com.zend.php.patches.feature (feature)
   +- org.eclipse.datatools.enablement.feature.patch (feature patch)
      +- org.eclipse.datatools.enablement.sqlite.ui 1.0.0.v20090607


We also tried to create our product first without the patches, and install patches later, via p2 GUI. Following is the error log we're getting when installing our patches feature (sorry, this time not JSDT instead of DTP, but it doesn't matter):

 Software being installed: Zend Studio Patches Feature 7.3.0.v20100608 (com.zend.php.patches.feature.group 7.3.0.v20100608)
  Software currently installed: Zend Studio 7.3.0.v20100607 (com.zend.php.ide 7.3.0.v20100607)
  Only one of the following can be installed at once: 
    JSDT Web Support UI 1.0.300.v20100608 (org.eclipse.wst.jsdt.web.ui 1.0.300.v20100608)
    JSDT Web Support UI 1.0.300.v201005200151 (org.eclipse.wst.jsdt.web.ui 1.0.300.v201005200151)
  Cannot satisfy dependency:
    From: Zend Studio 7.3.0.v20100607 (com.zend.php.ide 7.3.0.v20100607)
    To: org.eclipse.wst.jsdt.web.ui [1.0.300.v201005200151]
  Cannot satisfy dependency:
    From: Zend Studio 7.3.0.v20100607 (com.zend.php.ide 7.3.0.v20100607)
    To: org.eclipse.wst.web_ui.feature.feature.group [3.2.0.v201005241510-7O7CFb3EMf84nOyJKuT05LU72RId]
  Cannot satisfy dependency:
    From: Zend Studio Patches Feature 7.3.0.v20100608 (com.zend.php.patches.feature.group 7.3.0.v20100608)
    To: org.eclipse.wst.web_ui.feature.patch.feature.group [3.2.0.v20100608]
  Cannot satisfy dependency:
    From Patch: org.eclipse.wst.web_ui.feature.patch.feature.group 3.2.0.v20100608 Eclipse Web Developer Tools 3.2.0.v201005241510-7O7CFb3EMf84nOyJKuT05LU72RId (org.eclipse.wst.web_ui.feature.feature.group 3.2.0.v201005241510-7O7CFb3EMf84nOyJKuT05LU72RId)
    To: org.eclipse.wst.jsdt.web.ui [1.0.300.v20100608]

So again, p2 claims that there's conflict between product and our feature patch.

We also tried to install our feature patches on top of clean Eclipse SDK 36RC3 with required features installed via p2 gui. Without any errors.

The issue appeared, after migrating org.eclipse.releng.basebuilder in our build system from R36_M4 to R36_RC2.

I couldn't have found any similar issues in bzilla. Any ideas?
Comment 1 Jacek Pospychala CLA 2010-06-08 13:02:50 EDT
to narrow down, I also tried basebuilder R36_M7 and it breaks the same way as RC2. R36_M4 still works, so the breaking change must have appeared somewhere between M4 and M7.
Comment 2 Jacek Pospychala CLA 2010-09-28 09:32:33 EDT
I forgot about this for a while, because we switched back to basebuilder R36_M4. But other bugs in R36_M4 (related to pack.gz/jar) forced me to move again to R36_RC4.

My new take on this issue is that p2 is unable to install a feature with plugin and a patch feature with patched plugin in one run.

Or is p2 able to do so?
Comment 3 Pascal Rapicault CLA 2011-06-12 21:33:42 EDT
As far as I can see this should work fine since from a resolution point of view p2 treats every install / update / remove as a complete install. Please provide a small test case if this still occurs.