diff options
5 files changed, 167 insertions, 49 deletions
diff --git a/meta/classes/gtk-icon-cache.bbclass b/meta/classes/gtk-icon-cache.bbclass index 16e31b94b9..12358e3aed 100644 --- a/meta/classes/gtk-icon-cache.bbclass +++ b/meta/classes/gtk-icon-cache.bbclass | |||
@@ -1,6 +1,6 @@ | |||
1 | FILES_${PN} += "${datadir}/icons/hicolor" | 1 | FILES_${PN} += "${datadir}/icons/hicolor" |
2 | 2 | ||
3 | DEPENDS += "${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} gtk-update-icon-cache-native" | 3 | DEPENDS += "${@['hicolor-icon-theme', '']['${BPN}' == 'hicolor-icon-theme']} gtk-icon-utils-native" |
4 | 4 | ||
5 | gtk_icon_cache_postinst() { | 5 | gtk_icon_cache_postinst() { |
6 | if [ "x$D" != "x" ]; then | 6 | if [ "x$D" != "x" ]; then |
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 2a050dc7bc..4e6afef541 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass | |||
@@ -815,7 +815,7 @@ def setscene_depvalid(task, taskdependees, notneeded, d): | |||
815 | return x.endswith("-native") or "-cross-" in x or "-crosssdk" in x | 815 | return x.endswith("-native") or "-cross-" in x or "-crosssdk" in x |
816 | 816 | ||
817 | def isPostInstDep(x): | 817 | def isPostInstDep(x): |
818 | if x in ["qemu-native", "gdk-pixbuf-native", "qemuwrapper-cross", "depmodwrapper-cross", "systemd-systemctl-native", "gtk-update-icon-cache-native"]: | 818 | if x in ["qemu-native", "gdk-pixbuf-native", "qemuwrapper-cross", "depmodwrapper-cross", "systemd-systemctl-native", "gtk-icon-utils-native"]: |
819 | return True | 819 | return True |
820 | return False | 820 | return False |
821 | 821 | ||
diff --git a/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.16.4.bb b/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.16.4.bb new file mode 100644 index 0000000000..d433b9077b --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk-icon-utils-native_3.16.4.bb | |||
@@ -0,0 +1,63 @@ | |||
1 | SUMMARY = "Native icon utils for GTK+" | ||
2 | DESCRIPTION = "gtk-update-icon-cache and gtk-encode-symbolic-svg built from GTK+ natively, for build time and on-host postinst script execution." | ||
3 | SECTION = "libs" | ||
4 | |||
5 | DEPENDS = "glib-2.0-native gdk-pixbuf-native librsvg-native" | ||
6 | |||
7 | LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" | ||
8 | |||
9 | MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" | ||
10 | |||
11 | SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ | ||
12 | file://Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch" | ||
13 | SRC_URI[md5sum] = "c7497aaf6730524a127597b768a73bd7" | ||
14 | SRC_URI[sha256sum] = "1ee5dbd7a4cb81a91eaa1b7ae64ba5a3eab6a3c0a764155583ab96524590fc8e" | ||
15 | |||
16 | LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ | ||
17 | file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ | ||
18 | file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ | ||
19 | file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1" | ||
20 | |||
21 | S = "${WORKDIR}/gtk+-${PV}" | ||
22 | |||
23 | inherit pkgconfig native | ||
24 | |||
25 | PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native" | ||
26 | |||
27 | do_configure() { | ||
28 | # Quite ugly but defines enough to compile the tools. | ||
29 | if ! test -f gtk/config.h; then | ||
30 | echo "#define GETTEXT_PACKAGE \"gtk30\"" >> gtk/config.h | ||
31 | echo "#define HAVE_UNISTD_H 1" >> gtk/config.h | ||
32 | echo "#define HAVE_FTW_H 1" >> gtk/config.h | ||
33 | fi | ||
34 | if ! test -f gdk/config.h; then | ||
35 | touch gdk/config.h | ||
36 | fi | ||
37 | } | ||
38 | |||
39 | do_compile() { | ||
40 | ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \ | ||
41 | ${S}/gtk/updateiconcache.c \ | ||
42 | $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gdk-pixbuf-2.0) \ | ||
43 | -o gtk-update-icon-cache | ||
44 | |||
45 | ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} \ | ||
46 | ${S}/gtk/encodesymbolic.c \ | ||
47 | $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gio-2.0 gdk-pixbuf-2.0) \ | ||
48 | -o gtk-encode-symbolic-svg | ||
49 | } | ||
50 | |||
51 | do_install() { | ||
52 | install -d ${D}${bindir} | ||
53 | install -m 0755 ${B}/gtk-update-icon-cache ${D}${bindir} | ||
54 | install -m 0755 ${B}/gtk-encode-symbolic-svg ${D}${bindir} | ||
55 | |||
56 | create_wrapper ${D}/${bindir}/gtk-update-icon-cache \ | ||
57 | GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache | ||
58 | create_wrapper ${D}/${bindir}/gtk-encode-symbolic-svg \ | ||
59 | GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache | ||
60 | } | ||
61 | |||
62 | # Prevent bitbake from optimizing away the native librsvg sysroot population | ||
63 | do_populate_sysroot_setscene[depends] += "librsvg-native:do_populate_sysroot_setscene" | ||
diff --git a/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch b/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch new file mode 100644 index 0000000000..237f803755 --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk-icon-utils/Remove-Gdk-dependency-from-gtk-encode-symbolic-svg.patch | |||
@@ -0,0 +1,102 @@ | |||
1 | From 4d09ff324419fe4e671233044e424378da53969b Mon Sep 17 00:00:00 2001 | ||
2 | From: Jussi Kukkonen <jussi.kukkonen@intel.com> | ||
3 | Date: Tue, 9 Jun 2015 14:20:30 +0300 | ||
4 | Subject: [PATCH] Remove Gdk-dependency from gtk-encode-symbolic-svg | ||
5 | |||
6 | Building gtk-encode-symbolic-svg without building Gdk is useful | ||
7 | as only the icon tools are needed on the native build: this makes | ||
8 | native build much faster and requires much less dependencies. | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | |||
12 | Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> | ||
13 | --- | ||
14 | gtk/encodesymbolic.c | 36 ++++++++++-------------------------- | ||
15 | 1 file changed, 10 insertions(+), 26 deletions(-) | ||
16 | |||
17 | diff --git a/gtk/encodesymbolic.c b/gtk/encodesymbolic.c | ||
18 | index 9f7d015..1f07563 100644 | ||
19 | --- a/gtk/encodesymbolic.c | ||
20 | +++ b/gtk/encodesymbolic.c | ||
21 | @@ -19,7 +19,6 @@ | ||
22 | |||
23 | #include <glib.h> | ||
24 | #include <gdk-pixbuf/gdk-pixdata.h> | ||
25 | -#include <gdk/gdk.h> | ||
26 | #include <glib/gi18n.h> | ||
27 | |||
28 | #ifdef HAVE_UNISTD_H | ||
29 | @@ -43,30 +42,18 @@ static GdkPixbuf * | ||
30 | load_symbolic_svg (char *file_data, gsize file_len, | ||
31 | int width, | ||
32 | int height, | ||
33 | - const GdkRGBA *fg, | ||
34 | - const GdkRGBA *success_color, | ||
35 | - const GdkRGBA *warning_color, | ||
36 | - const GdkRGBA *error_color, | ||
37 | + const char *css_fg, | ||
38 | + const char *css_success, | ||
39 | + const char *css_warning, | ||
40 | + const char *css_error, | ||
41 | GError **error) | ||
42 | { | ||
43 | GInputStream *stream; | ||
44 | GdkPixbuf *pixbuf; | ||
45 | - gchar *css_fg; | ||
46 | - gchar *css_success; | ||
47 | - gchar *css_warning; | ||
48 | - gchar *css_error; | ||
49 | gchar *data; | ||
50 | gchar *svg_width, *svg_height; | ||
51 | gchar *escaped_file_data; | ||
52 | |||
53 | - css_fg = gdk_rgba_to_string (fg); | ||
54 | - | ||
55 | - css_success = css_warning = css_error = NULL; | ||
56 | - | ||
57 | - css_warning = gdk_rgba_to_string (warning_color); | ||
58 | - css_error = gdk_rgba_to_string (error_color); | ||
59 | - css_success = gdk_rgba_to_string (success_color); | ||
60 | - | ||
61 | /* Fetch size from the original icon */ | ||
62 | stream = g_memory_input_stream_new_from_data (file_data, file_len, NULL); | ||
63 | pixbuf = gdk_pixbuf_new_from_stream (stream, NULL, error); | ||
64 | @@ -105,10 +92,6 @@ load_symbolic_svg (char *file_data, gsize file_len, | ||
65 | "</svg>", | ||
66 | NULL); | ||
67 | g_free (escaped_file_data); | ||
68 | - g_free (css_fg); | ||
69 | - g_free (css_warning); | ||
70 | - g_free (css_error); | ||
71 | - g_free (css_success); | ||
72 | g_free (svg_width); | ||
73 | g_free (svg_height); | ||
74 | |||
75 | @@ -167,7 +150,8 @@ make_symbolic_pixbuf (char *file, | ||
76 | GError **error) | ||
77 | |||
78 | { | ||
79 | - GdkRGBA r = { 1,0,0,1}, g = {0,1,0,1}; | ||
80 | + const char r[] = "rgba(255,0,0,1)"; | ||
81 | + const char g[] = "rgba(0,255,0,1)"; | ||
82 | GdkPixbuf *loaded; | ||
83 | GdkPixbuf *pixbuf; | ||
84 | int plane; | ||
85 | @@ -196,10 +180,10 @@ make_symbolic_pixbuf (char *file, | ||
86 | * the "rest", as all color fractions should add up to 1. | ||
87 | */ | ||
88 | loaded = load_symbolic_svg (file_data, file_len, width, height, | ||
89 | - &g, | ||
90 | - plane == 0 ? &r : &g, | ||
91 | - plane == 1 ? &r : &g, | ||
92 | - plane == 2 ? &r : &g, | ||
93 | + g, | ||
94 | + plane == 0 ? r : g, | ||
95 | + plane == 1 ? r : g, | ||
96 | + plane == 2 ? r : g, | ||
97 | error); | ||
98 | if (loaded == NULL) | ||
99 | return NULL; | ||
100 | -- | ||
101 | 2.1.4 | ||
102 | |||
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.4.4.bb deleted file mode 100644 index 73b7644845..0000000000 --- a/meta/recipes-gnome/gtk+/gtk-update-icon-cache-native_3.4.4.bb +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | SUMMARY = "gtk-update-icon-cache built natively" | ||
2 | DESCRIPTION = "Just gtk-update-icon-cache built from GTK+ natively, for on-host postinst script execution." | ||
3 | SECTION = "libs" | ||
4 | |||
5 | DEPENDS = "gdk-pixbuf-native" | ||
6 | |||
7 | LICENSE = "LGPLv2 & LGPLv2+ & LGPLv2.1+" | ||
8 | |||
9 | LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2 \ | ||
10 | file://gtk/gtk.h;endline=25;md5=1d8dc0fccdbfa26287a271dce88af737 \ | ||
11 | file://gdk/gdk.h;endline=25;md5=c920ce39dc88c6f06d3e7c50e08086f2 \ | ||
12 | file://tests/testgtk.c;endline=25;md5=cb732daee1d82af7a2bf953cf3cf26f1" | ||
13 | |||
14 | SRC_URI = "http://download.gnome.org/sources/gtk+/3.4/gtk+-${PV}.tar.xz" | ||
15 | SRC_URI[md5sum] = "1b2cf29502a6394e8d4b30f7f5bb9131" | ||
16 | SRC_URI[sha256sum] = "f154e460075034da4c0ce89c320025dcd459da2a1fdf32d92a09522eaca242c7" | ||
17 | |||
18 | S = "${WORKDIR}/gtk+-${PV}" | ||
19 | |||
20 | inherit pkgconfig native | ||
21 | |||
22 | PKG_CONFIG_FOR_BUILD = "${STAGING_BINDIR_NATIVE}/pkg-config-native" | ||
23 | |||
24 | do_configure() { | ||
25 | # Quite ugly but defines enough to compile the tool. | ||
26 | if ! test -f gtk/config.h; then | ||
27 | echo "#define GETTEXT_PACKAGE \"gtk30\"" >> gtk/config.h | ||
28 | echo "#define HAVE_UNISTD_H 1" >> gtk/config.h | ||
29 | echo "#define HAVE_FTW_H 1" >> gtk/config.h | ||
30 | |||
31 | fi | ||
32 | } | ||
33 | |||
34 | do_compile() { | ||
35 | ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} ${S}/gtk/updateiconcache.c \ | ||
36 | $(${PKG_CONFIG_FOR_BUILD} --cflags --libs gdk-pixbuf-2.0) \ | ||
37 | -o gtk-update-icon-cache | ||
38 | } | ||
39 | |||
40 | do_install() { | ||
41 | install -d ${D}${bindir} | ||
42 | install -m 0755 ${B}/gtk-update-icon-cache ${D}${bindir} | ||
43 | |||
44 | create_wrapper ${D}/${bindir}/gtk-update-icon-cache \ | ||
45 | GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/2.10.0/loaders.cache | ||
46 | |||
47 | } | ||