[yocto] Building one package needs header from another

Paul Eggleton paul.eggleton at linux.intel.com
Wed Sep 4 04:06:03 PDT 2013


Hi Paul,

Apologies for the delayed reply.

On Friday 23 August 2013 12:52:54 Paul D. DeRocco wrote:
> > > On Tuesday 20 August 2013 16:06:54 Paul D. DeRocco wrote:
> > > 
> > > I've been trying to figure out how the setup.py/setup.cfg
> > > (and distutils)
> > > stuff works. The setup.cfg file lists only one possible
> > > option for adding
> > > directories, which is basedirlist, but setting that to foo adds
> > > foo/include to the include directories and foo/lib to the library
> > > directories, so that's not appropriate.
> > 
> > From: Paul Eggleton
> > 
> > Could you just send it ${STAGING_DIR_HOST}/${prefix} ? We do
> > do that elsewhere with similar-behaving configure scripts.
> 
> I think I've figured out what's going on. The whole distutils.bbclass
> interface to the Python distutils package involves the writing of a
> setup.py script to perform all the packaging and unpackaging processes.
> The setup.py script for matplotlib has to deal with the fact that
> matplotlib depends upon a varying set of libraries depending upon how you
> configure it. In this case, because I want to build the GTK rendering
> backend, it depends upon the pygtk library. It cleverly uses the
> pkg-config command to interrogate each dependent library to find out what
> compiler options are needed to compile modules that refer to the library,
> but unfortunately, pygtk-2.0 is not a "library" that can be searched by
> pkg-config, so the do_compile script coughs up the following nonfatal
> error message:
> 
>     pkg-config: looking for pygtk-2.0 gtk+-2.0
>         * Package pygtk-2.0 was not found in the pkg-config
>         * search path. Perhaps you should add the directory
>         * containing `pygtk-2.0.pc' to the PKG_CONFIG_PATH
>         * environment variable No package 'pygtk-2.0' found
> 
> I think I'm just going to have to patch the setup.py file (actually a
> subsidiary setupext.py file) to hack the additional pygtk-2.0 include
> subdirectory into it.

I'm not very familiar with this particular problem, but if that's the only way 
forward I can't see a huge problem with that. FWIW I have had to do similar 
hacks in setup.py in python recipes I've written in the past.

> However, setupext.py and setup.py both already have
> small patches in the original matplotlib recipe. If I add another patch in
> my bbappend, will it always be applied after the one in the original
> recipe? Or should I just replace the patch file with one containing its
> fixes and my fix?

Patches added in a bbappend will always be applied after the ones in the 
recipe itself, assuming you use SRC_URI += or SRC_URI_append = in your 
bbappend that is (since it's the order in which patches are listed in SRC_URI 
that determines the order in which they will be applied).

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the yocto mailing list