Hello Nicolas,
thank you very much for the quick reply. I think I found, what caused the problem. I use my own p2-mirror. This mirror contains packed and unpacked copies of some artifacts. Packed copies of artifacts are stored in the .blobstore directory. It looks like Ivy picks unpacked artifact thinking, it's packed. Ignoring packed artifacts while recreating the p2-mirror repository helped. I will open a jira issue for that. Boris PS I create my p2-mirror using my own tool borisbrodski/org.eclipse.pde.targetplatformexporter Update site: https://github.com/borisbrodski/org.eclipse.pde.targetplatformexporter/raw/updatesite/org.eclipse.pde.targetplatformexporter.site On Tuesday, July 15, 2014 3:55 PM, Nicolas Lalevée <nicolas.lale...@hibnet.org> wrote: Hi, Le 15 juil. 2014 à 11:46, Boris Brodski <brodsky_bo...@yahoo.com.INVALID> a écrit : > Hello, > > > playing with OSGi resolvers I found a very strange behavior: It looks like > during unpacking of some *.jar.pack.gz archives Ivy modifies MANIFEST.MF. > This results is: "Invalid signature file digest for Manifest" error raised by > the VM. > > > Inspecting following bundles from update site: > http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/ > > - org.eclipse.xtend.core-2.6.1.v201406120726.jar.pack.gz - Unmodified > MANIFEST.MF : No error > - org.eclipse.xtend.core-2.6.2.v201407030533.jar.pack.gz - Modified > MANIFEST.MF : ERROR > > Diff between original MANIFEST.MF and by Ivy modified version: > (Ivy rearranges lines. Sorting both original and Ivy-modified > MANIFEST.MF-files produces identical output) > > > @@ -1,4 +1,24 @@ > Manifest-Version: 1.0 > +Bundle-Localization: plugin > +Bundle-RequiredExecutionEnvironment: J2SE-1.5 > +Bundle-SymbolicName: org.eclipse.xtend.core;singleton:=true > +Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",org.ec > + lipse.emf.ecore;bundle-version="2.9.0";visibility:="reexport",org.ecl > + ipse.xtext.common.types;bundle-version="2.6.2";visibility:="reexport" > + ,org.eclipse.xtext.xbase;bundle-version="2.6.2";visibility:="reexport > + ",org.eclipse.xtext;bundle-version="2.6.2",org.eclipse.xtext.util;bun > + dle-version="2.6.2",org.eclipse.emf.mwe2.launch;bundle-version="2.2.0 > + ";resolution:="optional";x-installation:="greedy",org.eclipse.emf.mwe > + 2.lib;bundle-version="2.2.0";resolution:="optional";x-installation:=" > + greedy",org.eclipse.xtext.generator;bundle-version="2.6.2";resolution > + :="optional";x-installation:="greedy",org.antlr.runtime;bundle-versio > + n="[3.2.0,3.2.1)",org.eclipse.jdt.core;bundle-version="3.5.0";resolut > + ion:="optional";x-installation:="greedy",org.eclipse.xtext.xbase.lib; > + bundle-version="[2.6.0,3.0.0)",org.eclipse.xtend.lib;bundle-version=" > + 2.6.2",org.eclipse.xtext.smap;bundle-version="2.6.2",org.apache.ant;b > + undle-version="1.7.1";resolution:="optional";x-installation:="greedy" > + ,org.eclipse.xtext.xbase.junit;bundle-version="2.6.2";resolution:="op > + tional" > Export-Package: org.eclipse.xtend.core;x-internal:=true,org.eclipse.xt > end.core.compiler;x-internal:=true,org.eclipse.xtend.core.compiler.ba > tch,org.eclipse.xtend.core.conversion;x-internal:=true,org.eclipse.xt > @@ -20,2732 +40,2712 @@ Export-Package: > org.eclipse.xtend.core;x-internal:=true,org.eclipse.xt > ation;x-internal:=true,org.eclipse.xtend.core.xtend;x-internal:=true, > org.eclipse.xtend.core.xtend.impl;x-internal:=true,org.eclipse.xtend. > core.xtend.util;x-internal:=true > -Bundle-ActivationPolicy: lazy > +Bundle-Version: 2.6.2.v201407030533 > +Ant-Version: Apache Ant 1.8.3 > Bundle-ClassPath: . > -Bundle-Localization: plugin > +Bundle-ActivationPolicy: lazy > +Bundle-Vendor: %providerName > Bundle-Name: %pluginName > Created-By: 1.6.0_45-b06 (Sun Microsystems Inc.) > -Bundle-RequiredExecutionEnvironment: J2SE-1.5 > -Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0",org.ec > - lipse.emf.ecore;bundle-version="2.9.0";visibility:="reexport",org.ecl > - ipse.xtext.common.types;bundle-version="2.6.2";visibility:="reexport" > - ,org.eclipse.xtext.xbase;bundle-version="2.6.2";visibility:="reexport > - ",org.eclipse.xtext;bundle-version="2.6.2",org.eclipse.xtext.util;bun > - dle-version="2.6.2",org.eclipse.emf.mwe2.launch;bundle-version="2.2.0 > - ";resolution:="optional";x-installation:="greedy",org.eclipse.emf.mwe > - 2.lib;bundle-version="2.2.0";resolution:="optional";x-installation:=" > - greedy",org.eclipse.xtext.generator;bundle-version="2.6.2";resolution > - :="optional";x-installation:="greedy",org.antlr.runtime;bundle-versio > - n="[3.2.0,3.2.1)",org.eclipse.jdt.core;bundle-version="3.5.0";resolut > - ion:="optional";x-installation:="greedy",org.eclipse.xtext.xbase.lib; > - bundle-version="[2.6.0,3.0.0)",org.eclipse.xtend.lib;bundle-version=" > - 2.6.2",org.eclipse.xtext.smap;bundle-version="2.6.2",org.apache.ant;b > - undle-version="1.7.1";resolution:="optional";x-installation:="greedy" > - ,org.eclipse.xtext.xbase.junit;bundle-version="2.6.2";resolution:="op > - tional" > -Ant-Version: Apache Ant 1.8.3 > -Bundle-Vendor: %providerName > -Bundle-Version: 2.6.2.v201407030533 > -Bundle-ManifestVersion: 2 > Import-Package: org.apache.log4j;version="1.2.15",org.eclipse.xtext.xb > ase.lib > -Bundle-SymbolicName: org.eclipse.xtend.core;singleton:=true > +Bundle-ManifestVersion: 2 > > -Name: org/eclipse/xtend/core/macro/declaration/JvmExecutableDeclaratio > - nImpl$3.class > -SHA1-Digest: 86QcHNMNBD/THDgOv+293UTj1U4= > +Name: org/eclipse/xtend/core/xtend/impl/XtendPackageImpl.class > +SHA1-Digest: OGuJ6N9ZPJ0RHi2IN0XeGtZF3So= > > ------------------- cut ---------------------- > > > Using modified jar file like this: java -cp > ~/.ivy2/cache/bundle/org.eclipse.xtend.core/jar_unpackeds/org.eclipse.xtend.core-2.6.2.v201407030533.jar:..... > org.jnario.compiler.CompilerMain arg1 arg2 ... > > > produces > > > Class 'org.eclipse.xtend.core.compiler.batch.Main' not found: Invalid > signature file digest for Manifest main > attributesjava.lang.SecurityException: Invalid signature file digest for > Manifest main attributes > at > sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:240) > at > sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:193) > at java.util.jar.JarVerifier.processEntry(JarVerifier.java:307) > at java.util.jar.JarVerifier.update(JarVerifier.java:218) > at java.util.jar.JarFile.initializeVerifier(JarFile.java:345) > at java.util.jar.JarFile.getInputStream(JarFile.java:412) > at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:775) > at sun.misc.Resource.cachedInputStream(Resource.java:77) > at sun.misc.Resource.getByteBuffer(Resource.java:160) > at java.net.URLClassLoader.defineClass(URLClassLoader.java:436) > at java.net.URLClassLoader.access$100(URLClassLoader.java:71) > at java.net.URLClassLoader$1.run(URLClassLoader.java:361) > at java.net.URLClassLoader$1.run(URLClassLoader.java:355) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:354) > at java.lang.ClassLoader.loadClass(ClassLoader.java:425) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) > at java.lang.ClassLoader.loadClass(ClassLoader.java:358) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:190) > at > de.finkonsens.pingo.tools.FileArgumentRunner.main(FileArgumentRunner.java:98) > > BUILD FAILED > > Using 2.6.1.v201406120726 version of the bundle works. > > > Is this a bug or a feature? How can I prevent Ivy from modifying files like this? Ivy does nothing with the jar but unpacking the .jar.pack.gz into .jar and optionally then to a folder. But seems like a bug. You're welcomed to open a jira issue, with OS and jvm version info please. Nicolas