[oe] Firefox do_stage for gecko-mediaplayer package

Gregoire Gentil gregoire at gentil.com
Mon Oct 20 18:00:50 UTC 2008


Hello,

I'm trying to create a recipe for gecko-mediaplayer which is a Firefox
plugin.

The recipe (http://pastebin.com/m5cd4d6ec) fails
(http://pastebin.com/m5a2c6a16) because firefox-plugin has not been
exported in the staging area:

configure: WARNING: firefox-plugin not found, trying another
checking for GECKO... no
...
checking for xpidl... no
configure: error: xpidl compiler not found


>From my investigations in the gecko-mediaplayer configure and hte
compilation logs, it seems that we are missing:

- firefox-plugin.pc and firefox-xpcom.pc
(take a look at the gecko-mediaplayer configure:
GECKO_HOME=`$PKG_CONFIG --variable=libdir firefox-plugin`
GECKO_IDLDIR=`$PKG_CONFIG --variable=idldir firefox-xpcom`)

- some headers
xpcom/base/*.idl
nsprpub/pr/include/*.h

- the xpidl program (host binary)


I copy the original Firefox-3.0.1 staging function for reference:

do_stage() {
        install -d ${STAGING_INCDIR}/firefox-${PV}
        cd dist/sdk/include
		rm -rf obsolete
        headers=`find . -name "*.h"`
        for f in $headers
        do
                install -D -m 0644 $f ${STAGING_INCDIR}/firefox-${PV}/
        done
        # removes 2 lines that call absent headers
        sed -e '178,179d'
${STAGING_INCDIR}/firefox-${PV}/nsIServiceManager.h
}



I suggest the following:
- remove the "rm -rf obsolete" as this folder contains important files
needed during the gecko-mediaplayer compilation
- add:

        cd ../../../nsprpub/pr/include
        headers=`find . -name "*.h"`
        for f in $headers
        do
                install -D -m 0644 $f ${STAGING_INCDIR}/firefox-${PV}/
        done
        cd ../../../xpcom/base
        headers=`find . -name "*.idl"`
        for f in $headers
        do
                install -D -m 0644 $f ${STAGING_INCDIR}/firefox-${PV}/
        done


Now, I still have a couple of problems:
- First, xpidl should be copied
to /OE/build/tmp/staging/i686-linux/usr/bin but it should be a host
binary. It's run at the last line of the configure to create a header
file. The one I found here:
tmp/work/armv7a-angstrom-linux-gnueabi/firefox-3.0.1-r7.1/mozilla/xpcom/typelib/xpidl/xpidl seems to be an ARM binary so I'm confused. How should I handle this situation?

- Secondly, how do I create those firefox-plugin.pc and
firefox-xpcom.pc so that it can be found by the gecko-mediaplayer
configure?

Perhaps, I'm not taking the problem on the right end. Any advice, code
or help would be appreciated. Thanks in advance,

Grégoire








More information about the Openembedded-devel mailing list