From eb8dc40360f0cfef56fb6947cc817a547d6d9bc6 Mon Sep 17 00:00:00 2001 From: Dave Cobbley Date: Tue, 14 Aug 2018 10:05:37 -0700 Subject: [Subtree] Removing import-layers directory As part of the move to subtrees, need to bring all the import layers content to the top level. Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f Signed-off-by: Dave Cobbley Signed-off-by: Brad Bishop --- .../meta/recipes-gnome/epiphany/epiphany_3.26.6.bb | 22 + ...-help-meson.build-disable-the-use-of-yelp.patch | 34 + .../gcr-add-missing-dependencies-for-vapi.patch | 51 ++ poky/meta/recipes-gnome/gcr/gcr_3.20.0.bb | 26 + ...-Fix-without-libtiff-not-having-an-effect.patch | 27 + ...-around-thumbnailer-cross-compile-failure.patch | 47 ++ .../extending-libinstall-dependencies.patch | 42 + .../gdk-pixbuf/gdk-pixbuf/fatal-loader.patch | 92 +++ .../gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch | 33 + .../recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest | 3 + .../recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.11.bb | 102 +++ ...ble-libseccomp-sycall-filtering-mechanism.patch | 38 + ...figure.ac-Remove-gnome-common-macro-calls.patch | 33 + ...top-thumbnail-don-t-assume-time_t-is-long.patch | 61 ++ .../gnome-desktop/gnome-desktop3_3.26.2.bb | 29 + .../0001-Don-t-use-AC_CANONICAL_HOST.patch | 27 + ...1-Run-installation-commands-as-shell-jobs.patch | 82 ++ .../gnome/adwaita-icon-theme_3.26.1.bb | 44 ++ .../gnome/gconf/create_config_directory.patch | 28 + .../remove_plus_from_invalid_characters_list.patch | 19 + .../gnome/gconf/unable-connect-dbus.patch | 95 +++ poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb | 55 ++ ...t.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch | 40 + .../gnome/gnome-themes-standard_3.22.3.bb | 46 ++ .../libart_lgpl-2.3.21-crosscompile.patch | 84 ++ .../meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb | 22 + ...ncomplete-upstream-attempt-at-cross-compi.patch | 50 ++ ...01-giscanner-add-a-lib-dirs-envvar-option.patch | 73 ++ ...c-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch | 200 +++++ ...3-giscanner-add-use-binary-wrapper-option.patch | 51 ++ ...04-giscanner-add-a-use-ldd-wrapper-option.patch | 47 ++ ...config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch | 96 +++ .../gobject-introspection_1.54.1.bb | 190 +++++ .../gsettings-desktop-schemas_3.24.1.bb | 13 + poky/meta/recipes-gnome/gtk+/gtk+.inc | 103 +++ poky/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch | 22 + .../gtk+/gtk+/hardcoded_libtool.patch | 36 + .../gtk+/gtk+/strict-prototypes.patch | 24 + poky/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff | 102 +++ poky/meta/recipes-gnome/gtk+/gtk+/xsettings.patch | 20 + poky/meta/recipes-gnome/gtk+/gtk+3.inc | 130 ++++ .../gtk+/gtk+3/0001-Hardcoded-libtool.patch | 47 ++ ...Do-not-try-to-initialize-GL-without-libGL.patch | 60 ++ .../0003-Add-disable-opengl-configure-option.patch | 847 +++++++++++++++++++++ poky/meta/recipes-gnome/gtk+/gtk+3_3.22.28.bb | 18 + poky/meta/recipes-gnome/gtk+/gtk+_2.24.32.bb | 34 + .../gtk+/gtk-icon-utils-native_3.22.28.bb | 63 ++ ...k-dependency-from-gtk-encode-symbolic-svg.patch | 102 +++ ...Do-not-error-out-if-xsltproc-is-not-found.patch | 31 + ...hardocode-paths-to-perl-python-in-scripts.patch | 142 ++++ .../gtk-doc/files/conditionaltests.patch | 46 ++ .../recipes-gnome/gtk-doc/files/no-clobber.patch | 27 + .../gtk-doc/files/pkg-config-native.patch | 42 + poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.27.bb | 50 ++ .../hicolor-icon-theme/hicolor-icon-theme_0.17.bb | 14 + .../recipes-gnome/json-glib/json-glib_1.4.2.bb | 40 + poky/meta/recipes-gnome/libgudev/libgudev_232.bb | 18 + .../recipes-gnome/libnotify/libnotify_0.7.7.bb | 21 + .../recipes-gnome/librsvg/librsvg/gtk-option.patch | 60 ++ poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb | 47 ++ .../recipes-gnome/libsecret/libsecret_0.18.5.bb | 20 + 61 files changed, 4068 insertions(+) create mode 100644 poky/meta/recipes-gnome/epiphany/epiphany_3.26.6.bb create mode 100644 poky/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch create mode 100644 poky/meta/recipes-gnome/gcr/files/gcr-add-missing-dependencies-for-vapi.patch create mode 100644 poky/meta/recipes-gnome/gcr/gcr_3.20.0.bb create mode 100644 poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-without-libtiff-not-having-an-effect.patch create mode 100644 poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch create mode 100644 poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch create mode 100644 poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch create mode 100644 poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch create mode 100644 poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest create mode 100644 poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.11.bb create mode 100644 poky/meta/recipes-gnome/gnome-desktop/gnome-desktop/0001-Disable-libseccomp-sycall-filtering-mechanism.patch create mode 100644 poky/meta/recipes-gnome/gnome-desktop/gnome-desktop/0001-configure.ac-Remove-gnome-common-macro-calls.patch create mode 100644 poky/meta/recipes-gnome/gnome-desktop/gnome-desktop/gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch create mode 100644 poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.26.2.bb create mode 100644 poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch create mode 100644 poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch create mode 100644 poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.26.1.bb create mode 100644 poky/meta/recipes-gnome/gnome/gconf/create_config_directory.patch create mode 100644 poky/meta/recipes-gnome/gnome/gconf/remove_plus_from_invalid_characters_list.patch create mode 100644 poky/meta/recipes-gnome/gnome/gconf/unable-connect-dbus.patch create mode 100644 poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb create mode 100644 poky/meta/recipes-gnome/gnome/gnome-doc-utils/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch create mode 100644 poky/meta/recipes-gnome/gnome/gnome-themes-standard_3.22.3.bb create mode 100644 poky/meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch create mode 100644 poky/meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb create mode 100644 poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch create mode 100644 poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-lib-dirs-envvar-option.patch create mode 100644 poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch create mode 100644 poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch create mode 100644 poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch create mode 100644 poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch create mode 100644 poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.54.1.bb create mode 100644 poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.24.1.bb create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+.inc create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+/xsettings.patch create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+3.inc create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+3_3.22.28.bb create mode 100644 poky/meta/recipes-gnome/gtk+/gtk+_2.24.32.bb create mode 100644 poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.22.28.bb create mode 100644 poky/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch create mode 100644 poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-xsltproc-is-not-found.patch create mode 100644 poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch create mode 100644 poky/meta/recipes-gnome/gtk-doc/files/conditionaltests.patch create mode 100644 poky/meta/recipes-gnome/gtk-doc/files/no-clobber.patch create mode 100644 poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch create mode 100644 poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.27.bb create mode 100644 poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb create mode 100644 poky/meta/recipes-gnome/json-glib/json-glib_1.4.2.bb create mode 100644 poky/meta/recipes-gnome/libgudev/libgudev_232.bb create mode 100644 poky/meta/recipes-gnome/libnotify/libnotify_0.7.7.bb create mode 100644 poky/meta/recipes-gnome/librsvg/librsvg/gtk-option.patch create mode 100644 poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb create mode 100644 poky/meta/recipes-gnome/libsecret/libsecret_0.18.5.bb (limited to 'poky/meta/recipes-gnome') diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_3.26.6.bb b/poky/meta/recipes-gnome/epiphany/epiphany_3.26.6.bb new file mode 100644 index 000000000..e250f76ed --- /dev/null +++ b/poky/meta/recipes-gnome/epiphany/epiphany_3.26.6.bb @@ -0,0 +1,22 @@ +SUMMARY = "WebKit based web browser for GNOME" +LICENSE = "GPLv3+" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr \ + gsettings-desktop-schemas gnome-desktop3 libxml2-native \ + glib-2.0 glib-2.0-native json-glib" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase gsettings distro_features_check upstream-version-is-even gettext +REQUIRED_DISTRO_FEATURES = "x11" + +SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \ + file://0002-help-meson.build-disable-the-use-of-yelp.patch \ + " +SRC_URI[archive.md5sum] = "8449968366a6f9aaff3ac228ddfc7c66" +SRC_URI[archive.sha256sum] = "01b16aa55d312ae0f17d3136f90d8c68ac748715f119412fb1917023c6f630a8" + +EXTRA_OEMESON += " -Ddistributor_name=${DISTRO}" + +FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers" +RDEPENDS_${PN} = "iso-codes adwaita-icon-theme" diff --git a/poky/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch b/poky/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch new file mode 100644 index 000000000..249517d8f --- /dev/null +++ b/poky/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch @@ -0,0 +1,34 @@ +From fc314fc3a66c92fe73e1a0cea4f49d11b29e1f45 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 31 Jan 2018 15:50:38 +0200 +Subject: [PATCH 2/2] help/meson.build: disable the use of yelp + +In particular this avoids calling itstool which oe-core doesn't provide. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin +--- + help/meson.build | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/help/meson.build b/help/meson.build +index f720add..cbfeb1e 100644 +--- a/help/meson.build ++++ b/help/meson.build +@@ -46,8 +46,8 @@ help_linguas = [ + 'sv' + ] + +-gnome.yelp(meson.project_name(), +- sources: help_files, +- media: help_media, +- languages: help_linguas, +-) ++#gnome.yelp(meson.project_name(), ++# sources: help_files, ++# media: help_media, ++# languages: help_linguas, ++#) +-- +2.15.1 + diff --git a/poky/meta/recipes-gnome/gcr/files/gcr-add-missing-dependencies-for-vapi.patch b/poky/meta/recipes-gnome/gcr/files/gcr-add-missing-dependencies-for-vapi.patch new file mode 100644 index 000000000..a20542986 --- /dev/null +++ b/poky/meta/recipes-gnome/gcr/files/gcr-add-missing-dependencies-for-vapi.patch @@ -0,0 +1,51 @@ +From e7e0c56ca82031121f192f7f711b78418b154c9f Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Mon, 28 Nov 2016 10:17:34 +0800 +Subject: [PATCH] gcr: add missing dependencies for vapi + +According to the vapi_DEPS definition: +gcr-3.vapi depends on gck-1.vapi, +gcr-ui-3.vapi depends on gck-1.vapi and gcr-3.vapi + +But these dependencies are missing for the make targets, +so it will fail when build in parallel: +error: Package `gck-1' not found in specified Vala API directories or GObject-Introspection GIR directories +error: Package `gcr-3' not found in specified Vala API directories or GObject-Introspection GIR directories + +Upstream-Status: Submitted [https://bug775966.bugzilla-attachments.gnome.org/attachment.cgi?id=341791] + +Signed-off-by: Jackie Huang +--- + gcr/Makefile.am | 2 +- + ui/Makefile.am | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gcr/Makefile.am b/gcr/Makefile.am +index eda302f..6e78dba 100644 +--- a/gcr/Makefile.am ++++ b/gcr/Makefile.am +@@ -221,7 +221,7 @@ gir_DATA += Gcr-@GCR_MAJOR@.gir + + if ENABLE_VAPIGEN + +-gcr-@GCR_MAJOR@.vapi: Gcr-@GCR_MAJOR@.gir gcr/Gcr-@GCR_MAJOR@.metadata gcr-@GCR_MAJOR@.deps ++gcr-@GCR_MAJOR@.vapi: Gcr-@GCR_MAJOR@.gir gcr/Gcr-@GCR_MAJOR@.metadata gcr-@GCR_MAJOR@.deps gck-@GCK_MAJOR@.vapi + + VAPIGEN_VAPIS += gcr-@GCR_MAJOR@.vapi + +diff --git a/ui/Makefile.am b/ui/Makefile.am +index aa52476..6612f0d 100644 +--- a/ui/Makefile.am ++++ b/ui/Makefile.am +@@ -160,7 +160,7 @@ gir_DATA += GcrUi-@GCR_MAJOR@.gir + + if ENABLE_VAPIGEN + +-gcr-ui-@GCR_MAJOR@.vapi: GcrUi-@GCR_MAJOR@.gir ui/GcrUi-@GCR_MAJOR@.metadata gcr-ui-@GCR_MAJOR@.deps ++gcr-ui-@GCR_MAJOR@.vapi: GcrUi-@GCR_MAJOR@.gir ui/GcrUi-@GCR_MAJOR@.metadata gcr-ui-@GCR_MAJOR@.deps gck-@GCK_MAJOR@.vapi gcr-@GCR_MAJOR@.vapi + + VAPIGEN_VAPIS += gcr-ui-@GCR_MAJOR@.vapi + +-- +2.8.3 + diff --git a/poky/meta/recipes-gnome/gcr/gcr_3.20.0.bb b/poky/meta/recipes-gnome/gcr/gcr_3.20.0.bb new file mode 100644 index 000000000..a68e0f676 --- /dev/null +++ b/poky/meta/recipes-gnome/gcr/gcr_3.20.0.bb @@ -0,0 +1,26 @@ +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 = "intltool-native gtk+3 p11-kit glib-2.0 libgcrypt \ + ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}" + +inherit 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 += "file://gcr-add-missing-dependencies-for-vapi.patch" + +SRC_URI[archive.md5sum] = "4314bf89eac293dd0a9d806593ff1b35" +SRC_URI[archive.sha256sum] = "90572c626d8a708225560c42b4421f7941315247fa1679d4ef569bde7f4bb379" + +FILES_${PN} += " \ + ${datadir}/dbus-1 \ + ${datadir}/gcr-3 \ +" + +# http://errors.yoctoproject.org/Errors/Details/20229/ +ARM_INSTRUCTION_SET = "arm" diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-without-libtiff-not-having-an-effect.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-without-libtiff-not-having-an-effect.patch new file mode 100644 index 000000000..2a54d8ed7 --- /dev/null +++ b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-without-libtiff-not-having-an-effect.patch @@ -0,0 +1,27 @@ +From 460befc992adb32434b0408b453be39a6866ccf8 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Tue, 10 Oct 2017 14:33:18 +0300 +Subject: [PATCH] Fix --without-libtiff not having an effect. + +Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=788770] +Signed-off-by: Alexander Kanavin +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 315e0cc..98e780c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -676,7 +676,7 @@ if test x$gio_can_sniff = x; then + AC_DEFINE(GDK_PIXBUF_USE_GIO_MIME, 1, [Define if gio can sniff image data]) + fi + +-AM_CONDITIONAL(HAVE_TIFF, test "x$libtiff_found" != x) ++AM_CONDITIONAL(HAVE_TIFF, test "x$libtiff_found" != xno) + AM_CONDITIONAL(HAVE_PNG, test "x$LIBPNG" != x) + AM_CONDITIONAL(HAVE_JPEG, test "x$LIBJPEG" != x) + AM_CONDITIONAL(HAVE_JASPER, test "x$LIBJASPER" != x) +-- +2.14.1 + diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch new file mode 100644 index 000000000..31ed988f3 --- /dev/null +++ b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch @@ -0,0 +1,47 @@ +From 6646e8aadc4030d891ac27c25494e5793d59dc85 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Wed, 22 Feb 2017 11:24:39 +0200 +Subject: [PATCH] Work-around thumbnailer cross-compile failure + +Install gdk-pixbuf-print-mime-types that's needed for thumbnail +metadata generation. + +Use native gdk-pixbuf-print-mime-types when generating the thumbnail +metadata. This works but the mime types will come from native +loader.cache (which will only contain in-tree loaders), not from the +target loader.cache. + +The upstream issue is https://bugzilla.gnome.org/show_bug.cgi?id=779057 + +Upstream-Status: Inappropriate [workaround] +Signed-off-by: Jussi Kukkonen +--- + thumbnailer/Makefile.am | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/thumbnailer/Makefile.am b/thumbnailer/Makefile.am +index c9fe123..b0c6c70 100644 +--- a/thumbnailer/Makefile.am ++++ b/thumbnailer/Makefile.am +@@ -1,5 +1,4 @@ +-bin_PROGRAMS = gdk-pixbuf-thumbnailer +-noinst_PROGRAMS = gdk-pixbuf-print-mime-types ++bin_PROGRAMS = gdk-pixbuf-thumbnailer gdk-pixbuf-print-mime-types + + gdk_pixbuf_thumbnailer_SOURCES = gdk-pixbuf-thumbnailer.c gnome-thumbnailer-skeleton.c gnome-thumbnailer-skeleton.h + gdk_pixbuf_thumbnailer_CPPFLAGS = \ +@@ -25,9 +24,9 @@ gdk_pixbuf_print_mime_types_LDADD = \ + + thumbnailerdir = $(datadir)/thumbnailers/ + thumbnailer_DATA = gdk-pixbuf-thumbnailer.thumbnailer +-gdk-pixbuf-thumbnailer.thumbnailer: gdk-pixbuf-thumbnailer.thumbnailer.in Makefile gdk-pixbuf-print-mime-types$(EXEEXT) $(top_builddir)/gdk-pixbuf/loaders.cache ++gdk-pixbuf-thumbnailer.thumbnailer: gdk-pixbuf-thumbnailer.thumbnailer.in Makefile gdk-pixbuf-print-mime-types$(EXEEXT) + $(AM_V_GEN) $(SED) -e "s|\@bindir\@|$(bindir)|" \ +- -e "s|\@mimetypes\@|`GDK_PIXBUF_MODULE_FILE=$(top_builddir)/gdk-pixbuf/loaders.cache GDK_PIXBUF_PIXDATA=$(top_builddir)/gdk-pixbuf/gdk-pixbuf-pixdata $(builddir)/gdk-pixbuf-print-mime-types`|" \ ++ -e "s|\@mimetypes\@|`gdk-pixbuf-print-mime-types`|" \ + $< > $@ + + EXTRA_DIST = gdk-pixbuf-thumbnailer.thumbnailer.in +-- +2.1.4 + diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch new file mode 100644 index 000000000..edbdced43 --- /dev/null +++ b/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/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch new file mode 100644 index 000000000..7d0d54baf --- /dev/null +++ b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch @@ -0,0 +1,92 @@ +From b6a7b30522455cab39a0b9ea8463313380146e70 Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Tue, 1 Apr 2014 17:23:36 +0100 +Subject: [PATCH 3/4] gdk-pixbuf: add an option so that loader errors are fatal + +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 + +--- + gdk-pixbuf/queryloaders.c | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +diff --git a/gdk-pixbuf/queryloaders.c b/gdk-pixbuf/queryloaders.c +index a81c804..350bec8 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; +@@ -370,7 +375,9 @@ int main (int argc, char **argv) + } + modules = g_list_sort (modules, (GCompareFunc)strcmp); + for (l = modules; l != NULL; l = l->next) +- query_module (contents, path, l->data); ++ if (!query_module (contents, path, l->data)) ++ success = FALSE; ++ + g_list_free_full (modules, g_free); + #else + g_string_append_printf (contents, "# dynamic loading of modules not supported\n"); +@@ -385,7 +392,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); + } +@@ -401,5 +409,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; + } +-- +2.14.1 + diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch new file mode 100644 index 000000000..ecca62a71 --- /dev/null +++ b/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/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest new file mode 100644 index 000000000..8f9072386 --- /dev/null +++ b/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/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.11.bb b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.11.bb new file mode 100644 index 000000000..99c84c6dd --- /dev/null +++ b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.36.11.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 gdk-pixbuf-native shared-mime-info" + +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 \ + file://0001-Work-around-thumbnailer-cross-compile-failure.patch \ + file://0001-Fix-without-libtiff-not-having-an-effect.patch \ + " + +SRC_URI[md5sum] = "6e84e5485c17ce7c25df77fe76eb2d6a" +SRC_URI[sha256sum] = "ae62ab87250413156ed72ef756347b10208c00e76b222d82d9ed361ed9dde2f3" + +inherit autotools pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gtk-doc lib_package + +LIBV = "2.10.0" + +GDK_PIXBUF_LOADERS ?= "png jpeg" + +PACKAGECONFIG ??= "${GDK_PIXBUF_LOADERS}" +PACKAGECONFIG_linuxstdbase = "${@bb.utils.filter('DISTRO_FEATURES', '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" + +PACKAGECONFIG[x11] = "--with-x11,--without-x11,virtual/libx11" + +PACKAGES =+ "${PN}-xlib" + +# For GIO image type sniffing +RDEPENDS_${PN} = "shared-mime-info" + +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}-bin += "${datadir}/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer" + +FILES_${PN}-dev += " \ + ${bindir}/gdk-pixbuf-csource \ + ${bindir}/gdk-pixbuf-pixdata \ + ${bindir}/gdk-pixbuf-print-mime-types \ + ${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") + + 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_%s-ptest" % d.getVar('PN'), " " + 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}/${bindir}/gdk-pixbuf-print-mime-types \ + 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" diff --git a/poky/meta/recipes-gnome/gnome-desktop/gnome-desktop/0001-Disable-libseccomp-sycall-filtering-mechanism.patch b/poky/meta/recipes-gnome/gnome-desktop/gnome-desktop/0001-Disable-libseccomp-sycall-filtering-mechanism.patch new file mode 100644 index 000000000..10b07435c --- /dev/null +++ b/poky/meta/recipes-gnome/gnome-desktop/gnome-desktop/0001-Disable-libseccomp-sycall-filtering-mechanism.patch @@ -0,0 +1,38 @@ +From 9dfada06f8d2e02d7a04f793ba6e1d4a2aa5ffb7 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Thu, 5 Oct 2017 14:54:17 +0300 +Subject: [PATCH] Disable libseccomp (sycall filtering mechanism) + +Upstream forgot to make it optional, and it is not currently used in Yocto + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin +--- + configure.ac | 11 ----------- + 1 file changed, 11 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 86bcf1f..8911f19 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -157,17 +157,6 @@ else + fi + + SECCOMP_PKG="" +-dnl Check for bubblewrap compatible platform +-case $host_os in +- linux*) +- PKG_CHECK_MODULES(LIBSECCOMP, [libseccomp]) +- SECCOMP_PKG="libseccomp" +- AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define to include GNU extensions]) +- AC_DEFINE_UNQUOTED(HAVE_BWRAP, 1, [Define to 1 if Bubblewrap support is available]) +- AC_DEFINE([ENABLE_SECCOMP], [1], [Define if using seccomp]) +- AC_DEFINE_UNQUOTED(INSTALL_PREFIX, "$prefix", [Path to library install prefix]) +- ;; +-esac + + dnl pkg-config dependency checks + +-- +2.14.1 + diff --git a/poky/meta/recipes-gnome/gnome-desktop/gnome-desktop/0001-configure.ac-Remove-gnome-common-macro-calls.patch b/poky/meta/recipes-gnome/gnome-desktop/gnome-desktop/0001-configure.ac-Remove-gnome-common-macro-calls.patch new file mode 100644 index 000000000..e95393c6b --- /dev/null +++ b/poky/meta/recipes-gnome/gnome-desktop/gnome-desktop/0001-configure.ac-Remove-gnome-common-macro-calls.patch @@ -0,0 +1,33 @@ +From 834bc861921fe0361f2d6a5b5716fc97a9519478 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Thu, 6 Jul 2017 13:13:45 +0300 +Subject: [PATCH] configure.ac: Remove gnome-common macro calls + +gnome-common is deprecated and these aren't doing much for us. + +Upstreamable fix would probably involve using autoconf-archive: +Trying to avoid that dependency for now. + +Upstream-Status: Inappropriate +Signed-off-by: Jussi Kukkonen +--- + configure.ac | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 7adcf0e..bb7659d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -71,9 +71,6 @@ AC_SUBST(GNOME_DATE) + AC_SUBST(GNOME_DATE_COMMENT_START) + AC_SUBST(GNOME_DATE_COMMENT_END) + +-GNOME_COMPILE_WARNINGS([maximum]) +-GNOME_MAINTAINER_MODE_DEFINES +- + AC_ARG_ENABLE(deprecation_flags, + [AC_HELP_STRING([--enable-deprecation-flags], + [use *_DISABLE_DEPRECATED flags @<:@default=no@:>@])],, +-- +2.1.4 + diff --git a/poky/meta/recipes-gnome/gnome-desktop/gnome-desktop/gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch b/poky/meta/recipes-gnome/gnome-desktop/gnome-desktop/gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch new file mode 100644 index 000000000..fcc152fde --- /dev/null +++ b/poky/meta/recipes-gnome/gnome-desktop/gnome-desktop/gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch @@ -0,0 +1,61 @@ +From 9048939b76b3bd10783adb79ed0aaf6cd13895cc Mon Sep 17 00:00:00 2001 +From: Christopher Larson +Date: Tue, 13 Dec 2016 20:39:51 -0700 +Subject: [PATCH 1/2] gnome-desktop-thumbnail: don't convert time_t to long + +Explicitly use strftime+strptime rather than snprintf+atol. This fixes the +build for X32, where long's size doesn't match that of time_t. + +Upstream-Status: Pending +Signed-off-by: Christopher Larson + + +Modify patch described above to eliminate replacement of + +g_snprintf (mtime_str, 21, "%" G_GINT64_FORMAT, (gint64) mtime) + +which is not necessary. Retain replacement of atol(). + +Signed-off-by: Joe Slater + +--- + libgnome-desktop/gnome-desktop-thumbnail.c | 16 ++++++++++++++-- + 1 file changed, 14 insertions(+), 2 deletions(-) + +diff --git a/libgnome-desktop/gnome-desktop-thumbnail.c b/libgnome-desktop/gnome-desktop-thumbnail.c +index e56c3d7..5d96bf3 100644 +--- a/libgnome-desktop/gnome-desktop-thumbnail.c ++++ b/libgnome-desktop/gnome-desktop-thumbnail.c +@@ -120,6 +120,8 @@ + * Since: 2.2 + */ + ++#define _XOPEN_SOURCE ++ + #include + + #include +@@ -1319,6 +1326,7 @@ gnome_desktop_thumbnail_is_valid (GdkPixbuf *pixbuf, + { + const char *thumb_uri, *thumb_mtime_str; + time_t thumb_mtime; ++ struct tm tmp_mtime; + + thumb_uri = gdk_pixbuf_get_option (pixbuf, "tEXt::Thumb::URI"); + if (g_strcmp0 (uri, thumb_uri) != 0) +@@ -1327,7 +1335,11 @@ gnome_desktop_thumbnail_is_valid (GdkPixbuf *pixbuf, + thumb_mtime_str = gdk_pixbuf_get_option (pixbuf, "tEXt::Thumb::MTime"); + if (!thumb_mtime_str) + return FALSE; +- thumb_mtime = atol (thumb_mtime_str); ++ if (!strptime (thumb_mtime_str, "%s", &tmp_mtime)) ++ return FALSE; ++ thumb_mtime = mktime (&tmp_mtime); ++ if (!thumb_mtime) ++ return FALSE; + if (mtime != thumb_mtime) + return FALSE; + +-- +2.14.1 + diff --git a/poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.26.2.bb b/poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.26.2.bb new file mode 100644 index 000000000..879dc9a2f --- /dev/null +++ b/poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.26.2.bb @@ -0,0 +1,29 @@ +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] = "6cee2ecd677d87eaa0eb5ebfa7b45fb3" +SRC_URI[archive.sha256sum] = "f7561a7a313fc474b2c390cd9696df1f5c1e1556080e43f4afe042b1060e5f2a" + +SRC_URI += " \ + file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \ + file://0001-configure.ac-Remove-gnome-common-macro-calls.patch \ + file://0001-Disable-libseccomp-sycall-filtering-mechanism.patch \ + " + +DEPENDS += "intltool-native gsettings-desktop-schemas gconf virtual/libx11 gtk+3 glib-2.0 startup-notification xkeyboard-config iso-codes udev" + +inherit distro_features_check gtk-doc +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/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch new file mode 100644 index 000000000..96ec96bdb --- /dev/null +++ b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Don-t-use-AC_CANONICAL_HOST.patch @@ -0,0 +1,27 @@ +From 88ed996cc9e2b296cacfdbeece4be28a90bab511 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Tue, 30 May 2017 14:55:49 +0300 +Subject: [PATCH 1/2] Don't use AC_CANONICAL_HOST + +This won't work when building allarch (and is only used to find out if +target is windows). + +Upstream-Status: Inappropriate [embedded specific] +Signed-off-by: Jussi Kukkonen + +--- + configure.ac | 1 - + 1 file changed, 1 deletion(-) + +Index: adwaita-icon-theme-3.26.1/configure.ac +=================================================================== +--- adwaita-icon-theme-3.26.1.orig/configure.ac ++++ adwaita-icon-theme-3.26.1/configure.ac +@@ -3,7 +3,6 @@ AC_PREREQ(2.53) + + AC_INIT([adwaita-icon-theme], [3.26.1], + [http://bugzilla.gnome.org/enter_bug.cgi?product=adwaita-icon-theme]) +-AC_CANONICAL_HOST + AC_CONFIG_MACRO_DIR([m4]) + AC_CONFIG_SRCDIR([index.theme.in]) + diff --git a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch new file mode 100644 index 000000000..6c38e237f --- /dev/null +++ b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme/0001-Run-installation-commands-as-shell-jobs.patch @@ -0,0 +1,82 @@ +From 8dcd73b45a660dbdc560676835ba46f495334f14 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Tue, 13 Jun 2017 18:10:06 +0300 +Subject: [PATCH] Run installation commands as shell jobs + +This greatly speeds up installation time on multi-core systems. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + src/fullcolor/Makefile.am | 3 ++- + src/spinner/Makefile.am | 5 +++-- + src/symbolic/Makefile.am | 7 ++++--- + 3 files changed, 9 insertions(+), 6 deletions(-) + +diff --git a/src/fullcolor/Makefile.am b/src/fullcolor/Makefile.am +index 1c940a5..3998ee6 100644 +--- a/src/fullcolor/Makefile.am ++++ b/src/fullcolor/Makefile.am +@@ -9,9 +9,10 @@ install-data-local: + for file in `cd $(top_srcdir)/$(SVGOUTDIR)/$$size && find . -name "*.png"`; do \ + context="`dirname $$file`"; \ + $(mkdir_p) $(DESTDIR)$(themedir)/$$size/$$context; \ +- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \ ++ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \ + done; \ + done; ++ wait + + ## FIXME we should add a way to remove links generated by icon mapping + uninstall-local: +diff --git a/src/spinner/Makefile.am b/src/spinner/Makefile.am +index 86f4d7c..3fae8c1 100644 +--- a/src/spinner/Makefile.am ++++ b/src/spinner/Makefile.am +@@ -24,13 +24,14 @@ install-data-local: + for file in `cd $(top_srcdir)/$(SVGOUTDIR)/$$size; find . -name "*.png"`; do \ + context="`dirname $$file`"; \ + $(mkdir_p) $(DESTDIR)$(themedir)/$$size/$$context; \ +- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \ ++ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \ + done; \ + for file in `cd $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32; find . -name "*.svg"`; do \ + context="`dirname $$file`"; \ + $(mkdir_p) $(DESTDIR)$(themedir)/scalable-up-to-32/$$context; \ +- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32/$$file $(DESTDIR)$(themedir)/scalable-up-to-32/$$file; \ ++ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32/$$file $(DESTDIR)$(themedir)/scalable-up-to-32/$$file & \ + done ++ wait + + uninstall-local: + for file in `cd $(top_srcdir)/$(SVGOUTDIR)/scalable-up-to-32; find . -name "*.svg"`; do \ +diff --git a/src/symbolic/Makefile.am b/src/symbolic/Makefile.am +index 24aac9b..61ba071 100644 +--- a/src/symbolic/Makefile.am ++++ b/src/symbolic/Makefile.am +@@ -25,18 +25,19 @@ install-data-local: + for file in `cd $(top_srcdir)/$(SVGOUTDIR)/$$size; find . -name "*.png"`; do \ + context="`dirname $$file`"; \ + $(mkdir_p) $(DESTDIR)$(themedir)/$$size/$$context; \ +- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file; \ ++ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/$$size/$$file $(DESTDIR)$(themedir)/$$size/$$file & \ + done; \ + done + for file in `cd $(top_srcdir)/$(SVGOUTDIR)/scalable; find . -name "*.svg"`; do \ + context="`dirname $$file`"; \ + $(mkdir_p) $(DESTDIR)$(themedir)/scalable/$$context; \ +- $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $(DESTDIR)$(themedir)/scalable/$$file; \ ++ $(install_sh_DATA) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $(DESTDIR)$(themedir)/scalable/$$file & \ + for size in $(symbolic_encode_sizes); do \ + $(mkdir_p) $(DESTDIR)$(themedir)/$$size/$$context; \ +- $(GTK_ENCODE_SYMBOLIC_SVG) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $$size -o $(DESTDIR)$(themedir)/$$size/$$context; \ ++ $(GTK_ENCODE_SYMBOLIC_SVG) $(top_srcdir)/$(SVGOUTDIR)/scalable/$$file $$size -o $(DESTDIR)$(themedir)/$$size/$$context & \ + done \ + done ++ wait + + uninstall-local: + for file in `cd $(top_srcdir)/$(SVGOUTDIR)/scalable; find . -name "*.svg"`; do \ +-- +2.11.0 + diff --git a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.26.1.bb b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.26.1.bb new file mode 100644 index 000000000..6437d5e2d --- /dev/null +++ b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.26.1.bb @@ -0,0 +1,44 @@ +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 + + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" +SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ + file://0001-Don-t-use-AC_CANONICAL_HOST.patch \ + file://0001-Run-installation-commands-as-shell-jobs.patch \ + " + +SRC_URI[md5sum] = "3ef87e789711e5130792d4b5366c005d" +SRC_URI[sha256sum] = "28ba7392c7761996efd780779167ea6c940eedfb1bf37cfe9bccb7021f54d79d" + +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-hires ${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-hires = "${prefix}/share/icons/Adwaita/96x96/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/64x64/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/48x48/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/32x32/*/*.symbolic.png" +FILES_${PN}-symbolic = "${prefix}/share/icons/Adwaita/16x16/*/*.symbolic.png \ + ${prefix}/share/icons/Adwaita/24x24/*/*.symbolic.png" +FILES_${PN}-hires = "${prefix}/share/icons/Adwaita/256x256/ \ + ${prefix}/share/icons/Adwaita/512x512/" +FILES_${PN} = "${prefix}/share/icons/Adwaita/ \ + ${prefix}/share/pkgconfig/adwaita-icon-theme.pc" diff --git a/poky/meta/recipes-gnome/gnome/gconf/create_config_directory.patch b/poky/meta/recipes-gnome/gnome/gconf/create_config_directory.patch new file mode 100644 index 000000000..cd72e739b --- /dev/null +++ b/poky/meta/recipes-gnome/gnome/gconf/create_config_directory.patch @@ -0,0 +1,28 @@ +Upstream-Status: Pending + +In some circumstances, gconf isn't able to save configurations +because ~/.config folder aka root_dir doesn't exist. +This issue was not seen before because ~/.config directory is shared +between several packages and one of those packages usually creates it +by the time gconf wants to use it. + +This patch makes sure that gconf creates the .config directory if it +doesn't exist, along with the gconf directory inside it. + +Signed-off-by: Jaewon Lee +Signed-off-by: Alejandro Hernandez + + +Index: GConf-3.2.6/backends/markup-backend.c +=================================================================== +--- GConf-3.2.6.orig/backends/markup-backend.c ++++ GConf-3.2.6/backends/markup-backend.c +@@ -276,7 +276,7 @@ resolve_address (const char *address, + /* dir_mode without search bits */ + file_mode = dir_mode & (~0111); + } +- else if (g_mkdir (root_dir, dir_mode) < 0) ++ else if (g_mkdir_with_parents (root_dir, dir_mode) < 0) + { + /* Error out even on EEXIST - shouldn't happen anyway */ + gconf_set_error (err, GCONF_ERROR_FAILED, diff --git a/poky/meta/recipes-gnome/gnome/gconf/remove_plus_from_invalid_characters_list.patch b/poky/meta/recipes-gnome/gnome/gconf/remove_plus_from_invalid_characters_list.patch new file mode 100644 index 000000000..59a7ca780 --- /dev/null +++ b/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/poky/meta/recipes-gnome/gnome/gconf/unable-connect-dbus.patch b/poky/meta/recipes-gnome/gnome/gconf/unable-connect-dbus.patch new file mode 100644 index 000000000..f758a4bcc --- /dev/null +++ b/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/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb b/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb new file mode 100644 index 000000000..120ae3e02 --- /dev/null +++ b/poky/meta/recipes-gnome/gnome/gconf_3.2.6.bb @@ -0,0 +1,55 @@ +SUMMARY = "GNOME configuration system" +SECTION = "x11/gnome" +HOMEPAGE = "https://projects.gnome.org/gconf/" +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 \ + file://create_config_directory.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 +PACKAGECONFIG_class-native = "" + +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/poky/meta/recipes-gnome/gnome/gnome-doc-utils/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch b/poky/meta/recipes-gnome/gnome/gnome-doc-utils/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch new file mode 100644 index 000000000..4cfcabd38 --- /dev/null +++ b/poky/meta/recipes-gnome/gnome/gnome-doc-utils/0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch @@ -0,0 +1,40 @@ +From 426e38468463a4abb495cf6a269b9635b2107519 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Tue, 17 May 2016 13:51:24 +0300 +Subject: [PATCH] glib-gettext.m4: Update AM_GLIB_GNU_GETTEXT to match glib + +This avoids + error: m4_copy: won't overwrite defined macro: glib_DEFUN + +Signed-off-by: Jussi Kukkonen +Upstream-Status: Inappropriate [No upstream] +--- + m4/glib-gettext.m4 | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/m4/glib-gettext.m4 b/m4/glib-gettext.m4 +index 81f8fd2..e2b142b 100644 +--- a/m4/glib-gettext.m4 ++++ b/m4/glib-gettext.m4 +@@ -310,7 +310,7 @@ msgstr "" + # on various variables needed by the Makefile.in.in installed by + # glib-gettextize. + dnl +-glib_DEFUN([GLIB_GNU_GETTEXT], ++AU_DEFUN([GLIB_GNU_GETTEXT], + [AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + +@@ -381,7 +381,8 @@ glib_DEFUN([GLIB_GNU_GETTEXT], + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES +- ]) ++ ] ++ [[$0: This macro is deprecated. You should use upstream gettext instead.]]) + + # AX_GLIB_DEFINE_LOCALEDIR(VARIABLE) + # ------------------------------- +-- +2.1.4 + diff --git a/poky/meta/recipes-gnome/gnome/gnome-themes-standard_3.22.3.bb b/poky/meta/recipes-gnome/gnome/gnome-themes-standard_3.22.3.bb new file mode 100644 index 000000000..55ee27760 --- /dev/null +++ b/poky/meta/recipes-gnome/gnome/gnome-themes-standard_3.22.3.bb @@ -0,0 +1,46 @@ +SUMMARY = "GTK+2 standard themes" +HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/gnome-themes-standard/" +BUGTRACKER = "https://bugzilla.gnome.org/" +SECTION = "x11/gnome" + +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" + +inherit autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even distro_features_check + +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" + +DEPENDS += "intltool-native gtk+" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" +SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ + " + +SRC_URI[md5sum] = "b51c362b157b6407303d44f93c31ee11" +SRC_URI[sha256sum] = "61dc87c52261cfd5b94d65e8ffd923ddeb5d3944562f84942eeeb197ab8ab56a" + +EXTRA_OECONF = "--disable-gtk3-engine" + +do_install_append() { + # Only building Adwaita, remove highcontrast files + rm -rf ${D}${prefix}/share/themes/HighContrast \ + ${D}${prefix}/share/icons + + # The libtool archive file is unneeded with shared libs on modern Linux + rm -rf ${D}${libdir}/gtk-2.0/2.10.0/engines/libadwaita.la +} + +# There could be gnome-theme-highcontrast as well but that requires +# gtk+3 and includes lots of icons (is also broken with B != S). +PACKAGES += "gnome-theme-adwaita \ + gnome-theme-adwaita-dark \ + " + +FILES_gnome-theme-adwaita = "${prefix}/share/themes/Adwaita \ + ${libdir}/gtk-2.0/2.10.0/engines/libadwaita.so" + +FILES_gnome-theme-adwaita-dark = "${prefix}/share/themes/Adwaita-dark" +RDEPENDS_gnome-theme-adwaita-dark = "gnome-theme-adwaita" + +# gnome-themes-standard is empty and doesn't exist +RDEPENDS_${PN}-dev = "" diff --git a/poky/meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch b/poky/meta/recipes-gnome/gnome/libart-lgpl/libart_lgpl-2.3.21-crosscompile.patch new file mode 100644 index 000000000..0261f58c9 --- /dev/null +++ b/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/poky/meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb b/poky/meta/recipes-gnome/gnome/libart-lgpl_2.3.21.bb new file mode 100644 index 000000000..95581b297 --- /dev/null +++ b/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/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch new file mode 100644 index 000000000..9abaea7e7 --- /dev/null +++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch @@ -0,0 +1,50 @@ +From 3a9d1e5ee0aae56fafec0beba2014c19e4ff310c Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 23 Mar 2016 17:07:28 +0200 +Subject: [PATCH 1/5] Revert an incomplete upstream attempt at cross-compile + support + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin +--- + common.mk | 4 ---- + giscanner/gdumpparser.py | 6 ------ + 2 files changed, 10 deletions(-) + +diff --git a/common.mk b/common.mk +index b778f7a..e26c637 100644 +--- a/common.mk ++++ b/common.mk +@@ -24,12 +24,8 @@ INTROSPECTION_SCANNER_ARGS = \ + --add-include-path=$(top_builddir) \ + --add-include-path=$(top_builddir)/gir + +-# GI_CROSS_LAUNCHER is the command to use for executing g-ir-compiler. +-# Normally will be undefined but can be set (e.g. to wine or qemu) +-# when cross-compiling + INTROSPECTION_COMPILER = \ + env PATH=".libs:$(PATH)" \ +- $(GI_CROSS_LAUNCHER) \ + $(top_builddir)/g-ir-compiler$(EXEEXT) + + INTROSPECTION_COMPILER_ARGS = \ +diff --git a/giscanner/gdumpparser.py b/giscanner/gdumpparser.py +index 1134f33..9bdc2bc 100644 +--- a/giscanner/gdumpparser.py ++++ b/giscanner/gdumpparser.py +@@ -162,12 +162,6 @@ blob containing data gleaned from GObject's primitive introspection.""" + out_path = os.path.join(self._binary.tmpdir, 'dump.xml') + + args = [] +- +- # Prepend the launcher command and arguments, if defined +- launcher = os.environ.get('GI_CROSS_LAUNCHER') +- if launcher: +- args.extend(launcher.split()) +- + args.extend(self._binary.args) + args.append('--introspect-dump=%s,%s' % (in_path, out_path)) + +-- +2.7.0 + diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-lib-dirs-envvar-option.patch b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-lib-dirs-envvar-option.patch new file mode 100644 index 000000000..4ec527dcc --- /dev/null +++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-giscanner-add-a-lib-dirs-envvar-option.patch @@ -0,0 +1,73 @@ +From e48f1e18f5ea41656f0ba10fe61d69d2604b0064 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 3 Jan 2018 17:02:01 +0200 +Subject: [PATCH] giscanner: add a --lib-dirs-envvar option + +By default LD_LIBRARY_PATH is set to the list of target library paths; +this breaks down in cross-compilation environment, as we need to run a +native emulation wrapper rather than the target binary itself. This patch +allows exporting those paths to a different environment variable +which can be picked up and used by the wrapper. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin + +--- + giscanner/ccompiler.py | 4 ++-- + giscanner/dumper.py | 3 ++- + giscanner/scannermain.py | 3 +++ + 3 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/giscanner/ccompiler.py b/giscanner/ccompiler.py +index 29de0ee..928eae8 100644 +--- a/giscanner/ccompiler.py ++++ b/giscanner/ccompiler.py +@@ -109,7 +109,7 @@ class CCompiler(object): + + self._cflags_no_deprecation_warnings = "-Wno-deprecated-declarations" + +- def get_internal_link_flags(self, args, libtool, libraries, extra_libraries, libpaths): ++ def get_internal_link_flags(self, args, libtool, libraries, extra_libraries, libpaths, lib_dirs_envvar): + # An "internal" link is where the library to be introspected + # is being built in the current directory. + +@@ -119,7 +119,7 @@ class CCompiler(object): + if self.check_is_msvc(): + runtime_path_envvar = ['LIB', 'PATH'] + else: +- runtime_path_envvar = ['LD_LIBRARY_PATH'] ++ runtime_path_envvar = ['LD_LIBRARY_PATH'] if not lib_dirs_envvar else [lib_dirs_envvar] + # Search the current directory first + # (This flag is not supported nor needed for Visual C++) + args.append('-L.') +diff --git a/giscanner/dumper.py b/giscanner/dumper.py +index 7f77bd2..db96df6 100644 +--- a/giscanner/dumper.py ++++ b/giscanner/dumper.py +@@ -259,7 +259,8 @@ class DumpCompiler(object): + libtool, + self._options.libraries, + self._options.extra_libraries, +- self._options.library_paths) ++ self._options.library_paths, ++ self._options.lib_dirs_envvar) + args.extend(pkg_config_libs) + + else: +diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py +index 38a45c1..b603850 100755 +--- a/giscanner/scannermain.py ++++ b/giscanner/scannermain.py +@@ -130,6 +130,9 @@ def _get_option_parser(): + 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("", "--lib-dirs-envvar", ++ action="store", dest="lib_dirs_envvar", default=None, ++ help="environment variable to write a list of library directories to (for running the transient binary), instead of standard LD_LIBRARY_PATH") + parser.add_option("", "--program-arg", + action="append", dest="program_args", default=[], + help="extra arguments to program") +-- +2.15.1 + diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch new file mode 100644 index 000000000..c682b42af --- /dev/null +++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch @@ -0,0 +1,200 @@ +From b1503fe2693d602b3e24e4b832dc0934960d5d22 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 19 Oct 2015 18:29:21 +0300 +Subject: [PATCH 2/5] 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(-) + +Index: gobject-introspection-1.52.1/Makefile.am +=================================================================== +--- gobject-introspection-1.52.1.orig/Makefile.am ++++ gobject-introspection-1.52.1/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 + +Index: gobject-introspection-1.52.1/common.mk +=================================================================== +--- gobject-introspection-1.52.1.orig/common.mk ++++ gobject-introspection-1.52.1/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) \ +Index: gobject-introspection-1.52.1/configure.ac +=================================================================== +--- gobject-introspection-1.52.1.orig/configure.ac ++++ gobject-introspection-1.52.1/configure.ac +@@ -366,6 +366,48 @@ dnl + AM_CONDITIONAL(MSVC_BASE_NO_TOOLSET_SET, [test x$MSVC_BASE_TOOLSET = x]) + AM_CONDITIONAL(MSVC_NO_TOOLSET_SET, [test x$MSVC_TOOLSET = x]) + ++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 +Index: gobject-introspection-1.52.1/tests/Makefile.am +=================================================================== +--- gobject-introspection-1.52.1.orig/tests/Makefile.am ++++ gobject-introspection-1.52.1/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= diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch new file mode 100644 index 000000000..f21eaca85 --- /dev/null +++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0003-giscanner-add-use-binary-wrapper-option.patch @@ -0,0 +1,51 @@ +From 704b888d0abfb01067352c40156f49f655691c7c Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Mon, 19 Oct 2015 18:26:40 +0300 +Subject: [PATCH 3/5] 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 633496f..d684cd0 100755 +--- a/giscanner/scannermain.py ++++ b/giscanner/scannermain.py +@@ -124,6 +124,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") +@@ -419,6 +422,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.7.0 + diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch new file mode 100644 index 000000000..afb71e767 --- /dev/null +++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0004-giscanner-add-a-use-ldd-wrapper-option.patch @@ -0,0 +1,47 @@ +From d4ad57fd4a32c4f0d2f0522a3090ef940746431b Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 30 Oct 2015 16:28:46 +0200 +Subject: [PATCH 4/5] 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 d684cd0..1b3b369 100755 +--- a/giscanner/scannermain.py ++++ b/giscanner/scannermain.py +@@ -127,6 +127,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 c93d20c..c5b5942 100644 +--- a/giscanner/shlibs.py ++++ b/giscanner/shlibs.py +@@ -105,7 +105,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.7.0 + diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch new file mode 100644 index 000000000..47a18ec84 --- /dev/null +++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch @@ -0,0 +1,96 @@ +From e08b3677dd04d6ec407ba8f74f601b2d51310eff Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Thu, 8 Oct 2015 18:30:35 +0300 +Subject: [PATCH 5/5] 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 a09260a..ba6e89e 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_INCLUDEDIR = $(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0 ++GIO_UNIX_INCLUDEDIR = $(PKG_CONFIG_SYSROOT_DIR)$(shell "${PKG_CONFIG}" --variable=includedir gio-unix-2.0)/gio-unix-2.0 + GIO_UNIX_HDRS = $(GIO_UNIX_INCLUDEDIR)/gio/*.h + GIO_UNIX_PACKAGES = gio-unix-2.0 + else +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/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.54.1.bb b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.54.1.bb new file mode 100644 index 000000000..85c8001de --- /dev/null +++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.54.1.bb @@ -0,0 +1,190 @@ +SUMMARY = "Middleware layer between GObject-using C libraries and language bindings" +HOMEPAGE = "https://wiki.gnome.org/action/show/Projects/GObjectIntrospection" +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.54/${BPN}-${PV}.tar.xz \ + file://0001-Revert-an-incomplete-upstream-attempt-at-cross-compi.patch \ + file://0002-configure.ac-add-host-gi-gi-cross-wrapper-gi-ldd-wra.patch \ + file://0003-giscanner-add-use-binary-wrapper-option.patch \ + file://0004-giscanner-add-a-use-ldd-wrapper-option.patch \ + file://0005-Prefix-pkg-config-paths-with-PKG_CONFIG_SYSROOT_DIR-.patch \ + file://0001-giscanner-add-a-lib-dirs-envvar-option.patch \ + " +SRC_URI[md5sum] = "126c29e4d54adbed2ed4e2b04483de41" +SRC_URI[sha256sum] = "b88ded5e5f064ab58a93aadecd6d58db2ec9d970648534c63807d4f9a7bb877e" + +inherit autotools pkgconfig gtk-doc python3native qemu gobject-introspection-data upstream-version-is-even +BBCLASSEXTEND = "native" + +# needed for writing out the qemu wrapper script +export STAGING_DIR_HOST +export B + +DEPENDS_append = " libffi zlib glib-2.0 python3 flex-native bison-native" + +# 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 postinst-ldsoconf-${PN}" + +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 python3,' ${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 --lib-dirs-envvar=GIR_EXTRA_LIBS_PATH --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 python3,' ${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 \ + --disable-static \ + --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)} \ + " + +PACKAGECONFIG ?= "" +PACKAGECONFIG[doctool] = "--enable-doctool,--disable-doctool,python3-mako," + +do_compile_prepend() { + # 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" +FILES_${PN}-dev_append = " ${datadir}/gir-*/*.rnc" + +# 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_DIRS_append_class-target = " ${bindir}" + +SYSROOT_PREPROCESS_FUNCS_append_class-target = " gi_binaries_sysroot_preprocess" +gi_binaries_sysroot_preprocess() { + # Tweak the binary names in the 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 +} + +# Need to ensure ld.so.conf exists so prelink-native works +# both before we build and if we install from sstate +do_configure[prefuncs] += "gobject_introspection_preconfigure" +python gobject_introspection_preconfigure () { + oe.utils.write_ld_so_conf(d) +} + +SYSROOT_PREPROCESS_FUNCS_append = " gi_ldsoconf_sysroot_preprocess" +gi_ldsoconf_sysroot_preprocess () { + mkdir -p ${SYSROOT_DESTDIR}${bindir} + dest=${SYSROOT_DESTDIR}${bindir}/postinst-ldsoconf-${PN} + echo "#!/bin/sh" > $dest + echo "mkdir -p ${STAGING_DIR_TARGET}${sysconfdir}" >> $dest + echo "echo ${base_libdir} >> ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf" >> $dest + echo "echo ${libdir} >> ${STAGING_DIR_TARGET}${sysconfdir}/ld.so.conf" >> $dest + chmod 755 $dest +} + +# Remove wrapper files from the package, only used for cross-compiling +PACKAGE_PREPROCESS_FUNCS += "gi_package_preprocess" +gi_package_preprocess() { + rm -f ${PKGD}${bindir}/g-ir-scanner-qemuwrapper + rm -f ${PKGD}${bindir}/g-ir-scanner-wrapper + rm -f ${PKGD}${bindir}/g-ir-compiler-wrapper + rm -f ${PKGD}${bindir}/g-ir-scanner-lddwrapper +} diff --git a/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.24.1.bb b/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.24.1.bb new file mode 100644 index 000000000..b61fd2408 --- /dev/null +++ b/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.24.1.bb @@ -0,0 +1,13 @@ +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 upstream-version-is-even + +SRC_URI[archive.md5sum] = "796b6ac1eff450261edd521b72e7fe6d" +SRC_URI[archive.sha256sum] = "76a3fa309f9de6074d66848987214f0b128124ba7184c958c15ac78a8ac7eea7" diff --git a/poky/meta/recipes-gnome/gtk+/gtk+.inc b/poky/meta/recipes-gnome/gtk+/gtk+.inc new file mode 100644 index 000000000..558bc485a --- /dev/null +++ b/poky/meta/recipes-gnome/gtk+/gtk+.inc @@ -0,0 +1,103 @@ +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 \ + cairo gdk-pixbuf" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb x11', 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" +PACKAGECONFIG[manpages] = "--enable-man --with-xml-catalog=${STAGING_ETCDIR_NATIVE}/xml/catalog.xml, --disable-man, libxslt-native xmlto-native" + +inherit autotools gtk-doc pkgconfig update-alternatives gtk-immodules-cache gobject-introspection manpages + +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 \ + gnome-theme-adwaita \ + " +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/poky/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch b/poky/meta/recipes-gnome/gtk+/gtk+/doc-fixes.patch new file mode 100644 index 000000000..74e479fd1 --- /dev/null +++ b/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/poky/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch b/poky/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch new file mode 100644 index 000000000..9eb7f6bf5 --- /dev/null +++ b/poky/meta/recipes-gnome/gtk+/gtk+/hardcoded_libtool.patch @@ -0,0 +1,36 @@ +Upstream-Status: Inappropriate [embedded specific] + +Updated to apply to gtk+-2.24.15 + +Signed-off-by: Marko Lindqvist +Index: gtk+-2.24.31/configure.ac +=================================================================== +--- gtk+-2.24.31.orig/configure.ac ++++ gtk+-2.24.31/configure.ac +@@ -415,7 +415,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 +@@ -772,7 +772,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/'` +@@ -1579,7 +1579,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/poky/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch b/poky/meta/recipes-gnome/gtk+/gtk+/strict-prototypes.patch new file mode 100644 index 000000000..96e1f5fea --- /dev/null +++ b/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/poky/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff b/poky/meta/recipes-gnome/gtk+/gtk+/toggle-font.diff new file mode 100644 index 000000000..340d12008 --- /dev/null +++ b/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/poky/meta/recipes-gnome/gtk+/gtk+/xsettings.patch b/poky/meta/recipes-gnome/gtk+/gtk+/xsettings.patch new file mode 100644 index 000000000..d0a970ad4 --- /dev/null +++ b/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/poky/meta/recipes-gnome/gtk+/gtk+3.inc b/poky/meta/recipes-gnome/gtk+/gtk+3.inc new file mode 100644 index 000000000..420ead2ca --- /dev/null +++ b/poky/meta/recipes-gnome/gtk+/gtk+3.inc @@ -0,0 +1,130 @@ +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 \ + gdk-pixbuf-native" + +LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" + +inherit autotools gettext pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings distro_features_check gobject-introspection + +# versions >= 3.90 are development versions, otherwise like upstream-version-is-even +UPSTREAM_CHECK_REGEX = "[^\d\.](?P3\.([1-8]?[02468])+(\.\d+)+)\.tar" + +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 + #delete a file that will get confused with generated one in ${B} + rm -f ${S}/gtk/gtktypefuncs.c +} + +EXTRA_OECONF += " \ + --disable-glibtest \ + --disable-xinerama \ + --enable-modules \ + --disable-cups \ + --disable-colord \ + ${@bb.utils.contains("DISTRO_FEATURES", "x11", "", "--disable-gtk-doc", d)} \ + " + +do_compile_prepend() { + export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs" +} + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl wayland x11', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'glx', '', d)}" + +PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes" +# this is provided by oe-core patch that removes epoxy/gl dependency from a X11 build +PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,libepoxy" +PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,,libgl" +PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland wayland-protocols 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" + +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 \ + ${datadir}/gettext/its \ + ${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 \ + ${bindir}/gtk-query-settings \ + " + +GTKBASE_RRECOMMENDS ?= "liberation-fonts \ + gdk-pixbuf-loader-png \ + gdk-pixbuf-loader-jpeg \ + gdk-pixbuf-loader-gif \ + gdk-pixbuf-loader-xpm \ + shared-mime-info \ + adwaita-icon-theme-symbolic \ + " +GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1" + +RRECOMMENDS_${PN} = "${GTKBASE_RRECOMMENDS}" +RRECOMMENDS_${PN}_libc-glibc = "${GTKGLIBC_RRECOMMENDS}" +RDEPENDS_${PN}-dev += "${@bb.utils.contains("PACKAGECONFIG", "wayland", "wayland-protocols", "", d)}" + +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')): + d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-3.0') +} diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch b/poky/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch new file mode 100644 index 000000000..c210bbc7d --- /dev/null +++ b/poky/meta/recipes-gnome/gtk+/gtk+3/0001-Hardcoded-libtool.patch @@ -0,0 +1,47 @@ +From 0ecaa5bab162abf0cb2057d77beeb7b89d5873b4 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Tue, 21 Jun 2016 14:53:56 +0300 +Subject: [PATCH 1/4] Hardcoded libtool + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Marko Lindqvist +Signed-off-by: Jussi Kukkonen +--- + configure.ac | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 6628e21..f43ac09 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -617,7 +617,7 @@ AC_MSG_CHECKING([whether to write dependencies into .pc files]) + 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 +@@ -895,7 +895,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/'` +@@ -1649,7 +1649,7 @@ AC_SUBST(GTK_PRINT_BACKENDS) + # 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//"` +-- +2.12.0 + diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch b/poky/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch new file mode 100644 index 000000000..cc7edf760 --- /dev/null +++ b/poky/meta/recipes-gnome/gtk+/gtk+3/0002-Do-not-try-to-initialize-GL-without-libGL.patch @@ -0,0 +1,60 @@ +From 23a563155406980dfc8cf6f7c2da6cce0ac310f0 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Fri, 16 Oct 2015 16:35:16 +0300 +Subject: [PATCH 2/4] 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 | 6 ++++++ + gdk/x11/gdkvisual-x11.c | 5 +++++ + 2 files changed, 11 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 757fd7c..0a48875 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -351,6 +351,12 @@ AC_ARG_ENABLE(cloudproviders, + [AS_HELP_STRING([--enable-cloudproviders], + [enable libcloudproviders integration])], + [cloudproviders_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 +diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c +index 81479d8..3c8c5c0 100644 +--- a/gdk/x11/gdkvisual-x11.c ++++ b/gdk/x11/gdkvisual-x11.c +@@ -306,7 +306,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.14.1 + diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch b/poky/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch new file mode 100644 index 000000000..d2f12dc7f --- /dev/null +++ b/poky/meta/recipes-gnome/gtk+/gtk+3/0003-Add-disable-opengl-configure-option.patch @@ -0,0 +1,847 @@ +From de36df70d87ba3453ed4f2b92e990021c67238f5 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Tue, 21 Jun 2016 15:11:39 +0300 +Subject: [PATCH 3/4] Add --disable-opengl configure option + +--disable-opengl will remove the dependency on libepoxy and on the +OpenGL APIs. This is useful for those who want to keep using gtk+3 +without the "opengl" distro feature. + +GtkGLArea is still part of the API (it just doesn't work) even when +OpenGL is disabled. GdkX11GLContext was removed from the Gtk API +completely: that object exposes GL API elements so it had to be at +the very least modified. + +The patch is _not_ great from a maintenance point of view and +modifying the library API is also a fairly nasty thing to do. +Next long term release (4.0) will require alternative solutions +as it actually will depend on OpenGL. + +Upstream-Status: Inappropriate [Evil eye expected from upstream] +Signed-off-by: Jussi Kukkonen + +--- + configure.ac | 13 +++++-- + demos/gtk-demo/glarea.c | 14 ++++++++ + docs/tools/Makefile.am | 9 +++-- + docs/tools/widgets.c | 4 ++- + gdk/gdkdisplay.c | 4 ++- + gdk/gdkgl.c | 10 ++++++ + gdk/gdkglcontext.c | 6 ++++ + gdk/gdkwindow.c | 13 +++++++ + gdk/x11/Makefile.am | 30 +++++++++++++--- + gdk/x11/gdkdisplay-x11.c | 6 +++- + gdk/x11/gdkscreen-x11.c | 5 +++ + gdk/x11/gdkwindow-x11.c | 4 +++ + gdk/x11/gdkx-autocleanups.h | 2 ++ + gdk/x11/{gdkx.h => gdkx-with-gl-context.h} | 1 - + gdk/x11/gdkx-without-gl-context.h | 58 ++++++++++++++++++++++++++++++ + gtk/Makefile.am | 3 +- + gtk/gtkglarea.c | 20 ++++++++++- + gtk/inspector/general.c | 6 ++++ + tests/Makefile.am | 10 ++++-- + testsuite/gtk/objects-finalize.c | 2 ++ + 20 files changed, 202 insertions(+), 18 deletions(-) + rename gdk/x11/{gdkx.h => gdkx-with-gl-context.h} (98%) + create mode 100644 gdk/x11/gdkx-without-gl-context.h + +diff --git a/configure.ac b/configure.ac +index 0a48875..6f0a3a6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -351,6 +351,15 @@ AC_ARG_ENABLE(cloudproviders, + [AS_HELP_STRING([--enable-cloudproviders], + [enable libcloudproviders integration])], + [cloudproviders_set=yes]) ++AC_ARG_ENABLE(opengl, ++ [AS_HELP_STRING([--enable-opengl], ++ [When enabled, Gtk+ will use libepoxy and exposes GtkGLArea widget ])]) ++AS_IF([test "x$enable_opengl" != "xno"], [ ++ AC_DEFINE([HAVE_OPENGL], [1], [libepoxy and opengl APIs are available at buildtime]) ++ EPOXY_PACKAGES="epoxy >= epoxy_required_version" ++]) ++AM_CONDITIONAL([HAVE_OPENGL],[test "x$enable_opengl" != "xno"]) ++ + AC_ARG_ENABLE(glx, + [AS_HELP_STRING([--enable-glx], + [When enabled Gdk will try to initialize GLX])]) +@@ -1372,7 +1381,7 @@ CFLAGS="$saved_cflags" + LDFLAGS="$saved_ldflags" + + GDK_PACKAGES="$PANGO_PACKAGES gdk-pixbuf-2.0 >= gdk_pixbuf_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version" +-GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $cairo_backends epoxy >= epoxy_required_version $CLOUDPROVIDER_PACKAGES" ++GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $cairo_backends $EPOXY_PACKAGES $CLOUDPROVIDER_PACKAGES" + + PKG_CHECK_MODULES(GDK_DEP, $GDK_PACKAGES $GDK_PRIVATE_PACKAGES) + GDK_DEP_LIBS="$GDK_EXTRA_LIBS $GDK_DEP_LIBS $MATH_LIB" +@@ -1406,7 +1415,7 @@ fi + PKG_CHECK_MODULES(ATK, $ATK_PACKAGES) + + GTK_PACKAGES="atk >= atk_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version gdk-pixbuf-2.0 >= gdk_pixbuf_required_version gio-2.0 >= glib_required_version" +-GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES epoxy >= epoxy_required_version" ++GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $EPOXY_PACKAGES" + if test "x$enable_x11_backend" = xyes -o "x$enable_wayland_backend" = xyes; then + GTK_PRIVATE_PACKAGES="$GTK_PRIVATE_PACKAGES pangoft2" + fi +diff --git a/demos/gtk-demo/glarea.c b/demos/gtk-demo/glarea.c +index b51e4ae..82409c7 100644 +--- a/demos/gtk-demo/glarea.c ++++ b/demos/gtk-demo/glarea.c +@@ -3,9 +3,12 @@ + * GtkGLArea is a widget that allows custom drawing using OpenGL calls. + */ + ++#include "config.h" + #include + #include ++#if HAVE_OPENGL + #include ++#endif + + static GtkWidget *demo_window = NULL; + +@@ -23,6 +26,8 @@ enum { + /* Rotation angles on each axis */ + static float rotation_angles[N_AXIS] = { 0.0 }; + ++#ifdef HAVE_OPENGL ++ + /* The object we are drawing */ + static const GLfloat vertex_data[] = { + 0.f, 0.5f, 0.f, 1.f, +@@ -215,6 +220,7 @@ compute_mvp (float *res, + static GLuint position_buffer; + static GLuint program; + static GLuint mvp_location; ++#endif + + /* We need to set up our state when we realize the GtkGLArea widget */ + static void +@@ -241,8 +247,10 @@ realize (GtkWidget *widget) + fragment_path = "/glarea/glarea-gl.fs.glsl"; + } + ++#ifdef HAVE_OPENGL + init_buffers (&position_buffer, NULL); + init_shaders (vertex_path, fragment_path, &program, &mvp_location); ++#endif + } + + /* We should tear down the state when unrealizing */ +@@ -254,10 +262,13 @@ unrealize (GtkWidget *widget) + if (gtk_gl_area_get_error (GTK_GL_AREA (widget)) != NULL) + return; + ++#ifdef HAVE_OPENGL + glDeleteBuffers (1, &position_buffer); + glDeleteProgram (program); ++#endif + } + ++#ifdef HAVE_OPENGL + static void + draw_triangle (void) + { +@@ -290,6 +301,7 @@ draw_triangle (void) + glBindBuffer (GL_ARRAY_BUFFER, 0); + glUseProgram (0); + } ++#endif + + static gboolean + render (GtkGLArea *area, +@@ -298,6 +310,7 @@ render (GtkGLArea *area, + if (gtk_gl_area_get_error (area) != NULL) + return FALSE; + ++#ifdef HAVE_OPENGL + /* Clear the viewport */ + glClearColor (0.5, 0.5, 0.5, 1.0); + glClear (GL_COLOR_BUFFER_BIT); +@@ -307,6 +320,7 @@ render (GtkGLArea *area, + + /* Flush the contents of the pipeline */ + glFlush (); ++#endif + + return TRUE; + } +diff --git a/docs/tools/Makefile.am b/docs/tools/Makefile.am +index 6a6d70f..5cdf312 100644 +--- a/docs/tools/Makefile.am ++++ b/docs/tools/Makefile.am +@@ -9,13 +9,18 @@ AM_CPPFLAGS = \ + $(GTK_DEBUG_FLAGS) \ + $(GTK_DEP_CFLAGS) + ++if HAVE_OPENGL ++GEARS_LDADD = $(top_builddir)/tests/gtkgears.o ++endif ++ + DEPS = \ +- $(top_builddir)/gtk/libgtk-3.la ++ $(top_builddir)/gtk/libgtk-3.la \ ++ $(GEARS_LDADD) + + LDADDS = \ + $(top_builddir)/gtk/libgtk-3.la \ + $(top_builddir)/gdk/libgdk-3.la \ +- $(top_builddir)/tests/gtkgears.o \ ++ $(GEARS_LDADD) \ + $(GTK_DEP_LIBS) \ + $(GDK_DEP_LIBS) \ + -lm +diff --git a/docs/tools/widgets.c b/docs/tools/widgets.c +index 932daf1..54239d6 100644 +--- a/docs/tools/widgets.c ++++ b/docs/tools/widgets.c +@@ -1526,9 +1526,11 @@ create_gl_area (void) + widget = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN); + ++#ifdef HAVE_OPENGL + gears = gtk_gears_new (); + gtk_container_add (GTK_CONTAINER (widget), gears); +- ++#endif ++ + info = new_widget_info ("glarea", widget, MEDIUM); + + return info; +diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c +index 40225e9..c55e1de 100644 +--- a/gdk/gdkdisplay.c ++++ b/gdk/gdkdisplay.c +@@ -2406,7 +2406,9 @@ gboolean + gdk_display_make_gl_context_current (GdkDisplay *display, + GdkGLContext *context) + { +- return GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current (display, context); ++ if (GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current) ++ return GDK_DISPLAY_GET_CLASS (display)->make_gl_context_current (display, context); ++ return FALSE; + } + + GdkRenderingMode +diff --git a/gdk/gdkgl.c b/gdk/gdkgl.c +index 8e7b8c2..b579b22 100644 +--- a/gdk/gdkgl.c ++++ b/gdk/gdkgl.c +@@ -22,7 +22,9 @@ + + #include "gdkinternals.h" + ++#ifdef HAVE_OPENGL + #include ++#endif + #include + #include + +@@ -36,6 +38,7 @@ gdk_cairo_surface_mark_as_direct (cairo_surface_t *surface, + g_object_ref (window), g_object_unref); + } + ++#ifdef HAVE_OPENGL + static const char * + get_vertex_type_name (int type) + { +@@ -208,6 +211,7 @@ use_texture_rect_program (GdkGLContextPaintData *paint_data) + glUseProgram (paint_data->current_program->program); + } + } ++#endif + + void + gdk_gl_texture_quads (GdkGLContext *paint_context, +@@ -216,6 +220,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context, + GdkTexturedQuad *quads, + gboolean flip_colors) + { ++#ifdef HAVE_OPENGL + GdkGLContextPaintData *paint_data = gdk_gl_context_get_paint_data (paint_context); + GdkGLContextProgram *program; + GdkWindow *window = gdk_gl_context_get_window (paint_context); +@@ -289,6 +294,7 @@ gdk_gl_texture_quads (GdkGLContext *paint_context, + + glDisableVertexAttribArray (program->position_location); + glDisableVertexAttribArray (program->uv_location); ++#endif + } + + /* x,y,width,height describes a rectangle in the gl render buffer +@@ -337,6 +343,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr, + int width, + int height) + { ++#ifdef HAVE_OPENGL + GdkGLContext *paint_context; + cairo_surface_t *image; + cairo_matrix_t matrix; +@@ -707,6 +714,7 @@ out: + if (clip_region) + cairo_region_destroy (clip_region); + ++#endif + } + + /* This is always called with the paint context current */ +@@ -714,6 +722,7 @@ void + gdk_gl_texture_from_surface (cairo_surface_t *surface, + cairo_region_t *region) + { ++#ifdef HAVE_OPENGL + GdkGLContext *paint_context; + cairo_surface_t *image; + double device_x_offset, device_y_offset; +@@ -814,4 +823,5 @@ gdk_gl_texture_from_surface (cairo_surface_t *surface, + + glDisable (GL_SCISSOR_TEST); + glDeleteTextures (1, &texture_id); ++#endif + } +diff --git a/gdk/gdkglcontext.c b/gdk/gdkglcontext.c +index c79dca0..8a7bec2 100644 +--- a/gdk/gdkglcontext.c ++++ b/gdk/gdkglcontext.c +@@ -85,7 +85,9 @@ + #include "gdkintl.h" + #include "gdk-private.h" + ++#ifdef HAVE_OPENGL + #include ++#endif + + typedef struct { + GdkDisplay *display; +@@ -243,6 +245,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context, + int height, + guint texture_target) + { ++#ifdef HAVE_OPENGL + GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context); + + g_return_if_fail (GDK_IS_GL_CONTEXT (context)); +@@ -286,6 +289,7 @@ gdk_gl_context_upload_texture (GdkGLContext *context, + glTexSubImage2D (texture_target, 0, 0, i, width, 1, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, (unsigned char*) data + (i * stride)); + } + } ++#endif + } + + static gboolean +@@ -774,6 +778,7 @@ gdk_gl_context_realize (GdkGLContext *context, + static void + gdk_gl_context_check_extensions (GdkGLContext *context) + { ++#ifdef HAVE_OPENGL + GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context); + gboolean has_npot, has_texture_rectangle; + +@@ -847,6 +852,7 @@ gdk_gl_context_check_extensions (GdkGLContext *context) + priv->use_texture_rectangle ? "yes" : "no")); + + priv->extensions_checked = TRUE; ++#endif + } + + /** +diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c +index c0e0a7d..437ab03 100644 +--- a/gdk/gdkwindow.c ++++ b/gdk/gdkwindow.c +@@ -45,7 +45,9 @@ + + #include + ++#ifdef HAVE_OPENGL + #include ++#endif + + /* for the use of round() */ + #include "fallback-c89.c" +@@ -2822,6 +2824,13 @@ gdk_window_get_paint_gl_context (GdkWindow *window, + { + GError *internal_error = NULL; + ++#ifndef HAVE_OPENGL ++ g_set_error_literal (error, GDK_GL_ERROR, ++ GDK_GL_ERROR_NOT_AVAILABLE, ++ _("GL support disabled with --disable-opengl")); ++ return NULL; ++#endif ++ + if (_gdk_gl_flags & GDK_GL_DISABLE) + { + g_set_error_literal (error, GDK_GL_ERROR, +@@ -2957,6 +2966,7 @@ gdk_window_begin_paint_internal (GdkWindow *window, + } + else + { ++#ifdef HAVE_OPENGL + gdk_gl_context_make_current (context); + /* With gl we always need a surface to combine the gl + drawing with the native drawing. */ +@@ -2971,6 +2981,7 @@ gdk_window_begin_paint_internal (GdkWindow *window, + glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA); + + glViewport (0, 0, ww, wh); ++#endif + } + } + +@@ -3034,6 +3045,7 @@ gdk_window_end_paint_internal (GdkWindow *window) + + gdk_gl_context_make_current (window->gl_paint_context); + ++#ifdef HAVE_OPENGL + if (!cairo_region_is_empty (opaque_region)) + gdk_gl_texture_from_surface (window->current_paint.surface, + opaque_region); +@@ -3044,6 +3056,7 @@ gdk_window_end_paint_internal (GdkWindow *window) + window->current_paint.need_blend_region); + glDisable(GL_BLEND); + } ++#endif + + cairo_region_destroy (opaque_region); + +diff --git a/gdk/x11/Makefile.am b/gdk/x11/Makefile.am +index 6289f3a..cbbac79 100644 +--- a/gdk/x11/Makefile.am ++++ b/gdk/x11/Makefile.am +@@ -40,8 +40,6 @@ libgdk_x11_la_SOURCES = \ + gdkeventtranslator.c \ + gdkeventtranslator.h \ + gdkgeometry-x11.c \ +- gdkglcontext-x11.c \ +- gdkglcontext-x11.h \ + gdkkeys-x11.c \ + gdkmain-x11.c \ + gdkmonitor-x11.c \ +@@ -56,14 +54,32 @@ libgdk_x11_la_SOURCES = \ + gdkwindow-x11.h \ + gdkxftdefaults.c \ + gdkxid.c \ +- gdkx.h \ + gdkprivate-x11.h \ + xsettings-client.h \ + xsettings-client.c + ++if HAVE_OPENGL ++libgdk_x11_la_SOURCES += \ ++ gdkglcontext-x11.c \ ++ gdkglcontext-x11.h ++endif ++ + libgdkinclude_HEADERS = \ + gdkx.h + ++if HAVE_OPENGL ++GDKX_HEADER = gdkx-with-gl-context.h ++else ++GDKX_HEADER = gdkx-without-gl-context.h ++endif ++ ++BUILT_SOURCES = gdkx.h ++ ++.PHONY: gdkx.h ++gdkx.h: ++ $(AM_V_GEN) cd $(srcdir) \ ++ && (cmp -s $(GDKX_HEADER) gdkx.h || cp $(GDKX_HEADER) gdkx.h ) ++ + libgdkx11include_HEADERS = \ + gdkx-autocleanups.h \ + gdkx11applaunchcontext.h \ +@@ -77,7 +93,6 @@ libgdkx11include_HEADERS = \ + gdkx11display.h \ + gdkx11displaymanager.h \ + gdkx11dnd.h \ +- gdkx11glcontext.h \ + gdkx11keys.h \ + gdkx11monitor.h \ + gdkx11property.h \ +@@ -87,9 +102,16 @@ libgdkx11include_HEADERS = \ + gdkx11visual.h \ + gdkx11window.h + ++if HAVE_OPENGL ++libgdkx11include_HEADERS += gdkx11glcontext.h ++endif ++ + # We need to include all these C files here since the conditionals + # don't seem to be correctly expanded for the dist files. + EXTRA_DIST += \ ++ gdkx.h \ + gdksettings.c + ++MAINTAINERCLEANFILES = gdkx.h ++ + -include $(top_srcdir)/git.mk +diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c +index e9a263f..2829a31 100644 +--- a/gdk/x11/gdkdisplay-x11.c ++++ b/gdk/x11/gdkdisplay-x11.c +@@ -37,7 +37,9 @@ + #include "gdkdisplay-x11.h" + #include "gdkprivate-x11.h" + #include "gdkscreen-x11.h" ++#ifdef HAVE_OPENGL + #include "gdkglcontext-x11.h" ++#endif + #include "gdk-private.h" + + #include +@@ -3169,7 +3171,9 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class) + display_class->text_property_to_utf8_list = _gdk_x11_display_text_property_to_utf8_list; + display_class->utf8_to_string_target = _gdk_x11_display_utf8_to_string_target; + +- display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current; ++#ifdef HAVE_OPENGL ++ display_class->make_gl_context_current = gdk_x11_display_make_gl_context_current; ++#endif + + display_class->get_default_seat = gdk_x11_display_get_default_seat; + +diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c +index 7bf9979..cd1cc9d 100644 +--- a/gdk/x11/gdkscreen-x11.c ++++ b/gdk/x11/gdkscreen-x11.c +@@ -1643,3 +1643,8 @@ gdk_x11_screen_get_current_desktop (GdkScreen *screen) + { + return get_netwm_cardinal_property (screen, "_NET_CURRENT_DESKTOP"); + } ++ ++#ifndef HAVE_OPENGL ++/* Function from in gdk/x11/gdkglcontext-x11.c */ ++void _gdk_x11_screen_update_visuals_for_gl (GdkScreen *screen) {} ++#endif +diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c +index 3d6fd3b..2bd5c87 100644 +--- a/gdk/x11/gdkwindow-x11.c ++++ b/gdk/x11/gdkwindow-x11.c +@@ -36,7 +36,9 @@ + #include "gdkasync.h" + #include "gdkeventsource.h" + #include "gdkdisplay-x11.h" ++#ifdef HAVE_OPENGL + #include "gdkglcontext-x11.h" ++#endif + #include "gdkprivate-x11.h" + #include "gdk-private.h" + +@@ -5801,7 +5803,9 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass) + impl_class->set_opaque_region = gdk_x11_window_set_opaque_region; + impl_class->set_shadow_width = gdk_x11_window_set_shadow_width; + impl_class->show_window_menu = gdk_x11_window_show_window_menu; ++#ifdef HAVE_OPENGL + impl_class->create_gl_context = gdk_x11_window_create_gl_context; + impl_class->invalidate_for_new_frame = gdk_x11_window_invalidate_for_new_frame; ++#endif + impl_class->get_unscaled_size = gdk_x11_window_get_unscaled_size; + } +diff --git a/gdk/x11/gdkx-autocleanups.h b/gdk/x11/gdkx-autocleanups.h +index edb0ea7..a317d61 100644 +--- a/gdk/x11/gdkx-autocleanups.h ++++ b/gdk/x11/gdkx-autocleanups.h +@@ -30,7 +30,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DeviceXI2, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Display, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DisplayManager, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11DragContext, g_object_unref) ++#ifdef HAVE_OPENGL + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11GLContext, g_object_unref) ++#endif + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Keymap, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Screen, g_object_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkX11Visual, g_object_unref) +diff --git a/gdk/x11/gdkx.h b/gdk/x11/gdkx-with-gl-context.h +similarity index 98% +rename from gdk/x11/gdkx.h +rename to gdk/x11/gdkx-with-gl-context.h +index 1f64bcc..ae05fa6 100644 +--- a/gdk/x11/gdkx.h ++++ b/gdk/x11/gdkx-with-gl-context.h +@@ -45,7 +45,6 @@ + #include + #include + #include +-#include + #include + #include + #include +diff --git a/gdk/x11/gdkx-without-gl-context.h b/gdk/x11/gdkx-without-gl-context.h +new file mode 100644 +index 0000000..c9e2617 +--- /dev/null ++++ b/gdk/x11/gdkx-without-gl-context.h +@@ -0,0 +1,58 @@ ++/* GDK - The GIMP Drawing Kit ++ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library. If not, see . ++ */ ++ ++/* ++ * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS ++ * file for a list of people on the GTK+ Team. See the ChangeLog ++ * files for a list of changes. These files are distributed with ++ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. ++ */ ++ ++#ifndef __GDK_X_H__ ++#define __GDK_X_H__ ++ ++#include ++ ++#include ++#include ++ ++#define __GDKX_H_INSIDE__ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#undef __GDKX_H_INSIDE__ ++ ++#endif /* __GDK_X_H__ */ +diff --git a/gtk/Makefile.am b/gtk/Makefile.am +index 842c2f9..0921bc7 100644 +--- a/gtk/Makefile.am ++++ b/gtk/Makefile.am +@@ -1416,14 +1416,13 @@ gtkprivatetypebuiltins.c: $(gtk_private_type_h_sources) gtkprivatetypebuiltins. + && cp xgen-gptbc gtkprivatetypebuiltins.c \ + && rm -f xgen-gptbc + +- + gtktypefuncs.c: stamp-gtktypebuiltins.h stamp-gtkprivatetypebuiltins.h $(top_srcdir)/gtk/*.h $(top_srcdir)/gtk/a11y/*.h $(top_srcdir)/gtk/deprecated/*.h $(top_srcdir)/gdk/*.h Makefile + $(AM_V_GEN) (echo '#undef GTK_COMPILATION' && echo '#include ') > xgen-gtfsrc.c && \ + echo 'G_GNUC_BEGIN_IGNORE_DEPRECATIONS' > xgen-gtf && \ + ${CPP} $(DEFS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) xgen-gtfsrc.c | \ + $(GREP) -o '\bg[td]k_[a-zA-Z0-9_]*_get_type\b' | \ + sort | uniq | \ +- $(SED) '{ s/^/*tp++ = /; s/$$/();/; s/^.*\(gdk_x11\|gtk_plug_\|gtk_socket_\).*$$/#ifdef GDK_WINDOWING_X11\n&\n#endif/; }' >> xgen-gtf \ ++ $(SED) '{ s/^/*tp++ = /; s/$$/();/; s/^.*\(gdk_x11\|gtk_plug_\|gtk_socket_\).*$$/#ifdef GDK_WINDOWING_X11\n&\n#endif/; s/^.*gdk_x11_gl.*$$/#ifdef HAVE_OPENGL\n&\n#endif/; }' >> xgen-gtf \ + && cp xgen-gtf $@ && rm -f xgen-gtf + gtktestutils.c: gtktypefuncs.c + +diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c +index 094378e..f7c7f47 100644 +--- a/gtk/gtkglarea.c ++++ b/gtk/gtkglarea.c +@@ -28,7 +28,9 @@ + #include "gtkprivate.h" + #include "gtkrender.h" + ++#ifdef HAVE_OPENGL + #include ++#endif + + /** + * SECTION:gtkglarea +@@ -368,9 +370,12 @@ gtk_gl_area_real_create_context (GtkGLArea *area) + static void + gtk_gl_area_resize (GtkGLArea *area, int width, int height) + { ++#ifdef HAVE_OPENGL + glViewport (0, 0, width, height); ++#endif + } + ++#ifdef HAVE_OPENGL + /* + * Creates all the buffer objects needed for rendering the scene + */ +@@ -482,6 +487,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area) + + priv->needs_render = TRUE; + } ++#endif + + /** + * gtk_gl_area_attach_buffers: +@@ -500,6 +506,7 @@ gtk_gl_area_allocate_buffers (GtkGLArea *area) + void + gtk_gl_area_attach_buffers (GtkGLArea *area) + { ++#ifdef HAVE_OPENGL + GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); + + g_return_if_fail (GTK_IS_GL_AREA (area)); +@@ -532,11 +539,13 @@ gtk_gl_area_attach_buffers (GtkGLArea *area) + glFramebufferRenderbufferEXT (GL_FRAMEBUFFER_EXT, GL_STENCIL_ATTACHMENT_EXT, + GL_RENDERBUFFER_EXT, priv->depth_stencil_buffer); + } ++#endif + } + + static void + gtk_gl_area_delete_buffers (GtkGLArea *area) + { ++#ifdef HAVE_OPENGL + GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); + + if (priv->context == NULL) +@@ -568,6 +577,7 @@ gtk_gl_area_delete_buffers (GtkGLArea *area) + glDeleteFramebuffersEXT (1, &priv->frame_buffer); + priv->frame_buffer = 0; + } ++#endif + } + + static void +@@ -678,6 +688,7 @@ gtk_gl_area_draw (GtkWidget *widget, + GtkGLArea *area = GTK_GL_AREA (widget); + GtkGLAreaPrivate *priv = gtk_gl_area_get_instance_private (area); + gboolean unused; ++#ifdef HAVE_OPENGL + int w, h, scale; + GLenum status; + +@@ -689,7 +700,6 @@ gtk_gl_area_draw (GtkWidget *widget, + gtk_widget_get_allocated_height (widget)); + return FALSE; + } +- + if (priv->context == NULL) + return FALSE; + +@@ -735,6 +745,14 @@ gtk_gl_area_draw (GtkWidget *widget, + } + + return TRUE; ++#else ++ if (priv->error != NULL) ++ gtk_gl_area_draw_error_screen (area, ++ cr, ++ gtk_widget_get_allocated_width (widget), ++ gtk_widget_get_allocated_height (widget)); ++ return FALSE; ++#endif + } + + static gboolean +diff --git a/gtk/inspector/general.c b/gtk/inspector/general.c +index c241ec8..24576dd 100644 +--- a/gtk/inspector/general.c ++++ b/gtk/inspector/general.c +@@ -33,8 +33,10 @@ + + #ifdef GDK_WINDOWING_X11 + #include "x11/gdkx.h" ++#ifdef HAVE_OPENGL + #include + #endif ++#endif + + #ifdef GDK_WINDOWING_WIN32 + #include "win32/gdkwin32.h" +@@ -196,6 +198,7 @@ add_label_row (GtkInspectorGeneral *gen, + gtk_size_group_add_widget (GTK_SIZE_GROUP (gen->priv->labels), label); + } + ++#ifdef HAVE_OPENGL + #ifdef GDK_WINDOWING_X11 + static void + append_glx_extension_row (GtkInspectorGeneral *gen, +@@ -205,6 +208,7 @@ append_glx_extension_row (GtkInspectorGeneral *gen, + add_check_row (gen, GTK_LIST_BOX (gen->priv->gl_box), ext, epoxy_has_glx_extension (dpy, 0, ext), 0); + } + #endif ++#endif + + #ifdef GDK_WINDOWING_WAYLAND + static void +@@ -254,6 +258,7 @@ wayland_get_display (struct wl_display *wl_display) + static void + init_gl (GtkInspectorGeneral *gen) + { ++#ifdef HAVE_OPENGL + #ifdef GDK_WINDOWING_X11 + if (GDK_IS_X11_DISPLAY (gdk_display_get_default ())) + { +@@ -280,6 +285,7 @@ init_gl (GtkInspectorGeneral *gen) + } + else + #endif ++#endif + #ifdef GDK_WINDOWING_WAYLAND + if (GDK_IS_WAYLAND_DISPLAY (gdk_display_get_default ())) + { +diff --git a/tests/Makefile.am b/tests/Makefile.am +index e2db6e4..e51cf34 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -80,8 +80,6 @@ noinst_PROGRAMS = $(TEST_PROGS) \ + testfullscreen \ + testgeometry \ + testgiconpixbuf \ +- testglarea \ +- testglblending \ + testgrid \ + testgtk \ + testheaderbar \ +@@ -170,12 +168,18 @@ noinst_PROGRAMS = $(TEST_PROGS) \ + testactionbar \ + testwindowsize \ + testpopover \ +- gdkgears \ + listmodel \ + testpopup \ + testpopupat \ + $(NULL) + ++if HAVE_OPENGL ++noinst_PROGRAMS += ++ testglarea \ ++ testglblending \ ++ gdkgears ++endif ++ + if USE_WAYLAND + noinst_PROGRAMS += testforeign + endif +diff --git a/testsuite/gtk/objects-finalize.c b/testsuite/gtk/objects-finalize.c +index 0b3a519..07b096f 100644 +--- a/testsuite/gtk/objects-finalize.c ++++ b/testsuite/gtk/objects-finalize.c +@@ -115,7 +115,9 @@ main (int argc, char **argv) + all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_CORE && + all_types[i] != GDK_TYPE_X11_DEVICE_MANAGER_XI2 && + all_types[i] != GDK_TYPE_X11_DISPLAY_MANAGER && ++#ifdef HAVE_OPENGL + all_types[i] != GDK_TYPE_X11_GL_CONTEXT && ++#endif + #endif + /* Not allowed to finalize a GdkPixbufLoader without calling gdk_pixbuf_loader_close() */ + all_types[i] != GDK_TYPE_PIXBUF_LOADER && +-- +2.14.1 + diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3_3.22.28.bb b/poky/meta/recipes-gnome/gtk+/gtk+3_3.22.28.bb new file mode 100644 index 000000000..864e8260c --- /dev/null +++ b/poky/meta/recipes-gnome/gtk+/gtk+3_3.22.28.bb @@ -0,0 +1,18 @@ +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://0001-Hardcoded-libtool.patch \ + file://0002-Do-not-try-to-initialize-GL-without-libGL.patch \ + file://0003-Add-disable-opengl-configure-option.patch \ + " +SRC_URI[md5sum] = "8c1f5ab987ddc7dab3e59660f89dcd9b" +SRC_URI[sha256sum] = "d299612b018cfed7b2c689168ab52b668023708e17c335eb592260d186f15e1f" + +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/poky/meta/recipes-gnome/gtk+/gtk+_2.24.32.bb b/poky/meta/recipes-gnome/gtk+/gtk+_2.24.32.bb new file mode 100644 index 000000000..20703588c --- /dev/null +++ b/poky/meta/recipes-gnome/gtk+/gtk+_2.24.32.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] = "d5742aa42275203a499b59b4c382a784" +SRC_URI[sha256sum] = "b6c8a93ddda5eabe3bfee1eb39636c9a03d2a56c7b62828b359bf197943c582e" + +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')): + d.setVar(d.expand('PKG_${PN}'), '${MLPREFIX}libgtk-2.0') +} diff --git a/poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.22.28.bb b/poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.22.28.bb new file mode 100644 index 000000000..942c04717 --- /dev/null +++ b/poky/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.22.28.bb @@ -0,0 +1,63 @@ +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] = "8c1f5ab987ddc7dab3e59660f89dcd9b" +SRC_URI[sha256sum] = "d299612b018cfed7b2c689168ab52b668023708e17c335eb592260d186f15e1f" + +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 + +# versions >= 3.90 are development versions, otherwise like upstream-version-is-even +UPSTREAM_CHECK_REGEX = "[^\d\.](?P3\.([1-8]?[02468])+(\.\d+)+)\.tar" + +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/poky/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch b/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/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/poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-xsltproc-is-not-found.patch b/poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-xsltproc-is-not-found.patch new file mode 100644 index 000000000..99ae4d441 --- /dev/null +++ b/poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-error-out-if-xsltproc-is-not-found.patch @@ -0,0 +1,31 @@ +From 8b7fbbb405959f2868ad6eadd7dd00018758a8a5 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 7 Sep 2016 14:52:04 +0300 +Subject: [PATCH] Do not error out if xsltproc is not found. + +This allows us to drop the hard xsltproc dependency, if we're not +going to actually run the gtkdoc scripts (when api documentation is +disabled). + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index b0c88d7..2a61d6e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -58,7 +58,7 @@ dnl Check for xsltproc + dnl + AC_PATH_PROG([XSLTPROC], [xsltproc]) + if test -z "$XSLTPROC"; then +- AC_MSG_ERROR([xsltproc not found]) ++ AC_MSG_WARN([xsltproc not found]) + fi + + dnl +-- +2.9.3 + diff --git a/poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch b/poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch new file mode 100644 index 000000000..2fe3ab922 --- /dev/null +++ b/poky/meta/recipes-gnome/gtk-doc/files/0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch @@ -0,0 +1,142 @@ +From 928102874bc2339a1d57c6b178877e0c6002cb3a Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Wed, 31 Aug 2016 16:44:46 +0300 +Subject: [PATCH 1/3] Do not hardocode paths to perl/python in scripts. + +Doing so when the interpreters are somewhere deep in a sysroot directory +can reach the shebang line limit, and resulting scripts wouldn't work +on targets either. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Alexander Kanavin + +--- + gtkdoc-check.in | 2 +- + gtkdoc-depscan.in | 2 +- + gtkdoc-fixxref.in | 2 +- + gtkdoc-mkdb.in | 2 +- + gtkdoc-mkhtml.in | 2 +- + gtkdoc-mkman.in | 2 +- + gtkdoc-mkpdf.in | 2 +- + gtkdoc-rebase.in | 2 +- + gtkdoc-scan.in | 2 +- + gtkdoc-scangobj.in | 2 +- + tests/tools.sh.in | 2 +- + 11 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/gtkdoc-check.in b/gtkdoc-check.in +index 8c8e917..f6a25f6 100755 +--- a/gtkdoc-check.in ++++ b/gtkdoc-check.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python; coding: utf-8 -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-depscan.in b/gtkdoc-depscan.in +index 9bfaf30..aadc952 100644 +--- a/gtkdoc-depscan.in ++++ b/gtkdoc-depscan.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + + from __future__ import print_function + +diff --git a/gtkdoc-fixxref.in b/gtkdoc-fixxref.in +index 0ea02d4..bdd443a 100755 +--- a/gtkdoc-fixxref.in ++++ b/gtkdoc-fixxref.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-mkdb.in b/gtkdoc-mkdb.in +index 42d5731..3a56d56 100755 +--- a/gtkdoc-mkdb.in ++++ b/gtkdoc-mkdb.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python; coding: utf-8 -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-mkhtml.in b/gtkdoc-mkhtml.in +index 0d0a15d..914ff55 100644 +--- a/gtkdoc-mkhtml.in ++++ b/gtkdoc-mkhtml.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python; coding: utf-8 -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-mkman.in b/gtkdoc-mkman.in +index c5445cd..65db71a 100644 +--- a/gtkdoc-mkman.in ++++ b/gtkdoc-mkman.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python; coding: utf-8 -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-mkpdf.in b/gtkdoc-mkpdf.in +index e8c0c03..f807236 100755 +--- a/gtkdoc-mkpdf.in ++++ b/gtkdoc-mkpdf.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python; coding: utf-8 -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-rebase.in b/gtkdoc-rebase.in +index 17a71c2..ec3fd28 100755 +--- a/gtkdoc-rebase.in ++++ b/gtkdoc-rebase.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-scan.in b/gtkdoc-scan.in +index 954c811..f461504 100755 +--- a/gtkdoc-scan.in ++++ b/gtkdoc-scan.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/gtkdoc-scangobj.in b/gtkdoc-scangobj.in +index 4cbe130..52c2c24 100644 +--- a/gtkdoc-scangobj.in ++++ b/gtkdoc-scangobj.in +@@ -1,4 +1,4 @@ +-#!@PYTHON@ ++#!/usr/bin/env python3 + # -*- python -*- + # + # gtk-doc - GTK DocBook documentation generator. +diff --git a/tests/tools.sh.in b/tests/tools.sh.in +index 4d301d0..565fc1e 100644 +--- a/tests/tools.sh.in ++++ b/tests/tools.sh.in +@@ -31,7 +31,7 @@ done + # TODO: test python 2 and 3 (python3 -mcompileall gtkdoc/*.py) + for file in gtkdoc-check gtkdoc-depscan gtkdoc-fixxref gtkdoc-mkdb gtkdoc-mkhtml gtkdoc-mkman gtkdoc-mkpdf gtkdoc-rebase gtkdoc-scangobj; do + fullfile=`which $file` +- @PYTHON@ -m py_compile $fullfile ++ python3 -m py_compile $fullfile + if test $? != 0 ; then failed=`expr $failed + 1`; fi + tested=`expr $tested + 1` + done +-- +2.14.1 + diff --git a/poky/meta/recipes-gnome/gtk-doc/files/conditionaltests.patch b/poky/meta/recipes-gnome/gtk-doc/files/conditionaltests.patch new file mode 100644 index 000000000..21c2db782 --- /dev/null +++ b/poky/meta/recipes-gnome/gtk-doc/files/conditionaltests.patch @@ -0,0 +1,46 @@ +From 78bbf185934147a69ceb4b617d424e12e70997bf Mon Sep 17 00:00:00 2001 +From: Richard Purdie +Date: Tue, 27 Jun 2017 21:00:58 +0100 +Subject: [PATCH 3/3] gtk-doc: Handle floating gtk-doc dependency + +Allow the tests to be explicitly disabled to avoid floating dependnecy +issues. This is not really an issue with RSS but is on previous releases. + +RP 2017/6/27 +Upstream-Status: Pending + +--- + configure.ac | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 684e2d1..e5e3aab 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -146,6 +146,11 @@ if test "x$GCC" = "xyes"; then + fi + fi + ++AC_ARG_ENABLE([tests], ++ AS_HELP_STRING([--enable-tests], ++ [enable tests (default=yes)]),, ++ [enable_tests="yes"]) ++ + dnl if glib is available we can enable the tests + PKG_CHECK_MODULES(TEST_DEPS, [glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0], + [ glib_prefix="`$PKG_CONFIG --variable=prefix glib-2.0`" +@@ -156,6 +161,11 @@ PKG_CHECK_MODULES(TEST_DEPS, [glib-2.0 >= 2.6.0 gobject-2.0 >= 2.6.0], + build_tests="no" + ] + ) ++if test "x$enable_tests" != "xyes"; then ++ gtk_doc_use_libtool="no" ++ build_tests="no" ++fi ++ + AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, test -n "$LIBTOOL" -a x$gtk_doc_use_libtool = xyes ) + dnl this enables the rule in test/Makefile.am + AM_CONDITIONAL(BUILD_TESTS, test x$build_tests = xyes) +-- +2.14.1 + diff --git a/poky/meta/recipes-gnome/gtk-doc/files/no-clobber.patch b/poky/meta/recipes-gnome/gtk-doc/files/no-clobber.patch new file mode 100644 index 000000000..0fa22b209 --- /dev/null +++ b/poky/meta/recipes-gnome/gtk-doc/files/no-clobber.patch @@ -0,0 +1,27 @@ +In out-of-tree builds gtk-doc's setup-build target copies all the content from $srcdir to $builddir. + +However, if some of this content is regenerated at configure time this can happen: + +1) configure writes new build/version.xml +2) make compile copies content, including the tarball's src/version.xml + to build/version.xml, and generates gtk-doc. +3) make install notices build/version.xml is older than configure.status, + so regenerates gtk-doc. + +gtk-doc generation is a slow process at the best of times, so doing it twice isn't good. + +Solve this by changing cp --force to cp --no-clobber, so setup-build only copies +files which don't already exist. + +Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=794571] +Signed-off-by: Ross Burton + +diff --git a/gtk-doc.make b/gtk-doc.make +index f87eaab..246f3c0 100644 +--- a/gtk-doc.make ++++ b/gtk-doc.make +@@ -113,3 +113,3 @@ setup-build.stamp: + test -f $(abs_srcdir)/$$file && \ +- cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ ++ cp -pn $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ diff --git a/poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch b/poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch new file mode 100644 index 000000000..bfbc777ff --- /dev/null +++ b/poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch @@ -0,0 +1,42 @@ +From 5f145621b4780cfd6a5632fcc97c45f572938efc Mon Sep 17 00:00:00 2001 +From: Ross Burton +Date: Mon, 5 Sep 2016 22:25:44 +0100 +Subject: [PATCH 5/5] Use native pkg-config when looking for gtk-doc. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton + +--- + gtk-doc.m4 | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +Index: gtk-doc-1.27/gtk-doc.m4 +=================================================================== +--- gtk-doc-1.27.orig/gtk-doc.m4 ++++ gtk-doc-1.27/gtk-doc.m4 +@@ -25,7 +25,7 @@ + # Macro appear in them. The GNU General Public License (GPL) does govern + # all other use of the material that constitutes the Autoconf Macro. + +-# serial 2 ++# serial 2.1 + + dnl Usage: + dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +@@ -35,11 +35,16 @@ AC_DEFUN([GTK_DOC_CHECK], + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + ++ gtkdoc_pkgconfig_save=$PKG_CONFIG ++ PKG_CONFIG=pkg-config-native ++ + ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"]) + AC_MSG_CHECKING([for gtk-doc]) + PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no]) + AC_MSG_RESULT($have_gtk_doc) + ++ PKG_CONFIG=$gtkdoc_pkgconfig_save ++ + if test "$have_gtk_doc" = "no"; then + AC_MSG_WARN([ + You will not be able to create source packages with 'make dist' diff --git a/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.27.bb b/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.27.bb new file mode 100644 index 000000000..45528111c --- /dev/null +++ b/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.27.bb @@ -0,0 +1,50 @@ +SUMMARY = "Documentation generator for glib-based software" +DESCRIPTION = "Gtk-doc is a set of scripts that extract specially formatted comments \ + from glib-based software and produce a set of html documentation files from them" +HOMEPAGE = "http://www.gtk.org/gtk-doc/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +inherit gnomebase + +# Configure the scripts correctly (and build their dependencies) only if they are actually +# going to be used; otheriwse we need only the m4/makefile includes from the gtk-doc tarball. +PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "api-documentation", "working-scripts", "", d)}" + +# This will cause target gtk-doc to hardcode paths of native dependencies +# into its scripts. This means that target gtk-doc package is broken; +# hopefully no one minds because its scripts are not used for anything during build +# and shouldn't be used on targets. +PACKAGECONFIG[working-scripts] = "--with-highlight=source-highlight,--with-highlight=no,libxslt-native xmlto-native source-highlight-native python3-six" +PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,glib-2.0" + +SRC_URI[archive.md5sum] = "b29949e0964762e474b706ce22171602" +SRC_URI[archive.sha256sum] = "e26bd3f7080c749b1cb66c46c6bf8239e2f320a949964fb9c6d56e1b0c6d9a6f" +SRC_URI += "file://0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch \ + file://0001-Do-not-error-out-if-xsltproc-is-not-found.patch \ + file://conditionaltests.patch \ + file://no-clobber.patch \ + " +SRC_URI_append_class-native = " file://pkg-config-native.patch" + +BBCLASSEXTEND = "native nativesdk" + +# Do not check for XML catalogs when building because that +# information is not used for anything during build. Recipe +# dependencies make sure we have all the right bits. +do_configure_prepend() { + sed -i -e 's,^JH_CHECK_XML_CATALOG.*,,' ${S}/configure.ac +} + +FILES_${PN} += "${datadir}/sgml" +FILES_${PN}-dev += "${libdir}/cmake" +FILES_${PN}-doc = "" + +SYSROOT_PREPROCESS_FUNCS_append_class-native = " gtkdoc_makefiles_sysroot_preprocess" +gtkdoc_makefiles_sysroot_preprocess() { + # Patch the gtk-doc makefiles so that the qemu wrapper is used to run transient binaries + # instead of libtool wrapper or running them directly + sed -i \ + -e "s|GTKDOC_RUN =.*|GTKDOC_RUN = \$(top_builddir)/gtkdoc-qemuwrapper|" \ + ${SYSROOT_DESTDIR}${datadir}/gtk-doc/data/gtk-doc*make +} diff --git a/poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb b/poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.bb new file mode 100644 index 000000000..7064b1942 --- /dev/null +++ b/poky/meta/recipes-gnome/hicolor-icon-theme/hicolor-icon-theme_0.17.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] = "84eec8d6f810240a069c731f1870b474" +SRC_URI[sha256sum] = "317484352271d18cbbcfac3868eab798d67fff1b8402e740baa6ff41d588a9d8" + +inherit allarch autotools + +FILES_${PN} += "${datadir}/icons" diff --git a/poky/meta/recipes-gnome/json-glib/json-glib_1.4.2.bb b/poky/meta/recipes-gnome/json-glib/json-glib_1.4.2.bb new file mode 100644 index 000000000..19fe3cc44 --- /dev/null +++ b/poky/meta/recipes-gnome/json-glib/json-glib_1.4.2.bb @@ -0,0 +1,40 @@ +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] = "35107e23a7bbbc70f31c34f7b9adf1c3" +SRC_URI[archive.sha256sum] = "2d7709a44749c7318599a6829322e081915bdc73f5be5045882ed120bb686dc8" + +GNOMEBASEBUILDCLASS = "meson" +inherit gnomebase lib_package gobject-introspection gtk-doc gettext + +# This builds both API docs (via gtk-doc) and manpages +GTKDOC_ENABLE_FLAG = "-Ddocs=true" +GTKDOC_DISABLE_FLAG = "-Ddocs=false" + +GI_ENABLE_FLAG = "-Dintrospection=true" +GI_DISABLE_FLAG = "-Dintrospection=false" + +EXTRA_OEMESON_append_class-target = " ${@bb.utils.contains('GTKDOC_ENABLED', 'True', '${GTKDOC_ENABLE_FLAG}', \ + '${GTKDOC_DISABLE_FLAG}', d)} " +EXTRA_OEMESON_append_class-target = " ${@bb.utils.contains('GI_DATA_ENABLED', 'True', '${GI_ENABLE_FLAG}', \ + '${GI_DISABLE_FLAG}', d)} " + +do_install_append() { + # FIXME: these need to be provided via ptest + rm -rf ${D}${datadir}/installed-tests ${D}${libexecdir} +} + +BBCLASSEXTEND = "native nativesdk" + +# Currently it's not possible to disable gettext in Meson, so we need to force +# this back on. +USE_NLS_class-native = "yes" diff --git a/poky/meta/recipes-gnome/libgudev/libgudev_232.bb b/poky/meta/recipes-gnome/libgudev/libgudev_232.bb new file mode 100644 index 000000000..19fe962e4 --- /dev/null +++ b/poky/meta/recipes-gnome/libgudev/libgudev_232.bb @@ -0,0 +1,18 @@ +SUMMARY = "GObject wrapper for libudev" +HOMEPAGE = "https://wiki.gnome.org/Projects/libgudev" +SRC_URI[archive.sha256sum] = "ee4cb2b9c573cdf354f6ed744f01b111d4b5bed3503ffa956cefff50489c7860" +SRC_URI[archive.md5sum] = "6914852377156665567abf8a38d89236" + +DEPENDS = "glib-2.0 udev" + +EXTRA_OECONF = "--disable-umockdev" + +RCONFLICTS_${PN} = "systemd (<= 220)" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +inherit gnomebase gobject-introspection gtk-doc + +UPSTREAM_CHECK_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgudev/" +UPSTREAM_CHECK_REGEX = "(?P(\d+))" diff --git a/poky/meta/recipes-gnome/libnotify/libnotify_0.7.7.bb b/poky/meta/recipes-gnome/libnotify/libnotify_0.7.7.bb new file mode 100644 index 000000000..6c299bc17 --- /dev/null +++ b/poky/meta/recipes-gnome/libnotify/libnotify_0.7.7.bb @@ -0,0 +1,21 @@ +SUMMARY = "Library for sending desktop notifications to a notification daemon" +HOMEPAGE = "http://www.gnome.org" +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] = "e9d911f6a22435e0b922f2fe71212b59" +SRC_URI[archive.sha256sum] = "9cb4ce315b2655860c524d46b56010874214ec27e854086c1a1d0260137efc04" + +# 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/poky/meta/recipes-gnome/librsvg/librsvg/gtk-option.patch b/poky/meta/recipes-gnome/librsvg/librsvg/gtk-option.patch new file mode 100644 index 000000000..6c23071cd --- /dev/null +++ b/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/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb b/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb new file mode 100644 index 000000000..e376d52ef --- /dev/null +++ b/poky/meta/recipes-gnome/librsvg/librsvg_2.40.20.bb @@ -0,0 +1,47 @@ +SUMMARY = "Library for rendering SVG files" +HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/librsvg/" +BUGTRACKER = "https://bugzilla.gnome.org/" + +RECIPE_NO_UPDATE_REASON = "Versions from 2.41.0 requires Rust compiler to build it" + +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 gnomebase gtk-doc pixbufcache upstream-version-is-even gobject-introspection + +SRC_URI += "file://gtk-option.patch" + +SRC_URI[archive.md5sum] = "4949d313b0c5d9161a5c259104af5568" +SRC_URI[archive.sha256sum] = "cff4dd3c3b78bfe99d8fcfad3b8ba1eee3289a0823c0e118d78106be6b84c92b" + +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 \ + ${datadir}/thumbnailers/librsvg.thumbnailer" +RRECOMMENDS_librsvg-gtk = "gdk-pixbuf-bin" + +PIXBUF_PACKAGES = "librsvg-gtk" diff --git a/poky/meta/recipes-gnome/libsecret/libsecret_0.18.5.bb b/poky/meta/recipes-gnome/libsecret/libsecret_0.18.5.bb new file mode 100644 index 000000000..2b917ec51 --- /dev/null +++ b/poky/meta/recipes-gnome/libsecret/libsecret_0.18.5.bb @@ -0,0 +1,20 @@ +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 manpages + +DEPENDS += "glib-2.0 libgcrypt gettext-native intltool-native" + +PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native" + +SRC_URI[archive.md5sum] = "2d688825921313da8731313b0a7f394c" +SRC_URI[archive.sha256sum] = "9ce7bd8dd5831f2786c935d82638ac428fa085057cc6780aba0e39375887ccb3" + +# 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 +} -- cgit v1.2.3