Community
Participate
Working Groups
Build Identifier: 20110615-0604 I have an application that contains 2 features: featureapp - This is a product plugin. It changes with each build. featurelib - This feature contains library plugins and root files (executibles). It seldom changes. When I perform a 'full-build', I build featureapp and featurelib from source. The 'assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86_64.xml' file is generated, containing the following correct snippet which builds the archive: <target name="assemble.archive" depends="assemble.archive.condition" unless="assemble.archive.condition"> <antcall target="customAssembly"> <param name="rootFolder" value="${eclipse.base}/linux.gtk.x86_64/${collectingFolder}"/> <param name="customTarget" value="pre.archive"/> </antcall> <zip destfile="${archiveFullPath}" filesonly="false" whenempty="skip" update="true"> <zipfileset dir="${eclipse.base}" includes="**/**" excludes="bin/dot_static,libcairo-swt.so,${launcherName}" prefix="${archivePrefix}" /> <zipfileset file="${eclipse.base}/bin/dot_static" fullpath="${archivePrefix}/bin/dot_static" filemode="755" /> <zipfileset file="${eclipse.base}/libcairo-swt.so" fullpath="${archivePrefix}/libcairo-swt.so" filemode="755" /> <zipfileset file="${eclipse.base}/${launcherName}" fullpath="${archivePrefix}/${launcherName}" filemode="755" /> </zip> </target> (Note: the code you see concerning 'dot_static' comes from the following spec in build.properties: 'root.linux.gtk.x86_64.permissions.755=bin/dot_static') When I perform a 'partial-build', I rebuild featureapp from source, but mirror the last version of featurelib from my update site and compile/build against it (repoBaseLocation,transformedRepoLocation). The 'assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86_64.xml' has the following errant code: <target name="assemble.archive" depends="assemble.archive.condition" unless="assemble.archive.condition"> <antcall target="customAssembly"> <param name="rootFolder" value="${eclipse.base}/linux.gtk.x86_64/${collectingFolder}"/> <param name="customTarget" value="pre.archive"/> </antcall> <zip destfile="${archiveFullPath}" filesonly="false" whenempty="skip" update="true"> <zipfileset dir="${eclipse.base}" includes="**/**" excludes="libcairo-swt.so,${launcherName}" prefix="${archivePrefix}" /> <zipfileset file="${eclipse.base}/libcairo-swt.so" fullpath="${archivePrefix}/libcairo-swt.so" filemode="755" /> <zipfileset file="${eclipse.base}/${launcherName}" fullpath="${archivePrefix}/${launcherName}" filemode="755" /> </zip> </target> (Note: There's no reference to 'dot_static'. In this scenario, the p2 information for the root files is completely ignored). Summary: The code that generates 'assemble.org.eclipse.pde.build.container.feature.linux.gtk.x86_64.xml' doesn't look at p2 root file information when it works with a 'mirrored' feature, but does the right thing if it's building the feature from source. Workaround: Add a 'customAssembly.xml' script, adding logic to 'pre.archive' so that it runs the <zip> task the same way it runs when featurelib is built from source. This is brittle (changing build.properties in featurelib requires changing this source as well). Reproducible: Always Steps to Reproduce: 1.Create 2 features, one that's an app and the other that has root files. 2.Build both from source and setup an update site. 3.Build again, mirroring the feature with root files.
Currently we are not actively enhancing PDE build anymore. Therefore, I close this bug as WONTFIX. Please reopen, if you plan to provide a fix.