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
terraintool.
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
jh_manifest.
There are 227 packages which build-depend on javahelper, and
presumably all/mostly use jh_manifest so a fix of some sort is quite
urgent.
Wookey
--
Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/
More information about the pkg-java-maintainers
mailing list