Bug 3103

Summary: python-pygtk do_compile failed when parallel building
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Song.Li <Song.Li>
Component: devtools / tool chainAssignee: Song.Li <Song.Li>
Status: VERIFIED INVALID QA Contact:
Severity: normal    
Priority: Medium CC: laurentiu.serban, meta.mr.watcher, meta.watcher, sgw, song.liu, zhenfeng.zhao
Version: 1.3   
Target Milestone: 1.3 M5   
Hardware: x86   
OS: Multiple   
Whiteboard: P3
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Song.Li 2012-09-13 09:24:28 UTC
python-pygtk do_compile failed when parallel building. This is a parallel building issue.
According to the error log, gtk-types.defs can not be found when generating gdk.c.

Looking into the python-pygtk-2.17.0-ml10/pygtk-2.17.0/gtk/Makefile, gtk-types.defs, gdk-types.defs and gdk.defs was used when generating gdk.c

.defs.c:
($(PYTHON) $(CODEGENDIR)/codegen.py \
$(PYGTK_CODEGEN_DEFINES) \
-I $(srcdir) \
--py_ssize_t-clean $(extra_codegen_args) \
--register $(top_srcdir)/pango-types.defs \
--register $(top_srcdir)/atk-types.defs \
--register gdk-types.defs \
--register gtk-types.defs \
--override $(srcdir)/$*.override \
--prefix py$* $<) > gen-$*.c \
&& cp gen-$*.c $*.c \
&& rm -f gen-$*.c

So, gdk.c should also depend on gtk-types.defs.

There is something wrong in gdk.c and gtk.c's rule.
gdk.c: gdk-types.defs gdk.defs $(GDK_OVERRIDES)
gtk.c: gdk-types.defs gtk-types.defs gtk.defs gdk-types.defs $(GTK_OVERRIDES)



Observed Behavior
======================

| (/buildarea/build/120907182410-lb13bbw-host_bitbake_world-bitbake-world/combo1-ti-omap3-standard-glibc-std/bitbake_build/tmp/sysroots/x86_64-linux/usr/bin/python-native/python /buildarea/build/120907182410-lb13bbw-host_bitbake_world-bitbake-world/combo1-ti-omap3-standard-glibc-std/bitbake_build/tmp/sysroots/ti-omap3/usr/share/pygobject/2.0/codegen/codegen.py \
| -DHAVE_PYCAIRO -DHAVE_GTK_2_12 -DHAVE_GTK_2_14 -DHAVE_GTK_2_16 -DHAVE_GTK_2_18 -DGDK_TARGET_X11 \
| -I . \
| --py_ssize_t-clean --register /buildarea/build/120907182410-lb13bbw-host_bitbake_world-bitbake-world/combo1-ti-omap3-standard-glibc-std/bitbake_build/tmp/sysroots/ti-omap3/usr/share/pygobject/2.0/defs/gio-types.defs \
| --register ../pango-types.defs \
| --register ../atk-types.defs \
| --register gdk-types.defs \
| --register gtk-types.defs \
| --override ./gdk.override \
| --prefix pygdk gdk.defs) > gen-gdk.c \
| && cp gen-gdk.c gdk.c \
| && rm -f gen-gdk.c
| Traceback (most recent call last):
| File "/buildarea/build/120907182410-lb13bbw-host_bitbake_world-bitbake-world/combo1-ti-omap3-standard-glibc-std/bitbake_build/tmp/sysroots/ti-omap3/usr/share/pygobject/2.0/codegen/codegen.py", line 1722, in <module>
| sys.exit(main(sys.argv))
| File "/buildarea/build/120907182410-lb13bbw-host_bitbake_world-bitbake-world/combo1-ti-omap3-standard-glibc-std/bitbake_build/tmp/sysroots/ti-omap3/usr/share/pygobject/2.0/codegen/codegen.py", line 1680, in main
| p.startParsing()
| File "/buildarea/build/120907182410-lb13bbw-host_bitbake_world-bitbake-world/combo1-ti-omap3-standard-glibc-std/bitbake_build/tmp/sysroots/ti-omap3/usr/share/pygobject/2.0/codegen/scmexpr.py", line 113, in startParsing
| for statement in statements:
| File "/buildarea/build/120907182410-lb13bbw-host_bitbake_world-bitbake-world/combo1-ti-omap3-standard-glibc-std/bitbake_build/tmp/sysroots/ti-omap3/usr/share/pygobject/2.0/codegen/scmexpr.py", line 27, in parse
| fp = open(filename, 'r')
| IOError: [Errno 2] No such file or directory: 'gtk-types.defs'
| make[2]: *** [gdk.c] Error 1
| make[2]: *** Waiting for unfinished jobs....
| make[2]: Leaving directory `/buildarea/build/120907182410-lb13bbw-host_bitbake_world-bitbake-world/combo1-ti-omap3-standard-glibc-std/bitbake_build/tmp/work/armv7a-vfp-neon-wrs-linux-gnueabi/python-pygtk-2.17.0-ml10/pygtk-2.17.0/gtk'
| make[1]: *** [all-recursive] Error 1
| make[1]: Leaving directory `/buildarea/build/120907182410-lb13bbw-host_bitbake_world-bitbake-world/combo1-ti-omap3-standard-glibc-std/bitbake_build/tmp/work/armv7a-vfp-neon-wrs-linux-gnueabi/python-pygtk-2.17.0-ml10/pygtk-2.17.0'
| make: *** [all] Error 2
| ERROR: oe_runmake failed
| ERROR: Function failed: do_compile (see /buildarea/build/120907182410-lb13bbw-host_bitbake_world-bitbake-world/combo1-ti-omap3-standard-glibc-std/bitbake_build/tmp/work/armv7a-vfp-neon-wrs-linux-gnueabi/python-pygtk-2.17.0-ml10/temp/do_compile/log.do_compile.24370 for further information)
Comment 1 Song.Li 2012-11-02 03:09:51 UTC
python-pygtk has been updated to 2.24.0, this defect is for 2.17.0, not suitable.
Comment 2 Laurentiu Serban 2012-11-02 09:30:06 UTC
Setting to Verified after reporter's comment