* [PATCH 0/6] GTK+3 upgrade and related changes
@ 2015-06-11 13:24 Jussi Kukkonen
2015-06-11 13:24 ` [PATCH 1/6] gtk+3: Upgrade to 3.16.3 Jussi Kukkonen
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Jussi Kukkonen @ 2015-06-11 13:24 UTC (permalink / raw)
To: openembedded-core
Patch set upgrades GTK+3 and adds adwaita-icon-theme: Current GTK+
requires a theme with "symbolic" (single color) icons for the
widgets to look decent -- and gnome-icon-theme does not provide them.
In practice Adwaita is the successor of now unmaintained
gnome-icon-theme so dropping gnome-icon-theme at some point would
make sense.
Adwaita includes lots of symbolic svg icons: The build uses
gtk-encode-symbolic-svg at install time to convert them to png. This
means both smaller installed size and faster rendering on target but
takes a moment at install time: >2 minutes on my fairly beefy
machine.
The new symbolic icons have also increased the installed size:
gnome-icon-theme: 14 MB
adwaita-icon-theme: 24 MB
adwaita-icon-theme-cursors: 12 MB
(gnome-icon-theme does not include cursors at all)
Cheers,
Jussi
The following changes since commit 062678c4ab88fa94ed38efa6520c3b4e2d88ca73:
sysvinit: Only enable recipe in builds where its applicable (2015-06-10 12:03:19 +0100)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib jku/update-gtk3
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=jku/update-gtk3
Jussi Kukkonen (6):
gtk+3: Upgrade to 3.16.3
gtk-update-icon-cache-native: Upgrade, add binary
matchbox-session-sato: set GTK_CSD env var
adwaita-icon-theme: Add new icon theme for GTK+
sato-icon-theme: Inherit Adwaita, not gnome-icon-theme
midori: Depend on Adwaita, not gnome-icon-theme
.../Create-symlinks-when-installing-cursors.patch | 178 +++++++++++++++++++++
.../gnome/adwaita-icon-theme_3.16.2.1.bb | 34 ++++
meta/recipes-gnome/gtk+/gtk+3.inc | 14 +-
meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch | 118 ++++++++++++++
.../gtk+/gtk+3/fix-flags-for-native.patch | 33 ----
.../gtk+/{gtk+3_3.12.2.bb => gtk+3_3.16.3.bb} | 6 +-
...4.bb => gtk-update-icon-cache-native_3.16.3.bb} | 41 +++--
...k-dependency-from-gtk-encode-symbolic-svg.patch | 102 ++++++++++++
.../matchbox-sato/matchbox-session-sato/session | 4 +
meta/recipes-sato/midori/midori_0.5.8.bb | 2 +-
.../0001-Inherit-the-GNOME-icon-theme.patch | 2 +-
11 files changed, 475 insertions(+), 59 deletions(-)
create mode 100644 meta/recipes-gnome/gnome/adwaita-icon-theme/Create-symlinks-when-installing-cursors.patch
create mode 100644 meta/recipes-gnome/gnome/adwaita-icon-theme_3.16.2.1.bb
create mode 100644 meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch
delete mode 100644 meta/recipes-gnome/gtk+/gtk+3/fix-flags-for-native.patch
rename meta/recipes-gnome/gtk+/{gtk+3_3.12.2.bb => gtk+3_3.16.3.bb} (75%)
rename meta/recipes-gnome/gtk+/{gtk-update-icon-cache-native_3.4.4.bb => gtk-update-icon-cache-native_3.16.3.bb} (42%)
create mode 100644 meta/recipes-gnome/gtk+/gtk-update-icon-cache/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch
--
2.1.4
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH 1/6] gtk+3: Upgrade to 3.16.3 2015-06-11 13:24 [PATCH 0/6] GTK+3 upgrade and related changes Jussi Kukkonen @ 2015-06-11 13:24 ` Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 2/6] gtk-update-icon-cache-native: Upgrade, add binary Jussi Kukkonen ` (4 subsequent siblings) 5 siblings, 0 replies; 8+ messages in thread From: Jussi Kukkonen @ 2015-06-11 13:24 UTC (permalink / raw) To: openembedded-core * Drop --disable-gtk2-dependency and the patch for gtk/native/Makefile.am: gtk-update-icon-cache is no longer used at build time and as a result the option was removed. * Add dependency to libepoxy * Add dependency to virtual/mesa for wayland-egl * Package new binaries gtk3-icon-browser and gtk-encode-symbolic-svg * Add a backported patch that allows server side window decorations in all cases Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> --- meta/recipes-gnome/gtk+/gtk+3.inc | 14 +-- meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch | 118 +++++++++++++++++++++ .../gtk+/gtk+3/fix-flags-for-native.patch | 33 ------ .../gtk+/{gtk+3_3.12.2.bb => gtk+3_3.16.3.bb} | 6 +- 4 files changed, 128 insertions(+), 43 deletions(-) create mode 100644 meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch delete mode 100644 meta/recipes-gnome/gtk+/gtk+3/fix-flags-for-native.patch rename meta/recipes-gnome/gtk+/{gtk+3_3.12.2.bb => gtk+3_3.16.3.bb} (75%) diff --git a/meta/recipes-gnome/gtk+/gtk+3.inc b/meta/recipes-gnome/gtk+/gtk+3.inc index 3e36676..3823fb3 100644 --- a/meta/recipes-gnome/gtk+/gtk+3.inc +++ b/meta/recipes-gnome/gtk+/gtk+3.inc @@ -6,7 +6,7 @@ BUGTRACKER = "https://bugzilla.gnome.org/" SECTION = "libs" DEPENDS = "glib-2.0 cairo pango atk jpeg libpng gdk-pixbuf \ - docbook-utils-native gdk-pixbuf-native" + docbook-utils-native gdk-pixbuf-native libepoxy" LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" @@ -22,10 +22,7 @@ do_configure_prepend() { ln -s ${TARGET_PREFIX}libtool libtool } -# Forcibly disable the GTK+ 2 dependency as we don't want to natively build the -# entire GTK+ stack, or need GTK+ 2 for gtk-update-icon-cache. EXTRA_OECONF += " \ - --disable-gtk2-dependency \ --disable-glibtest \ --disable-xinerama \ --enable-modules \ @@ -37,7 +34,7 @@ PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", 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[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland libxkbcommon" +PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,wayland libxkbcommon virtual/mesa" do_install_append() { mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-3.0 @@ -48,12 +45,14 @@ 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" + ${datadir}/icons/hicolor/*/apps/gtk3-demo*.png \ + ${datadir}/icons/hicolor/*/apps/gtk3-widget-factory*.png" # The demo uses PNG files and mime type sniffing, so ensure that these # dependencies are present. @@ -62,6 +61,7 @@ RDEPENDS_${PN}-demo += "gdk-pixbuf-loader-png shared-mime-info" FILES_${PN} = "${bindir}/gtk-update-icon-cache-3.0 \ ${bindir}/gtk-query-immodules-3.0 \ ${bindir}/gtk-launch \ + ${bindir}/gtk-encode-symbolic-svg \ ${libdir}/lib*${SOLIBS} \ ${datadir}/themes ${sysconfdir} ${datadir}/glib-2.0/schemas/ \ ${libdir}/gtk-3.0/${LIBV}/engines/libpixmap.so \ diff --git a/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch b/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch new file mode 100644 index 0000000..32d8a84 --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk+3/Dont-force-csd.patch @@ -0,0 +1,118 @@ +window: Check if we can use CSD before enabling them + +Upstream-Status: Backport +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> + + +From c5e5ee67490e7e7af56052d8f8beb75db002c2f1 Mon Sep 17 00:00:00 2001 +From: Emmanuele Bassi <ebassi@gnome.org> +Date: Wed, 3 Jun 2015 14:07:29 +0100 +Subject: window: Check if we can use CSD before enabling them + +The change in 03213b9509fc1df16c66194ea168aed6c15110e9 changed the rules +as to when CSD can be enabled, but it also unconditionally enables CSD +with the implicit assumption that client-side shadows were the real +issue, and that we could work around that by drawing our own borders. +This also means that setting a titlebar for a GtkWindow will enable CSD +unconditionally. + +In reality, some window managers (like Matchbox) *only* support +server-side decorations, and will ignore all hints to the contrary, to +the point of drawing decorations at random locations on top of the +window. + +Since CSD are enabled unconditionally, the GTK_CSD environment variable +is also not a suitable escape hatch. + +In the grand tradition of asking ourselves if we should do something +just because we can, we should split the environment checks from the +checks on what the user requested; by doing that, we can also check +when enabling client-side decorations, and ideally bail out if needed. + +https://bugzilla.gnome.org/show_bug.cgi?id=750343 + +diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c +index 423c6bd..9fe882f 100644 +--- a/gtk/gtkwindow.c ++++ b/gtk/gtkwindow.c +@@ -4056,6 +4056,32 @@ gtk_window_supports_client_shadow (GtkWindow *window) + return TRUE; + } + ++static gboolean ++gtk_window_can_use_csd (GtkWindow *window) ++{ ++ const gchar *csd_env; ++ ++#ifdef GDK_WINDOWING_BROADWAY ++ if (GDK_IS_BROADWAY_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) ++ return TRUE; ++#endif ++ ++#ifdef GDK_WINDOWING_WAYLAND ++ if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) ++ return TRUE; ++#endif ++ ++#ifdef GDK_WINDOWING_MIR ++ if (GDK_IS_MIR_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) ++ return TRUE; ++#endif ++ ++ csd_env = g_getenv ("GTK_CSD"); ++ ++ /* If GTK_CSD is unset we default to CSD support */ ++ return csd_env == NULL || (strcmp (csd_env, "1") == 0); ++} ++ + static void + gtk_window_enable_csd (GtkWindow *window) + { +@@ -4063,6 +4089,10 @@ gtk_window_enable_csd (GtkWindow *window) + GtkWidget *widget = GTK_WIDGET (window); + GdkVisual *visual; + ++ /* If the environment does not support CSD, then there's no point in enabling them */ ++ if (!gtk_window_can_use_csd (window)) ++ return; ++ + /* We need a visual with alpha for client shadows */ + if (priv->use_client_shadow) + { +@@ -5839,7 +5869,6 @@ static gboolean + gtk_window_should_use_csd (GtkWindow *window) + { + GtkWindowPrivate *priv = window->priv; +- const gchar *csd_env; + + if (priv->csd_requested) + return TRUE; +@@ -5850,24 +5879,7 @@ gtk_window_should_use_csd (GtkWindow *window) + if (priv->type == GTK_WINDOW_POPUP) + return FALSE; + +-#ifdef GDK_WINDOWING_BROADWAY +- if (GDK_IS_BROADWAY_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) +- return TRUE; +-#endif +- +-#ifdef GDK_WINDOWING_WAYLAND +- if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) +- return TRUE; +-#endif +- +-#ifdef GDK_WINDOWING_MIR +- if (GDK_IS_MIR_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) +- return TRUE; +-#endif +- +- csd_env = g_getenv ("GTK_CSD"); +- +- return (g_strcmp0 (csd_env, "1") == 0); ++ return gtk_window_can_use_csd (window); + } + + static void +-- +cgit v0.10.2 + diff --git a/meta/recipes-gnome/gtk+/gtk+3/fix-flags-for-native.patch b/meta/recipes-gnome/gtk+/gtk+3/fix-flags-for-native.patch deleted file mode 100644 index 9ae1088..0000000 --- a/meta/recipes-gnome/gtk+/gtk+3/fix-flags-for-native.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 5e16904f94b5f5961f8f6e75716e6d7d228de119 Mon Sep 17 00:00:00 2001 -From: Robert Yang <liezhi.yang@windriver.com> -Date: Fri, 28 Mar 2014 03:10:12 +0000 -Subject: [PATCH] gtk/native/Makefile.am: unset target FLAGS for native build - -The target gtk+3 does a native build in its "native" directory, we need -unset the target FLAGS for native build, otherwise, there might be build -failures. - -Upstream-Status: Pending - -Signed-off-by: Robert Yang <liezhi.yang@windriver.com> ---- - gtk/native/Makefile.am | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/gtk/native/Makefile.am b/gtk/native/Makefile.am -index 64899e9..a1c814a 100644 ---- a/gtk/native/Makefile.am -+++ b/gtk/native/Makefile.am -@@ -3,6 +3,9 @@ AM_CFLAGS = @CFLAGS_FOR_BUILD@ - CPP = @CPP_FOR_BUILD@ - AM_CPPFLAGS = @CPPFLAGS_FOR_BUILD@ - AM_LDFLAGS = @LDFLAGS_FOR_BUILD@ -+CFLAGS = -+CPPFLAGS = -+LDFLAGS = - - if CROSS_COMPILING - if !USE_EXTERNAL_ICON_CACHE --- -1.8.3.4 - diff --git a/meta/recipes-gnome/gtk+/gtk+3_3.12.2.bb b/meta/recipes-gnome/gtk+/gtk+3_3.16.3.bb similarity index 75% rename from meta/recipes-gnome/gtk+/gtk+3_3.12.2.bb rename to meta/recipes-gnome/gtk+/gtk+3_3.16.3.bb index f4f1971..b73789e 100644 --- a/meta/recipes-gnome/gtk+/gtk+3_3.12.2.bb +++ b/meta/recipes-gnome/gtk+/gtk+3_3.16.3.bb @@ -4,11 +4,11 @@ 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://fix-flags-for-native.patch \ + file://Dont-force-csd.patch \ " -SRC_URI[md5sum] = "0d6d8f9f79132b3b47475d047b369b1c" -SRC_URI[sha256sum] = "61d74eea74231b1ea4b53084a9d6fc9917ab0e1d71b69d92cbf60a4b4fb385d0" +SRC_URI[md5sum] = "af22a1a753ea9b182babfed9d8b38228" +SRC_URI[sha256sum] = "2943fd4a6b02c2a9b2edd231c1d8f7a1d2f8d36996f14310d34f503dca9ebea4" S = "${WORKDIR}/gtk+-${PV}" -- 2.1.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/6] gtk-update-icon-cache-native: Upgrade, add binary 2015-06-11 13:24 [PATCH 0/6] GTK+3 upgrade and related changes Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 1/6] gtk+3: Upgrade to 3.16.3 Jussi Kukkonen @ 2015-06-11 13:24 ` Jussi Kukkonen 2015-06-12 8:52 ` Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 3/6] matchbox-session-sato: set GTK_CSD env var Jussi Kukkonen ` (3 subsequent siblings) 5 siblings, 1 reply; 8+ messages in thread From: Jussi Kukkonen @ 2015-06-11 13:24 UTC (permalink / raw) To: openembedded-core * Upgrade to GTK+ 3.16.3 * Add gtk-encode-symbolic-svg binary: it is used by icon themes (e.g. Adwaita) to generate png versions of svg icons. * Add a patch that removes Gdk dependency from gtk-encode-symbolic-svg: this way the native build stays slim. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> --- ...4.bb => gtk-update-icon-cache-native_3.16.3.bb} | 41 ++++++--- ...k-dependency-from-gtk-encode-symbolic-svg.patch | 102 +++++++++++++++++++++ 2 files changed, 129 insertions(+), 14 deletions(-) rename meta/recipes-gnome/gtk+/{gtk-update-icon-cache-native_3.4.4.bb => gtk-update-icon-cache-native_3.16.3.bb} (42%) create mode 100644 meta/recipes-gnome/gtk+/gtk-update-icon-cache/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch diff --git a/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb b/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.16.3.bb similarity index 42% rename from meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb rename to meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.16.3.bb index 73b7644..9f1c2f0 100644 --- a/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb +++ b/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.16.3.bb @@ -1,20 +1,23 @@ -SUMMARY = "gtk-update-icon-cache built natively" -DESCRIPTION = "Just gtk-update-icon-cache built from GTK+ natively, for on-host postinst script execution." +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 = "gdk-pixbuf-native" +DEPENDS = "glib-2.0-native gdk-pixbuf-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] = "af22a1a753ea9b182babfed9d8b38228" +SRC_URI[sha256sum] = "2943fd4a6b02c2a9b2edd231c1d8f7a1d2f8d36996f14310d34f503dca9ebea4" + 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" -SRC_URI = "http://download.gnome.org/sources/gtk+/3.4/gtk+-${PV}.tar.xz" -SRC_URI[md5sum] = "1b2cf29502a6394e8d4b30f7f5bb9131" -SRC_URI[sha256sum] = "f154e460075034da4c0ce89c320025dcd459da2a1fdf32d92a09522eaca242c7" - S = "${WORKDIR}/gtk+-${PV}" inherit pkgconfig native @@ -22,26 +25,36 @@ inherit pkgconfig native PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native" do_configure() { - # Quite ugly but defines enough to compile the tool. + # 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/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-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/meta/recipes-gnome/gtk+/gtk-update-icon-cache/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch b/meta/recipes-gnome/gtk+/gtk-update-icon-cache/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch new file mode 100644 index 0000000..237f803 --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk-update-icon-cache/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 <jussi.kukkonen@intel.com> +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 <jussi.kukkonen@intel.com> +--- + 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 <glib.h> + #include <gdk-pixbuf/gdk-pixdata.h> +-#include <gdk/gdk.h> + #include <glib/gi18n.h> + + #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, + "</svg>", + 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 + -- 2.1.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/6] gtk-update-icon-cache-native: Upgrade, add binary 2015-06-11 13:24 ` [PATCH 2/6] gtk-update-icon-cache-native: Upgrade, add binary Jussi Kukkonen @ 2015-06-12 8:52 ` Jussi Kukkonen 0 siblings, 0 replies; 8+ messages in thread From: Jussi Kukkonen @ 2015-06-12 8:52 UTC (permalink / raw) To: Patches and discussions about the oe-core layer Please don't pull this yet: I seem to still be missing a dependency on this recipe as building adwaita after wiping sysroot gives these errors from running gtk-encode-symbolic-svg: > Can't load file: Unrecognized image file format Jussi On 11 June 2015 at 16:24, Jussi Kukkonen <jussi.kukkonen@intel.com> wrote: > * Upgrade to GTK+ 3.16.3 > * Add gtk-encode-symbolic-svg binary: it is used by icon themes > (e.g. Adwaita) to generate png versions of svg icons. > * Add a patch that removes Gdk dependency from gtk-encode-symbolic-svg: > this way the native build stays slim. > > Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> > --- > ...4.bb => gtk-update-icon-cache-native_3.16.3.bb} | 41 ++++++--- > ...k-dependency-from-gtk-encode-symbolic-svg.patch | 102 +++++++++++++++++++++ > 2 files changed, 129 insertions(+), 14 deletions(-) > rename meta/recipes-gnome/gtk+/{gtk-update-icon-cache-native_3.4.4.bb => gtk-update-icon-cache-native_3.16.3.bb} (42%) > create mode 100644 meta/recipes-gnome/gtk+/gtk-update-icon-cache/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch > > diff --git a/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb b/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.16.3.bb > similarity index 42% > rename from meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb > rename to meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.16.3.bb > index 73b7644..9f1c2f0 100644 > --- a/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb > +++ b/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.16.3.bb > @@ -1,20 +1,23 @@ > -SUMMARY = "gtk-update-icon-cache built natively" > -DESCRIPTION = "Just gtk-update-icon-cache built from GTK+ natively, for on-host postinst script execution." > +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 = "gdk-pixbuf-native" > +DEPENDS = "glib-2.0-native gdk-pixbuf-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] = "af22a1a753ea9b182babfed9d8b38228" > +SRC_URI[sha256sum] = "2943fd4a6b02c2a9b2edd231c1d8f7a1d2f8d36996f14310d34f503dca9ebea4" > + > 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" > > -SRC_URI = "http://download.gnome.org/sources/gtk+/3.4/gtk+-${PV}.tar.xz" > -SRC_URI[md5sum] = "1b2cf29502a6394e8d4b30f7f5bb9131" > -SRC_URI[sha256sum] = "f154e460075034da4c0ce89c320025dcd459da2a1fdf32d92a09522eaca242c7" > - > S = "${WORKDIR}/gtk+-${PV}" > > inherit pkgconfig native > @@ -22,26 +25,36 @@ inherit pkgconfig native > PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native" > > do_configure() { > - # Quite ugly but defines enough to compile the tool. > + # 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/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-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/meta/recipes-gnome/gtk+/gtk-update-icon-cache/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch b/meta/recipes-gnome/gtk+/gtk-update-icon-cache/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch > new file mode 100644 > index 0000000..237f803 > --- /dev/null > +++ b/meta/recipes-gnome/gtk+/gtk-update-icon-cache/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 <jussi.kukkonen@intel.com> > +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 <jussi.kukkonen@intel.com> > +--- > + 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 <glib.h> > + #include <gdk-pixbuf/gdk-pixdata.h> > +-#include <gdk/gdk.h> > + #include <glib/gi18n.h> > + > + #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, > + "</svg>", > + 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 > + > -- > 2.1.4 > On 11 June 2015 at 16:24, Jussi Kukkonen <jussi.kukkonen@intel.com> wrote: > * Upgrade to GTK+ 3.16.3 > * Add gtk-encode-symbolic-svg binary: it is used by icon themes > (e.g. Adwaita) to generate png versions of svg icons. > * Add a patch that removes Gdk dependency from gtk-encode-symbolic-svg: > this way the native build stays slim. > > Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> > --- > ...4.bb => gtk-update-icon-cache-native_3.16.3.bb} | 41 ++++++--- > ...k-dependency-from-gtk-encode-symbolic-svg.patch | 102 +++++++++++++++++++++ > 2 files changed, 129 insertions(+), 14 deletions(-) > rename meta/recipes-gnome/gtk+/{gtk-update-icon-cache-native_3.4.4.bb => gtk-update-icon-cache-native_3.16.3.bb} (42%) > create mode 100644 meta/recipes-gnome/gtk+/gtk-update-icon-cache/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch > > diff --git a/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb b/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.16.3.bb > similarity index 42% > rename from meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb > rename to meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.16.3.bb > index 73b7644..9f1c2f0 100644 > --- a/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb > +++ b/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.16.3.bb > @@ -1,20 +1,23 @@ > -SUMMARY = "gtk-update-icon-cache built natively" > -DESCRIPTION = "Just gtk-update-icon-cache built from GTK+ natively, for on-host postinst script execution." > +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 = "gdk-pixbuf-native" > +DEPENDS = "glib-2.0-native gdk-pixbuf-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] = "af22a1a753ea9b182babfed9d8b38228" > +SRC_URI[sha256sum] = "2943fd4a6b02c2a9b2edd231c1d8f7a1d2f8d36996f14310d34f503dca9ebea4" > + > 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" > > -SRC_URI = "http://download.gnome.org/sources/gtk+/3.4/gtk+-${PV}.tar.xz" > -SRC_URI[md5sum] = "1b2cf29502a6394e8d4b30f7f5bb9131" > -SRC_URI[sha256sum] = "f154e460075034da4c0ce89c320025dcd459da2a1fdf32d92a09522eaca242c7" > - > S = "${WORKDIR}/gtk+-${PV}" > > inherit pkgconfig native > @@ -22,26 +25,36 @@ inherit pkgconfig native > PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native" > > do_configure() { > - # Quite ugly but defines enough to compile the tool. > + # 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/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-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/meta/recipes-gnome/gtk+/gtk-update-icon-cache/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch b/meta/recipes-gnome/gtk+/gtk-update-icon-cache/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch > new file mode 100644 > index 0000000..237f803 > --- /dev/null > +++ b/meta/recipes-gnome/gtk+/gtk-update-icon-cache/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 <jussi.kukkonen@intel.com> > +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 <jussi.kukkonen@intel.com> > +--- > + 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 <glib.h> > + #include <gdk-pixbuf/gdk-pixdata.h> > +-#include <gdk/gdk.h> > + #include <glib/gi18n.h> > + > + #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, > + "</svg>", > + 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 > + > -- > 2.1.4 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/6] matchbox-session-sato: set GTK_CSD env var 2015-06-11 13:24 [PATCH 0/6] GTK+3 upgrade and related changes Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 1/6] gtk+3: Upgrade to 3.16.3 Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 2/6] gtk-update-icon-cache-native: Upgrade, add binary Jussi Kukkonen @ 2015-06-11 13:24 ` Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 4/6] adwaita-icon-theme: Add new icon theme for GTK+ Jussi Kukkonen ` (2 subsequent siblings) 5 siblings, 0 replies; 8+ messages in thread From: Jussi Kukkonen @ 2015-06-11 13:24 UTC (permalink / raw) To: openembedded-core Sato practically requires server side decorations as matchbox panel draws on top of the title bar. Setting "GTK_CSD=0" informs GTK+3 that we really want server side decorations even for apps designed for CSD. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> --- meta/recipes-sato/matchbox-sato/matchbox-session-sato/session | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/meta/recipes-sato/matchbox-sato/matchbox-session-sato/session b/meta/recipes-sato/matchbox-sato/matchbox-session-sato/session index a3138b6..42ce483 100644 --- a/meta/recipes-sato/matchbox-sato/matchbox-session-sato/session +++ b/meta/recipes-sato/matchbox-sato/matchbox-session-sato/session @@ -14,6 +14,10 @@ else KEYBOARD_APPLET="keyboard" fi +# Tell GTK+3 we really want server side decorations, even with +# GtkHeaderBar using applications: Without that mb-panel will render +# on top of the client side decorations. +export GTK_CSD=0 matchbox-desktop & -- 2.1.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/6] adwaita-icon-theme: Add new icon theme for GTK+ 2015-06-11 13:24 [PATCH 0/6] GTK+3 upgrade and related changes Jussi Kukkonen ` (2 preceding siblings ...) 2015-06-11 13:24 ` [PATCH 3/6] matchbox-session-sato: set GTK_CSD env var Jussi Kukkonen @ 2015-06-11 13:24 ` Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 5/6] sato-icon-theme: Inherit Adwaita, not gnome-icon-theme Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 6/6] midori: Depend on " Jussi Kukkonen 5 siblings, 0 replies; 8+ messages in thread From: Jussi Kukkonen @ 2015-06-11 13:24 UTC (permalink / raw) To: openembedded-core Adwaita is a complete icon theme for GTK+, and the current GNOME icon theme. Most importantly it includes the symbolic icons used extensively in GTK+3 widgets. * Package the icon theme and cursor theme separately * Backport a build fix for the cursor theme to cut installed size by 11MB. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> --- .../Create-symlinks-when-installing-cursors.patch | 178 +++++++++++++++++++++ .../gnome/adwaita-icon-theme_3.16.2.1.bb | 34 ++++ 2 files changed, 212 insertions(+) create mode 100644 meta/recipes-gnome/gnome/adwaita-icon-theme/Create-symlinks-when-installing-cursors.patch create mode 100644 meta/recipes-gnome/gnome/adwaita-icon-theme_3.16.2.1.bb diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme/Create-symlinks-when-installing-cursors.patch b/meta/recipes-gnome/gnome/adwaita-icon-theme/Create-symlinks-when-installing-cursors.patch new file mode 100644 index 0000000..446f9c9 --- /dev/null +++ b/meta/recipes-gnome/gnome/adwaita-icon-theme/Create-symlinks-when-installing-cursors.patch @@ -0,0 +1,178 @@ +Create symlinks when installing cursors + +This cuts down the installed size by ~11MB. + +Upstream-Status: Backport +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> + + +From 1e8c0dd0a2de5e1d5ff60ff11f131e88510c7f50 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=D0=A0=D1=83=D1=81=D0=BB=D0=B0=D0=BD=20=D0=98=D0=B6=D0=B1?= + =?UTF-8?q?=D1=83=D0=BB=D0=B0=D1=82=D0=BE=D0=B2?= <lrn1986@gmail.com> +Date: Sat, 16 May 2015 07:49:19 +0000 +Subject: [PATCH] Create symlinks when installing cursors + +Also support creating symlinks for W32 cursors (including L and XL variants). + +https://bugzilla.gnome.org/show_bug.cgi?id=749223 +--- + Makefile.am | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + configure.ac | 24 ++++++++++++++++ + 2 files changed, 117 insertions(+) + +diff --git a/Makefile.am b/Makefile.am +index fed3972..4d00268 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -6,6 +6,17 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + + cursordir = $(datadir)/icons/Adwaita/cursors + cursor_DATA = $(wildcard $(srcdir)/Adwaita/cursors/*) ++if ENABLE_L_XL_VARIANTS ++cursorldir = $(datadir)/icons/Adwaita-Large/cursors ++cursorl_DATA = $(wildcard $(srcdir)/Adwaita-Large/cursors/*) ++cursorxldir = $(datadir)/icons/Adwaita-ExtraLarge/cursors ++cursorxl_DATA = $(wildcard $(srcdir)/Adwaita-ExtraLarge/cursors/*) ++else ++cursorldir = ++cursorl_DATA = ++cursorxldir = ++cursorxl_DATA = ++endif + + theme_in_files = index.theme.in.in + theme_DATA = $(theme_in_files:.theme.in.in=.theme) +@@ -99,6 +110,88 @@ install-data-local: + fi + + install-data-hook: ++ cd $(DESTDIR)$(cursordir) && \ ++ if test "x$(enable_w32_cursors)" = "xyes"; \ ++ then \ ++ cur=.cur && \ ++ ani=.ani; \ ++ else \ ++ cur= && \ ++ ani= ; \ ++ fi; \ ++ if test "x$(enable_l_xl_variants)" = "xyes"; \ ++ then \ ++ themedirs="$(cursordir) $(cursorldir) $(cursorxldir)"; \ ++ else \ ++ themedirs="$(cursordir)"; \ ++ fi; \ ++ for d in $$themedirs; \ ++ do \ ++ cd $(DESTDIR)$$d && \ ++ echo Creating symlinks in $(DESTDIR)$$d && \ ++ $(LN_S) -f dotbox$$cur draped_box$$cur && \ ++ $(LN_S) -f dotbox$$cur icon$$cur && \ ++ $(LN_S) -f dotbox$$cur target$$cur && \ ++ $(LN_S) -f dotbox$$cur dot_box_mask$$cur && \ ++ $(LN_S) -f X_cursor$$cur pirate$$cur && \ ++ $(LN_S) -f left_ptr_watch$$ani 08e8e1c95fe2fc01f976f1e063a24ccd$$ani && \ ++ $(LN_S) -f left_ptr_watch$$ani 3ecb610c1bf2410f44200f48c40d3599$$ani && \ ++ $(LN_S) -f left_ptr$$cur arrow$$cur && \ ++ $(LN_S) -f left_ptr$$cur top_left_arrow$$cur && \ ++ $(LN_S) -f right_ptr$$cur draft_large$$cur && \ ++ $(LN_S) -f right_ptr$$cur draft_small$$cur && \ ++ $(LN_S) -f move$$cur 4498f0e0c1937ffe01fd06f973665830$$cur && \ ++ $(LN_S) -f move$$cur 9081237383d90e509aa00f00170e968f$$cur && \ ++ $(LN_S) -f copy$$cur 1081e37283d90000800003c07f3ef6bf$$cur && \ ++ $(LN_S) -f copy$$cur 6407b0e94181790501fd1e167b474872$$cur && \ ++ $(LN_S) -f cross$$cur cross_reverse$$cur && \ ++ $(LN_S) -f cross$$cur diamond_cross$$cur && \ ++ $(LN_S) -f hand1$$cur grab$$cur && \ ++ $(LN_S) -f hand2$$cur 9d800788f1b08800ae810202380a0822$$cur && \ ++ $(LN_S) -f hand2$$cur e29285e634086352946a0e7090d73106$$cur && \ ++ $(LN_S) -f hand2$$cur hand$$cur && \ ++ $(LN_S) -f grabbing$$cur fleur$$cur && \ ++ $(LN_S) -f question_arrow$$cur d9ce0ab605698f320427677b458ad60b$$cur && \ ++ $(LN_S) -f question_arrow$$cur 5c6cd98b3f3ebcb1f9c7f1c204630408$$cur && \ ++ $(LN_S) -f question_arrow$$cur help$$cur && \ ++ $(LN_S) -f question_arrow$$cur left_ptr_help$$cur && \ ++ $(LN_S) -f link$$cur 3085a0e285430894940527032f8b26df$$cur && \ ++ $(LN_S) -f link$$cur 640fb0e74195791501fd1ed57b41487f$$cur && \ ++ $(LN_S) -f crossed_circle$$cur 03b6e0fcb3499374a867c041f52298f0$$cur && \ ++ $(LN_S) -f fd_double_arrow$$cur fcf1c3c7cd4491d801f1e1c78f100000$$cur && \ ++ $(LN_S) -f bd_double_arrow$$cur c7088f0f3e6c8088236ef8e1e3e70000$$cur && \ ++ $(LN_S) -f sb_h_double_arrow$$cur h_double_arrow$$cur && \ ++ $(LN_S) -f sb_h_double_arrow$$cur 14fef782d02440884392942c11205230$$cur && \ ++ $(LN_S) -f h_double_arrow$$cur 028006030e0e7ebffc7f7070c0600140$$cur && \ ++ $(LN_S) -f sb_v_double_arrow$$cur double_arrow$$cur && \ ++ $(LN_S) -f sb_v_double_arrow$$cur v_double_arrow$$cur && \ ++ $(LN_S) -f sb_v_double_arrow$$cur 2870a09082c103050810ffdffffe0204$$cur && \ ++ $(LN_S) -f v_double_arrow$$cur 00008160000006810000408080010102$$cur && \ ++ $(LN_S) -f left_ptr$$cur default$$cur && \ ++ $(LN_S) -f hand$$cur pointer$$cur && \ ++ $(LN_S) -f left_ptr_watch$$ani progress$$ani && \ ++ $(LN_S) -f watch$$ani wait$$ani && \ ++ $(LN_S) -f cross$$cur crosshair$$cur && \ ++ $(LN_S) -f xterm$$cur text$$cur && \ ++ $(LN_S) -f dnd-link$$cur alias$$cur && \ ++ $(LN_S) -f dnd-copy$$cur copy$$cur && \ ++ $(LN_S) -f dnd-none$$cur no-drop$$cur && \ ++ $(LN_S) -f crossed_circle$$cur not-allowed$$cur && \ ++ $(LN_S) -f sb_h_double_arrow$$cur col-resize$$cur && \ ++ $(LN_S) -f sb_v_double_arrow$$cur row-resize$$cur && \ ++ $(LN_S) -f top_side$$cur n-resize$$cur && \ ++ $(LN_S) -f right_side$$cur e-resize$$cur && \ ++ $(LN_S) -f bottom_side$$cur s-resize$$cur && \ ++ $(LN_S) -f left_side$$cur w-resize$$cur && \ ++ $(LN_S) -f top_right_corner$$cur ne-resize$$cur && \ ++ $(LN_S) -f top_left_corner$$cur nw-resize$$cur && \ ++ $(LN_S) -f bottom_right_corner$$cur se-resize$$cur && \ ++ $(LN_S) -f bottom_left_corner$$cur sw-resize$$cur && \ ++ $(LN_S) -f sb_h_double_arrow$$cur ew-resize$$cur && \ ++ $(LN_S) -f sb_v_double_arrow$$cur ns-resize$$cur && \ ++ $(LN_S) -f fd_double_arrow$$cur nesw-resize$$cur && \ ++ $(LN_S) -f bd_double_arrow$$cur nwse-resize$$cur; \ ++ done + if test -z "$(DESTDIR)" && test -n "$(GTK_UPDATE_ICON_CACHE)" ; then \ + $(GTK_UPDATE_ICON_CACHE) -q $(DESTDIR)$(themedir); \ + fi +diff --git a/configure.ac b/configure.ac +index 9e4d8a0..312b24c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -31,6 +31,7 @@ AC_SUBST([render_sizes], ["8x8 16x16 22x22 24x24 32x32 48x48 256x256"]) + AC_SUBST([symbolic_render_sizes], [""]) + AC_SUBST([install_sizes], ["8x8 16x16 22x22 24x24 32x32 48x48 64x64 96x96 256x256"]) + ++AC_PROG_LN_S + AC_PATH_PROG(GTK_UPDATE_ICON_CACHE, gtk-update-icon-cache) + + # need git, icontool, and inkscape for rendering +@@ -56,6 +57,29 @@ if test "x$GTK_ENCODE_SYMBOLIC_SVG" = "xfalse"; then + fi + AC_SUBST(symbolic_encode_sizes) + ++AC_ARG_ENABLE([w32-cursors], ++ [AS_HELP_STRING([--enable-w32-cursors], ++ [Make and install Windows cursors (.cur and .ani) instead of X cursors])], ++ [case "${enableval}" in ++ yes) enable_w32_cursors=yes ;; ++ no) enable_w32_cursors=no ;; ++ *) AC_MSG_ERROR([bad value ${enableval} for --enable-w32-cursors]) ;; ++ esac], ++ [enable_w32_cursors=no]) ++AC_SUBST(enable_w32_cursors) ++ ++AC_ARG_ENABLE([l-xl-variants], ++ [AS_HELP_STRING([--enable-l-xl-variants], ++ [Also make and install Large and Extra Large Windows cursor versions])], ++ [case "${enableval}" in ++ yes) enable_l_xl_variants=yes ;; ++ no) enable_l_xl_variants=no ;; ++ *) AC_MSG_ERROR([bad value ${enableval} for --enable-l-xl-variants]) ;; ++ esac], ++ [enable_l_xl_variants=no]) ++AC_SUBST(enable_l_xl_variants) ++AM_CONDITIONAL([ENABLE_L_XL_VARIANTS], [test x$enable_l_xl_variants = xyes]) ++ + AC_CONFIG_FILES([ + Makefile + adwaita-icon-theme.pc +-- +2.1.4 + diff --git a/meta/recipes-gnome/gnome/adwaita-icon-theme_3.16.2.1.bb b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.16.2.1.bb new file mode 100644 index 0000000..c656179 --- /dev/null +++ b/meta/recipes-gnome/gnome/adwaita-icon-theme_3.16.2.1.bb @@ -0,0 +1,34 @@ +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 autotools pkgconfig gettext gtk-icon-cache + +DEPENDS += "intltool-native" + +MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" +SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ + file://Create-symlinks-when-installing-cursors.patch \ + " + +SRC_URI[md5sum] = "9ef86952c947aa27a1a888b7735d60b3" +SRC_URI[sha256sum] = "b4556dfbf555d4fac12d4d5c12f7519de0d43ec42a1b649611439a50bf7acb96" + +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}" + +FILES_${PN}-cursors = "${prefix}/share/icons/Adwaita/cursors/" +FILES_${PN} = "${prefix}/share/icons/Adwaita/ \ + ${prefix}/share/pkgconfig/adwaita-icon-theme.pc" + +RRECOMMENDS_${PN} += "librsvg-gtk" -- 2.1.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 5/6] sato-icon-theme: Inherit Adwaita, not gnome-icon-theme 2015-06-11 13:24 [PATCH 0/6] GTK+3 upgrade and related changes Jussi Kukkonen ` (3 preceding siblings ...) 2015-06-11 13:24 ` [PATCH 4/6] adwaita-icon-theme: Add new icon theme for GTK+ Jussi Kukkonen @ 2015-06-11 13:24 ` Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 6/6] midori: Depend on " Jussi Kukkonen 5 siblings, 0 replies; 8+ messages in thread From: Jussi Kukkonen @ 2015-06-11 13:24 UTC (permalink / raw) To: openembedded-core Adwaita is the current GNOME icon set and provides the symbolic icons gnome-icon-theme does not. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> --- .../sato-icon-theme/0001-Inherit-the-GNOME-icon-theme.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-sato/sato-icon-theme/sato-icon-theme/0001-Inherit-the-GNOME-icon-theme.patch b/meta/recipes-sato/sato-icon-theme/sato-icon-theme/0001-Inherit-the-GNOME-icon-theme.patch index fa595dc..2c176ee 100644 --- a/meta/recipes-sato/sato-icon-theme/sato-icon-theme/0001-Inherit-the-GNOME-icon-theme.patch +++ b/meta/recipes-sato/sato-icon-theme/sato-icon-theme/0001-Inherit-the-GNOME-icon-theme.patch @@ -22,7 +22,7 @@ index c4b03a7..688fbbf 100644 [Icon Theme] Name=Sato Comment=Sato icon theme -+Inherits=gnome ++Inherits=Adwaita Directories=16x16/apps,16x16/status,16x16/stock,16x16/places,16x16/mimetypes,16x16/devices,16x16/actions,22x22/apps,22x22/status,22x22/stock,22x22/places,22x22/mimetypes,22x22/devices,22x22/actions,32x32/apps,32x32/status,32x32/stock,32x32/places,32x32/mimetypes,32x32/devices,32x32/actions,48x48/apps,48x48/status,48x48/stock,48x48/places,48x48/mimetypes,48x48/devices,48x48/actions,64x64/apps,64x64/status,64x64/stock,64x64/places,64x64/mimetypes,64x64/devices,64x64/actions, -- 2.1.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 6/6] midori: Depend on Adwaita, not gnome-icon-theme 2015-06-11 13:24 [PATCH 0/6] GTK+3 upgrade and related changes Jussi Kukkonen ` (4 preceding siblings ...) 2015-06-11 13:24 ` [PATCH 5/6] sato-icon-theme: Inherit Adwaita, not gnome-icon-theme Jussi Kukkonen @ 2015-06-11 13:24 ` Jussi Kukkonen 5 siblings, 0 replies; 8+ messages in thread From: Jussi Kukkonen @ 2015-06-11 13:24 UTC (permalink / raw) To: openembedded-core Adwaita is the current GNOME icon theme and provides the symbolic icons gnome-icon-theme does not. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> --- meta/recipes-sato/midori/midori_0.5.8.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-sato/midori/midori_0.5.8.bb b/meta/recipes-sato/midori/midori_0.5.8.bb index aa1b395..1c027fe4 100644 --- a/meta/recipes-sato/midori/midori_0.5.8.bb +++ b/meta/recipes-sato/midori/midori_0.5.8.bb @@ -26,6 +26,6 @@ EXTRA_OECMAKE = " \ TARGET_CC_ARCH += "${LDFLAGS}" -RRECOMMENDS_${PN} += "glib-networking ca-certificates gnome-icon-theme" +RRECOMMENDS_${PN} += "glib-networking ca-certificates adwaita-icon-theme" FILES_${PN} += "${datadir}/appdata" -- 2.1.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-06-12 8:53 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-06-11 13:24 [PATCH 0/6] GTK+3 upgrade and related changes Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 1/6] gtk+3: Upgrade to 3.16.3 Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 2/6] gtk-update-icon-cache-native: Upgrade, add binary Jussi Kukkonen 2015-06-12 8:52 ` Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 3/6] matchbox-session-sato: set GTK_CSD env var Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 4/6] adwaita-icon-theme: Add new icon theme for GTK+ Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 5/6] sato-icon-theme: Inherit Adwaita, not gnome-icon-theme Jussi Kukkonen 2015-06-11 13:24 ` [PATCH 6/6] midori: Depend on " Jussi Kukkonen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox