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