Bug#634089: jh_manifest causes CRC error

Wookey wookey at wookware.org
Sat Jan 7 20:44:33 UTC 2012

+++ tony mancill [2012-01-06 13:26 -0800]:
> On 01/05/2012 08:14 PM, Wookey wrote:

> Thank you for in-depth look into this bug.  Niels or Matthew, any
> concerns with me preparing an upload?
> > 
> > This seems to me to be a serious problem blocking all
> > java-helper-using packages
> > 
> > So, I took a look at what's going on and found the following:
> <--snip-->
> > We can fix it by explicitly removing and recreating it:
> > 
> >         verbose_print("Updating manifest in $jar");
> >         $zip->removeMember( 'META-INF/MANIFEST.MF' ) unless($new_manifest);
> >         $zip->removeMember( 'META-INF/' );
> >         $mem = $zip->addString($var, 'META-INF/MANIFEST.MF');
> >         $mem->desiredCompressionMethod(COMPRESSION_DEFLATED);
> >         $zip->addDirectory( 'META-INF/' );
> >         # This on the other hand may fail.
> >         $zip->overwrite() == AZ_OK or error("Writing modified jar ($jar) failed$
> > 
> > which I hope is an acceptable fix. Patch attached.

Having thought about it a bit, I'm not sure what happens with the
above workaround if there _isn't_ a META-INF/ dir already present
(does that ever happen)? Does the dir member entry end up after the
file member? Is that a problem in zipfiles?

And what if ther META-INF dir has other files in it (does that happen
with java-helper? - will doing this break that? - I'm not sure what
filesystem semantics Archive::Zip imposes)?

It might be a good idea to test this on some more packages than just

And in the meantime the perl people are taking some interest in the
real bug, which I believe is in Archive::Zip, not jh_manifest, so as
we've already waited several months another week or so to see if that
gets fixed is probably in order before uploading this workaround in

There are 227 packages which build-depend on javahelper, and
presumably all/mostly use jh_manifest so a fix of some sort is quite

Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM

More information about the pkg-java-maintainers mailing list