[oe] pygtksourceview-2.10.1: task compile fails, because `PYGOBJECT_DATADIR` not taken from staging directory (was: $(srcdir) not substituted with staging directory)
Paul Menzel
paulepanter at users.sourceforge.net
Wed Mar 16 10:49:01 UTC 2011
Am Dienstag, den 15.03.2011, 09:22 -0700 schrieb Khem Raj:
> On Tue, Mar 15, 2011 at 6:10 AM, Paul Menzel wrote:
> > Dear OE folks,
> >
> >
> > task compile of `pygtksourceview-2.10.1.bb` fails with the following
> > error.
> >
> > + do_compile
> > + base_do_compile
> > + '[' -e Makefile -o -e makefile -o -e GNUmakefile ']'
> > + oe_runmake
> > + oenote make -j4
> > + echo NOTE: 'make -j4'
> > NOTE: make -j4
> > + make -j4
> > make all-recursive
> > make[1]: Entering directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/python-pygtksourceview-2.10.1-r0/pygtksourceview-2.10.1'
> > Making all in test
> > make[2]: Entering directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/python-pygtksourceview-2.10.1-r0/pygtksourceview-2.10.1/test'
> > make[2]: Nothing to be done for `all'.
> > make[2]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/python-pygtksourceview-2.10.1-r0/pygtksourceview-2.10.1/test'
> > Making all in docs
> > make[2]: Entering directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/python-pygtksourceview-2.10.1-r0/pygtksourceview-2.10.1/docs'
> > /oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/bin/python -c 'import datetime; print datetime.date.today()' > reference/builddate.xml
> > /oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/bin/xsltproc --nonet --xinclude -o ../docs/html/ \
> > --path ../docs/reference:./reference \
> > --stringparam gtkdoc.bookname "pygtksourceview2" \
> > --stringparam gtkdoc.version . \
> > /usr/share/pygobject/xsl/ref-html-style.xsl ./reference/gtksourceview2-ref.xml
> > warning: failed to load external entity "/usr/share/pygobject/xsl/ref-html-style.xsl"
> > cannot parse /usr/share/pygobject/xsl/ref-html-style.xsl
> > make[2]: *** [build_stamp] Error 4
> > make[2]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/python-pygtksourceview-2.10.1-r0/pygtksourceview-2.10.1/docs'
> > make[1]: *** [all-recursive] Error 1
> > make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/python-pygtksourceview-2.10.1-r0/pygtksourceview-2.10.1'
> > make: *** [all] Error 2
> > + die 'oe_runmake failed'
> >
> > Apparently in
> >
> > $ more docs/Makefile.am
> > […]
> > build_stamp: $(REFERENCE_DEPS)reference/builddate.xml
> > xsltproc --nonet --xinclude -o $(BUILDDIR)/html/ \
> > --path $(BUILDDIR)/reference:$(srcdir)/reference \
> > --stringparam gtkdoc.bookname "pygtksourceview2" \
> > --stringparam gtkdoc.version ${REF_VERSION} \
> > $(HTML_STYLE) $(srcdir)/reference/gtksourceview2-ref.xml
> > $(PYGOBJECT_FIXXREF) -i $(PYGOBJECT_PYGDOCS) $(BUILDDIR)/html
> > touch $@
> > […]
> >
> > `$(srcdir)` is not set to the staging directory.
> >
> > angstrom-dev/work/armv7a-angstrom-linux-gnueabi/python-pygtksourceview-2.10.1-r0/pygtksourceview-2.10.1/Makefile:srcdir = .
> >
> > How is that dealt with in OE? Or should something else be used in
> > `Makefile.am`?
>
> EXTRA_OEMAKE += "srcdir=${S}" or something like that might help may be
> it needs a dir below $S
Thank you for your answer and help. I found that `configure` also seems
to have an option to do this
$ ./configure --help
--srcdir=DIR find the sources in DIR [configure dir or `..']
which could be passed using `EXTRA_OECONF += "--srcdir=${S}"`.
Anyway reading the error message again, it turns out to be a different
problem.
`/usr/share/pygobject/xsl/ref-html-style.xsl` is the value of `
$(HTML_STYLE)` which is defined the following way.
./docs/Makefile.am:HTML_STYLE = $(PYGOBJECT_DATADIR)/pygobject/xsl/ref-html-style.xsl
`PYGOBJECT_DATADIR` is set in `configure.ac`.
./configure.ac:PYGOBJECT_DATADIR=`$PKG_CONFIG --variable=datadir pygobject-2.0`
./configure.ac:AC_SUBST(PYGOBJECT_DATADIR)
So it looks like a problem with pkg-config program.
$ find angstrom-dev/ -iname pygobject*.pc
angstrom-dev/sysroots/i686-linux/usr/lib/pkgconfig/pygobject-2.0.pc
angstrom-dev/sysroots/armv7a-angstrom-linux-gnueabi/usr/lib/pkgconfig/pygobject-2.0.pc
The content is the following.
$ less angstrom-dev/sysroots/i686-linux/usr/lib/pkgconfig/pygobject-2.0.pc
prefix=/oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr
prefix=/oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr
exec_prefix=/oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr
includedir=/oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/include
datarootdir=${prefix}/share
datadir=/oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/share
libdir=/oe/build-angstrom-next/angstrom-dev/sysroots/i686-linux/usr/lib
# you can use the --variable=pygtkincludedir argument to
# pkg-config to get this value. You might want to use this to
# install additional headers.
pygtkincludedir=${includedir}/pygtk-2.0
fixxref=${datadir}/pygobject/xsl/fixxref.py
pygdocs=${datadir}/gtk-doc/html/pygobject
defsdir=${datadir}/pygobject/2.0/defs
codegendir=${datadir}/pygobject/2.0/codegen
Name: PyGObject
Description: Python bindings for GObject
Requires: gobject-2.0
Requires.private:
Version: 2.20.0
Cflags: -I${pygtkincludedir}
and
$ more angstrom-dev/sysroots/armv7a-angstrom-linux-gnueabi/usr/lib/pkgconfig/pygobject-2.0.pc
prefix=/usr
exec_prefix=/usr
includedir=/usr/include
datarootdir=${prefix}/share
datadir=/usr/share
libdir=/usr/lib
# you can use the --variable=pygtkincludedir argument to
# pkg-config to get this value. You might want to use this to
# install additional headers.
pygtkincludedir=${includedir}/pygtk-2.0
fixxref=${datadir}/pygobject/xsl/fixxref.py
pygdocs=${datadir}/gtk-doc/html/pygobject
defsdir=${datadir}/pygobject/2.0/defs
codegendir=${datadir}/pygobject/2.0/codegen
Name: PyGObject
Description: Python bindings for GObject
Requires: gobject-2.0
Requires.private: libffi
Version: 2.20.0
Cflags: -I${pygtkincludedir}
So why does not pkg-config return the value for the staging directory?
This seems to happen for a lot of GTK/GNOME programs (`git grep
'${STAGING_DATADIR}' recipes/`) and I have experienced that before
[1][2].
Thanks,
Paul
[1] http://lists.linuxtogo.org/pipermail/openembedded-devel/2010-October/025287.html
[2] Also with Evince or GNOME Games, but I cannot find the messages in
the archive, where I was told that it is no problem because if it was
there would be a lot more breakage.
-------------- 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/20110316/fc398be3/attachment-0002.sig>
More information about the Openembedded-devel
mailing list