All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/29] Add gobject introspection support to oe-core
@ 2015-11-09 14:50 Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 01/29] qemu.bbclass: add qemu_wrapper_cmdline() Alexander Kanavin
                   ` (30 more replies)
  0 siblings, 31 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

1. Introduction

This patchset adds support for gobject introspection to oe-core. 
Gir files go to -dev packages, typelib files go to main packages 
(they are packaged together with libraries that are 
introspected).

The work is based on a meta-gir layer, which was used as a proof of
concept; overall approach is same and some implementation ideas were 
used, but this implementation is otherwise different, and hopefully 
simpler and cleaner.


2. 30 second tutorial for adding introspection support to a package:

a. Inherit gobject-introspection class (or a class that inherits it,
such as gnome-base).

b. Make sure introspection is not disabled anywhere in the recipe or
its includes.

c. Try to build the recipe; if this results in build errors that look 
like something is unable to find .so libraries, check where these libraries 
are in the source tree and add GIR_EXTRA_LIBS_PATH=${B}/something/.libs
to the recipe.

c. Any other errors probably mean that introspection support in a package
is not entirely standard, and breaks down in a cross-compilation environment.
Custom-made fixing is needed then.


3. How to verify that introspection works in an image:

a. Build core-image-sato.

b. Start terminal, start python3 in the terminal.

c. Type out something like:

>>> from gi.repository import GLib
>>> GLib.get_host_name()

d. Also, try something more advanced, for example:
http://python-gtk-3-tutorial.readthedocs.org/en/latest/introduction.html


4. Request for testing - I would like this patchset to be checked on three
levels:

a. Test it in all of the build environments you have. Let me know any errors
or warnings. Also let me know, if some package can be built with introspection
enabled, but is not.

b. Check the patchset for correct use of Yocto idioms. It touches a lot of things
in a lot of different ways, and maybe there are better ways to do what it does.

c. Check that the overall design is sensible: how things work is hopefully
explained in comments and commit messages.


5. Known issues:

- there is no way to globally switch off the whole thing at the moment;
this should probably be a DISTRO_FEATURE (also see the next item)

- qemu-ppc64 crashes out immediately; so anything that supports introspection 
cannot be built on that architecture:
Invalid data memory access: 0x00000040d89c5008
...

- gcr introspection is disabled in x86_64, because introspection helper binary
goes into an infinite loop under qemu (on that architecture only).

- gcr and libsecret introspection is disabled in mips64, because introspection helper
binary fails an assertion in libgpg-error

- webkit introspection is disabled in powerpc, because qemu-ppc crashes out when
running g-ir-compiler

- the patchset has not been tested with layers in meta-oe; just making oe-core 
build without errors on all standard architectures has been a big, long task.

- the whole thing should be documented in Yocto manuals

The following changes since commit fc45deac89ef63ca1c44e763c38ced7dfd72cbe1:

  build-appliance-image: Update to jethro head revision (2015-11-03 14:03:03 +0000)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib akanavin/gobject-introspection-experimental
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=akanavin/gobject-introspection-experimental

Alexander Kanavin (29):
  qemu.bbclass: add qemu_wrapper_cmdline()
  qemu: don't blacklist mips64 when building runners of userspace
    binaries
  gobject-introspection: add the recipe
  gtk-doc-stub: remove introspection stubs
  gobject-introspection.bbclass: add a class that enables gobject
    introspection
  python3-native: use the previous version of python-config script
  avahi-ui: remove the dependency on python-pygtk by disabling
    avahi-discover
  python-pygtk: remove the recipe
  avahi: enable gobject-introspection
  udev: enable gobject introspection
  vala: enable the use of vapigen by packages with vala support
  gcr: enable generation of vapi files using vapigen
  gdk-pixbuf: enable gobject introspection
  gconf: enable gobject-introspection
  gtk+: enable gobject introspection
  gtk+3: enable gobject-introspection
  libsecret: enable generation of vapi files using vapigen
  clutter: enable gobject introspection
  vala.bbclass: remove pre-packaged vapigen.m4 from tarballs
  libsoup-2.4: enable gobject introspection
  at-spi2-core: enable gobject introspection
  gstreamer: enable gobject introspection
  gnomebase.bbclass: enable gobject introspection
  webkitgtk: enable gobject introspection
  gcr: disable gobject introspection on x86-64 for now
  gcr: disable gobject-introspection on mips64
  libsecret: disable gobject-introspection on mips64
  webkitgtk: disable gobject-introspection on powerpc
  packagegroup-core-x11-sato: add python-pygobject and gtk+3

 meta/classes/gnomebase.bbclass                     |   5 +-
 meta/classes/gobject-introspection.bbclass         |  36 +++
 meta/classes/qemu.bbclass                          |  23 +-
 meta/classes/vala.bbclass                          |   6 +
 meta/conf/distro/include/distro_alias.inc          |   1 -
 meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb |  16 +-
 meta/recipes-connectivity/avahi/avahi.inc          |  12 +-
 .../packagegroups/packagegroup-self-hosted.bb      |   1 -
 meta/recipes-core/udev/udev.inc                    |  10 +-
 ...file.am-don-t-hardcode-g-ir-compiler-name.patch |  27 ++
 ...c-use-PKG_CONFIG_SYSROOT_PATH-when-findin.patch |  32 +++
 ....am-use-libtool-when-running-g-ir-scanner.patch |  26 ++
 ...c-add-sysroot-path-to-GI_DATADIR-don-t-se.patch |  41 +++
 .../python/python-pygobject_2.28.3.bb              |  53 ----
 .../python/python-pygobject_3.18.0.bb              |  29 ++
 .../python/python-pygtk/acinclude.m4               |  90 ------
 .../add-gtk-types.defs-into-gdk.c-dependence.patch |  32 ---
 .../python/python-pygtk/fix-gtkunixprint.patch     |  20 --
 .../python/python-pygtk/fix-pygtk-2.0.pc.patch     |  13 -
 .../python/python-pygtk/nodocs.patch               |  15 -
 .../prevent_to_get_display_during_import.patch     |  16 --
 .../python/python-pygtk/python-pygtk2/acinclude.m4 |  90 ------
 .../update-dependences-of-defs.c.patch             |  38 ---
 .../recipes-devtools/python/python-pygtk_2.24.0.bb |  55 ----
 .../python/python3-native_3.4.3.bb                 |   1 +
 ...the-shell-version-of-python-config-that-w.patch |  38 +++
 meta/recipes-devtools/qemu/qemu-targets.inc        |   2 +-
 meta/recipes-devtools/vala/vala.inc                |  10 +
 ...001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch |  38 +++
 meta/recipes-devtools/vala/vala_0.28.0.bb          |   4 +-
 meta/recipes-gnome/gcr/gcr_3.16.0.bb               |  22 +-
 meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb |   7 +-
 meta/recipes-gnome/gnome/gconf_3.2.6.bb            |   6 +-
 ...config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch |  99 +++++++
 ...01-giscanner-add-a-use-ldd-wrapper-option.patch |  48 ++++
 ...1-giscanner-add-use-binary-wrapper-option.patch |  52 ++++
 ...c-add-host-gi-and-gi-cross-wrapper-option.patch | 158 +++++++++++
 .../gobject-introspection_1.44.0.bb                | 146 ++++++++++
 .../gsettings-desktop-schemas_3.16.1.bb            |   2 +-
 meta/recipes-gnome/gtk+/gtk+.inc                   |   9 +-
 meta/recipes-gnome/gtk+/gtk+3.inc                  |  10 +-
 ...t-Import-introspection-stub-machinery-too.patch | 305 +++++++++++++++++++++
 .../recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb |   6 +-
 meta/recipes-gnome/librsvg/librsvg_2.40.10.bb      |   3 -
 meta/recipes-gnome/libsecret/libsecret_0.18.2.bb   |  14 +-
 ...ation-paths-for-.gir-and-.typelib-as-reco.patch |  32 +++
 meta/recipes-gnome/libwnck/libwnck3_3.14.0.bb      |   3 +-
 meta/recipes-graphics/clutter/clutter-1.0.inc      |   5 +-
 meta/recipes-graphics/clutter/clutter-gst-3.0.inc  |   4 +-
 meta/recipes-graphics/clutter/clutter-gtk-1.0.inc  |   3 +-
 meta/recipes-graphics/cogl/cogl-1.0.inc            |   8 +-
 meta/recipes-graphics/mx/mx.inc                    |   5 +-
 meta/recipes-graphics/pango/pango.inc              |   3 +-
 ...op-introspection-macros-from-acinclude.m4.patch | 121 ++++++++
 meta/recipes-graphics/pango/pango_1.36.8.bb        |   1 +
 .../recipes-multimedia/gstreamer/gst-player_git.bb |   2 +-
 .../gstreamer/gst-plugins-package.inc              |   1 +
 ...-don-t-hardcode-libtool-name-when-running.patch |  42 +++
 .../gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb    |   1 +
 .../gstreamer/gstreamer1.0-plugins-base.inc        |   4 +
 ...-don-t-hardcode-libtool-name-when-running.patch | 168 ++++++++++++
 ...-prefix-calls-to-pkg-config-with-PKG_CONF.patch | 298 ++++++++++++++++++++
 ...ssing-include-directories-when-calling-in.patch |  28 ++
 ...ncorrect-reference-to-gstreamer-sdp-in-Ma.patch |  27 ++
 .../gstreamer/gstreamer1.0-plugins-base_1.4.5.bb   |   4 +
 .../gstreamer/gstreamer1.0-plugins.inc             |  10 +-
 .../gstreamer/gstreamer1.0-rtsp-server.inc         |   9 +-
 ...ode-libtool-name-when-using-introspection.patch |  27 ++
 .../gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb    |   2 +
 meta/recipes-multimedia/gstreamer/gstreamer1.0.inc |  12 +-
 .../packagegroups/packagegroup-core-x11-sato.bb    |   2 +
 ...Introspection.cmake-prefix-variables-obta.patch |  27 ++
 ...ng-introspection-files-add-CMAKE_C_FLAGS-.patch |  40 +++
 meta/recipes-sato/webkit/webkitgtk_2.8.5.bb        |  13 +-
 meta/recipes-support/atk/at-spi2-core_2.16.0.bb    |   4 +-
 meta/recipes-support/atk/atk_2.16.0.bb             |   2 +-
 meta/recipes-support/libsoup/libsoup-2.4_2.50.0.bb |   2 +-
 ...file.am-install-gir-typelib-using-datadir.patch |  34 +++
 meta/recipes-support/vte/vte.inc                   |   4 +-
 meta/recipes-support/vte/vte_0.28.2.bb             |   3 +-
 80 files changed, 2106 insertions(+), 512 deletions(-)
 create mode 100644 meta/classes/gobject-introspection.bbclass
 create mode 100644 meta/recipes-core/udev/udev/0001-Makefile.am-don-t-hardcode-g-ir-compiler-name.patch
 create mode 100644 meta/recipes-core/udev/udev/0001-configure.ac-use-PKG_CONFIG_SYSROOT_PATH-when-findin.patch
 create mode 100644 meta/recipes-core/udev/udev/0002-Makefile.am-use-libtool-when-running-g-ir-scanner.patch
 create mode 100644 meta/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygobject_2.28.3.bb
 create mode 100644 meta/recipes-devtools/python/python-pygobject_3.18.0.bb
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/acinclude.m4
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/add-gtk-types.defs-into-gdk.c-dependence.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/fix-pygtk-2.0.pc.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/nodocs.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/update-dependences-of-defs.c.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk_2.24.0.bb
 create mode 100644 meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch
 create mode 100644 meta/recipes-devtools/vala/vala/0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-and-gi-cross-wrapper-option.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection_1.44.0.bb
 create mode 100644 meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch
 create mode 100644 meta/recipes-gnome/libwnck/files/0001-Fix-installation-paths-for-.gir-and-.typelib-as-reco.patch
 create mode 100644 meta/recipes-graphics/pango/pango/0001-Drop-introspection-macros-from-acinclude.m4.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch
 create mode 100644 meta/recipes-sato/webkit/files/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
 create mode 100644 meta/recipes-sato/webkit/files/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch
 create mode 100644 meta/recipes-support/vte/vte-0.28.2/0001-Makefile.am-install-gir-typelib-using-datadir.patch

-- 
2.1.4



^ permalink raw reply	[flat|nested] 67+ messages in thread

* [PATCH 01/29] qemu.bbclass: add qemu_wrapper_cmdline()
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 02/29] qemu: don't blacklist mips64 when building runners of userspace binaries Alexander Kanavin
                   ` (29 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

The class had qemu_run_binary() which was not suitable for gobject-introspection,
as it required the name of the binary to run.

qemu_wrapper_cmdline() returns just the command line string needed to run
binaries, and does not require the binary name.

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/classes/qemu.bbclass | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
index 601f587..fe69425 100644
--- a/meta/classes/qemu.bbclass
+++ b/meta/classes/qemu.bbclass
@@ -13,7 +13,19 @@ def qemu_target_binary(data):
         target_arch = "ppc64"
 
     return "qemu-" + target_arch
-#
+
+def qemu_wrapper_cmdline(data, rootfs_path, library_paths):
+    import string
+
+    qemu_binary = qemu_target_binary(data)
+    if qemu_binary == "qemu-allarch":
+        qemu_binary = "qemuwrapper"
+
+    qemu_options = data.getVar("QEMU_OPTIONS", True)    
+
+    return "PSEUDO_UNLOAD=1 " + qemu_binary + " " + qemu_options + " -L " + rootfs_path\
+            + " -E LD_LIBRARY_PATH=" + string.join(library_paths, ":") + " "
+
 # Next function will return a string containing the command that is needed to
 # to run a certain binary through qemu. For example, in order to make a certain
 # postinstall scriptlet run at do_rootfs time and running the postinstall is
@@ -23,17 +35,10 @@ def qemu_target_binary(data):
 # ${@qemu_run_binary(d, '$D', '/usr/bin/test_app')} [test_app arguments]
 #
 def qemu_run_binary(data, rootfs_path, binary):
-    qemu_binary = qemu_target_binary(data)
-    if qemu_binary == "qemu-allarch":
-        qemu_binary = "qemuwrapper"
-
     libdir = rootfs_path + data.getVar("libdir", False)
     base_libdir = rootfs_path + data.getVar("base_libdir", False)
-    qemu_options = data.getVar("QEMU_OPTIONS", True)
 
-    return "PSEUDO_UNLOAD=1 " + qemu_binary + " " + qemu_options + " -L " + rootfs_path\
-            + " -E LD_LIBRARY_PATH=" + libdir + ":" + base_libdir + " "\
-            + rootfs_path + binary
+    return qemu_wrapper_cmdline(data, rootfs_path, [libdir, base_libdir]) + rootfs_path + binary
 
 # QEMU_EXTRAOPTIONS is not meant to be directly used, the extensions are 
 # PACKAGE_ARCH, not overrides and hence have to do this dance. Simply being arch 
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 02/29] qemu: don't blacklist mips64 when building runners of userspace binaries
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 01/29] qemu.bbclass: add qemu_wrapper_cmdline() Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 03/29] gobject-introspection: add the recipe Alexander Kanavin
                   ` (28 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-devtools/qemu/qemu-targets.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/qemu/qemu-targets.inc b/meta/recipes-devtools/qemu/qemu-targets.inc
index 5c35655..a3e46a8 100644
--- a/meta/recipes-devtools/qemu/qemu-targets.inc
+++ b/meta/recipes-devtools/qemu/qemu-targets.inc
@@ -7,7 +7,7 @@ def get_qemu_target_list(d):
     archs = d.getVar('QEMU_TARGETS', True).split()
     tos = d.getVar('HOST_OS', True)
     softmmuonly = ""
-    for arch in ['mips64', 'mips64el', 'ppcemb']:
+    for arch in ['ppcemb']:
         if arch in archs:
             softmmuonly += arch + "-softmmu,"
             archs.remove(arch)
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 03/29] gobject-introspection: add the recipe
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 01/29] qemu.bbclass: add qemu_wrapper_cmdline() Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 02/29] qemu: don't blacklist mips64 when building runners of userspace binaries Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 04/29] gtk-doc-stub: remove introspection stubs Alexander Kanavin
                   ` (27 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

The recipe has comments that explain what is going on and why.

Also, there are three patches necessary to make it work in Yocto cross-compilation environment;
they will be submitted upstream.

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 ...config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch |  99 +++++++++++++
 ...01-giscanner-add-a-use-ldd-wrapper-option.patch |  48 +++++++
 ...1-giscanner-add-use-binary-wrapper-option.patch |  52 +++++++
 ...c-add-host-gi-and-gi-cross-wrapper-option.patch | 158 +++++++++++++++++++++
 .../gobject-introspection_1.44.0.bb                | 146 +++++++++++++++++++
 5 files changed, 503 insertions(+)
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-and-gi-cross-wrapper-option.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection_1.44.0.bb

diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
new file mode 100644
index 0000000..4c374bd
--- /dev/null
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
@@ -0,0 +1,99 @@
+From bf63d603cdd38c88b7981918263bc0c1ddac8144 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 8 Oct 2015 18:30:35 +0300
+Subject: [PATCH 1/4] Prefix pkg-config paths with PKG_CONFIG_SYSROOT_DIR
+ environment variable
+
+This environment variable sets the location of sysroot directory in cross-compilation
+environments; if the variable is not set, the prefix will be empty.
+
+Upstream-Status: Pending [review on oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ Makefile-gir.am     | 18 +++++++++---------
+ m4/introspection.m4 | 12 ++++++------
+ 2 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/Makefile-gir.am b/Makefile-gir.am
+index 9aca664..09b9360 100644
+--- a/Makefile-gir.am
++++ b/Makefile-gir.am
+@@ -55,8 +55,8 @@ else
+ endif
+ 
+ # glib
+-GLIB_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir glib-2.0)/glib-2.0
+-GLIB_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir glib-2.0)
++GLIB_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir glib-2.0)/glib-2.0
++GLIB_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir glib-2.0)
+ 
+ GLIB_LIBRARY=glib-2.0
+ 
+@@ -92,8 +92,8 @@ GLib-2.0.gir: g-ir-scanner g-ir-compiler$(EXEEXT)
+ gir/DBusGLib-1.0.typelib: GObject-2.0.gir
+ 
+ # gobject
+-GOBJECT_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gobject-2.0)/glib-2.0
+-GOBJECT_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gobject-2.0)
++GOBJECT_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gobject-2.0)/glib-2.0
++GOBJECT_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gobject-2.0)
+ 
+ GOBJECT_LIBRARY=gobject-2.0
+ 
+@@ -120,8 +120,8 @@ GObject_2_0_gir_FILES = \
+ BUILT_GIRSOURCES += GObject-2.0.gir
+ 
+ # gmodule
+-GMODULE_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gmodule-2.0)/glib-2.0
+-GMODULE_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gmodule-2.0)
++GMODULE_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gmodule-2.0)/glib-2.0
++GMODULE_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gmodule-2.0)
+ 
+ GMODULE_LIBRARY=gmodule-2.0
+ 
+@@ -146,13 +146,13 @@ GModule_2_0_gir_FILES = $(GLIB_INCLUDEDIR)/gmodule.h \
+ BUILT_GIRSOURCES += GModule-2.0.gir
+ 
+ # gio
+-GIO_INCLUDEDIR=$(shell "${PKG_CONFIG}" --variable=includedir gio-2.0)/glib-2.0
+-GIO_LIBDIR=$(shell "${PKG_CONFIG}" --variable=libdir gio-2.0)
++GIO_INCLUDEDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-2.0)/glib-2.0
++GIO_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=libdir gio-2.0)
+ 
+ GIO_LIBRARY=gio-2.0
+ 
+ if HAVE_GIO_UNIX
+-GIO_UNIX_HDRS=$(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0/gio/*.h
++GIO_UNIX_HDRS=$(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0/gio/*.h
+ GIO_UNIX_PACKAGES = gio-unix-2.0
+ else
+ GIO_UNIX_HDRS=
+diff --git a/m4/introspection.m4 b/m4/introspection.m4
+index d89c3d9..d2c60de 100644
+--- a/m4/introspection.m4
++++ b/m4/introspection.m4
+@@ -56,14 +56,14 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
+     INTROSPECTION_GIRDIR=
+     INTROSPECTION_TYPELIBDIR=
+     if test "x$found_introspection" = "xyes"; then
+-       INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+-       INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+-       INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+-       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+-       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
++       INTROSPECTION_SCANNER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
++       INTROSPECTION_COMPILER=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
++       INTROSPECTION_GENERATE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
++       INTROSPECTION_GIRDIR=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
++       INTROSPECTION_TYPELIBDIR=$PKG_CONFIG_SYSROOT_DIR"$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+        INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+        INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+-       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
++       INTROSPECTION_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+     fi
+     AC_SUBST(INTROSPECTION_SCANNER)
+     AC_SUBST(INTROSPECTION_COMPILER)
+-- 
+2.1.4
+
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch
new file mode 100644
index 0000000..f923dcc
--- /dev/null
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch
@@ -0,0 +1,48 @@
+From 291a92f200981a772b2d03739dffb5926a82c5a5 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 30 Oct 2015 16:28:46 +0200
+Subject: [PATCH 1/2] giscanner: add a --use-ldd-wrapper option
+
+This is useful in cross-compile environments where system's ldd
+command does not work on binaries built for a different architecture
+
+Upstream-Status: Pending [review in oe-core]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ giscanner/scannermain.py | 3 +++
+ giscanner/shlibs.py      | 4 +++-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
+index e37d3e3..b8fff5f 100755
+--- a/giscanner/scannermain.py
++++ b/giscanner/scannermain.py
+@@ -121,6 +121,9 @@ def _get_option_parser():
+     parser.add_option("", "--use-binary-wrapper",
+                       action="store", dest="wrapper", default=None,
+                       help="wrapper to use for running programs (useful when cross-compiling)")
++    parser.add_option("", "--use-ldd-wrapper",
++                      action="store", dest="ldd_wrapper", default=None,
++                      help="wrapper to use instead of ldd (useful when cross-compiling)")
+     parser.add_option("", "--program-arg",
+                       action="append", dest="program_args", default=[],
+                       help="extra arguments to program")
+diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
+index 1ad75ee..41117c6 100644
+--- a/giscanner/shlibs.py
++++ b/giscanner/shlibs.py
+@@ -100,7 +100,9 @@ def _resolve_non_libtool(options, binary, libraries):
+             args.extend(libtool)
+             args.append('--mode=execute')
+         platform_system = platform.system()
+-        if platform_system == 'Darwin':
++        if options.ldd_wrapper:
++            args.extend([options.ldd_wrapper, binary.args[0]])
++        elif platform_system == 'Darwin':
+             args.extend(['otool', '-L', binary.args[0]])
+         else:
+             args.extend(['ldd', binary.args[0]])
+-- 
+2.1.4
+
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch
new file mode 100644
index 0000000..e1241a9
--- /dev/null
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch
@@ -0,0 +1,52 @@
+From 2322f36056265f809aaffb74fcf5ac0c83129752 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 19 Oct 2015 18:26:40 +0300
+Subject: [PATCH 2/4] giscanner: add --use-binary-wrapper option
+
+With this option, giscanner will use a wrapper executable to run
+binaries it's producing, instead of running them directly. This
+is useful when binaries are cross-compiled and cannot be run directly,
+but they can be run using for example QEMU emulation.
+
+Upstream-Status: Pending [review on oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ giscanner/scannermain.py | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
+index b36284d..e37d3e3 100755
+--- a/giscanner/scannermain.py
++++ b/giscanner/scannermain.py
+@@ -118,6 +118,9 @@ def _get_option_parser():
+     parser.add_option("", "--program",
+                       action="store", dest="program", default=None,
+                       help="program to execute")
++    parser.add_option("", "--use-binary-wrapper",
++                      action="store", dest="wrapper", default=None,
++                      help="wrapper to use for running programs (useful when cross-compiling)")
+     parser.add_option("", "--program-arg",
+                       action="append", dest="program_args", default=[],
+                       help="extra arguments to program")
+@@ -406,6 +409,17 @@ def create_binary(transformer, options, args):
+                                               gdump_parser.get_error_quark_functions())
+ 
+     shlibs = resolve_shlibs(options, binary, options.libraries)
++    if options.wrapper:
++        # The wrapper needs the binary itself, not the libtool wrapper script,
++        # so we check if libtool has sneaked the binary into .libs subdirectory
++        # and adjust the path accordingly
++	import os.path
++        dir_name, binary_name  = os.path.split(binary.args[0])
++        libtool_binary = os.path.join(dir_name, '.libs', binary_name)
++        if os.path.exists(libtool_binary):
++	    binary.args[0] = libtool_binary
++	# Then prepend the wrapper to the command line to execute
++        binary.args = [options.wrapper] + binary.args
+     gdump_parser.set_introspection_binary(binary)
+     gdump_parser.parse()
+     return shlibs
+-- 
+2.1.4
+
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-and-gi-cross-wrapper-option.patch b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-and-gi-cross-wrapper-option.patch
new file mode 100644
index 0000000..0a62bff
--- /dev/null
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-and-gi-cross-wrapper-option.patch
@@ -0,0 +1,158 @@
+From dc6e9cd73b68baa6d572b0a65df842f2d9fbe285 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 19 Oct 2015 18:29:21 +0300
+Subject: [PATCH 2/2] configure.ac: add host-gi, gi-cross-wrapper and
+ gi-ldd-wrapper options
+
+With the first option, gobject-introspection tools (g-ir-doc-tool and g-ir-scanner)
+that are already installed in the host system will be used for building the source tree.
+
+With the second option, g-ir-scanner will be instructed to use an executable
+wrapper to run binaries it's producing, and g-ir-compiler will be run
+through the same wrapper (host system's g-ir-compiler cannot be used because
+it's producing architecture-specific output).
+
+With the third option, giscanner will be instructed to use a special ldd
+command instead of system's ldd (which does not work when the binary to inspect
+is compiled for a different architecture).
+
+These options are useful when cross-compiling for a different target architecture.
+
+Upstream-Status: Pending [review on oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ common.mk    | 39 +++++++++++++++++++++++++++++++++++++++
+ configure.ac | 33 +++++++++++++++++++++++++++++++++
+ 2 files changed, 72 insertions(+)
+
+diff --git a/common.mk b/common.mk
+index 303622f..d556655 100644
+--- a/common.mk
++++ b/common.mk
+@@ -6,6 +6,15 @@
+ # module itself.
+ #
+ 
++if USE_HOST_GI
++INTROSPECTION_SCANNER = \
++    env PATH="$(PATH)" \
++        LPATH=.libs \
++        CC="$(CC)" \
++        PYTHONPATH=$(top_builddir):$(top_srcdir) \
++        UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
++        g-ir-scanner
++else
+ INTROSPECTION_SCANNER = \
+     env PATH=".libs:$(PATH)" \
+         LPATH=.libs \
+@@ -14,18 +23,39 @@ INTROSPECTION_SCANNER = \
+         UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \
+         UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
+         $(top_builddir)/g-ir-scanner
++endif
++
++if USE_CROSS_WRAPPER
++CROSS_WRAPPER_ARG = --use-binary-wrapper=$(GI_CROSS_WRAPPER)
++else
++CROSS_WRAPPER_ARG =
++endif
++
++if USE_LDD_WRAPPER
++LDD_WRAPPER_ARG = --use-ldd-wrapper=$(GI_LDD_WRAPPER)
++else
++LDD_WRAPPER_ARG =
++endif
+ 
+ INTROSPECTION_SCANNER_ARGS = \
+     --verbose \
++    $(CROSS_WRAPPER_ARG) \
++    $(LDD_WRAPPER_ARG) \
+     -I$(top_srcdir) \
+     --add-include-path=$(srcdir) \
+     --add-include-path=$(top_srcdir)/gir \
+     --add-include-path=$(builddir) \
+     --add-include-path=$(top_builddir)
+ 
++if USE_CROSS_WRAPPER
++INTROSPECTION_COMPILER = \
++    env PATH=".libs:$(PATH)" \
++        $(GI_CROSS_WRAPPER) $(top_builddir)/.libs/g-ir-compiler$(EXEEXT)
++else
+ INTROSPECTION_COMPILER = \
+     env PATH=".libs:$(PATH)" \
+         $(top_builddir)/g-ir-compiler$(EXEEXT)
++endif
+ 
+ INTROSPECTION_COMPILER_ARGS = \
+     --includedir=$(srcdir) \
+@@ -33,6 +63,14 @@ INTROSPECTION_COMPILER_ARGS = \
+     --includedir=$(builddir) \
+     --includedir=$(top_builddir)
+ 
++if USE_HOST_GI
++INTROSPECTION_DOCTOOL = \
++    env PATH="$(PATH)" \
++        LPATH=.libs \
++        PYTHONPATH=$(top_builddir):$(top_srcdir) \
++        UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
++        g-ir-doc-tool
++else
+ INTROSPECTION_DOCTOOL = \
+     env PATH=".libs:$(PATH)" \
+         LPATH=.libs \
+@@ -40,6 +78,7 @@ INTROSPECTION_DOCTOOL = \
+         UNINSTALLED_INTROSPECTION_SRCDIR=$(top_srcdir) \
+         UNINSTALLED_INTROSPECTION_BUILDDIR=$(top_builddir) \
+         $(top_builddir)/g-ir-doc-tool
++endif
+ 
+ INTROSPECTION_DOCTOOL_ARGS = \
+     --add-include-path=$(srcdir) \
+diff --git a/configure.ac b/configure.ac
+index de3edcc..8e4c5f5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -347,6 +347,39 @@ fi
+ 
+ AC_SUBST(EXTRA_LINK_FLAGS)
+ 
++AC_ARG_ENABLE([host-gi],
++[AS_HELP_STRING([--enable-host-gi],[Use gobject introspection tools installed in the host system (useful when cross-compiling)])],
++[case "${enableval}" in
++  yes) host_gi=true ;;
++  no)  host_gi=false ;;
++  *) AC_MSG_ERROR([bad value ${enableval} for --enable-host-gi]) ;;
++esac],[host_gi=false])
++AM_CONDITIONAL([USE_HOST_GI], [test x$host_gi = xtrue])
++
++AC_ARG_ENABLE([gi-cross-wrapper],
++[AS_HELP_STRING([--enable-gi-cross-wrapper=path],[Use a wrapper to run gicompiler and binaries produced by giscanner (useful when cross-compiling)])],
++[
++GI_CROSS_WRAPPER="${enableval}"
++use_wrapper=true
++],[
++GI_CROSS_WRAPPER=""
++use_wrapper=false
++])
++AC_SUBST(GI_CROSS_WRAPPER)
++AM_CONDITIONAL([USE_CROSS_WRAPPER], [test x$use_wrapper = xtrue])
++
++AC_ARG_ENABLE([gi-ldd-wrapper],
++[AS_HELP_STRING([--enable-gi-ldd-wrapper=path],[Use a ldd wrapper instead of system's ldd command in giscanner (useful when cross-compiling)])],
++[
++GI_LDD_WRAPPER="${enableval}"
++use_ldd_wrapper=true
++],[
++GI_LDD_WRAPPER=""
++use_ldd_wrapper=false
++])
++AC_SUBST(GI_LDD_WRAPPER)
++AM_CONDITIONAL([USE_LDD_WRAPPER], [test x$use_ldd_wrapper = xtrue])
++
+ AC_CONFIG_FILES([
+ Makefile
+ tests/Makefile
+-- 
+2.1.4
+
diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.44.0.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.44.0.bb
new file mode 100644
index 0000000..7ff6140
--- /dev/null
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.44.0.bb
@@ -0,0 +1,146 @@
+HOMEPAGE = "http://gnome.org"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+SECTION = "libs"
+LICENSE = "LGPLv2+ & GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=90d577535a3898e1ae5dbf0ae3509a8c \
+                    file://tools/compiler.c;endline=20;md5=fc5007fc20022720e6c0b0cdde41fabd \
+                    file://giscanner/sourcescanner.c;endline=22;md5=194d6e0c1d00662f32d030ce44de8d39 \
+                    file://girepository/giregisteredtypeinfo.c;endline=21;md5=661847611ae6979465415f31a759ba27"
+
+SRC_URI = "${GNOME_MIRROR}/${BPN}/1.44/${BPN}-${PV}.tar.xz \
+           file://0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \
+           file://0001-giscanner-add-use-binary-wrapper-option.patch \
+           file://0002-configure.ac-add-host-gi-and-gi-cross-wrapper-option.patch \
+           file://0001-giscanner-add-a-use-ldd-wrapper-option.patch \
+           "
+SRC_URI[md5sum] = "7ef8a1db7f74f4193a2397b1587eb913"
+SRC_URI[sha256sum] = "6f0c2c28aeaa37b5037acbf21558098c4f95029b666db755d3a12c2f1e1627ad"
+
+inherit autotools pkgconfig gtk-doc pythonnative qemu
+BBCLASSEXTEND = "native"
+
+# necessary to let the call for python-config from configure.ac succeed
+export BUILD_SYS
+export HOST_SYS
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+# needed for writing out the qemu wrapper script
+export STAGING_DIR_HOST
+export B
+
+DEPENDS_append = " libffi zlib glib-2.0"
+
+# target build needs qemu to run temporary introspection binaries created
+# on the fly by g-ir-scanner and a native version of itself to run
+# native versions of its own tools during build.
+DEPENDS_class-target_append = " gobject-introspection-native qemu-native"
+
+do_configure_prepend_class-target() {
+        # Write out a qemu wrapper that will be given to gi-scanner so that it
+        # can run target helper binaries through that.
+        qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST/lib','$STAGING_DIR_HOST/usr/lib'])}"
+        cat > ${B}/g-ir-scanner-qemuwrapper << EOF
+#!/bin/sh
+$qemu_binary "\$@"
+if [ \$? -ne 0 ]; then
+    echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help."
+    echo "(typically like this: GIR_EXTRA_LIBS_PATH=\\\$B/something/.libs)"
+    exit 1
+fi
+EOF
+        chmod +x ${B}/g-ir-scanner-qemuwrapper
+
+        # Write out a wrapper for g-ir-scanner itself, which will be used when building introspection files
+        # for glib-based packages. This wrapper calls the native version of the scanner, and tells it to use
+        # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory 
+        # from the target sysroot.
+        cat > ${B}/g-ir-scanner-wrapper << EOF
+#!/bin/sh
+# This prevents g-ir-scanner from writing cache data to $HOME
+export GI_SCANNER_DISABLE_CACHE=1
+
+${STAGING_BINDIR_NATIVE}/g-ir-scanner --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 "\$@"
+EOF
+        chmod +x ${B}/g-ir-scanner-wrapper
+
+        # Write out a wrapper for g-ir-compiler, which runs the target version of it through qemu.
+        # g-ir-compiler writes out the raw content of a C struct to disk, and therefore is architecture dependent.
+        cat > ${B}/g-ir-compiler-wrapper << EOF
+#!/bin/sh
+${STAGING_BINDIR}/g-ir-scanner-qemuwrapper ${STAGING_BINDIR}/g-ir-compiler "\$@"
+EOF
+        chmod +x ${B}/g-ir-compiler-wrapper
+
+        # Write out a wrapper to use instead of ldd, which does not work when a binary is built
+        # for a different architecture
+        cat > ${B}/g-ir-scanner-lddwrapper << EOF
+#!/bin/sh
+prelink-rtld --root=$STAGING_DIR_HOST "\$@"
+EOF
+        chmod +x ${B}/g-ir-scanner-lddwrapper
+
+        # Also tweak the target python scripts so that they don't refer to the
+        # native version of python binary (the solution is taken from glib-2.0 recipe)
+        sed -i -e '1s,#!.*,#!${USRBINPATH}/env python,' ${S}/tools/g-ir-scanner.in
+        sed -i -e '1s,#!.*,#!${USRBINPATH}/env python,' ${S}/tools/g-ir-doc-tool.in
+        sed -i -e '1s,#!.*,#!${USRBINPATH}/env python,' ${S}/tools/g-ir-annotation-tool.in
+}
+
+# Configure target build to use native tools of itself and to use a qemu wrapper
+EXTRA_OECONF_class-target += "--enable-host-gi \
+                              --enable-gi-cross-wrapper=${B}/g-ir-scanner-qemuwrapper \
+                              --enable-gi-ldd-wrapper=${B}/g-ir-scanner-lddwrapper \
+                             "
+
+
+do_compile_prepend_class-target() {
+        # This prevents g-ir-scanner from writing cache data to $HOME
+        export GI_SCANNER_DISABLE_CACHE=1
+
+        # Needed to run g-ir unit tests, which won't be able to find the built libraries otherwise
+        export GIR_EXTRA_LIBS_PATH=$B/.libs
+}
+
+# Our wrappers need to be available system-wide, because they will be used 
+# to build introspection files for all other gobject-based packages
+do_install_append_class-target() {
+        install -d ${D}${bindir}/
+        install ${B}/g-ir-scanner-qemuwrapper ${D}${bindir}/
+        install ${B}/g-ir-scanner-wrapper ${D}${bindir}/
+        install ${B}/g-ir-compiler-wrapper ${D}${bindir}/
+        install ${B}/g-ir-scanner-lddwrapper ${D}${bindir}/
+}
+
+# These are used by gobject-based packages
+FILES_${PN}_append = " ${datadir}/gobject-introspection-1.0/gdump.c \
+               ${datadir}/gobject-introspection-1.0/Makefile.introspection"
+
+# .typelib files are needed at runtime and so they go to the main package
+FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib"
+
+# .gir files go to dev package, as they're needed for developing (but not for running)
+# things that depends on introspection.
+FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir"
+
+# No idea why these sources are installed by upstream and how they are meant to be used
+FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/tests/*.c \
+                   ${datadir}/gobject-introspection-1.0/tests/*.h"
+
+FILES_${PN}-dbg += "${libdir}/gobject-introspection/giscanner/.debug/"
+FILES_${PN}-staticdev += "${libdir}/gobject-introspection/giscanner/*.a"
+
+# we need target versions of introspection tools in sysroot so that they can be run via qemu
+# when building introspection files in other packages
+SYSROOT_PREPROCESS_FUNCS_append_class-target += "gi_binaries_sysroot_preprocess"
+
+gi_binaries_sysroot_preprocess() {
+        sysroot_stage_dir ${D}${bindir} ${SYSROOT_DESTDIR}${bindir}
+
+        # Also, tweak the binary names in introspection pkgconfig file, so that it picks up our 
+        # wrappers which do the cross-compile and qemu magic.
+        sed -i \
+           -e "s|g_ir_scanner=.*|g_ir_scanner=${bindir}/g-ir-scanner-wrapper|" \
+           -e "s|g_ir_compiler=.*|g_ir_compiler=${bindir}/g-ir-compiler-wrapper|" \
+           ${SYSROOT_DESTDIR}${libdir}/pkgconfig/gobject-introspection-1.0.pc
+}
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 04/29] gtk-doc-stub: remove introspection stubs
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (2 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 03/29] gobject-introspection: add the recipe Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 05/29] gobject-introspection.bbclass: add a class that enables gobject introspection Alexander Kanavin
                   ` (26 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

As we provide the full introspection support, we need to remove
the stubs from this package that conflict with it.

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 ...t-Import-introspection-stub-machinery-too.patch | 305 +++++++++++++++++++++
 .../recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb |   6 +-
 2 files changed, 309 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch

diff --git a/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch b/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch
new file mode 100644
index 0000000..80b0521
--- /dev/null
+++ b/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch
@@ -0,0 +1,305 @@
+From d636be29bf95396b4e27fcd17ff84cb7091cca91 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 8 Oct 2015 15:37:40 +0300
+Subject: [PATCH] Revert "Import introspection stub machinery too"
+
+This reverts commit 3dfd0a09de696ec8c544762747f8a0f77153622e.
+As we provide the full introspection support, we need to remove
+the stubs from this package that conflict with it.
+
+Upstream-Status: Pending [review on oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile               |   4 --
+ Makefile.introspection | 163 -------------------------------------------------
+ introspection.m4       |  96 -----------------------------
+ 3 files changed, 263 deletions(-)
+ delete mode 100644 Makefile.introspection
+ delete mode 100644 introspection.m4
+
+diff --git a/Makefile b/Makefile
+index 7cb6ce5..ad4231a 100644
+--- a/Makefile
++++ b/Makefile
+@@ -23,7 +23,3 @@ install: $(bin_programs)
+ 
+ 	mkdir -p $(DESTDIR)$(datarootdir)/aclocal/
+ 	install -m 0644 $(srcdir)/gtk-doc.m4 $(DESTDIR)$(datarootdir)/aclocal/gtk-doc.m4
+-
+-	mkdir -p $(DESTDIR)$(datarootdir)/gobject-introspection-1.0
+-	install -m 0644 $(srcdir)/Makefile.introspection $(DESTDIR)$(datarootdir)/gobject-introspection-1.0/Makefile.introspection
+-	install -m 0644 $(srcdir)/introspection.m4 $(DESTDIR)$(datarootdir)/aclocal/introspection.m4
+diff --git a/Makefile.introspection b/Makefile.introspection
+deleted file mode 100644
+index 755dd15..0000000
+--- a/Makefile.introspection
++++ /dev/null
+@@ -1,163 +0,0 @@
+-# -*- Mode: make -*-
+-# Copyright 2009-2010 Johan Dahlin
+-#
+-# This file is free software; the author(s) gives unlimited
+-# permission to copy and/or distribute it, with or without
+-# modifications, as long as this notice is preserved.
+-#
+-# * Input variables:
+-#
+-#   INTROSPECTION_GIRS - List of GIRS that should be generated
+-#   INTROSPECTION_SCANNER - Command to invoke scanner, normally set by
+-#      GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4
+-#   INTROSPECTION_SCANNER_ARGS - Additional args to pass in to the scanner
+-#   INTROSPECTION_SCANNER_ENV - Environment variables to set before running
+-#      the scanner
+-#   INTROSPECTION_COMPILER - Command to invoke compiler, normally set by
+-#      GOBJECT_INTROSPECTION_REQUIRE/CHECK() in introspection.m4
+-#   INTROSPECTION_COMPILER_ARGS - Additional args to pass in to the compiler
+-#
+-# * Simple tutorial
+-#
+-# Add this to configure.ac:
+-#   -Wno-portability to AM_INIT_AUTOMAKE
+-#   GOBJECT_INTROSPECTION_CHECK([0.6.7])
+-#
+-# Add this to Makefile.am where your library/program is built:
+-#   include $(INTROSPECTION_MAKEFILE)
+-#   INTROSPECTION_GIRS = YourLib-1.0.gir
+-#   YourLib_1_0_gir_NAMESPACE = YourLib
+-#   YourLib_1_0_gir_VERSION = 1.0
+-#   YourLib_1_0_gir_LIBS = libyourlib.la
+-#   YourLib_1_0_gir_FILES = $(libyourlib_1_0_SOURCES)
+-#   girdir = $(datadir)/gir-1.0
+-#   dist_gir_DATA = YourLib-1.0.gir
+-#   typelibdir = $(libdir)/girepository-1.0
+-#   typelib_DATA = YourLib-1.0.typelib
+-#   CLEANFILES = $(dist_gir_DATA) $(typelib_DATA)
+-#
+-
+-# Make sure the required variables are set, these should under normal
+-# circumstances come from introspection.m4
+-$(if $(INTROSPECTION_SCANNER),,$(error Need to define INTROSPECTION_SCANNER))
+-$(if $(INTROSPECTION_COMPILER),,$(error Need to define INTROSPECTION_COMPILER))
+-
+-# Private functions
+-
+-## Transform the gir filename to something which can reference through a variable
+-## without automake/make complaining, eg Gtk-2.0.gir -> Gtk_2_0_gir
+-_gir_name = $(subst /,_,$(subst -,_,$(subst .,_,$(1))))
+-
+-# Namespace and Version is either fetched from the gir filename
+-# or the _NAMESPACE/_VERSION variable combo
+-_gir_namespace = $(or $($(_gir_name)_NAMESPACE),$(firstword $(subst -, ,$(notdir $(1)))))
+-_gir_version = $(or $($(_gir_name)_VERSION),$(lastword $(subst -, ,$(1:.gir=))))
+-
+-# _PROGRAM is an optional variable which needs it's own --program argument
+-_gir_program = $(if $($(_gir_name)_PROGRAM),--program=$($(_gir_name)_PROGRAM))
+-
+-# Variables which provides a list of things
+-_gir_libraries = $(foreach lib,$($(_gir_name)_LIBS),--library=$(lib))
+-_gir_packages = $(foreach pkg,$($(_gir_name)_PACKAGES),--pkg=$(pkg))
+-_gir_includes = $(foreach include,$($(_gir_name)_INCLUDES),--include=$(include))
+-_gir_export_packages = $(foreach pkg,$($(_gir_name)_EXPORT_PACKAGES),--pkg-export=$(pkg))
+-
+-# Reuse the LIBTOOL variable from automake if it's set, but
+-# work around MSYS weirdness: When running g-ir-scanner, MSYS changes
+-# a command-line argument --libtool="/bin/sh ../../libtool" into
+-# --libtool=c:/opt/msys/1.0/bin/libtool. So just use sh.exe without path
+-# because we already "know" where the libtool configure produced is.
+-_gir_libtool = $(if $(findstring MINGW32,$(shell uname -s)),--libtool="$(top_builddir)/libtool",$(if $(LIBTOOL),--libtool="$(LIBTOOL)"))
+-
+-# Macros for AM_SILENT_RULES prettiness
+-_gir_verbosity = $(if $(AM_DEFAULT_VERBOSITY),$(AM_DEFAULT_VERBOSITY),1)
+-
+-_gir_silent_scanner_prefix = $(_gir_silent_scanner_prefix_$(V))
+-_gir_silent_scanner_prefix_ = $(_gir_silent_scanner_prefix_$(_gir_verbosity))
+-_gir_silent_scanner_prefix_0 = @echo "  GISCAN $(1)";
+-_gir_silent_scanner_opts = $(_gir_silent_scanner_opts_$(V))
+-_gir_silent_scanner_opts_ = $(_gir_silent_scanner_opts_$(_gir_verbosity))
+-_gir_silent_scanner_opts_0 = --quiet
+-
+-_gir_silent_compiler = $(_gir_silent_compiler_$(V))
+-_gir_silent_compiler_ = $(_gir_silent_compiler_$(_gir_verbosity))
+-_gir_silent_compiler_0 = @echo "  GICOMP $(1)";
+-
+-#
+-# Creates a GIR by scanning C headers/sources
+-# $(1) - Name of the gir file (output)
+-#
+-# If output is Gtk-2.0.gir then you should name the variables like
+-# Gtk_2_0_gir_NAMESPACE, Gtk_2_0_gir_VERSION etc.
+-# Required variables:
+-# FILES - C sources and headers which should be scanned
+-#
+-# One of these variables are required:
+-# LIBS - Library where the symbol represented in the gir can be found
+-# PROGRAM - Program where the symbol represented in the gir can be found
+-#
+-# Optional variables
+-# NAMESPACE - Namespace of the gir, first letter capital,
+-#   rest should be lower case, for instance: 'Gtk', 'Clutter', 'ClutterGtk'.
+-#   If not present the namespace will be fetched from the gir filename,
+-#   the part before the first dash. For 'Gtk-2.0', namespace will be 'Gtk'.
+-# VERSION - Version of the gir, if not present, will be fetched from gir
+-# filename, the part after the first dash. For 'Gtk-2.0', version will be '2.0'.
+-# LIBTOOL - Command to invoke libtool, usually set by automake
+-# SCANNERFLAGS - Flags to pass in to the scanner, see g-ir-scanner(1) for a list
+-# CFLAGS - Flags to pass in to the parser when scanning headers
+-# LDFLAGS - Linker flags used by the scanner
+-# PACKAGES - list of pkg-config names which cflags are required to parse
+-#   the headers of this gir
+-# INCLUDES - Gir files to include without the .gir suffix, for instance
+-#   GLib-2.0, Gtk-2.0. This is needed for all libraries which you depend on that
+-#   provides introspection information.
+-# EXPORT_PACKAGES - list of pkg-config names that are provided by this gir.
+-#   By default the names in the PACKAGES variable will be used.
+-#
+-
+-define introspection-scanner
+-
+-# Basic sanity check, to make sure required variables are set
+-$(if $($(_gir_name)_FILES),,$(error Need to define $(_gir_name)_FILES))
+-$(if $(or $(findstring --header-only,$($(_gir_name)_SCANNERFLAGS)),
+-          $($(_gir_name)_LIBS),
+-          $($(_gir_name)_PROGRAM)),,
+-    $(error Need to define $(_gir_name)_LIBS or $(_gir_name)_PROGRAM))
+-
+-# Only dependencies we know are actually filenames goes into _FILES, make
+-# sure these are built before running the scanner. Libraries and programs
+-# needs to be added manually.
+-$(1): $$($(_gir_name)_FILES)
+-	@ $(MKDIR_P) $(dir $(1))
+-	$(_gir_silent_scanner_prefix) $(INTROSPECTION_SCANNER_ENV) $(INTROSPECTION_SCANNER) $(_gir_silent_scanner_opts) \
+-	$(INTROSPECTION_SCANNER_ARGS) \
+-	  --namespace=$(_gir_namespace) \
+-	  --nsversion=$(_gir_version) \
+-	  $(_gir_libtool) \
+-	  $(_gir_packages) \
+-	  $(_gir_includes) \
+-	  $(_gir_export_packages) \
+-	  $(_gir_program) \
+-	  $(_gir_libraries) \
+-	  $($(_gir_name)_SCANNERFLAGS) \
+-	  $($(_gir_name)_CFLAGS) \
+-	  $($(_gir_name)_LDFLAGS) \
+-	  $$^ \
+-	  --output $(1)
+-endef
+-
+-$(foreach gir,$(INTROSPECTION_GIRS),$(eval $(call introspection-scanner,$(gir))))
+-
+-#
+-# Compiles a gir into a typelib
+-# $(1): gir filename (input)
+-# $(2): typelib filename (output)
+-#
+-define introspection-compiler
+-$(_gir_silent_compiler) $(INTROSPECTION_COMPILER) $(INTROSPECTION_COMPILER_ARGS) --includedir=. $(1) -o $(2)
+-endef
+-
+-# Simple rule to compile a typelib.
+-%.typelib: %.gir
+-	$(call introspection-compiler,$<,$@)
+diff --git a/introspection.m4 b/introspection.m4
+deleted file mode 100644
+index d89c3d9..0000000
+--- a/introspection.m4
++++ /dev/null
+@@ -1,96 +0,0 @@
+-dnl -*- mode: autoconf -*-
+-dnl Copyright 2009 Johan Dahlin
+-dnl
+-dnl This file is free software; the author(s) gives unlimited
+-dnl permission to copy and/or distribute it, with or without
+-dnl modifications, as long as this notice is preserved.
+-dnl
+-
+-# serial 1
+-
+-m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
+-[
+-    AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
+-    AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+-    AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
+-
+-    dnl enable/disable introspection
+-    m4_if([$2], [require],
+-    [dnl
+-        enable_introspection=yes
+-    ],[dnl
+-        AC_ARG_ENABLE(introspection,
+-                  AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
+-                                 [Enable introspection for this build]),, 
+-                                 [enable_introspection=auto])
+-    ])dnl
+-
+-    AC_MSG_CHECKING([for gobject-introspection])
+-
+-    dnl presence/version checking
+-    AS_CASE([$enable_introspection],
+-    [no], [dnl
+-        found_introspection="no (disabled, use --enable-introspection to enable)"
+-    ],dnl
+-    [yes],[dnl
+-        PKG_CHECK_EXISTS([gobject-introspection-1.0],,
+-                         AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
+-        PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
+-                         found_introspection=yes,
+-                         AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
+-    ],dnl
+-    [auto],[dnl
+-        PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
+-	dnl Canonicalize enable_introspection
+-	enable_introspection=$found_introspection
+-    ],dnl
+-    [dnl	
+-        AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
+-    ])dnl
+-
+-    AC_MSG_RESULT([$found_introspection])
+-
+-    INTROSPECTION_SCANNER=
+-    INTROSPECTION_COMPILER=
+-    INTROSPECTION_GENERATE=
+-    INTROSPECTION_GIRDIR=
+-    INTROSPECTION_TYPELIBDIR=
+-    if test "x$found_introspection" = "xyes"; then
+-       INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+-       INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+-       INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+-       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+-       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+-       INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+-       INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+-       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+-    fi
+-    AC_SUBST(INTROSPECTION_SCANNER)
+-    AC_SUBST(INTROSPECTION_COMPILER)
+-    AC_SUBST(INTROSPECTION_GENERATE)
+-    AC_SUBST(INTROSPECTION_GIRDIR)
+-    AC_SUBST(INTROSPECTION_TYPELIBDIR)
+-    AC_SUBST(INTROSPECTION_CFLAGS)
+-    AC_SUBST(INTROSPECTION_LIBS)
+-    AC_SUBST(INTROSPECTION_MAKEFILE)
+-
+-    AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
+-])
+-
+-
+-dnl Usage:
+-dnl   GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
+-
+-AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
+-[
+-  _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
+-])
+-
+-dnl Usage:
+-dnl   GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
+-
+-
+-AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
+-[
+-  _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
+-])
+-- 
+2.1.4
+
diff --git a/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb b/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb
index 40f3243..69b406a 100644
--- a/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb
+++ b/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb
@@ -4,12 +4,14 @@ SECTION = "x11/base"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-PROVIDES = "gtk-doc gobject-introspection-stub"
+PROVIDES = "gtk-doc"
 
 SRCREV = "1dea266593edb766d6d898c79451ef193eb17cfa"
 PV = "1.1+git${SRCPV}"
 
-SRC_URI = "git://git.gnome.org/${BPN}"
+SRC_URI = "git://git.gnome.org/${BPN} \
+	   file://0001-Revert-Import-introspection-stub-machinery-too.patch \
+	  "
 
 S = "${WORKDIR}/git"
 
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 05/29] gobject-introspection.bbclass: add a class that enables gobject introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (3 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 04/29] gtk-doc-stub: remove introspection stubs Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 06/29] python3-native: use the previous version of python-config script Alexander Kanavin
                   ` (25 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/classes/gobject-introspection.bbclass | 36 ++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 meta/classes/gobject-introspection.bbclass

diff --git a/meta/classes/gobject-introspection.bbclass b/meta/classes/gobject-introspection.bbclass
new file mode 100644
index 0000000..be4f5d4
--- /dev/null
+++ b/meta/classes/gobject-introspection.bbclass
@@ -0,0 +1,36 @@
+# Inherit this class in recipes to enable building their introspection files
+
+EXTRA_OECONF_append = " --enable-introspection"
+UNKNOWN_CONFIGURE_WHITELIST_append = " --enable-introspection"
+
+DEPENDS_append = " gobject-introspection"
+
+# This is necessary for python scripts to succeed - distutils
+# failes if these are not set
+export BUILD_SYS
+export HOST_SYS
+
+# This is used by introspection tools to find .gir includes
+export XDG_DATA_DIRS = "${STAGING_DATADIR}"
+
+do_configure_prepend_class-target () {
+    # introspection.m4 pre-packaged with upstream tarballs does not yet
+    # have our fixes
+    mkdir -p ${S}/m4
+    cp ${STAGING_DIR_TARGET}/${datadir}/aclocal/introspection.m4 ${S}/m4
+
+    # Sometimes tarballs package it in common/ instead of m4/,
+    # remove that too.
+    rm -f ${S}/common/introspection.m4
+    rm -f ${S}/common/m4/introspection.m4
+}
+
+
+# .typelib files are needed at runtime and so they go to the main package
+# (so they'll be together with libraries they support).
+FILES_${PN}_append = " ${libdir}/girepository-*/*.typelib" 
+    
+# .gir files go to dev package, as they're needed for developing (but not for running)
+# things that depends on introspection.
+FILES_${PN}-dev_append = " ${datadir}/gir-*/*.gir"
+
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 06/29] python3-native: use the previous version of python-config script
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (4 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 05/29] gobject-introspection.bbclass: add a class that enables gobject introspection Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 07/29] avahi-ui: remove the dependency on python-pygtk by disabling avahi-discover Alexander Kanavin
                   ` (24 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

In python 3.4 python-config was rewritten in shell, ironically
to support cross-compilation:
https://bugs.python.org/issue16235

This new shell version is broken in several ways, and doesn't
have our oe-specific tweaks. Let's revert to the old script,
which is still provided.

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 .../python/python3-native_3.4.3.bb                 |  1 +
 ...the-shell-version-of-python-config-that-w.patch | 38 ++++++++++++++++++++++
 2 files changed, 39 insertions(+)
 create mode 100644 meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch

diff --git a/meta/recipes-devtools/python/python3-native_3.4.3.bb b/meta/recipes-devtools/python/python3-native_3.4.3.bb
index 464ff05..6b949b9 100644
--- a/meta/recipes-devtools/python/python3-native_3.4.3.bb
+++ b/meta/recipes-devtools/python/python3-native_3.4.3.bb
@@ -26,6 +26,7 @@ file://makerace.patch \
 ${DISTRO_SRC_URI} \
 file://sysconfig.py-add-_PYTHON_PROJECT_SRC.patch \
 file://setup.py-check-cross_compiling-when-get-FLAGS.patch \
+file://0001-Do-not-use-the-shell-version-of-python-config-that-w.patch \
 "
 SRC_URI[md5sum] = "7d092d1bba6e17f0d9bd21b49e441dd5"
 SRC_URI[sha256sum] = "b5b3963533768d5fc325a4d7a6bd6f666726002d696f1d399ec06b043ea996b8"
diff --git a/meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch b/meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch
new file mode 100644
index 0000000..b7e0ac6
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch
@@ -0,0 +1,38 @@
+From 045c99b5f1eb6e4e0d8ad1ef9f0ba6574f738150 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 23 Oct 2015 12:25:09 +0300
+Subject: [PATCH] Do not use the shell version of python-config that was
+ introduced in 3.4
+
+Revert instead to the original python version: it has our tweaks and
+outputs directories correctly.
+
+Upstream-Status: Inappropriate [oe-specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile.pre.in | 9 +++------
+ 1 file changed, 3 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index d7fc9a0..47e60bc 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -1270,12 +1270,9 @@ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh
+ 	sed -e "s,@EXENAME@,$(BINDIR)/python$(LDVERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py
+ 	# Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR}
+ 	sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config
+-	# On Darwin, always use the python version of the script, the shell
+-	# version doesn't use the compiler customizations that are provided
+-	# in python (_osx_support.py).
+-	if test `uname -s` = Darwin; then \
+-		cp python-config.py python-config; \
+-	fi
++	# In OpenEmbedded, always use the python version of the script, the shell
++	# version is broken in multiple ways, and doesn't return correct directories
++	cp python-config.py python-config
+ 
+ 
+ # Install the include files
+-- 
+2.1.4
+
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 07/29] avahi-ui: remove the dependency on python-pygtk by disabling avahi-discover
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (5 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 06/29] python3-native: use the previous version of python-config script Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 08/29] python-pygtk: remove the recipe Alexander Kanavin
                   ` (23 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

python-pygtk is removed in a separate commit; the reasons for
that are explained in that commit's message.

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb b/meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb
index 0d42b90..11066e2 100644
--- a/meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb
+++ b/meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb
@@ -19,11 +19,11 @@ SRC_URI[sha256sum] = "8372719b24e2dd75de6f59bb1315e600db4fd092805bd1201ed0cb651a
 
 DEPENDS += "avahi gtk+ libglade"
 
-AVAHI_GTK = "--enable-gtk --disable-gtk3"
+AVAHI_GTK = "--enable-gtk --disable-gtk3 --disable-pygtk"
 
 S = "${WORKDIR}/avahi-${PV}"
 
-PACKAGES = "${PN} ${PN}-utils ${PN}-dbg ${PN}-dev ${PN}-staticdev ${PN}-doc python-avahi avahi-discover avahi-discover-standalone"
+PACKAGES = "${PN} ${PN}-utils ${PN}-dbg ${PN}-dev ${PN}-staticdev ${PN}-doc python-avahi avahi-discover"
 
 FILES_${PN} = "${libdir}/libavahi-ui*.so.*"
 FILES_${PN}-dbg += "${libdir}/.debug/libavah-ui*"
@@ -33,13 +33,11 @@ FILES_${PN}-staticdev += "${libdir}/libavahi-ui.a"
 FILES_${PN}-utils = "${bindir}/b* ${datadir}/applications/b*"
 
 FILES_python-avahi = "${PYTHON_SITEPACKAGES_DIR}/avahi ${PYTHON_SITEPACKAGES_DIR}/avahi_discover"
-FILES_avahi-discover = "${bindir}/avahi-discover \
-                        ${datadir}/applications/avahi-discover.desktop \
-                        ${datadir}/avahi/interfaces/avahi-discover*"
-FILES_avahi-discover-standalone = "${bindir}/avahi-discover-standalone \
-                                   ${datadir}/avahi/interfaces/avahi-discover.glade"
+FILES_avahi-discover = "${datadir}/applications/avahi-discover.desktop \
+                        ${datadir}/avahi/interfaces/avahi-discover* \
+                        ${bindir}/avahi-discover-standalone \
+                        ${datadir}/avahi/interfaces/avahi-discover.glade"
 
-RDEPENDS_avahi-discover = "python-avahi python-pygtk"
 RDEPENDS_python-avahi = "python-core python-dbus"
 
 
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 08/29] python-pygtk: remove the recipe
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (6 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 07/29] avahi-ui: remove the dependency on python-pygtk by disabling avahi-discover Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-10 13:13   ` Jussi Kukkonen
  2015-11-09 14:50 ` [PATCH 09/29] avahi: enable gobject-introspection Alexander Kanavin
                   ` (22 subsequent siblings)
  30 siblings, 1 reply; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

python-pygtk hasn't been updated in several years, is incompatible
with the current version of pygobject, and is generally obsolete as
all modern python gtk apps use introspection directly.

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/conf/distro/include/distro_alias.inc          |  1 -
 .../packagegroups/packagegroup-self-hosted.bb      |  1 -
 .../python/python-pygtk/acinclude.m4               | 90 ----------------------
 .../add-gtk-types.defs-into-gdk.c-dependence.patch | 32 --------
 .../python/python-pygtk/fix-gtkunixprint.patch     | 20 -----
 .../python/python-pygtk/fix-pygtk-2.0.pc.patch     | 13 ----
 .../python/python-pygtk/nodocs.patch               | 15 ----
 .../prevent_to_get_display_during_import.patch     | 16 ----
 .../python/python-pygtk/python-pygtk2/acinclude.m4 | 90 ----------------------
 .../update-dependences-of-defs.c.patch             | 38 ---------
 .../recipes-devtools/python/python-pygtk_2.24.0.bb | 55 -------------
 11 files changed, 371 deletions(-)
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/acinclude.m4
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/add-gtk-types.defs-into-gdk.c-dependence.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/fix-pygtk-2.0.pc.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/nodocs.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/update-dependences-of-defs.c.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk_2.24.0.bb

diff --git a/meta/conf/distro/include/distro_alias.inc b/meta/conf/distro/include/distro_alias.inc
index ca333c8..6368d6d 100644
--- a/meta/conf/distro/include/distro_alias.inc
+++ b/meta/conf/distro/include/distro_alias.inc
@@ -402,7 +402,6 @@ DISTRO_PN_ALIAS_pn-python-mako = "Fedora=python-mako Opensuse=python-Mako"
 DISTRO_PN_ALIAS_pn-python-pycairo = "Meego=pycairo Fedora=pycairo Ubuntu=pycairo Debian=pycairo"
 DISTRO_PN_ALIAS_pn-python-pycurl = "Debian=python-pycurl Ubuntu=python-pycurl"
 DISTRO_PN_ALIAS_pn-python-pygobject = "Meego=pygobject2 Fedora=pygobject2 Ubuntu=pygobject Debian=pygobject"
-DISTRO_PN_ALIAS_pn-python-pygtk = "Debian=python-gtk2 Fedora=pygtk2 OpenSuSE=python-gtk"
 DISTRO_PN_ALIAS_pn-python-pyrex = "Mandriva=python-pyrex Ubuntu=python-pyrex"
 DISTRO_PN_ALIAS_pn-python-scons = "Fedora=scons OpenSuSE=scons Ubuntu=scons Mandriva=scons Debian=scons"
 DISTRO_PN_ALIAS_pn-python-setuptools = "Mandriva=python-setup OpenSuSE=python-setup-git"
diff --git a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
index d38be26..b8573fb 100644
--- a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
+++ b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
@@ -190,7 +190,6 @@ RDEPENDS_packagegroup-self-hosted-graphics = "\
     libsdl \
     libsdl-dev \
     libx11-dev \
-    python-pygtk \
     gtk-theme-clearlooks \
     xdg-utils \
     epiphany \
diff --git a/meta/recipes-devtools/python/python-pygtk/acinclude.m4 b/meta/recipes-devtools/python/python-pygtk/acinclude.m4
deleted file mode 100644
index 53518fb..0000000
--- a/meta/recipes-devtools/python/python-pygtk/acinclude.m4
+++ /dev/null
@@ -1,90 +0,0 @@
-## this one is commonly used with AM_PATH_PYTHONDIR ...
-dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]])
-dnl Check if a module containing a given symbol is visible to python.
-AC_DEFUN(AM_CHECK_PYMOD,
-[AC_REQUIRE([AM_PATH_PYTHON])
-py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
-AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1)
-AC_CACHE_VAL(py_cv_mod_$py_mod_var, [
-ifelse([$2],[], [prog="
-import sys
-try:
-        import $1
-except ImportError:
-        sys.exit(1)
-except:
-        sys.exit(0)
-sys.exit(0)"], [prog="
-import $1
-$1.$2"])
-if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
-  then
-    eval "py_cv_mod_$py_mod_var=yes"
-  else
-    eval "py_cv_mod_$py_mod_var=no"
-  fi
-])
-py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"`
-if test "x$py_val" != xno; then
-  AC_MSG_RESULT(yes)
-  ifelse([$3], [],, [$3
-])dnl
-else
-  AC_MSG_RESULT(no)
-  ifelse([$4], [],, [$4
-])dnl
-fi
-])
-
-dnl a macro to check for ability to create python extensions
-dnl  AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
-dnl function also defines PYTHON_INCLUDES
-AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
-[AC_REQUIRE([AM_PATH_PYTHON])
-AC_MSG_CHECKING(for headers required to compile python extensions)
-dnl deduce PYTHON_INCLUDES
-AC_ARG_WITH(python-includes,
-	[  --with-python-includes=DIR  path to Python includes], py_exec_prefix=$withval)
-if test x$py_exec_prefix != x; then
-PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}"
-else
-py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
-py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
-PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
-if test "$py_prefix" != "$py_exec_prefix"; then
-  PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
-fi
-fi
-AC_SUBST(PYTHON_INCLUDES)
-dnl check if the headers exist:
-save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
-AC_TRY_CPP([#include <Python.h>],dnl
-[AC_MSG_RESULT(found)
-$1],dnl
-[AC_MSG_RESULT(not found)
-$2])
-CPPFLAGS="$save_CPPFLAGS"
-])
-
-dnl
-dnl JH_ADD_CFLAG(FLAG)
-dnl checks whether the C compiler supports the given flag, and if so, adds
-dnl it to $CFLAGS.  If the flag is already present in the list, then the
-dnl check is not performed.
-AC_DEFUN([JH_ADD_CFLAG],
-[
-case " $CFLAGS " in
-*@<:@\	\ @:>@$1@<:@\	\ @:>@*)
-  ;;
-*)
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS $1"
-  AC_MSG_CHECKING([whether [$]CC understands $1])
-  AC_TRY_COMPILE([], [], [jh_has_option=yes], [jh_has_option=no])
-  AC_MSG_RESULT($jh_has_option)
-  if test $jh_has_option = no; then
-    CFLAGS="$save_CFLAGS"
-  fi
-  ;;
-esac])
diff --git a/meta/recipes-devtools/python/python-pygtk/add-gtk-types.defs-into-gdk.c-dependence.patch b/meta/recipes-devtools/python/python-pygtk/add-gtk-types.defs-into-gdk.c-dependence.patch
deleted file mode 100644
index df0f9cd..0000000
--- a/meta/recipes-devtools/python/python-pygtk/add-gtk-types.defs-into-gdk.c-dependence.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Upstream-Status: Submitted
-
-add gtk-types.defs into gdk.c dependence
-
-gdk.c depends on gtk-types.defs but
-gdk/Makefile.am miss this. This will cause
-build error sometimes when built
-with multi-jobbing, so add gtk-types.defs into
-gdk.c dependence.
-
-Signed-off-by: Song.Li <Song.Li@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- gtk/Makefile.am |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/gtk/Makefile.am b/gtk/Makefile.am
-index 7bb5d0c..4a88351 100644
---- a/gtk/Makefile.am
-+++ b/gtk/Makefile.am
-@@ -214,7 +214,7 @@ gtkunixprint.defs: $(GTKUNIXPRINT_DEFS) Makefile
- gtkunixprint-types.defs: $(GTKUNIXPRINT_TYPES_DEFS) Makefile
- 	$(CREATEDEFS) $@ $(GTKUNIXPRINT_TYPES_DEFS)
- 
--gdk.c: gdk-types.defs gdk.defs $(GDK_OVERRIDES)
-+gdk.c: gdk-types.defs gtk-types.defs gdk.defs $(GDK_OVERRIDES)
- gtk.c: gdk-types.defs gtk-types.defs gtk.defs gdk-types.defs $(GTK_OVERRIDES)
- _gtk_la_CFLAGS = $(PYCAIRO_CFLAGS) $(GTK_CFLAGS)
- _gtk_la_LDFLAGS = $(common_ldflags) -export-symbols-regex init_gtk
--- 
-1.7.4
-
diff --git a/meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch b/meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch
deleted file mode 100644
index 16c0e8e..0000000
--- a/meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-
-Index: pygtk-2.24.0/gtk/gtkunixprint.override
-===================================================================
---- pygtk-2.24.0.orig/gtk/gtkunixprint.override
-+++ pygtk-2.24.0/gtk/gtkunixprint.override
-@@ -102,11 +102,6 @@ _wrap_gtk_print_job_get_surface(PyGObjec
-     if (pyg_error_check(&error))
-         return NULL;
- 
--#if PYCAIRO_VERSION_HEX >= 0x1010600
--    return PycairoSurface_FromSurface(cairo_surface_reference(surface), NULL);
--#else
--    return PycairoSurface_FromSurface(cairo_surface_reference(surface), NULL, NULL);
--#endif
- }
- %%
- override gtk_print_job_send kwargs
diff --git a/meta/recipes-devtools/python/python-pygtk/fix-pygtk-2.0.pc.patch b/meta/recipes-devtools/python/python-pygtk/fix-pygtk-2.0.pc.patch
deleted file mode 100644
index b6156540..0000000
--- a/meta/recipes-devtools/python/python-pygtk/fix-pygtk-2.0.pc.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Index: pygtk-2.24.0/pygtk-2.0.pc.in
-===================================================================
---- pygtk-2.24.0.orig/pygtk-2.0.pc.in
-+++ pygtk-2.24.0/pygtk-2.0.pc.in
-@@ -1,5 +1,6 @@
- prefix=@prefix@
- exec_prefix=@exec_prefix@
-+libdir=@libdir@
- includedir=@includedir@
- datarootdir=@datarootdir@
- datadir=@datadir@
diff --git a/meta/recipes-devtools/python/python-pygtk/nodocs.patch b/meta/recipes-devtools/python/python-pygtk/nodocs.patch
deleted file mode 100644
index f07309a..0000000
--- a/meta/recipes-devtools/python/python-pygtk/nodocs.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Index: pygtk-2.17.0/Makefile.am
-===================================================================
---- pygtk-2.17.0.orig/Makefile.am
-+++ pygtk-2.17.0/Makefile.am
-@@ -4,7 +4,7 @@ if BUILD_GTK
-   GTK_SUBDIR = gtk
- endif
- 
--SUBDIRS = . $(GTK_SUBDIR) examples tests docs
-+SUBDIRS = . $(GTK_SUBDIR) examples tests
- 
- PLATFORM_VERSION = 2.0
- 
diff --git a/meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch b/meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch
deleted file mode 100644
index 833038e..0000000
--- a/meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Upstream-Status: Pending
-
-Index: pygtk-2.10.4/gtk/__init__.py
-===================================================================
---- pygtk-2.10.4.orig/gtk/__init__.py	2007-11-27 19:27:05.000000000 -0300
-+++ pygtk-2.10.4/gtk/__init__.py	2007-11-27 19:28:22.000000000 -0300
-@@ -78,7 +78,8 @@
- 
- keysyms = LazyModule('keysyms', locals())
- 
--_init()
-+if not hasattr(sys.modules['__main__'], 'python_launcher_enabled'):
-+    _init()
- 
- # CAPI
- _PyGtk_API = _gtk._PyGtk_API
diff --git a/meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4 b/meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4
deleted file mode 100644
index 53518fb..0000000
--- a/meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4
+++ /dev/null
@@ -1,90 +0,0 @@
-## this one is commonly used with AM_PATH_PYTHONDIR ...
-dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]])
-dnl Check if a module containing a given symbol is visible to python.
-AC_DEFUN(AM_CHECK_PYMOD,
-[AC_REQUIRE([AM_PATH_PYTHON])
-py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
-AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1)
-AC_CACHE_VAL(py_cv_mod_$py_mod_var, [
-ifelse([$2],[], [prog="
-import sys
-try:
-        import $1
-except ImportError:
-        sys.exit(1)
-except:
-        sys.exit(0)
-sys.exit(0)"], [prog="
-import $1
-$1.$2"])
-if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
-  then
-    eval "py_cv_mod_$py_mod_var=yes"
-  else
-    eval "py_cv_mod_$py_mod_var=no"
-  fi
-])
-py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"`
-if test "x$py_val" != xno; then
-  AC_MSG_RESULT(yes)
-  ifelse([$3], [],, [$3
-])dnl
-else
-  AC_MSG_RESULT(no)
-  ifelse([$4], [],, [$4
-])dnl
-fi
-])
-
-dnl a macro to check for ability to create python extensions
-dnl  AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
-dnl function also defines PYTHON_INCLUDES
-AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
-[AC_REQUIRE([AM_PATH_PYTHON])
-AC_MSG_CHECKING(for headers required to compile python extensions)
-dnl deduce PYTHON_INCLUDES
-AC_ARG_WITH(python-includes,
-	[  --with-python-includes=DIR  path to Python includes], py_exec_prefix=$withval)
-if test x$py_exec_prefix != x; then
-PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}"
-else
-py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
-py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
-PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
-if test "$py_prefix" != "$py_exec_prefix"; then
-  PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
-fi
-fi
-AC_SUBST(PYTHON_INCLUDES)
-dnl check if the headers exist:
-save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
-AC_TRY_CPP([#include <Python.h>],dnl
-[AC_MSG_RESULT(found)
-$1],dnl
-[AC_MSG_RESULT(not found)
-$2])
-CPPFLAGS="$save_CPPFLAGS"
-])
-
-dnl
-dnl JH_ADD_CFLAG(FLAG)
-dnl checks whether the C compiler supports the given flag, and if so, adds
-dnl it to $CFLAGS.  If the flag is already present in the list, then the
-dnl check is not performed.
-AC_DEFUN([JH_ADD_CFLAG],
-[
-case " $CFLAGS " in
-*@<:@\	\ @:>@$1@<:@\	\ @:>@*)
-  ;;
-*)
-  save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS $1"
-  AC_MSG_CHECKING([whether [$]CC understands $1])
-  AC_TRY_COMPILE([], [], [jh_has_option=yes], [jh_has_option=no])
-  AC_MSG_RESULT($jh_has_option)
-  if test $jh_has_option = no; then
-    CFLAGS="$save_CFLAGS"
-  fi
-  ;;
-esac])
diff --git a/meta/recipes-devtools/python/python-pygtk/update-dependences-of-defs.c.patch b/meta/recipes-devtools/python/python-pygtk/update-dependences-of-defs.c.patch
deleted file mode 100644
index 3ed954e..0000000
--- a/meta/recipes-devtools/python/python-pygtk/update-dependences-of-defs.c.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From dc024e9079bbffbb44436ba3e70a758ebad5520f Mon Sep 17 00:00:00 2001
-From: "Song.Li" <Song.Li@windriver.com>
-Date: Sat, 5 Jan 2013 14:55:59 +0800
-Subject: [PATCH] update dependences of defs.c in Makefile.am
-
-In gtk/Makefile.am, defs.c should dependes on gdk-types.defs and
-gtk-types.defs, otherwise it fails occasionally when parallel compile.
-The error message:
-"IOError: [Errno 2] No such file or directory: 'gtk-types.defs'"
-
-Add them to dependences of defs.c to fix this issue.
-
-Upstream-Status: Submitted
-https://bugzilla.gnome.org/show_bug.cgi?id=702706
-
-Signed-off-by: Song.Li <Song.Li@windriver.com>
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
----
- gtk/Makefile.am |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gtk/Makefile.am b/gtk/Makefile.am
-index 7bb5d0c..91826cb 100644
---- a/gtk/Makefile.am
-+++ b/gtk/Makefile.am
-@@ -289,7 +289,7 @@ if HAVE_GIO_TYPES_DEFS
- extra_codegen_args += --register $(PYGOBJECT_DEFSDIR)/gio-types.defs
- endif
- 
--.defs.c: 
-+.defs.c: gdk-types.defs gtk-types.defs
- 	($(PYTHON) $(CODEGENDIR)/codegen.py \
- 	   $(PYGTK_CODEGEN_DEFINES) \
- 	    -I $(srcdir) \
--- 
-1.7.9.5
-
diff --git a/meta/recipes-devtools/python/python-pygtk_2.24.0.bb b/meta/recipes-devtools/python/python-pygtk_2.24.0.bb
deleted file mode 100644
index 79b3110..0000000
--- a/meta/recipes-devtools/python/python-pygtk_2.24.0.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "Python bindings for the GTK+ UI toolkit"
-SECTION = "devel/python"
-# needs gtk+ 2.17.x
-DEPENDS = "gtk+ libglade python-pycairo python-pygobject"
-RDEPENDS_${PN} = "python-shell python-pycairo python-pygobject"
-PROVIDES = "python-pygtk2"
-SRCNAME = "pygtk"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
-
-PR = "r1"
-
-SRC_URI = "ftp://ftp.gnome.org/pub/gnome/sources/pygtk/2.24/${SRCNAME}-${PV}.tar.bz2 \
-           file://add-gtk-types.defs-into-gdk.c-dependence.patch \
-           file://fix-gtkunixprint.patch \
-           file://prevent_to_get_display_during_import.patch \
-           file://nodocs.patch \
-	   file://fix-pygtk-2.0.pc.patch \
-           file://acinclude.m4 \
-           file://update-dependences-of-defs.c.patch"
-
-SRC_URI[md5sum] = "a1051d5794fd7696d3c1af6422d17a49"
-SRC_URI[sha256sum] = "cd1c1ea265bd63ff669e92a2d3c2a88eb26bcd9e5363e0f82c896e649f206912"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-EXTRA_OECONF = "--disable-docs --with-python-includes=${STAGING_INCDIR}/../"
-
-inherit autotools pkgconfig distutils-base distro_features_check
-
-ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
-
-do_configure_prepend() {
-	install -m 0644 ${WORKDIR}/acinclude.m4 ${S}/
-	sed -i \
-		-e s:'`$PKG_CONFIG --variable defsdir pygobject-2.0`':\"${STAGING_DATADIR}/pygobject/2.0/defs\":g \
-		-e s:'`$PKG_CONFIG --variable=pygtkincludedir pygobject-2.0`':\"${STAGING_INCDIR}/pygtk-2.0\":g \
-		-e s:'`$PKG_CONFIG --variable=datadir pygobject-2.0`':\"${STAGING_DATADIR}\":g \
-		-e s:'`$PKG_CONFIG --variable codegendir pygobject-2.0`':\"${STAGING_DATADIR}/pygobject/2.0/codegen\":g \
-		-e s:'`$PKG_CONFIG --variable=fixxref pygobject-2.0`':\"${STAGING_DATADIR}/pygobject/xsl/fixxref.py\":g \
-		${S}/configure.ac
-}
-
-# dirty fix #2: fix build system paths leaking in
-do_install_append() {
-	sed -i -e '1s|^#!.*python|#!/usr/bin/env python|' ${D}${bindir}/pygtk-demo
-}
-
-PACKAGES =+ "${PN}-demo"
-FILES_${PN}-demo = " ${bindir}/pygtk-demo ${libdir}/pygtk "
-RDEPENDS_${PN}-demo = "python-pygtk python-stringold python-lang"
-
-# todo: revamp packaging, package demo seperatly
-FILES_${PN}-dev += " ${libdir}/pygtk/2.0 ${bindir}/pygtk-* ${datadir}/pygtk/2.0"
-
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 09/29] avahi: enable gobject-introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (7 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 08/29] python-pygtk: remove the recipe Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 10/29] udev: enable gobject introspection Alexander Kanavin
                   ` (21 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb |  2 ++
 meta/recipes-connectivity/avahi/avahi.inc          | 12 +++++++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb b/meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb
index 11066e2..5dabbae 100644
--- a/meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb
+++ b/meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb
@@ -67,5 +67,7 @@ do_install_append () {
 	rm ${D}${mandir}/man1/a*
 	rm ${D}${mandir}/man5 -rf
 	rm ${D}${mandir}/man8 -rf
+        rm ${D}${libdir}/girepository-1.0/ -rf
+        rm ${D}${datadir}/gir-1.0/ -rf
 }
 
diff --git a/meta/recipes-connectivity/avahi/avahi.inc b/meta/recipes-connectivity/avahi/avahi.inc
index 825197d..14f487e 100644
--- a/meta/recipes-connectivity/avahi/avahi.inc
+++ b/meta/recipes-connectivity/avahi/avahi.inc
@@ -40,10 +40,9 @@ USERADD_PARAM_avahi-autoipd = "--system --home /var/run/avahi-autoipd \
                               -c \"Avahi autoip daemon\" \
                               avahi-autoipd"
 
-inherit autotools pkgconfig update-rc.d gettext useradd
+inherit autotools pkgconfig update-rc.d gettext useradd gobject-introspection
 
-EXTRA_OECONF = "--disable-introspection \
-             --with-avahi-priv-access-group=adm \
+EXTRA_OECONF = "--with-avahi-priv-access-group=adm \
              --disable-stack-protector \
              --disable-gdbm \
              --disable-mono \
@@ -70,6 +69,9 @@ do_configure_prepend() {
     sed 's:AM_CHECK_PYMOD:echo "no pymod" #AM_CHECK_PYMOD:g' -i ${S}/configure.ac
 }
 
+do_compile_prepend() {
+    export GIR_EXTRA_LIBS_PATH="${B}/avahi-common/.libs:${B}/avahi-client/.libs:${B}/avahi-glib/.libs"
+}
 
 PACKAGES =+ "avahi-daemon libavahi-common libavahi-core libavahi-client avahi-dnsconfd libavahi-glib libavahi-ui avahi-autoipd avahi-utils"
 
@@ -82,7 +84,7 @@ FILES_avahi-autoipd = "${sbindir}/avahi-autoipd \
                        ${sysconfdir}/udhcpc.d/00avahi-autoipd \
                        ${sysconfdir}/udhcpc.d/99avahi-autoipd"
 FILES_libavahi-common = "${libdir}/libavahi-common.so.*"
-FILES_libavahi-core = "${libdir}/libavahi-core.so.*"
+FILES_libavahi-core = "${libdir}/libavahi-core.so.* ${libdir}/girepository-1.0/AvahiCore*.typelib"
 FILES_avahi-daemon = "${sbindir}/avahi-daemon \
                       ${sysconfdir}/avahi/avahi-daemon.conf \
                       ${sysconfdir}/avahi/hosts \
@@ -99,7 +101,7 @@ FILES_avahi-dnsconfd = "${sbindir}/avahi-dnsconfd \
                         ${sysconfdir}/avahi/avahi-dnsconfd.action \
                         ${sysconfdir}/init.d/avahi-dnsconfd"
 FILES_libavahi-glib = "${libdir}/libavahi-glib.so.*"
-FILES_libavahi-gobject = "${libdir}/libavahi-gobject.so.*"
+FILES_libavahi-gobject = "${libdir}/libavahi-gobject.so.*  ${libdir}/girepository-1.0/Avahi*.typelib"
 FILES_avahi-utils = "${bindir}/avahi-*"
 
 RDEPENDS_${PN}-dev = "avahi-daemon (= ${EXTENDPKGV}) libavahi-core (= ${EXTENDPKGV}) libavahi-client (= ${EXTENDPKGV})"
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 10/29] udev: enable gobject introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (8 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 09/29] avahi: enable gobject-introspection Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 11/29] vala: enable the use of vapigen by packages with vala support Alexander Kanavin
                   ` (20 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-core/udev/udev.inc                    | 10 ++++---
 ...file.am-don-t-hardcode-g-ir-compiler-name.patch | 27 ++++++++++++++++++
 ...c-use-PKG_CONFIG_SYSROOT_PATH-when-findin.patch | 32 ++++++++++++++++++++++
 ....am-use-libtool-when-running-g-ir-scanner.patch | 26 ++++++++++++++++++
 4 files changed, 91 insertions(+), 4 deletions(-)
 create mode 100644 meta/recipes-core/udev/udev/0001-Makefile.am-don-t-hardcode-g-ir-compiler-name.patch
 create mode 100644 meta/recipes-core/udev/udev/0001-configure.ac-use-PKG_CONFIG_SYSROOT_PATH-when-findin.patch
 create mode 100644 meta/recipes-core/udev/udev/0002-Makefile.am-use-libtool-when-running-g-ir-scanner.patch

diff --git a/meta/recipes-core/udev/udev.inc b/meta/recipes-core/udev/udev.inc
index c378ae3..ea5fb24 100644
--- a/meta/recipes-core/udev/udev.inc
+++ b/meta/recipes-core/udev/udev.inc
@@ -19,6 +19,9 @@ PROVIDES = "libgudev"
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
            file://0001-Fixing-keyboard_force_release.sh-shell-script-path.patch \
+           file://0001-configure.ac-use-PKG_CONFIG_SYSROOT_PATH-when-findin.patch \
+           file://0002-Makefile.am-use-libtool-when-running-g-ir-scanner.patch \
+           file://0001-Makefile.am-don-t-hardcode-g-ir-compiler-name.patch \
            file://avoid-mouse-autosuspend.patch \
            file://run.rules \
            file://udev.rules \
@@ -33,12 +36,11 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/hotplug/udev-${PV}.tar.gz \
            file://run-ptest \
            file://init"
 
-inherit autotools pkgconfig update-rc.d ptest
+inherit autotools pkgconfig update-rc.d ptest gobject-introspection
 RDEPENDS_${PN}-ptest += "make perl python"
 
 libexecdir = "${base_libdir}"
-EXTRA_OECONF = "--disable-introspection \
-                --with-rootlibdir=${base_libdir} \
+EXTRA_OECONF = "--with-rootlibdir=${base_libdir} \
                 --with-pci-ids-path=${datadir}/pci.ids \
                 ac_cv_file__usr_share_pci_ids=no \
                 ac_cv_file__usr_share_hwdata_pci_ids=no \
@@ -72,7 +74,7 @@ FILES_${PN}-dbg += "${libexecdir}/.debug"
 FILES_${PN}-dbg += "${base_libdir}/udev/.debug/"
 FILES_${PN}-dbg += "${base_libdir}/udev/.debug/*"
 FILES_${PN}-dbg += "${nonarch_base_libdir}/udev/.debug/*"
-FILES_${PN}-dev = "${datadir}/pkgconfig/udev.pc \
+FILES_${PN}-dev += "${datadir}/pkgconfig/udev.pc \
                    ${includedir}/libudev.h ${libdir}/libudev.so ${libdir}/libudev.la \
                    ${libdir}/libudev.a ${libdir}/pkgconfig/libudev.pc \
                    ${includedir}/gudev* ${libdir}/libgudev*.so ${libdir}/libgudev*.la \
diff --git a/meta/recipes-core/udev/udev/0001-Makefile.am-don-t-hardcode-g-ir-compiler-name.patch b/meta/recipes-core/udev/udev/0001-Makefile.am-don-t-hardcode-g-ir-compiler-name.patch
new file mode 100644
index 0000000..859c47c
--- /dev/null
+++ b/meta/recipes-core/udev/udev/0001-Makefile.am-don-t-hardcode-g-ir-compiler-name.patch
@@ -0,0 +1,27 @@
+From c00a9a5cca2fe805c5c3de85ad3962df55927bbc Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 3 Nov 2015 15:49:48 +0200
+Subject: [PATCH] Makefile.am: don't hardcode g-ir-compiler name
+
+Upstream-Status: Inappropriate [upstream is dead]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index c7e7447..9d32acc 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -469,7 +469,7 @@ src/gudev/GUdev-1.0.gir: libgudev-1.0.la $(G_IR_SCANNER)
+ 		$(top_srcdir)/src/gudev/gudevenumerator.c
+ 
+ src/gudev/GUdev-1.0.typelib: src/gudev/GUdev-1.0.gir $(G_IR_COMPILER)
+-	$(AM_V_GEN)g-ir-compiler $< -o $@
++	$(AM_V_GEN)$(G_IR_COMPILER) $< -o $@
+ 
+ girdir = $(GIRDIR)
+ gir_DATA = src/gudev/GUdev-1.0.gir
+-- 
+2.1.4
+
diff --git a/meta/recipes-core/udev/udev/0001-configure.ac-use-PKG_CONFIG_SYSROOT_PATH-when-findin.patch b/meta/recipes-core/udev/udev/0001-configure.ac-use-PKG_CONFIG_SYSROOT_PATH-when-findin.patch
new file mode 100644
index 0000000..658e924
--- /dev/null
+++ b/meta/recipes-core/udev/udev/0001-configure.ac-use-PKG_CONFIG_SYSROOT_PATH-when-findin.patch
@@ -0,0 +1,32 @@
+From 54fd0dfd3b2961afe8c1bcd06b9cdf08f9df0a92 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 29 Oct 2015 14:04:08 +0200
+Subject: [PATCH 1/2] configure.ac: use PKG_CONFIG_SYSROOT_PATH when finding
+ out the location of introspection binaries
+
+Upstream-Status: Inappropriate [upstream is dead]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0500313..689c6b9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -134,9 +134,9 @@ AC_ARG_ENABLE([introspection],
+ AS_IF([test "x$enable_introspection" = "xyes"], [
+        PKG_CHECK_MODULES([INTROSPECTION], [gobject-introspection-1.0 >= 0.6.2])
+        AC_DEFINE([ENABLE_INTROSPECTION], [1], [enable GObject introspection support])
+-       AC_SUBST([G_IR_SCANNER], [$($PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0)])
+-       AC_SUBST([G_IR_COMPILER], [$($PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0)])
+-       AC_SUBST([G_IR_GENERATE], [$($PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0)])
++       AC_SUBST([G_IR_SCANNER], [$PKG_CONFIG_SYSROOT_DIR$($PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0)])
++       AC_SUBST([G_IR_COMPILER], [$PKG_CONFIG_SYSROOT_DIR$($PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0)])
++       AC_SUBST([G_IR_GENERATE], [$PKG_CONFIG_SYSROOT_DIR$($PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0)])
+        AC_SUBST([GIRDIR], [$($PKG_CONFIG --define-variable=datadir=${datadir} --variable=girdir gobject-introspection-1.0)])
+        AC_SUBST([GIRTYPELIBDIR], [$($PKG_CONFIG --define-variable=libdir=${libdir} --variable=typelibdir gobject-introspection-1.0)])
+ ])
+-- 
+2.1.4
+
diff --git a/meta/recipes-core/udev/udev/0002-Makefile.am-use-libtool-when-running-g-ir-scanner.patch b/meta/recipes-core/udev/udev/0002-Makefile.am-use-libtool-when-running-g-ir-scanner.patch
new file mode 100644
index 0000000..b5373fc
--- /dev/null
+++ b/meta/recipes-core/udev/udev/0002-Makefile.am-use-libtool-when-running-g-ir-scanner.patch
@@ -0,0 +1,26 @@
+From 47bdabf2e07dee5e09d171653c2dbe9fee009a5b Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 29 Oct 2015 14:05:26 +0200
+Subject: [PATCH 2/2] Makefile.am: use --libtool when running g-ir-scanner
+
+Upstream-Status: Inappropriate [upstream is dead]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index 2e32e69..c7e7447 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -443,6 +443,7 @@ src/gudev/GUdev-1.0.gir: libgudev-1.0.la $(G_IR_SCANNER)
+ 		--warn-all \
+ 		--namespace GUdev \
+ 		--nsversion=1.0 \
++                --libtool=$(LIBTOOL) \
+ 		--include=GObject-2.0 \
+ 		--library=gudev-1.0 \
+ 		--library-path=$(top_builddir)/src \
+-- 
+2.1.4
+
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 11/29] vala: enable the use of vapigen by packages with vala support
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (9 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 10/29] udev: enable gobject introspection Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 12/29] gcr: enable generation of vapi files using vapigen Alexander Kanavin
                   ` (19 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Now that gobject-introspection is supported, generation of .vapi
files for develeloping Vala code against gobject-based libraries
should be supported as well.

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-devtools/vala/vala.inc                | 10 ++++++
 ...001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch | 38 ++++++++++++++++++++++
 meta/recipes-devtools/vala/vala_0.28.0.bb          |  4 ++-
 3 files changed, 51 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-devtools/vala/vala/0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch

diff --git a/meta/recipes-devtools/vala/vala.inc b/meta/recipes-devtools/vala/vala.inc
index 63056fd..a0ace39 100644
--- a/meta/recipes-devtools/vala/vala.inc
+++ b/meta/recipes-devtools/vala/vala.inc
@@ -3,6 +3,9 @@ DESCRIPTION = "Vala is a C#-like language dedicated to ease GObject programming.
 Vala compiles to plain C and has no runtime environment nor penalities whatsoever."
 SECTION = "devel"
 DEPENDS = "bison-native flex-native libxslt-native glib-2.0"
+
+# vala-native contains a native version of vapigen, which we use instead of the target one
+DEPENDS_append_class-target = " vala-native"
 BBCLASSEXTEND = "native"
 HOMEPAGE = "http://vala-project.org"
 LICENSE = "LGPLv2.1"
@@ -16,3 +19,10 @@ inherit autotools pkgconfig
 FILES_${PN} += "${datadir}/${BPN}-${SHRT_VER}/vapi ${libdir}/${BPN}-${SHRT_VER}/"
 FILES_${PN}-doc += "${datadir}/devhelp"
 FILES_${PN}-dbg += "${libdir}/${BPN}-${SHRT_VER}/.debug"
+
+SYSROOT_PREPROCESS_FUNCS_append_class-target += "vapigen_sysroot_preprocess"
+
+# Link native vapigen into target sysroot so that it is used when building vapi files.
+vapigen_sysroot_preprocess() {
+        ln -f -s ${STAGING_BINDIR_NATIVE}/vapigen* ${STAGING_BINDIR}
+}
diff --git a/meta/recipes-devtools/vala/vala/0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch b/meta/recipes-devtools/vala/vala/0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch
new file mode 100644
index 0000000..ecab0fc
--- /dev/null
+++ b/meta/recipes-devtools/vala/vala/0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch
@@ -0,0 +1,38 @@
+From dbb1c58e86f2af4613f3ac9571d9b163d4bca675 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 23 Oct 2015 16:13:54 +0300
+Subject: [PATCH] vapigen.m4: use $PKG_CONFIG_SYSROOT_DIR
+
+This is necessary in cross-compiling environments, where directories
+returned by pkg-config should be prefixed with sysroot location.
+
+Upstream-Status: Pending [review in oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ vapigen/vapigen.m4 | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/vapigen/vapigen.m4 b/vapigen/vapigen.m4
+index 2c435e7..6228991 100644
+--- a/vapigen/vapigen.m4
++++ b/vapigen/vapigen.m4
+@@ -82,12 +82,12 @@ AC_DEFUN([VAPIGEN_CHECK],
+ 
+   AS_CASE([$enable_vala],
+     [yes], [
+-      VAPIGEN=`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name`
+-      VAPIGEN_MAKEFILE=`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen
++      VAPIGEN=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=vapigen $vapigen_pkg_name`
++      VAPIGEN_MAKEFILE=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=datadir $vapigen_pkg_name`/vala/Makefile.vapigen
+       AS_IF([test "x$2" = "x"], [
+-          VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name`
++          VAPIGEN_VAPIDIR=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=vapidir $vapigen_pkg_name`
+         ], [
+-          VAPIGEN_VAPIDIR=`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name`
++          VAPIGEN_VAPIDIR=$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=vapidir_versioned $vapigen_pkg_name`
+         ])
+     ])
+ 
+-- 
+2.1.4
+
diff --git a/meta/recipes-devtools/vala/vala_0.28.0.bb b/meta/recipes-devtools/vala/vala_0.28.0.bb
index 120906c..de9a46b 100644
--- a/meta/recipes-devtools/vala/vala_0.28.0.bb
+++ b/meta/recipes-devtools/vala/vala_0.28.0.bb
@@ -1,6 +1,8 @@
 require ${BPN}.inc
 
-SRC_URI += " file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch"
+SRC_URI += " file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \
+             file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \
+"
 
 SRC_URI[md5sum] = "8d4ceac3451a0d5497e7be38e5e4c2ad"
 SRC_URI[sha256sum] = "0d9e3bd3f82145664875f7c29b2f544ba92d2814f75412948f774c0727fc977f"
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 12/29] gcr: enable generation of vapi files using vapigen
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (10 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 11/29] vala: enable the use of vapigen by packages with vala support Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 13/29] gdk-pixbuf: enable gobject introspection Alexander Kanavin
                   ` (18 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-gnome/gcr/gcr_3.16.0.bb | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-gnome/gcr/gcr_3.16.0.bb b/meta/recipes-gnome/gcr/gcr_3.16.0.bb
index 4c9fe2e..40c0fe8 100644
--- a/meta/recipes-gnome/gcr/gcr_3.16.0.bb
+++ b/meta/recipes-gnome/gcr/gcr_3.16.0.bb
@@ -5,9 +5,9 @@ BUGTRACKER = "https://bugzilla.gnome.org/"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
 
-DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt vala"
+DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt"
 
-inherit autotools gnomebase gtk-icon-cache gtk-doc
+inherit autotools gnomebase gtk-icon-cache gtk-doc vala
 
 SRC_URI[archive.md5sum] = "d5835680be0b6a838e02a528d5378d9c"
 SRC_URI[archive.sha256sum] = "ecfe8df41cc88158364bb15addc670b11e539fe844742983629ba2323888d075"
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 13/29] gdk-pixbuf: enable gobject introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (11 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 12/29] gcr: enable generation of vapi files using vapigen Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 14/29] gconf: enable gobject-introspection Alexander Kanavin
                   ` (17 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb
index 68f3850..02894fc 100644
--- a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb
+++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb
@@ -23,7 +23,7 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
 SRC_URI[md5sum] = "4fed0d54432f1b69fc6e66e608bd5542"
 SRC_URI[sha256sum] = "4853830616113db4435837992c0aebd94cbb993c44dc55063cee7f72a7bef8be"
 
-inherit autotools pkgconfig gettext pixbufcache ptest-gnome
+inherit autotools pkgconfig gettext pixbufcache ptest-gnome gobject-introspection
 
 LIBV = "2.10.0"
 
@@ -42,15 +42,12 @@ PACKAGECONFIG[jpeg2000] = "--with-libjasper,--without-libjasper,jasper"
 PACKAGECONFIG[gio-sniff] = "--enable-gio-sniffing,--disable-gio-sniffing,,shared-mime-info"
 PACKAGECONFIG[x11] = "--with-x11,--without-x11,virtual/libx11"
 
-EXTRA_OECONF = "--disable-introspection"
-
 PACKAGES =+ "${PN}-xlib"
 
 FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}"
 ALLOW_EMPTY_${PN}-xlib = "1"
 
-FILES_${PN} = "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \
-	${libdir}/lib*.so.*"
+FILES_${PN} += "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
 
 FILES_${PN}-dev += " \
 	${bindir}/gdk-pixbuf-csource \
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 14/29] gconf: enable gobject-introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (12 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 13/29] gdk-pixbuf: enable gobject introspection Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 15/29] gtk+: enable gobject introspection Alexander Kanavin
                   ` (16 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-gnome/gnome/gconf_3.2.6.bb | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-gnome/gnome/gconf_3.2.6.bb b/meta/recipes-gnome/gnome/gconf_3.2.6.bb
index 17fdafa..8bb5094 100644
--- a/meta/recipes-gnome/gnome/gconf_3.2.6.bb
+++ b/meta/recipes-gnome/gnome/gconf_3.2.6.bb
@@ -3,8 +3,8 @@ SECTION = "x11/gnome"
 LICENSE = "LGPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
 
-DEPENDS = "glib-2.0 dbus dbus-glib libxml2 intltool-native gobject-introspection-stub"
-DEPENDS_class-native = "glib-2.0-native dbus-native dbus-glib-native libxml2-native intltool-native gnome-common-native gobject-introspection-stub-native"
+DEPENDS = "glib-2.0 dbus dbus-glib libxml2 intltool-native"
+DEPENDS_class-native = "glib-2.0-native dbus-native dbus-glib-native libxml2-native intltool-native gnome-common-native gobject-introspection-native"
 
 
 inherit gnomebase gtk-doc gettext
@@ -20,7 +20,7 @@ SRC_URI[archive.sha256sum] = "1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4e
 S = "${WORKDIR}/GConf-${PV}"
 
 EXTRA_OECONF = "--enable-shared --disable-static --enable-debug=yes \
-                --disable-introspection --disable-orbit --with-openldap=no --disable-gtk"
+                --disable-orbit --with-openldap=no --disable-gtk"
 
 # Disable PolicyKit by default
 PACKAGECONFIG ??= ""
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 15/29] gtk+: enable gobject introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (13 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 14/29] gconf: enable gobject-introspection Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 16/29] gtk+3: enable gobject-introspection Alexander Kanavin
                   ` (15 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-gnome/gtk+/gtk+.inc | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-gnome/gtk+/gtk+.inc b/meta/recipes-gnome/gtk+/gtk+.inc
index a197b9d..3ccdbe8 100644
--- a/meta/recipes-gnome/gtk+/gtk+.inc
+++ b/meta/recipes-gnome/gtk+/gtk+.inc
@@ -25,13 +25,12 @@ PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS
 # without --with-gdktarget=directfb it will check for cairo-xlib which isn't available without X11 DISTRO_FEATURE
 PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb"
 
-inherit autotools gtk-doc pkgconfig update-alternatives gtk-immodules-cache
+inherit autotools gtk-doc pkgconfig update-alternatives gtk-immodules-cache gobject-introspection
 
 PACKAGES += "libgail gtk-demo"
 
-FILES_${PN} = "${bindir}/gtk-update-icon-cache-2.0 \
+FILES_${PN} += "${bindir}/gtk-update-icon-cache-2.0 \
 	${bindir}/gtk-query-immodules-2.0 \
-	${libdir}/lib*${SOLIBS} \
 	${datadir}/themes ${sysconfdir} \
 	${libdir}/gtk-2.0/${LIBV}/engines/libpixmap.so"
 
@@ -71,6 +70,10 @@ RRECOMMENDS_${PN}_libc-glibc = "${GTKGLIBC_RRECOMMENDS}"
 ALTERNATIVE_${PN} = "gtk-update-icon-cache"
 ALTERNATIVE_TARGET[gtk-update-icon-cache] = "${bindir}/gtk-update-icon-cache-2.0"
 
+do_compile_prepend() {
+        export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs"
+}
+
 do_install () {
 	autotools_do_install
 
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 16/29] gtk+3: enable gobject-introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (14 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 15/29] gtk+: enable gobject introspection Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 17/29] libsecret: enable generation of vapi files using vapigen Alexander Kanavin
                   ` (14 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-gnome/gtk+/gtk+3.inc | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/meta/recipes-gnome/gtk+/gtk+3.inc b/meta/recipes-gnome/gtk+/gtk+3.inc
index 22a40d8..b7d30a9 100644
--- a/meta/recipes-gnome/gtk+/gtk+3.inc
+++ b/meta/recipes-gnome/gtk+/gtk+3.inc
@@ -10,7 +10,7 @@ DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \
 
 LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+"
 
-inherit autotools pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings distro_features_check
+inherit autotools pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings distro_features_check gobject-introspection
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 
 # This should be in autotools.bbclass, but until something elses uses it putting
@@ -28,9 +28,12 @@ EXTRA_OECONF += " \
                  --disable-xinerama \
                  --enable-modules \
                  --disable-cups \
-                 --disable-introspection \
 "
 
+do_compile_prepend() {
+        export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs"
+}
+
 PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)} \
                    ${@bb.utils.contains("DISTRO_FEATURES", "opengl x11", "glx", "", d)} \
                    ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)}"
@@ -61,10 +64,9 @@ FILES_${PN}-demo = "${bindir}/gtk3-demo \
 # dependencies are present.
 RDEPENDS_${PN}-demo += "gdk-pixbuf-loader-png shared-mime-info"
 
-FILES_${PN} = "${bindir}/gtk-update-icon-cache-3.0 \
+FILES_${PN}_append = " ${bindir}/gtk-update-icon-cache-3.0 \
                ${bindir}/gtk-query-immodules-3.0 \
                ${bindir}/gtk-launch \
-               ${libdir}/lib*${SOLIBS} \
                ${datadir}/themes ${sysconfdir} ${datadir}/glib-2.0/schemas/ \
                ${libdir}/gtk-3.0/${LIBV}/engines/libpixmap.so \
                ${libdir}/gtk-3.0/modules/*.so"
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 17/29] libsecret: enable generation of vapi files using vapigen
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (15 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 16/29] gtk+3: enable gobject-introspection Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 18/29] clutter: enable gobject introspection Alexander Kanavin
                   ` (13 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-gnome/libsecret/libsecret_0.18.2.bb | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-gnome/libsecret/libsecret_0.18.2.bb b/meta/recipes-gnome/libsecret/libsecret_0.18.2.bb
index 8fc0018..707838c 100644
--- a/meta/recipes-gnome/libsecret/libsecret_0.18.2.bb
+++ b/meta/recipes-gnome/libsecret/libsecret_0.18.2.bb
@@ -2,9 +2,9 @@ SUMMARY = "libsecret is a library for storing and retrieving passwords and other
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6"
 
-inherit gnomebase gtk-doc
+inherit gnomebase gtk-doc vala
 
-DEPENDS = "glib-2.0 libgcrypt gettext-native"
+DEPENDS += "glib-2.0 libgcrypt gettext-native"
 
 EXTRA_OECONF += "--disable-manpages"
 
@@ -13,3 +13,8 @@ SRC_URI[archive.sha256sum] = "12fd288b012e1b2b1b54d586cd4c6507885715534644b4534b
 
 # http://errors.yoctoproject.org/Errors/Details/20228/
 ARM_INSTRUCTION_SET = "arm"
+
+# vapigen.m4 bundled with the tarball does not yet have our cross-compilation fixes
+do_configure_prepend() {
+    rm -f ${S}/build/m4/vapigen.m4
+}
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 18/29] clutter: enable gobject introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (16 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 17/29] libsecret: enable generation of vapi files using vapigen Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 19/29] vala.bbclass: remove pre-packaged vapigen.m4 from tarballs Alexander Kanavin
                   ` (12 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-graphics/clutter/clutter-1.0.inc     | 5 ++---
 meta/recipes-graphics/clutter/clutter-gst-3.0.inc | 4 +---
 meta/recipes-graphics/clutter/clutter-gtk-1.0.inc | 3 +--
 meta/recipes-graphics/cogl/cogl-1.0.inc           | 8 +++++---
 meta/recipes-graphics/mx/mx.inc                   | 5 ++---
 5 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/meta/recipes-graphics/clutter/clutter-1.0.inc b/meta/recipes-graphics/clutter/clutter-1.0.inc
index da21cee..0f059f9 100644
--- a/meta/recipes-graphics/clutter/clutter-1.0.inc
+++ b/meta/recipes-graphics/clutter/clutter-1.0.inc
@@ -2,7 +2,7 @@ SUMMARY = "Graphics library for creating hardware-accelerated user interfaces"
 HOMEPAGE = "http://www.clutter-project.org/"
 LICENSE = "LGPLv2.1+"
 
-inherit clutter ptest-gnome
+inherit clutter ptest-gnome gobject-introspection
 
 DEPENDS = "pango glib-2.0 json-glib atk udev cogl-1.0"
 PACKAGE_BEFORE_PN += "${PN}-examples"
@@ -17,8 +17,7 @@ EDEPENDS_EVDEV = "libxkbcommon"
 ERDEPENDS_EVDEV = "xkeyboard-config"
 
 # Disable pretty much everything, override in platform specific set up
-EXTRA_OECONF += "--disable-introspection	\
-	     	 --disable-quartz-backend	\
+EXTRA_OECONF += "--disable-quartz-backend	\
 	     	 --disable-win32-backend	\
 	     	 --disable-gdk-backend		\
 	     	 --disable-cex100-backend	\
diff --git a/meta/recipes-graphics/clutter/clutter-gst-3.0.inc b/meta/recipes-graphics/clutter/clutter-gst-3.0.inc
index d4fed71..b184e0f 100644
--- a/meta/recipes-graphics/clutter/clutter-gst-3.0.inc
+++ b/meta/recipes-graphics/clutter/clutter-gst-3.0.inc
@@ -2,7 +2,7 @@ SUMMARY = "GStreamer integration library for Clutter"
 HOMEPAGE = "http://www.clutter-project.org/"
 LICENSE = "LGPLv2+"
 
-inherit clutter
+inherit clutter gobject-introspection
 
 SRC_URI += "file://0001-Install-example-binary-needed-for-core-image-clutter.patch"
 
@@ -10,8 +10,6 @@ DEPENDS = "gstreamer1.0-plugins-base gstreamer1.0-plugins-bad clutter-1.0"
 RDEPENDS_${PN} += "gstreamer1.0-meta-base"
 PACKAGES  =+ "${PN}-examples"
 
-EXTRA_OECONF += "--disable-introspection"
-
 FILES_${PN}          += "${libdir}/gstreamer-1.0/lib*.so"
 FILES_${PN}-dev      += "${libdir}/gstreamer-1.0/*.la"
 FILES_${PN}-dbg      += "${libdir}/gstreamer-1.0/.debug/lib*.so"
diff --git a/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc b/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc
index 45898b4..f411cfe 100644
--- a/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc
+++ b/meta/recipes-graphics/clutter/clutter-gtk-1.0.inc
@@ -2,11 +2,10 @@ SUMMARY = "Library for embedding a Clutter canvas in a GTK+ application"
 HOMEPAGE = "http://www.clutter-project.org/"
 LICENSE = "LGPLv2+"
 
-inherit clutter
+inherit clutter gobject-introspection
 
 DEPENDS = "clutter-1.0 gtk+3"
 PACKAGES  =+ "${PN}-examples"
 AUTOTOOLS_AUXDIR = "${S}/build"
 
-EXTRA_OECONF += "--disable-introspection"
 
diff --git a/meta/recipes-graphics/cogl/cogl-1.0.inc b/meta/recipes-graphics/cogl/cogl-1.0.inc
index 3da31c8..11425f9 100644
--- a/meta/recipes-graphics/cogl/cogl-1.0.inc
+++ b/meta/recipes-graphics/cogl/cogl-1.0.inc
@@ -2,7 +2,7 @@ SUMMARY = "Modern 3D graphics API with associated utility APIs"
 HOMEPAGE = "http://wiki.clutter-project.org/wiki/Cogl"
 LICENSE = "MIT"
 
-inherit clutter
+inherit clutter gobject-introspection
 
 DEPENDS = "glib-2.0 gdk-pixbuf"
 PACKAGES =+ "${PN}-examples \
@@ -24,8 +24,7 @@ ERDEPENDS_GL    = "libgl"
 ERDEPENDS_GLES2 = "libgles2"
 
 # GLESv1 is rarely tested, so disable it
-EXTRA_OECONF += "--disable-introspection	\
-	       	 --enable-examples-install	\
+EXTRA_OECONF += "--enable-examples-install	\
 	       	 --enable-debug		 	\
 	       	 --disable-gles1		\
 	         --disable-cairo                \
@@ -56,6 +55,9 @@ PACKAGECONFIG ??= "cogl-pango gles2 \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx egl-x11', '', d)} \
                    "
 
+do_compile_prepend() {
+        export GIR_EXTRA_LIBS_PATH="${B}/cogl/.libs"
+}
 
 FILES_${PN}-examples = "${bindir}/* ${datadir}/cogl/examples-data/*"
 FILES_libcogl = "${libdir}/libcogl${SOLIBS}"
diff --git a/meta/recipes-graphics/mx/mx.inc b/meta/recipes-graphics/mx/mx.inc
index ee7f186..024c4cf 100644
--- a/meta/recipes-graphics/mx/mx.inc
+++ b/meta/recipes-graphics/mx/mx.inc
@@ -1,14 +1,13 @@
 SUMMARY = "Clutter based UI widget library"
 LICENSE = "LGPLv2.1"
 
-inherit clutter autotools-brokensep
+inherit clutter autotools-brokensep gobject-introspection
 
 DEPENDS = "clutter-1.0 dbus-glib gdk-pixbuf"
 
 SRC_URI = "http://source.clutter-project.org/sources/mx/${@get_verdir("${PV}")}/mx-${PV}.tar.xz"
 
-EXTRA_OECONF = "--disable-introspection		\
-	        --disable-gtk-doc		\
+EXTRA_OECONF = "--disable-gtk-doc		\
 	        --disable-gtk-widgets		\
 		--with-dbus			\
 		--with-winsys=none		\
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 19/29] vala.bbclass: remove pre-packaged vapigen.m4 from tarballs
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (17 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 18/29] clutter: enable gobject introspection Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 20/29] libsoup-2.4: enable gobject introspection Alexander Kanavin
                   ` (11 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

We need to make sure that our fixed vapigen.m4 is used instead.

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/classes/vala.bbclass | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/meta/classes/vala.bbclass b/meta/classes/vala.bbclass
index 9ff664a..615eb37 100644
--- a/meta/classes/vala.bbclass
+++ b/meta/classes/vala.bbclass
@@ -16,3 +16,9 @@ FILES_${PN}-dev += "\
     ${datadir}/vala/vapi/*.deps \
     ${datadir}/gir-1.0 \
 "
+
+# Remove vapigen.m4 that is bundled with tarballs
+# because it does not yet have our cross-compile fixes
+do_configure_prepend() {
+        rm -f ${S}/m4/vapigen.m4
+}
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 20/29] libsoup-2.4: enable gobject introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (18 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 19/29] vala.bbclass: remove pre-packaged vapigen.m4 from tarballs Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 21/29] at-spi2-core: " Alexander Kanavin
                   ` (10 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-support/libsoup/libsoup-2.4_2.50.0.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-support/libsoup/libsoup-2.4_2.50.0.bb b/meta/recipes-support/libsoup/libsoup-2.4_2.50.0.bb
index 044db31..a409da3 100644
--- a/meta/recipes-support/libsoup/libsoup-2.4_2.50.0.bb
+++ b/meta/recipes-support/libsoup/libsoup-2.4_2.50.0.bb
@@ -22,7 +22,7 @@ SRC_URI[sha256sum] = "1e01365ac4af3817187ea847f9d3588c27eee01fc519a5a7cb212bb78b
 
 S = "${WORKDIR}/libsoup-${PV}"
 
-inherit autotools gettext pkgconfig
+inherit autotools gettext pkgconfig gobject-introspection
 
 # glib-networking is needed for SSL, proxies, etc.
 RRECOMMENDS_${PN} = "glib-networking"
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 21/29] at-spi2-core: enable gobject introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (19 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 20/29] libsoup-2.4: enable gobject introspection Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 22/29] gstreamer: " Alexander Kanavin
                   ` (9 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-support/atk/at-spi2-core_2.16.0.bb | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-support/atk/at-spi2-core_2.16.0.bb b/meta/recipes-support/atk/at-spi2-core_2.16.0.bb
index 7c12b54..2e9ce79 100644
--- a/meta/recipes-support/atk/at-spi2-core_2.16.0.bb
+++ b/meta/recipes-support/atk/at-spi2-core_2.16.0.bb
@@ -13,11 +13,11 @@ SRC_URI[sha256sum] = "1c0b77fb8ce81abbf1d80c0afee9858b3f9229f673b7881995fe0fc16b
 
 DEPENDS = "dbus glib-2.0 virtual/libx11 libxi libxtst intltool-native gettext-native"
 
-inherit autotools gtk-doc pkgconfig distro_features_check
+inherit autotools gtk-doc pkgconfig distro_features_check gobject-introspection
 # depends on virtual/libx11
 REQUIRED_DISTRO_FEATURES = "x11"
 
-EXTRA_OECONF = "--disable-introspection --disable-xevie --with-dbus-daemondir=${bindir}"
+EXTRA_OECONF = "--disable-xevie --with-dbus-daemondir=${bindir}"
 
 FILES_${PN} += "${datadir}/dbus-1/services/*.service \
                 ${datadir}/dbus-1/accessibility-services/*.service"
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 22/29] gstreamer: enable gobject introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (20 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 21/29] at-spi2-core: " Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 23/29] gnomebase.bbclass: " Alexander Kanavin
                   ` (8 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 .../recipes-multimedia/gstreamer/gst-player_git.bb |   2 +-
 .../gstreamer/gst-plugins-package.inc              |   1 +
 ...-don-t-hardcode-libtool-name-when-running.patch |  42 +++
 .../gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb    |   1 +
 .../gstreamer/gstreamer1.0-plugins-base.inc        |   4 +
 ...-don-t-hardcode-libtool-name-when-running.patch | 168 ++++++++++++
 ...-prefix-calls-to-pkg-config-with-PKG_CONF.patch | 298 +++++++++++++++++++++
 ...ssing-include-directories-when-calling-in.patch |  28 ++
 ...ncorrect-reference-to-gstreamer-sdp-in-Ma.patch |  27 ++
 .../gstreamer/gstreamer1.0-plugins-base_1.4.5.bb   |   4 +
 .../gstreamer/gstreamer1.0-plugins.inc             |  10 +-
 .../gstreamer/gstreamer1.0-rtsp-server.inc         |   9 +-
 ...ode-libtool-name-when-using-introspection.patch |  27 ++
 .../gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb    |   2 +
 meta/recipes-multimedia/gstreamer/gstreamer1.0.inc |  12 +-
 15 files changed, 630 insertions(+), 5 deletions(-)
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch

diff --git a/meta/recipes-multimedia/gstreamer/gst-player_git.bb b/meta/recipes-multimedia/gstreamer/gst-player_git.bb
index 9850242..418324a 100644
--- a/meta/recipes-multimedia/gstreamer/gst-player_git.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-player_git.bb
@@ -16,7 +16,7 @@ SRCREV = "5386c5b984d40ef5434673ed62204e69aaf52645"
 
 S = "${WORKDIR}/git"
 
-inherit autotools gtk-doc lib_package pkgconfig distro_features_check
+inherit autotools gtk-doc lib_package pkgconfig distro_features_check gobject-introspection
 
 ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
 
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
index cb1be06..cabf56f 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
@@ -8,6 +8,7 @@ python split_gstreamer10_packages () {
 
     do_split_packages(d, glibdir, '^lib(.*)\.so\.*', 'lib%s', 'gstreamer %s library', extra_depends='', allow_links=True)
     do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer plugin for %s', postinst=postinst, extra_depends='')
+    do_split_packages(d, glibdir+'/girepository-1.0', 'Gst(.*)-1.0\.typelib$', d.expand('${PN}-%s-typelib'), 'GStreamer typelib file for %s', postinst=postinst, extra_depends='')
     do_split_packages(d, gst_libdir, 'libgst(.*)\.la$', d.expand('${PN}-%s-dev'), 'GStreamer plugin for %s (development files)', extra_depends=d.expand('${PN}-dev'))
     do_split_packages(d, gst_libdir, 'libgst(.*)\.a$', d.expand('${PN}-%s-staticdev'), 'GStreamer plugin for %s (static development files)', extra_depends=d.expand('${PN}-staticdev'))
 }
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
new file mode 100644
index 0000000..10f0220
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
@@ -0,0 +1,42 @@
+From 2eb24d8cd90002c7c1bf202598fa9db29ca03450 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 27 Oct 2015 14:36:58 +0200
+Subject: [PATCH] Makefile.am: don't hardcode libtool name when running
+ introspection tools
+
+Upstream-Status: Pending [review on oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gst-libs/gst/insertbin/Makefile.am | 2 +-
+ gst-libs/gst/mpegts/Makefile.am    | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gst-libs/gst/insertbin/Makefile.am b/gst-libs/gst/insertbin/Makefile.am
+index 6379a0b..315f034 100644
+--- a/gst-libs/gst/insertbin/Makefile.am
++++ b/gst-libs/gst/insertbin/Makefile.am
+@@ -43,7 +43,7 @@ GstInsertBin-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstinsertbin-@GS
+ 		--library=libgstinsertbin-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstBase-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg gstreamer-base-@GST_API_VERSION@ \
+ 		--pkg-export gstreamer-insertbin-@GST_API_VERSION@ \
+diff --git a/gst-libs/gst/mpegts/Makefile.am b/gst-libs/gst/mpegts/Makefile.am
+index 0cee304..37caf0d 100644
+--- a/gst-libs/gst/mpegts/Makefile.am
++++ b/gst-libs/gst/mpegts/Makefile.am
+@@ -78,7 +78,7 @@ GstMpegts-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstmpegts-@GST_API_
+ 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-video-@GST_API_VERSION@` \
+ 		--library=libgstmpegts-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg gstreamer-video-@GST_API_VERSION@ \
+ 		--pkg-export gstreamer-mpegts-@GST_API_VERSION@ \
+-- 
+2.1.4
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb
index 6873669..bfa1377 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb
@@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \
 
 SRC_URI += "file://0001-gl-do-not-check-for-GL-GLU-EGL-GLES2-libs-if-disable.patch \
            file://0001-glimagesink-Downrank-to-marginal.patch \
+           file://0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch \
            "
 
 SRC_URI[md5sum] = "e0bb39412cf4a48fe0397bcf3a7cd451"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
index 47f3f40..13cd9d5 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
@@ -37,3 +37,7 @@ EXTRA_OECONF += " \
 FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict"
 
 CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no"
+
+do_compile_prepend() {
+        export GIR_EXTRA_LIBS_PATH="${B}/gst-libs/gst/tag/.libs:${B}/gst-libs/gst/video/.libs:${B}/gst-libs/gst/audio/.libs"
+}
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
new file mode 100644
index 0000000..ef602d1
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
@@ -0,0 +1,168 @@
+From 7e25c76b811b07a691b0eb90f5ad049087501d61 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 26 Oct 2015 16:34:07 +0200
+Subject: [PATCH 1/4] Makefile.am: don't hardcode libtool name when running
+ introspection tools
+
+Upstream-Status: Pending [review on oe-core maillist]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gst-libs/gst/allocators/Makefile.am | 2 +-
+ gst-libs/gst/app/Makefile.am        | 2 +-
+ gst-libs/gst/audio/Makefile.am      | 2 +-
+ gst-libs/gst/fft/Makefile.am        | 2 +-
+ gst-libs/gst/pbutils/Makefile.am    | 2 +-
+ gst-libs/gst/riff/Makefile.am       | 2 +-
+ gst-libs/gst/rtp/Makefile.am        | 2 +-
+ gst-libs/gst/rtsp/Makefile.am       | 2 +-
+ gst-libs/gst/sdp/Makefile.am        | 2 +-
+ gst-libs/gst/tag/Makefile.am        | 2 +-
+ gst-libs/gst/video/Makefile.am      | 2 +-
+ 11 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makefile.am
+index c550ab0..f2b045e 100644
+--- a/gst-libs/gst/allocators/Makefile.am
++++ b/gst-libs/gst/allocators/Makefile.am
+@@ -35,7 +35,7 @@ GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@
+ 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ 		--library=libgstallocators-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg-export gstreamer-allocators-@GST_API_VERSION@ \
+ 		--output $@ \
+diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am
+index e89057a..512a1b8 100644
+--- a/gst-libs/gst/app/Makefile.am
++++ b/gst-libs/gst/app/Makefile.am
+@@ -52,7 +52,7 @@ GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSIO
+ 		--library=libgstapp-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstBase-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg gstreamer-base-@GST_API_VERSION@ \
+ 		--pkg-export gstreamer-app-@GST_API_VERSION@ \
+diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am
+index 0e67b9b..350f922 100644
+--- a/gst-libs/gst/audio/Makefile.am
++++ b/gst-libs/gst/audio/Makefile.am
+@@ -103,7 +103,7 @@ GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VE
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstBase-@GST_API_VERSION@ \
+ 		--include=GstTag-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg gstreamer-base-@GST_API_VERSION@ \
+ 		--pkg-export gstreamer-audio-@GST_API_VERSION@ \
+diff --git a/gst-libs/gst/fft/Makefile.am b/gst-libs/gst/fft/Makefile.am
+index 99c71ba..c1bdbda 100644
+--- a/gst-libs/gst/fft/Makefile.am
++++ b/gst-libs/gst/fft/Makefile.am
+@@ -64,7 +64,7 @@ GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSIO
+ 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ 		--library=libgstfft-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg-export gstreamer-fft-@GST_API_VERSION@ \
+ 		--output $@ \
+diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am
+index c0f0091..42ea274 100644
+--- a/gst-libs/gst/pbutils/Makefile.am
++++ b/gst-libs/gst/pbutils/Makefile.am
+@@ -94,7 +94,7 @@ GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_AP
+ 		--include=GstTag-@GST_API_VERSION@ \
+ 		--include=GstVideo-@GST_API_VERSION@ \
+ 		--include=GstAudio-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg gstreamer-tag-@GST_API_VERSION@ \
+ 		--pkg gstreamer-video-@GST_API_VERSION@ \
+diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am
+index 974efd4..c7cb581 100644
+--- a/gst-libs/gst/riff/Makefile.am
++++ b/gst-libs/gst/riff/Makefile.am
+@@ -42,7 +42,7 @@ GstRiff-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstriff-@GST_API_VERS
+ 		--include=GstAudio-@GST_API_VERSION@ \
+ 		--include=GstTag-@GST_API_VERSION@ \
+ 		--include=Gst-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg gstreamer-tag-@GST_API_VERSION@ \
+ 		--pkg gstreamer-audio-@GST_API_VERSION@ \
+diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am
+index 15126ff..24e77c8 100644
+--- a/gst-libs/gst/rtp/Makefile.am
++++ b/gst-libs/gst/rtp/Makefile.am
+@@ -44,7 +44,7 @@ GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSIO
+ 		--library=libgstrtp-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstBase-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg gstreamer-base-@GST_API_VERSION@ \
+ 		--pkg-export gstreamer-rtp-@GST_API_VERSION@ \
+diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
+index b6e1e9d..1120051 100644
+--- a/gst-libs/gst/rtsp/Makefile.am
++++ b/gst-libs/gst/rtsp/Makefile.am
+@@ -72,7 +72,7 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS
+ 		--include=Gio-2.0 \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstSdp-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gio-2.0 \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg gstreamer-sdp-@GST_API_VERSION@ \
+diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am
+index e15fa93..53d1dbc 100644
+--- a/gst-libs/gst/sdp/Makefile.am
++++ b/gst-libs/gst/sdp/Makefile.am
+@@ -31,7 +31,7 @@ GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSIO
+ 		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ 		--library=libgstsdp-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg-export gstreamer-sdp-@GST_API_VERSION@ \
+ 		--output $@ \
+diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am
+index 1883636..e6dd9ea 100644
+--- a/gst-libs/gst/tag/Makefile.am
++++ b/gst-libs/gst/tag/Makefile.am
+@@ -44,7 +44,7 @@ GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSIO
+ 		--library=libgsttag-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstBase-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg gstreamer-base-@GST_API_VERSION@ \
+ 		--pkg-export gstreamer-tag-@GST_API_VERSION@ \
+diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am
+index 3932947..2fd5882 100644
+--- a/gst-libs/gst/video/Makefile.am
++++ b/gst-libs/gst/video/Makefile.am
+@@ -100,7 +100,7 @@ GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VE
+ 		--library=libgstvideo-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstBase-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg gstreamer-base-@GST_API_VERSION@ \
+ 		--pkg-export gstreamer-video-@GST_API_VERSION@ \
+-- 
+2.1.4
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch
new file mode 100644
index 0000000..677c55a
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch
@@ -0,0 +1,298 @@
+From b616d1cad28e34dbcfa9ab43a5f7420ccf87b1bb Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 26 Oct 2015 16:38:18 +0200
+Subject: [PATCH 2/4] Makefile.am: prefix calls to pkg-config with
+ PKG_CONFIG_SYSROOT_DIR
+
+Upstream-Status: Pending [review on oe-core maillist]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gst-libs/gst/allocators/Makefile.am |  4 ++--
+ gst-libs/gst/app/Makefile.am        |  4 ++--
+ gst-libs/gst/audio/Makefile.am      | 12 ++++++------
+ gst-libs/gst/fft/Makefile.am        |  4 ++--
+ gst-libs/gst/pbutils/Makefile.am    | 12 ++++++------
+ gst-libs/gst/riff/Makefile.am       |  8 ++++----
+ gst-libs/gst/rtp/Makefile.am        |  8 ++++----
+ gst-libs/gst/rtsp/Makefile.am       |  4 ++--
+ gst-libs/gst/sdp/Makefile.am        |  4 ++--
+ gst-libs/gst/tag/Makefile.am        |  8 ++++----
+ gst-libs/gst/video/Makefile.am      |  8 ++++----
+ 11 files changed, 38 insertions(+), 38 deletions(-)
+
+diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makefile.am
+index f2b045e..24825d9 100644
+--- a/gst-libs/gst/allocators/Makefile.am
++++ b/gst-libs/gst/allocators/Makefile.am
+@@ -32,7 +32,7 @@ GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@
+ 		--c-include "gst/allocators/allocators.h" \
+ 		-I$(top_srcdir)/gst-libs \
+ 		-I$(top_builddir)/gst-libs \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ 		--library=libgstallocators-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--libtool="$(LIBTOOL)" \
+@@ -56,7 +56,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+ 		--includedir=$(builddir) \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ 		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
+diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am
+index 512a1b8..91b2f0e 100644
+--- a/gst-libs/gst/app/Makefile.am
++++ b/gst-libs/gst/app/Makefile.am
+@@ -47,8 +47,8 @@ GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSIO
+ 		--c-include "gst/app/app.h" \
+ 		-I$(top_srcdir)/gst-libs \
+ 		-I$(top_builddir)/gst-libs \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ 		--library=libgstapp-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstBase-@GST_API_VERSION@ \
+diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am
+index 350f922..ac43b19 100644
+--- a/gst-libs/gst/audio/Makefile.am
++++ b/gst-libs/gst/audio/Makefile.am
+@@ -93,12 +93,12 @@ GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VE
+ 		-I$(top_srcdir)/gst-libs \
+ 		-I$(top_builddir)/gst-libs \
+ 		--c-include "gst/audio/audio.h" \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ 		--add-include-path="$(top_builddir)/gst-libs/gst/tag/" \
+ 		--library=libgstaudio-@GST_API_VERSION@.la \
+-		--library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
+-		--library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
++		--library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
++		--library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
+ 		--library-path="$(top_builddir)/gst-libs/gst/tag/" \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstBase-@GST_API_VERSION@ \
+@@ -127,8 +127,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 		--includedir=$(srcdir) \
+ 		--includedir=$(builddir) \
+ 		--includedir="$(top_builddir)/gst-libs/gst/tag/" \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ 		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
+diff --git a/gst-libs/gst/fft/Makefile.am b/gst-libs/gst/fft/Makefile.am
+index c1bdbda..3527352 100644
+--- a/gst-libs/gst/fft/Makefile.am
++++ b/gst-libs/gst/fft/Makefile.am
+@@ -61,7 +61,7 @@ GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSIO
+ 		--c-include "gst/fft/fft.h" \
+ 		-I$(top_srcdir)/gst-libs \
+ 		-I$(top_builddir)/gst-libs \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ 		--library=libgstfft-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--libtool="$(LIBTOOL)" \
+@@ -85,7 +85,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+ 		--includedir=$(builddir) \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ 		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
+diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am
+index 42ea274..54b3103 100644
+--- a/gst-libs/gst/pbutils/Makefile.am
++++ b/gst-libs/gst/pbutils/Makefile.am
+@@ -79,14 +79,14 @@ GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_AP
+ 		--c-include "gst/pbutils/pbutils.h" \
+ 		-I$(top_srcdir)/gst-libs \
+ 		-I$(top_builddir)/gst-libs \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ 		--add-include-path="$(top_builddir)/gst-libs/gst/tag/" \
+ 		--add-include-path="$(top_builddir)/gst-libs/gst/video/" \
+ 		--add-include-path="$(top_builddir)/gst-libs/gst/audio/" \
+ 		--library=libgstpbutils-@GST_API_VERSION@.la \
+-		--library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
+-		--library-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
++		--library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-@GST_API_VERSION@` \
++		--library-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=libdir gstreamer-base-@GST_API_VERSION@` \
+ 		--library-path="$(top_builddir)/gst-libs/gst/tag/" \
+ 		--library-path="$(top_builddir)/gst-libs/gst/video/" \
+ 		--library-path="$(top_builddir)/gst-libs/gst/audio/" \
+@@ -119,8 +119,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+ 		--includedir=$(builddir) \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ 		--includedir="$(top_builddir)/gst-libs/gst/tag/" \
+ 		--includedir="$(top_builddir)/gst-libs/gst/video/" \
+ 		--includedir="$(top_builddir)/gst-libs/gst/audio/" \
+diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am
+index c7cb581..009e86a 100644
+--- a/gst-libs/gst/riff/Makefile.am
++++ b/gst-libs/gst/riff/Makefile.am
+@@ -36,8 +36,8 @@ GstRiff-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstriff-@GST_API_VERS
+ 		--c-include "gst/riff/riff.h" \
+ 		--add-include-path=$(builddir)/../tag \
+ 		--add-include-path=$(builddir)/../audio \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ 		--library=libgstriff-@GST_API_VERSION@.la \
+ 		--include=GstAudio-@GST_API_VERSION@ \
+ 		--include=GstTag-@GST_API_VERSION@ \
+@@ -68,8 +68,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 		--includedir=$(builddir) \
+ 		--includedir=$(builddir)/../tag \
+ 		--includedir=$(builddir)/../audio \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ 		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
+diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am
+index 24e77c8..3c07a6f 100644
+--- a/gst-libs/gst/rtp/Makefile.am
++++ b/gst-libs/gst/rtp/Makefile.am
+@@ -39,8 +39,8 @@ GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSIO
+ 		--warn-all \
+ 		--c-include "gst/rtp/rtp.h" \
+ 		-I$(top_srcdir)/gst-libs \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ 		--library=libgstrtp-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstBase-@GST_API_VERSION@ \
+@@ -67,8 +67,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+ 		--includedir=$(builddir) \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ 		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
+diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
+index 1120051..274529a 100644
+--- a/gst-libs/gst/rtsp/Makefile.am
++++ b/gst-libs/gst/rtsp/Makefile.am
+@@ -67,7 +67,7 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS
+ 		-I$(top_builddir)/gst-libs \
+ 		-I$(top_srcdir)/gst-libs \
+ 		--add-include-path=$(builddir)/../sdp \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ 		--library=libgstrtsp-@GST_API_VERSION@.la \
+ 		--include=Gio-2.0 \
+ 		--include=Gst-@GST_API_VERSION@ \
+@@ -97,7 +97,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 		--includedir=$(srcdir) \
+ 		--includedir=$(builddir) \
+ 		--includedir=$(builddir)/../sdp \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ 		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
+diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am
+index 53d1dbc..31a7768 100644
+--- a/gst-libs/gst/sdp/Makefile.am
++++ b/gst-libs/gst/sdp/Makefile.am
+@@ -28,7 +28,7 @@ GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSIO
+ 		--warn-all \
+ 		--c-include "gst/sdp/sdp.h" \
+ 		-I$(top_srcdir)/gst-libs \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ 		--library=libgstsdp-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--libtool="$(LIBTOOL)" \
+@@ -52,7 +52,7 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+ 		--includedir=$(builddir) \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+ 		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
+diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am
+index e6dd9ea..e7fe84e 100644
+--- a/gst-libs/gst/tag/Makefile.am
++++ b/gst-libs/gst/tag/Makefile.am
+@@ -39,8 +39,8 @@ GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSIO
+ 		--c-include "gst/tag/tag.h" \
+ 		-I$(top_srcdir)/gst-libs \
+ 		-I$(top_builddir)/gst-libs \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ 		--library=libgsttag-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstBase-@GST_API_VERSION@ \
+@@ -67,8 +67,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+ 		--includedir=$(builddir) \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ 		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
+diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am
+index 2fd5882..b7fb599 100644
+--- a/gst-libs/gst/video/Makefile.am
++++ b/gst-libs/gst/video/Makefile.am
+@@ -95,8 +95,8 @@ GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VE
+ 		--c-include "gst/video/video.h" \
+ 		-I$(top_srcdir)/gst-libs \
+ 		-I$(top_builddir)/gst-libs \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-		--add-include-path=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ 		--library=libgstvideo-@GST_API_VERSION@.la \
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstBase-@GST_API_VERSION@ \
+@@ -123,8 +123,8 @@ typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
+ 		$(INTROSPECTION_COMPILER) \
+ 		--includedir=$(srcdir) \
+ 		--includedir=$(builddir) \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
++		--includedir=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
+ 		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+ 
+ CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
+-- 
+2.1.4
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch
new file mode 100644
index 0000000..cb4e688
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch
@@ -0,0 +1,28 @@
+From 08871a79a46685fbf3555987330ff80ba74885b1 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 26 Oct 2015 17:29:37 +0200
+Subject: [PATCH 3/4] riff: add missing include directories when calling
+ introspection scanner
+
+Upstream-Status: Pending [review on oe-core maillist]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gst-libs/gst/riff/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am
+index 009e86a..ba40f87 100644
+--- a/gst-libs/gst/riff/Makefile.am
++++ b/gst-libs/gst/riff/Makefile.am
+@@ -34,6 +34,8 @@ GstRiff-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstriff-@GST_API_VERS
+ 		--strip-prefix=Gst \
+ 		--warn-all \
+ 		--c-include "gst/riff/riff.h" \
++                -I$(top_srcdir)/gst-libs \
++                -I$(top_builddir)/gst-libs \
+ 		--add-include-path=$(builddir)/../tag \
+ 		--add-include-path=$(builddir)/../audio \
+ 		--add-include-path=$(PKG_CONFIG_SYSROOT_DIR)`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-@GST_API_VERSION@` \
+-- 
+2.1.4
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch
new file mode 100644
index 0000000..6cf280b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch
@@ -0,0 +1,27 @@
+From 485294933e166c053903db524a03b3d1eed73e44 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 26 Oct 2015 17:30:14 +0200
+Subject: [PATCH 4/4] rtsp: drop incorrect reference to gstreamer-sdp in
+ Makefile.am
+
+Upstream-Status: Pending [review on oe-core maillist]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gst-libs/gst/rtsp/Makefile.am | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
+index 274529a..e2fb948 100644
+--- a/gst-libs/gst/rtsp/Makefile.am
++++ b/gst-libs/gst/rtsp/Makefile.am
+@@ -75,7 +75,6 @@ GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERS
+ 		--libtool="$(LIBTOOL)" \
+ 		--pkg gio-2.0 \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+-		--pkg gstreamer-sdp-@GST_API_VERSION@ \
+ 		--pkg-export gstreamer-rtsp-@GST_API_VERSION@ \
+ 		--add-init-section="gst_init(NULL,NULL);" \
+ 		--output $@ \
+-- 
+2.1.4
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb
index b09c2cb..e996123 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb
@@ -22,6 +22,10 @@ SRC_URI += "file://do-not-change-eos-event-to-gap-event-if.patch \
             file://0003-ssaparse-enhance-SSA-text-lines-parsing.patch \
             file://0004-subparse-set-need_segment-after-sink-pad-received-GS.patch \
             file://encodebin-Need-more-buffers-in-output-queue-for-bett.patch \
+            file://0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch \
+            file://0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch \
+            file://0003-riff-add-missing-include-directories-when-calling-in.patch \
+            file://0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch \
 "
 
 SRC_URI[md5sum] = "357165af625c0ca353ab47c5d843920e"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc
index f1783b7..7f2a063 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc
@@ -4,7 +4,7 @@ BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
 SECTION = "multimedia"
 DEPENDS = "gstreamer1.0"
 
-inherit autotools pkgconfig
+inherit autotools pkgconfig gobject-introspection
 
 GSTREAMER_1_0_DEBUG ?= "--disable-debug"
 GSTREAMER_1_0_GIT_BRANCH ?= "master"
@@ -55,5 +55,11 @@ delete_liblink_m4_file() {
 	rm "${S}/m4/lib-link.m4" || true
 }
 
-do_configure[prefuncs] += " delete_liblink_m4_file "
+delete_pkg_m4_file() {
+	# This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection
+	rm "${S}/common/m4/pkg.m4" || true
+}
+
+do_configure[prefuncs] += " delete_liblink_m4_file delete_pkg_m4_file"
+
 
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc
index 28a9420..ebdfe20 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server.inc
@@ -10,5 +10,12 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz
 
 S = "${WORKDIR}/${PNREAL}-${PV}"
 
-inherit autotools pkgconfig 
+inherit autotools pkgconfig gobject-introspection
+
+delete_pkg_m4_file() {
+        # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection
+        rm "${S}/common/m4/pkg.m4" || true
+}
+
+do_configure[prefuncs] += " delete_pkg_m4_file"
 
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch
new file mode 100644
index 0000000..89d6384
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch
@@ -0,0 +1,27 @@
+From 4a12569e5ae5be63cd92a9b178860026a99746b1 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 27 Oct 2015 16:55:45 +0200
+Subject: [PATCH] Don't hardcode libtool name when using introspection
+
+Upstream-Status: Pending [review on oe-core maillist]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gst/rtsp-server/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gst/rtsp-server/Makefile.am b/gst/rtsp-server/Makefile.am
+index 4fcd366..c67f5ab 100644
+--- a/gst/rtsp-server/Makefile.am
++++ b/gst/rtsp-server/Makefile.am
+@@ -87,7 +87,7 @@ GstRtspServer-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtspserver-@
+ 		--include=Gst-@GST_API_VERSION@ \
+ 		--include=GstRtsp-@GST_API_VERSION@ \
+ 		--include=GstNet-@GST_API_VERSION@ \
+-		--libtool="$(top_builddir)/libtool" \
++		--libtool="$(LIBTOOL)" \
+ 		--pkg gstreamer-@GST_API_VERSION@ \
+ 		--pkg gstreamer-rtsp-@GST_API_VERSION@ \
+ 		--pkg gstreamer-net-@GST_API_VERSION@ \
+-- 
+2.1.4
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb
index bb9b42b..4af7075 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb
@@ -2,5 +2,7 @@ include gstreamer1.0-rtsp-server.inc
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d"
 
+SRC_URI += "file://0001-Don-t-hardcode-libtool-name-when-using-introspection.patch"
+
 SRC_URI[md5sum] = "a9f9b8899ec7ab33663cda7627db40d3"
 SRC_URI[sha256sum] = "3089254bd31b7c1f1cf2c034a3b3551f92878f9e3cab65cef3a901a04c0f1d37"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
index be8aa8f..d75cbde 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
@@ -7,7 +7,7 @@ SECTION = "multimedia"
 LICENSE = "LGPLv2+"
 DEPENDS = "glib-2.0 libxml2 bison-native flex-native"
 
-inherit autotools pkgconfig gettext
+inherit autotools pkgconfig gettext gobject-introspection
 
 PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
 PACKAGECONFIG[check] = "--enable-check,--disable-check"
@@ -27,3 +27,13 @@ FILES_${PN} += " ${libdir}/gstreamer-1.0/*.so"
 FILES_${PN}-dev += " ${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a"
 FILES_${PN}-dbg += " ${libdir}/gstreamer-1.0/.debug/ ${libexecdir}/gstreamer-1.0/.debug/"
 
+delete_pkg_m4_file() {
+        # This m4 file is out of date and is missing PKG_CONFIG_SYSROOT_PATH tweaks which we need for introspection
+        rm "${S}/common/m4/pkg.m4" || true
+}
+
+do_configure[prefuncs] += " delete_pkg_m4_file"
+
+do_compile_prepend() {
+        export GIR_EXTRA_LIBS_PATH="${B}/gst/.libs"
+}
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 23/29] gnomebase.bbclass: enable gobject introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (21 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 22/29] gstreamer: " Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 24/29] webkitgtk: " Alexander Kanavin
                   ` (7 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

This also requires various tweaks to recipes that depend on this class, which are included in this commit as well.

One of those tweaks is that pygobject is finally updated to the latest upstream release.

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/classes/gnomebase.bbclass                     |   5 +-
 ...c-add-sysroot-path-to-GI_DATADIR-don-t-se.patch |  41 +++++++
 .../python/python-pygobject_2.28.3.bb              |  53 ---------
 .../python/python-pygobject_3.18.0.bb              |  29 +++++
 .../gsettings-desktop-schemas_3.16.1.bb            |   2 +-
 meta/recipes-gnome/librsvg/librsvg_2.40.10.bb      |   3 -
 ...ation-paths-for-.gir-and-.typelib-as-reco.patch |  32 ++++++
 meta/recipes-gnome/libwnck/libwnck3_3.14.0.bb      |   3 +-
 meta/recipes-graphics/pango/pango.inc              |   3 +-
 ...op-introspection-macros-from-acinclude.m4.patch | 121 +++++++++++++++++++++
 meta/recipes-graphics/pango/pango_1.36.8.bb        |   1 +
 meta/recipes-support/atk/atk_2.16.0.bb             |   2 +-
 ...file.am-install-gir-typelib-using-datadir.patch |  34 ++++++
 meta/recipes-support/vte/vte.inc                   |   4 +-
 meta/recipes-support/vte/vte_0.28.2.bb             |   3 +-
 15 files changed, 268 insertions(+), 68 deletions(-)
 create mode 100644 meta/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygobject_2.28.3.bb
 create mode 100644 meta/recipes-devtools/python/python-pygobject_3.18.0.bb
 create mode 100644 meta/recipes-gnome/libwnck/files/0001-Fix-installation-paths-for-.gir-and-.typelib-as-reco.patch
 create mode 100644 meta/recipes-graphics/pango/pango/0001-Drop-introspection-macros-from-acinclude.m4.patch
 create mode 100644 meta/recipes-support/vte/vte-0.28.2/0001-Makefile.am-install-gir-typelib-using-datadir.patch

diff --git a/meta/classes/gnomebase.bbclass b/meta/classes/gnomebase.bbclass
index d22ba5a..8310193 100644
--- a/meta/classes/gnomebase.bbclass
+++ b/meta/classes/gnomebase.bbclass
@@ -20,7 +20,7 @@ FILES_${PN} += "${datadir}/application-registry  \
 
 FILES_${PN}-doc += "${datadir}/devhelp"
 
-inherit autotools pkgconfig
+inherit autotools pkgconfig gobject-introspection
 
 do_install_append() {
 	rm -rf ${D}${localstatedir}/lib/scrollkeeper/*
@@ -28,6 +28,3 @@ do_install_append() {
 	rm -f ${D}${datadir}/applications/*.cache
 }
 
-EXTRA_OECONF += "--disable-introspection"
-
-UNKNOWN_CONFIGURE_WHITELIST += "--disable-introspection"
diff --git a/meta/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch b/meta/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
new file mode 100644
index 0000000..a391f7e
--- /dev/null
+++ b/meta/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
@@ -0,0 +1,41 @@
+From 5e5350d730f85957a42c6d846d347d080e7dd996 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 23 Oct 2015 12:40:34 +0300
+Subject: [PATCH] configure.ac: add sysroot path to GI_DATADIR; don't set
+ introspection scanner and compiler paths
+
+Upstream-Status: Pending [review on oe-core maillist]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure.ac | 8 +-------
+ 1 file changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2c0cfbd..cfcb3bf 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -194,7 +194,7 @@ PKG_CHECK_MODULES(GI,
+     gobject-introspection-1.0 >= introspection_required_version
+ )
+ 
+-GI_DATADIR=$($PKG_CONFIG --variable=gidatadir gobject-introspection-1.0)
++GI_DATADIR=$PKG_CONFIG_SYSROOT_DIR$($PKG_CONFIG --variable=gidatadir gobject-introspection-1.0)
+ AC_SUBST(GI_DATADIR)
+ 
+ if test "$enable_cairo" != no; then
+@@ -219,12 +219,6 @@ AC_ARG_WITH(common,
+     with_common=yes)
+ AM_CONDITIONAL(WITH_COMMON, test "$with_common" = "yes")
+ 
+-INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+-INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+-
+-AC_SUBST(INTROSPECTION_SCANNER)
+-AC_SUBST(INTROSPECTION_COMPILER)
+-
+ # compiler warnings, errors, required cflags, and code coverage support
+ GNOME_COMPILE_WARNINGS([maximum])
+ AC_MSG_CHECKING(for Gnome code coverage support)
+-- 
+2.1.4
+
diff --git a/meta/recipes-devtools/python/python-pygobject_2.28.3.bb b/meta/recipes-devtools/python/python-pygobject_2.28.3.bb
deleted file mode 100644
index 81d37b4..0000000
--- a/meta/recipes-devtools/python/python-pygobject_2.28.3.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Python GObject bindings"
-SECTION = "devel/python"
-LICENSE = "LGPLv2.1"
-
-RECIPE_NO_UPDATE_REASON = "Newer versions of python-pygobject depend on gobject-introspection which doesn't cross-compile"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
-DEPENDS = "python python-pygobject-native libffi glib-2.0"
-DEPENDS_class-native = "python-native libffi-native glib-2.0-native"
-RDEPENDS_class-native = ""
-
-MAJ_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}"
-
-SRC_URI = "${GNOME_MIRROR}/pygobject/${MAJ_VER}/pygobject-${PV}.tar.bz2 \
-           file://obsolete_automake_macros.patch \
-"
-
-# libtool-native doesn't have fixinstall.patch applied which means
-# that libs get relinked at installation time. This triggers a 
-# relinking along the lines of:
-# gcc -L/tmp/foo/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/lib -lpyglib-2.0-python -o .libs/_glib.so
-# where /tmp/foo is DESTDIR and pyglib-2.0-python may be installed/reinstalled
-# at the same time as the gcc command runs.
-# If this happens between the handoff between gcc and ld, you can see:
-# /bin/ld: cannot find -lpyglib-2.0-python
-# Adding a dependency rule like  install-pyglibLTLIBRARIES: install-libLTLIBRARIES
-# would be ideal but automake can't cope with that without manually 
-# defining the whole function. Give up and disable parallel make in native builds.
-PARALLEL_MAKEINST_class-native = ""
-
-SRC_URI[md5sum] = "aa64900b274c4661a5c32e52922977f9"
-SRC_URI[sha256sum] = "7da88c169a56efccc516cebd9237da3fe518a343095a664607b368fe21df95b6"
-S = "${WORKDIR}/pygobject-${PV}"
-
-EXTRA_OECONF += "--disable-introspection"
-
-inherit autotools distutils-base pkgconfig
-
-# necessary to let the call for python-config succeed
-export BUILD_SYS
-export HOST_SYS
-export STAGING_INCDIR
-export STAGING_LIBDIR
-
-PACKAGES += "${PN}-lib"
-
-RDEPENDS_${PN} += "python-textutils"
-
-FILES_${PN} = "${libdir}/python*"
-FILES_${PN}-lib = "${libdir}/lib*.so.*"
-FILES_${PN}-dev += "${bindir} ${datadir}"
-
-BBCLASSEXTEND = "native"
diff --git a/meta/recipes-devtools/python/python-pygobject_3.18.0.bb b/meta/recipes-devtools/python/python-pygobject_3.18.0.bb
new file mode 100644
index 0000000..366cfa9
--- /dev/null
+++ b/meta/recipes-devtools/python/python-pygobject_3.18.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Python GObject bindings"
+SECTION = "devel/python"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
+
+inherit autotools pkgconfig gnomebase distutils3-base
+
+DEPENDS = "python3 glib-2.0 gnome-common"
+
+SRCNAME="pygobject"
+SRC_URI = " \
+    http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \
+    file://0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch \
+"
+SRC_URI[md5sum] = "2ac5d4398e7ecabf64b3deb65c799516"
+SRC_URI[sha256sum] = "1c3ba1112d3713cd5c86260312bfeb0de1f84f18808e51072c50b29d46156dc9"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+BBCLASSEXTEND = "native"
+
+export STAGING_LIBDIR
+export STAGING_INCDIR
+export BUILD_SYS
+export HOST_SYS
+
+EXTRA_OECONF = "--disable-cairo"
+
+RDEPENDS_${PN} += "python3-setuptools"
diff --git a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.16.1.bb b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.16.1.bb
index f2f2c75..efb813a 100644
--- a/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.16.1.bb
+++ b/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.16.1.bb
@@ -5,7 +5,7 @@ BUGTRACKER = "https://bugzilla.gnome.org/"
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
-DEPENDS = "glib-2.0 intltool-native gobject-introspection-stub-native"
+DEPENDS = "glib-2.0 intltool-native"
 
 inherit gnomebase gsettings gettext
 
diff --git a/meta/recipes-gnome/librsvg/librsvg_2.40.10.bb b/meta/recipes-gnome/librsvg/librsvg_2.40.10.bb
index 06552c2..ebaa408 100644
--- a/meta/recipes-gnome/librsvg/librsvg_2.40.10.bb
+++ b/meta/recipes-gnome/librsvg/librsvg_2.40.10.bb
@@ -19,8 +19,6 @@ SRC_URI[archive.sha256sum] = "965c807438ce90b204e930ff80c92eba1606a2f6fd5ccfd093
 
 CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
 
-EXTRA_OECONF = "--disable-introspection --disable-vala"
-
 # The older ld (2.22) on the host (Centos 6.5) doesn't have the
 # -Bsymbolic-functions option, we can disable it for native.
 EXTRA_OECONF_append_class-native = " --enable-Bsymbolic=auto"
@@ -37,7 +35,6 @@ do_install_append() {
 }
 
 PACKAGES =+ "librsvg-gtk rsvg"
-FILES_${PN} = "${libdir}/*.so.*"
 FILES_${PN}-dbg += "${libdir}/gdk-pixbuf-2.0/*/loaders/.debug"
 FILES_rsvg = "${bindir}/rsvg* \
 	      ${datadir}/pixmaps/svg-viewer.svg \
diff --git a/meta/recipes-gnome/libwnck/files/0001-Fix-installation-paths-for-.gir-and-.typelib-as-reco.patch b/meta/recipes-gnome/libwnck/files/0001-Fix-installation-paths-for-.gir-and-.typelib-as-reco.patch
new file mode 100644
index 0000000..993c18a
--- /dev/null
+++ b/meta/recipes-gnome/libwnck/files/0001-Fix-installation-paths-for-.gir-and-.typelib-as-reco.patch
@@ -0,0 +1,32 @@
+From c41bed70e28112246cc06d31b2cf39091d63b52d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 26 Oct 2015 19:43:21 +0200
+Subject: [PATCH] Fix installation paths for .gir and .typelib as recommended
+ by gobject-introspection documentation.
+
+Upstream-Status: Pending [review on oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ libwnck/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libwnck/Makefile.am b/libwnck/Makefile.am
+index 4a105e6..a0b249a 100644
+--- a/libwnck/Makefile.am
++++ b/libwnck/Makefile.am
+@@ -182,10 +182,10 @@ Wnck_3_0_gir_SCANNERFLAGS = --pkg-export=libwnck-3.0
+ Wnck_3_0_gir_FILES = $(introspection_sources)
+ INTROSPECTION_GIRS += Wnck-3.0.gir
+ 
+-girdir = $(INTROSPECTION_GIRDIR)
++girdir = $(datadir)/gir-1.0
+ gir_DATA = $(INTROSPECTION_GIRS)
+ 
+-typelibdir = $(INTROSPECTION_TYPELIBDIR)
++typelibdir = $(libdir)/girepository-1.0
+ typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+ 
+ CLEANFILES += $(gir_DATA) $(typelib_DATA)
+-- 
+2.1.4
+
diff --git a/meta/recipes-gnome/libwnck/libwnck3_3.14.0.bb b/meta/recipes-gnome/libwnck/libwnck3_3.14.0.bb
index 3ee1ae9..b0da43e 100644
--- a/meta/recipes-gnome/libwnck/libwnck3_3.14.0.bb
+++ b/meta/recipes-gnome/libwnck/libwnck3_3.14.0.bb
@@ -5,12 +5,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
 BPN = "libwnck"
 
 SECTION = "x11/libs"
-DEPENDS = "gobject-introspection-stub gtk+3 gdk-pixbuf-native libxres"
+DEPENDS = "gtk+3 gdk-pixbuf-native libxres"
 
 PACKAGECONFIG ??= "startup-notification"
 PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
 
 inherit gnomebase
+SRC_URI += "file://0001-Fix-installation-paths-for-.gir-and-.typelib-as-reco.patch"
 SRC_URI[archive.md5sum] = "4538672e0d775fadedf10abeb8020047"
 SRC_URI[archive.sha256sum] = "f5080076346609b4c36394b879f3a86b92ced3b90a37cb54c8e9a14f00e7921c"
 
diff --git a/meta/recipes-graphics/pango/pango.inc b/meta/recipes-graphics/pango/pango.inc
index df0fdf6..cb38a0c 100644
--- a/meta/recipes-graphics/pango/pango.inc
+++ b/meta/recipes-graphics/pango/pango.inc
@@ -38,8 +38,7 @@ EXTRA_AUTORECONF = ""
 # seems to go wrong with default cflags
 FULL_OPTIMIZATION_arm = "-O2"
 
-EXTRA_OECONF = "--disable-introspection \
-		--enable-explicit-deps=no \
+EXTRA_OECONF = "--enable-explicit-deps=no \
 	        --disable-debug \
 	        --with-mlprefix=${MLPREFIX}"
 
diff --git a/meta/recipes-graphics/pango/pango/0001-Drop-introspection-macros-from-acinclude.m4.patch b/meta/recipes-graphics/pango/pango/0001-Drop-introspection-macros-from-acinclude.m4.patch
new file mode 100644
index 0000000..812da21
--- /dev/null
+++ b/meta/recipes-graphics/pango/pango/0001-Drop-introspection-macros-from-acinclude.m4.patch
@@ -0,0 +1,121 @@
+From 867a512eddbeb1899d3e7096df3da1dd0ce3e7b7 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 23 Oct 2015 14:06:17 +0300
+Subject: [PATCH] Drop introspection macros from acinclude.m4
+
+They take precendence over our customized macros, and so
+introspection doesn't work correctly.
+
+Upstream-Status: Pending [review on oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ acinclude.m4 | 96 ------------------------------------------------------------
+ 1 file changed, 96 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index 8899c7c..48fd5d8 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -55,99 +55,3 @@ AC_DEFUN([JH_CHECK_XML_CATALOG],
+ ])
+ 
+ 
+-dnl REMOVE THIS WHEN introspection.m4 is widely available
+-dnl
+-dnl -*- mode: autoconf -*-
+-dnl Copyright 2009 Johan Dahlin
+-dnl
+-dnl This file is free software; the author(s) gives unlimited
+-dnl permission to copy and/or distribute it, with or without
+-dnl modifications, as long as this notice is preserved.
+-dnl
+-
+-# serial 1
+-
+-m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
+-[
+-    AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
+-    AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+-    AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
+-
+-    dnl enable/disable introspection
+-    m4_if([$2], [require],
+-    [dnl
+-        enable_introspection=yes
+-    ],[dnl
+-        AC_ARG_ENABLE(introspection,
+-                  AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
+-                                 [Enable introspection for this build]),, 
+-                                 [enable_introspection=auto])
+-    ])dnl
+-
+-    AC_MSG_CHECKING([for gobject-introspection])
+-
+-    dnl presence/version checking
+-    AS_CASE([$enable_introspection],
+-    [no], [dnl
+-        found_introspection="no (disabled, use --enable-introspection to enable)"
+-    ],dnl
+-    [yes],[dnl
+-        PKG_CHECK_EXISTS([gobject-introspection-1.0],,
+-                         AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
+-        PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
+-                         found_introspection=yes,
+-                         AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
+-    ],dnl
+-    [auto],[dnl
+-        PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
+-    ],dnl
+-    [dnl	
+-        AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
+-    ])dnl
+-
+-    AC_MSG_RESULT([$found_introspection])
+-
+-    INTROSPECTION_SCANNER=
+-    INTROSPECTION_COMPILER=
+-    INTROSPECTION_GENERATE=
+-    INTROSPECTION_GIRDIR=
+-    INTROSPECTION_TYPELIBDIR=
+-    if test "x$found_introspection" = "xyes"; then
+-       INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+-       INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+-       INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+-       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+-       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+-       INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+-       INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+-       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+-    fi
+-    AC_SUBST(INTROSPECTION_SCANNER)
+-    AC_SUBST(INTROSPECTION_COMPILER)
+-    AC_SUBST(INTROSPECTION_GENERATE)
+-    AC_SUBST(INTROSPECTION_GIRDIR)
+-    AC_SUBST(INTROSPECTION_TYPELIBDIR)
+-    AC_SUBST(INTROSPECTION_CFLAGS)
+-    AC_SUBST(INTROSPECTION_LIBS)
+-    AC_SUBST(INTROSPECTION_MAKEFILE)
+-
+-    AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
+-])
+-
+-
+-dnl Usage:
+-dnl   GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
+-
+-AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
+-[
+-  _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
+-])
+-
+-dnl Usage:
+-dnl   GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
+-
+-
+-AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
+-[
+-  _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
+-])
+-- 
+2.1.4
+
diff --git a/meta/recipes-graphics/pango/pango_1.36.8.bb b/meta/recipes-graphics/pango/pango_1.36.8.bb
index f4e4250..c9dae65 100644
--- a/meta/recipes-graphics/pango/pango_1.36.8.bb
+++ b/meta/recipes-graphics/pango/pango_1.36.8.bb
@@ -4,6 +4,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
 
 SRC_URI += "file://run-ptest \
             file://multilib-fix-clean.patch \
+            file://0001-Drop-introspection-macros-from-acinclude.m4.patch \
 "
 
 SRC_URI[archive.md5sum] = "217a9a753006275215fa9fa127760ece"
diff --git a/meta/recipes-support/atk/atk_2.16.0.bb b/meta/recipes-support/atk/atk_2.16.0.bb
index 0f8f9b5..67a65d7 100644
--- a/meta/recipes-support/atk/atk_2.16.0.bb
+++ b/meta/recipes-support/atk/atk_2.16.0.bb
@@ -18,4 +18,4 @@ SRC_URI[archive.sha256sum] = "095f986060a6a0b22eb15eef84ae9f14a1cf8082488faa6886
 BBCLASSEXTEND = "native"
 
 EXTRA_OECONF = "--disable-glibtest \
-                --disable-introspection"
+               "
diff --git a/meta/recipes-support/vte/vte-0.28.2/0001-Makefile.am-install-gir-typelib-using-datadir.patch b/meta/recipes-support/vte/vte-0.28.2/0001-Makefile.am-install-gir-typelib-using-datadir.patch
new file mode 100644
index 0000000..6971b7b
--- /dev/null
+++ b/meta/recipes-support/vte/vte-0.28.2/0001-Makefile.am-install-gir-typelib-using-datadir.patch
@@ -0,0 +1,34 @@
+From 4d6c01666e50068935e116cb98f7d142936597ed Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 27 Oct 2015 15:23:54 +0200
+Subject: [PATCH] Makefile.am: install gir/typelib using $(datadir)
+
+This is recommended by gobject-introspection docs, and works
+in sysroot environments.
+
+Upstream-Status: Pending [review on oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 1971458..4929f0c 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -182,10 +182,10 @@ Vte_@VTE_API_VERSION_U@_gir_FILES = \
+ 
+ INTROSPECTION_GIRS += Vte-$(VTE_API_VERSION).gir
+ 
+-girdir = $(INTROSPECTION_GIRDIR)
++girdir = $(datadir)/gir-1.0
+ nodist_gir_DATA = $(INTROSPECTION_GIRS)
+ 
+-typelibdir = $(INTROSPECTION_TYPELIBDIR)
++typelibdir = $(libdir)/girepository-1.0
+ nodist_typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+ 
+ CLEANFILES += $(nodist_gir_DATA) $(nodist_typelib_DATA)
+-- 
+2.1.4
+
diff --git a/meta/recipes-support/vte/vte.inc b/meta/recipes-support/vte/vte.inc
index 07b9e10..6cf860d 100644
--- a/meta/recipes-support/vte/vte.inc
+++ b/meta/recipes-support/vte/vte.inc
@@ -1,13 +1,13 @@
 SUMMARY = "Virtual terminal emulator GTK+ widget library"
 BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte"
 LICENSE = "LGPLv2.0"
-DEPENDS = " glib-2.0 gtk+ intltool-native ncurses gobject-introspection-stub"
+DEPENDS = " glib-2.0 gtk+ intltool-native ncurses"
 RDEPENDS_libvte = "vte-termcap"
 
 inherit gnome gtk-doc distro_features_check
 ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
 
-EXTRA_OECONF = "--disable-python --disable-introspection"
+EXTRA_OECONF = "--disable-python"
 
 PACKAGES =+ "libvte vte-termcap"
 FILES_libvte = "${libdir}/*.so.* ${libexecdir}/gnome-pty-helper"
diff --git a/meta/recipes-support/vte/vte_0.28.2.bb b/meta/recipes-support/vte/vte_0.28.2.bb
index 8b4e7f7..c047d9f 100644
--- a/meta/recipes-support/vte/vte_0.28.2.bb
+++ b/meta/recipes-support/vte/vte_0.28.2.bb
@@ -5,7 +5,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
 PR = "r6"
 
 SRC_URI += "file://obsolete_automake_macros.patch \
-            file://cve-2012-2738.patch"
+            file://cve-2012-2738.patch \
+            file://0001-Makefile.am-install-gir-typelib-using-datadir.patch"
 
 CFLAGS += "-D_GNU_SOURCE"
 
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 24/29] webkitgtk: enable gobject introspection
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (22 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 23/29] gnomebase.bbclass: " Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 25/29] gcr: disable gobject introspection on x86-64 for now Alexander Kanavin
                   ` (6 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 ...Introspection.cmake-prefix-variables-obta.patch | 27 +++++++++++++++
 ...ng-introspection-files-add-CMAKE_C_FLAGS-.patch | 40 ++++++++++++++++++++++
 meta/recipes-sato/webkit/webkitgtk_2.8.5.bb        |  6 ++--
 3 files changed, 71 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-sato/webkit/files/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
 create mode 100644 meta/recipes-sato/webkit/files/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch

diff --git a/meta/recipes-sato/webkit/files/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch b/meta/recipes-sato/webkit/files/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
new file mode 100644
index 0000000..fae3b0b
--- /dev/null
+++ b/meta/recipes-sato/webkit/files/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
@@ -0,0 +1,27 @@
+From 317a5ac120c44987219bc03486cd2f2d1842c9b9 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 27 Oct 2015 16:02:19 +0200
+Subject: [PATCH] FindGObjectIntrospection.cmake: prefix variables obtained
+ from pkg-config with PKG_CONFIG_SYSROOT_DIR
+
+Upstream-Status: Pending [review on oe-core list]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Source/cmake/FindGObjectIntrospection.cmake | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Source/cmake/FindGObjectIntrospection.cmake b/Source/cmake/FindGObjectIntrospection.cmake
+index e1f49b4..03a4446 100644
+--- a/Source/cmake/FindGObjectIntrospection.cmake
++++ b/Source/cmake/FindGObjectIntrospection.cmake
+@@ -26,6 +26,7 @@ macro(_GIR_GET_PKGCONFIG_VAR _outvar _varname _extra_args)
+     else ()
+         string(REGEX REPLACE "[\r\n]" " " _result "${_result}")
+         string(REGEX REPLACE " +$" ""  _result "${_result}")
++        string(CONCAT _result $ENV{PKG_CONFIG_SYSROOT_DIR} "${_result}")
+         separate_arguments(_result)
+         set(${_outvar} ${_result} CACHE INTERNAL "")
+     endif ()
+-- 
+2.1.4
+
diff --git a/meta/recipes-sato/webkit/files/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch b/meta/recipes-sato/webkit/files/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch
new file mode 100644
index 0000000..c4584c6
--- /dev/null
+++ b/meta/recipes-sato/webkit/files/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch
@@ -0,0 +1,40 @@
+From f42434706e2686b28ac7c2d0362665c51d26faad Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 28 Oct 2015 14:18:57 +0200
+Subject: [PATCH] When building introspection files, add CMAKE_C_FLAGS to the
+ compiler flags.
+
+g-ir-compiler is using a C compiler internally, so it needs to set
+the proper flags for it.
+
+Upstream-Status: Pending [review on oe-core list] 
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Source/WebKit2/PlatformGTK.cmake | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Source/WebKit2/PlatformGTK.cmake b/Source/WebKit2/PlatformGTK.cmake
+index 058c241..37d7412 100644
+--- a/Source/WebKit2/PlatformGTK.cmake
++++ b/Source/WebKit2/PlatformGTK.cmake
+@@ -823,7 +823,7 @@ add_custom_command(
+     OUTPUT ${CMAKE_BINARY_DIR}/WebKit2-${WEBKITGTK_API_VERSION}.gir
+     DEPENDS WebKit2
+     DEPENDS ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.gir
+-    COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=-Wno-deprecated-declarations LDFLAGS=
++    COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=-Wno-deprecated-declarations\ ${CMAKE_C_FLAGS} LDFLAGS=
+         LD_LIBRARY_PATH="${INTROSPECTION_ADDITIONAL_LIBRARY_PATH}"
+         ${INTROSPECTION_SCANNER}
+         --quiet
+@@ -863,7 +863,7 @@ add_custom_command(
+     OUTPUT ${CMAKE_BINARY_DIR}/WebKit2WebExtension-${WEBKITGTK_API_VERSION}.gir
+     DEPENDS ${CMAKE_BINARY_DIR}/JavaScriptCore-${WEBKITGTK_API_VERSION}.gir
+     DEPENDS ${CMAKE_BINARY_DIR}/WebKit2-${WEBKITGTK_API_VERSION}.gir
+-    COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=-Wno-deprecated-declarations LDFLAGS=
++    COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=-Wno-deprecated-declarations\ ${CMAKE_C_FLAGS} LDFLAGS=
+         LD_LIBRARY_PATH="${INTROSPECTION_ADDITIONAL_LIBRARY_PATH}"
+         ${INTROSPECTION_SCANNER}
+         --quiet
+-- 
+2.1.4
+
diff --git a/meta/recipes-sato/webkit/webkitgtk_2.8.5.bb b/meta/recipes-sato/webkit/webkitgtk_2.8.5.bb
index e29666a..f21dc4b 100644
--- a/meta/recipes-sato/webkit/webkitgtk_2.8.5.bb
+++ b/meta/recipes-sato/webkit/webkitgtk_2.8.5.bb
@@ -14,11 +14,13 @@ SRC_URI = "\
   http://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
   file://0001-This-patch-fixes-a-command-line-that-is-too-long-ove.patch \
   file://gcc5.patch \
+  file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
+  file://0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch \
   "
 SRC_URI[md5sum] = "df79991848a5096d3a75289ebce547ae"
 SRC_URI[sha256sum] = "3d1f0c534935f43fd74df90f2648fcee672d60f1f57a30fa557a77891ae04d20"
 
-inherit cmake lib_package pkgconfig perlnative pythonnative distro_features_check
+inherit cmake lib_package pkgconfig perlnative pythonnative distro_features_check gobject-introspection
 
 # depends on libxt
 REQUIRED_DISTRO_FEATURES = "x11"
@@ -45,7 +47,7 @@ PACKAGECONFIG[libsecret] = "-DENABLE_CREDENTIAL_STORAGE=ON,-DENABLE_CREDENTIAL_S
 EXTRA_OECMAKE = " \
 		-DPORT=GTK \
 		-DCMAKE_BUILD_TYPE=Release \
-		-DENABLE_INTROSPECTION=OFF \
+		-DENABLE_INTROSPECTION=ON \
 		-DENABLE_GTKDOC=OFF \
 		-DENABLE_MINIBROWSER=ON \
 		"
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 25/29] gcr: disable gobject introspection on x86-64 for now
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (23 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 24/29] webkitgtk: " Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 26/29] gcr: disable gobject-introspection on mips64 Alexander Kanavin
                   ` (5 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-gnome/gcr/gcr_3.16.0.bb | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/meta/recipes-gnome/gcr/gcr_3.16.0.bb b/meta/recipes-gnome/gcr/gcr_3.16.0.bb
index 40c0fe8..ebe2873 100644
--- a/meta/recipes-gnome/gcr/gcr_3.16.0.bb
+++ b/meta/recipes-gnome/gcr/gcr_3.16.0.bb
@@ -19,3 +19,16 @@ FILES_${PN} += " \
 
 # http://errors.yoctoproject.org/Errors/Details/20229/
 ARM_INSTRUCTION_SET = "arm"
+
+# on x86-64 the introspection binary goes into 
+# an infinite loop under qemu during compilation, 
+# printing the following:
+# 
+# gcrypt-Message: select() error: Bad address
+#
+# gcrypt-Message: select() error: Bad address
+#
+# gcrypt-Message: select() error: Bad address
+#
+# This will be investigated later.
+EXTRA_OECONF_append_x86-64 = " --disable-introspection"
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 26/29] gcr: disable gobject-introspection on mips64
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (24 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 25/29] gcr: disable gobject introspection on x86-64 for now Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 27/29] libsecret: " Alexander Kanavin
                   ` (4 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-gnome/gcr/gcr_3.16.0.bb | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/meta/recipes-gnome/gcr/gcr_3.16.0.bb b/meta/recipes-gnome/gcr/gcr_3.16.0.bb
index ebe2873..4f0aabf 100644
--- a/meta/recipes-gnome/gcr/gcr_3.16.0.bb
+++ b/meta/recipes-gnome/gcr/gcr_3.16.0.bb
@@ -32,3 +32,8 @@ ARM_INSTRUCTION_SET = "arm"
 #
 # This will be investigated later.
 EXTRA_OECONF_append_x86-64 = " --disable-introspection"
+
+# Gcr-3.broken: poky/build-mips64/tmp/work/mips64-poky-linux/libgpg-error/1.19-r0/libgpg-error-1.19/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed.
+# qemu: uncaught target signal 6 (Aborted) - core dumped
+EXTRA_OECONF_append_mips64 = " --disable-introspection"
+
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 27/29] libsecret: disable gobject-introspection on mips64
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (25 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 26/29] gcr: disable gobject-introspection on mips64 Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 28/29] webkitgtk: disable gobject-introspection on powerpc Alexander Kanavin
                   ` (3 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-gnome/libsecret/libsecret_0.18.2.bb | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/meta/recipes-gnome/libsecret/libsecret_0.18.2.bb b/meta/recipes-gnome/libsecret/libsecret_0.18.2.bb
index 707838c..8f9d105 100644
--- a/meta/recipes-gnome/libsecret/libsecret_0.18.2.bb
+++ b/meta/recipes-gnome/libsecret/libsecret_0.18.2.bb
@@ -18,3 +18,8 @@ ARM_INSTRUCTION_SET = "arm"
 do_configure_prepend() {
     rm -f ${S}/build/m4/vapigen.m4
 }
+
+# Secret-1: poky/build-mips64/tmp/work/mips64-poky-linux/libgpg-error/1.19-r0/libgpg-error-1.19/src/posix-lock.c:119: get_lock_object: Assertion `!"sizeof lock obj"' failed.
+# qemu: uncaught target signal 6 (Aborted) - core dumped
+EXTRA_OECONF_append_mips64 = " --disable-introspection"
+
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 28/29] webkitgtk: disable gobject-introspection on powerpc
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (26 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 27/29] libsecret: " Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-09 14:50 ` [PATCH 29/29] packagegroup-core-x11-sato: add python-pygobject and gtk+3 Alexander Kanavin
                   ` (2 subsequent siblings)
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-sato/webkit/webkitgtk_2.8.5.bb | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/meta/recipes-sato/webkit/webkitgtk_2.8.5.bb b/meta/recipes-sato/webkit/webkitgtk_2.8.5.bb
index f21dc4b..5402f5e 100644
--- a/meta/recipes-sato/webkit/webkitgtk_2.8.5.bb
+++ b/meta/recipes-sato/webkit/webkitgtk_2.8.5.bb
@@ -74,3 +74,10 @@ FILES_${PN}-dbg += "${libdir}/webkitgtk/webkit2gtk-4.0/.debug/*"
 
 # http://errors.yoctoproject.org/Errors/Details/20370/
 ARM_INSTRUCTION_SET = "arm"
+
+# Invalid data memory access: 0x00000000
+# ...
+# qemu: uncaught target signal 11 (Segmentation fault) - core dumped
+# Segmentation fault
+EXTRA_OECMAKE_append_powerpc = " -DENABLE_INTROSPECTION=OFF "
+
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* [PATCH 29/29] packagegroup-core-x11-sato: add python-pygobject and gtk+3
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (27 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 28/29] webkitgtk: disable gobject-introspection on powerpc Alexander Kanavin
@ 2015-11-09 14:50 ` Alexander Kanavin
  2015-11-10 14:31 ` [PATCH 00/29] Add gobject introspection support to oe-core Mark Hatle
  2016-03-10 16:56 ` Martin Jansa
  30 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-09 14:50 UTC (permalink / raw)
  To: openembedded-core

This allows easy testing of introspection for example using
http://python-gtk-3-tutorial.readthedocs.org/en/latest/introduction.html

Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
---
 meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb b/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
index 6679db8..49f3583 100644
--- a/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
+++ b/meta/recipes-sato/packagegroups/packagegroup-core-x11-sato.bb
@@ -40,6 +40,8 @@ RDEPENDS_${PN}-base = "\
     ${NETWORK_MANAGER} \
     udev-extraconf \
     ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio-server pulseaudio-client-conf-sato', '', d)} \
+    python-pygobject \
+    gtk+3 \
     "
 
 # pcmanfm doesn't work on mips
-- 
2.1.4



^ permalink raw reply related	[flat|nested] 67+ messages in thread

* Re: [PATCH 08/29] python-pygtk: remove the recipe
  2015-11-09 14:50 ` [PATCH 08/29] python-pygtk: remove the recipe Alexander Kanavin
@ 2015-11-10 13:13   ` Jussi Kukkonen
  2015-11-10 13:25     ` Alexander Kanavin
  0 siblings, 1 reply; 67+ messages in thread
From: Jussi Kukkonen @ 2015-11-10 13:13 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 20131 bytes --]

Are the pygtk changes directly related to the introspection changes? If not
then maybe they should happen in another patch set.

Jussi

On 9 November 2015 at 16:50, Alexander Kanavin <
alexander.kanavin@linux.intel.com> wrote:

> python-pygtk hasn't been updated in several years, is incompatible
> with the current version of pygobject, and is generally obsolete as
> all modern python gtk apps use introspection directly.
>
> Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
> ---
>  meta/conf/distro/include/distro_alias.inc          |  1 -
>  .../packagegroups/packagegroup-self-hosted.bb      |  1 -
>  .../python/python-pygtk/acinclude.m4               | 90
> ----------------------
>  .../add-gtk-types.defs-into-gdk.c-dependence.patch | 32 --------
>  .../python/python-pygtk/fix-gtkunixprint.patch     | 20 -----
>  .../python/python-pygtk/fix-pygtk-2.0.pc.patch     | 13 ----
>  .../python/python-pygtk/nodocs.patch               | 15 ----
>  .../prevent_to_get_display_during_import.patch     | 16 ----
>  .../python/python-pygtk/python-pygtk2/acinclude.m4 | 90
> ----------------------
>  .../update-dependences-of-defs.c.patch             | 38 ---------
>  .../recipes-devtools/python/python-pygtk_2.24.0.bb | 55 -------------
>  11 files changed, 371 deletions(-)
>  delete mode 100644 meta/recipes-devtools/python/python-pygtk/acinclude.m4
>  delete mode 100644
> meta/recipes-devtools/python/python-pygtk/add-gtk-types.defs-into-gdk.c-dependence.patch
>  delete mode 100644
> meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch
>  delete mode 100644
> meta/recipes-devtools/python/python-pygtk/fix-pygtk-2.0.pc.patch
>  delete mode 100644 meta/recipes-devtools/python/python-pygtk/nodocs.patch
>  delete mode 100644
> meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch
>  delete mode 100644
> meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4
>  delete mode 100644
> meta/recipes-devtools/python/python-pygtk/update-dependences-of-defs.c.patch
>  delete mode 100644 meta/recipes-devtools/python/python-pygtk_2.24.0.bb
>
> diff --git a/meta/conf/distro/include/distro_alias.inc
> b/meta/conf/distro/include/distro_alias.inc
> index ca333c8..6368d6d 100644
> --- a/meta/conf/distro/include/distro_alias.inc
> +++ b/meta/conf/distro/include/distro_alias.inc
> @@ -402,7 +402,6 @@ DISTRO_PN_ALIAS_pn-python-mako = "Fedora=python-mako
> Opensuse=python-Mako"
>  DISTRO_PN_ALIAS_pn-python-pycairo = "Meego=pycairo Fedora=pycairo
> Ubuntu=pycairo Debian=pycairo"
>  DISTRO_PN_ALIAS_pn-python-pycurl = "Debian=python-pycurl
> Ubuntu=python-pycurl"
>  DISTRO_PN_ALIAS_pn-python-pygobject = "Meego=pygobject2 Fedora=pygobject2
> Ubuntu=pygobject Debian=pygobject"
> -DISTRO_PN_ALIAS_pn-python-pygtk = "Debian=python-gtk2 Fedora=pygtk2
> OpenSuSE=python-gtk"
>  DISTRO_PN_ALIAS_pn-python-pyrex = "Mandriva=python-pyrex
> Ubuntu=python-pyrex"
>  DISTRO_PN_ALIAS_pn-python-scons = "Fedora=scons OpenSuSE=scons
> Ubuntu=scons Mandriva=scons Debian=scons"
>  DISTRO_PN_ALIAS_pn-python-setuptools = "Mandriva=python-setup
> OpenSuSE=python-setup-git"
> diff --git a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
> b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
> index d38be26..b8573fb 100644
> --- a/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
> +++ b/meta/recipes-core/packagegroups/packagegroup-self-hosted.bb
> @@ -190,7 +190,6 @@ RDEPENDS_packagegroup-self-hosted-graphics = "\
>      libsdl \
>      libsdl-dev \
>      libx11-dev \
> -    python-pygtk \
>      gtk-theme-clearlooks \
>      xdg-utils \
>      epiphany \
> diff --git a/meta/recipes-devtools/python/python-pygtk/acinclude.m4
> b/meta/recipes-devtools/python/python-pygtk/acinclude.m4
> deleted file mode 100644
> index 53518fb..0000000
> --- a/meta/recipes-devtools/python/python-pygtk/acinclude.m4
> +++ /dev/null
> @@ -1,90 +0,0 @@
> -## this one is commonly used with AM_PATH_PYTHONDIR ...
> -dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND
> [,ACTION-IF-NOT-FOUND]]])
> -dnl Check if a module containing a given symbol is visible to python.
> -AC_DEFUN(AM_CHECK_PYMOD,
> -[AC_REQUIRE([AM_PATH_PYTHON])
> -py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
> -AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1)
> -AC_CACHE_VAL(py_cv_mod_$py_mod_var, [
> -ifelse([$2],[], [prog="
> -import sys
> -try:
> -        import $1
> -except ImportError:
> -        sys.exit(1)
> -except:
> -        sys.exit(0)
> -sys.exit(0)"], [prog="
> -import $1
> -$1.$2"])
> -if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
> -  then
> -    eval "py_cv_mod_$py_mod_var=yes"
> -  else
> -    eval "py_cv_mod_$py_mod_var=no"
> -  fi
> -])
> -py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"`
> -if test "x$py_val" != xno; then
> -  AC_MSG_RESULT(yes)
> -  ifelse([$3], [],, [$3
> -])dnl
> -else
> -  AC_MSG_RESULT(no)
> -  ifelse([$4], [],, [$4
> -])dnl
> -fi
> -])
> -
> -dnl a macro to check for ability to create python extensions
> -dnl  AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE],
> [ACTION-IF-NOT-POSSIBLE])
> -dnl function also defines PYTHON_INCLUDES
> -AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
> -[AC_REQUIRE([AM_PATH_PYTHON])
> -AC_MSG_CHECKING(for headers required to compile python extensions)
> -dnl deduce PYTHON_INCLUDES
> -AC_ARG_WITH(python-includes,
> -       [  --with-python-includes=DIR  path to Python includes],
> py_exec_prefix=$withval)
> -if test x$py_exec_prefix != x; then
> -PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}"
> -else
> -py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
> -py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
> -PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
> -if test "$py_prefix" != "$py_exec_prefix"; then
> -  PYTHON_INCLUDES="$PYTHON_INCLUDES
> -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
> -fi
> -fi
> -AC_SUBST(PYTHON_INCLUDES)
> -dnl check if the headers exist:
> -save_CPPFLAGS="$CPPFLAGS"
> -CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
> -AC_TRY_CPP([#include <Python.h>],dnl
> -[AC_MSG_RESULT(found)
> -$1],dnl
> -[AC_MSG_RESULT(not found)
> -$2])
> -CPPFLAGS="$save_CPPFLAGS"
> -])
> -
> -dnl
> -dnl JH_ADD_CFLAG(FLAG)
> -dnl checks whether the C compiler supports the given flag, and if so, adds
> -dnl it to $CFLAGS.  If the flag is already present in the list, then the
> -dnl check is not performed.
> -AC_DEFUN([JH_ADD_CFLAG],
> -[
> -case " $CFLAGS " in
> -*@<:@\ \ @:>@$1@<:@\   \ @:>@*)
> -  ;;
> -*)
> -  save_CFLAGS="$CFLAGS"
> -  CFLAGS="$CFLAGS $1"
> -  AC_MSG_CHECKING([whether [$]CC understands $1])
> -  AC_TRY_COMPILE([], [], [jh_has_option=yes], [jh_has_option=no])
> -  AC_MSG_RESULT($jh_has_option)
> -  if test $jh_has_option = no; then
> -    CFLAGS="$save_CFLAGS"
> -  fi
> -  ;;
> -esac])
> diff --git
> a/meta/recipes-devtools/python/python-pygtk/add-gtk-types.defs-into-gdk.c-dependence.patch
> b/meta/recipes-devtools/python/python-pygtk/add-gtk-types.defs-into-gdk.c-dependence.patch
> deleted file mode 100644
> index df0f9cd..0000000
> ---
> a/meta/recipes-devtools/python/python-pygtk/add-gtk-types.defs-into-gdk.c-dependence.patch
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -Upstream-Status: Submitted
> -
> -add gtk-types.defs into gdk.c dependence
> -
> -gdk.c depends on gtk-types.defs but
> -gdk/Makefile.am miss this. This will cause
> -build error sometimes when built
> -with multi-jobbing, so add gtk-types.defs into
> -gdk.c dependence.
> -
> -Signed-off-by: Song.Li <Song.Li@windriver.com>
> -Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
> ----
> - gtk/Makefile.am |    2 +-
> - 1 files changed, 1 insertions(+), 1 deletions(-)
> -
> -diff --git a/gtk/Makefile.am b/gtk/Makefile.am
> -index 7bb5d0c..4a88351 100644
> ---- a/gtk/Makefile.am
> -+++ b/gtk/Makefile.am
> -@@ -214,7 +214,7 @@ gtkunixprint.defs: $(GTKUNIXPRINT_DEFS) Makefile
> - gtkunixprint-types.defs: $(GTKUNIXPRINT_TYPES_DEFS) Makefile
> -       $(CREATEDEFS) $@ $(GTKUNIXPRINT_TYPES_DEFS)
> -
> --gdk.c: gdk-types.defs gdk.defs $(GDK_OVERRIDES)
> -+gdk.c: gdk-types.defs gtk-types.defs gdk.defs $(GDK_OVERRIDES)
> - gtk.c: gdk-types.defs gtk-types.defs gtk.defs gdk-types.defs
> $(GTK_OVERRIDES)
> - _gtk_la_CFLAGS = $(PYCAIRO_CFLAGS) $(GTK_CFLAGS)
> - _gtk_la_LDFLAGS = $(common_ldflags) -export-symbols-regex init_gtk
> ---
> -1.7.4
> -
> diff --git
> a/meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch
> b/meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch
> deleted file mode 100644
> index 16c0e8e..0000000
> --- a/meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -Upstream-Status: Inappropriate [configuration]
> -
> -Signed-off-by: Saul Wold <sgw@linux.intel.com>
> -
> -Index: pygtk-2.24.0/gtk/gtkunixprint.override
> -===================================================================
> ---- pygtk-2.24.0.orig/gtk/gtkunixprint.override
> -+++ pygtk-2.24.0/gtk/gtkunixprint.override
> -@@ -102,11 +102,6 @@ _wrap_gtk_print_job_get_surface(PyGObjec
> -     if (pyg_error_check(&error))
> -         return NULL;
> -
> --#if PYCAIRO_VERSION_HEX >= 0x1010600
> --    return PycairoSurface_FromSurface(cairo_surface_reference(surface),
> NULL);
> --#else
> --    return PycairoSurface_FromSurface(cairo_surface_reference(surface),
> NULL, NULL);
> --#endif
> - }
> - %%
> - override gtk_print_job_send kwargs
> diff --git
> a/meta/recipes-devtools/python/python-pygtk/fix-pygtk-2.0.pc.patch
> b/meta/recipes-devtools/python/python-pygtk/fix-pygtk-2.0.pc.patch
> deleted file mode 100644
> index b6156540..0000000
> --- a/meta/recipes-devtools/python/python-pygtk/fix-pygtk-2.0.pc.patch
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -Upstream-Status: Inappropriate [configuration]
> -
> -Index: pygtk-2.24.0/pygtk-2.0.pc.in
> -===================================================================
> ---- pygtk-2.24.0.orig/pygtk-2.0.pc.in
> -+++ pygtk-2.24.0/pygtk-2.0.pc.in
> -@@ -1,5 +1,6 @@
> - prefix=@prefix@
> - exec_prefix=@exec_prefix@
> -+libdir=@libdir@
> - includedir=@includedir@
> - datarootdir=@datarootdir@
> - datadir=@datadir@
> diff --git a/meta/recipes-devtools/python/python-pygtk/nodocs.patch
> b/meta/recipes-devtools/python/python-pygtk/nodocs.patch
> deleted file mode 100644
> index f07309a..0000000
> --- a/meta/recipes-devtools/python/python-pygtk/nodocs.patch
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -Upstream-Status: Inappropriate [configuration]
> -
> -Index: pygtk-2.17.0/Makefile.am
> -===================================================================
> ---- pygtk-2.17.0.orig/Makefile.am
> -+++ pygtk-2.17.0/Makefile.am
> -@@ -4,7 +4,7 @@ if BUILD_GTK
> -   GTK_SUBDIR = gtk
> - endif
> -
> --SUBDIRS = . $(GTK_SUBDIR) examples tests docs
> -+SUBDIRS = . $(GTK_SUBDIR) examples tests
> -
> - PLATFORM_VERSION = 2.0
> -
> diff --git
> a/meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch
> b/meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch
> deleted file mode 100644
> index 833038e..0000000
> ---
> a/meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -Upstream-Status: Pending
> -
> -Index: pygtk-2.10.4/gtk/__init__.py
> -===================================================================
> ---- pygtk-2.10.4.orig/gtk/__init__.py  2007-11-27 19:27:05.000000000 -0300
> -+++ pygtk-2.10.4/gtk/__init__.py       2007-11-27 19:28:22.000000000 -0300
> -@@ -78,7 +78,8 @@
> -
> - keysyms = LazyModule('keysyms', locals())
> -
> --_init()
> -+if not hasattr(sys.modules['__main__'], 'python_launcher_enabled'):
> -+    _init()
> -
> - # CAPI
> - _PyGtk_API = _gtk._PyGtk_API
> diff --git
> a/meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4
> b/meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4
> deleted file mode 100644
> index 53518fb..0000000
> --- a/meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4
> +++ /dev/null
> @@ -1,90 +0,0 @@
> -## this one is commonly used with AM_PATH_PYTHONDIR ...
> -dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND
> [,ACTION-IF-NOT-FOUND]]])
> -dnl Check if a module containing a given symbol is visible to python.
> -AC_DEFUN(AM_CHECK_PYMOD,
> -[AC_REQUIRE([AM_PATH_PYTHON])
> -py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
> -AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1)
> -AC_CACHE_VAL(py_cv_mod_$py_mod_var, [
> -ifelse([$2],[], [prog="
> -import sys
> -try:
> -        import $1
> -except ImportError:
> -        sys.exit(1)
> -except:
> -        sys.exit(0)
> -sys.exit(0)"], [prog="
> -import $1
> -$1.$2"])
> -if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
> -  then
> -    eval "py_cv_mod_$py_mod_var=yes"
> -  else
> -    eval "py_cv_mod_$py_mod_var=no"
> -  fi
> -])
> -py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"`
> -if test "x$py_val" != xno; then
> -  AC_MSG_RESULT(yes)
> -  ifelse([$3], [],, [$3
> -])dnl
> -else
> -  AC_MSG_RESULT(no)
> -  ifelse([$4], [],, [$4
> -])dnl
> -fi
> -])
> -
> -dnl a macro to check for ability to create python extensions
> -dnl  AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE],
> [ACTION-IF-NOT-POSSIBLE])
> -dnl function also defines PYTHON_INCLUDES
> -AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
> -[AC_REQUIRE([AM_PATH_PYTHON])
> -AC_MSG_CHECKING(for headers required to compile python extensions)
> -dnl deduce PYTHON_INCLUDES
> -AC_ARG_WITH(python-includes,
> -       [  --with-python-includes=DIR  path to Python includes],
> py_exec_prefix=$withval)
> -if test x$py_exec_prefix != x; then
> -PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}"
> -else
> -py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
> -py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
> -PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
> -if test "$py_prefix" != "$py_exec_prefix"; then
> -  PYTHON_INCLUDES="$PYTHON_INCLUDES
> -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
> -fi
> -fi
> -AC_SUBST(PYTHON_INCLUDES)
> -dnl check if the headers exist:
> -save_CPPFLAGS="$CPPFLAGS"
> -CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
> -AC_TRY_CPP([#include <Python.h>],dnl
> -[AC_MSG_RESULT(found)
> -$1],dnl
> -[AC_MSG_RESULT(not found)
> -$2])
> -CPPFLAGS="$save_CPPFLAGS"
> -])
> -
> -dnl
> -dnl JH_ADD_CFLAG(FLAG)
> -dnl checks whether the C compiler supports the given flag, and if so, adds
> -dnl it to $CFLAGS.  If the flag is already present in the list, then the
> -dnl check is not performed.
> -AC_DEFUN([JH_ADD_CFLAG],
> -[
> -case " $CFLAGS " in
> -*@<:@\ \ @:>@$1@<:@\   \ @:>@*)
> -  ;;
> -*)
> -  save_CFLAGS="$CFLAGS"
> -  CFLAGS="$CFLAGS $1"
> -  AC_MSG_CHECKING([whether [$]CC understands $1])
> -  AC_TRY_COMPILE([], [], [jh_has_option=yes], [jh_has_option=no])
> -  AC_MSG_RESULT($jh_has_option)
> -  if test $jh_has_option = no; then
> -    CFLAGS="$save_CFLAGS"
> -  fi
> -  ;;
> -esac])
> diff --git
> a/meta/recipes-devtools/python/python-pygtk/update-dependences-of-defs.c.patch
> b/meta/recipes-devtools/python/python-pygtk/update-dependences-of-defs.c.patch
> deleted file mode 100644
> index 3ed954e..0000000
> ---
> a/meta/recipes-devtools/python/python-pygtk/update-dependences-of-defs.c.patch
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -From dc024e9079bbffbb44436ba3e70a758ebad5520f Mon Sep 17 00:00:00 2001
> -From: "Song.Li" <Song.Li@windriver.com>
> -Date: Sat, 5 Jan 2013 14:55:59 +0800
> -Subject: [PATCH] update dependences of defs.c in Makefile.am
> -
> -In gtk/Makefile.am, defs.c should dependes on gdk-types.defs and
> -gtk-types.defs, otherwise it fails occasionally when parallel compile.
> -The error message:
> -"IOError: [Errno 2] No such file or directory: 'gtk-types.defs'"
> -
> -Add them to dependences of defs.c to fix this issue.
> -
> -Upstream-Status: Submitted
> -https://bugzilla.gnome.org/show_bug.cgi?id=702706
> -
> -Signed-off-by: Song.Li <Song.Li@windriver.com>
> -Signed-off-by: Kai Kang <kai.kang@windriver.com>
> -
> ----
> - gtk/Makefile.am |    2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> -diff --git a/gtk/Makefile.am b/gtk/Makefile.am
> -index 7bb5d0c..91826cb 100644
> ---- a/gtk/Makefile.am
> -+++ b/gtk/Makefile.am
> -@@ -289,7 +289,7 @@ if HAVE_GIO_TYPES_DEFS
> - extra_codegen_args += --register $(PYGOBJECT_DEFSDIR)/gio-types.defs
> - endif
> -
> --.defs.c:
> -+.defs.c: gdk-types.defs gtk-types.defs
> -       ($(PYTHON) $(CODEGENDIR)/codegen.py \
> -          $(PYGTK_CODEGEN_DEFINES) \
> -           -I $(srcdir) \
> ---
> -1.7.9.5
> -
> diff --git a/meta/recipes-devtools/python/python-pygtk_2.24.0.bb
> b/meta/recipes-devtools/python/python-pygtk_2.24.0.bb
> deleted file mode 100644
> index 79b3110..0000000
> --- a/meta/recipes-devtools/python/python-pygtk_2.24.0.bb
> +++ /dev/null
> @@ -1,55 +0,0 @@
> -SUMMARY = "Python bindings for the GTK+ UI toolkit"
> -SECTION = "devel/python"
> -# needs gtk+ 2.17.x
> -DEPENDS = "gtk+ libglade python-pycairo python-pygobject"
> -RDEPENDS_${PN} = "python-shell python-pycairo python-pygobject"
> -PROVIDES = "python-pygtk2"
> -SRCNAME = "pygtk"
> -LICENSE = "LGPLv2.1"
> -LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
> -
> -PR = "r1"
> -
> -SRC_URI = "
> ftp://ftp.gnome.org/pub/gnome/sources/pygtk/2.24/${SRCNAME}-${PV}.tar.bz2
> \
> -           file://add-gtk-types.defs-into-gdk.c-dependence.patch \
> -           file://fix-gtkunixprint.patch \
> -           file://prevent_to_get_display_during_import.patch \
> -           file://nodocs.patch \
> -          file://fix-pygtk-2.0.pc.patch \
> -           file://acinclude.m4 \
> -           file://update-dependences-of-defs.c.patch"
> -
> -SRC_URI[md5sum] = "a1051d5794fd7696d3c1af6422d17a49"
> -SRC_URI[sha256sum] =
> "cd1c1ea265bd63ff669e92a2d3c2a88eb26bcd9e5363e0f82c896e649f206912"
> -
> -S = "${WORKDIR}/${SRCNAME}-${PV}"
> -
> -EXTRA_OECONF = "--disable-docs
> --with-python-includes=${STAGING_INCDIR}/../"
> -
> -inherit autotools pkgconfig distutils-base distro_features_check
> -
> -ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
> -
> -do_configure_prepend() {
> -       install -m 0644 ${WORKDIR}/acinclude.m4 ${S}/
> -       sed -i \
> -               -e s:'`$PKG_CONFIG --variable defsdir
> pygobject-2.0`':\"${STAGING_DATADIR}/pygobject/2.0/defs\":g \
> -               -e s:'`$PKG_CONFIG --variable=pygtkincludedir
> pygobject-2.0`':\"${STAGING_INCDIR}/pygtk-2.0\":g \
> -               -e s:'`$PKG_CONFIG --variable=datadir
> pygobject-2.0`':\"${STAGING_DATADIR}\":g \
> -               -e s:'`$PKG_CONFIG --variable codegendir
> pygobject-2.0`':\"${STAGING_DATADIR}/pygobject/2.0/codegen\":g \
> -               -e s:'`$PKG_CONFIG --variable=fixxref
> pygobject-2.0`':\"${STAGING_DATADIR}/pygobject/xsl/fixxref.py\":g \
> -               ${S}/configure.ac
> -}
> -
> -# dirty fix #2: fix build system paths leaking in
> -do_install_append() {
> -       sed -i -e '1s|^#!.*python|#!/usr/bin/env python|'
> ${D}${bindir}/pygtk-demo
> -}
> -
> -PACKAGES =+ "${PN}-demo"
> -FILES_${PN}-demo = " ${bindir}/pygtk-demo ${libdir}/pygtk "
> -RDEPENDS_${PN}-demo = "python-pygtk python-stringold python-lang"
> -
> -# todo: revamp packaging, package demo seperatly
> -FILES_${PN}-dev += " ${libdir}/pygtk/2.0 ${bindir}/pygtk-*
> ${datadir}/pygtk/2.0"
> -
> --
> 2.1.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>

[-- Attachment #2: Type: text/html, Size: 24489 bytes --]

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 08/29] python-pygtk: remove the recipe
  2015-11-10 13:13   ` Jussi Kukkonen
@ 2015-11-10 13:25     ` Alexander Kanavin
  2015-11-10 14:18       ` Jussi Kukkonen
  0 siblings, 1 reply; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-10 13:25 UTC (permalink / raw)
  To: Jussi Kukkonen; +Cc: Patches and discussions about the oe-core layer

On 11/10/2015 03:13 PM, Jussi Kukkonen wrote:
> Are the pygtk changes directly related to the introspection changes? If
> not then maybe they should happen in another patch set.

They are; pygtk requires an old (2.x) non-introspection based version of 
pygobject, and the introspection patchset updates pygobject to latest 
3.x release which is a much thinner layer on top of libgirepository and 
is incompatible with pygtk.

Alex



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 08/29] python-pygtk: remove the recipe
  2015-11-10 13:25     ` Alexander Kanavin
@ 2015-11-10 14:18       ` Jussi Kukkonen
  2015-11-10 14:31         ` Paul Eggleton
  0 siblings, 1 reply; 67+ messages in thread
From: Jussi Kukkonen @ 2015-11-10 14:18 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 974 bytes --]

On 10 November 2015 at 15:25, Alexander Kanavin <
alexander.kanavin@linux.intel.com> wrote:

> On 11/10/2015 03:13 PM, Jussi Kukkonen wrote:
>
>> Are the pygtk changes directly related to the introspection changes? If
>> not then maybe they should happen in another patch set.
>>
>
> They are; pygtk requires an old (2.x) non-introspection based version of
> pygobject, and the introspection patchset updates pygobject to latest 3.x
> release which is a much thinner layer on top of libgirepository and is
> incompatible with pygtk.
>

Oh I see that now: It's patch 23 in the series for anyone else looking. I
think this should be pointed out more visibly: the patchset essentially
removes gtk2 python support, a feature we've had so far.

Maintaining python-gobject-2 and python-gtk-2 should be possible alongside
the GI-based versions, but A) it only makes sense if there's real demand
and B) it obviously doesn't have to happen in oe-core.

Jussi

[-- Attachment #2: Type: text/html, Size: 1494 bytes --]

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 08/29] python-pygtk: remove the recipe
  2015-11-10 14:18       ` Jussi Kukkonen
@ 2015-11-10 14:31         ` Paul Eggleton
  0 siblings, 0 replies; 67+ messages in thread
From: Paul Eggleton @ 2015-11-10 14:31 UTC (permalink / raw)
  To: openembedded-core

On Tuesday 10 November 2015 16:18:00 Jussi Kukkonen wrote:
> On 10 November 2015 at 15:25, Alexander Kanavin <
> 
> alexander.kanavin@linux.intel.com> wrote:
> > On 11/10/2015 03:13 PM, Jussi Kukkonen wrote:
> >> Are the pygtk changes directly related to the introspection changes? If
> >> not then maybe they should happen in another patch set.
> > 
> > They are; pygtk requires an old (2.x) non-introspection based version of
> > pygobject, and the introspection patchset updates pygobject to latest 3.x
> > release which is a much thinner layer on top of libgirepository and is
> > incompatible with pygtk.
> 
> Oh I see that now: It's patch 23 in the series for anyone else looking. I
> think this should be pointed out more visibly: the patchset essentially
> removes gtk2 python support, a feature we've had so far.
> 
> Maintaining python-gobject-2 and python-gtk-2 should be possible alongside
> the GI-based versions, but A) it only makes sense if there's real demand
> and B) it obviously doesn't have to happen in oe-core.

Note that this does mean we will no longer be able to build a build-appliance-
image that includes Hob, since that requires PyGTK 2. However that's probably 
fine as Hob is deprecated already and is supposed to be going away in the 2.1 
release (to be effectively replaced by Toaster, once the latter's functionality 
is on par). I just wanted to make a note of this since if nothing else this 
change will force us to consider what we're going to do with the build 
appliance going forward.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (28 preceding siblings ...)
  2015-11-09 14:50 ` [PATCH 29/29] packagegroup-core-x11-sato: add python-pygobject and gtk+3 Alexander Kanavin
@ 2015-11-10 14:31 ` Mark Hatle
  2015-11-10 15:36   ` Alexander Kanavin
  2016-03-10 16:56 ` Martin Jansa
  30 siblings, 1 reply; 67+ messages in thread
From: Mark Hatle @ 2015-11-10 14:31 UTC (permalink / raw)
  To: Alexander Kanavin, openembedded-core

On 11/9/15 8:50 AM, Alexander Kanavin wrote:
> 1. Introduction
> 
> This patchset adds support for gobject introspection to oe-core. 
> Gir files go to -dev packages, typelib files go to main packages 
> (they are packaged together with libraries that are 
> introspected).
> 
> The work is based on a meta-gir layer, which was used as a proof of
> concept; overall approach is same and some implementation ideas were 
> used, but this implementation is otherwise different, and hopefully 
> simpler and cleaner.

I have a concern since this uses QEMU.  What do we do for BSPs that do NOT have
QEMU support?

I realize QEMU supports most of the major arch families, but once we enable
certain tuning flags and such there are a fair number of common configurations
that do not have QEMU support.

> 
> 2. 30 second tutorial for adding introspection support to a package:
> 
> a. Inherit gobject-introspection class (or a class that inherits it,
> such as gnome-base).
> 
> b. Make sure introspection is not disabled anywhere in the recipe or
> its includes.
> 
> c. Try to build the recipe; if this results in build errors that look 
> like something is unable to find .so libraries, check where these libraries 
> are in the source tree and add GIR_EXTRA_LIBS_PATH=${B}/something/.libs
> to the recipe.
> 
> c. Any other errors probably mean that introspection support in a package
> is not entirely standard, and breaks down in a cross-compilation environment.
> Custom-made fixing is needed then.

Is there a way that the qemu calls can be replaced by calls to an actual running
board (via SSH perhaps) to get the necessary information?  While inconvenient
this might be a valid workaround.

Also is there any facility to caching the gobject responses (other then standard
sstate-cache) so for machine that do not have QEMU support we can used a cached
set of responses?  (I'm not sure if these responses could be considered to be a
global cache, or if they are distribution specific in configuration.  Likely the
later.)

> 
> 3. How to verify that introspection works in an image:
> 
> a. Build core-image-sato.
> 
> b. Start terminal, start python3 in the terminal.
> 
> c. Type out something like:
> 
>>>> from gi.repository import GLib
>>>> GLib.get_host_name()
> 
> d. Also, try something more advanced, for example:
> http://python-gtk-3-tutorial.readthedocs.org/en/latest/introduction.html
> 
> 
> 4. Request for testing - I would like this patchset to be checked on three
> levels:
> 
> a. Test it in all of the build environments you have. Let me know any errors
> or warnings. Also let me know, if some package can be built with introspection
> enabled, but is not.
> 
> b. Check the patchset for correct use of Yocto idioms. It touches a lot of things
> in a lot of different ways, and maybe there are better ways to do what it does.
> 
> c. Check that the overall design is sensible: how things work is hopefully
> explained in comments and commit messages.
> 
> 
> 5. Known issues:
> 
> - there is no way to globally switch off the whole thing at the moment;
> this should probably be a DISTRO_FEATURE (also see the next item)

I agree.  For tunes where QEMU can't be used there should be a way to switch
this behavior off.  I don't know if it should be a DISTRO_FEATURE or other switch.

> - qemu-ppc64 crashes out immediately; so anything that supports introspection 
> cannot be built on that architecture:
> Invalid data memory access: 0x00000040d89c5008
> ...
> 
> - gcr introspection is disabled in x86_64, because introspection helper binary
> goes into an infinite loop under qemu (on that architecture only).
> 
> - gcr and libsecret introspection is disabled in mips64, because introspection helper
> binary fails an assertion in libgpg-error
> 
> - webkit introspection is disabled in powerpc, because qemu-ppc crashes out when
> running g-ir-compiler

We should definitely inspect the items above and see if any of them are bugs in
the built software or due to the QEMU application environment.

> - the patchset has not been tested with layers in meta-oe; just making oe-core 
> build without errors on all standard architectures has been a big, long task.

Thanks for the work.  Hopefully this and the work to follow will make it easier
to build more complex gobject based components in the future.

> - the whole thing should be documented in Yocto manuals
> 
> The following changes since commit fc45deac89ef63ca1c44e763c38ced7dfd72cbe1:
> 
>   build-appliance-image: Update to jethro head revision (2015-11-03 14:03:03 +0000)
> 
> are available in the git repository at:
> 
>   git://git.yoctoproject.org/poky-contrib akanavin/gobject-introspection-experimental
>   http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=akanavin/gobject-introspection-experimental
> 
> Alexander Kanavin (29):
>   qemu.bbclass: add qemu_wrapper_cmdline()
>   qemu: don't blacklist mips64 when building runners of userspace
>     binaries
>   gobject-introspection: add the recipe
>   gtk-doc-stub: remove introspection stubs
>   gobject-introspection.bbclass: add a class that enables gobject
>     introspection
>   python3-native: use the previous version of python-config script
>   avahi-ui: remove the dependency on python-pygtk by disabling
>     avahi-discover
>   python-pygtk: remove the recipe
>   avahi: enable gobject-introspection
>   udev: enable gobject introspection
>   vala: enable the use of vapigen by packages with vala support
>   gcr: enable generation of vapi files using vapigen
>   gdk-pixbuf: enable gobject introspection
>   gconf: enable gobject-introspection
>   gtk+: enable gobject introspection
>   gtk+3: enable gobject-introspection
>   libsecret: enable generation of vapi files using vapigen
>   clutter: enable gobject introspection
>   vala.bbclass: remove pre-packaged vapigen.m4 from tarballs
>   libsoup-2.4: enable gobject introspection
>   at-spi2-core: enable gobject introspection
>   gstreamer: enable gobject introspection
>   gnomebase.bbclass: enable gobject introspection
>   webkitgtk: enable gobject introspection
>   gcr: disable gobject introspection on x86-64 for now
>   gcr: disable gobject-introspection on mips64
>   libsecret: disable gobject-introspection on mips64
>   webkitgtk: disable gobject-introspection on powerpc
>   packagegroup-core-x11-sato: add python-pygobject and gtk+3
> 
>  meta/classes/gnomebase.bbclass                     |   5 +-
>  meta/classes/gobject-introspection.bbclass         |  36 +++
>  meta/classes/qemu.bbclass                          |  23 +-
>  meta/classes/vala.bbclass                          |   6 +
>  meta/conf/distro/include/distro_alias.inc          |   1 -
>  meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb |  16 +-
>  meta/recipes-connectivity/avahi/avahi.inc          |  12 +-
>  .../packagegroups/packagegroup-self-hosted.bb      |   1 -
>  meta/recipes-core/udev/udev.inc                    |  10 +-
>  ...file.am-don-t-hardcode-g-ir-compiler-name.patch |  27 ++
>  ...c-use-PKG_CONFIG_SYSROOT_PATH-when-findin.patch |  32 +++
>  ....am-use-libtool-when-running-g-ir-scanner.patch |  26 ++
>  ...c-add-sysroot-path-to-GI_DATADIR-don-t-se.patch |  41 +++
>  .../python/python-pygobject_2.28.3.bb              |  53 ----
>  .../python/python-pygobject_3.18.0.bb              |  29 ++
>  .../python/python-pygtk/acinclude.m4               |  90 ------
>  .../add-gtk-types.defs-into-gdk.c-dependence.patch |  32 ---
>  .../python/python-pygtk/fix-gtkunixprint.patch     |  20 --
>  .../python/python-pygtk/fix-pygtk-2.0.pc.patch     |  13 -
>  .../python/python-pygtk/nodocs.patch               |  15 -
>  .../prevent_to_get_display_during_import.patch     |  16 --
>  .../python/python-pygtk/python-pygtk2/acinclude.m4 |  90 ------
>  .../update-dependences-of-defs.c.patch             |  38 ---
>  .../recipes-devtools/python/python-pygtk_2.24.0.bb |  55 ----
>  .../python/python3-native_3.4.3.bb                 |   1 +
>  ...the-shell-version-of-python-config-that-w.patch |  38 +++
>  meta/recipes-devtools/qemu/qemu-targets.inc        |   2 +-
>  meta/recipes-devtools/vala/vala.inc                |  10 +
>  ...001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch |  38 +++
>  meta/recipes-devtools/vala/vala_0.28.0.bb          |   4 +-
>  meta/recipes-gnome/gcr/gcr_3.16.0.bb               |  22 +-
>  meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb |   7 +-
>  meta/recipes-gnome/gnome/gconf_3.2.6.bb            |   6 +-
>  ...config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch |  99 +++++++
>  ...01-giscanner-add-a-use-ldd-wrapper-option.patch |  48 ++++
>  ...1-giscanner-add-use-binary-wrapper-option.patch |  52 ++++
>  ...c-add-host-gi-and-gi-cross-wrapper-option.patch | 158 +++++++++++
>  .../gobject-introspection_1.44.0.bb                | 146 ++++++++++
>  .../gsettings-desktop-schemas_3.16.1.bb            |   2 +-
>  meta/recipes-gnome/gtk+/gtk+.inc                   |   9 +-
>  meta/recipes-gnome/gtk+/gtk+3.inc                  |  10 +-
>  ...t-Import-introspection-stub-machinery-too.patch | 305 +++++++++++++++++++++
>  .../recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb |   6 +-
>  meta/recipes-gnome/librsvg/librsvg_2.40.10.bb      |   3 -
>  meta/recipes-gnome/libsecret/libsecret_0.18.2.bb   |  14 +-
>  ...ation-paths-for-.gir-and-.typelib-as-reco.patch |  32 +++
>  meta/recipes-gnome/libwnck/libwnck3_3.14.0.bb      |   3 +-
>  meta/recipes-graphics/clutter/clutter-1.0.inc      |   5 +-
>  meta/recipes-graphics/clutter/clutter-gst-3.0.inc  |   4 +-
>  meta/recipes-graphics/clutter/clutter-gtk-1.0.inc  |   3 +-
>  meta/recipes-graphics/cogl/cogl-1.0.inc            |   8 +-
>  meta/recipes-graphics/mx/mx.inc                    |   5 +-
>  meta/recipes-graphics/pango/pango.inc              |   3 +-
>  ...op-introspection-macros-from-acinclude.m4.patch | 121 ++++++++
>  meta/recipes-graphics/pango/pango_1.36.8.bb        |   1 +
>  .../recipes-multimedia/gstreamer/gst-player_git.bb |   2 +-
>  .../gstreamer/gst-plugins-package.inc              |   1 +
>  ...-don-t-hardcode-libtool-name-when-running.patch |  42 +++
>  .../gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb    |   1 +
>  .../gstreamer/gstreamer1.0-plugins-base.inc        |   4 +
>  ...-don-t-hardcode-libtool-name-when-running.patch | 168 ++++++++++++
>  ...-prefix-calls-to-pkg-config-with-PKG_CONF.patch | 298 ++++++++++++++++++++
>  ...ssing-include-directories-when-calling-in.patch |  28 ++
>  ...ncorrect-reference-to-gstreamer-sdp-in-Ma.patch |  27 ++
>  .../gstreamer/gstreamer1.0-plugins-base_1.4.5.bb   |   4 +
>  .../gstreamer/gstreamer1.0-plugins.inc             |  10 +-
>  .../gstreamer/gstreamer1.0-rtsp-server.inc         |   9 +-
>  ...ode-libtool-name-when-using-introspection.patch |  27 ++
>  .../gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb    |   2 +
>  meta/recipes-multimedia/gstreamer/gstreamer1.0.inc |  12 +-
>  .../packagegroups/packagegroup-core-x11-sato.bb    |   2 +
>  ...Introspection.cmake-prefix-variables-obta.patch |  27 ++
>  ...ng-introspection-files-add-CMAKE_C_FLAGS-.patch |  40 +++
>  meta/recipes-sato/webkit/webkitgtk_2.8.5.bb        |  13 +-
>  meta/recipes-support/atk/at-spi2-core_2.16.0.bb    |   4 +-
>  meta/recipes-support/atk/atk_2.16.0.bb             |   2 +-
>  meta/recipes-support/libsoup/libsoup-2.4_2.50.0.bb |   2 +-
>  ...file.am-install-gir-typelib-using-datadir.patch |  34 +++
>  meta/recipes-support/vte/vte.inc                   |   4 +-
>  meta/recipes-support/vte/vte_0.28.2.bb             |   3 +-
>  80 files changed, 2106 insertions(+), 512 deletions(-)
>  create mode 100644 meta/classes/gobject-introspection.bbclass
>  create mode 100644 meta/recipes-core/udev/udev/0001-Makefile.am-don-t-hardcode-g-ir-compiler-name.patch
>  create mode 100644 meta/recipes-core/udev/udev/0001-configure.ac-use-PKG_CONFIG_SYSROOT_PATH-when-findin.patch
>  create mode 100644 meta/recipes-core/udev/udev/0002-Makefile.am-use-libtool-when-running-g-ir-scanner.patch
>  create mode 100644 meta/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
>  delete mode 100644 meta/recipes-devtools/python/python-pygobject_2.28.3.bb
>  create mode 100644 meta/recipes-devtools/python/python-pygobject_3.18.0.bb
>  delete mode 100644 meta/recipes-devtools/python/python-pygtk/acinclude.m4
>  delete mode 100644 meta/recipes-devtools/python/python-pygtk/add-gtk-types.defs-into-gdk.c-dependence.patch
>  delete mode 100644 meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch
>  delete mode 100644 meta/recipes-devtools/python/python-pygtk/fix-pygtk-2.0.pc.patch
>  delete mode 100644 meta/recipes-devtools/python/python-pygtk/nodocs.patch
>  delete mode 100644 meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch
>  delete mode 100644 meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4
>  delete mode 100644 meta/recipes-devtools/python/python-pygtk/update-dependences-of-defs.c.patch
>  delete mode 100644 meta/recipes-devtools/python/python-pygtk_2.24.0.bb
>  create mode 100644 meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch
>  create mode 100644 meta/recipes-devtools/vala/vala/0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch
>  create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
>  create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch
>  create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch
>  create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-and-gi-cross-wrapper-option.patch
>  create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection_1.44.0.bb
>  create mode 100644 meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch
>  create mode 100644 meta/recipes-gnome/libwnck/files/0001-Fix-installation-paths-for-.gir-and-.typelib-as-reco.patch
>  create mode 100644 meta/recipes-graphics/pango/pango/0001-Drop-introspection-macros-from-acinclude.m4.patch
>  create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
>  create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
>  create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch
>  create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch
>  create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch
>  create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch
>  create mode 100644 meta/recipes-sato/webkit/files/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
>  create mode 100644 meta/recipes-sato/webkit/files/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch
>  create mode 100644 meta/recipes-support/vte/vte-0.28.2/0001-Makefile.am-install-gir-typelib-using-datadir.patch
> 



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-10 14:31 ` [PATCH 00/29] Add gobject introspection support to oe-core Mark Hatle
@ 2015-11-10 15:36   ` Alexander Kanavin
  2015-11-10 16:39     ` Mark Hatle
  0 siblings, 1 reply; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-10 15:36 UTC (permalink / raw)
  To: Mark Hatle, openembedded-core

On 11/10/2015 04:31 PM, Mark Hatle wrote:
> Is there a way that the qemu calls can be replaced by calls to an actual running
> board (via SSH perhaps) to get the necessary information?  While inconvenient
> this might be a valid workaround.

Theoretically, yes. Copy the sysroot and the build tree to the board (to 
some safe location, obviously), then execute the arch-dependent bits of 
the process remotely, then copy the output files back. Slow, but doable. 
The executable wrapper mechanism for that is already provided by the 
patchset.

I would however first seriously look into reengineering g-o so that it's 
architecture-independent, and doesn't require such awful contortions. 
Primarily, two things:
1) It should be easy to build transient introspection binaries for the 
native architecture, instead of building them for the target together 
with the rest of the package. Those binaries produce textual output 
(essentially a list of classes/signals/properties) which is 
architecture-independent.
2) The binary introspection database in .typelib files should not be a 
raw dump of a C structure, and should be actually the same on all 
architectures.

> Also is there any facility to caching the gobject responses (other then standard
> sstate-cache) so for machine that do not have QEMU support we can used a cached
> set of responses?  (I'm not sure if these responses could be considered to be a
> global cache, or if they are distribution specific in configuration.  Likely the
> later.)

This requires custom bitbake support I'm afraid, a specialist needs to 
answer this.



Alex


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-10 15:36   ` Alexander Kanavin
@ 2015-11-10 16:39     ` Mark Hatle
  2015-11-10 17:40       ` Burton, Ross
                         ` (2 more replies)
  0 siblings, 3 replies; 67+ messages in thread
From: Mark Hatle @ 2015-11-10 16:39 UTC (permalink / raw)
  To: Alexander Kanavin, openembedded-core

On 11/10/15 9:36 AM, Alexander Kanavin wrote:
> On 11/10/2015 04:31 PM, Mark Hatle wrote:
>> Is there a way that the qemu calls can be replaced by calls to an actual running
>> board (via SSH perhaps) to get the necessary information?  While inconvenient
>> this might be a valid workaround.
> 
> Theoretically, yes. Copy the sysroot and the build tree to the board (to 
> some safe location, obviously), then execute the arch-dependent bits of 
> the process remotely, then copy the output files back. Slow, but doable. 
> The executable wrapper mechanism for that is already provided by the 
> patchset.
> 
> I would however first seriously look into reengineering g-o so that it's 
> architecture-independent, and doesn't require such awful contortions. 

I don't disagree with you there...

> Primarily, two things:
> 1) It should be easy to build transient introspection binaries for the 
> native architecture, instead of building them for the target together 
> with the rest of the package. Those binaries produce textual output 
> (essentially a list of classes/signals/properties) which is 
> architecture-independent.
> 2) The binary introspection database in .typelib files should not be a 
> raw dump of a C structure, and should be actually the same on all 
> architectures.
> 
>> Also is there any facility to caching the gobject responses (other then standard
>> sstate-cache) so for machine that do not have QEMU support we can used a cached
>> set of responses?  (I'm not sure if these responses could be considered to be a
>> global cache, or if they are distribution specific in configuration.  Likely the
>> later.)
> 
> This requires custom bitbake support I'm afraid, a specialist needs to 
> answer this.
> 

Let me rephrase.  Instead of calling out to qemu (or a real target) for a
gobject and result.  Can the result be cached (like we do with the config-site
info?)  This would allow me to run say a MIPS64 n64 gobject build, cache the
results and use it on my octeon3 build (which can't run in QEMU.)

--Mark

> 
> Alex
> 



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-10 16:39     ` Mark Hatle
@ 2015-11-10 17:40       ` Burton, Ross
  2015-11-10 18:25         ` Mark Hatle
  2015-11-10 23:10       ` Phil Blundell
  2015-11-11 12:45       ` Alexander Kanavin
  2 siblings, 1 reply; 67+ messages in thread
From: Burton, Ross @ 2015-11-10 17:40 UTC (permalink / raw)
  To: Mark Hatle; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 714 bytes --]

On 10 November 2015 at 16:39, Mark Hatle <mark.hatle@windriver.com> wrote:

> Let me rephrase.  Instead of calling out to qemu (or a real target) for a
> gobject and result.  Can the result be cached (like we do with the
> config-site
> info?)  This would allow me to run say a MIPS64 n64 gobject build, cache
> the
> results and use it on my octeon3 build (which can't run in QEMU.)
>

The metadata contains stuff like type sizes and alignment but wouldn't it
be possible to have some sort of map from machine to close-enough qemu
machine?  So for octeon3 is qemumips64 is close enough, run that.

(to be honest I thought the qemu runner support as used by the postinsts
already did this)

Ross

[-- Attachment #2: Type: text/html, Size: 1192 bytes --]

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-10 17:40       ` Burton, Ross
@ 2015-11-10 18:25         ` Mark Hatle
  2015-11-10 22:39           ` Richard Purdie
  0 siblings, 1 reply; 67+ messages in thread
From: Mark Hatle @ 2015-11-10 18:25 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

On 11/10/15 11:40 AM, Burton, Ross wrote:
> 
> On 10 November 2015 at 16:39, Mark Hatle <mark.hatle@windriver.com
> <mailto:mark.hatle@windriver.com>> wrote:
> 
>     Let me rephrase.  Instead of calling out to qemu (or a real target) for a
>     gobject and result.  Can the result be cached (like we do with the config-site
>     info?)  This would allow me to run say a MIPS64 n64 gobject build, cache the
>     results and use it on my octeon3 build (which can't run in QEMU.)
> 
> 
> The metadata contains stuff like type sizes and alignment but wouldn't it be
> possible to have some sort of map from machine to close-enough qemu machine?  So
> for octeon3 is qemumips64 is close enough, run that.
> 
> (to be honest I thought the qemu runner support as used by the postinsts already
> did this)

That would work in many cases.. the problem is that it requires "yet another"
sysroot or whatnot to be able to build the runner.

(I think QEMU supports pretty much all of the major, and some minor
architectures these days... it just doesn't support many of the semi-specific
optimizations.)

--Mark

> Ross



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-10 18:25         ` Mark Hatle
@ 2015-11-10 22:39           ` Richard Purdie
  0 siblings, 0 replies; 67+ messages in thread
From: Richard Purdie @ 2015-11-10 22:39 UTC (permalink / raw)
  To: Mark Hatle; +Cc: OE-core

On Tue, 2015-11-10 at 12:25 -0600, Mark Hatle wrote:
> On 11/10/15 11:40 AM, Burton, Ross wrote:
> > 
> > On 10 November 2015 at 16:39, Mark Hatle <mark.hatle@windriver.com
> > <mailto:mark.hatle@windriver.com>> wrote:
> > 
> >     Let me rephrase.  Instead of calling out to qemu (or a real target) for a
> >     gobject and result.  Can the result be cached (like we do with the config-site
> >     info?)  This would allow me to run say a MIPS64 n64 gobject build, cache the
> >     results and use it on my octeon3 build (which can't run in QEMU.)
> > 
> > 
> > The metadata contains stuff like type sizes and alignment but wouldn't it be
> > possible to have some sort of map from machine to close-enough qemu machine?  So
> > for octeon3 is qemumips64 is close enough, run that.
> > 
> > (to be honest I thought the qemu runner support as used by the postinsts already
> > did this)
> 
> That would work in many cases.. the problem is that it requires "yet another"
> sysroot or whatnot to be able to build the runner.
> 
> (I think QEMU supports pretty much all of the major, and some minor
> architectures these days... it just doesn't support many of the semi-specific
> optimizations.)

As I understand it, there are at least two ways we could solve this:

a) build a native version of the recipe and run that to get the
introspection data
b) cache the introspection data and reuse it

There are obviously advantages and disadvantages to each but as I
understand it the data is architecture independent.

Using qemu is the least ugly from a build performance impact though
without getting into cache problems.

Cheers,

Richard



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-10 16:39     ` Mark Hatle
  2015-11-10 17:40       ` Burton, Ross
@ 2015-11-10 23:10       ` Phil Blundell
  2015-11-10 23:40         ` Burton, Ross
  2015-11-11 12:45       ` Alexander Kanavin
  2 siblings, 1 reply; 67+ messages in thread
From: Phil Blundell @ 2015-11-10 23:10 UTC (permalink / raw)
  To: Mark Hatle; +Cc: openembedded-core

On Tue, 2015-11-10 at 10:39 -0600, Mark Hatle wrote:
> Let me rephrase.  Instead of calling out to qemu (or a real target) for a
> gobject and result.  Can the result be cached (like we do with the config-site
> info?)  This would allow me to run say a MIPS64 n64 gobject build, cache the
> results and use it on my octeon3 build (which can't run in QEMU.)

Why does gobject-introspection (presumably giscanner, right?) need to
run binaries on the target at all?  I thought it operated mostly on the
source code.

p.




^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-10 23:10       ` Phil Blundell
@ 2015-11-10 23:40         ` Burton, Ross
  2015-11-11  0:15           ` Mark Hatle
                             ` (2 more replies)
  0 siblings, 3 replies; 67+ messages in thread
From: Burton, Ross @ 2015-11-10 23:40 UTC (permalink / raw)
  To: Phil Blundell; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 457 bytes --]

On 10 November 2015 at 23:10, Phil Blundell <pb@pbcl.net> wrote:

> Why does gobject-introspection (presumably giscanner, right?) need to
> run binaries on the target at all?  I thought it operated mostly on the
> source code.
>

Same reason gtk-doc's scanner executes code: vast amounts of relevant
information can't reliably be extracted from source but is trivial to
introspect at runtime (GObject hierarchy, properties, signals, etc).

Ross

[-- Attachment #2: Type: text/html, Size: 862 bytes --]

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-10 23:40         ` Burton, Ross
@ 2015-11-11  0:15           ` Mark Hatle
  2015-11-11  3:29           ` Khem Raj
  2015-11-11 12:53           ` Alexander Kanavin
  2 siblings, 0 replies; 67+ messages in thread
From: Mark Hatle @ 2015-11-11  0:15 UTC (permalink / raw)
  To: Burton, Ross, Phil Blundell; +Cc: OE-core

On 11/10/15 5:40 PM, Burton, Ross wrote:
> 
> On 10 November 2015 at 23:10, Phil Blundell <pb@pbcl.net <mailto:pb@pbcl.net>>
> wrote:
> 
>     Why does gobject-introspection (presumably giscanner, right?) need to
>     run binaries on the target at all?  I thought it operated mostly on the
>     source code.
> 
> 
> Same reason gtk-doc's scanner executes code: vast amounts of relevant
> information can't reliably be extracted from source but is trivial to introspect
> at runtime (GObject hierarchy, properties, signals, etc).

I wonder if any of this could be 'discovered' via objdump or readelf.

In the past we did something like this by setting 'return' values as strings in
a program.  We let the compiler optimize the settings (ensuring only the real
value was retained) and then used objdump to read the string out of the binary.
 It worked really well for this type of thing.

Problem of course is when the binary is not self sufficient and requires others
to be linked so the optimization is not possible.

--Mark

> Ross



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-10 23:40         ` Burton, Ross
  2015-11-11  0:15           ` Mark Hatle
@ 2015-11-11  3:29           ` Khem Raj
  2015-11-11 12:53           ` Alexander Kanavin
  2 siblings, 0 replies; 67+ messages in thread
From: Khem Raj @ 2015-11-11  3:29 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 958 bytes --]


> On Nov 10, 2015, at 3:40 PM, Burton, Ross <ross.burton@intel.com> wrote:
> 
> 
> On 10 November 2015 at 23:10, Phil Blundell <pb@pbcl.net <mailto:pb@pbcl.net>> wrote:
> Why does gobject-introspection (presumably giscanner, right?) need to
> run binaries on the target at all?  I thought it operated mostly on the
> source code.
> 
> Same reason gtk-doc's scanner executes code: vast amounts of relevant information can't reliably be extracted from source but is trivial to introspect at runtime (GObject hierarchy, properties, signals, etc).

so its not truly cross build friendly, We should try to see if this can be fed in artificial information which can be stored in some config files, similar to autoconf caching IMO.

> 
> Ross
> -- 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


[-- Attachment #2: Type: text/html, Size: 2088 bytes --]

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-10 16:39     ` Mark Hatle
  2015-11-10 17:40       ` Burton, Ross
  2015-11-10 23:10       ` Phil Blundell
@ 2015-11-11 12:45       ` Alexander Kanavin
  2015-11-11 13:34         ` Mark Hatle
  2 siblings, 1 reply; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-11 12:45 UTC (permalink / raw)
  To: Mark Hatle, openembedded-core

On 11/10/2015 06:39 PM, Mark Hatle wrote:

>> This requires custom bitbake support I'm afraid, a specialist needs to
>> answer this.
>>
>
> Let me rephrase.  Instead of calling out to qemu (or a real target) for a
> gobject and result.  Can the result be cached (like we do with the config-site
> info?)  This would allow me to run say a MIPS64 n64 gobject build, cache the
> results and use it on my octeon3 build (which can't run in QEMU.)

The results in this case are .typelib files. They are raw dumps of a C 
structure in memory - different compilers may produce different binary 
representations of those. I wouldn't trust that they are the same and 
that it's okay to copy them around like this. What makes you confident 
that they are?


Alex


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-10 23:40         ` Burton, Ross
  2015-11-11  0:15           ` Mark Hatle
  2015-11-11  3:29           ` Khem Raj
@ 2015-11-11 12:53           ` Alexander Kanavin
  2015-11-11 13:14             ` Alexander Kanavin
  2 siblings, 1 reply; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-11 12:53 UTC (permalink / raw)
  To: openembedded-core

On 11/11/2015 01:40 AM, Burton, Ross wrote:
>
> On 10 November 2015 at 23:10, Phil Blundell <pb@pbcl.net
> <mailto:pb@pbcl.net>> wrote:
>
>     Why does gobject-introspection (presumably giscanner, right?) need to
>     run binaries on the target at all?  I thought it operated mostly on the
>     source code.
>
>
> Same reason gtk-doc's scanner executes code: vast amounts of relevant
> information can't reliably be extracted from source but is trivial to
> introspect at runtime (GObject hierarchy, properties, signals, etc).

Yep; the real problem is that GObject is implementing OOP semantics in a 
language that doesn't natively support them. So you can't extract 
information about those either from the source code, or from the 
finished binaries, or during binary build. The only way to do it is to 
run the actual binary and ask it to describe itself.


Alex



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-11 12:53           ` Alexander Kanavin
@ 2015-11-11 13:14             ` Alexander Kanavin
  0 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-11 13:14 UTC (permalink / raw)
  To: openembedded-core

On 11/11/2015 02:53 PM, Alexander Kanavin wrote:

>> Same reason gtk-doc's scanner executes code: vast amounts of relevant
>> information can't reliably be extracted from source but is trivial to
>> introspect at runtime (GObject hierarchy, properties, signals, etc).
>
> Yep; the real problem is that GObject is implementing OOP semantics in a
> language that doesn't natively support them. So you can't extract
> information about those either from the source code, or from the
> finished binaries, or during binary build. The only way to do it is to
> run the actual binary and ask it to describe itself.

FWIW, I also think that GObject made a disastrous decision to avoid a 
high-level IDL with a preprocessor-to-C tool to describe those things 
(similar to what Qt does with Qt-specific extensions to C++); instead, 
they force everyone to write GObject boilerplate directly in C, which is 
absolutely horrible to read, write and maintain. Just try reading the 
GObject developer's manual without getting a headache.

It's partly out of these frustrations that Vala was born, and Gnome made 
the decision to switch to Javascript on top of gobject introspection.

Alex


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-11 12:45       ` Alexander Kanavin
@ 2015-11-11 13:34         ` Mark Hatle
  2015-11-11 13:48           ` Alexander Kanavin
  2015-11-11 13:58           ` Alexander Kanavin
  0 siblings, 2 replies; 67+ messages in thread
From: Mark Hatle @ 2015-11-11 13:34 UTC (permalink / raw)
  To: Alexander Kanavin, openembedded-core

On 11/11/15 6:45 AM, Alexander Kanavin wrote:
> On 11/10/2015 06:39 PM, Mark Hatle wrote:
> 
>>> This requires custom bitbake support I'm afraid, a specialist needs to
>>> answer this.
>>>
>>
>> Let me rephrase.  Instead of calling out to qemu (or a real target) for a
>> gobject and result.  Can the result be cached (like we do with the config-site
>> info?)  This would allow me to run say a MIPS64 n64 gobject build, cache the
>> results and use it on my octeon3 build (which can't run in QEMU.)
> 
> The results in this case are .typelib files. They are raw dumps of a C 
> structure in memory - different compilers may produce different binary 
> representations of those. I wouldn't trust that they are the same and 
> that it's okay to copy them around like this. What makes you confident 
> that they are?

For the same architecture (i.e. MIPS64) and the same ABI (n64), the resulting
data structures, packing and similar should all be standard.  Only the generated
instructions and execution order would/could change.

So you would need a way to generate, cache, store the results by arch/abi combo
in order to do this.  The issue of course is that you would need to declare the
arch and abi -- the tune files are the natural place to do this (we really are
declaring it there ANYWAY), and the tune features in many cases may have already
done this...

Something to consider -- the alternative is the dual object (one generic
[arch/abi], one optimized for the tune) that can be used to run on QEMU.  Twice
the compile time but should work fine.


Also has anyone looked at the .typelib information and determined if any of it
is available via direct inspection via readelf, dwarf interpretation or other
method that does not require execution?  Is there a definition of the .typelib
information anywhere and some simple examples of how its generated by the
runtime objects?  (To pursue this, the way forward is to determine a way to
generate the .typelib by reading the chosen binaries in some way -- and then
running a 'ptest' like check that the generated and runtime versions result in
the same data.)

--Mark

> 
> Alex
> 



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-11 13:34         ` Mark Hatle
@ 2015-11-11 13:48           ` Alexander Kanavin
  2015-11-11 13:50             ` Ricardo Ribalda Delgado
  2015-11-11 13:58           ` Alexander Kanavin
  1 sibling, 1 reply; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-11 13:48 UTC (permalink / raw)
  To: Mark Hatle, openembedded-core

On 11/11/2015 03:34 PM, Mark Hatle wrote:

> Also has anyone looked at the .typelib information and determined if any of it
> is available via direct inspection via readelf, dwarf interpretation or other
> method that does not require execution?  Is there a definition of the .typelib
> information anywhere and some simple examples of how its generated by the
> runtime objects?  (To pursue this, the way forward is to determine a way to
> generate the .typelib by reading the chosen binaries in some way -- and then
> running a 'ptest' like check that the generated and runtime versions result in
> the same data.)

You can simply take a look at any of the .gir files: they are XMLs that 
are used to generate typelibs and contain essentially the same information.

I think it's totally unrealistic to extract all the high-level OOP 
semantics from .so libraries with readelf and friends.

For instance, gstreamer pipelines:


     <class name="Bin"
            c:symbol-prefix="bin"
            c:type="GstBin"
            parent="Element"
            glib:type-name="GstBin"
            glib:get-type="gst_bin_get_type"
            glib:type-struct="BinClass">
       <implements name="ChildProxy"/>
       <constructor name="new" c:identifier="gst_bin_new">
         <return-value transfer-ownership="none">
           <type name="Element" c:type="GstElement*"/>
         </return-value>
         <parameters>
           <parameter name="name"
                      transfer-ownership="none"
                      nullable="1"
                      allow-none="1">
             <doc xml:space="preserve">the name of the new bin</doc>
             <type name="utf8" c:type="const gchar*"/>
           </parameter>
         </parameters>
       </constructor>
       <virtual-method name="add_element">
         <return-value transfer-ownership="none">
           <type name="gboolean" c:type="gboolean"/>
         </return-value>
         <parameters>
...

etc etc etc.


Alex



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-11 13:48           ` Alexander Kanavin
@ 2015-11-11 13:50             ` Ricardo Ribalda Delgado
  2015-11-11 13:55               ` Alexander Kanavin
  0 siblings, 1 reply; 67+ messages in thread
From: Ricardo Ribalda Delgado @ 2015-11-11 13:50 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: openembedded-core

Hello Alexander

Can you point to a .git file with architecture-dependent data.

I would love to help on this issue. I want to use the python api for gstream.

Thanks



On Wed, Nov 11, 2015 at 2:48 PM, Alexander Kanavin
<alexander.kanavin@linux.intel.com> wrote:
> On 11/11/2015 03:34 PM, Mark Hatle wrote:
>
>> Also has anyone looked at the .typelib information and determined if any
>> of it
>> is available via direct inspection via readelf, dwarf interpretation or
>> other
>> method that does not require execution?  Is there a definition of the
>> .typelib
>> information anywhere and some simple examples of how its generated by the
>> runtime objects?  (To pursue this, the way forward is to determine a way
>> to
>> generate the .typelib by reading the chosen binaries in some way -- and
>> then
>> running a 'ptest' like check that the generated and runtime versions
>> result in
>> the same data.)
>
>
> You can simply take a look at any of the .gir files: they are XMLs that are
> used to generate typelibs and contain essentially the same information.
>
> I think it's totally unrealistic to extract all the high-level OOP semantics
> from .so libraries with readelf and friends.
>
> For instance, gstreamer pipelines:
>
>
>     <class name="Bin"
>            c:symbol-prefix="bin"
>            c:type="GstBin"
>            parent="Element"
>            glib:type-name="GstBin"
>            glib:get-type="gst_bin_get_type"
>            glib:type-struct="BinClass">
>       <implements name="ChildProxy"/>
>       <constructor name="new" c:identifier="gst_bin_new">
>         <return-value transfer-ownership="none">
>           <type name="Element" c:type="GstElement*"/>
>         </return-value>
>         <parameters>
>           <parameter name="name"
>                      transfer-ownership="none"
>                      nullable="1"
>                      allow-none="1">
>             <doc xml:space="preserve">the name of the new bin</doc>
>             <type name="utf8" c:type="const gchar*"/>
>           </parameter>
>         </parameters>
>       </constructor>
>       <virtual-method name="add_element">
>         <return-value transfer-ownership="none">
>           <type name="gboolean" c:type="gboolean"/>
>         </return-value>
>         <parameters>
> ...
>
> etc etc etc.
>
>
>
> Alex
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



-- 
Ricardo Ribalda


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-11 13:50             ` Ricardo Ribalda Delgado
@ 2015-11-11 13:55               ` Alexander Kanavin
  2015-11-11 13:57                 ` Ricardo Ribalda Delgado
  0 siblings, 1 reply; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-11 13:55 UTC (permalink / raw)
  To: Ricardo Ribalda Delgado; +Cc: openembedded-core

On 11/11/2015 03:50 PM, Ricardo Ribalda Delgado wrote:
> Can you point to a .git file with architecture-dependent data.

Gir files do not contain architecture-dependent data. Typelib files do.

> I would love to help on this issue. I want to use the python api for gstream.

You can checkout my branch on poky-contrib (see the original message in 
the thread), and then follow the instructions to build an image and try 
out the python gobject introspection in it (again, see the original 
thread message for instructions).

Alex


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-11 13:55               ` Alexander Kanavin
@ 2015-11-11 13:57                 ` Ricardo Ribalda Delgado
  2015-11-11 13:59                   ` Alexander Kanavin
  0 siblings, 1 reply; 67+ messages in thread
From: Ricardo Ribalda Delgado @ 2015-11-11 13:57 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: openembedded-core

Hello Alexander



On Wed, Nov 11, 2015 at 2:55 PM, Alexander Kanavin
<alexander.kanavin@linux.intel.com> wrote:

Unfortunately, my target arch is x86_64... I guess I could try to
solve the endless loop issue with the helper binary.

Regards!

>
> Alex



-- 
Ricardo Ribalda


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-11 13:34         ` Mark Hatle
  2015-11-11 13:48           ` Alexander Kanavin
@ 2015-11-11 13:58           ` Alexander Kanavin
  2015-11-13 13:53             ` Mark Hatle
  1 sibling, 1 reply; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-11 13:58 UTC (permalink / raw)
  To: Mark Hatle, openembedded-core

On 11/11/2015 03:34 PM, Mark Hatle wrote:

> For the same architecture (i.e. MIPS64) and the same ABI (n64), the resulting
> data structures, packing and similar should all be standard.  Only the generated
> instructions and execution order would/could change.
>
> So you would need a way to generate, cache, store the results by arch/abi combo
> in order to do this.  The issue of course is that you would need to declare the
> arch and abi -- the tune files are the natural place to do this (we really are
> declaring it there ANYWAY), and the tune features in many cases may have already
> done this...
>
> Something to consider -- the alternative is the dual object (one generic
> [arch/abi], one optimized for the tune) that can be used to run on QEMU.  Twice
> the compile time but should work fine.

Hmm, maybe it's simpler to just fix QEMU so it can handle the missing 
instructions?


Alex



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-11 13:57                 ` Ricardo Ribalda Delgado
@ 2015-11-11 13:59                   ` Alexander Kanavin
  0 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-11 13:59 UTC (permalink / raw)
  To: Ricardo Ribalda Delgado; +Cc: openembedded-core

On 11/11/2015 03:57 PM, Ricardo Ribalda Delgado wrote:

> Unfortunately, my target arch is x86_64... I guess I could try to
> solve the endless loop issue with the helper binary.

That issue only shows up with the gcr package. All other packages are 
able to generate introspection files onx 86_64 just fine. Do give it a try.

Alex



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-11 13:58           ` Alexander Kanavin
@ 2015-11-13 13:53             ` Mark Hatle
  2015-11-13 16:12               ` alexander.kanavin
  0 siblings, 1 reply; 67+ messages in thread
From: Mark Hatle @ 2015-11-13 13:53 UTC (permalink / raw)
  To: Alexander Kanavin, openembedded-core

On 11/11/15 7:58 AM, Alexander Kanavin wrote:
> On 11/11/2015 03:34 PM, Mark Hatle wrote:
> 
>> For the same architecture (i.e. MIPS64) and the same ABI (n64), the resulting
>> data structures, packing and similar should all be standard.  Only the generated
>> instructions and execution order would/could change.
>>
>> So you would need a way to generate, cache, store the results by arch/abi combo
>> in order to do this.  The issue of course is that you would need to declare the
>> arch and abi -- the tune files are the natural place to do this (we really are
>> declaring it there ANYWAY), and the tune features in many cases may have already
>> done this...
>>
>> Something to consider -- the alternative is the dual object (one generic
>> [arch/abi], one optimized for the tune) that can be used to run on QEMU.  Twice
>> the compile time but should work fine.
> 
> Hmm, maybe it's simpler to just fix QEMU so it can handle the missing 
> instructions?

Unfortunately it's not reasonable in my experience.  The problem is that anyone
who implements a BSP/machine that includes so far unknown instructions to qemu
would be required to implement them.

As most people don't understand the instruction implementation in QEMU, I'm not
sure this is reasonable.

I really want to get the gir support into oe-core, but I'm concerned that doing
things this way is going to cause a significant gap in functionality for many of
the machines that use OE.

--Mark

> 
> Alex
> 



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-13 13:53             ` Mark Hatle
@ 2015-11-13 16:12               ` alexander.kanavin
  2015-11-13 16:31                 ` Mark Hatle
  0 siblings, 1 reply; 67+ messages in thread
From: alexander.kanavin @ 2015-11-13 16:12 UTC (permalink / raw)
  To: Mark Hatle; +Cc: openembedded-core

>> Hmm, maybe it's simpler to just fix QEMU so it can handle the missing
>> instructions?
>
> Unfortunately it's not reasonable in my experience.  The problem is that
> anyone
> who implements a BSP/machine that includes so far unknown instructions to
> qemu
> would be required to implement them.
>
> As most people don't understand the instruction implementation in QEMU,
> I'm not
> sure this is reasonable.

If someone is competent enough to add new instructions to the compiler,
they should be competent enough to figure out how to do the same in QEMU,
no?

Alex


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-13 16:12               ` alexander.kanavin
@ 2015-11-13 16:31                 ` Mark Hatle
  2015-11-16  9:52                   ` Alexander Kanavin
  0 siblings, 1 reply; 67+ messages in thread
From: Mark Hatle @ 2015-11-13 16:31 UTC (permalink / raw)
  To: alexander.kanavin; +Cc: openembedded-core

On 11/13/15 10:12 AM, alexander.kanavin@linux.intel.com wrote:
>>> Hmm, maybe it's simpler to just fix QEMU so it can handle the missing
>>> instructions?
>>
>> Unfortunately it's not reasonable in my experience.  The problem is that
>> anyone
>> who implements a BSP/machine that includes so far unknown instructions to
>> qemu
>> would be required to implement them.
>>
>> As most people don't understand the instruction implementation in QEMU,
>> I'm not
>> sure this is reasonable.
> 
> If someone is competent enough to add new instructions to the compiler,
> they should be competent enough to figure out how to do the same in QEMU,
> no?

That's the problem right there.  The same developers rarely do that work.

The compiler today support many more instructions for a given architecture
family then QEMU models for that same architecture.

IA32 -- some of the current and even some former generate i7 instructions fall
under this problem.  If you host system does not have the same instruction set,
QEMU doesn't know how to emulate everything.

MIPS64 (Such as the Octeon III) is a good example.

PowerPC has many variants as well that QEMU does not support.

It would be wonderful if there was a tie together of what gcc/as and qemu
supported -- at least from an application perspective, but that simply doesn't
happen in the real world.

--Mark

> Alex
> 



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-13 16:31                 ` Mark Hatle
@ 2015-11-16  9:52                   ` Alexander Kanavin
  2015-11-16 16:12                     ` Mark Hatle
  0 siblings, 1 reply; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-16  9:52 UTC (permalink / raw)
  To: Mark Hatle; +Cc: openembedded-core

On 11/13/2015 06:31 PM, Mark Hatle wrote:

> The compiler today support many more instructions for a given architecture
> family then QEMU models for that same architecture.
>
> IA32 -- some of the current and even some former generate i7 instructions fall
> under this problem.  If you host system does not have the same instruction set,
> QEMU doesn't know how to emulate everything.
>
> MIPS64 (Such as the Octeon III) is a good example.
>
> PowerPC has many variants as well that QEMU does not support.
>
> It would be wonderful if there was a tie together of what gcc/as and qemu
> supported -- at least from an application perspective, but that simply doesn't
> happen in the real world.

How about approaching this from the other side then? Machines can be 
defined so that if gobject introspection distro feature is enabled, then 
the standard qemu-supported compiler settings are used (same as 
qemumips64 for instance). If not, then people can tweak the compiler to 
their heart's content.


Alex



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-16  9:52                   ` Alexander Kanavin
@ 2015-11-16 16:12                     ` Mark Hatle
  2015-11-17 14:06                       ` Alexander Kanavin
  0 siblings, 1 reply; 67+ messages in thread
From: Mark Hatle @ 2015-11-16 16:12 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: openembedded-core

On 11/16/15 3:52 AM, Alexander Kanavin wrote:
> On 11/13/2015 06:31 PM, Mark Hatle wrote:
> 
>> The compiler today support many more instructions for a given architecture
>> family then QEMU models for that same architecture.
>>
>> IA32 -- some of the current and even some former generate i7 instructions fall
>> under this problem.  If you host system does not have the same instruction set,
>> QEMU doesn't know how to emulate everything.
>>
>> MIPS64 (Such as the Octeon III) is a good example.
>>
>> PowerPC has many variants as well that QEMU does not support.
>>
>> It would be wonderful if there was a tie together of what gcc/as and qemu
>> supported -- at least from an application perspective, but that simply doesn't
>> happen in the real world.
> 
> How about approaching this from the other side then? Machines can be 
> defined so that if gobject introspection distro feature is enabled, then 
> the standard qemu-supported compiler settings are used (same as 
> qemumips64 for instance). If not, then people can tweak the compiler to 
> their heart's content.

Problem is that gobject can't be limited by a 'machine'.  Since any machine
needs to theoretically have access to gobject built components.  (ignoring that
machines should never specify distro features...)

I think a small group of folks that are interested in this work and who
understand facets of it should get together and try to identify the problem and
come up with an alternative solution.

I have a lot of experience with pulling out internal structure size, packing,
order, etc from generated binaries via objdump, readelf and other mechanisms --
but I have no experience using gobject itself.

So if we could get together to identify how a gobject binary is generated -- how
the introspection happens internally -- and the output of the introspection
tool.  It's very likely that I or others can come up with an approach to do the
introspection that doesn't require QEMU.  (It may require the gobject binary
generation having additional information placed in it -- or an introspection to
occur at the time of compilation and saved away in a cache...)  but the point
is, we need to figure out a general solution to this that doesn't require QEMU
for "most things".

(BTW just to reiterate.  I COMPLETELY believe that we need to add gobject
support to oe-core in the next year.  And we need to try to help the gobject
community better support cross compilation as well, if they are receptive --
without dramatically altering there existing work.)

--Mark

> 
> Alex
> 



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-16 16:12                     ` Mark Hatle
@ 2015-11-17 14:06                       ` Alexander Kanavin
  2015-11-17 15:02                         ` Mark Hatle
  0 siblings, 1 reply; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-17 14:06 UTC (permalink / raw)
  To: Mark Hatle; +Cc: openembedded-core

On 11/16/2015 06:12 PM, Mark Hatle wrote:

> I think a small group of folks that are interested in this work and who
> understand facets of it should get together and try to identify the problem and
> come up with an alternative solution.
>
> I have a lot of experience with pulling out internal structure size, packing,
> order, etc from generated binaries via objdump, readelf and other mechanisms --
> but I have no experience using gobject itself.
>
> So if we could get together to identify how a gobject binary is generated -- how
> the introspection happens internally -- and the output of the introspection
> tool.  It's very likely that I or others can come up with an approach to do the
> introspection that doesn't require QEMU.  (It may require the gobject binary
> generation having additional information placed in it -- or an introspection to
> occur at the time of compilation and saved away in a cache...)  but the point
> is, we need to figure out a general solution to this that doesn't require QEMU
> for "most things".

I know GObject fairly well, since I've done a medium-size project with 
it (https://01.org/gsso/) and I think the above is totally unrealistic. 
Below is an explanation why.

The idea of GObject is to make object oriented programming semantics 
(classes, inheritance, methods, properties and signals) available to C 
programmers. This is achieved by implementing a dynamic type system 
called GType. It serves as a register of available types, to which new 
types can be added, and information about existing types can be queried.

This type register is constructed entirely at runtime. When a 
gobject-based library is loaded into memory, it adds the types that are 
defined in the library (for example, classes and interfaces) to the 
register using GType's API.

There are no tools that can extract the type information at source code 
level, or any preprocessor for the special type syntax (like there is 
for example a preprocessor called 'moc' in Qt). In the source code the 
types are defined entirely using C syntax: a really awkward combination 
of macros and function definitions that the macros refer to. The code 
goes straight to the C compiler which of course knows nothing about the 
types. So writing such a tool would basically amount to writing a 
special-purpose C interpreter: not feasible.

When some library's types need to be introspected, a small binary is 
compiled and linked with the library by the introspection build system, 
and then executed. This binary iterates over available types, and asks 
GType to describe them. These descriptions are then written in the XML 
format to the .gir file. We cannot fetch this information directly from 
internal structures of GType, because these structures don't exist on 
disk; they're only created at runtime through executing type definition 
functions. So again, you'd need some kind of bytecode interpreter to 
extract this information from executable objects, which would look a lot 
like QEMU :)

So the bottom line, to generate introspection info, you have to run the 
code of the library that you introspect, either with QEMU, or on target 
hardware, and I don't see a way to avoid this, short of complete rewrite 
of the entire glib ecosystem. If someone wants to have this feature, but 
doesn't have a working QEMU, they should get their act together and fix it.

Alex


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-17 14:06                       ` Alexander Kanavin
@ 2015-11-17 15:02                         ` Mark Hatle
  2015-11-18 16:10                           ` Alexander Kanavin
  0 siblings, 1 reply; 67+ messages in thread
From: Mark Hatle @ 2015-11-17 15:02 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: openembedded-core

On 11/17/15 8:06 AM, Alexander Kanavin wrote:
> On 11/16/2015 06:12 PM, Mark Hatle wrote:
> 
>> I think a small group of folks that are interested in this work and who
>> understand facets of it should get together and try to identify the problem and
>> come up with an alternative solution.
>>
>> I have a lot of experience with pulling out internal structure size, packing,
>> order, etc from generated binaries via objdump, readelf and other mechanisms --
>> but I have no experience using gobject itself.
>>
>> So if we could get together to identify how a gobject binary is generated -- how
>> the introspection happens internally -- and the output of the introspection
>> tool.  It's very likely that I or others can come up with an approach to do the
>> introspection that doesn't require QEMU.  (It may require the gobject binary
>> generation having additional information placed in it -- or an introspection to
>> occur at the time of compilation and saved away in a cache...)  but the point
>> is, we need to figure out a general solution to this that doesn't require QEMU
>> for "most things".
> 
> I know GObject fairly well, since I've done a medium-size project with 
> it (https://01.org/gsso/) and I think the above is totally unrealistic. 
> Below is an explanation why.
> 
> The idea of GObject is to make object oriented programming semantics 
> (classes, inheritance, methods, properties and signals) available to C 
> programmers. This is achieved by implementing a dynamic type system 
> called GType. It serves as a register of available types, to which new 
> types can be added, and information about existing types can be queried.
> 
> This type register is constructed entirely at runtime. When a 
> gobject-based library is loaded into memory, it adds the types that are 
> defined in the library (for example, classes and interfaces) to the 
> register using GType's API.

This is the key, the types and internal data structures are not dynamically
changing.  They are defined within the library.  (The object definitions may be
generated and exposed at runtime, but once a library is built -- they do not
change.)

> There are no tools that can extract the type information at source code 
> level, or any preprocessor for the special type syntax (like there is 
> for example a preprocessor called 'moc' in Qt). In the source code the 
> types are defined entirely using C syntax: a really awkward combination 
> of macros and function definitions that the macros refer to. The code 
> goes straight to the C compiler which of course knows nothing about the 
> types. So writing such a tool would basically amount to writing a 
> special-purpose C interpreter: not feasible.

I would need to see the code to understand this.  -IF- the macros and
definitions are done in a standard way, it is very much possible to interpret
the results of the macros via the intermediate objects.  But I need to see an
example of the code.

> When some library's types need to be introspected, a small binary is 
> compiled and linked with the library by the introspection build system, 
> and then executed. This binary iterates over available types, and asks 
> GType to describe them. These descriptions are then written in the XML 
> format to the .gir file. We cannot fetch this information directly from 
> internal structures of GType, because these structures don't exist on 
> disk; they're only created at runtime through executing type definition 
> functions. So again, you'd need some kind of bytecode interpreter to 
> extract this information from executable objects, which would look a lot 
> like QEMU :)

Another place where looking at the code may prove otherwise.  I need to see how
this is done to be able to comment.

> So the bottom line, to generate introspection info, you have to run the 
> code of the library that you introspect, either with QEMU, or on target 
> hardware, and I don't see a way to avoid this, short of complete rewrite 
> of the entire glib ecosystem. If someone wants to have this feature, but 
> doesn't have a working QEMU, they should get their act together and fix it.

Can you put together a small piece of test code with instructions on how to
compiler it, generate the '.gir' file and anything else?  I can take a look at
this and see if there is a way to inspect the intermediate objects for the type
information we need.

--Mark


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-17 15:02                         ` Mark Hatle
@ 2015-11-18 16:10                           ` Alexander Kanavin
  2016-01-19 16:03                             ` Mark Hatle
  0 siblings, 1 reply; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-18 16:10 UTC (permalink / raw)
  To: Mark Hatle; +Cc: openembedded-core

On 11/17/2015 05:02 PM, Mark Hatle wrote:

>> So the bottom line, to generate introspection info, you have to run the
>> code of the library that you introspect, either with QEMU, or on target
>> hardware, and I don't see a way to avoid this, short of complete rewrite
>> of the entire glib ecosystem. If someone wants to have this feature, but
>> doesn't have a working QEMU, they should get their act together and fix it.
>
> Can you put together a small piece of test code with instructions on how to
> compiler it, generate the '.gir' file and anything else?  I can take a look at
> this and see if there is a way to inspect the intermediate objects for the type
> information we need.

Alright. Here you go:

https://github.com/kanavin/gi-library-boilerplate

In there you have a library that provides:

1) A simple class called MamanBar that is final (i.e. cannot be derived 
from) and has one public method and some internal state.

2) An interface called MamanIbaz which specified two methods and one 
property.

3) A derivable (can be subclassed) class called MamanBaz which 
implements the above interface, and also adds a virtual method and a signal.

When you run 'make', you'll get both the library and the introspection 
data - .gir and .typelib files.

All of the above is written using best current knowledge from the 
GObject manual:

https://developer.gnome.org/gobject/stable/index.html

Regards,
Alex


^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-18 16:10                           ` Alexander Kanavin
@ 2016-01-19 16:03                             ` Mark Hatle
  0 siblings, 0 replies; 67+ messages in thread
From: Mark Hatle @ 2016-01-19 16:03 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: openembedded-core

I know it's been about 2 months at this point, but I wanted to follow up and
make it clear to people I've not ignored this.

I still plan on following up on this, hopefully within about the next 3 weeks.

--Mark

On 11/18/15 10:10 AM, Alexander Kanavin wrote:
> On 11/17/2015 05:02 PM, Mark Hatle wrote:
> 
>>> So the bottom line, to generate introspection info, you have to run the
>>> code of the library that you introspect, either with QEMU, or on target
>>> hardware, and I don't see a way to avoid this, short of complete rewrite
>>> of the entire glib ecosystem. If someone wants to have this feature, but
>>> doesn't have a working QEMU, they should get their act together and fix it.
>>
>> Can you put together a small piece of test code with instructions on how to
>> compiler it, generate the '.gir' file and anything else?  I can take a look at
>> this and see if there is a way to inspect the intermediate objects for the type
>> information we need.
> 
> Alright. Here you go:
> 
> https://github.com/kanavin/gi-library-boilerplate
> 
> In there you have a library that provides:
> 
> 1) A simple class called MamanBar that is final (i.e. cannot be derived 
> from) and has one public method and some internal state.
> 
> 2) An interface called MamanIbaz which specified two methods and one 
> property.
> 
> 3) A derivable (can be subclassed) class called MamanBaz which 
> implements the above interface, and also adds a virtual method and a signal.
> 
> When you run 'make', you'll get both the library and the introspection 
> data - .gir and .typelib files.
> 
> All of the above is written using best current knowledge from the 
> GObject manual:
> 
> https://developer.gnome.org/gobject/stable/index.html
> 
> Regards,
> Alex
> 



^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2016-03-10 16:56 ` Martin Jansa
@ 2016-03-10 16:56   ` Burton, Ross
  2016-03-10 17:05     ` Martin Jansa
  0 siblings, 1 reply; 67+ messages in thread
From: Burton, Ross @ 2016-03-10 16:56 UTC (permalink / raw)
  To: Martin Jansa; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 295 bytes --]

On 10 March 2016 at 16:56, Martin Jansa <martin.jansa@gmail.com> wrote:

>  which triggered exception NameError: name 'qemu_wrapper_cmdline' is not
> defined
>

Do you have oe-core 0b68f0632312392cbd20bfcb9ed4895cfc9883ff?  (which is in
master, which master-next branches from).

Ross

[-- Attachment #2: Type: text/html, Size: 769 bytes --]

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
                   ` (29 preceding siblings ...)
  2015-11-10 14:31 ` [PATCH 00/29] Add gobject introspection support to oe-core Mark Hatle
@ 2016-03-10 16:56 ` Martin Jansa
  2016-03-10 16:56   ` Burton, Ross
  30 siblings, 1 reply; 67+ messages in thread
From: Martin Jansa @ 2016-03-10 16:56 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 4561 bytes --]

On Mon, Nov 09, 2015 at 04:50:22PM +0200, Alexander Kanavin wrote:
> 1. Introduction
> 
> This patchset adds support for gobject introspection to oe-core. 
> Gir files go to -dev packages, typelib files go to main packages 
> (they are packaged together with libraries that are 
> introspected).
> 
> The work is based on a meta-gir layer, which was used as a proof of
> concept; overall approach is same and some implementation ideas were 
> used, but this implementation is otherwise different, and hopefully 
> simpler and cleaner.

Any idea what could be cause for these failures when testing
master-next?

NOTE: Your conf/bblayers.conf has been automatically updated.
Parsing recipes...NOTE: Building Ne10 for armv7
NOTE: glibc doesn't build cleanly with -Os, adding -Wno-error to SELECTED_OPTIMIZATION
NOTE: glibc-initial doesn't build cleanly with -Os, adding -Wno-error to SELECTED_OPTIMIZATION
WARNING: Exception during build_dependencies for do_configure
WARNING: Error during finalise of TOPDIR/oe-core/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb
ERROR: ExpansionError during parsing TOPDIR/oe-core/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb: Failure expanding variable do_configure, expression was         # Write out a qemu wrapper that will be given to gi-scanner so that it
        # can run target helper binaries through that.
        qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', ['\$GIR_EXTRA_LIBS_PATH','.libs','$STAGING_DIR_HOST//usr/lib','$STAGING_DIR_HOST//lib'])}"
        cat > WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-scanner-qemuwrapper << EOF
#!/bin/sh
$qemu_binary "\$@"
if [ \$? -ne 0 ]; then
    echo "If the above error message is about missing .so libraries, then setting up GIR_EXTRA_LIBS_PATH in the recipe should help."
    echo "(typically like this: GIR_EXTRA_LIBS_PATH=\"$""{B}/something/.libs\" )"
    exit 1
fi
EOF
        chmod +x WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-scanner-qemuwrapper

        # Write out a wrapper for g-ir-scanner itself, which will be used when building introspection files
        # for glib-based packages. This wrapper calls the native version of the scanner, and tells it to use
        # a qemu wrapper for running transient target binaries produced by the scanner, and an include directory
        # from the target sysroot.
        cat > WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-scanner-wrapper << EOF
#!/bin/sh
# This prevents g-ir-scanner from writing cache data to $HOME
export GI_SCANNER_DISABLE_CACHE=1

g-ir-scanner --use-binary-wrapper=SYSROOTS/MACHINE/usr/bin/g-ir-scanner-qemuwrapper --use-ldd-wrapper=SYSROOTS/MACHINE/usr/bin/g-ir-scanner-lddwrapper --add-include-path=SYSROOTS/MACHINE/usr/share/gir-1.0 "\$@"
EOF
        chmod +x WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-scanner-wrapper

        # Write out a wrapper for g-ir-compiler, which runs the target version of it through qemu.
        # g-ir-compiler writes out the raw content of a C struct to disk, and therefore is architecture dependent.
        cat > WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-compiler-wrapper << EOF
#!/bin/sh
SYSROOTS/MACHINE/usr/bin/g-ir-scanner-qemuwrapper SYSROOTS/MACHINE/usr/bin/g-ir-compiler "\$@"
EOF
        chmod +x WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-compiler-wrapper

        # Write out a wrapper to use instead of ldd, which does not work when a binary is built
        # for a different architecture
        cat > WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-scanner-lddwrapper << EOF
#!/bin/sh
prelink-rtld --root=$STAGING_DIR_HOST "\$@"
EOF
        chmod +x WORKDIR/gobject-introspection/1.46.0-r0/build/g-ir-scanner-lddwrapper

        # Also tweak the target python scripts so that they don't refer to the
        # native version of python binary (the solution is taken from glib-2.0 recipe)
        sed -i -e '1s,#!.*,#!/usr/bin/env python,' WORKDIR/gobject-introspection/1.46.0-r0/gobject-introspection-1.46.0/tools/g-ir-tool-template.in
	( cd WORKDIR/gobject-introspection/1.46.0-r0/gobject-introspection-1.46.0; gtkdocize --docdir WORKDIR/gobject-introspection/1.46.0-r0/gobject-introspection-1.46.0 )
    set_icecc_env
    autotools_do_configure
 which triggered exception NameError: name 'qemu_wrapper_cmdline' is not defined

Summary: There were 2 WARNING messages shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]

^ permalink raw reply	[flat|nested] 67+ messages in thread

* Re: [PATCH 00/29] Add gobject introspection support to oe-core
  2016-03-10 16:56   ` Burton, Ross
@ 2016-03-10 17:05     ` Martin Jansa
  0 siblings, 0 replies; 67+ messages in thread
From: Martin Jansa @ 2016-03-10 17:05 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 799 bytes --]

On Thu, Mar 10, 2016 at 04:56:21PM +0000, Burton, Ross wrote:
> On 10 March 2016 at 16:56, Martin Jansa <martin.jansa@gmail.com> wrote:
> 
> >  which triggered exception NameError: name 'qemu_wrapper_cmdline' is not
> > defined
> >
> 
> Do you have oe-core 0b68f0632312392cbd20bfcb9ed4895cfc9883ff?  (which is in
> master, which master-next branches from).

I have 0b68f0632312392cbd20bfcb9ed4895cfc9883ff, but one of the layers
included in that build was overwriting qemu.bbclass to fix some issues.

The issues were fixed since then in oe-core as well, so I should be able
to just drop this qemu.bbclass.

Sorry for noise, for some reason I usually notice the root cause just
after hitting Send button in e-mail :/.

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]

^ permalink raw reply	[flat|nested] 67+ messages in thread

* [PATCH 00/29] Add gobject introspection support to oe-core
@ 2015-11-26 14:26 Alexander Kanavin
  0 siblings, 0 replies; 67+ messages in thread
From: Alexander Kanavin @ 2015-11-26 14:26 UTC (permalink / raw)
  To: openembedded-core

0. Changelog

26 Nov 2015
- added a DISTRO_FEATURE that makes it possible to skip generation
of introspection data, and therefore avoid running qemu
- rebased the patchset to latest oe-core master
- updated gobject-introspection and pygobject recipes to latest
upstream versions

9 Nov 2015
- initial version

1. Introduction

This patchset adds support for gobject introspection to oe-core.

Generation of introspection data (.gir and typelib files) is done by
running target architecture binaries through qemu. This may not work
for all architectures/machines, so when it doesn't work, it can be
disabled by removing 'gobject-introspection-data' from DISTRO_FEATURES.
In this case, introspection data can be obtained through other means
(for example, by copying the data from a suitable sysroot, or generating
it on the target hardware).

Gir files go to -dev packages, typelib files go to main packages
(they are packaged together with libraries that are introspected).

The work is based on a meta-gir layer, which was used as a proof of
concept; overall approach is same and some implementation ideas were
used, but this implementation is otherwise different, and hopefully
simpler and cleaner.


2. 30 second tutorial for adding introspection support to a package:

a. Inherit gobject-introspection class (or a class that inherits it,
such as gnome-base).

b. Make sure introspection is not disabled anywhere in the recipe or
its includes. Also, make sure that 'gobject-introspection-data' is in
DISTRO_FEATURES or nothing will happen.

c. Try to build the recipe; if this results in build errors that look
like something is unable to find .so libraries, check where these libraries
are in the source tree and add GIR_EXTRA_LIBS_PATH=${B}/something/.libs
to the recipe.

c. Any other errors probably mean that introspection support in a package
is not entirely standard, and breaks down in a cross-compilation environment.
Custom-made fixing is needed then.


3. How to verify that introspection works in an image:

a. Make sure that 'gobject-introspection-data' is in DISTRO_FEATURES.

b. Build core-image-sato.

c. Start terminal, start python3 in the terminal.

d. Type out something like:

>>> from gi.repository import GLib
>>> GLib.get_host_name()

e. Also, try something more advanced, for example:
http://python-gtk-3-tutorial.readthedocs.org/en/latest/introduction.html


4. Request for testing - I would like this patchset to be checked on three
levels:

a. Test it in all of the build environments you have. Let me know any errors
or warnings. Also let me know, if some package can be built with introspection
enabled, but is not.

b. Check the patchset for correct use of Yocto idioms. It touches a lot of things
in a lot of different ways, and maybe there are better ways to do what it does.

c. Check that the overall design is sensible: how things work is hopefully
explained in comments and commit messages.


5. Known issues:

- qemu-ppc64 crashes out immediately; so anything that supports introspection 
cannot be built on that architecture:
Invalid data memory access: 0x00000040d89c5008
...

- gcr introspection is disabled in x86_64, because introspection helper binary
goes into an infinite loop under qemu (on that architecture only).

- gcr and libsecret introspection is disabled in mips64, because introspection helper
binary fails an assertion in libgpg-error

- webkit introspection is disabled in powerpc, because qemu-ppc crashes out when
running g-ir-compiler

- the patchset has not been tested with layers in meta-oe; just making oe-core 
build without errors on all standard architectures has been a big, long task.

- the whole thing should be documented in Yocto manuals

The following changes since commit 03f15e51998a3ef65a5b68cb7cbf724f4388c289:

  sstate: Ensure siginfo and sig files are also touched (2015-11-25 08:09:00 +0000)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib akanavin/gobject-introspection-experimental
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=akanavin/gobject-introspection-experimental

Alexander Kanavin (29):
  qemu.bbclass: add qemu_wrapper_cmdline()
  gobject-introspection: add the recipe
  gtk-doc-stub: remove introspection stubs
  gobject-introspection.bbclass: add a class that enables gobject
    introspection
  python3-native: use the previous version of python-config script
  avahi-ui: remove the dependency on python-pygtk by disabling
    avahi-discover
  python-pygtk: remove the recipe
  avahi: enable gobject-introspection
  udev: enable gobject introspection
  vala: enable the use of vapigen by packages with vala support
  gcr: enable generation of vapi files using vapigen
  gdk-pixbuf: enable gobject introspection
  gconf: enable gobject-introspection
  gtk+: enable gobject introspection
  gtk+3: enable gobject-introspection
  libsecret: enable generation of vapi files using vapigen
  clutter: enable gobject introspection
  vala.bbclass: remove pre-packaged vapigen.m4 from tarballs
  libsoup-2.4: enable gobject introspection
  at-spi2-core: enable gobject introspection
  gstreamer: enable gobject introspection
  gnomebase.bbclass: enable gobject introspection
  webkitgtk: enable gobject introspection
  packagegroup-core-x11-sato: add python-pygobject and gtk+3
  default-distrovars.inc: add 'gobject-introspection-data' to
    DISTRO_FEATURES_DEFAULT
  gcr: disable gobject introspection on x86-64 for now
  gcr: disable gobject-introspection on mips64
  libsecret: disable gobject-introspection on mips64
  webkitgtk: disable gobject-introspection on powerpc

 meta/classes/gnomebase.bbclass                     |   5 +-
 meta/classes/gobject-introspection.bbclass         |  34 +++
 meta/classes/qemu.bbclass                          |  23 +-
 meta/classes/vala.bbclass                          |   6 +
 meta/conf/distro/include/default-distrovars.inc    |   3 +-
 meta/conf/distro/include/distro_alias.inc          |   1 -
 meta/recipes-connectivity/avahi/avahi-ui_0.6.31.bb |  16 +-
 meta/recipes-connectivity/avahi/avahi.inc          |  12 +-
 .../packagegroups/packagegroup-self-hosted.bb      |   1 -
 meta/recipes-core/udev/udev.inc                    |  10 +-
 ...file.am-don-t-hardcode-g-ir-compiler-name.patch |  27 ++
 ...c-use-PKG_CONFIG_SYSROOT_PATH-when-findin.patch |  32 +++
 ....am-use-libtool-when-running-g-ir-scanner.patch |  26 ++
 ...c-add-sysroot-path-to-GI_DATADIR-don-t-se.patch |  41 +++
 .../obsolete_automake_macros.patch                 |  23 --
 .../python/python-pygobject_2.28.3.bb              |  53 ----
 .../python/python-pygobject_3.18.2.bb              |  29 ++
 .../python/python-pygtk/acinclude.m4               |  90 ------
 .../add-gtk-types.defs-into-gdk.c-dependence.patch |  32 ---
 .../python/python-pygtk/fix-gtkunixprint.patch     |  20 --
 .../python/python-pygtk/fix-pygtk-2.0.pc.patch     |  13 -
 .../python/python-pygtk/nodocs.patch               |  15 -
 .../prevent_to_get_display_during_import.patch     |  16 --
 .../python/python-pygtk/python-pygtk2/acinclude.m4 |  90 ------
 .../update-dependences-of-defs.c.patch             |  38 ---
 .../recipes-devtools/python/python-pygtk_2.24.0.bb |  55 ----
 .../python/python3-native_3.4.3.bb                 |   1 +
 ...the-shell-version-of-python-config-that-w.patch |  38 +++
 meta/recipes-devtools/vala/vala.inc                |  10 +
 ...001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch |  38 +++
 meta/recipes-devtools/vala/vala_0.28.0.bb          |   4 +-
 meta/recipes-gnome/gcr/gcr_3.16.0.bb               |  22 +-
 meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.32.1.bb |   7 +-
 meta/recipes-gnome/gnome/gconf_3.2.6.bb            |   6 +-
 ...config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch |  99 +++++++
 ...c-add-host-gi-gi-cross-wrapper-and-gi-ldd.patch | 204 ++++++++++++++
 ...01-giscanner-add-a-use-ldd-wrapper-option.patch |  48 ++++
 ...1-giscanner-add-use-binary-wrapper-option.patch |  52 ++++
 .../gobject-introspection_1.46.0.bb                | 146 ++++++++++
 .../gsettings-desktop-schemas_3.16.1.bb            |   2 +-
 meta/recipes-gnome/gtk+/gtk+.inc                   |   9 +-
 meta/recipes-gnome/gtk+/gtk+3.inc                  |  10 +-
 ...t-Import-introspection-stub-machinery-too.patch | 305 +++++++++++++++++++++
 .../recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb |   6 +-
 meta/recipes-gnome/librsvg/librsvg_2.40.11.bb      |   3 -
 meta/recipes-gnome/libsecret/libsecret_0.18.2.bb   |  14 +-
 ...ation-paths-for-.gir-and-.typelib-as-reco.patch |  32 +++
 meta/recipes-gnome/libwnck/libwnck3_3.14.0.bb      |   3 +-
 meta/recipes-graphics/clutter/clutter-1.0.inc      |   5 +-
 meta/recipes-graphics/clutter/clutter-gst-3.0.inc  |   4 +-
 meta/recipes-graphics/clutter/clutter-gtk-1.0.inc  |   3 +-
 meta/recipes-graphics/cogl/cogl-1.0.inc            |   8 +-
 meta/recipes-graphics/mx/mx.inc                    |   5 +-
 meta/recipes-graphics/pango/pango.inc              |   5 +-
 ...op-introspection-macros-from-acinclude.m4.patch | 121 ++++++++
 meta/recipes-graphics/pango/pango_1.38.1.bb        |   1 +
 ...on.m4-prefix-pkgconfig-paths-with-PKG_CON.patch |  44 +++
 .../recipes-multimedia/gstreamer/gst-player_git.bb |   2 +-
 .../gstreamer/gst-plugins-package.inc              |   1 +
 ...-don-t-hardcode-libtool-name-when-running.patch |  57 ++++
 .../gstreamer/gstreamer1.0-plugins-bad_1.6.1.bb    |   4 +-
 .../gstreamer/gstreamer1.0-plugins-base.inc        |   4 +
 ...-don-t-hardcode-libtool-name-when-running.patch | 168 ++++++++++++
 ...-prefix-calls-to-pkg-config-with-PKG_CONF.patch | 298 ++++++++++++++++++++
 ...ssing-include-directories-when-calling-in.patch |  28 ++
 ...ncorrect-reference-to-gstreamer-sdp-in-Ma.patch |  27 ++
 .../gstreamer/gstreamer1.0-plugins-base_1.6.1.bb   |  12 +-
 .../gstreamer/gstreamer1.0-plugins.inc             |  12 +-
 .../gstreamer/gstreamer1.0-rtsp-server.inc         |  13 +-
 ...ode-libtool-name-when-using-introspection.patch |  27 ++
 meta/recipes-multimedia/gstreamer/gstreamer1.0.inc |  12 +-
 .../gstreamer/gstreamer1.0_1.6.1.bb                |  10 +-
 .../packagegroups/packagegroup-core-x11-sato.bb    |   2 +
 ...Introspection.cmake-prefix-variables-obta.patch |  27 ++
 ...ng-introspection-files-add-CMAKE_C_FLAGS-.patch |  40 +++
 meta/recipes-sato/webkit/webkitgtk_2.8.5.bb        |  13 +-
 meta/recipes-support/atk/at-spi2-core_2.18.1.bb    |   4 +-
 meta/recipes-support/atk/atk_2.18.0.bb             |   2 +-
 meta/recipes-support/libsoup/libsoup-2.4_2.52.1.bb |   2 +-
 ...file.am-install-gir-typelib-using-datadir.patch |  34 +++
 meta/recipes-support/vte/vte.inc                   |   4 +-
 meta/recipes-support/vte/vte_0.28.2.bb             |   3 +-
 82 files changed, 2225 insertions(+), 547 deletions(-)
 create mode 100644 meta/classes/gobject-introspection.bbclass
 create mode 100644 meta/recipes-core/udev/udev/0001-Makefile.am-don-t-hardcode-g-ir-compiler-name.patch
 create mode 100644 meta/recipes-core/udev/udev/0001-configure.ac-use-PKG_CONFIG_SYSROOT_PATH-when-findin.patch
 create mode 100644 meta/recipes-core/udev/udev/0002-Makefile.am-use-libtool-when-running-g-ir-scanner.patch
 create mode 100644 meta/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygobject/obsolete_automake_macros.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygobject_2.28.3.bb
 create mode 100644 meta/recipes-devtools/python/python-pygobject_3.18.2.bb
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/acinclude.m4
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/add-gtk-types.defs-into-gdk.c-dependence.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/fix-gtkunixprint.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/fix-pygtk-2.0.pc.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/nodocs.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/prevent_to_get_display_during_import.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/python-pygtk2/acinclude.m4
 delete mode 100644 meta/recipes-devtools/python/python-pygtk/update-dependences-of-defs.c.patch
 delete mode 100644 meta/recipes-devtools/python/python-pygtk_2.24.0.bb
 create mode 100644 meta/recipes-devtools/python/python3/0001-Do-not-use-the-shell-version-of-python-config-that-w.patch
 create mode 100644 meta/recipes-devtools/vala/vala/0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-add-host-gi-gi-cross-wrapper-and-gi-ldd.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch
 create mode 100644 meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb
 create mode 100644 meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch
 create mode 100644 meta/recipes-gnome/libwnck/files/0001-Fix-installation-paths-for-.gir-and-.typelib-as-reco.patch
 create mode 100644 meta/recipes-graphics/pango/pango/0001-Drop-introspection-macros-from-acinclude.m4.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/files/0001-introspection.m4-prefix-pkgconfig-paths-with-PKG_CON.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Makefile.am-don-t-hardcode-libtool-name-when-running.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0002-Makefile.am-prefix-calls-to-pkg-config-with-PKG_CONF.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0003-riff-add-missing-include-directories-when-calling-in.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0004-rtsp-drop-incorrect-reference-to-gstreamer-sdp-in-Ma.patch
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server/0001-Don-t-hardcode-libtool-name-when-using-introspection.patch
 create mode 100644 meta/recipes-sato/webkit/files/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
 create mode 100644 meta/recipes-sato/webkit/files/0001-When-building-introspection-files-add-CMAKE_C_FLAGS-.patch
 create mode 100644 meta/recipes-support/vte/vte-0.28.2/0001-Makefile.am-install-gir-typelib-using-datadir.patch

-- 
2.6.2



^ permalink raw reply	[flat|nested] 67+ messages in thread

end of thread, other threads:[~2016-03-10 17:02 UTC | newest]

Thread overview: 67+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-09 14:50 [PATCH 00/29] Add gobject introspection support to oe-core Alexander Kanavin
2015-11-09 14:50 ` [PATCH 01/29] qemu.bbclass: add qemu_wrapper_cmdline() Alexander Kanavin
2015-11-09 14:50 ` [PATCH 02/29] qemu: don't blacklist mips64 when building runners of userspace binaries Alexander Kanavin
2015-11-09 14:50 ` [PATCH 03/29] gobject-introspection: add the recipe Alexander Kanavin
2015-11-09 14:50 ` [PATCH 04/29] gtk-doc-stub: remove introspection stubs Alexander Kanavin
2015-11-09 14:50 ` [PATCH 05/29] gobject-introspection.bbclass: add a class that enables gobject introspection Alexander Kanavin
2015-11-09 14:50 ` [PATCH 06/29] python3-native: use the previous version of python-config script Alexander Kanavin
2015-11-09 14:50 ` [PATCH 07/29] avahi-ui: remove the dependency on python-pygtk by disabling avahi-discover Alexander Kanavin
2015-11-09 14:50 ` [PATCH 08/29] python-pygtk: remove the recipe Alexander Kanavin
2015-11-10 13:13   ` Jussi Kukkonen
2015-11-10 13:25     ` Alexander Kanavin
2015-11-10 14:18       ` Jussi Kukkonen
2015-11-10 14:31         ` Paul Eggleton
2015-11-09 14:50 ` [PATCH 09/29] avahi: enable gobject-introspection Alexander Kanavin
2015-11-09 14:50 ` [PATCH 10/29] udev: enable gobject introspection Alexander Kanavin
2015-11-09 14:50 ` [PATCH 11/29] vala: enable the use of vapigen by packages with vala support Alexander Kanavin
2015-11-09 14:50 ` [PATCH 12/29] gcr: enable generation of vapi files using vapigen Alexander Kanavin
2015-11-09 14:50 ` [PATCH 13/29] gdk-pixbuf: enable gobject introspection Alexander Kanavin
2015-11-09 14:50 ` [PATCH 14/29] gconf: enable gobject-introspection Alexander Kanavin
2015-11-09 14:50 ` [PATCH 15/29] gtk+: enable gobject introspection Alexander Kanavin
2015-11-09 14:50 ` [PATCH 16/29] gtk+3: enable gobject-introspection Alexander Kanavin
2015-11-09 14:50 ` [PATCH 17/29] libsecret: enable generation of vapi files using vapigen Alexander Kanavin
2015-11-09 14:50 ` [PATCH 18/29] clutter: enable gobject introspection Alexander Kanavin
2015-11-09 14:50 ` [PATCH 19/29] vala.bbclass: remove pre-packaged vapigen.m4 from tarballs Alexander Kanavin
2015-11-09 14:50 ` [PATCH 20/29] libsoup-2.4: enable gobject introspection Alexander Kanavin
2015-11-09 14:50 ` [PATCH 21/29] at-spi2-core: " Alexander Kanavin
2015-11-09 14:50 ` [PATCH 22/29] gstreamer: " Alexander Kanavin
2015-11-09 14:50 ` [PATCH 23/29] gnomebase.bbclass: " Alexander Kanavin
2015-11-09 14:50 ` [PATCH 24/29] webkitgtk: " Alexander Kanavin
2015-11-09 14:50 ` [PATCH 25/29] gcr: disable gobject introspection on x86-64 for now Alexander Kanavin
2015-11-09 14:50 ` [PATCH 26/29] gcr: disable gobject-introspection on mips64 Alexander Kanavin
2015-11-09 14:50 ` [PATCH 27/29] libsecret: " Alexander Kanavin
2015-11-09 14:50 ` [PATCH 28/29] webkitgtk: disable gobject-introspection on powerpc Alexander Kanavin
2015-11-09 14:50 ` [PATCH 29/29] packagegroup-core-x11-sato: add python-pygobject and gtk+3 Alexander Kanavin
2015-11-10 14:31 ` [PATCH 00/29] Add gobject introspection support to oe-core Mark Hatle
2015-11-10 15:36   ` Alexander Kanavin
2015-11-10 16:39     ` Mark Hatle
2015-11-10 17:40       ` Burton, Ross
2015-11-10 18:25         ` Mark Hatle
2015-11-10 22:39           ` Richard Purdie
2015-11-10 23:10       ` Phil Blundell
2015-11-10 23:40         ` Burton, Ross
2015-11-11  0:15           ` Mark Hatle
2015-11-11  3:29           ` Khem Raj
2015-11-11 12:53           ` Alexander Kanavin
2015-11-11 13:14             ` Alexander Kanavin
2015-11-11 12:45       ` Alexander Kanavin
2015-11-11 13:34         ` Mark Hatle
2015-11-11 13:48           ` Alexander Kanavin
2015-11-11 13:50             ` Ricardo Ribalda Delgado
2015-11-11 13:55               ` Alexander Kanavin
2015-11-11 13:57                 ` Ricardo Ribalda Delgado
2015-11-11 13:59                   ` Alexander Kanavin
2015-11-11 13:58           ` Alexander Kanavin
2015-11-13 13:53             ` Mark Hatle
2015-11-13 16:12               ` alexander.kanavin
2015-11-13 16:31                 ` Mark Hatle
2015-11-16  9:52                   ` Alexander Kanavin
2015-11-16 16:12                     ` Mark Hatle
2015-11-17 14:06                       ` Alexander Kanavin
2015-11-17 15:02                         ` Mark Hatle
2015-11-18 16:10                           ` Alexander Kanavin
2016-01-19 16:03                             ` Mark Hatle
2016-03-10 16:56 ` Martin Jansa
2016-03-10 16:56   ` Burton, Ross
2016-03-10 17:05     ` Martin Jansa
2015-11-26 14:26 Alexander Kanavin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.