Bug#940973: libarchive-zip-perl breaks strip-nondeterminism autopkgtest: error: becoming Archive::Zip::DirectoryMember

gregor herrmann gregoa at debian.org
Sat Oct 12 17:29:08 BST 2019


On Thu, 10 Oct 2019 06:30:52 -0700, tony mancill wrote:

> > error: No member named $memberName 
> >  at /usr/share/perl5/Archive/Zip/Archive.pm line 411.
> > 	Archive::Zip::Archive::contents(Archive::Zip::Archive=HASH(0x55bbbdadedd0), "META-INF/MANIFEST.MF") called at /usr/bin/jh_manifest line 297
> > 	main::update_jar("/<<PKGBUILDDIR>>/debian/li"..., undef) called at /usr/bin/jh_manifest line 147
> > Could not read manifest from /<<PKGBUILDDIR>>/debian/libquartz2-java/usr/share/java/quartz2-2.3.0.jar (2):  at /usr/bin/jh_manifest line 298.
> > jh_classpath: jh_manifest -plibquartz2-java --classpath=/usr/share/java/slf4j-api.jar debian/libquartz2-java/usr/share/java/quartz2.jar returned exit code 255
> > make: *** [debian/rules:4: binary] Error 255
> 
> I don't know if this is the same issue but wanted to mention it here,
> since it seems potentially related.  I'd be glad to provide more
> debugging information or testing if that would help.  libquartz2-java is
> an example of a source package that exhibits this issue.

I tried with libquartz2-java now and found the following:

# jh_manifest -plibquartz2-java --classpath=/usr/share/java/slf4j-api.jar debian/libquartz2-java/usr/share/java/quartz2.jar
error: No member named $memberName 
 at /usr/share/perl5/Archive/Zip/Archive.pm line 411.
	Archive::Zip::Archive::contents(Archive::Zip::Archive=HASH(0x5622c68d6100), "META-INF/MANIFEST.MF") called at /usr/bin/jh_manifest line 297
	main::update_jar("/build/libquartz2-java-2.3.0/debian/libquartz2-java/usr/share"..., undef) called at /usr/bin/jh_manifest line 147
Could not read manifest from /build/libquartz2-java-2.3.0/debian/libquartz2-java/usr/share/java/quartz2-2.3.0.jar (2):  at /usr/bin/jh_manifest line 298.


So the same error as above. What jh_manifest is doing is:

sub update_jar{
    my $jar = shift;
    my $merge = shift;
    my $zip = Archive::Zip->new();
    my $con;
    my $manifest;
    my $stat;
    my $dirty = 0;
    my $main;
    my $new_manifest = 0;
    # stringify or $zip will make a call back that fails.
    $zip->read( "$jar" ) == AZ_OK or error("Could not read $jar: $!");
    ($con, $stat) = $zip->contents( 'META-INF/MANIFEST.MF' );
    die("Could not read manifest from $jar ($stat): $!")
        unless(!defined($stat) || $stat == AZ_OK);

i.e. it tries to return META-INF/MANIFEST.MF from the jar file.

But:

# unzip -l debian/libquartz2-java/usr/share/java/quartz2-2.3.0.jar | grep -c MANIFEST
0
# unzip -l debian/libquartz2-java/usr/share/java/quartz2-2.3.0.jar | grep META-INF
        0  2019-10-12 16:19   META-INF/
        0  2019-10-12 16:19   META-INF/terracotta/
      142  2019-10-12 16:19   META-INF/terracotta/public-api-types
        0  2019-10-12 16:19   META-INF/maven/
        0  2019-10-12 16:19   META-INF/maven/org.quartz-scheduler/
        0  2019-10-12 16:19   META-INF/maven/org.quartz-scheduler/quartz/
     6144  2019-10-12 16:19   META-INF/maven/org.quartz-scheduler/quartz/pom.xml
      101  2019-10-12 16:19   META-INF/maven/org.quartz-scheduler/quartz/pom.properties

So there doesn't seem to be a META-INF/MANIFEST.MF file in this jar,
and Archive::Zip seems to do the right thing.


Cheers,
gregor

-- 
 .''`.  https://info.comodo.priv.at -- Debian Developer https://www.debian.org
 : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D  85FA BB3A 6801 8649 AA06
 `. `'  Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
   `-   NP: Kurt Ostbahn & Kombo: Da Talking Plachutta Blues
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 963 bytes
Desc: Digital Signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-perl-maintainers/attachments/20191012/997ea785/attachment.sig>


More information about the pkg-perl-maintainers mailing list