diff options
Diffstat (limited to 'meta/recipes-gnome/gdk-pixbuf')
5 files changed, 253 insertions, 0 deletions
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch new file mode 100644 index 0000000000..edbdced43a --- /dev/null +++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch | |||
@@ -0,0 +1,42 @@ | |||
1 | Upstream-Status: Pending | ||
2 | |||
3 | This patch fixes parallel install issue that lib libpixbufloader-png.la | ||
4 | depends on libgdk_pixbuf-2.0.la which will be regenerated during insta- | ||
5 | llation, if libgdk_pixbuf-2.0.la is regenerating and at the same time | ||
6 | libpixbufloader-png.la links it, the error will happen. | ||
7 | |||
8 | Error message is: | ||
9 | * usr/bin/ld: cannot find -lgdk_pixbuf-2.0 | ||
10 | * collect2: ld returned 1 exit status | ||
11 | |||
12 | Make an explicit dependency to the libs install targets would fix this | ||
13 | issue. | ||
14 | |||
15 | Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> | ||
16 | --- | ||
17 | gdk-pixbuf/Makefile.am | 1 + | ||
18 | libdeps.mk | 3 +++ | ||
19 | 2 files changed, 4 insertions(+), 0 deletions(-) | ||
20 | create mode 100644 libdeps.mk | ||
21 | |||
22 | diff --git a/gdk-pixbuf/Makefile.am b/gdk-pixbuf/Makefile.am | ||
23 | index 95a93a8..db44cae 100644 | ||
24 | --- a/gdk-pixbuf/Makefile.am | ||
25 | +++ b/gdk-pixbuf/Makefile.am | ||
26 | @@ -783,3 +783,4 @@ loaders.cache: | ||
27 | endif | ||
28 | |||
29 | -include $(top_srcdir)/git.mk | ||
30 | +-include $(top_srcdir)/libdeps.mk | ||
31 | diff --git a/libdeps.mk b/libdeps.mk | ||
32 | new file mode 100644 | ||
33 | index 0000000..d7a10a8 | ||
34 | --- /dev/null | ||
35 | +++ b/libdeps.mk | ||
36 | @@ -0,0 +1,3 @@ | ||
37 | +# Extending dependencies of install-loaderLTLIBRARIES: | ||
38 | +# The $(lib-LTLIBRARIES) is needed by relinking $(loader_LTLIBRARIES) | ||
39 | +install-loaderLTLIBRARIES: install-libLTLIBRARIES | ||
40 | -- | ||
41 | 1.7.6.1 | ||
42 | |||
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch new file mode 100644 index 0000000000..70146c6181 --- /dev/null +++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch | |||
@@ -0,0 +1,79 @@ | |||
1 | If an environment variable is specified set the return value from main() to | ||
2 | non-zero if the loader had errors (missing libraries, generally). | ||
3 | |||
4 | Upstream-Status: Pending | ||
5 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
6 | |||
7 | diff --git a/gdk-pixbuf/queryloaders.c b/gdk-pixbuf/queryloaders.c | ||
8 | index a9ca015..395674a 100644 | ||
9 | --- a/gdk-pixbuf/queryloaders.c | ||
10 | +++ b/gdk-pixbuf/queryloaders.c | ||
11 | @@ -146,7 +146,7 @@ write_loader_info (GString *contents, const char *path, GdkPixbufFormat *info) | ||
12 | g_string_append_c (contents, '\n'); | ||
13 | } | ||
14 | |||
15 | -static void | ||
16 | +static gboolean | ||
17 | query_module (GString *contents, const char *dir, const char *file) | ||
18 | { | ||
19 | char *path; | ||
20 | @@ -155,6 +155,7 @@ query_module (GString *contents, const char *dir, const char *file) | ||
21 | void (*fill_vtable) (GdkPixbufModule *module); | ||
22 | gpointer fill_info_ptr; | ||
23 | gpointer fill_vtable_ptr; | ||
24 | + gboolean ret = TRUE; | ||
25 | |||
26 | if (g_path_is_absolute (file)) | ||
27 | path = g_strdup (file); | ||
28 | @@ -204,10 +205,13 @@ query_module (GString *contents, const char *dir, const char *file) | ||
29 | g_module_error()); | ||
30 | else | ||
31 | g_fprintf (stderr, "Cannot load loader %s\n", path); | ||
32 | + ret = FALSE; | ||
33 | } | ||
34 | if (module) | ||
35 | g_module_close (module); | ||
36 | g_free (path); | ||
37 | + | ||
38 | + return ret; | ||
39 | } | ||
40 | |||
41 | #ifdef G_OS_WIN32 | ||
42 | @@ -257,6 +261,7 @@ int main (int argc, char **argv) | ||
43 | GString *contents; | ||
44 | gchar *cache_file = NULL; | ||
45 | gint first_file = 1; | ||
46 | + gboolean success = TRUE; | ||
47 | |||
48 | #ifdef G_OS_WIN32 | ||
49 | gchar *libdir; | ||
50 | @@ -360,7 +365,8 @@ int main (int argc, char **argv) | ||
51 | gint len = strlen (dent); | ||
52 | if (len > SOEXT_LEN && | ||
53 | strcmp (dent + len - SOEXT_LEN, SOEXT) == 0) { | ||
54 | - query_module (contents, path, dent); | ||
55 | + if (!query_module (contents, path, dent)) | ||
56 | + success = FALSE; | ||
57 | } | ||
58 | } | ||
59 | g_dir_close (dir); | ||
60 | @@ -378,7 +384,8 @@ int main (int argc, char **argv) | ||
61 | infilename = g_locale_to_utf8 (infilename, | ||
62 | -1, NULL, NULL, NULL); | ||
63 | #endif | ||
64 | - query_module (contents, cwd, infilename); | ||
65 | + if (!query_module (contents, cwd, infilename)) | ||
66 | + success = FALSE; | ||
67 | } | ||
68 | g_free (cwd); | ||
69 | } | ||
70 | @@ -394,5 +401,8 @@ int main (int argc, char **argv) | ||
71 | else | ||
72 | g_print ("%s\n", contents->str); | ||
73 | |||
74 | - return 0; | ||
75 | + if (g_getenv ("GDK_PIXBUF_FATAL_LOADER")) | ||
76 | + return success ? 0 : 1; | ||
77 | + else | ||
78 | + return 0; | ||
79 | } | ||
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch new file mode 100644 index 0000000000..ecca62a712 --- /dev/null +++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | Upstream-Status: Inappropriate [configuration] | ||
2 | |||
3 | Index: gdk-pixbuf-2.22.1/configure.ac | ||
4 | =================================================================== | ||
5 | --- gdk-pixbuf-2.22.1.orig/configure.ac 2010-11-26 09:06:34.000000000 +0800 | ||
6 | +++ gdk-pixbuf-2.22.1/configure.ac 2010-11-26 09:07:33.000000000 +0800 | ||
7 | @@ -287,7 +287,7 @@ | ||
8 | case $enable_explicit_deps in | ||
9 | auto) | ||
10 | export SED | ||
11 | - deplibs_check_method=`(./libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` | ||
12 | + deplibs_check_method=`(./$host_alias-libtool --config; echo 'eval echo \"$deplibs_check_method\"') | sh` | ||
13 | if test "x$deplibs_check_method" '!=' xpass_all || test "x$enable_static" = xyes ; then | ||
14 | enable_explicit_deps=yes | ||
15 | else | ||
16 | @@ -484,7 +484,7 @@ | ||
17 | dnl Now we check to see if our libtool supports shared lib deps | ||
18 | dnl (in a rather ugly way even) | ||
19 | if $dynworks; then | ||
20 | - pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./libtool --config" | ||
21 | + pixbuf_libtool_config="${CONFIG_SHELL-/bin/sh} ./$host_alias-libtool --config" | ||
22 | pixbuf_deplibs_check=`$pixbuf_libtool_config | \ | ||
23 | grep '^[[a-z_]]*check[[a-z_]]*_method=[['\''"]]' | \ | ||
24 | sed 's/.*[['\''"]]\(.*\)[['\''"]]$/\1/'` | ||
25 | @@ -957,7 +957,7 @@ | ||
26 | # We are using gmodule-no-export now, but I'm leaving the stripping | ||
27 | # code in place for now, since pango and atk still require gmodule. | ||
28 | export SED | ||
29 | -export_dynamic=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` | ||
30 | +export_dynamic=`(./$host_alias-libtool --config; echo eval echo \\$export_dynamic_flag_spec) | sh` | ||
31 | if test -n "$export_dynamic"; then | ||
32 | GDK_PIXBUF_DEP_LIBS=`echo $GDK_PIXBUF_DEP_LIBS | sed -e "s/$export_dynamic//"` | ||
33 | fi | ||
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest new file mode 100644 index 0000000000..8f9072386e --- /dev/null +++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest | |||
@@ -0,0 +1,3 @@ | |||
1 | #! /bin/sh | ||
2 | |||
3 | gnome-desktop-testing-runner gdk-pixbuf | ||
diff --git a/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb new file mode 100644 index 0000000000..a63d4546f6 --- /dev/null +++ b/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb | |||
@@ -0,0 +1,96 @@ | |||
1 | SUMMARY = "Image loading library for GTK+" | ||
2 | HOMEPAGE = "http://www.gtk.org/" | ||
3 | BUGTRACKER = "https://bugzilla.gnome.org/" | ||
4 | |||
5 | LICENSE = "LGPLv2" | ||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ | ||
7 | file://gdk-pixbuf/gdk-pixbuf.h;endline=26;md5=72b39da7cbdde2e665329fef618e1d6b" | ||
8 | |||
9 | SECTION = "libs" | ||
10 | |||
11 | DEPENDS = "glib-2.0" | ||
12 | DEPENDS_append_linuxstdbase = " virtual/libx11" | ||
13 | |||
14 | MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}" | ||
15 | |||
16 | SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \ | ||
17 | file://hardcoded_libtool.patch \ | ||
18 | file://extending-libinstall-dependencies.patch \ | ||
19 | file://run-ptest \ | ||
20 | file://fatal-loader.patch \ | ||
21 | " | ||
22 | |||
23 | SRC_URI[md5sum] = "4fed0d54432f1b69fc6e66e608bd5542" | ||
24 | SRC_URI[sha256sum] = "4853830616113db4435837992c0aebd94cbb993c44dc55063cee7f72a7bef8be" | ||
25 | |||
26 | inherit autotools pkgconfig gettext pixbufcache ptest-gnome | ||
27 | |||
28 | LIBV = "2.10.0" | ||
29 | |||
30 | GDK_PIXBUF_LOADERS ?= "png jpeg" | ||
31 | |||
32 | PACKAGECONFIG ??= "${GDK_PIXBUF_LOADERS}" | ||
33 | PACKAGECONFIG_linuxstdbase = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} ${GDK_PIXBUF_LOADERS}" | ||
34 | PACKAGECONFIG_class-native = "${GDK_PIXBUF_LOADERS}" | ||
35 | |||
36 | PACKAGECONFIG[png] = "--with-libpng,--without-libpng,libpng" | ||
37 | PACKAGECONFIG[jpeg] = "--with-libjpeg,--without-libjpeg,jpeg" | ||
38 | PACKAGECONFIG[tiff] = "--with-libtiff,--without-libtiff,tiff" | ||
39 | PACKAGECONFIG[jpeg2000] = "--with-libjasper,--without-libjasper,jasper" | ||
40 | |||
41 | # Use GIO to sniff image format instead of trying all loaders | ||
42 | PACKAGECONFIG[gio-sniff] = "--enable-gio-sniffing,--disable-gio-sniffing,,shared-mime-info" | ||
43 | PACKAGECONFIG[x11] = "--with-x11,--without-x11,virtual/libx11" | ||
44 | |||
45 | EXTRA_OECONF = "--disable-introspection" | ||
46 | |||
47 | PACKAGES =+ "${PN}-xlib" | ||
48 | |||
49 | FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}" | ||
50 | ALLOW_EMPTY_${PN}-xlib = "1" | ||
51 | |||
52 | FILES_${PN} = "${bindir}/gdk-pixbuf-query-loaders \ | ||
53 | ${bindir}/gdk-pixbuf-pixdata \ | ||
54 | ${libdir}/lib*.so.*" | ||
55 | |||
56 | FILES_${PN}-dev += " \ | ||
57 | ${bindir}/gdk-pixbuf-csource \ | ||
58 | ${includedir}/* \ | ||
59 | ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/*.la \ | ||
60 | " | ||
61 | |||
62 | FILES_${PN}-dbg += " \ | ||
63 | ${libdir}/.debug/* \ | ||
64 | ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/.debug/* \ | ||
65 | " | ||
66 | |||
67 | PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*" | ||
68 | PACKAGES_DYNAMIC_class-native = "" | ||
69 | |||
70 | python populate_packages_prepend () { | ||
71 | postinst_pixbufloader = d.getVar("postinst_pixbufloader", True) | ||
72 | |||
73 | loaders_root = d.expand('${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders') | ||
74 | |||
75 | packages = ' '.join(do_split_packages(d, loaders_root, '^libpixbufloader-(.*)\.so$', 'gdk-pixbuf-loader-%s', 'GDK pixbuf loader for %s')) | ||
76 | d.setVar('PIXBUF_PACKAGES', packages) | ||
77 | |||
78 | # The test suite exercises all the loaders, so ensure they are all | ||
79 | # dependencies of the ptest package. | ||
80 | d.appendVar("RDEPENDS_gdk-pixbuf-ptest", " " + packages) | ||
81 | } | ||
82 | |||
83 | do_install_append_class-native() { | ||
84 | find ${D}${libdir} -name "libpixbufloader-*.la" -exec rm \{\} \; | ||
85 | |||
86 | create_wrapper ${D}/${bindir}/gdk-pixbuf-csource \ | ||
87 | GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache | ||
88 | |||
89 | create_wrapper ${D}/${bindir}/gdk-pixbuf-pixdata \ | ||
90 | GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache | ||
91 | |||
92 | create_wrapper ${D}/${bindir}/gdk-pixbuf-query-loaders \ | ||
93 | GDK_PIXBUF_MODULE_FILE=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders.cache \ | ||
94 | GDK_PIXBUF_MODULEDIR=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/${LIBV}/loaders | ||
95 | } | ||
96 | BBCLASSEXTEND = "native" | ||