[oe] icedtea6-native: task compile fails with `unzip: cannot find zipfile directory in one of /oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/bin/unzip or …`

Paul Menzel paulepanter at users.sourceforge.net
Wed May 25 18:40:21 UTC 2011


Dear Robert,


Am Mittwoch, den 25.05.2011, 20:00 +0200 schrieb Robert Schuster:

> greetings from the GDB cave ....
> 
> I now what is going wrong with unzip and ... whoa this is so weird ...
> 
> Am 22.05.2011 23:24, schrieb Paul Menzel:
> >         Importing binaries from component CORBA_DIST
> >         ( cd  /oe/build-angstrom-next/angstrom-dev/work/i686-linux/icedtea6-native-1.7.10-r4.0/icedtea6-1.7.10/openjdk-ecj/build/linux-x86 && /oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/bin/unzip -o /oe/build-angstrom-next/angstrom-dev/work/i686-linux/icedtea6-native-1.7.10-r4.0/icedtea6-1.7.10/openjdk-ecj/build/linux-x86/corba/dist/lib/bin.zip )
> >         Archive:  /oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/bin/unzip
> >           End-of-central-directory signature not found.  Either this file is not
> >           a zipfile, or it constitutes one disk of a multi-part archive.  In the
> >           latter case the central directory and zipfile comment will be found on
> >           the last disk(s) of this archive.
> >         note:  /oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/bin/unzip may be a plain executable, not an archive
> >         unzip:  cannot find zipfile directory in one of /oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/bin/unzip or /oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/bin/unzip.zip, and cannot find /oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/bin/unzip.ZIP, period.
> >         make[4]: *** [/oe/build-angstrom-next/angstrom-dev/work/i686-linux/icedtea6-native-1.7.10-r4.0/icedtea6-1.7.10/openjdk-ecj/build/linux-x86/tmp/java/components_imported] Error 9
> > 
> > Running the command directly works fine though.
> > 
> >         $ /oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/bin/unzip -o /oe/build-angstrom-next/angstrom-dev/work/i686-linux/icedtea6-native-1.7.10-r4.0/icedtea6-1.7.10/openjdk-ecj/build/linux-x86/corba/dist/lib/bin.zip
> >         Archive:  /oe/build-angstrom-next/angstrom-dev/work/i686-linux/icedtea6-native-1.7.10-r4.0/icedtea6-1.7.10/openjdk-ecj/build/linux-x86/corba/dist/lib/bin.zip
> >           inflating: lib/orb.idl             
> >           inflating: lib/ir.idl
> The thing is. You are tweaking the IcedTea build by declaring the
> makefile variable UNZIP through the command-line. For programs that are
> called from this make process the variables turn into environment
> variables ...
> And this is where the shit hits the fan: As it turns out Info-Zip's
> unzip understand an arcane way of declaring the file to be unzipped.
> Through an environment variable called: UNZIP (!!!)
> 
> To find this out I did nothing less than running an OE-called unzip and
> a manually called unzip process run under gdb and compare what they do
> in the beginning step by step.

Great analysis. I could not have done it and only used `gdb` to create a
backtrace for the developers.

> Here a shorter explanation of what I mean:
> 
> UNZIP=xyz /home/rschus-oe/panda/tmp/sysroots/x86_64-linux/usr/bin/unzip
> blablafoo
> unzip:  cannot find or open xyz, xyz.zip or xyz.ZIP.
> 
> So apparently UNZIP is in our case set to the zip file executable
> already to please the openjdk build.
> 
> I don't have an immediate idea how to fix it properly. I'd vote for
> patching our unzip not to use that variable (It still has another one
> called UNZIP_OPTS for the same use).

Well as far as I understand the manual, `UNZIP_OPTS` should be used for
VMS, but could also be used for other operating systems.

Actually I would think to solve this, by patching OpenJDK to use another
variable and report that upstream. I suggest for example UNZIP_EXE for
unzip executable.

I do not know how if the unzip developers have decided on this issue to
rename remove that variable and how many programs use this feature.

> Last but not least: Our unzip recipe sucks. It does not enforce OE build
> flags and does not prevent that the called makefile strips the binary.
> There are also newer version of unzip out there (ours is from 2005).
> I'll plan on fixing all of the above.

That would be awesome.

I am sorry for opening Pandora’s box.


Thanks,

Paul
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20110525/6f2333a0/attachment-0002.sig>


More information about the Openembedded-devel mailing list