Community
Participate
Working Groups
Build Identifier: org.eclipse.buckminster.cmdline_1.0.350.r11146.jar I'm building a p2 update-site for an RCP application using buckminster. The RCP application is a custom Eclipse SDK, realised as an Eclipse feature which requires needed IDE features (e.g. Subversive, Google Web Toolkit, and some other Eclipse plugins). I can build the update-site fine by invoking the site.p2 action from the Eclipse IDE, using buckminster Core and PDE support installed from http://download.eclipse.org/tools/buckminster/updates-3.5 However, when I try the same with headless Buckminster (installed from the headless update site for 3.5), it fails with the following trace: Caused by: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:221) at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:176) at java.util.jar.JarVerifier.processEntry(JarVerifier.java:245) at java.util.jar.JarVerifier.update(JarVerifier.java:199) at java.util.jar.JarFile.initializeVerifier(JarFile.java:323) at java.util.jar.JarFile.getInputStream(JarFile.java:388) at org.eclipse.buckminster.pde.tasks.GroupConsolidator.getInput(GroupConsolidator.java:135) while reading the file org.eclipse.wtp.epp.package.jee.intro_1.2.0.20090617-0522.jar from within buckminster's build output directory. jarsigner -verify also fails to verify the jar. The jar seems to be re-packed, and is missing files that are present in the jar downloaded from eclipse.org. Below is a diff between the two unpacked jars. 'jar' is the broken jar, 'jar2' is the jar from eclipse.org (which verifies fine): diff -urN jar/about.html jar2/about.html --- jar/about.html 1970-01-01 01:00:00.000000000 +0100 +++ jar2/about.html 2010-07-09 14:50:32.000000000 +0200 @@ -0,0 +1,34 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> +<HTML> + +<head> +<title>About</title> +<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1"> +</head> + +<BODY lang="EN-US"> + +<H3>About This Content</H3> + +<P>June, 2008</P> + +<H3>License</H3> + +<P>The Eclipse Foundation makes available all content in this plug-in +("Content"). Unless otherwise indicated below, the Content is provided to you +under the terms and conditions of the Eclipse Public License Version 1.0 +("EPL"). A copy of the EPL is available at +<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. +For purposes of the EPL, "Program" will mean the Content.</P> + +<P>If you did not receive this Content directly from the Eclipse Foundation, the +Content is being redistributed by another party ("Redistributor") and different +terms and conditions may apply to your use of any object code in the Content. +Check the Redistributor's license that was provided with the Content. If no such +license exists, contact the Redistributor. Unless otherwise indicated below, the +terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at +<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P> + +</BODY> +</HTML> diff -urN jar/.classpath jar2/.classpath --- jar/.classpath 1970-01-01 01:00:00.000000000 +0100 +++ jar2/.classpath 2010-07-09 14:50:32.000000000 +0200 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path=""/> + <classpathentry kind="output" path="bin"/> +</classpath> diff -urN jar/META-INF/MANIFEST.MF jar2/META-INF/MANIFEST.MF --- jar/META-INF/MANIFEST.MF 2010-07-09 14:40:29.000000000 +0200 +++ jar2/META-INF/MANIFEST.MF 2010-07-09 14:50:32.000000000 +0200 @@ -1,6 +1,5 @@ Manifest-Version: 1.0 Ant-Version: Apache Ant 1.7.1 -Created-By: 2.3 (IBM Corporation) Bundle-Vendor: %pluginProvider Bundle-ActivationPolicy: lazy Bundle-Localization: plugin @@ -10,6 +9,7 @@ true Require-Bundle: org.eclipse.ui,org.eclipse.core.runtime,org.eclipse.ui .intro,org.eclipse.swt,org.eclipse.jface,org.eclipse.ui.workbench +Created-By: 2.3 (IBM Corporation) Bundle-Version: 1.2.0.20090617-0522 Bundle-ManifestVersion: 2 diff -urN jar/.project jar2/.project --- jar/.project 1970-01-01 01:00:00.000000000 +0100 +++ jar2/.project 2010-07-09 14:50:32.000000000 +0200 @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.wtp.epp.package.jee.intro</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff -urN jar/.settings/org.eclipse.jdt.core.prefs jar2/.settings/org.eclipse.jdt.core.prefs --- jar/.settings/org.eclipse.jdt.core.prefs 1970-01-01 01:00:00.000000000 +0100 +++ jar2/.settings/org.eclipse.jdt.core.prefs 2010-07-09 14:50:32.000000000 +0200 @@ -0,0 +1,8 @@ +#Wed May 20 09:30:27 EEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 This looks like a bug so I am reporting it here. Is there anything I can do to prevent the headless build from changing the jar file? We would like to build the Eclipse SDK with hudson, but are forced to perform the site.p2 action from within the Eclipse IDE because of this problem. Thanks. Reproducible: Always
Here's the full stack trace from the entry point of getInput() (shortly before the corrupt jar file is opened): [1] org.eclipse.buckminster.pde.tasks.GroupConsolidator.getInput (GroupConsolidator.java:135) [2] org.eclipse.buckminster.pde.tasks.GroupConsolidator.<init> (GroupConsolidator.java:227) [3] org.eclipse.buckminster.pde.tasks.FeatureConsolidator.<init> (FeatureConsolidator.java:42) [4] org.eclipse.buckminster.pde.ant.FeatureConsolidatorTask.execute (FeatureConsolidatorTask.java:99) [5] org.apache.tools.ant.UnknownElement.execute (UnknownElement.java:288) [6] sun.reflect.NativeMethodAccessorImpl.invoke0 (native method) [7] sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) [8] sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) [9] java.lang.reflect.Method.invoke (Method.java:597) [10] org.apache.tools.ant.dispatch.DispatchUtils.execute (DispatchUtils.java:106) [11] org.apache.tools.ant.Task.perform (Task.java:348) [12] org.apache.tools.ant.Target.execute (Target.java:357) [13] org.apache.tools.ant.Target.performTasks (Target.java:385) [14] org.apache.tools.ant.Project.executeSortedTargets (Project.java:1,337) [15] org.apache.tools.ant.Project.executeTarget (Project.java:1,306) [16] org.apache.tools.ant.helper.DefaultExecutor.executeTargets (DefaultExecutor.java:41) [17] org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets (EclipseDefaultExecutor.java:32) [18] org.apache.tools.ant.Project.executeTargets (Project.java:1,189) [19] org.eclipse.ant.internal.core.ant.InternalAntRunner.run (InternalAntRunner.java:662) [20] org.eclipse.ant.internal.core.ant.InternalAntRunner.run (InternalAntRunner.java:495) [21] sun.reflect.NativeMethodAccessorImpl.invoke0 (native method) [22] sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) [23] sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) [24] java.lang.reflect.Method.invoke (Method.java:597) [25] org.eclipse.buckminster.ant.AntRunner.run (AntRunner.java:344) [26] org.eclipse.buckminster.ant.actor.AntActor.internalPerform (AntActor.java:281) [27] org.eclipse.buckminster.core.actor.AbstractActor.perform (AbstractActor.java:201) [28] org.eclipse.buckminster.core.internal.actor.PerformManager$DirectActionInvocation.execute (PerformManager.java:151) [29] org.eclipse.buckminster.core.internal.actor.PerformManager.internalPerform (PerformManager.java:507) [30] org.eclipse.buckminster.core.internal.actor.PerformManager.perform (PerformManager.java:335) [31] org.eclipse.buckminster.core.internal.actor.PerformManager.perform (PerformManager.java:350) [32] org.eclipse.buckminster.core.commands.Perform.internalRun (Perform.java:118) [33] org.eclipse.buckminster.core.commands.WorkspaceCommand.run (WorkspaceCommand.java:191) [34] org.eclipse.buckminster.cmdline.AbstractCommand.basicRun (AbstractCommand.java:155) [35] org.eclipse.buckminster.cmdline.Headless.run (Headless.java:341) [36] org.eclipse.buckminster.cmdline.Headless.run (Headless.java:135) [37] org.eclipse.buckminster.cmdline.Headless.start (Headless.java:189) [38] org.eclipse.equinox.internal.app.EclipseAppHandle.run (EclipseAppHandle.java:194) [39] org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication (EclipseAppLauncher.java:110) [40] org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start (EclipseAppLauncher.java:79) [41] org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:368) [42] org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:179) [43] sun.reflect.NativeMethodAccessorImpl.invoke0 (native method) [44] sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) [45] sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) [46] java.lang.reflect.Method.invoke (Method.java:597) [47] org.eclipse.equinox.launcher.Main.invokeFramework (Main.java:559) [48] org.eclipse.equinox.launcher.Main.basicRun (Main.java:514) [49] org.eclipse.equinox.launcher.Main.run (Main.java:1,311) [50] org.eclipse.equinox.launcher.Main.main (Main.java:1,287)
A lot of issues related to signing was fixed in Buckminster 3.6. Can you please try that and see if the problem persists?