[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 …`

Robert Schuster thebohemian at gmx.net
Wed May 25 18:00:10 UTC 2011


Hi Paul,
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.

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).

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.

Regards,
Robert


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20110525/39e1c520/attachment-0002.sig>


More information about the Openembedded-devel mailing list