diff options
Diffstat (limited to 'yocto-poky/meta/recipes-gnome')
19 files changed, 757 insertions, 17 deletions
diff --git a/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.16.3.bb b/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.16.3.bb index 506fb25dd..c3745c0ed 100644 --- a/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.16.3.bb +++ b/yocto-poky/meta/recipes-gnome/epiphany/epiphany_3.16.3.bb @@ -5,7 +5,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes ca-certificates avahi libnotify gcr libwnck3 \ gsettings-desktop-schemas gnome-desktop3" -inherit gnomebase gsettings +inherit gnomebase gsettings distro_features_check +# libwnck3 is x11 only +REQUIRED_DISTRO_FEATURES = "x11" + SRC_URI += "file://0001-yelp.m4-drop-the-check-for-itstool.patch" SRC_URI[archive.md5sum] = "3296af4532b8019775f4b40d21a341ae" SRC_URI[archive.sha256sum] = "d527f1770779ec22d955aeb13b148a846a26144e433ff0480c981af80e2390b1" diff --git a/yocto-poky/meta/recipes-gnome/gcr/gcr_3.16.0.bb b/yocto-poky/meta/recipes-gnome/gcr/gcr_3.16.0.bb index 8b5b6e446..e50b3a815 100644 --- a/yocto-poky/meta/recipes-gnome/gcr/gcr_3.16.0.bb +++ b/yocto-poky/meta/recipes-gnome/gcr/gcr_3.16.0.bb @@ -7,7 +7,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt vala" -inherit autotools gnomebase gtk-icon-cache gtk-doc +inherit autotools gnomebase gtk-icon-cache gtk-doc distro_features_check +# depends on gtk+3, but also x11 through gtk+-x11 +REQUIRED_DISTRO_FEATURES = "x11" SRC_URI[archive.md5sum] = "d5835680be0b6a838e02a528d5378d9c" SRC_URI[archive.sha256sum] = "ecfe8df41cc88158364bb15addc670b11e539fe844742983629ba2323888d075" @@ -16,3 +18,6 @@ FILES_${PN} += " \ ${datadir}/dbus-1 \ ${datadir}/gcr-3 \ " + +# http://errors.yoctoproject.org/Errors/Details/20229/ +ARM_INSTRUCTION_SET = "arm" diff --git a/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2015-7674.patch b/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2015-7674.patch new file mode 100644 index 000000000..d516e88ab --- /dev/null +++ b/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2015-7674.patch @@ -0,0 +1,39 @@ +From e9a5704edaa9aee9498f1fbf6e1b70fcce2e55aa Mon Sep 17 00:00:00 2001 +From: Benjamin Otte <otte@redhat.com> +Date: Tue, 22 Sep 2015 22:44:51 +0200 +Subject: [PATCH] pixops: Don't overflow variables when shifting them + +If we shift by 16 bits we need to be sure those 16 bits actually exist. +They do now. + +Upstream-status: Backport +https://git.gnome.org/browse/gdk-pixbuf/commit/?id=e9a5704edaa9aee9498f1fbf6e1b70fcce2e55aa + +CVE: CVE-2015-7674 +Signed-off-by: Armin Kuster <akuster@mvista.com> + +--- + gdk-pixbuf/pixops/pixops.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +Index: gdk-pixbuf-2.30.8/gdk-pixbuf/pixops/pixops.c +=================================================================== +--- gdk-pixbuf-2.30.8.orig/gdk-pixbuf/pixops/pixops.c ++++ gdk-pixbuf-2.30.8/gdk-pixbuf/pixops/pixops.c +@@ -264,11 +264,11 @@ pixops_scale_nearest (guchar *des + double scale_x, + double scale_y) + { +- int i; +- int x; +- int x_step = (1 << SCALE_SHIFT) / scale_x; +- int y_step = (1 << SCALE_SHIFT) / scale_y; +- int xmax, xstart, xstop, x_pos, y_pos; ++ gint64 i; ++ gint64 x; ++ gint64 x_step = (1 << SCALE_SHIFT) / scale_x; ++ gint64 y_step = (1 << SCALE_SHIFT) / scale_y; ++ gint64 xmax, xstart, xstop, x_pos, y_pos; + const guchar *p; + + #define INNER_LOOP(SRC_CHANNELS,DEST_CHANNELS,ASSIGN_PIXEL) \ diff --git a/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb b/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb index 07c2dcec1..dcd01b14e 100644 --- a/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb +++ b/yocto-poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb @@ -9,7 +9,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ SECTION = "libs" DEPENDS = "glib-2.0" -DEPENDS_append_linuxstdbase = " virtual/libx11" MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" @@ -19,6 +18,7 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ file://run-ptest \ file://fatal-loader.patch \ file://0001-pixops-Be-more-careful-about-integer-overflow.patch \ + file://CVE-2015-7674.patch \ " SRC_URI[md5sum] = "4fed0d54432f1b69fc6e66e608bd5542" @@ -50,18 +50,19 @@ PACKAGES =+ "${PN}-xlib" FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}" ALLOW_EMPTY_${PN}-xlib = "1" -FILES_${PN} = "${bindir}/gdk-pixbuf-query-loaders \ - ${bindir}/gdk-pixbuf-pixdata \ +FILES_${PN} = "${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ ${libdir}/lib*.so.*" FILES_${PN}-dev += " \ ${bindir}/gdk-pixbuf-csource \ + ${bindir}/gdk-pixbuf-pixdata \ ${includedir}/* \ ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/*.la \ " FILES_${PN}-dbg += " \ - ${libdir}/.debug/* \ + ${libdir}/.debug/* \ + ${libdir}/gdk-pixbuf-2.0/.debug/* \ ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/.debug/* \ " @@ -81,6 +82,12 @@ python populate_packages_prepend () { d.appendVar("RDEPENDS_gdk-pixbuf-ptest", " " + packages) } +do_install_append() { + # Move gdk-pixbuf-query-loaders into libdir so it is always available + # in multilib builds. + mv ${D}/${bindir}/gdk-pixbuf-query-loaders ${D}/${libdir}/gdk-pixbuf-2.0/ +} + do_install_append_class-native() { find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \; @@ -90,8 +97,17 @@ do_install_append_class-native() { 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-query-loaders \ + create_wrapper ${D}/${libdir}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders \ GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \ GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders } BBCLASSEXTEND = "native" + +SSTATEPREINSTFUNCS_append_class-native = " gdkpixbuf_sstate_preinst" +SYSROOT_PREPROCESS_FUNCS_append_class-native = " gdkpixbuf_sstate_preinst" + +gdkpixbuf_sstate_preinst() { + if [ "${BB_CURRENTTASK}" = "populate_sysroot" ]; then + rm -rf ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/* + fi +} diff --git a/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.16.2.bb b/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.16.2.bb index 1f2f06c84..3765697f2 100644 --- a/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.16.2.bb +++ b/yocto-poky/meta/recipes-gnome/gnome-desktop/gnome-desktop3_3.16.2.bb @@ -10,7 +10,10 @@ inherit gnome pkgconfig SRC_URI[archive.md5sum] = "ab5bf4cc94ad63639f42adcc1542b1f0" SRC_URI[archive.sha256sum] = "3a8f196b46eb9dbd3ba2afb8fb5fef6a8825539d449a02181311242e22227bd0" -DEPENDS += "gsettings-desktop-schemas gconf libxrandr virtual/libx11 gtk+3 glib-2.0 gnome-doc-utils gnome-common startup-notification iso-codes" +DEPENDS += "gsettings-desktop-schemas gconf libxrandr virtual/libx11 gtk+3 glib-2.0 gnome-doc-utils gnome-common startup-notification xkeyboard-config iso-codes" + +inherit distro_features_check +REQUIRED_DISTRO_FEATURES = "x11" EXTRA_OECONF = "--disable-desktop-docs" diff --git a/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils.inc b/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils.inc index 958750690..8adfac7d7 100644 --- a/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils.inc +++ b/yocto-poky/meta/recipes-gnome/gnome/gnome-doc-utils.inc @@ -15,9 +15,6 @@ CLEANBROKEN = "1" EXTRA_OECONF += "--disable-scrollkeeper" do_install_append() { - mkdir -p ${D}${datadir}/xml/gnome/xslt/ - cp -pPr ${S}/xslt/* ${D}${datadir}/xml/gnome/xslt/ - chown -R root:root ${D} } diff --git a/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc b/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc index be5273d62..a197b9d96 100644 --- a/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc +++ b/yocto-poky/meta/recipes-gnome/gtk+/gtk+.inc @@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7" SECTION = "libs" inherit distro_features_check -ANY_OF_DISTRO_FEATURES = "directfb x11" +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite" DEPENDS = "glib-2.0 pango atk jpeg libpng gdk-pixbuf-native docbook-utils-native \ diff --git a/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc b/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc index f29f0d303..22a40d8f0 100644 --- a/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc +++ b/yocto-poky/meta/recipes-gnome/gtk+/gtk+3.inc @@ -10,7 +10,8 @@ DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \ LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" -inherit autotools pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings +inherit autotools pkgconfig gtk-doc update-alternatives gtk-immodules-cache gsettings distro_features_check +ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}" # This should be in autotools.bbclass, but until something elses uses it putting # it here avoids rebuilding everything. @@ -31,9 +32,11 @@ EXTRA_OECONF += " \ " PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "opengl x11", "glx", "", d)} \ ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)}" PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes" +PACKAGECONFIG[glx] = "--enable-glx,--disable-glx,,libgl" PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland libxkbcommon virtual/mesa" do_install_append() { diff --git a/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Do-not-try-to-initialize-GL-without-libGL.patch b/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Do-not-try-to-initialize-GL-without-libGL.patch new file mode 100644 index 000000000..c8c480c5e --- /dev/null +++ b/yocto-poky/meta/recipes-gnome/gtk+/gtk+3/Do-not-try-to-initialize-GL-without-libGL.patch @@ -0,0 +1,60 @@ +From fc22058a10db913534f11348f86681fe9e1838e5 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen <jussi.kukkonen@intel.com> +Date: Fri, 16 Oct 2015 16:35:16 +0300 +Subject: [PATCH] Do not try to initialize GL without libGL + +_gdk_x11_screen_update_visuals_for_gl() will end up calling epoxys +GLX api which will exit() if libGL.so.1 is not present. We do not +want that to happen and we don't want every app to have to set +"GDK_GL=disabled" environment variable: so use #ifdef set based on +opengl distro feature. + +Upstream is not interested in the fix as it is: Either epoxy should be +fixed (to not exit) or GTK+ possibly could do some additional probing +before calling epoxy APIs. + +Upstream-Status: Denied +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> +--- + configure.ac | 7 +++++++ + gdk/x11/gdkvisual-x11.c | 5 +++++ + 2 files changed, 12 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 729a62e..58cc1ac 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -328,6 +328,13 @@ AC_ARG_ENABLE(mir-backend, + [enable the Mir gdk backend])], + [backend_set=yes]) + ++AC_ARG_ENABLE(glx, ++ [AS_HELP_STRING([--enable-glx], ++ [When enabled Gdk will try to initialize GLX])]) ++AS_IF([test "x$enable_glx" != "xno"], [ ++ AC_DEFINE([HAVE_GLX], [], [GLX will be available at runtime]) ++]) ++ + if test -z "$backend_set"; then + if test "$platform_win32" = yes; then + enable_win32_backend=yes +diff --git a/gdk/x11/gdkvisual-x11.c b/gdk/x11/gdkvisual-x11.c +index f3b062d..c8243f4 100644 +--- a/gdk/x11/gdkvisual-x11.c ++++ b/gdk/x11/gdkvisual-x11.c +@@ -345,7 +345,12 @@ _gdk_x11_screen_init_visuals (GdkScreen *screen) + /* If GL is available we want to pick better default/rgba visuals, + as we care about glx details such as alpha/depth/stencil depth, + stereo and double buffering */ ++ /* update_visuals_for_gl() will end up calling epoxy GLX api which ++ will exit if libgl is not there: so only do this if we know GL ++ is available */ ++#ifdef HAVE_GLX + _gdk_x11_screen_update_visuals_for_gl (screen); ++#endif + } + + gint +-- +2.1.4 + diff --git a/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.16.6.bb b/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.16.6.bb index 1d736a432..381e60750 100644 --- a/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.16.6.bb +++ b/yocto-poky/meta/recipes-gnome/gtk+/gtk+3_3.16.6.bb @@ -5,6 +5,7 @@ MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ file://hardcoded_libtool.patch \ file://Dont-force-csd.patch \ + file://Do-not-try-to-initialize-GL-without-libGL.patch \ " SRC_URI[md5sum] = "fc59e5c8b5a4585b60623dd708df400b" diff --git a/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb b/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb index c30454cab..7c3a87e87 100644 --- a/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb +++ b/yocto-poky/meta/recipes-gnome/gtk-engines/gtk-engines_2.20.2.bb @@ -6,7 +6,7 @@ LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" SECTION = "x11/base" -DEPENDS = "intltool-native gtk+" +DEPENDS = "intltool-native gtk+ gettext-native" PR = "r3" @@ -34,6 +34,9 @@ RDEPENDS_${PN}-dev = "" inherit gnomebase GNOME_COMPRESS_TYPE="bz2" +inherit distro_features_check +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" + python populate_packages_prepend() { engines_root = os.path.join(d.getVar('libdir', True), "gtk-2.0/2.10.0/engines") themes_root = os.path.join(d.getVar('datadir', True), "themes") diff --git a/yocto-poky/meta/recipes-gnome/gtk-theme-torturer/gtk-theme-torturer_git.bb b/yocto-poky/meta/recipes-gnome/gtk-theme-torturer/gtk-theme-torturer_git.bb index 889fd8941..b67806def 100644 --- a/yocto-poky/meta/recipes-gnome/gtk-theme-torturer/gtk-theme-torturer_git.bb +++ b/yocto-poky/meta/recipes-gnome/gtk-theme-torturer/gtk-theme-torturer_git.bb @@ -13,6 +13,9 @@ S = "${WORKDIR}/git/gtk-theme-torturer" CFLAGS += "-Wl,-rpath-link,${STAGING_LIBDIR}" +inherit distro_features_check +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" + do_install() { install -d ${D}${bindir} install -m 0755 torturer ${D}${bindir} diff --git a/yocto-poky/meta/recipes-gnome/libglade/libglade_2.6.4.bb b/yocto-poky/meta/recipes-gnome/libglade/libglade_2.6.4.bb index 15267cad8..553e19c60 100644 --- a/yocto-poky/meta/recipes-gnome/libglade/libglade_2.6.4.bb +++ b/yocto-poky/meta/recipes-gnome/libglade/libglade_2.6.4.bb @@ -11,7 +11,8 @@ SECTION = "libs" PR = "r5" DEPENDS = "zlib gdk-pixbuf gtk+" -inherit autotools pkgconfig gnomebase gtk-doc +inherit autotools pkgconfig gnomebase gtk-doc distro_features_check +ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}" GNOME_COMPRESS_TYPE="bz2" SRC_URI += "file://glade-cruft.patch file://no-xml2.patch file://python_environment.patch" diff --git a/yocto-poky/meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_1.patch b/yocto-poky/meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_1.patch new file mode 100644 index 000000000..a3ba41f50 --- /dev/null +++ b/yocto-poky/meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_1.patch @@ -0,0 +1,139 @@ +From d1c9191949747f6dcfd207831d15dd4ba00e31f2 Mon Sep 17 00:00:00 2001 +From: Benjamin Otte <otte@redhat.com> +Date: Wed, 7 Oct 2015 05:31:08 +0200 +Subject: [PATCH] state: Store mask as reference + +Instead of immediately looking up the mask, store the reference and look +it up on use. + +Upstream-status: Backport + +supporting patch +https://git.gnome.org/browse/librsvg/commit/rsvg-styles.c?id=d1c9191949747f6dcfd207831d15dd4ba00e31f2 + +CVE: CVE-2015-7558 +Signed-off-by: Armin Kuster <akuster@mvista.com> + +--- + rsvg-cairo-draw.c | 6 +++++- + rsvg-mask.c | 17 ----------------- + rsvg-mask.h | 2 -- + rsvg-styles.c | 12 ++++++++---- + rsvg-styles.h | 2 +- + 5 files changed, 14 insertions(+), 25 deletions(-) + +Index: librsvg-2.40.10/rsvg-cairo-draw.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-cairo-draw.c ++++ librsvg-2.40.10/rsvg-cairo-draw.c +@@ -825,7 +825,11 @@ rsvg_cairo_pop_render_stack (RsvgDrawing + cairo_set_operator (render->cr, state->comp_op); + + if (state->mask) { +- rsvg_cairo_generate_mask (render->cr, state->mask, ctx, &render->bbox); ++ RsvgNode *mask; ++ ++ mask = rsvg_defs_lookup (ctx->defs, state->mask); ++ if (mask && RSVG_NODE_TYPE (mask) == RSVG_NODE_TYPE_MASK) ++ rsvg_cairo_generate_mask (render->cr, (RsvgMask *) mask, ctx, &render->bbox); + } else if (state->opacity != 0xFF) + cairo_paint_with_alpha (render->cr, (double) state->opacity / 255.0); + else +Index: librsvg-2.40.10/rsvg-mask.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-mask.c ++++ librsvg-2.40.10/rsvg-mask.c +@@ -103,23 +103,6 @@ rsvg_get_url_string (const char *str) + } + + RsvgNode * +-rsvg_mask_parse (const RsvgDefs * defs, const char *str) +-{ +- char *name; +- +- name = rsvg_get_url_string (str); +- if (name) { +- RsvgNode *val; +- val = rsvg_defs_lookup (defs, name); +- g_free (name); +- +- if (val && RSVG_NODE_TYPE (val) == RSVG_NODE_TYPE_MASK) +- return val; +- } +- return NULL; +-} +- +-RsvgNode * + rsvg_clip_path_parse (const RsvgDefs * defs, const char *str) + { + char *name; +Index: librsvg-2.40.10/rsvg-mask.h +=================================================================== +--- librsvg-2.40.10.orig/rsvg-mask.h ++++ librsvg-2.40.10/rsvg-mask.h +@@ -48,8 +48,6 @@ struct _RsvgMask { + + G_GNUC_INTERNAL + RsvgNode *rsvg_new_mask (void); +-G_GNUC_INTERNAL +-RsvgNode *rsvg_mask_parse (const RsvgDefs * defs, const char *str); + + typedef struct _RsvgClipPath RsvgClipPath; + +Index: librsvg-2.40.10/rsvg-styles.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-styles.c ++++ librsvg-2.40.10/rsvg-styles.c +@@ -221,6 +221,7 @@ rsvg_state_clone (RsvgState * dst, const + + *dst = *src; + dst->parent = parent; ++ dst->mask = g_strdup (src->mask); + dst->font_family = g_strdup (src->font_family); + dst->lang = g_strdup (src->lang); + rsvg_paint_server_ref (dst->fill); +@@ -356,7 +357,8 @@ rsvg_state_inherit_run (RsvgState * dst, + + if (inherituninheritables) { + dst->clip_path_ref = src->clip_path_ref; +- dst->mask = src->mask; ++ g_free (dst->mask); ++ dst->mask = g_strdup (src->mask); + dst->enable_background = src->enable_background; + dst->adobe_blend = src->adobe_blend; + dst->opacity = src->opacity; +@@ -444,6 +446,7 @@ rsvg_state_inherit (RsvgState * dst, con + void + rsvg_state_finalize (RsvgState * state) + { ++ g_free (state->mask); + g_free (state->font_family); + g_free (state->lang); + rsvg_paint_server_unref (state->fill); +@@ -517,9 +520,10 @@ rsvg_parse_style_pair (RsvgHandle * ctx, + state->adobe_blend = 11; + else + state->adobe_blend = 0; +- } else if (g_str_equal (name, "mask")) +- state->mask = rsvg_mask_parse (ctx->priv->defs, value); +- else if (g_str_equal (name, "clip-path")) { ++ } else if (g_str_equal (name, "mask")) { ++ g_free (state->mask); ++ state->mask = rsvg_get_url_string (value); ++ } else if (g_str_equal (name, "clip-path")) { + state->clip_path_ref = rsvg_clip_path_parse (ctx->priv->defs, value); + } else if (g_str_equal (name, "overflow")) { + if (!g_str_equal (value, "inherit")) { +Index: librsvg-2.40.10/rsvg-styles.h +=================================================================== +--- librsvg-2.40.10.orig/rsvg-styles.h ++++ librsvg-2.40.10/rsvg-styles.h +@@ -80,7 +80,7 @@ struct _RsvgState { + cairo_matrix_t personal_affine; + + RsvgFilter *filter; +- void *mask; ++ char *mask; + void *clip_path_ref; + guint8 adobe_blend; /* 0..11 */ + guint8 opacity; /* 0..255 */ diff --git a/yocto-poky/meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_2.patch b/yocto-poky/meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_2.patch new file mode 100644 index 000000000..9f6820ef9 --- /dev/null +++ b/yocto-poky/meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_2.patch @@ -0,0 +1,230 @@ +From 6cfaab12c70cd4a34c4730837f1ecdf792593c90 Mon Sep 17 00:00:00 2001 +From: Benjamin Otte <otte@redhat.com> +Date: Wed, 7 Oct 2015 07:57:39 +0200 +Subject: [PATCH] state: Look up clip path lazily + +Upstream-status: Backport + +supporting patch +https://git.gnome.org/browse/librsvg/commit/rsvg-styles.c?id=6cfaab12c70cd4a34c4730837f1ecdf792593c90 + +CVE: CVE-2015-7558 +Signed-off-by: Armin Kuster <akuster@mvista.com> + +--- + rsvg-cairo-draw.c | 56 +++++++++++++++++++++++++++++++++---------------------- + rsvg-mask.c | 17 ----------------- + rsvg-mask.h | 2 -- + rsvg-styles.c | 10 +++++++--- + rsvg-styles.h | 2 +- + 5 files changed, 42 insertions(+), 45 deletions(-) + +Index: librsvg-2.40.10/rsvg-cairo-draw.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-cairo-draw.c ++++ librsvg-2.40.10/rsvg-cairo-draw.c +@@ -461,7 +461,7 @@ rsvg_cairo_render_path (RsvgDrawingCtx * + return; + + need_tmpbuf = ((state->fill != NULL) && (state->stroke != NULL) && state->opacity != 0xff) +- || state->clip_path_ref || state->mask || state->filter ++ || state->clip_path || state->mask || state->filter + || (state->comp_op != CAIRO_OPERATOR_OVER); + + if (need_tmpbuf) +@@ -708,18 +708,6 @@ rsvg_cairo_generate_mask (cairo_t * cr, + } + + static void +-rsvg_cairo_push_early_clips (RsvgDrawingCtx * ctx) +-{ +- RsvgCairoRender *render = RSVG_CAIRO_RENDER (ctx->render); +- +- cairo_save (render->cr); +- if (rsvg_current_state (ctx)->clip_path_ref) +- if (((RsvgClipPath *) rsvg_current_state (ctx)->clip_path_ref)->units == userSpaceOnUse) +- rsvg_cairo_clip (ctx, rsvg_current_state (ctx)->clip_path_ref, NULL); +- +-} +- +-static void + rsvg_cairo_push_render_stack (RsvgDrawingCtx * ctx) + { + /* XXX: Untested, probably needs help wrt filters */ +@@ -731,9 +719,27 @@ rsvg_cairo_push_render_stack (RsvgDrawin + RsvgState *state = rsvg_current_state (ctx); + gboolean lateclip = FALSE; + +- if (rsvg_current_state (ctx)->clip_path_ref) +- if (((RsvgClipPath *) rsvg_current_state (ctx)->clip_path_ref)->units == objectBoundingBox) +- lateclip = TRUE; ++ if (rsvg_current_state (ctx)->clip_path) { ++ RsvgNode *node; ++ node = rsvg_defs_lookup (ctx->defs, rsvg_current_state (ctx)->clip_path); ++ if (node && RSVG_NODE_TYPE (node) == RSVG_NODE_TYPE_CLIP_PATH) { ++ RsvgClipPath *clip_path = (RsvgClipPath *) node; ++ ++ switch (clip_path->units) { ++ case userSpaceOnUse: ++ rsvg_cairo_clip (ctx, clip_path, NULL); ++ break; ++ case objectBoundingBox: ++ lateclip = TRUE; ++ break; ++ ++ default: ++ g_assert_not_reached (); ++ break; ++ } ++ ++ } ++ } + + if (state->opacity == 0xFF + && !state->filter && !state->mask && !lateclip && (state->comp_op == CAIRO_OPERATOR_OVER) +@@ -774,7 +780,9 @@ rsvg_cairo_push_render_stack (RsvgDrawin + void + rsvg_cairo_push_discrete_layer (RsvgDrawingCtx * ctx) + { +- rsvg_cairo_push_early_clips (ctx); ++ RsvgCairoRender *render = RSVG_CAIRO_RENDER (ctx->render); ++ ++ cairo_save (render->cr); + rsvg_cairo_push_render_stack (ctx); + } + +@@ -783,14 +791,18 @@ rsvg_cairo_pop_render_stack (RsvgDrawing + { + RsvgCairoRender *render = RSVG_CAIRO_RENDER (ctx->render); + cairo_t *child_cr = render->cr; +- gboolean lateclip = FALSE; ++ RsvgClipPath *lateclip = NULL; + cairo_surface_t *surface = NULL; + RsvgState *state = rsvg_current_state (ctx); + gboolean nest; + +- if (rsvg_current_state (ctx)->clip_path_ref) +- if (((RsvgClipPath *) rsvg_current_state (ctx)->clip_path_ref)->units == objectBoundingBox) +- lateclip = TRUE; ++ if (rsvg_current_state (ctx)->clip_path) { ++ RsvgNode *node; ++ node = rsvg_defs_lookup (ctx->defs, rsvg_current_state (ctx)->clip_path); ++ if (node && RSVG_NODE_TYPE (node) == RSVG_NODE_TYPE_CLIP_PATH ++ && ((RsvgClipPath *) node)->units == objectBoundingBox) ++ lateclip = (RsvgClipPath *) node; ++ } + + if (state->opacity == 0xFF + && !state->filter && !state->mask && !lateclip && (state->comp_op == CAIRO_OPERATOR_OVER) +@@ -820,7 +832,7 @@ rsvg_cairo_pop_render_stack (RsvgDrawing + nest ? 0 : render->offset_y); + + if (lateclip) +- rsvg_cairo_clip (ctx, rsvg_current_state (ctx)->clip_path_ref, &render->bbox); ++ rsvg_cairo_clip (ctx, lateclip, &render->bbox); + + cairo_set_operator (render->cr, state->comp_op); + +Index: librsvg-2.40.10/rsvg-mask.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-mask.c ++++ librsvg-2.40.10/rsvg-mask.c +@@ -102,23 +102,6 @@ rsvg_get_url_string (const char *str) + return NULL; + } + +-RsvgNode * +-rsvg_clip_path_parse (const RsvgDefs * defs, const char *str) +-{ +- char *name; +- +- name = rsvg_get_url_string (str); +- if (name) { +- RsvgNode *val; +- val = rsvg_defs_lookup (defs, name); +- g_free (name); +- +- if (val && RSVG_NODE_TYPE (val) == RSVG_NODE_TYPE_CLIP_PATH) +- return val; +- } +- return NULL; +-} +- + static void + rsvg_clip_path_set_atts (RsvgNode * self, RsvgHandle * ctx, RsvgPropertyBag * atts) + { +Index: librsvg-2.40.10/rsvg-mask.h +=================================================================== +--- librsvg-2.40.10.orig/rsvg-mask.h ++++ librsvg-2.40.10/rsvg-mask.h +@@ -58,8 +58,6 @@ struct _RsvgClipPath { + + G_GNUC_INTERNAL + RsvgNode *rsvg_new_clip_path (void); +-G_GNUC_INTERNAL +-RsvgNode *rsvg_clip_path_parse (const RsvgDefs * defs, const char *str); + + G_END_DECLS + #endif +Index: librsvg-2.40.10/rsvg-styles.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-styles.c ++++ librsvg-2.40.10/rsvg-styles.c +@@ -149,7 +149,7 @@ rsvg_state_init (RsvgState * state) + state->visible = TRUE; + state->cond_true = TRUE; + state->filter = NULL; +- state->clip_path_ref = NULL; ++ state->clip_path = NULL; + state->startMarker = NULL; + state->middleMarker = NULL; + state->endMarker = NULL; +@@ -222,6 +222,7 @@ rsvg_state_clone (RsvgState * dst, const + *dst = *src; + dst->parent = parent; + dst->mask = g_strdup (src->mask); ++ dst->clip_path = g_strdup (src->clip_path); + dst->font_family = g_strdup (src->font_family); + dst->lang = g_strdup (src->lang); + rsvg_paint_server_ref (dst->fill); +@@ -356,7 +357,8 @@ rsvg_state_inherit_run (RsvgState * dst, + } + + if (inherituninheritables) { +- dst->clip_path_ref = src->clip_path_ref; ++ g_free (dst->clip_path); ++ dst->clip_path = g_strdup (src->clip_path); + g_free (dst->mask); + dst->mask = g_strdup (src->mask); + dst->enable_background = src->enable_background; +@@ -447,6 +449,7 @@ void + rsvg_state_finalize (RsvgState * state) + { + g_free (state->mask); ++ g_free (state->clip_path); + g_free (state->font_family); + g_free (state->lang); + rsvg_paint_server_unref (state->fill); +@@ -524,7 +527,8 @@ rsvg_parse_style_pair (RsvgHandle * ctx, + g_free (state->mask); + state->mask = rsvg_get_url_string (value); + } else if (g_str_equal (name, "clip-path")) { +- state->clip_path_ref = rsvg_clip_path_parse (ctx->priv->defs, value); ++ g_free (state->clip_path); ++ state->clip_path = rsvg_get_url_string (value); + } else if (g_str_equal (name, "overflow")) { + if (!g_str_equal (value, "inherit")) { + state->overflow = rsvg_css_parse_overflow (value, &state->has_overflow); +Index: librsvg-2.40.10/rsvg-styles.h +=================================================================== +--- librsvg-2.40.10.orig/rsvg-styles.h ++++ librsvg-2.40.10/rsvg-styles.h +@@ -81,7 +81,7 @@ struct _RsvgState { + + RsvgFilter *filter; + char *mask; +- void *clip_path_ref; ++ char *clip_path; + guint8 adobe_blend; /* 0..11 */ + guint8 opacity; /* 0..255 */ + diff --git a/yocto-poky/meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_3.patch b/yocto-poky/meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_3.patch new file mode 100644 index 000000000..dd67ab768 --- /dev/null +++ b/yocto-poky/meta/recipes-gnome/librsvg/librsvg/CVE-2015-7558_3.patch @@ -0,0 +1,223 @@ +From a51919f7e1ca9c535390a746fbf6e28c8402dc61 Mon Sep 17 00:00:00 2001 +From: Benjamin Otte <otte@redhat.com> +Date: Wed, 7 Oct 2015 08:45:37 +0200 +Subject: [PATCH] rsvg: Add rsvg_acquire_node() + +This function does proper recursion checks when looking up resources +from URLs and thereby helps avoiding infinite loops when cyclic +references span multiple types of elements. + +Upstream-status: Backport + +https://git.gnome.org/browse/librsvg/commit/rsvg-styles.c?id=a51919f7e1ca9c535390a746fbf6e28c8402dc61 + +CVE: CVE-2015-7558 +Signed-off-by: Armin Kuster <akuster@mvista.com> + +--- + rsvg-base.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + rsvg-cairo-draw.c | 15 +++++++++++---- + rsvg-cairo-render.c | 1 + + rsvg-filter.c | 9 +++++++-- + rsvg-private.h | 5 +++++ + 5 files changed, 79 insertions(+), 6 deletions(-) + +Index: librsvg-2.40.10/rsvg-base.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-base.c ++++ librsvg-2.40.10/rsvg-base.c +@@ -1236,6 +1236,8 @@ rsvg_drawing_ctx_free (RsvgDrawingCtx * + g_slist_free (handle->drawsub_stack); + + g_slist_free (handle->ptrs); ++ g_warn_if_fail (handle->acquired_nodes == NULL); ++ g_slist_free (handle->acquired_nodes); + + if (handle->base_uri) + g_free (handle->base_uri); +@@ -2018,6 +2020,59 @@ rsvg_push_discrete_layer (RsvgDrawingCtx + ctx->render->push_discrete_layer (ctx); + } + ++/* ++ * rsvg_acquire_node: ++ * @ctx: The drawing context in use ++ * @url: The IRI to lookup ++ * ++ * Use this function when looking up urls to other nodes. This ++ * function does proper recursion checking and thereby avoids ++ * infinite loops. ++ * ++ * Nodes acquired by this function must be released using ++ * rsvg_release_node() in reverse acquiring order. ++ * ++ * Returns: The node referenced by @url or %NULL if the @url ++ * does not reference a node. ++ */ ++RsvgNode * ++rsvg_acquire_node (RsvgDrawingCtx * ctx, const char *url) ++{ ++ RsvgNode *node; ++ ++ node = rsvg_defs_lookup (ctx->defs, url); ++ if (node == NULL) ++ return NULL; ++ ++ if (g_slist_find (ctx->acquired_nodes, node)) ++ return NULL; ++ ++ ctx->acquired_nodes = g_slist_prepend (ctx->acquired_nodes, node); ++ ++ return node; ++} ++ ++/* ++ * rsvg_release_node: ++ * @ctx: The drawing context the node was acquired from ++ * @node: Node to release ++ * ++ * Releases a node previously acquired via rsvg_acquire_node(). ++ * ++ * if @node is %NULL, this function does nothing. ++ */ ++void ++rsvg_release_node (RsvgDrawingCtx * ctx, RsvgNode *node) ++{ ++ if (node == NULL) ++ return; ++ ++ g_return_if_fail (ctx->acquired_nodes != NULL); ++ g_return_if_fail (ctx->acquired_nodes->data == node); ++ ++ ctx->acquired_nodes = g_slist_remove (ctx->acquired_nodes, node); ++} ++ + void + rsvg_render_path (RsvgDrawingCtx * ctx, const cairo_path_t *path) + { +Index: librsvg-2.40.10/rsvg-cairo-draw.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-cairo-draw.c ++++ librsvg-2.40.10/rsvg-cairo-draw.c +@@ -721,7 +721,7 @@ rsvg_cairo_push_render_stack (RsvgDrawin + + if (rsvg_current_state (ctx)->clip_path) { + RsvgNode *node; +- node = rsvg_defs_lookup (ctx->defs, rsvg_current_state (ctx)->clip_path); ++ node = rsvg_acquire_node (ctx, rsvg_current_state (ctx)->clip_path); + if (node && RSVG_NODE_TYPE (node) == RSVG_NODE_TYPE_CLIP_PATH) { + RsvgClipPath *clip_path = (RsvgClipPath *) node; + +@@ -739,6 +739,8 @@ rsvg_cairo_push_render_stack (RsvgDrawin + } + + } ++ ++ rsvg_release_node (ctx, node); + } + + if (state->opacity == 0xFF +@@ -798,10 +800,12 @@ rsvg_cairo_pop_render_stack (RsvgDrawing + + if (rsvg_current_state (ctx)->clip_path) { + RsvgNode *node; +- node = rsvg_defs_lookup (ctx->defs, rsvg_current_state (ctx)->clip_path); ++ node = rsvg_acquire_node (ctx, rsvg_current_state (ctx)->clip_path); + if (node && RSVG_NODE_TYPE (node) == RSVG_NODE_TYPE_CLIP_PATH + && ((RsvgClipPath *) node)->units == objectBoundingBox) + lateclip = (RsvgClipPath *) node; ++ else ++ rsvg_release_node (ctx, node); + } + + if (state->opacity == 0xFF +@@ -831,17 +835,20 @@ rsvg_cairo_pop_render_stack (RsvgDrawing + nest ? 0 : render->offset_x, + nest ? 0 : render->offset_y); + +- if (lateclip) ++ if (lateclip) { + rsvg_cairo_clip (ctx, lateclip, &render->bbox); ++ rsvg_release_node (ctx, (RsvgNode *) lateclip); ++ } + + cairo_set_operator (render->cr, state->comp_op); + + if (state->mask) { + RsvgNode *mask; + +- mask = rsvg_defs_lookup (ctx->defs, state->mask); ++ mask = rsvg_acquire_node (ctx, state->mask); + if (mask && RSVG_NODE_TYPE (mask) == RSVG_NODE_TYPE_MASK) + rsvg_cairo_generate_mask (render->cr, (RsvgMask *) mask, ctx, &render->bbox); ++ rsvg_release_node (ctx, mask); + } else if (state->opacity != 0xFF) + cairo_paint_with_alpha (render->cr, (double) state->opacity / 255.0); + else +Index: librsvg-2.40.10/rsvg-cairo-render.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-cairo-render.c ++++ librsvg-2.40.10/rsvg-cairo-render.c +@@ -155,6 +155,7 @@ rsvg_cairo_new_drawing_ctx (cairo_t * cr + draw->pango_context = NULL; + draw->drawsub_stack = NULL; + draw->ptrs = NULL; ++ draw->acquired_nodes = NULL; + + rsvg_state_push (draw); + state = rsvg_current_state (draw); +Index: librsvg-2.40.10/rsvg-filter.c +=================================================================== +--- librsvg-2.40.10.orig/rsvg-filter.c ++++ librsvg-2.40.10/rsvg-filter.c +@@ -3921,6 +3921,7 @@ rsvg_filter_primitive_image_render_in (R + RsvgDrawingCtx *ctx; + RsvgFilterPrimitiveImage *upself; + RsvgNode *drawable; ++ cairo_surface_t *result; + + ctx = context->ctx; + +@@ -3929,13 +3930,17 @@ rsvg_filter_primitive_image_render_in (R + if (!upself->href) + return NULL; + +- drawable = rsvg_defs_lookup (ctx->defs, upself->href->str); ++ drawable = rsvg_acquire_node (ctx, upself->href->str); + if (!drawable) + return NULL; + + rsvg_current_state (ctx)->affine = context->paffine; + +- return rsvg_get_surface_of_node (ctx, drawable, context->width, context->height); ++ result = rsvg_get_surface_of_node (ctx, drawable, context->width, context->height); ++ ++ rsvg_release_node (ctx, drawable); ++ ++ return result; + } + + static cairo_surface_t * +Index: librsvg-2.40.10/rsvg-private.h +=================================================================== +--- librsvg-2.40.10.orig/rsvg-private.h ++++ librsvg-2.40.10/rsvg-private.h +@@ -200,6 +200,7 @@ struct RsvgDrawingCtx { + GSList *vb_stack; + GSList *drawsub_stack; + GSList *ptrs; ++ GSList *acquired_nodes; + }; + + /*Abstract base class for context for our backends (one as yet)*/ +@@ -360,6 +361,10 @@ void rsvg_pop_discrete_layer (RsvgDra + G_GNUC_INTERNAL + void rsvg_push_discrete_layer (RsvgDrawingCtx * ctx); + G_GNUC_INTERNAL ++RsvgNode *rsvg_acquire_node (RsvgDrawingCtx * ctx, const char *url); ++G_GNUC_INTERNAL ++void rsvg_release_node (RsvgDrawingCtx * ctx, RsvgNode *node); ++G_GNUC_INTERNAL + void rsvg_render_path (RsvgDrawingCtx * ctx, const cairo_path_t *path); + G_GNUC_INTERNAL + void rsvg_render_surface (RsvgDrawingCtx * ctx, cairo_surface_t *surface, diff --git a/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.10.bb b/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.10.bb index a8b0e4f9c..cb8a73c40 100644 --- a/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.10.bb +++ b/yocto-poky/meta/recipes-gnome/librsvg/librsvg_2.40.10.bb @@ -12,11 +12,17 @@ BBCLASSEXTEND = "native" inherit autotools pkgconfig gnomebase gtk-doc pixbufcache -SRC_URI += "file://gtk-option.patch" +SRC_URI += "file://gtk-option.patch \ + file://CVE-2015-7558_1.patch \ + file://CVE-2015-7558_2.patch \ + file://CVE-2015-7558_3.patch \ + " SRC_URI[archive.md5sum] = "fadebe2e799ab159169ee3198415ff85" SRC_URI[archive.sha256sum] = "965c807438ce90b204e930ff80c92eba1606a2f6fd5ccfd09335c99896dd3479" +CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders" + EXTRA_OECONF = "--disable-introspection --disable-vala" # The older ld (2.22) on the host (Centos 6.5) doesn't have the diff --git a/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.2.bb b/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.2.bb index cebc83b57..8fc00181f 100644 --- a/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.2.bb +++ b/yocto-poky/meta/recipes-gnome/libsecret/libsecret_0.18.2.bb @@ -4,9 +4,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6" inherit gnomebase gtk-doc -DEPENDS = "glib-2.0 libgcrypt" +DEPENDS = "glib-2.0 libgcrypt gettext-native" EXTRA_OECONF += "--disable-manpages" SRC_URI[archive.md5sum] = "23cdf8267d11a26f88f0dbec1e2022ad" SRC_URI[archive.sha256sum] = "12fd288b012e1b2b1b54d586cd4c6507885715534644b4534b7ef7d7079ba443" + +# http://errors.yoctoproject.org/Errors/Details/20228/ +ARM_INSTRUCTION_SET = "arm" diff --git a/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.14.0.bb b/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.14.0.bb index d0f5175e5..3ee1ae98a 100644 --- a/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.14.0.bb +++ b/yocto-poky/meta/recipes-gnome/libwnck/libwnck3_3.14.0.bb @@ -13,3 +13,8 @@ PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-s inherit gnomebase SRC_URI[archive.md5sum] = "4538672e0d775fadedf10abeb8020047" SRC_URI[archive.sha256sum] = "f5080076346609b4c36394b879f3a86b92ced3b90a37cb54c8e9a14f00e7921c" + +inherit distro_features_check +# libxres means x11 only +REQUIRED_DISTRO_FEATURES = "x11" + |