[oe] [meta-oe][PATCH] postgresql.inc: Fix do_configure error (could not find Python.h)

Mario Domenech Goulart mario.goulart at gmail.com
Sun Oct 16 15:18:38 UTC 2016


Hi Gary,

On Sun, 16 Oct 2016 15:43:02 +0200 Gary Thomas <gary at mlbassoc.com> wrote:

> On 2016-10-16 14:15, Mario Domenech Goulart wrote:
>> Fixes:
>>
>> | checking for Python.h... no
>> | configure: error: header file <Python.h> is required for Python
>> | NOTE: The following config.log files may provide further information.
>> | WARNING: exit code 1 from a shell command.
>> | NOTE: .../tmp/work/armv5e-poky-linux-gnueabi/postgresql/9.4.8-r0.0/build/config.log
>> | ERROR: configure failed
>>
>> Signed-off-by: Mario Domenech Goulart <mario.goulart at gmail.com>
>> ---
>>  meta-oe/recipes-support/postgresql/postgresql.inc | 8 ++------
>>  1 file changed, 2 insertions(+), 6 deletions(-)
>>
>> diff --git a/meta-oe/recipes-support/postgresql/postgresql.inc b/meta-oe/recipes-support/postgresql/postgresql.inc
>> index 9592c79..454624c 100644
>> --- a/meta-oe/recipes-support/postgresql/postgresql.inc
>> +++ b/meta-oe/recipes-support/postgresql/postgresql.inc
>> @@ -40,6 +40,8 @@ export LDFLAGS_SL = "${LDFLAGS}"
>>
>>  inherit autotools pkgconfig perlnative pythonnative useradd update-rc.d systemd
>>
>> +CFLAGS += "-I${STAGING_INCDIR}/${PYTHON_DIR}"
>> +
>>  SYSTEMD_SERVICE_${PN} = "postgresql.service"
>>  SYSTEMD_AUTO_ENABLE_${PN} = "disable"
>>
>> @@ -109,12 +111,6 @@ python populate_packages_prepend() {
>>  }
>>
>>  do_configure() {
>> -    # do_configure_prepend
>> -    # make sure configure finds python includdirs with these envs
>> -    export \
>> -           STAGING_INCDIR=${STAGING_INCDIR} \
>> -           STAGING_LIBDIR=${STAGING_LIBDIR}
>> -
>>      # do_configure
>>      autotools_do_configure
>>
>>
>
> Why is this needed?  I just built the existing recipe in a bare build
> without any problems.  Perhaps I'm missing something?

Maybe I'm running into a race condition.  Now I tried again and could
not reproduce the Python issue (tried both master and krogoth).
However, in both master and krogoth I get the following error after
cleaning sstate for postgresql, removing $TMPDIR and building postgresql
again:

| checking for tclsh... no
| checking for tcl... no
| checking for tclsh8.6... no
| checking for tclsh86... no
| checking for tclsh8.5... no
| checking for tclsh85... no
| checking for tclsh8.4... no
| checking for tclsh84... no
| checking for tclsh8.3... no
| checking for tclsh83... no
| configure: error: Tcl shell not found
| WARNING: exit code 1 from a shell command.

When I could reproduce the issue, I checked the sysroot directory and
Python.h was in ${STAGING_INCDIR}/${PYTHON_DIR}, not in
${STAGING_INCDIR}.  ${STAGING_INCDIR}/${PYTHON_DIR} was not in the
compiler's include path and the code included Python.h with
"#include <Python.h>".

Naturally, it is possible that _I_ am missing something.

> Also, would it not be better to just add python to DEPENDS?

Python gets added to DEPENDS via PACKAGECONFIG.

All the best.
Mario
-- 
http://parenteses.org/mario



More information about the Openembedded-devel mailing list