summaryrefslogtreecommitdiffstats
path: root/meta/recipes-gnome/gdk-pixbuf
diff options
context:
space:
mode:
authorTudor Florea <tudor.florea@enea.com>2015-10-09 22:59:03 +0200
committerTudor Florea <tudor.florea@enea.com>2015-10-09 22:59:03 +0200
commit972dcfcdbfe75dcfeb777150c136576cf1a71e99 (patch)
tree97a61cd7e293d7ae9d56ef7ed0f81253365bb026 /meta/recipes-gnome/gdk-pixbuf
downloadpoky-972dcfcdbfe75dcfeb777150c136576cf1a71e99.tar.gz
initial commit for Enea Linux 5.0 arm
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'meta/recipes-gnome/gdk-pixbuf')
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/extending-libinstall-dependencies.patch42
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/fatal-loader.patch79
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/hardcoded_libtool.patch33
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/run-ptest3
-rw-r--r--meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.30.8.bb96
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 @@
1Upstream-Status: Pending
2
3This patch fixes parallel install issue that lib libpixbufloader-png.la
4depends on libgdk_pixbuf-2.0.la which will be regenerated during insta-
5llation, if libgdk_pixbuf-2.0.la is regenerating and at the same time
6libpixbufloader-png.la links it, the error will happen.
7
8Error message is:
9* usr/bin/ld: cannot find -lgdk_pixbuf-2.0
10* collect2: ld returned 1 exit status
11
12Make an explicit dependency to the libs install targets would fix this
13issue.
14
15Signed-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
22diff --git a/gdk-pixbuf/Makefile.am b/gdk-pixbuf/Makefile.am
23index 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
31diff --git a/libdeps.mk b/libdeps.mk
32new file mode 100644
33index 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--
411.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 @@
1If an environment variable is specified set the return value from main() to
2non-zero if the loader had errors (missing libraries, generally).
3
4Upstream-Status: Pending
5Signed-off-by: Ross Burton <ross.burton@intel.com>
6
7diff --git a/gdk-pixbuf/queryloaders.c b/gdk-pixbuf/queryloaders.c
8index 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 @@
1Upstream-Status: Inappropriate [configuration]
2
3Index: 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
3gnome-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 @@
1SUMMARY = "Image loading library for GTK+"
2HOMEPAGE = "http://www.gtk.org/"
3BUGTRACKER = "https://bugzilla.gnome.org/"
4
5LICENSE = "LGPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
7 file://gdk-pixbuf/gdk-pixbuf.h;endline=26;md5=72b39da7cbdde2e665329fef618e1d6b"
8
9SECTION = "libs"
10
11DEPENDS = "glib-2.0"
12DEPENDS_append_linuxstdbase = " virtual/libx11"
13
14MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
15
16SRC_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
23SRC_URI[md5sum] = "4fed0d54432f1b69fc6e66e608bd5542"
24SRC_URI[sha256sum] = "4853830616113db4435837992c0aebd94cbb993c44dc55063cee7f72a7bef8be"
25
26inherit autotools pkgconfig gettext pixbufcache ptest-gnome
27
28LIBV = "2.10.0"
29
30GDK_PIXBUF_LOADERS ?= "png jpeg"
31
32PACKAGECONFIG ??= "${GDK_PIXBUF_LOADERS}"
33PACKAGECONFIG_linuxstdbase = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} ${GDK_PIXBUF_LOADERS}"
34PACKAGECONFIG_class-native = "${GDK_PIXBUF_LOADERS}"
35
36PACKAGECONFIG[png] = "--with-libpng,--without-libpng,libpng"
37PACKAGECONFIG[jpeg] = "--with-libjpeg,--without-libjpeg,jpeg"
38PACKAGECONFIG[tiff] = "--with-libtiff,--without-libtiff,tiff"
39PACKAGECONFIG[jpeg2000] = "--with-libjasper,--without-libjasper,jasper"
40
41# Use GIO to sniff image format instead of trying all loaders
42PACKAGECONFIG[gio-sniff] = "--enable-gio-sniffing,--disable-gio-sniffing,,shared-mime-info"
43PACKAGECONFIG[x11] = "--with-x11,--without-x11,virtual/libx11"
44
45EXTRA_OECONF = "--disable-introspection"
46
47PACKAGES =+ "${PN}-xlib"
48
49FILES_${PN}-xlib = "${libdir}/*pixbuf_xlib*${SOLIBS}"
50ALLOW_EMPTY_${PN}-xlib = "1"
51
52FILES_${PN} = "${bindir}/gdk-pixbuf-query-loaders \
53 ${bindir}/gdk-pixbuf-pixdata \
54 ${libdir}/lib*.so.*"
55
56FILES_${PN}-dev += " \
57 ${bindir}/gdk-pixbuf-csource \
58 ${includedir}/* \
59 ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/*.la \
60"
61
62FILES_${PN}-dbg += " \
63 ${libdir}/.debug/* \
64 ${libdir}/gdk-pixbuf-2.0/${LIBV}/loaders/.debug/* \
65"
66
67PACKAGES_DYNAMIC += "^gdk-pixbuf-loader-.*"
68PACKAGES_DYNAMIC_class-native = ""
69
70python 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
83do_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}
96BBCLASSEXTEND = "native"