From 60f9d69e016b11c468c98ea75ba0a60c44afbbc4 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Wed, 17 Aug 2016 14:31:25 -0500 Subject: yocto-poky: Move to import-layers subdir We are going to import additional layers, so create a subdir to hold all of the layers that we import with git-subtree. Change-Id: I6f732153a22be8ca663035c518837e3cc5ec0799 Signed-off-by: Patrick Williams --- .../meta/recipes-gnome/epiphany/epiphany_3.18.4.bb | 26 ++ .../0001-yelp.m4-drop-the-check-for-itstool.patch | 33 ++ .../meta/recipes-gnome/gcr/gcr_3.18.0.bb | 41 ++ .../extending-libinstall-dependencies.patch | 42 ++ .../gdk-pixbuf/gdk-pixbuf/fatal-loader.patch | 79 ++++ .../gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch | 33 ++ .../recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest | 3 + .../recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.32.3.bb | 102 +++++ .../gnome-desktop/gnome-desktop3_3.18.2.bb | 24 + .../gnome/adwaita-icon-theme_3.18.0.bb | 37 ++ .../remove_plus_from_invalid_characters_list.patch | 19 + .../gnome/gconf/unable-connect-dbus.patch | 95 ++++ .../meta/recipes-gnome/gnome/gconf_3.2.6.bb | 54 +++ .../recipes-gnome/gnome/gnome-common_3.18.0.bb | 20 + .../meta/recipes-gnome/gnome/gnome-doc-utils.inc | 30 ++ .../gnome-doc-utils/sysrooted-pkg-config.patch | 35 ++ .../use-usr-bin-env-for-python-in-xml2po.patch | 30 ++ .../gnome/gnome-doc-utils/xsltproc_nonet.patch | 95 ++++ .../recipes-gnome/gnome/gnome-doc-utils_0.20.10.bb | 11 + .../libart_lgpl-2.3.21-crosscompile.patch | 84 ++++ .../meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb | 22 + ...config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch | 97 ++++ ...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 | 163 +++++++ .../gsettings-desktop-schemas_3.19.3.bb | 14 + .../yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc | 97 ++++ .../meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch | 22 + .../gtk+/gtk+/hardcoded_libtool.patch | 35 ++ .../gtk+/gtk+/strict-prototypes.patch | 24 + .../meta/recipes-gnome/gtk+/gtk+/toggle-font.diff | 102 +++++ .../meta/recipes-gnome/gtk+/gtk+/xsettings.patch | 20 + .../yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc | 113 +++++ ...Do-not-try-to-initialize-GL-without-libGL.patch | 60 +++ .../recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch | 118 +++++ .../gtk+/gtk+3/hardcoded_libtool.patch | 35 ++ .../meta/recipes-gnome/gtk+/gtk+3_3.18.8.bb | 19 + .../meta/recipes-gnome/gtk+/gtk+_2.24.29.bb | 34 ++ .../gtk+/gtk-icon-utils-native_3.18.8.bb | 60 +++ ...k-dependency-from-gtk-encode-symbolic-svg.patch | 102 +++++ ...t-Import-introspection-stub-machinery-too.patch | 305 +++++++++++++ .../recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb | 33 ++ .../gtk-engines/gtk-engines-2.20.2/glib-2.32.patch | 23 + .../gtk-engines-2.20.2/substitute-tests.patch | 37 ++ .../gtk-engines/gtk-engines_2.20.2.bb | 55 +++ .../hicolor-icon-theme/hicolor-icon-theme_0.15.bb | 14 + .../recipes-gnome/json-glib/json-glib_1.0.4.bb | 18 + .../libglade/libglade-2.6.4/glade-cruft.patch | 102 +++++ .../libglade/libglade-2.6.4/no-xml2.patch | 501 +++++++++++++++++++++ .../libglade-2.6.4/python_environment.patch | 14 + .../meta/recipes-gnome/libglade/libglade_2.6.4.bb | 31 ++ .../meta/recipes-gnome/libgudev/libgudev_230.bb | 14 + .../recipes-gnome/libnotify/libnotify_0.7.6.bb | 20 + .../recipes-gnome/librsvg/librsvg/gtk-option.patch | 60 +++ .../meta/recipes-gnome/librsvg/librsvg_2.40.13.bb | 45 ++ .../recipes-gnome/libsecret/libsecret_0.18.4.bb | 25 + .../meta/recipes-gnome/libwnck/libwnck3_3.14.1.bb | 20 + 58 files changed, 3651 insertions(+) create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.18.4.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/epiphany/files/0001-yelp.m4-drop-the-check-for-itstool.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gcr/gcr_3.18.0.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.32.3.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.18.2.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.18.0.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome/gconf/remove_plus_from_invalid_characters_list.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome/gconf/unable-connect-dbus.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-common_3.18.0.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils.inc create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/sysrooted-pkg-config.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/use-usr-bin-env-for-python-in-xml2po.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/xsltproc_nonet.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils_0.20.10.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-add-host-gi-gi-cross-wrapper-and-gi-ldd.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.19.3.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/xsettings.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Do-not-try-to-initialize-GL-without-libGL.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/hardcoded_libtool.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.18.8.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+_2.24.29.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.18.8.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/glib-2.32.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/substitute-tests.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.15.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/json-glib/json-glib_1.0.4.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade_2.6.4.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/libgudev/libgudev_230.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/libnotify/libnotify_0.7.6.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg/gtk-option.patch create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.13.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.4.bb create mode 100644 import-layers/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.14.1.bb (limited to 'import-layers/yocto-poky/meta/recipes-gnome') diff --git a/import-layers/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.18.4.bb b/import-layers/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.18.4.bb new file mode 100644 index 000000000..869569c51 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.18.4.bb @@ -0,0 +1,26 @@ +SUMMARY = "WebKit based web browser for GNOME" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes ca-certificates avahi libnotify gcr libwnck3 \ + gsettings-desktop-schemas gnome-desktop3 libxml2-native intltool-native" + +inherit gnomebase gsettings distro_features_check upstream-version-is-even +# libwnck3 is x11 only +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI += "file://0001-yelp.m4-drop-the-check-for-itstool.patch" +SRC_URI[archive.md5sum] = "172b78256100e8d3c629764abd0e1495" +SRC_URI[archive.sha256sum] = "be699d484371111abae754e669187215df73e21533f461e513b79537d7a1c1c1" + +EXTRA_OECONF += " --disable-nss --with-distributor-name=${DISTRO}" + +do_configure_prepend() { + touch ${S}/gnome-doc-utils.make + sed -i -e s:help::g ${S}/Makefile.am +} + +FILES_${PN} += "${datadir}/appdata ${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers" +RDEPENDS_${PN} = "iso-codes adwaita-icon-theme" +RRECOMMENDS_${PN} = "ca-certificates" + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/epiphany/files/0001-yelp.m4-drop-the-check-for-itstool.patch b/import-layers/yocto-poky/meta/recipes-gnome/epiphany/files/0001-yelp.m4-drop-the-check-for-itstool.patch new file mode 100644 index 000000000..2585d7f74 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/epiphany/files/0001-yelp.m4-drop-the-check-for-itstool.patch @@ -0,0 +1,33 @@ +From 30f03a256efe375a4d5c3a24bf4168ebf380e3ab Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Thu, 30 Jul 2015 15:13:23 +0300 +Subject: [PATCH] yelp.m4: drop the check for itstool + +It isn't used for anything during build, so there's no need to provide +it as a recipe. + +Upstream-Status: Inappropriate [tarball-specific issue] +--- + m4/yelp.m4 | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/m4/yelp.m4 b/m4/yelp.m4 +index 5db847f..1b6ede4 100644 +--- a/m4/yelp.m4 ++++ b/m4/yelp.m4 +@@ -27,12 +27,6 @@ AC_ARG_WITH([help-dir], + HELP_DIR="$with_help_dir" + AC_SUBST(HELP_DIR) + +-AC_ARG_VAR([ITSTOOL], [Path to the `itstool` command]) +-AC_CHECK_PROG([ITSTOOL], [itstool], [itstool]) +-if test x"$ITSTOOL" = x; then +- AC_MSG_ERROR([itstool not found]) +-fi +- + AC_ARG_VAR([XMLLINT], [Path to the `xmllint` command]) + AC_CHECK_PROG([XMLLINT], [xmllint], [xmllint]) + if test x"$XMLLINT" = x; then +-- +2.1.4 + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gcr/gcr_3.18.0.bb b/import-layers/yocto-poky/meta/recipes-gnome/gcr/gcr_3.18.0.bb new file mode 100644 index 000000000..32523a64a --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gcr/gcr_3.18.0.bb @@ -0,0 +1,41 @@ +SUMMARY = "A library for bits of crypto UI and parsing etc" +HOMEPAGE = "http://www.gnome.org/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt" + +inherit autotools gnomebase gtk-icon-cache gtk-doc distro_features_check upstream-version-is-even vala gobject-introspection +# depends on gtk+3, but also x11 through gtk+-x11 +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI[archive.md5sum] = "b959bac99e17c9bb0990a15c9be11aed" +SRC_URI[archive.sha256sum] = "d4d16da5af55148a694055835ccd07ad34daf0ad03bdad929bf7cad15637ce00" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/gcr-3 \ +" + +# 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" + +# 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" + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch new file mode 100644 index 000000000..edbdced43 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch @@ -0,0 +1,42 @@ +Upstream-Status: Pending + +This patch fixes parallel install issue that lib libpixbufloader-png.la +depends on libgdk_pixbuf-2.0.la which will be regenerated during insta- +llation, if libgdk_pixbuf-2.0.la is regenerating and at the same time +libpixbufloader-png.la links it, the error will happen. + +Error message is: +* usr/bin/ld: cannot find -lgdk_pixbuf-2.0 +* collect2: ld returned 1 exit status + +Make an explicit dependency to the libs install targets would fix this +issue. + +Signed-off-by: Wenzong Fan +--- + gdk-pixbuf/Makefile.am | 1 + + libdeps.mk | 3 +++ + 2 files changed, 4 insertions(+), 0 deletions(-) + create mode 100644 libdeps.mk + +diff --git a/gdk-pixbuf/Makefile.am b/gdk-pixbuf/Makefile.am +index 95a93a8..db44cae 100644 +--- a/gdk-pixbuf/Makefile.am ++++ b/gdk-pixbuf/Makefile.am +@@ -783,3 +783,4 @@ loaders.cache: + endif + + -include $(top_srcdir)/git.mk ++-include $(top_srcdir)/libdeps.mk +diff --git a/libdeps.mk b/libdeps.mk +new file mode 100644 +index 0000000..d7a10a8 +--- /dev/null ++++ b/libdeps.mk +@@ -0,0 +1,3 @@ ++# Extending dependencies of install-loaderLTLIBRARIES: ++# The $(lib-LTLIBRARIES) is needed by relinking $(loader_LTLIBRARIES) ++install-loaderLTLIBRARIES: install-libLTLIBRARIES +-- +1.7.6.1 + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch new file mode 100644 index 000000000..70146c618 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch @@ -0,0 +1,79 @@ +If an environment variable is specified set the return value from main() to +non-zero if the loader had errors (missing libraries, generally). + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git a/gdk-pixbuf/queryloaders.c b/gdk-pixbuf/queryloaders.c +index a9ca015..395674a 100644 +--- a/gdk-pixbuf/queryloaders.c ++++ b/gdk-pixbuf/queryloaders.c +@@ -146,7 +146,7 @@ write_loader_info (GString *contents, const char *path, GdkPixbufFormat *info) + g_string_append_c (contents, '\n'); + } + +-static void ++static gboolean + query_module (GString *contents, const char *dir, const char *file) + { + char *path; +@@ -155,6 +155,7 @@ query_module (GString *contents, const char *dir, const char *file) + void (*fill_vtable) (GdkPixbufModule *module); + gpointer fill_info_ptr; + gpointer fill_vtable_ptr; ++ gboolean ret = TRUE; + + if (g_path_is_absolute (file)) + path = g_strdup (file); +@@ -204,10 +205,13 @@ query_module (GString *contents, const char *dir, const char *file) + g_module_error()); + else + g_fprintf (stderr, "Cannot load loader %s\n", path); ++ ret = FALSE; + } + if (module) + g_module_close (module); + g_free (path); ++ ++ return ret; + } + + #ifdef G_OS_WIN32 +@@ -257,6 +261,7 @@ int main (int argc, char **argv) + GString *contents; + gchar *cache_file = NULL; + gint first_file = 1; ++ gboolean success = TRUE; + + #ifdef G_OS_WIN32 + gchar *libdir; +@@ -360,7 +365,8 @@ int main (int argc, char **argv) + gint len = strlen (dent); + if (len > SOEXT_LEN && + strcmp (dent + len - SOEXT_LEN, SOEXT) == 0) { +- query_module (contents, path, dent); ++ if (!query_module (contents, path, dent)) ++ success = FALSE; + } + } + g_dir_close (dir); +@@ -378,7 +384,8 @@ int main (int argc, char **argv) + infilename = g_locale_to_utf8 (infilename, + -1, NULL, NULL, NULL); + #endif +- query_module (contents, cwd, infilename); ++ if (!query_module (contents, cwd, infilename)) ++ success = FALSE; + } + g_free (cwd); + } +@@ -394,5 +401,8 @@ int main (int argc, char **argv) + else + g_print ("%s\n", contents->str); + +- return 0; ++ if (g_getenv ("GDK_PIXBUF_FATAL_LOADER")) ++ return success ? 0 : 1; ++ else ++ return 0; + } diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch new file mode 100644 index 000000000..ecca62a71 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch @@ -0,0 +1,33 @@ +Upstream-Status: Inappropriate [configuration] + +Index: gdk-pixbuf-2.22.1/configure.ac +=================================================================== +--- gdk-pixbuf-2.22.1.orig/configure.ac 2010-11-26 09:06:34.000000000 +0800 ++++ gdk-pixbuf-2.22.1/configure.ac 2010-11-26 09:07:33.000000000 +0800 +@@ -287,7 +287,7 @@ + case $enable_explicit_deps in + auto) + export SED +- deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` ++ deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` + if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then + enable_explicit_deps=yes + else +@@ -484,7 +484,7 @@ + dnl Now we check to see if our libtool supports shared lib deps + dnl (in a rather ugly way even) + if $dynworks; then +- pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config" ++ pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./$host_alias-libtool --config" + pixbuf_deplibs_check=`$pixbuf_libtool_config | \ + grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \ + sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'` +@@ -957,7 +957,7 @@ + # We are using gmodule-no-export now, but I'm leaving the stripping + # code in place for now, since pango and atk still require gmodule. + export SED +-export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` ++export_dynamic=`(./$host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` + if test -n "$export_dynamic"; then + GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"` + fi diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest new file mode 100644 index 000000000..8f9072386 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest @@ -0,0 +1,3 @@ +#! /bin/sh + +gnome-desktop-testing-runner gdk-pixbuf diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.32.3.bb b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.32.3.bb new file mode 100644 index 000000000..ba94eecbd --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.32.3.bb @@ -0,0 +1,102 @@ +SUMMARY = "Image loading library for GTK+" +HOMEPAGE = "http://www.gtk.org/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://gdk-pixbuf/gdk-pixbuf.h;endline=26;md5=72b39da7cbdde2e665329fef618e1d6b" + +SECTION = "libs" + +DEPENDS = "glib-2.0" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ + file://hardcoded_libtool.patch \ + file://extending-libinstall-dependencies.patch \ + file://run-ptest \ + file://fatal-loader.patch \ + " + +SRC_URI[md5sum] = "9275076639baa24a342f3e02c402920e" +SRC_URI[sha256sum] = "2b6771f1ac72f687a8971e59810b8dc658e65e7d3086bd2e676e618fd541d031" + +inherit autotools pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection + +LIBV = "2.10.0" + +GDK_PIXBUF_LOADERS ?= "png jpeg" + +PACKAGECONFIG ??= "${GDK_PIXBUF_LOADERS}" +PACKAGECONFIG_linuxstdbase = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} ${GDK_PIXBUF_LOADERS}" +PACKAGECONFIG_class-native = "${GDK_PIXBUF_LOADERS}" + +PACKAGECONFIG[png] = "--with-libpng,--without-libpng,libpng" +PACKAGECONFIG[jpeg] = "--with-libjpeg,--without-libjpeg,jpeg" +PACKAGECONFIG[tiff] = "--with-libtiff,--without-libtiff,tiff" +PACKAGECONFIG[jpeg2000] = "--with-libjasper,--without-libjasper,jasper" + +# Use GIO to sniff image format instead of trying all loaders +PACKAGECONFIG[gio-sniff] = "--enable-gio-sniffing,--disable-gio-sniffing,,shared-mime-info" +PACKAGECONFIG[x11] = "--with-x11,--without-x11,virtual/libx11" + +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" + +FILES_${PN}-dev += " \ + ${bindir}/gdk-pixbuf-csource \ + ${bindir}/gdk-pixbuf-pixdata \ + ${includedir}/* \ + ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/*.la \ +" + +PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*" +PACKAGES_DYNAMIC_class-native = "" + +python populate_packages_prepend () { + postinst_pixbufloader = d.getVar("postinst_pixbufloader", True) + + loaders_root = d.expand('${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders') + + packages = ' '.join(do_split_packages(d, loaders_root, '^libpixbufloader-(.*)\.so$', 'gdk-pixbuf-loader-%s', 'GDK pixbuf loader for %s')) + d.setVar('PIXBUF_PACKAGES', packages) + + # The test suite exercises all the loaders, so ensure they are all + # dependencies of the ptest package. + d.appendVar("RDEPENDS_gdk-pixbuf-ptest", " " + packages) +} + +do_install_append() { + # Move gdk-pixbuf-query-loaders into libdir so it is always available + # in multilib builds. + mv ${D}/${bindir}/gdk-pixbuf-query-loaders ${D}/${libdir}/gdk-pixbuf-2.0/ +} + +do_install_append_class-native() { + find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \; + + create_wrapper ${D}/${bindir}/gdk-pixbuf-csource \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache + + create_wrapper ${D}/${bindir}/gdk-pixbuf-pixdata \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache + + create_wrapper ${D}/${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \ + GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders +} +BBCLASSEXTEND = "native" + +SSTATEPREINSTFUNCS_append_class-native = " gdkpixbuf_sstate_preinst" +SYSROOT_PREPROCESS_FUNCS_append_class-native = " gdkpixbuf_sstate_preinst" + +gdkpixbuf_sstate_preinst() { + if [ "${BB_CURRENTTASK}" = "populate_sysroot" ]; then + rm -rf ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/* + fi +} diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.18.2.bb b/import-layers/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.18.2.bb new file mode 100644 index 000000000..ee460d988 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.18.2.bb @@ -0,0 +1,24 @@ +SUMMARY = "GNOME library for reading .desktop files" +SECTION = "x11/gnome" +LICENSE = "GPLv2 & LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +BPN = "gnome-desktop" + +inherit gnome pkgconfig upstream-version-is-even gobject-introspection +SRC_URI[archive.md5sum] = "9a5875247abdb99bad93f1c4230d1d6d" +SRC_URI[archive.sha256sum] = "ddd46d022de137543a71f50c7392b32f9b98d5d3f2b53040b35f5802de2e7b56" + +DEPENDS += "gsettings-desktop-schemas gconf libxrandr virtual/libx11 gtk+3 glib-2.0 gnome-doc-utils gnome-common startup-notification xkeyboard-config iso-codes" + +inherit distro_features_check +REQUIRED_DISTRO_FEATURES = "x11" + +EXTRA_OECONF = "--disable-desktop-docs" + +PACKAGES =+ "libgnome-desktop3" +FILES_libgnome-desktop3 = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop*/pnp.ids ${datadir}/gnome/*xml" + +RRECOMMENDS_libgnome-desktop3 += "gsettings-desktop-schemas" + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.18.0.bb b/import-layers/yocto-poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.18.0.bb new file mode 100644 index 000000000..81c88458d --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.18.0.bb @@ -0,0 +1,37 @@ +SUMMARY = "GTK+ icon theme" +HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/adwaita-icon-theme/" +BUGTRACKER = "https://bugzilla.gnome.org/" +SECTION = "x11/gnome" + +LICENSE = "LGPL-3.0 | CC-BY-SA-3.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=c84cac88e46fc07647ea07e6c24eeb7c" + +inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even + +DEPENDS += "intltool-native" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" +SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ + " + +SRC_URI[md5sum] = "ec1fa3fde83ad166ae7075a97dc1ec4b" +SRC_URI[sha256sum] = "5e9ce726001fdd8ee93c394fdc3cdb9e1603bbed5b7c62df453ccf521ec50e58" + +do_install_append() { + # Build uses gtk-encode-symbolic-svg to create png versions: + # no need to store the svgs anymore. + rm -f ${D}${prefix}/share/icons/Adwaita/scalable/*/*-symbolic.svg \ + ${D}${prefix}/share/icons/Adwaita/scalable/*/*-symbolic-rtl.svg +} + +PACKAGES = "${PN}-cursors ${PN}-symbolic ${PN}-hires ${PN}" + +RREPLACES_${PN} = "gnome-icon-theme" +RCONFLICTS_${PN} = "gnome-icon-theme" +RPROVIDES_${PN} = "gnome-icon-theme" + +FILES_${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/" +FILES_${PN}-symbolic = "${prefix}/share/icons/Adwaita/*/*/*.symbolic.png" +FILES_${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/" +FILES_${PN} = "${prefix}/share/icons/Adwaita/ \ + ${prefix}/share/pkgconfig/adwaita-icon-theme.pc" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gconf/remove_plus_from_invalid_characters_list.patch b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gconf/remove_plus_from_invalid_characters_list.patch new file mode 100644 index 000000000..59a7ca780 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gconf/remove_plus_from_invalid_characters_list.patch @@ -0,0 +1,19 @@ +Upstream-Status: Pending + +Remove '+' from invalid characters list + +Signed-off-by: Laurentiu Palcu + +Index: GConf-3.2.5/gconf/gconf-backend.c +=================================================================== +--- GConf-3.2.5.orig/gconf/gconf-backend.c ++++ GConf-3.2.5/gconf/gconf-backend.c +@@ -37,7 +37,7 @@ static const char invalid_chars[] = + /* Space is common in user names (and thus home directories) on Windows */ + " " + #endif +- "\t\r\n\"$&<>,+=#!()'|{}[]?~`;%\\"; ++ "\t\r\n\"$&<>,=#!()'|{}[]?~`;%\\"; + + static gboolean + gconf_address_valid (const char *address, diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gconf/unable-connect-dbus.patch b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gconf/unable-connect-dbus.patch new file mode 100644 index 000000000..f758a4bcc --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gconf/unable-connect-dbus.patch @@ -0,0 +1,95 @@ +Fixes errors such as this in the rootfs generation: + +(gconftool-2.real:10095): GConf-WARNING **: Client failed to connect to the D-BUS daemon: +Using X11 for dbus-daemon autolaunch was disabled at compile time, set your DBUS_SESSION_BUS_ADDRESS instead + +Upstream-Status: Backport +Signed-off-by: Ross Burton + +From b0895e1998ebc83ab030ec0f17c0685439f5b404 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Mon, 15 Apr 2013 09:57:34 -0400 +Subject: [PATCH] dbus: Don't spew to console when unable to connect to dbus + daemon + +Instead pass the error up for the caller to decide what to do. + +This prevent untrappable warning messages from showing up at the +console if gconftool --makefile-install-rule is called. +--- + gconf/gconf-dbus.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/gconf/gconf-dbus.c b/gconf/gconf-dbus.c +index 5610fcf..048e3ea 100644 +--- a/gconf/gconf-dbus.c ++++ b/gconf/gconf-dbus.c +@@ -105,7 +105,7 @@ static GHashTable *engines_by_db = NULL; + static GHashTable *engines_by_address = NULL; + static gboolean dbus_disconnected = FALSE; + +-static gboolean ensure_dbus_connection (void); ++static gboolean ensure_dbus_connection (GError **error); + static gboolean ensure_service (gboolean start_if_not_found, + GError **err); + static gboolean ensure_database (GConfEngine *conf, +@@ -383,7 +383,7 @@ gconf_engine_detach (GConfEngine *conf) + } + + static gboolean +-ensure_dbus_connection (void) ++ensure_dbus_connection (GError **err) + { + DBusError error; + +@@ -392,7 +392,9 @@ ensure_dbus_connection (void) + + if (dbus_disconnected) + { +- g_warning ("The connection to DBus was broken. Can't reinitialize it."); ++ g_set_error (err, GCONF_ERROR, ++ GCONF_ERROR_NO_SERVER, ++ "The connection to DBus was broken. Can't reinitialize it."); + return FALSE; + } + +@@ -402,7 +404,10 @@ ensure_dbus_connection (void) + + if (!global_conn) + { +- g_warning ("Client failed to connect to the D-BUS daemon:\n%s", error.message); ++ g_set_error (err, GCONF_ERROR, ++ GCONF_ERROR_NO_SERVER, ++ "Client failed to connect to the D-BUS daemon:\n%s", ++ error.message); + + dbus_error_free (&error); + return FALSE; +@@ -431,13 +436,8 @@ ensure_service (gboolean start_if_not_found, + + if (global_conn == NULL) + { +- if (!ensure_dbus_connection ()) +- { +- g_set_error (err, GCONF_ERROR, +- GCONF_ERROR_NO_SERVER, +- _("No D-BUS daemon running\n")); +- return FALSE; +- } ++ if (!ensure_dbus_connection (err)) ++ return FALSE; + + g_assert (global_conn != NULL); + } +@@ -2512,7 +2512,7 @@ gconf_ping_daemon (void) + { + if (global_conn == NULL) + { +- if (!ensure_dbus_connection ()) ++ if (!ensure_dbus_connection (NULL)) + { + return FALSE; + } +-- +1.7.10.4 + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb new file mode 100644 index 000000000..9e9f71428 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb @@ -0,0 +1,54 @@ +SUMMARY = "GNOME configuration system" +SECTION = "x11/gnome" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +DEPENDS = "glib-2.0 dbus dbus-glib libxml2 intltool-native" + +inherit gnomebase gtk-doc gettext gobject-introspection gio-module-cache + +SRC_URI = "${GNOME_MIRROR}/GConf/${@gnome_verdir("${PV}")}/GConf-${PV}.tar.xz;name=archive \ + file://remove_plus_from_invalid_characters_list.patch \ + file://unable-connect-dbus.patch \ +" + +SRC_URI[archive.md5sum] = "2b16996d0e4b112856ee5c59130e822c" +SRC_URI[archive.sha256sum] = "1912b91803ab09a5eed34d364bf09fe3a2a9c96751fde03a4e0cfa51a04d784c" + +S = "${WORKDIR}/GConf-${PV}" + +EXTRA_OECONF = "--enable-shared --disable-static \ + --disable-orbit --with-openldap=no --disable-gtk" + +# Disable PolicyKit by default +PACKAGECONFIG ??= "" +# We really don't want PolicyKit for native or uclibc +PACKAGECONFIG_class-native = "" +PACKAGECONFIG_libc-uclibc = "" + +PACKAGECONFIG[policykit] = "--enable-defaults-service,--disable-defaults-service,polkit" +PACKAGECONFIG[debug] = "--enable-debug=yes, --enable-debug=minimum" + +do_install_append() { + # this directory need to be created to avoid an Error 256 at gdm launch + install -d ${D}${sysconfdir}/gconf/gconf.xml.system + + # this stuff is unusable + rm -f ${D}${libdir}/GConf/*/*.*a + rm -f ${D}${libdir}/gio/*/*.*a +} + +do_install_append_class-native() { + create_wrapper ${D}/${bindir}/gconftool-2 \ + GCONF_BACKEND_DIR=${STAGING_LIBDIR_NATIVE}/GConf/2 +} + +FILES_${PN} += "${libdir}/GConf/* \ + ${libdir}/gio/*/*.so \ + ${datadir}/polkit* \ + ${datadir}/dbus-1/services/*.service \ + ${datadir}/dbus-1/system-services/*.service \ + " +FILES_${PN}-dev += "${datadir}/sgml/gconf/gconf-1.0.dtd" + +BBCLASSEXTEND = "native" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-common_3.18.0.bb b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-common_3.18.0.bb new file mode 100644 index 000000000..06f3bb34c --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-common_3.18.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "Common macros for building GNOME applications" +HOMEPAGE = "http://www.gnome.org/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SECTION = "x11/gnome" +inherit gnomebase allarch + +SRC_URI[archive.md5sum] = "933258d9c23e218eb6eec9cc1951b053" +SRC_URI[archive.sha256sum] = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf" + +EXTRA_AUTORECONF = "" +DEPENDS = "" + +FILES_${PN} += "${datadir}/aclocal" +FILES_${PN}-dev = "" + +BBCLASSEXTEND = "native" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils.inc b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils.inc new file mode 100644 index 000000000..8adfac7d7 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils.inc @@ -0,0 +1,30 @@ +SUMMARY = "A collection of documentation utilities for the Gnome project" +DESCRIPTION = "The GNOME Documentation Build Utilities (gnome-doc- \ +utils) were created to make it easier for application developers to \ +include and create documentation in their releases. They include the \ +xml2po tool which makes it easier to translate and keep up to date \ +translations of documentation." +LICENSE = "GPLv2 & LGPLv2.1" +DEPENDS = "libxml2 libxslt libxslt-native gnome-doc-utils-native glib-2.0" +DEPENDS_class-native = "libxml2-native libxslt-native intltool-native glib-2.0-native" + +inherit gnomebase gettext python-dir pythonnative autotools-brokensep + +CLEANBROKEN = "1" + +EXTRA_OECONF += "--disable-scrollkeeper" + +do_install_append() { + chown -R root:root ${D} +} + +do_install_append_class-native () { + sed -i -e 's|^#!.*/usr/bin/env python|#! /usr/bin/env nativepython|' ${D}${bindir}/xml2po +} + +FILES_${PN} += "${datadir}/xml* ${PYTHON_SITEPACKAGES_DIR}/*" + +RDEPENDS_${PN} = "bash" +RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/sysrooted-pkg-config.patch b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/sysrooted-pkg-config.patch new file mode 100644 index 000000000..416d69864 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/sysrooted-pkg-config.patch @@ -0,0 +1,35 @@ +In cross environment we have to prepend the sysroot to the path found by +pkgconfig since the path returned from pkgconfig does not have sysroot prefixed +it ends up using the files from host system. Now usually people have gnome installed +so the build succeeds but if you dont have gnome installed on build host then +it wont find the files on host system and packages using gnome-doc-utils wont +compile. + +This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR +will be empty + +Upstream-Status: Pending +Signed-off-by: Khem Raj +Signed-off-by: Constantin Musca + +Index: gnome-doc-utils-0.20.10/tools/gnome-doc-utils.make +=================================================================== +--- gnome-doc-utils-0.20.10.orig/tools/gnome-doc-utils.make ++++ gnome-doc-utils-0.20.10/tools/gnome-doc-utils.make +@@ -133,11 +133,11 @@ _DOC_ABS_SRCDIR = @abs_srcdir@ + _xml2po ?= `which xml2po` + _xml2po_mode = $(if $(DOC_ID),mallard,docbook) + +-_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils` +-_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils` +-_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl +-_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl +-_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl ++_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils` ++_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils` ++_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl ++_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl ++_ids ?= ${PKG_CONFIG_SYSROOT_DIR}$(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl + + if ENABLE_SK + _ENABLE_SK = true diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/use-usr-bin-env-for-python-in-xml2po.patch b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/use-usr-bin-env-for-python-in-xml2po.patch new file mode 100644 index 000000000..0e196c063 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/use-usr-bin-env-for-python-in-xml2po.patch @@ -0,0 +1,30 @@ +We can't use #!/full/path/to/python -u as this can be longer than shebang +allows for. In order to be appropraite for upstream more work would be +needed to make sure that the main xml2po code doesn't rely on python +being invoked with -u (force stdin/out/err to be used raw). + +Upstream-Status: Inappropriate [Would break behavior on Windows] +Signed-off-by: Constantin Musca + +Index: gnome-doc-utils-0.20.10/xml2po/xml2po/Makefile.am +=================================================================== +--- gnome-doc-utils-0.20.10.orig/xml2po/xml2po/Makefile.am ++++ gnome-doc-utils-0.20.10/xml2po/xml2po/Makefile.am +@@ -7,7 +7,6 @@ CLEANFILES = xml2po + + xml2po: xml2po.py.in + $(AM_V_GEN)sed -e "s/^VERSION =.*/VERSION = \"@VERSION@\"/" \ +- -e "s+^#!.*python.*+#!$(PYTHON)+" \ + < $(srcdir)/xml2po.py.in > xml2po + $(AM_V_at)chmod +x xml2po + +Index: gnome-doc-utils-0.20.10/xml2po/xml2po/xml2po.py.in +=================================================================== +--- gnome-doc-utils-0.20.10.orig/xml2po/xml2po/xml2po.py.in ++++ gnome-doc-utils-0.20.10/xml2po/xml2po/xml2po.py.in +@@ -1,4 +1,4 @@ +-#!/usr/bin/python -u ++#!/usr/bin/env python + # -*- encoding: utf-8 -*- + # Copyright (c) 2004, 2005, 2006 Danilo Ĺ egan . + # Copyright (c) 2009 Claude Paroz . diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/xsltproc_nonet.patch b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/xsltproc_nonet.patch new file mode 100644 index 000000000..9346494e9 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils/xsltproc_nonet.patch @@ -0,0 +1,95 @@ +This adds the -nonet option to xsltproc invocations, which fixes +compile errors when building the gnome-doc-utils docs. + +Upstream-Status: Inappropriate [configuration] +Signed-off-by: Scott Garman +Signed-off-by: Constantin Musca + +Index: gnome-doc-utils-0.20.10/doc/xslt/Makefile.am +=================================================================== +--- gnome-doc-utils-0.20.10.orig/doc/xslt/Makefile.am ++++ gnome-doc-utils-0.20.10/doc/xslt/Makefile.am +@@ -21,14 +21,14 @@ all: $(xsldoc_docs) $(xsldoc_xmls) + + $(xsldoc_docs): $(xsldoc_xsls) xsldoc.awk xsldoc-fill.xsl + $(AM_V_GEN)$(GDU_AWK) -f "$(srcdir)/xsldoc.awk" "$(filter %/$(basename $(notdir $@)).xsl,$(xsldoc_xsls))" \ +- | xsltproc -o "$@" \ ++ | xsltproc -nonet -o "$@" \ + --stringparam basename "$(basename $(notdir $@))" \ + --stringparam xsl_file "$(filter %/$(basename $(notdir $@)).xsl,$(xsldoc_xsls))" \ + "$(srcdir)/xsldoc-fill.xsl" - + + $(xsldoc_xmls): xsldoc-docbook.xsl + $(xsldoc_xmls): C/%.xml : C/%.xsldoc +- $(AM_V_GEN)xsltproc -o "$@" \ ++ $(AM_V_GEN)xsltproc -nonet -o "$@" \ + --stringparam basename "$(basename $(notdir $@))" \ + --stringparam xsl_file "$(filter %/$(basename $(notdir $@)).xsl,$(xsldoc_xsls))" \ + "$(srcdir)/xsldoc-docbook.xsl" "$<" +@@ -62,7 +62,7 @@ gnome-doc-xslt-check-includes: + gnome-doc-xslt-check-xsldoc: $(xsldoc_docs) + @echo "Running xsldoc checks"; + @(echo ""; cat $(xsldoc_docs); echo "") \ +- | xsltproc "$(srcdir)/xsldoc-check.xsl" - 1> /dev/null ++ | xsltproc -nonet "$(srcdir)/xsldoc-check.xsl" - 1> /dev/null + + .PHONY: clean-xsldoc + clean-local: clean_xsldoc +Index: gnome-doc-utils-0.20.10/tools/gnome-doc-utils.make +=================================================================== +--- gnome-doc-utils-0.20.10.orig/tools/gnome-doc-utils.make ++++ gnome-doc-utils-0.20.10/tools/gnome-doc-utils.make +@@ -37,7 +37,7 @@ $(DOC_H_FILE): $(DOC_H_DOCS); + list='$(DOC_H_DOCS)'; for doc in $$list; do \ + xmlpath="`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`:$(srcdir)/`echo $$doc | sed -e 's/^\(.*\/\).*/\1/' -e '/\//!s/.*//'`"; \ + if ! test -f "$$doc"; then doc="$(srcdir)/$$doc"; fi; \ +- xsltproc --path "$$xmlpath" $(_credits) $$doc; \ ++ xsltproc -nonet --path "$$xmlpath" $(_credits) $$doc; \ + done | sort | uniq \ + | awk 'BEGIN{s=""}{n=split($$0,w,"<");if(s!=""&&s!=substr(w[1],1,length(w[1])-1)){print s};if(n>1){print $$0;s=""}else{s=$$0}};END{if(s!=""){print s}}' \ + | sed -e 's/\\/\\\\/' -e 's/"/\\"/' -e 's/\(.*\)/\t"\1",/' >> $@.tmp +@@ -50,7 +50,7 @@ $(DOC_H_FILE): $(DOC_H_DOCS); + docid=`echo "$$doc" | sed -e 's/.*\/\([^/]*\)\.xml/\1/' \ + | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`; \ + echo $$xmlpath; \ +- ids=`xsltproc --xinclude --path "$$xmlpath" $(_ids) $$doc`; \ ++ ids=`xsltproc -nonet --xinclude --path "$$xmlpath" $(_ids) $$doc`; \ + for id in $$ids; do \ + echo '#define HELP_'`echo $$docid`'_'`echo $$id \ + | sed -e 's/[^a-zA-Z_]/_/g' | tr 'a-z' 'A-Z'`' "'$$id'"' >> $@.tmp; \ +@@ -197,7 +197,7 @@ $(_DOC_OMF_DB) : $(DOC_MODULE)-%.omf : % + echo "The file '$(_skcontentslist)' does not exist." >&2; \ + echo "Please check your ScrollKeeper installation." >&2; \ + exit 1; } +- $(GDU_V_DB2OMF)xsltproc -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; } ++ $(GDU_V_DB2OMF)xsltproc -nonet -o $@ $(call db2omf_args,$@,$<,'docbook') || { rm -f "$@"; exit 1; } + + ## @ _DOC_OMF_HTML + ## The OMF files for HTML output +@@ -212,7 +212,7 @@ if ENABLE_SK + echo "Please check your ScrollKeeper installation." >&2; \ + exit 1; } + endif +- $(GDU_V_DB2OMF)xsltproc -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; } ++ $(GDU_V_DB2OMF)xsltproc -nonet -o $@ $(call db2omf_args,$@,$<,'xhtml') || { rm -f "$@"; exit 1; } + + ## @ _DOC_OMF_ALL + ## All OMF output files to be built +@@ -267,7 +267,7 @@ _DOC_C_FIGURES = $(if $(DOC_FIGURES), + ## All HTML documentation in the C locale + # FIXME: probably have to shell escape to determine the file names + _DOC_C_HTML = $(foreach f, \ +- $(shell xsltproc --xinclude \ ++ $(shell xsltproc -nonet --xinclude \ + --stringparam db.chunk.basename "$(DOC_MODULE)" \ + $(_chunks) "C/$(DOC_MODULE).xml"), \ + C/$(f).xhtml) +@@ -393,7 +393,7 @@ _DOC_HTML_ALL = $(if $(filter html HTML, + _DOC_HTML_TOPS = $(foreach lc,C $(_DOC_REAL_LINGUAS),$(lc)/$(DOC_MODULE).xhtml) + + $(_DOC_HTML_TOPS): $(_DOC_C_DOCS) $(_DOC_LC_DOCS) +- $(GDU_V_DB2HTM)xsltproc -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@) ++ $(GDU_V_DB2HTM)xsltproc -nonet -o $@ --xinclude --param db.chunk.chunk_top "false()" --stringparam db.chunk.basename "$(DOC_MODULE)" --stringparam db.chunk.extension ".xhtml" $(_db2html) $(patsubst %.xhtml,%.xml,$@) + + + ################################################################################ diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils_0.20.10.bb b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils_0.20.10.bb new file mode 100644 index 000000000..78cc005f9 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils_0.20.10.bb @@ -0,0 +1,11 @@ +require gnome-doc-utils.inc +LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=eb723b61539feef013de476e68b5c50a \ + file://COPYING.LGPL;md5=a6f89e2100d9b6cdffcea4f398e37343" + +SRC_URI += "file://xsltproc_nonet.patch \ + file://use-usr-bin-env-for-python-in-xml2po.patch \ + file://sysrooted-pkg-config.patch \ + " + +SRC_URI[archive.md5sum] = "3c64ad7bacd617b04999e4a168afaac5" +SRC_URI[archive.sha256sum] = "cb0639ffa9550b6ddf3b62f3b1add92fb92ab4690d351f2353cffe668be8c4a6" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch b/import-layers/yocto-poky/meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch new file mode 100644 index 000000000..0261f58c9 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch @@ -0,0 +1,84 @@ +Taken from portage + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +From e1443c945a4cf67096d8c27721aadd7368382b3f Mon Sep 17 00:00:00 2001 +From: Gilles Dartiguelongue +Date: Tue, 6 Apr 2010 15:22:25 +0200 +Subject: [PATCH 2/2] gentoo: use ISO types for fixed type size + +--- + Makefile.am | 11 ++--------- + art_config.h | 5 +++++ + configure.in | 10 ---------- + 3 files changed, 7 insertions(+), 19 deletions(-) + create mode 100644 art_config.h + +diff --git a/Makefile.am b/Makefile.am +index 95952da..6aa2fe3 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -2,13 +2,6 @@ check_PROGRAMS = testart testuta + + bin_SCRIPTS = \ + libart2-config +- +-noinst_SCRIPTS = gen_art_config.sh +- +-BUILT_SOURCES = art_config.h +- +-art_config.h: +- ./gen_art_config.sh > art_config.h + + EXTRA_DIST = \ + libart.def \ +@@ -173,5 +166,5 @@ install-data-local: install-ms-lib install-libtool-import-lib + + uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib + +-CLEANFILES = $(BUILT_SOURCES) $(bin_SCRIPTS) +-DISTCLEANFILES = $(BUILT_SOURCES) $(bin_SCRIPTS) ++CLEANFILES = $(bin_SCRIPTS) ++DISTCLEANFILES = $(bin_SCRIPTS) +diff --git a/art_config.h b/art_config.h +new file mode 100644 +index 0000000..5985f1f +--- a/art_config.h ++++ b/art_config.h +@@ -0,0 +1,5 @@ ++#include ++ ++typedef uint8_t art_u8; ++typedef uint16_t art_u16; ++typedef uint32_t art_u32; +diff --git a/configure.in b/configure.in +index e4804f7..ddcac4f 100644 +--- a/configure.in ++++ b/configure.in +@@ -92,15 +92,6 @@ AC_FUNC_ALLOCA + + AC_C_BIGENDIAN + +-AC_CHECK_SIZEOF(char) +-AC_SUBST(ART_SIZEOF_CHAR, $ac_cv_sizeof_char) +-AC_CHECK_SIZEOF(short) +-AC_SUBST(ART_SIZEOF_SHORT, $ac_cv_sizeof_short) +-AC_CHECK_SIZEOF(int) +-AC_SUBST(ART_SIZEOF_INT, $ac_cv_sizeof_int) +-AC_CHECK_SIZEOF(long) +-AC_SUBST(ART_SIZEOF_LONG, $ac_cv_sizeof_long) +- + AC_CONFIG_FILES([ + libart-features.h + Makefile +@@ -109,6 +100,5 @@ libart-2.0-uninstalled.pc + libart-zip]) + + AC_CONFIG_FILES([libart-config],[chmod +x libart-config]) +-AC_CONFIG_FILES([gen_art_config.sh],[chmod +x gen_art_config.sh]) + + AC_OUTPUT +-- +1.7.0.4 + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb b/import-layers/yocto-poky/meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb new file mode 100644 index 000000000..95581b297 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb @@ -0,0 +1,22 @@ +SUMMARY = "Library of functions for 2D graphics" +SECTION = "x11/gnome" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" +PR = "r2" + +# can't use gnome.oeclass due to _ in filename +SRC_URI = "${GNOME_MIRROR}/libart_lgpl/2.3/libart_lgpl-${PV}.tar.bz2 \ + file://libart_lgpl-2.3.21-crosscompile.patch \ + " + +SRC_URI[md5sum] = "08559ff3c67fd95d57b0c5e91a6b4302" +SRC_URI[sha256sum] = "fdc11e74c10fc9ffe4188537e2b370c0abacca7d89021d4d303afdf7fd7476fa" + +inherit autotools pkgconfig + +DEPENDS = "" + +FILES_${PN} = "${libdir}/*.so.*" +FILES_${PN}-dev += "${bindir}/libart2-config" + +S = "${WORKDIR}/libart_lgpl-${PV}" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch new file mode 100644 index 000000000..5026d8177 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch @@ -0,0 +1,97 @@ +From a57604e205e6535acd9989444ad1f5f5038f4fba Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +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 + +--- + Makefile-gir.am | 18 +++++++++--------- + m4/introspection.m4 | 8 ++++---- + 2 files changed, 13 insertions(+), 13 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..b562266 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_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 --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 ++ 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.7.0 + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-add-host-gi-gi-cross-wrapper-and-gi-ldd.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-add-host-gi-gi-cross-wrapper-and-gi-ldd.patch new file mode 100644 index 000000000..6afefabc7 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-configure.ac-add-host-gi-gi-cross-wrapper-and-gi-ldd.patch @@ -0,0 +1,204 @@ +From c6e4f83c373b577166a7e46130ce8ff025ee8515 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 19 Oct 2015 18:29:21 +0300 +Subject: [PATCH] configure.ac: add host-gi, gi-cross-wrapper, gi-ldd-wrapper + and introspection-data 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). + +With the fourth option, it is possible to disable building of introspection data +(.gir and .typelib files), which may be difficult or impossible in cross-compilation +environments, because of lack of emulation (or native hardware) for the target architecture +on which the target binaries can be run. + +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 + +--- + Makefile.am | 2 ++ + common.mk | 39 +++++++++++++++++++++++++++++++++++++++ + configure.ac | 42 ++++++++++++++++++++++++++++++++++++++++++ + tests/Makefile.am | 5 ++++- + 4 files changed, 87 insertions(+), 1 deletion(-) + +diff --git a/Makefile.am b/Makefile.am +index 437c673..1eb3545 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -21,7 +21,9 @@ include Makefile-cmph.am + include Makefile-girepository.am + include Makefile-giscanner.am + include Makefile-examples.am ++if BUILD_INTROSPECTION_DATA + include Makefile-gir.am ++endif + include Makefile-tools.am + include Makefile-msvcproj.am + +diff --git a/common.mk b/common.mk +index e26c637..9f3a65f 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,9 +23,24 @@ 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 \ +@@ -24,9 +48,15 @@ INTROSPECTION_SCANNER_ARGS = \ + --add-include-path=$(top_builddir) \ + --add-include-path=$(top_builddir)/gir + ++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) \ +@@ -35,6 +65,14 @@ INTROSPECTION_COMPILER_ARGS = \ + --includedir=$(top_builddir) \ + --includedir=$(top_builddir)/gir + ++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 \ +@@ -42,6 +80,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 b11596b..d78ae52 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -347,6 +347,48 @@ 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_ARG_ENABLE([introspection-data], ++[AS_HELP_STRING([--enable-introspection-data],[Build introspection data (.gir and .typelib files) in addition to library and tools])], ++[case "${enableval}" in ++ yes) introspection_data=true ;; ++ no) introspection_data=false ;; ++ *) AC_MSG_ERROR([bad value ${enableval} for --enable-introspection-data]) ;; ++esac],[introspection_data=true]) ++AM_CONDITIONAL([BUILD_INTROSPECTION_DATA], [test x$introspection_data = xtrue]) ++ + AC_CONFIG_FILES([ + Makefile + tests/Makefile +diff --git a/tests/Makefile.am b/tests/Makefile.am +index bdd0fa7..75dd3c9 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -1,6 +1,9 @@ + include $(top_srcdir)/common.mk + +-SUBDIRS = . scanner repository offsets warn ++SUBDIRS = . scanner repository warn ++if BUILD_INTROSPECTION_DATA ++SUBDIRS += offsets ++endif + + EXTRA_DIST= + BUILT_SOURCES= +-- +2.6.2 + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-use-ldd-wrapper-option.patch new file mode 100644 index 000000000..f923dcccf --- /dev/null +++ b/import-layers/yocto-poky/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 +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 + +--- + 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/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-use-binary-wrapper-option.patch new file mode 100644 index 000000000..e1241a949 --- /dev/null +++ b/import-layers/yocto-poky/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 +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 + +--- + 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/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb new file mode 100644 index 000000000..9b16147da --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.46.0.bb @@ -0,0 +1,163 @@ +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.46/${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://0001-giscanner-add-a-use-ldd-wrapper-option.patch \ + file://0001-configure.ac-add-host-gi-gi-cross-wrapper-and-gi-ldd.patch \ + " +SRC_URI[md5sum] = "adb40a31c7c80b65b0f4c8fd71b493dc" +SRC_URI[sha256sum] = "6658bd3c2b8813eb3e2511ee153238d09ace9d309e4574af27443d87423e4233" + +inherit autotools pkgconfig gtk-doc pythonnative qemu gobject-introspection-data +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 python" + +# 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. +# Also prelink-rtld is used to find out library dependencies of introspection binaries +# (standard ldd doesn't work when cross-compiling). +DEPENDS_class-target_append = " gobject-introspection-native qemu-native prelink-native" + +SSTATE_SCAN_FILES += "g-ir-scanner-qemuwrapper g-ir-scanner-wrapper g-ir-compiler-wrapper g-ir-scanner-lddwrapper Gio-2.0.gir" + +do_configure_prepend_class-native() { + # Tweak the native python scripts so that they don't refer to the + # full path of native python binary (the solution is taken from glib-2.0 recipe) + # This removes the risk of exceeding Linux kernel's shebang line limit (128 bytes) + sed -i -e '1s,#!.*,#!${USRBINPATH}/env nativepython,' ${S}/tools/g-ir-tool-template.in +} + +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/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}" + cat > ${B}/g-ir-scanner-qemuwrapper << EOF +#!/bin/sh +# Use a modules directory which doesn't exist so we don't load random things +# which may then get deleted (or their dependencies) and potentially segfault +export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy + +$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 + +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-tool-template.in +} + +# Configure target build to use native tools of itself and to use a qemu wrapper +# and optionally to generate introspection data +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 \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-introspection-data', '--disable-introspection-data', d)} \ + " + + +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}/ +} + +# .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" + +# These are used by gobject-based packages +# to generate transient introspection binaries +FILES_${PN}-dev_append = " ${datadir}/gobject-introspection-1.0/gdump.c \ + ${datadir}/gobject-introspection-1.0/Makefile.introspection" + +# These are used by dependent packages (e.g. pygobject) to build their +# testsuites. +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 +} diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.19.3.bb b/import-layers/yocto-poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.19.3.bb new file mode 100644 index 000000000..25fdabade --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.19.3.bb @@ -0,0 +1,14 @@ +SUMMARY = "GNOME desktop-wide GSettings schemas" +HOMEPAGE = "http://live.gnome.org/gsettings-desktop-schemas" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "glib-2.0 intltool-native" + +inherit gnomebase gsettings gettext gobject-introspection + +SRC_URI[archive.md5sum] = "fdc92abcffe46821be423193b275cf8b" +SRC_URI[archive.sha256sum] = "9084989b75ca9b3fc5984c8a0d297a93d3d124f51cadd2bdaaaa75a783c80635" + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc new file mode 100644 index 000000000..5bbfe6b8e --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc @@ -0,0 +1,97 @@ +SUMMARY = "Multi-platform toolkit for creating GUIs" +DESCRIPTION = "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \ +set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites." +HOMEPAGE = "http://www.gtk.org" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" + +SECTION = "libs" + +inherit distro_features_check +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" + +# This picks stable releases in the 2.x series (but not 2.90 onwards, +# which were GNOME 3 betas). +UPSTREAM_CHECK_REGEX = "(?P2\.([0-8]*[02468])+(\.\d+)+)" + +X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite" +DEPENDS = "glib-2.0 pango atk jpeg libpng gdk-pixbuf-native docbook-utils-native \ + cairo gdk-pixbuf" + +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \ +" + +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 gobject-introspection + +PACKAGES += "libgail gtk-demo" + +FILES_${PN} += "${bindir}/gtk-update-icon-cache-2.0 \ + ${bindir}/gtk-query-immodules-2.0 \ + ${datadir}/themes ${sysconfdir} \ + ${libdir}/gtk-2.0/${LIBV}/engines/libpixmap.so" + +FILES_${PN}-dev += " \ + ${datadir}/gtk-2.0/include \ + ${libdir}/gtk-2.0/include \ + ${libdir}/gtk-2.0/modules/*.la \ + ${libdir}/gtk-2.0/${LIBV}/loaders/*.la \ + ${libdir}/gtk-2.0/${LIBV}/immodules/*.la \ + ${libdir}/gtk-2.0/${LIBV}/printbackends/*.la \ + ${libdir}/gtk-2.0/${LIBV}/engines/*.la \ + ${bindir}/gtk-builder-convert" + +FILES_gtk-demo = " \ + ${datadir}/gtk-2.0/demo/* \ + ${bindir}/gtk-demo \ + " + +FILES_libgail = " \ + ${libdir}/gtk-2.0/modules/libgail.so \ + ${libdir}/gtk-2.0/modules/libferret.so \ + " + +GTKBASE_RRECOMMENDS ?= "liberation-fonts gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-gif gdk-pixbuf-loader-xpm shared-mime-info" +GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1" + +RRECOMMENDS_${PN} = "${GTKBASE_RRECOMMENDS}" +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 + + install -d ${D}${sysconfdir}/gtk-2.0 + + mkdir -p ${D}${libdir}/gtk-2.0/include + install -m 0644 gdk/gdkconfig.h ${D}${libdir}/gtk-2.0/include/gdkconfig.h + + install -m 0644 ${S}/gtk/gtkfilechooserprivate.h ${D}${includedir}/gtk-2.0/gtk/ + install -m 0644 ${S}/gtk/gtkfilechooserutils.h ${D}${includedir}/gtk-2.0/gtk/ + install -m 0644 ${S}/gtk/gtkfilesystemmodel.h ${D}${includedir}/gtk-2.0/gtk/ + + mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-2.0 +} + +SYSROOT_PREPROCESS_FUNCS += "gtk_sysroot_preprocess" + +gtk_sysroot_preprocess () { + if [ -e ${D}${bindir}/gtk-builder-convert ]; then + install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ + install -m 755 ${D}${bindir}/gtk-builder-convert ${SYSROOT_DESTDIR}${bindir_crossscripts}/ + fi +} + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch new file mode 100644 index 000000000..74e479fd1 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch @@ -0,0 +1,22 @@ +There are issues building the gtk+ tutorial and faq documentation. +Since they were removed in gtk+ upstream and are superfluous in +embedded applications, just don't build them. + +Thanks to Joshua Lock for suggesting this approach. + +Signed-off-by: Scott Garman + +Upstream-Status: Inappropriate [embedded specific] + +diff -urN gtk+-2.22.1.orig/docs/Makefile.am gtk+-2.22.1/docs/Makefile.am +--- gtk+-2.22.1.orig/docs/Makefile.am 2010-11-15 04:13:09.000000000 -0800 ++++ gtk+-2.22.1/docs/Makefile.am 2011-02-23 19:25:16.914815097 -0800 +@@ -1,7 +1,7 @@ + ## Process this file with automake to produce Makefile.in + include $(top_srcdir)/Makefile.decl + +-SUBDIRS = tutorial faq reference tools ++SUBDIRS = reference tools + + EXTRA_DIST += \ + defsformat.txt \ diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch new file mode 100644 index 000000000..1ae728e70 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch @@ -0,0 +1,35 @@ +Upstream-Status: Inappropriate [embedded specific] + +Updated to apply to gtk+-2.24.15 + +Signed-off-by: Marko Lindqvist +diff -Nurd gtk+-2.24.15/configure.ac gtk+-2.24.15/configure.ac +--- gtk+-2.24.15/configure.ac 2013-01-12 20:52:54.000000000 +0200 ++++ gtk+-2.24.15/configure.ac 2013-02-12 21:33:30.689925967 +0200 +@@ -415,7 +415,7 @@ + case $enable_explicit_deps in + auto) + export SED +- deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` ++ deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` + if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then + enable_explicit_deps=yes + else +@@ -774,7 +774,7 @@ + dnl Now we check to see if our libtool supports shared lib deps + dnl (in a rather ugly way even) + if $dynworks; then +- module_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config" ++ module_libtool_config="${CONFIG_SHELL-/bin/sh} $host_alias-libtool --config" + module_deplibs_check=`$module_libtool_config | \ + grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \ + sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'` +@@ -1574,7 +1574,7 @@ + # We are using gmodule-no-export now, but I'm leaving the stripping + # code in place for now, since pango and atk still require gmodule. + export SED +-export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` ++export_dynamic=`($host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` + if test -n "$export_dynamic"; then + GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"` + GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"` diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch new file mode 100644 index 000000000..96e1f5fea --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch @@ -0,0 +1,24 @@ +Fixes + +include/gtk-2.0/gtk/gtkitemfactory.h:47:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] + typedef void (*GtkItemFactoryCallback) (); + +gcc5 has -Wstrict-prototypes on by default for -Werror so this becomes a build failure for consumers +of this header e.g. matchbox-panel-2 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +Index: gtk+-2.24.27/gtk/gtkitemfactory.h +=================================================================== +--- gtk+-2.24.27.orig/gtk/gtkitemfactory.h ++++ gtk+-2.24.27/gtk/gtkitemfactory.h +@@ -44,7 +44,7 @@ typedef void (*GtkPrintFunc) (gpoint + * (Note that if we are included from a C++ program () will mean + * (void) so an explicit cast will be needed.) + */ +-typedef void (*GtkItemFactoryCallback) (); ++typedef void (*GtkItemFactoryCallback) (void); + typedef void (*GtkItemFactoryCallback1) (gpointer callback_data, + guint callback_action, + GtkWidget *widget); diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff new file mode 100644 index 000000000..340d12008 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff @@ -0,0 +1,102 @@ +Upstream-Status: Pending + +Index: gtk/gtkcellrenderertoggle.c +=================================================================== +--- gtk/gtkcellrenderertoggle.c.orig 2010-06-22 18:11:33.000000000 +0800 ++++ gtk/gtkcellrenderertoggle.c 2010-06-22 18:11:43.000000000 +0800 +@@ -71,6 +71,8 @@ + PROP_INDICATOR_SIZE + }; + ++/* This is a hard-coded default which promptly gets overridden by a size ++ calculated from the font size. */ + #define TOGGLE_WIDTH 13 + + static guint toggle_cell_signals[LAST_SIGNAL] = { 0 }; +@@ -80,8 +82,9 @@ + typedef struct _GtkCellRendererTogglePrivate GtkCellRendererTogglePrivate; + struct _GtkCellRendererTogglePrivate + { +- gint indicator_size; +- ++ gint indicator_size; /* This is the real size */ ++ gint override_size; /* This is the size set from the indicator-size property */ ++ GtkWidget *cached_widget; + guint inconsistent : 1; + }; + +@@ -104,6 +107,7 @@ + GTK_CELL_RENDERER (celltoggle)->ypad = 2; + + priv->indicator_size = TOGGLE_WIDTH; ++ priv->override_size = 0; + priv->inconsistent = FALSE; + } + +@@ -210,7 +214,7 @@ + g_value_set_boolean (value, celltoggle->radio); + break; + case PROP_INDICATOR_SIZE: +- g_value_set_int (value, priv->indicator_size); ++ g_value_set_int (value, priv->override_size ? priv->override_size : priv->indicator_size); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); +@@ -245,7 +249,7 @@ + celltoggle->radio = g_value_get_boolean (value); + break; + case PROP_INDICATOR_SIZE: +- priv->indicator_size = g_value_get_int (value); ++ priv->override_size = g_value_get_int (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); +@@ -273,6 +277,27 @@ + } + + static void ++on_widget_style_set (GtkWidget *widget, GtkStyle *previous, gpointer user_data) ++{ ++ GtkCellRendererTogglePrivate *priv = user_data; ++ PangoContext *context; ++ PangoFontMetrics *metrics; ++ int height; ++ ++ context = gtk_widget_get_pango_context (widget); ++ metrics = pango_context_get_metrics (context, ++ widget->style->font_desc, ++ pango_context_get_language (context)); ++ ++ height = pango_font_metrics_get_ascent (metrics) + ++ pango_font_metrics_get_descent (metrics); ++ ++ pango_font_metrics_unref (metrics); ++ ++ priv->indicator_size = PANGO_PIXELS (height * 0.85); ++} ++ ++static void + gtk_cell_renderer_toggle_get_size (GtkCellRenderer *cell, + GtkWidget *widget, + GdkRectangle *cell_area, +@@ -287,6 +312,20 @@ + + priv = GTK_CELL_RENDERER_TOGGLE_GET_PRIVATE (cell); + ++ if (priv->override_size) { ++ priv->indicator_size = priv->override_size; ++ } else if (priv->cached_widget != widget) { ++ if (priv->cached_widget) { ++ g_object_remove_weak_pointer (widget, &priv->cached_widget); ++ g_signal_handlers_disconnect_by_func (priv->cached_widget, on_widget_style_set, priv); ++ } ++ priv->cached_widget = widget; ++ g_object_add_weak_pointer (widget, &priv->cached_widget); ++ g_signal_connect (widget, "style-set", on_widget_style_set, priv); ++ ++ on_widget_style_set (widget, NULL, priv); ++ } ++ + calc_width = (gint) cell->xpad * 2 + priv->indicator_size; + calc_height = (gint) cell->ypad * 2 + priv->indicator_size; + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/xsettings.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/xsettings.patch new file mode 100644 index 000000000..d0a970ad4 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+/xsettings.patch @@ -0,0 +1,20 @@ +Upstream-Status: Pending + +Index: gtk+-2.21.2/gdk/x11/gdkevents-x11.c +=================================================================== +--- gtk+-2.21.2.orig/gdk/x11/gdkevents-x11.c 2010-06-22 17:28:04.000000000 +0800 ++++ gtk+-2.21.2/gdk/x11/gdkevents-x11.c 2010-06-22 17:28:06.000000000 +0800 +@@ -3062,10 +3062,9 @@ + { + GdkScreenX11 *screen = data; + +- if (xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent)) +- return GDK_FILTER_REMOVE; +- else +- return GDK_FILTER_CONTINUE; ++ xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent); ++ ++ return GDK_FILTER_CONTINUE; + } + + static Bool diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc new file mode 100644 index 000000000..bd29300d5 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc @@ -0,0 +1,113 @@ +SUMMARY = "Multi-platform toolkit for creating GUIs" +DESCRIPTION = "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete \ +set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites." +HOMEPAGE = "http://www.gtk.org" +BUGTRACKER = "https://bugzilla.gnome.org/" +SECTION = "libs" + +DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \ + docbook-utils-native gdk-pixbuf-native libepoxy" + +LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" + +inherit autotools pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings distro_features_check upstream-version-is-even gobject-introspection +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +# This should be in autotools.bbclass, but until something elses uses it putting +# it here avoids rebuilding everything. +export PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native" + +do_configure_prepend() { + # Do this because the configure script is running ./libtool directly + rm -f libtool + ln -s ${TARGET_PREFIX}libtool libtool +} + +EXTRA_OECONF += " \ + --disable-glibtest \ + --disable-xinerama \ + --enable-modules \ + --disable-cups \ + --disable-colord \ +" + +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)}" + +PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes" +PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,,libgl" +PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland libxkbcommon virtual/mesa wayland-native" + +do_install_append() { + mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0 +} + +PACKAGES =+ "${PN}-demo" +LIBV = "3.0.0" + +FILES_${PN}-demo = "${bindir}/gtk3-demo \ + ${bindir}/gtk3-demo-application \ + ${bindir}/gtk3-icon-browser \ + ${bindir}/gtk3-widget-factory \ + ${datadir}/gtk-3.0/demo \ + ${datadir}/applications/gtk3-demo.desktop \ + ${datadir}/applications/gtk3-icon-browser.desktop \ + ${datadir}/applications/gtk3-widget-factory.desktop \ + ${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \ + ${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png" + +# The demo uses PNG files and mime type sniffing, so ensure that these +# dependencies are present. +RDEPENDS_${PN}-demo += "gdk-pixbuf-loader-png shared-mime-info" + +FILES_${PN}_append = " ${bindir}/gtk-update-icon-cache-3.0 \ + ${bindir}/gtk-query-immodules-3.0 \ + ${bindir}/gtk-launch \ + ${datadir}/themes ${sysconfdir} ${datadir}/glib-2.0/schemas/ \ + ${libdir}/gtk-3.0/${LIBV}/engines/libpixmap.so \ + ${libdir}/gtk-3.0/modules/*.so" + +FILES_${PN}-dev += " \ + ${datadir}/gtk-3.0/gtkbuilder.rng \ + ${datadir}/gtk-3.0/include \ + ${libdir}/gtk-3.0/include \ + ${libdir}/gtk-3.0/${LIBV}/loaders/*.la \ + ${libdir}/gtk-3.0/${LIBV}/immodules/*.la \ + ${libdir}/gtk-3.0/3.0.0/printbackends/*.la \ + ${libdir}/gtk-3.0/${LIBV}/engines/*.la \ + ${libdir}/gtk-3.0/modules/*.la \ + ${bindir}/gtk-builder-convert \ + ${bindir}/gtk-encode-symbolic-svg \ + ${bindir}/gtk-builder-tool \ + " + +RRECOMMENDS_${PN} = "adwaita-icon-theme-symbolic" + +PACKAGES_DYNAMIC += "^gtk3-immodule-.* ^gtk3-printbackend-.*" + +ALTERNATIVE_${PN} = "gtk-update-icon-cache" +ALTERNATIVE_TARGET[gtk-update-icon-cache] = "${bindir}/gtk-update-icon-cache-3.0" +ALTERNATIVE_PRIORITY = "30" + +python populate_packages_prepend () { + import os.path + + gtk_libdir = d.expand('${libdir}/gtk-3.0/${LIBV}') + immodules_root = os.path.join(gtk_libdir, 'immodules') + printmodules_root = os.path.join(gtk_libdir, 'printbackends'); + + immodules = do_split_packages(d, immodules_root, '^im-(.*)\.so$', 'gtk3-immodule-%s', 'GTK input module for %s') + if immodules: + d.setVar("GTKIMMODULES_PACKAGES", " ".join(immodules)) + + do_split_packages(d, printmodules_root, '^libprintbackend-(.*)\.so$', 'gtk3-printbackend-%s', 'GTK printbackend module for %s') + + if (d.getVar('DEBIAN_NAMES', True)): + d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-3.0') +} + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Do-not-try-to-initialize-GL-without-libGL.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Do-not-try-to-initialize-GL-without-libGL.patch new file mode 100644 index 000000000..c8c480c5e --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Do-not-try-to-initialize-GL-without-libGL.patch @@ -0,0 +1,60 @@ +From fc22058a10db913534f11348f86681fe9e1838e5 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Fri, 16 Oct 2015 16:35:16 +0300 +Subject: [PATCH] Do not try to initialize GL without libGL + +_gdk_x11_screen_update_visuals_for_gl() will end up calling epoxys +GLX api which will exit() if libGL.so.1 is not present. We do not +want that to happen and we don't want every app to have to set +"GDK_GL=disabled" environment variable: so use #ifdef set based on +opengl distro feature. + +Upstream is not interested in the fix as it is: Either epoxy should be +fixed (to not exit) or GTK+ possibly could do some additional probing +before calling epoxy APIs. + +Upstream-Status: Denied +Signed-off-by: Jussi Kukkonen +--- + configure.ac | 7 +++++++ + gdk/x11/gdkvisual-x11.c | 5 +++++ + 2 files changed, 12 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 729a62e..58cc1ac 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -328,6 +328,13 @@ AC_ARG_ENABLE(mir-backend, + [enable the Mir gdk backend])], + [backend_set=yes]) + ++AC_ARG_ENABLE(glx, ++ [AS_HELP_STRING([--enable-glx], ++ [When enabled Gdk will try to initialize GLX])]) ++AS_IF([test "x$enable_glx" != "xno"], [ ++ AC_DEFINE([HAVE_GLX], [], [GLX will be available at runtime]) ++]) ++ + if test -z "$backend_set"; then + if test "$platform_win32" = yes; then + enable_win32_backend=yes +diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c +index f3b062d..c8243f4 100644 +--- a/gdk/x11/gdkvisual-x11.c ++++ b/gdk/x11/gdkvisual-x11.c +@@ -345,7 +345,12 @@ _gdk_x11_screen_init_visuals (GdkScreen *screen) + /* If GL is available we want to pick better default/rgba visuals, + as we care about glx details such as alpha/depth/stencil depth, + stereo and double buffering */ ++ /* update_visuals_for_gl() will end up calling epoxy GLX api which ++ will exit if libgl is not there: so only do this if we know GL ++ is available */ ++#ifdef HAVE_GLX + _gdk_x11_screen_update_visuals_for_gl (screen); ++#endif + } + + gint +-- +2.1.4 + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch new file mode 100644 index 000000000..32d8a8479 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch @@ -0,0 +1,118 @@ +window: Check if we can use CSD before enabling them + +Upstream-Status: Backport +Signed-off-by: Jussi Kukkonen + + +From c5e5ee67490e7e7af56052d8f8beb75db002c2f1 Mon Sep 17 00:00:00 2001 +From: Emmanuele Bassi +Date: Wed, 3 Jun 2015 14:07:29 +0100 +Subject: window: Check if we can use CSD before enabling them + +The change in 03213b9509fc1df16c66194ea168aed6c15110e9 changed the rules +as to when CSD can be enabled, but it also unconditionally enables CSD +with the implicit assumption that client-side shadows were the real +issue, and that we could work around that by drawing our own borders. +This also means that setting a titlebar for a GtkWindow will enable CSD +unconditionally. + +In reality, some window managers (like Matchbox) *only* support +server-side decorations, and will ignore all hints to the contrary, to +the point of drawing decorations at random locations on top of the +window. + +Since CSD are enabled unconditionally, the GTK_CSD environment variable +is also not a suitable escape hatch. + +In the grand tradition of asking ourselves if we should do something +just because we can, we should split the environment checks from the +checks on what the user requested; by doing that, we can also check +when enabling client-side decorations, and ideally bail out if needed. + +https://bugzilla.gnome.org/show_bug.cgi?id=750343 + +diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c +index 423c6bd..9fe882f 100644 +--- a/gtk/gtkwindow.c ++++ b/gtk/gtkwindow.c +@@ -4056,6 +4056,32 @@ gtk_window_supports_client_shadow (GtkWindow *window) + return TRUE; + } + ++static gboolean ++gtk_window_can_use_csd (GtkWindow *window) ++{ ++ const gchar *csd_env; ++ ++#ifdef GDK_WINDOWING_BROADWAY ++ if (GDK_IS_BROADWAY_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) ++ return TRUE; ++#endif ++ ++#ifdef GDK_WINDOWING_WAYLAND ++ if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) ++ return TRUE; ++#endif ++ ++#ifdef GDK_WINDOWING_MIR ++ if (GDK_IS_MIR_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) ++ return TRUE; ++#endif ++ ++ csd_env = g_getenv ("GTK_CSD"); ++ ++ /* If GTK_CSD is unset we default to CSD support */ ++ return csd_env == NULL || (strcmp (csd_env, "1") == 0); ++} ++ + static void + gtk_window_enable_csd (GtkWindow *window) + { +@@ -4063,6 +4089,10 @@ gtk_window_enable_csd (GtkWindow *window) + GtkWidget *widget = GTK_WIDGET (window); + GdkVisual *visual; + ++ /* If the environment does not support CSD, then there's no point in enabling them */ ++ if (!gtk_window_can_use_csd (window)) ++ return; ++ + /* We need a visual with alpha for client shadows */ + if (priv->use_client_shadow) + { +@@ -5839,7 +5869,6 @@ static gboolean + gtk_window_should_use_csd (GtkWindow *window) + { + GtkWindowPrivate *priv = window->priv; +- const gchar *csd_env; + + if (priv->csd_requested) + return TRUE; +@@ -5850,24 +5879,7 @@ gtk_window_should_use_csd (GtkWindow *window) + if (priv->type == GTK_WINDOW_POPUP) + return FALSE; + +-#ifdef GDK_WINDOWING_BROADWAY +- if (GDK_IS_BROADWAY_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) +- return TRUE; +-#endif +- +-#ifdef GDK_WINDOWING_WAYLAND +- if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) +- return TRUE; +-#endif +- +-#ifdef GDK_WINDOWING_MIR +- if (GDK_IS_MIR_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) +- return TRUE; +-#endif +- +- csd_env = g_getenv ("GTK_CSD"); +- +- return (g_strcmp0 (csd_env, "1") == 0); ++ return gtk_window_can_use_csd (window); + } + + static void +-- +cgit v0.10.2 + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/hardcoded_libtool.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/hardcoded_libtool.patch new file mode 100644 index 000000000..3b4beeb71 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/hardcoded_libtool.patch @@ -0,0 +1,35 @@ +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Marko Lindqvist + +Index: gtk+-3.8.2/configure.ac +=================================================================== +--- gtk+-3.8.2.orig/configure.ac ++++ gtk+-3.8.2/configure.ac +@@ -531,7 +531,7 @@ AC_MSG_CHECKING([Whether to write depend + case $enable_explicit_deps in + auto) + export SED +- deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` ++ deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` + if test "x$deplibs_check_method" != xpass_all || test "x$enable_static" = xyes ; then + enable_explicit_deps=yes + else +@@ -793,7 +793,7 @@ else + dnl Now we check to see if our libtool supports shared lib deps + dnl (in a rather ugly way even) + if $dynworks; then +- module_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config" ++ module_libtool_config="${CONFIG_SHELL-/bin/sh} ./$host_alias-libtool --config" + module_deplibs_check=`$module_libtool_config | \ + grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \ + sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'` +@@ -1528,7 +1528,7 @@ fi + # We are using gmodule-no-export now, but I'm leaving the stripping + # code in place for now, since pango and atk still require gmodule. + export SED +-export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` ++export_dynamic=`(./$host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` + if test -n "$export_dynamic"; then + GDK_DEP_LIBS=`echo $GDK_DEP_LIBS | sed -e "s/$export_dynamic//"` + GTK_DEP_LIBS=`echo $GTK_DEP_LIBS | sed -e "s/$export_dynamic//"` diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.18.8.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.18.8.bb new file mode 100644 index 000000000..b76c0cc1c --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.18.8.bb @@ -0,0 +1,19 @@ +require gtk+3.inc + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ + file://hardcoded_libtool.patch \ + file://Dont-force-csd.patch \ + file://Do-not-try-to-initialize-GL-without-libGL.patch \ + " + +SRC_URI[md5sum] = "9671acb41dc13561d19233f1a75cf184" +SRC_URI[sha256sum] = "1c53ef1bb55364698f7183ecd185b547f92f4a3a7abfafd531400232e2e052f8" + +S = "${WORKDIR}/gtk+-${PV}" + +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ + file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ + file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+_2.24.29.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+_2.24.29.bb new file mode 100644 index 000000000..cf55d2070 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk+_2.24.29.bb @@ -0,0 +1,34 @@ +require gtk+.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://gtk/gtk.h;endline=27;md5=c59e0b4490dd135a5726ebf851f9b17f \ + file://gdk/gdk.h;endline=27;md5=07db285ec208fb3e0bf7d861b0614202 \ + file://tests/testgtk.c;endline=27;md5=262db5db5f776f9863e56df31423e24c" +SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-${PV}.tar.xz \ + file://xsettings.patch \ + file://hardcoded_libtool.patch \ + file://toggle-font.diff;striplevel=0 \ + file://doc-fixes.patch \ + file://strict-prototypes.patch \ + " + +SRC_URI[md5sum] = "1b7a3689f65617387b5b54520f4439e8" +SRC_URI[sha256sum] = "0741c59600d3d810a223866453dc2bbb18ce4723828681ba24aa6519c37631b8" + +EXTRA_OECONF = "--enable-xkb --disable-glibtest --disable-cups --disable-xinerama" + +LIBV = "2.10.0" + +PACKAGES_DYNAMIC += "^gtk-immodule-.* ^gtk-printbackend-.*" + +python populate_packages_prepend () { + gtk_libdir = d.expand('${libdir}/gtk-2.0/${LIBV}') + immodules_root = os.path.join(gtk_libdir, 'immodules') + printmodules_root = os.path.join(gtk_libdir, 'printbackends'); + + d.setVar('GTKIMMODULES_PACKAGES', ' '.join(do_split_packages(d, immodules_root, '^im-(.*)\.so$', 'gtk-immodule-%s', 'GTK input module for %s'))) + do_split_packages(d, printmodules_root, '^libprintbackend-(.*)\.so$', 'gtk-printbackend-%s', 'GTK printbackend module for %s') + + if (d.getVar('DEBIAN_NAMES', True)): + d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-2.0') +} diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.18.8.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.18.8.bb new file mode 100644 index 000000000..793f14a54 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.18.8.bb @@ -0,0 +1,60 @@ +SUMMARY = "Native icon utils for GTK+" +DESCRIPTION = "gtk-update-icon-cache and gtk-encode-symbolic-svg built from GTK+ natively, for build time and on-host postinst script execution." +SECTION = "libs" + +DEPENDS = "glib-2.0-native gdk-pixbuf-native librsvg-native" + +LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" + +SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ + file://Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch" +SRC_URI[md5sum] = "9671acb41dc13561d19233f1a75cf184" +SRC_URI[sha256sum] = "1c53ef1bb55364698f7183ecd185b547f92f4a3a7abfafd531400232e2e052f8" + +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ + file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ + file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ + file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1" + +S = "${WORKDIR}/gtk+-${PV}" + +inherit pkgconfig native upstream-version-is-even + +PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native" + +do_configure() { + # Quite ugly but defines enough to compile the tools. + if ! test -f gtk/config.h; then + echo "#define GETTEXT_PACKAGE \"gtk30\"" >> gtk/config.h + echo "#define HAVE_UNISTD_H 1" >> gtk/config.h + echo "#define HAVE_FTW_H 1" >> gtk/config.h + fi + if ! test -f gdk/config.h; then + touch gdk/config.h + fi +} + +do_compile() { + ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \ + ${S}/gtk/updateiconcache.c \ + $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gdk-pixbuf-2.0) \ + -o gtk-update-icon-cache + + ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \ + ${S}/gtk/encodesymbolic.c \ + $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gio-2.0 gdk-pixbuf-2.0) \ + -o gtk-encode-symbolic-svg +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${B}/gtk-update-icon-cache ${D}${bindir} + install -m 0755 ${B}/gtk-encode-symbolic-svg ${D}${bindir} + + create_wrapper ${D}/${bindir}/gtk-update-icon-cache \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache + create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \ + GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache +} diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch new file mode 100644 index 000000000..237f80375 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch @@ -0,0 +1,102 @@ +From 4d09ff324419fe4e671233044e424378da53969b Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Tue, 9 Jun 2015 14:20:30 +0300 +Subject: [PATCH] Remove Gdk-dependency from gtk-encode-symbolic-svg + +Building gtk-encode-symbolic-svg without building Gdk is useful +as only the icon tools are needed on the native build: this makes +native build much faster and requires much less dependencies. + +Upstream-Status: Pending + +Signed-off-by: Jussi Kukkonen +--- + gtk/encodesymbolic.c | 36 ++++++++++-------------------------- + 1 file changed, 10 insertions(+), 26 deletions(-) + +diff --git a/gtk/encodesymbolic.c b/gtk/encodesymbolic.c +index 9f7d015..1f07563 100644 +--- a/gtk/encodesymbolic.c ++++ b/gtk/encodesymbolic.c +@@ -19,7 +19,6 @@ + + #include + #include +-#include + #include + + #ifdef HAVE_UNISTD_H +@@ -43,30 +42,18 @@ static GdkPixbuf * + load_symbolic_svg (char *file_data, gsize file_len, + int width, + int height, +- const GdkRGBA *fg, +- const GdkRGBA *success_color, +- const GdkRGBA *warning_color, +- const GdkRGBA *error_color, ++ const char *css_fg, ++ const char *css_success, ++ const char *css_warning, ++ const char *css_error, + GError **error) + { + GInputStream *stream; + GdkPixbuf *pixbuf; +- gchar *css_fg; +- gchar *css_success; +- gchar *css_warning; +- gchar *css_error; + gchar *data; + gchar *svg_width, *svg_height; + gchar *escaped_file_data; + +- css_fg = gdk_rgba_to_string (fg); +- +- css_success = css_warning = css_error = NULL; +- +- css_warning = gdk_rgba_to_string (warning_color); +- css_error = gdk_rgba_to_string (error_color); +- css_success = gdk_rgba_to_string (success_color); +- + /* Fetch size from the original icon */ + stream = g_memory_input_stream_new_from_data (file_data, file_len, NULL); + pixbuf = gdk_pixbuf_new_from_stream (stream, NULL, error); +@@ -105,10 +92,6 @@ load_symbolic_svg (char *file_data, gsize file_len, + "", + NULL); + g_free (escaped_file_data); +- g_free (css_fg); +- g_free (css_warning); +- g_free (css_error); +- g_free (css_success); + g_free (svg_width); + g_free (svg_height); + +@@ -167,7 +150,8 @@ make_symbolic_pixbuf (char *file, + GError **error) + + { +- GdkRGBA r = { 1,0,0,1}, g = {0,1,0,1}; ++ const char r[] = "rgba(255,0,0,1)"; ++ const char g[] = "rgba(0,255,0,1)"; + GdkPixbuf *loaded; + GdkPixbuf *pixbuf; + int plane; +@@ -196,10 +180,10 @@ make_symbolic_pixbuf (char *file, + * the "rest", as all color fractions should add up to 1. + */ + loaded = load_symbolic_svg (file_data, file_len, width, height, +- &g, +- plane == 0 ? &r : &g, +- plane == 1 ? &r : &g, +- plane == 2 ? &r : &g, ++ g, ++ plane == 0 ? r : g, ++ plane == 1 ? r : g, ++ plane == 2 ? r : g, + error); + if (loaded == NULL) + return NULL; +-- +2.1.4 + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/files/0001-Revert-Import-introspection-stub-machinery-too.patch new file mode 100644 index 000000000..80b0521d4 --- /dev/null +++ b/import-layers/yocto-poky/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 +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 +--- + 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/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb new file mode 100644 index 000000000..84e49c13a --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk-doc-stub/gtk-doc-stub_git.bb @@ -0,0 +1,33 @@ +SUMMARY = "Stub implementation of gtk-doc" +DESCRIPTION = "Stub implementation of gtk-doc, as we don't want to build the API documentation" +SECTION = "x11/base" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +PROVIDES = "gtk-doc" + +SRCREV = "1dea266593edb766d6d898c79451ef193eb17cfa" +PV = "1.1+git${SRCPV}" + +SRC_URI = "git://git.gnome.org/${BPN} \ + file://0001-Revert-Import-introspection-stub-machinery-too.patch \ + " + +S = "${WORKDIR}/git" + +do_configure() { + ./configure --prefix=${prefix} \ + --sysconfdir=${sysconfdir} \ + --bindir=${bindir} \ + --libdir=${libdir} \ + --datadir=${datadir} \ + --datarootdir=${datadir} +} + +do_install() { + oe_runmake install DESTDIR="${D}" +} + +FILES_${PN} += "${datadir}" + +BBCLASSEXTEND = "native" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/glib-2.32.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/glib-2.32.patch new file mode 100644 index 000000000..f0b878d37 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/glib-2.32.patch @@ -0,0 +1,23 @@ +From 8d49a386f467cbf8e0842d2218126f643e50f834 Mon Sep 17 00:00:00 2001 +From: Dominique Leuenberger +Date: Sun, 27 Nov 2011 14:24:57 +0000 +Subject: Fix build with glib 2.31: Only glib.h can be #include'd. Fixes bug #664914 + +Upstream-Status: Backport + +--- +diff --git a/engines/clearlooks/src/animation.c b/engines/clearlooks/src/animation.c +index 1f7a41f..56a9286 100644 +--- a/engines/clearlooks/src/animation.c ++++ b/engines/clearlooks/src/animation.c +@@ -28,7 +28,7 @@ + #include "animation.h" + + #ifdef HAVE_WORKING_ANIMATION +-#include ++#include + + struct _AnimationInfo { + GTimer *timer; +-- +cgit v0.9.0.2 diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/substitute-tests.patch b/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/substitute-tests.patch new file mode 100644 index 000000000..5c557ba68 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines-2.20.2/substitute-tests.patch @@ -0,0 +1,37 @@ +Upstream-Status: Pending + +Signed-off-by: Marko Lindqvist +diff -Nurd gtk-engines-2.20.2/configure.ac gtk-engines-2.20.2/configure.ac +--- gtk-engines-2.20.2/configure.ac 2010-10-01 15:42:37.000000000 +0300 ++++ gtk-engines-2.20.2/configure.ac 2013-08-20 02:50:27.930510565 +0300 +@@ -166,6 +166,9 @@ + + AC_SUBST(DEVELOPMENT_CFLAGS) + ++AC_SUBST([exported_symbols_tests], [[$(EXPORTED_SYMBOLS_TESTS)]]) ++AC_SUBST([torture_test_tests], [[$(TORTURE_TEST_TESTS)]]) ++ + AM_CONFIG_HEADER([engines/support/config.h]) + + AC_CONFIG_FILES([ +diff -Nurd gtk-engines-2.20.2/test/Makefile.am gtk-engines-2.20.2/test/Makefile.am +--- gtk-engines-2.20.2/test/Makefile.am 2010-09-19 18:18:21.000000000 +0300 ++++ gtk-engines-2.20.2/test/Makefile.am 2013-08-20 02:50:36.842510865 +0300 +@@ -66,7 +66,7 @@ + # Prefix with exported_ + EXPORTED_SYMBOLS_TESTS = $(patsubst %,exported_%,$(BUILD_ENGINES)) + +-TESTS += $(EXPORTED_SYMBOLS_TESTS) ++TESTS += @exported_symbols_tests@ + + + ############################################################# +@@ -88,7 +88,7 @@ + TORTURE_TEST_TESTS = torture_buildin $(patsubst %,torture_%,$(TORTURE_TEST_ENGINES)) + + # Add TORTURE_TEST_ENGINES to list of tests +-TESTS += $(TORTURE_TEST_TESTS) ++TESTS += @torture_test_tests@ + + # Possible other tests: + # - An extensive theme switch tests that loads/unloads the engine diff --git a/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb b/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb new file mode 100644 index 000000000..c0ac911a6 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb @@ -0,0 +1,55 @@ +SUMMARY = "GTK+ theme engines" +HOMEPAGE = "http://www.gnome.org/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +SECTION = "x11/base" +DEPENDS = "intltool-native gtk+ gettext-native" + +PR = "r3" + +PACKAGES += "${PN}-schemas" +PACKAGES_DYNAMIC += "^gtk-engine-.* ^gtk-theme-.*" + +RDEPENDS_gtk-theme-redmond = "gtk-engine-redmond95" +RDEPENDS_gtk-theme-metal = "gtk-engine-metal" +RDEPENDS_gtk-theme-mist = "gtk-engine-mist" +RDEPENDS_gtk-theme-crux = "gtk-engine-crux-engine" +RDEPENDS_gtk-theme-lighthouseblue = "gtk-engine-lighthouseblue" +RDEPENDS_gtk-theme-thinice = "gtk-engine-thinice" +RDEPENDS_gtk-theme-industrial = "gtk-engine-industrial" +RDEPENDS_gtk-theme-clearlooks = "gtk-engine-clearlooks" + +FILES_${PN} = "" +FILES_${PN}-dev += "${libdir}/gtk-2.0/*/engines/*.la" +FILES_${PN}-schemas = "${datadir}/gtk-engines/*.xml" + +CFLAGS_prepend = "-DHAVE_ANIMATION " + +RDEPENDS_${PN}-dev = "" + +inherit gnomebase +GNOME_COMPRESS_TYPE="bz2" + +inherit distro_features_check +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" + +# This picks stable releases in the 2.x series (but not 2.90 onwards, +# which were GNOME 3 betas). +UPSTREAM_CHECK_REGEX = "(?P2\.([0-8]*[02468])+(\.\d+)+)" + +python populate_packages_prepend() { + engines_root = os.path.join(d.getVar('libdir', True), "gtk-2.0/2.10.0/engines") + themes_root = os.path.join(d.getVar('datadir', True), "themes") + + do_split_packages(d, engines_root, '^lib(.*)\.so$', 'gtk-engine-%s', 'GTK %s theme engine', extra_depends='') + do_split_packages(d, themes_root, '(.*)', 'gtk-theme-%s', 'GTK theme %s', allow_dirs=True, extra_depends='') + # TODO: mark theme packages as arch all +} + +SRC_URI += "file://glib-2.32.patch \ + file://substitute-tests.patch" +SRC_URI[archive.md5sum] = "5deb287bc6075dc21812130604c7dc4f" +SRC_URI[archive.sha256sum] = "15b680abca6c773ecb85253521fa100dd3b8549befeecc7595b10209d62d66b5" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.15.bb b/import-layers/yocto-poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.15.bb new file mode 100644 index 000000000..a704632ca --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.15.bb @@ -0,0 +1,14 @@ +SUMMARY = "Default icon theme that all icon themes automatically inherit from" +HOMEPAGE = "http://icon-theme.freedesktop.org/wiki/HicolorTheme" +BUGTRACKER = "https://bugs.freedesktop.org/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=f08a446809913fc9b3c718f0eaea0426" + +SRC_URI = "http://icon-theme.freedesktop.org/releases/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "6aa2b3993a883d85017c7cc0cfc0fb73" +SRC_URI[sha256sum] = "9cc45ac3318c31212ea2d8cb99e64020732393ee7630fa6c1810af5f987033cc" + +inherit allarch autotools + +FILES_${PN} += "${datadir}/icons" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/json-glib/json-glib_1.0.4.bb b/import-layers/yocto-poky/meta/recipes-gnome/json-glib/json-glib_1.0.4.bb new file mode 100644 index 000000000..3ce38cec5 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/json-glib/json-glib_1.0.4.bb @@ -0,0 +1,18 @@ +SUMMARY = "JSON-GLib implements a full JSON parser using GLib and GObject" +DESCRIPTION = "Use JSON-GLib it is possible to parse and generate valid JSON\ + data structures, using a DOM-like API. JSON-GLib also offers GObject \ +integration, providing the ability to serialize and deserialize GObject \ +instances to and from JSON data types." +HOMEPAGE = "http://live.gnome.org/JsonGlib" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +DEPENDS = "glib-2.0" + +SRC_URI[archive.md5sum] = "3131b0417ecde3da1ae72acceaa375cf" +SRC_URI[archive.sha256sum] = "80f3593cb6bd13f1465828e46a9f740e2e9bd3cd2257889442b3e62bd6de05cd" + +inherit gnomebase gettext lib_package gobject-introspection + +BBCLASSEXTEND = "native" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch b/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch new file mode 100644 index 000000000..c5d586465 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/glade-cruft.patch @@ -0,0 +1,102 @@ +Upstream-Status: Pending + +diff -ur libglade-2.4.0~/configure.in libglade-2.4.0/configure.in +--- libglade-2.4.0~/configure.in 2004-05-17 12:38:31.000000000 +0100 ++++ libglade-2.4.0/configure.in 2004-07-28 16:53:09.000000000 +0100 +@@ -147,6 +147,18 @@ + AM_CONDITIONAL(HAVE_PYTHON, $have_python) + AC_SUBST(PYTHON) + ++AC_MSG_CHECKING([for cruft in libgtk]) ++AC_TRY_LINK([ ++#include ++#include ++], [ gtk_tree_get_type (); return 0; ], ++ [ AC_MSG_RESULT(yes) ++ have_cruft=yes ], ++ [ AC_MSG_RESULT(no) ++ AC_DEFINE(DISABLE_CRUFT,,[leave out support for old, broken widgets]) ++ have_cruft=no ]) ++AC_SUBST(DISABLE_CRUFT) ++ + dnl add debugging options ... + changequote(,)dnl + if test "x$GCC" = xyes; then +Only in libglade-2.4.0: configure.in.orig +diff -ur libglade-2.4.0~/glade/glade-gtk.c libglade-2.4.0/glade/glade-gtk.c +--- libglade-2.4.0~/glade/glade-gtk.c 2004-03-13 13:47:35.000000000 +0000 ++++ libglade-2.4.0/glade/glade-gtk.c 2004-07-28 16:53:52.000000000 +0100 +@@ -213,6 +213,8 @@ + gtk_clist_column_titles_hide (GTK_CLIST (w)); + } + ++#ifndef DISABLE_CRUFT ++ + static void + tree_set_selection_mode (GladeXML *xml, GtkWidget *w, + const char *name, const char *value) +@@ -238,6 +240,8 @@ + gtk_tree_set_view_lines (GTK_TREE (w), BOOL (value)); + } + ++#endif ++ + static void + list_set_selection_mode (GladeXML *xml, GtkWidget *w, + const char *name, const char *value) +@@ -254,6 +258,7 @@ + gtk_check_menu_item_set_show_toggle (GTK_CHECK_MENU_ITEM (w), BOOL (value)); + } + ++#ifndef DISABLE_CRUFT + static void + text_set_text (GladeXML *xml, GtkWidget *w, + const char *name, const char *value) +@@ -262,6 +267,7 @@ + + gtk_editable_insert_text (GTK_EDITABLE (w), value, -1, &pos); + } ++#endif + + static void + radio_menu_item_set_group (GladeXML *xml, GtkWidget *w, +@@ -1125,13 +1131,17 @@ + glade_register_custom_prop (GTK_TYPE_CLIST, "selection_mode", clist_set_selection_mode); + glade_register_custom_prop (GTK_TYPE_CLIST, "shadow_type", clist_set_shadow_type); + glade_register_custom_prop (GTK_TYPE_CLIST, "show_titles", clist_set_show_titles); ++#ifndef DISABLE_CRUFT + glade_register_custom_prop (GTK_TYPE_TREE, "selection_mode", tree_set_selection_mode); + glade_register_custom_prop (GTK_TYPE_TREE, "view_mode", tree_set_view_mode); + glade_register_custom_prop (GTK_TYPE_TREE, "view_line", tree_set_view_line); ++#endif + glade_register_custom_prop (GTK_TYPE_LIST, "selection_mode", list_set_selection_mode); + glade_register_custom_prop (GTK_TYPE_CHECK_MENU_ITEM, "always_show_toggle", + check_menu_item_set_always_show_toggle); ++#ifndef DISABLE_CRUFT + glade_register_custom_prop (GTK_TYPE_TEXT, "text", text_set_text); ++#endif + glade_register_custom_prop (GTK_TYPE_RADIO_MENU_ITEM, "group", + radio_menu_item_set_group); + glade_register_custom_prop (GTK_TYPE_TOOLBAR, "tooltips", toolbar_set_tooltips); +@@ -1288,8 +1298,10 @@ + glade_standard_build_children, NULL); + glade_register_widget (GTK_TYPE_TEAROFF_MENU_ITEM, glade_standard_build_widget, + NULL, NULL); ++#ifndef DISABLE_CRUFT + glade_register_widget (GTK_TYPE_TEXT, glade_standard_build_widget, + NULL, NULL); ++#endif + glade_register_widget (GTK_TYPE_TEXT_VIEW, glade_standard_build_widget, + NULL, NULL); + glade_register_widget (GTK_TYPE_TIPS_QUERY, glade_standard_build_widget, +@@ -1304,8 +1316,10 @@ + glade_standard_build_children, NULL); + glade_register_widget (GTK_TYPE_TOOL_BUTTON, glade_standard_build_widget, + NULL, NULL); ++#ifndef DISABLE_CRUFT + glade_register_widget (GTK_TYPE_TREE, glade_standard_build_widget, + NULL, NULL); ++#endif + glade_register_widget (GTK_TYPE_TREE_VIEW, glade_standard_build_widget, + NULL, NULL); + glade_register_widget (GTK_TYPE_VBUTTON_BOX, glade_standard_build_widget, diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch b/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch new file mode 100644 index 000000000..dc4c092fd --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/no-xml2.patch @@ -0,0 +1,501 @@ +Upstream-Status: Inappropriate [configuration] + +diff -urN libglade-2.4.2.orig/configure.in libglade-2.4.2/configure.in +--- libglade-2.4.2.orig/configure.in 2005-02-11 12:42:58.000000000 +0100 ++++ libglade-2.4.2/configure.in 2005-03-22 01:22:00.000000000 +0100 +@@ -52,11 +52,33 @@ + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + + PKG_CHECK_MODULES(LIBGLADE, [dnl +- libxml-2.0 >= required_libxml_version dnl + atk >= required_atk_version dnl + gtk+-2.0 >= required_gtk_version dnl + glib-2.0 >= required_glib_version]) + ++disable_xml2=no ++AC_ARG_WITH([libxml2], ++ AC_HELP_STRING([--without-libxml2], [Don't use libxml2, use Glib's GMarkupParser instead]), ++ [disable_xml2=yes], ++ [disable_xml2=no]) ++ ++AC_MSG_CHECKING([if we are using libxml2]) ++if test "x$disable_xml2" == "xno"; then ++ AC_MSG_RESULT(yes) ++ PKG_CHECK_MODULES(XML2, libxml-2.0 >= 2.4.10) ++ PKGCFG_REQUIRE_LIBXML2="libxml-2.0" ++ LIBGLADE_CFLAGS="$LIBGLADE_CFLAGS $XML2_CFLAGS" ++ LIBGLADE_LIBS="$LIBGLADE_LIBS $XML2_LIBS" ++else ++ LIBGLADE_CFLAGS="$LIBGLADE_CFLAGS -DUSE_GMARKUP_PARSER" ++ PKGCFG_REQUIRE_LIBXML2="" ++ AC_MSG_RESULT(no) ++fi ++ ++AC_SUBST(XML2_LIBS) ++AC_SUBST(XML2_CFLAGS) ++AC_SUBST(PKGCFG_REQUIRE_LIBXML2) ++ + AC_MSG_CHECKING([for native Win32]) + case "$host" in + *-*-mingw*) +@@ -116,6 +138,21 @@ + fi + fi + ++if test "x$disable_xml2" == "xyes"; then ++ echo "*****************************************************" ++ echo " You chose to disable libxml2 and use Glib's" ++ echo " GMarkupParser instead." ++ echo ++ echo " Please bear in mind that using libglade with" ++ echo " GMarkupParser is an experimental feature only." ++ echo ++ echo " Please post problems or success stories to" ++ echo " the glade-devel mailing list. Thank you." ++ echo "*****************************************************" ++fi ++ ++ ++ + GTK_DOC_CHECK(1.0) + + dnl gettext stuff ... there is no message catalog for libglade -- libglade +diff -urN libglade-2.4.2.orig/glade/glade-parser.c libglade-2.4.2/glade/glade-parser.c +--- libglade-2.4.2.orig/glade/glade-parser.c 2004-11-11 11:56:13.000000000 +0100 ++++ libglade-2.4.2/glade/glade-parser.c 2005-03-22 01:20:00.000000000 +0100 +@@ -34,7 +34,15 @@ + # define dgettext(Domain, String) (String) + #endif + +-#include ++#ifdef USE_GMARKUP_PARSER ++# include ++#else ++# include ++#endif ++ ++#ifdef USE_GMARKUP_PARSER ++# define xmlChar gchar ++#endif + + #include "glade-parser.h" + #include "glade-private.h" +@@ -508,7 +516,9 @@ + case PARSER_START: + if (!strcmp(name, "glade-interface")) { + state->state = PARSER_GLADE_INTERFACE; +-#if 0 ++ ++#ifndef USE_GMARKUP_PARSER ++ #if 0 + /* check for correct XML namespace */ + for (i = 0; attrs && attrs[i] != NULL; i += 2) { + if (!strcmp(attrs[i], "xmlns") && +@@ -518,7 +528,9 @@ + g_warning("unknown attribute `%s' for ", + attrs[i]); + } ++ #endif + #endif ++ + } else { + g_warning("Expected . Got <%s>.", name); + state->prev_state = state->state; +@@ -1063,12 +1075,18 @@ + } + } + ++#ifndef USE_GMARKUP_PARSER ++ + static xmlEntityPtr + glade_parser_get_entity(GladeParseState *state, const xmlChar *name) + { + return xmlGetPredefinedEntity(name); + } + ++#endif /* !defined(USE_GMARKUP_PARSER) */ ++ ++#ifndef USE_GMARKUP_PARSER ++ + static void + glade_parser_warning(GladeParseState *state, const char *msg, ...) + { +@@ -1079,6 +1097,10 @@ + va_end(args); + } + ++#endif /* !defined(USE_GMARKUP_PARSER) */ ++ ++#ifndef USE_GMARKUP_PARSER ++ + static void + glade_parser_error(GladeParseState *state, const char *msg, ...) + { +@@ -1089,6 +1111,10 @@ + va_end(args); + } + ++#endif /* !defined(USE_GMARKUP_PARSER) */ ++ ++#ifndef USE_GMARKUP_PARSER ++ + static void + glade_parser_fatal_error(GladeParseState *state, const char *msg, ...) + { +@@ -1099,6 +1125,10 @@ + va_end(args); + } + ++#endif /* !defined(USE_GMARKUP_PARSER) */ ++ ++#ifndef USE_GMARKUP_PARSER ++ + static xmlSAXHandler glade_parser = { + (internalSubsetSAXFunc)NULL, /* internalSubset */ + (isStandaloneSAXFunc)NULL, /* isStandalone */ +@@ -1126,6 +1156,82 @@ + (fatalErrorSAXFunc)glade_parser_fatal_error, /* fatalError */ + }; + ++#else /* USE_GMARKUP_PARSER */ ++ ++static void ++glade_parser_start_element_wrapper(GMarkupParseContext *context, ++ const gchar *name, ++ const gchar **attr_names, ++ const gchar **attr_values, ++ gpointer state, ++ GError **error) ++{ ++ guint i = 0; ++ ++ /* Pack attribute names/values from two separate ++ * arrays (GMarkupParser style) into one single ++ * array (libxml SAXParser style). This is not ++ * very efficient, but we do it to make the ++ * GMarkupParser code as little invasive as ++ * possible. */ ++ ++ while (attr_names[i] != NULL) { ++ ++i; ++ } ++ ++ if (1) ++ { ++ const gchar *attr[(i*2)+1]; ++ guint j, k; ++ ++ for (j=0, k=0; k < i; j += 2) ++ { ++ attr[j] = attr_names[k]; ++ attr[j+1] = attr_values[k]; ++ ++k; ++ } ++ attr[i*2] = NULL; ++ ++ glade_parser_start_element((GladeParseState*)state, name, attr); ++ } ++} ++ ++static void ++glade_parser_end_element_wrapper(GMarkupParseContext *context, ++ const gchar *name, ++ gpointer state, ++ GError **err) ++{ ++ glade_parser_end_element((GladeParseState*)state, name); ++} ++ ++static void ++glade_parser_characters_wrapper(GMarkupParseContext *context, ++ const gchar *chars, ++ gsize len, ++ gpointer state, ++ GError **err) ++{ ++ glade_parser_characters((GladeParseState*)state, chars, (int) len); ++} ++ ++static void ++glade_parser_error(GMarkupParseContext *context, GError *err, gpointer data) ++{ ++ g_log("Glade-Parser", G_LOG_LEVEL_CRITICAL, "%s", err->message); ++} ++ ++static const GMarkupParser glade_parser = { ++ glade_parser_start_element_wrapper, /* element open */ ++ glade_parser_end_element_wrapper, /* element close */ ++ glade_parser_characters_wrapper, /* text content */ ++ NULL, /* passthrough */ ++ glade_parser_error, /* parse error */ ++}; ++ ++#endif /* USE_GMARKUP_PARSER */ ++ ++ + static void + widget_info_free(GladeWidgetInfo *info) + { +@@ -1191,6 +1297,9 @@ + * + * Returns: the GladeInterface structure for the XML file. + */ ++ ++#ifndef USE_GMARKUP_PARSER ++ + GladeInterface * + glade_parser_parse_file(const gchar *file, const gchar *domain) + { +@@ -1222,6 +1331,31 @@ + return state.interface; + } + ++#else /* defined(USE_GMARKUP_PARSER) */ ++ ++GladeInterface * ++glade_parser_parse_file(const gchar *file, const gchar *domain) ++{ ++ GladeInterface *interface; ++ GError *err = NULL; ++ gchar *content = NULL; ++ gsize clen; ++ ++ if (!g_file_get_contents(file, &content, &clen, &err)) { ++ g_warning("could not load glade file: %s", err->message); ++ g_error_free(err); ++ return NULL; ++ } ++ ++ interface = glade_parser_parse_buffer(content, (gint) clen, domain); ++ ++ g_free(content); ++ ++ return interface; ++} ++ ++#endif /* USE_GMARKUP_PARSER */ ++ + /** + * glade_parser_parse_buffer + * @buffer: a buffer in memory containing XML data. +@@ -1237,6 +1371,9 @@ + * + * Returns: the GladeInterface structure for the XML buffer. + */ ++ ++#ifndef USE_GMARKUP_PARSER ++ + GladeInterface * + glade_parser_parse_buffer(const gchar *buffer, gint len, const gchar *domain) + { +@@ -1263,6 +1400,161 @@ + return state.interface; + } + ++#else /* defined(USE_GMARKUP_PARSER) */ ++ ++ ++static GladeInterface * ++glade_parser_parse_buffer_internal(const gchar *buffer, gint len, const gchar *domain) ++{ ++ GMarkupParseContext *context; ++ GladeParseState state = { 0 }; ++ GError *err = NULL; ++ ++ state.interface = NULL; ++ if (domain) ++ state.domain = domain; ++ else ++ state.domain = textdomain(NULL); ++ ++ /* FIXME: This strstr() is not safe, as it ignores the len ++ * argument and assumes the buffer is NUL-terminated */ ++ if (strstr(buffer, "message); ++ g_error_free(err); ++ if (state.interface) ++ glade_interface_destroy (state.interface); ++ return NULL; ++ } ++ ++ glade_parser_end_document(&state); ++ ++ if (state.state != PARSER_FINISH) { ++ g_warning("did not finish in PARSER_FINISH state!"); ++ ++ if (state.interface) ++ glade_interface_destroy(state.interface); ++ ++ return NULL; ++ } ++ ++ return state.interface; ++} ++ ++struct _gzip_rfc1952_hdr ++{ ++ guint8 id1, id2, cm, flags; ++ guint32 mtime; ++ guint8 xflags; ++ guint8 os; ++}; ++ ++static GladeInterface * ++glade_parser_parse_gzipped_buffer(const gchar *buffer, gint len, const gchar *domain) ++{ ++ struct _gzip_rfc1952_hdr *hdr = (struct _gzip_rfc1952_hdr*)buffer; ++ struct z_stream_s zstream; ++ GladeInterface *interface; ++ const guint8 *cbuf; /* start of compressed data */ ++ guint8 *decompress_buf; ++ gulong decompress_len = 0; ++ gint ret; ++ ++ g_assert(hdr != NULL && hdr->id1 == 0x1f && hdr->id2 == 0x8b); ++ ++ if (hdr->cm != Z_DEFLATED) { ++ g_warning("Unknown decompression method %u", (guint) hdr->cm); ++ return NULL; ++ } ++ ++ /* Uncompressed size (modulo 2^32) is last ++ * 4 bytes of gzipped file, and little endian. ++ * See RFC 1952 */ ++ decompress_len = GUINT32_FROM_LE(*((guint32*)(((guint8*)buffer) + len - 4))); ++ ++ /* paranoid mode: glade files > 5MB are unlikely */ ++ g_return_val_if_fail(decompress_len < 5*1024*1024, NULL); ++ ++ decompress_buf = g_malloc0(decompress_len + 1); /* +1 for NUL-terminator */ ++ ++ /* find start of compressed data, skipping header stuff */ ++ cbuf = (guint8*)buffer + 10; ++ if (hdr->flags & 0x04) { ++ guint16 xlen = GUINT16_FROM_LE(*((guint16*)cbuf)); ++ cbuf += xlen + 2; ++ } ++ if (hdr->flags & 0x08) { ++ guint16 onamelen = strlen(cbuf); ++ cbuf += onamelen + 1; ++ } ++ if (hdr->flags & 0x10) { ++ guint16 commentlen = strlen(cbuf); ++ cbuf += commentlen + 1; ++ } ++ if (hdr->flags & 0x02) ++ { ++ cbuf += 2; /* skip header CRC16 */ ++ } ++ ++ zstream.next_in = (void*)cbuf; ++ zstream.avail_in = (uLongf) len - ((void*)cbuf-(void*)buffer) - 4 - 4 +1; ++ zstream.next_out = decompress_buf; ++ zstream.avail_out= decompress_len; ++ zstream.zalloc = Z_NULL; ++ zstream.zfree = Z_NULL; ++ zstream.opaque = Z_NULL; ++ ++ ret = inflateInit2(&zstream, -MAX_WBITS); ++ ++ if (ret != Z_OK) { ++ g_warning("inflateInit2() failed. zlib error code: %d", ret); ++ g_free(decompress_buf); ++ return NULL; ++ } ++ ++ ret = inflate(&zstream, Z_FINISH); ++ ++ if (ret != Z_STREAM_END) { ++ g_warning("zlib decompression failed. zlib error code: %d", ret); ++ g_free(decompress_buf); ++ return NULL; ++ } ++ ++ interface = glade_parser_parse_buffer_internal(decompress_buf, decompress_len, domain); ++ ++ g_free(decompress_buf); ++ ++ return interface; ++} ++ ++GladeInterface * ++glade_parser_parse_buffer(const gchar *buffer, gint len, const gchar *domain) ++{ ++ g_return_val_if_fail(buffer != NULL, NULL); ++ g_return_val_if_fail(len > 0, NULL); ++ ++ /* Check if buffer is gzipped */ ++ if (buffer[0] == 0x1f && buffer[1] == (gchar)0x8b) { ++ return glade_parser_parse_gzipped_buffer(buffer, len, domain); ++ } ++ ++ /* Buffer is cleartext. */ ++ return glade_parser_parse_buffer_internal(buffer, len, domain); ++} ++ ++#endif /* USE_GMARKUP_PARSER */ ++ ++ ++#ifndef USE_GMARKUP_PARSER ++ + static void + dump_widget(xmlNode *parent, GladeWidgetInfo *info, gint indent) + { +@@ -1382,6 +1674,8 @@ + xmlNodeAddContent(widget, " "); + } + ++#endif /* !defined(USE_GMARKUP_PARSER) */ ++ + /** + * glade_interface_dump + * @interface: the GladeInterface +@@ -1390,6 +1684,9 @@ + * This function dumps the contents of a GladeInterface into a file as + * XML. It is intended mainly as a debugging tool. + */ ++ ++#ifndef USE_GMARKUP_PARSER ++ + void + glade_interface_dump(GladeInterface *interface, const gchar *filename) + { +@@ -1428,6 +1725,17 @@ + xmlFreeDoc(doc); + } + ++#else /* defined(USE_GMARKUP_PARSER) */ ++ ++void ++glade_interface_dump(GladeInterface *interface, const gchar *filename) ++{ ++ g_warning("glade_interface_dump() is only available with libxml2."); ++} ++ ++#endif /* USE_GMARKUP_PARSER */ ++ ++ + #if 0 + int + main(int argc, char **argv) { +diff -urN libglade-2.4.2.orig/libglade-2.0.pc.in libglade-2.4.2/libglade-2.0.pc.in +--- libglade-2.4.2.orig/libglade-2.0.pc.in 2001-12-12 15:28:23.000000000 +0100 ++++ libglade-2.4.2/libglade-2.0.pc.in 2005-03-22 01:20:00.000000000 +0100 +@@ -11,7 +11,7 @@ + Name: Libglade + Description: a library for dynamically loading GLADE interface files + Version: @VERSION@ +-Requires: gtk+-2.0 libxml-2.0 ++Requires: gtk+-2.0 @PKGCFG_REQUIRE_LIBXML2@ + Libs: -L${libdir} -lglade-2.0 + Cflags: -I${includedir}/libglade-2.0 + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch b/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch new file mode 100644 index 000000000..b5b2ec453 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade-2.6.4/python_environment.patch @@ -0,0 +1,14 @@ +Using @PYTHON@ for this path would result in the build system python being +referred to. Instead we want to locate python from the environment. + +Upstream-Status: Inappropriate [configuration] + +diff -ruN libglade-2.6.4-orig//libglade-convert.in libglade-2.6.4/libglade-convert.in +--- libglade-2.6.4-orig//libglade-convert.in 2011-09-22 10:18:28.991164003 +0800 ++++ libglade-2.6.4/libglade-convert.in 2011-09-22 10:18:55.431164003 +0800 +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python + # -*- mode: python -*- + + # yes, this requires python 2.x and an XML parser module (eg. PyExpat) diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade_2.6.4.bb b/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade_2.6.4.bb new file mode 100644 index 000000000..553e19c60 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/libglade/libglade_2.6.4.bb @@ -0,0 +1,31 @@ +SUMMARY = "Runtime support for the GTK+ interface builder" +HOMEPAGE = "http://library.gnome.org/devel/libglade/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "LGPLv2 & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://glade/glade.h;endline=22;md5=a04f461c964ba4b57a172d1fbcd8f8fc \ + file://glade/glade-gtk.c;endline=22;md5=766f993433e2642fec87936d319990ff" + +SECTION = "libs" +PR = "r5" +DEPENDS = "zlib gdk-pixbuf gtk+" + +inherit autotools pkgconfig gnomebase gtk-doc distro_features_check +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" +GNOME_COMPRESS_TYPE="bz2" + +SRC_URI += "file://glade-cruft.patch file://no-xml2.patch file://python_environment.patch" + +SRC_URI[archive.md5sum] = "d1776b40f4e166b5e9c107f1c8fe4139" +SRC_URI[archive.sha256sum] = "64361e7647839d36ed8336d992fd210d3e8139882269bed47dc4674980165dec" + +EXTRA_OECONF += "--without-libxml2" + +CFLAGS += "-lz" + +PACKAGES += " ${PN}-data" +FILES_${PN} = "${libdir}/lib*.so.*" +FILES_${PN}-data = "${datadir}/xml/libglade/glade-2.0.dtd" +FILES_${PN}-dev += "${bindir}/libglade-convert" +#RDEPENDS_${PN} = "${PN}-data" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libgudev/libgudev_230.bb b/import-layers/yocto-poky/meta/recipes-gnome/libgudev/libgudev_230.bb new file mode 100644 index 000000000..6a105023b --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/libgudev/libgudev_230.bb @@ -0,0 +1,14 @@ +SUMMARY = "GObject wrapper for libudev" + +SRC_URI[archive.md5sum] = "e4dee8f3f349e9372213d33887819a4d" +SRC_URI[archive.sha256sum] = "a2e77faced0c66d7498403adefcc0707105e03db71a2b2abd620025b86347c18" + +DEPENDS = "glib-2.0 udev" + +RCONFLICTS_${PN} = "systemd (<= 220)" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +inherit gnomebase gobject-introspection + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libnotify/libnotify_0.7.6.bb b/import-layers/yocto-poky/meta/recipes-gnome/libnotify/libnotify_0.7.6.bb new file mode 100644 index 000000000..ce8e5ae21 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/libnotify/libnotify_0.7.6.bb @@ -0,0 +1,20 @@ +SUMMARY = "Library for sending desktop notifications to a notification daemon" +SECTION = "libs" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +DEPENDS = "dbus gtk+3 dbus-glib" + +inherit gnomebase gtk-doc distro_features_check gobject-introspection +# depends on gtk+3 +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" + +SRC_URI[archive.md5sum] = "a4997019d08f46f3bf57b78e6f795a59" +SRC_URI[archive.sha256sum] = "0ef61ca400d30e28217979bfa0e73a7406b19c32dd76150654ec5b2bdf47d837" + +# there were times, we had two versions of libnotify (oe-core libnotify:0.6.x / +# meta-gnome libnotify3: 0.7.x) +PROVIDES += "libnotify3" +RPROVIDES_${PN} += "libnotify3" +RCONFLICTS_${PN} += "libnotify3" +RREPLACES_${PN} += "libnotify3" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg/gtk-option.patch b/import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg/gtk-option.patch new file mode 100644 index 000000000..6c23071cd --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg/gtk-option.patch @@ -0,0 +1,60 @@ +From 4e0ce3f22d45033a108cbacca3e5ec6728bd44f3 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Tue, 11 Aug 2015 16:25:38 +0300 +Subject: [PATCH] configure: add option to enable/disable use of GTK+ + +Distro packagers like predictability and automatically detected optional +dependencies are not predicable. Add a --with-gtk3 option (default to "auto") +for forcibly controlling whether GTK+ will be used or not. + +Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=712693] + +Signed-off-by: Ross Burton +Signed-off-by: Jussi Kukkonen +--- + configure.ac | 17 +++++++++++------ + 1 file changed, 11 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index e61a952..c3aae84 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -130,17 +130,22 @@ AC_CHECK_FUNCS(strtok_r) + # GTK + # =========================================================================== + +-PKG_CHECK_MODULES([GTK3],[gtk+-3.0 >= $GTK3_REQUIRED],[have_gtk_3=yes],[have_gtk_3=no]) +- + GTK3_BINARY_VERSION= + +-if test "$have_gtk_3" = "yes"; then +- GTK3_BINARY_VERSION="`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`" ++AC_MSG_CHECKING([whether to use GTK+ 3]) ++AC_ARG_WITH([gtk3], ++ [AS_HELP_STRING([--without-gtk3],[Don't build GTK+3 tools (default=auto)])], ++ [],[PKG_CHECK_EXISTS([gtk+-3.0 >= $GTK3_REQUIRED],[with_gtk3=yes],[with_gtk3=no])]) ++AC_MSG_RESULT([$with_gtk3]) ++ ++if test "$with_gtk3" = "yes"; then ++ PKG_CHECK_MODULES(GTK3, [gtk+-3.0 >= $GTK3_REQUIRED]) ++ GTK3_BINARY_VERSION="`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`" + fi + + AC_SUBST([GTK3_BINARY_VERSION]) + +-AM_CONDITIONAL([HAVE_GTK_3],[test "$have_gtk_3" = "yes"]) ++AM_CONDITIONAL([HAVE_GTK_3],[test "$with_gtk3" = "yes"]) + + dnl =========================================================================== + dnl GDK-Pixbuf SVG loader +@@ -298,6 +303,6 @@ librsvg-$VERSION + Build introspectable bindings: ${found_introspection} + Build Vala bindings: ${enable_vala} + Build GdkPixbuf loader: ${enable_pixbuf_loader} +- GTK+ $GTK3_REQUIRED or later: ${have_gtk_3} ++ GTK+ $GTK3_REQUIRED or later: ${with_gtk_3} + Build miscellaneous tools: ${build_misc_tools} + " +-- +2.1.4 + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.13.bb b/import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.13.bb new file mode 100644 index 000000000..2ac52f779 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.13.bb @@ -0,0 +1,45 @@ +SUMMARY = "Library for rendering SVG files" +HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/librsvg/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://rsvg.h;beginline=3;endline=24;md5=20b4113c4909bbf0d67e006778302bc6" + +SECTION = "x11/utils" +DEPENDS = "cairo gdk-pixbuf glib-2.0 libcroco libxml2 pango" +BBCLASSEXTEND = "native" + +inherit autotools pkgconfig gnomebase gtk-doc pixbufcache upstream-version-is-even gobject-introspection + +SRC_URI += "file://gtk-option.patch" + +SRC_URI[archive.md5sum] = "ad03780e12c56e52474d8edf86976c73" +SRC_URI[archive.sha256sum] = "4d6ea93ec05f5dabe7262d711d246a0a99b2311e215360dd3dcabd6afe3b9804" + +CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" + +# 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" + +PACKAGECONFIG ??= "gdkpixbuf" +# The gdk-pixbuf loader +PACKAGECONFIG[gdkpixbuf] = "--enable-pixbuf-loader,--disable-pixbuf-loader,gdk-pixbuf-native" +# GTK+ test application (rsvg-view) +PACKAGECONFIG[gtk] = "--with-gtk3,--without-gtk3,gtk+3" + +do_install_append() { + # Loadable modules don't need .a or .la on Linux + rm -f ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.a ${D}${libdir}/gdk-pixbuf-2.0/*/loaders/*.la +} + +PACKAGES =+ "librsvg-gtk rsvg" +FILES_rsvg = "${bindir}/rsvg* \ + ${datadir}/pixmaps/svg-viewer.svg \ + ${datadir}/themes" +FILES_librsvg-gtk = "${libdir}/gdk-pixbuf-2.0/*/*/*.so" + +PIXBUF_PACKAGES = "librsvg-gtk" + +PIXBUFCACHE_SYSROOT_DEPS_append_class-native = " harfbuzz-native:do_populate_sysroot_setscene pango-native:do_populate_sysroot_setscene icu-native:do_populate_sysroot_setscene" diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.4.bb b/import-layers/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.4.bb new file mode 100644 index 000000000..beaaba03e --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.4.bb @@ -0,0 +1,25 @@ +SUMMARY = "libsecret is a library for storing and retrieving passwords and other secrets" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6" + +inherit gnomebase gtk-doc vala gobject-introspection + +DEPENDS += "glib-2.0 libgcrypt gettext-native intltool-native" + +EXTRA_OECONF += "--disable-manpages" + +SRC_URI[archive.md5sum] = "5190da1ee686437046bc10068f120d1d" +SRC_URI[archive.sha256sum] = "0f29b51698198e6999c91f4adce3119c8c457f546b133a85baea5ea9010a19ed" + +# 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 +} + +# 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" + diff --git a/import-layers/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.14.1.bb b/import-layers/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.14.1.bb new file mode 100644 index 000000000..495894b89 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.14.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "Window navigation construction toolkit" +LICENSE = "LGPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" + +BPN = "libwnck" + +SECTION = "x11/libs" +DEPENDS = "gtk+3 gdk-pixbuf-native libxres" + +PACKAGECONFIG ??= "startup-notification" +PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification" + +inherit gnomebase gobject-introspection +SRC_URI[archive.md5sum] = "d96c0b74c4dc5fdae758964098603c90" +SRC_URI[archive.sha256sum] = "bb643c9c423c8aa79c59973ce27ce91d3b180d1e9907902278fb79391f52befa" + +inherit distro_features_check +# libxres means x11 only +REQUIRED_DISTRO_FEATURES = "x11" + -- cgit v1.2.3