[OE-core] [PATCH 1/2] libmatchbox: fix libpng detection

Ross Burton ross.burton at intel.com
Tue Dec 10 12:13:36 UTC 2013


The configure script looks for libpng12 though pkg-config and if that fails
falls back to looking for library files directly.  The result of this is that
the linkage can change between libpng12 or libpng16 depending on what is
installed in the sysroot.

To resolve this, take a patch from upstream to just link using pkg-config.

Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 .../libmatchbox/libmatchbox/libpng.patch           |   69 ++++++++++++++++++++
 .../libmatchbox/libmatchbox_1.11.bb                |    4 +-
 2 files changed, 72 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-graphics/libmatchbox/libmatchbox/libpng.patch

diff --git a/meta/recipes-graphics/libmatchbox/libmatchbox/libpng.patch b/meta/recipes-graphics/libmatchbox/libmatchbox/libpng.patch
new file mode 100644
index 0000000..8cd507f
--- /dev/null
+++ b/meta/recipes-graphics/libmatchbox/libmatchbox/libpng.patch
@@ -0,0 +1,69 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton at intel.com>
+
+From 19c3d242034748b3c60765683e1ff4e2df970205 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton at intel.com>
+Date: Tue, 10 Dec 2013 11:37:32 +0000
+Subject: [PATCH] configure: improve libpng detection
+
+Instead of looking for "libpng12" explicitly though pkg-config and then falling
+back to library hunting, just use pkg-config to find "libpng" which is provided
+by both libpng12 and libpng16.
+
+This also makes the libpng detection deterministic.
+
+Signed-off-by: Ross Burton <ross.burton at intel.com>
+---
+ configure.ac | 29 +++++------------------------
+ 1 file changed, 5 insertions(+), 24 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8a28076..65d7c79 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -34,7 +34,7 @@ AC_ARG_ENABLE(jpeg,
+   enable_jpeg=$enableval, enable_jpeg=no)
+ 
+ AC_ARG_ENABLE(png,
+-  [  --disable-png           disable png support [default=no]],
++  [  --disable-png           disable PNG support [default=enabled]],
+      enable_png=$enableval, enable_png=yes )
+ 
+ AC_ARG_ENABLE(doxygen-docs,     
+@@ -156,29 +156,10 @@ fi
+ dnl ------ Check for PNG ---------------------------------------------------
+ 
+ if test x$enable_png != xno; then
+-  AC_MSG_CHECKING(for libpng12)
+-  if test x$PKG_CONFIG != xno && $PKG_CONFIG --exists libpng12; then 
+-        AC_MSG_RESULT(yes)
+-        PNG_LIBS=`$PKG_CONFIG --libs libpng12`
+-	PNG_CFLAGS=`$PKG_CONFIG --cflags libpng12`
+-        AC_DEFINE(USE_PNG, [1], [Use Png])
+-	SUPPORTS_PNG=1
+-	PNG_REQUIRED="libpng12"
+-  else
+-	AC_MSG_RESULT(no)
+-        # AC_CHECK_HEADERS(png.h, [ have_png_h="yes" ], [ have_png_h="no" ] )
+-        AC_CHECK_LIB([png], [png_create_read_struct], [have_png="yes"], [have_png="no"])
+-
+-        if test x$have_png=xyes && test x$have_png_h=xyes; then 
+-            AC_DEFINE(USE_PNG, [1], [Use Png])
+-	    SUPPORTS_PNG=1
+-            PNG_LIBS="-lpng -lz"
+-            MB_EXTRA_LIBS="$MB_EXTRA_LIBS $PNG_LIBS"
+-        else
+-	    AC_MSG_WARN([*** Cannot find PNG, disabling support])
+-            enable_png=no
+-	fi
+-  fi
++  PKG_CHECK_MODULES(PNG, libpng)
++  AC_DEFINE(USE_PNG, [1], [Use PNG])
++  SUPPORTS_PNG=1
++  PNG_REQUIRED="libpng"
+ fi
+ 
+ 
+-- 
+1.8.5
+
diff --git a/meta/recipes-graphics/libmatchbox/libmatchbox_1.11.bb b/meta/recipes-graphics/libmatchbox/libmatchbox_1.11.bb
index d162a78..118c808 100644
--- a/meta/recipes-graphics/libmatchbox/libmatchbox_1.11.bb
+++ b/meta/recipes-graphics/libmatchbox/libmatchbox_1.11.bb
@@ -10,7 +10,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \
 
 DEPENDS = "virtual/libx11 libxext expat libxft jpeg libpng zlib libxsettings-client startup-notification"
 
-SRC_URI = "http://downloads.yoctoproject.org/releases/matchbox/${BPN}/${PV}/${BPN}-${PV}.tar.bz2"
+SRC_URI = "http://downloads.yoctoproject.org/releases/matchbox/${BPN}/${PV}/${BPN}-${PV}.tar.bz2 \
+           file://libpng.patch"
+
 SRC_URI[md5sum] = "fc6cc807f55a3e7c752d8013176875d7"
 SRC_URI[sha256sum] = "254cab52e304a3512c8df4be59d690cf3921bbb68a28ede7fe26b93534217b53"
 
-- 
1.7.10.4




More information about the Openembedded-core mailing list