[OE-core] [PATCH] fontconfig: Revert changes made to FcConfigAppFontAddDir() recently

Li Zhou li.zhou at windriver.com
Tue Mar 1 05:23:33 UTC 2016


Backport <commit 46ec6a52d4cc447cc3ff4a13b2067ecb76c9db2e> from
fontconfig upstream <http://cgit.freedesktop.org/fontconfig/> to solve
issue: fontconfig changes break pybootchartgui tool generating bootchart
png file.

Signed-off-by: Li Zhou <li.zhou at windriver.com>
---
 ...ges-made-to-FcConfigAppFontAddDir-recentl.patch |  132 ++++++++++++++++++++
 .../fontconfig/fontconfig_2.11.94.bb               |    1 +
 2 files changed, 133 insertions(+)
 create mode 100644 meta/recipes-graphics/fontconfig/fontconfig/0001-Revert-changes-made-to-FcConfigAppFontAddDir-recentl.patch

diff --git a/meta/recipes-graphics/fontconfig/fontconfig/0001-Revert-changes-made-to-FcConfigAppFontAddDir-recentl.patch b/meta/recipes-graphics/fontconfig/fontconfig/0001-Revert-changes-made-to-FcConfigAppFontAddDir-recentl.patch
new file mode 100644
index 0000000..f2fd5d4
--- /dev/null
+++ b/meta/recipes-graphics/fontconfig/fontconfig/0001-Revert-changes-made-to-FcConfigAppFontAddDir-recentl.patch
@@ -0,0 +1,132 @@
+From 46ec6a52d4cc447cc3ff4a13b2067ecb76c9db2e Mon Sep 17 00:00:00 2001
+From: Behdad Esfahbod <behdad at behdad.org>
+Date: Fri, 26 Jun 2015 17:02:13 -0700
+Subject: [PATCH] Revert changes made to FcConfigAppFontAddDir() recently
+
+In 32ac7c75e8db0135ef37cf86f92d8b9be000c8bb the behavior of
+FcConfigAppFontAddFile/Dir() were changed to return false
+if not fonts were found.  While this is welldefined and useful
+for AddFile(), it's quite problematic for AddDir().  For example,
+if the directory is empty, is that a failure or success?  Worse,
+the false value from AddDir() was being propagated all the way
+to FcInit() returning false now.  This only happened upon memory
+allocation failure before, and some clients assert that FcInit()
+is successful.
+
+With this change, AddDir() is reverted back to what it was.
+AddFont() change (which was actually in fcdir.c) from the original
+commit is left in.
+
+Upstream-Status: backport
+
+Signed-off-by: Li Zhou <li.zhou at windriver.com>
+---
+ doc/fcconfig.fncs |    2 +-
+ src/fccfg.c       |   29 +++++++++++------------------
+ src/fcint.h       |    3 ---
+ src/fcstr.c       |    8 --------
+ 4 files changed, 12 insertions(+), 30 deletions(-)
+
+Index: fontconfig-2.11.94/doc/fcconfig.fncs
+===================================================================
+--- fontconfig-2.11.94.orig/doc/fcconfig.fncs
++++ fontconfig-2.11.94/doc/fcconfig.fncs
+@@ -232,7 +232,7 @@ the current configuration is used.
+ @DESC@
+ Scans the specified directory for fonts, adding each one found to the
+ application-specific set of fonts. Returns FcFalse
+-if the fonts cannot be added (due to allocation failure or no fonts found).
++if the fonts cannot be added (due to allocation failure).
+ Otherwise returns FcTrue. If <parameter>config</parameter> is NULL,
+ the current configuration is used.
+ @@
+Index: fontconfig-2.11.94/src/fccfg.c
+===================================================================
+--- fontconfig-2.11.94.orig/src/fccfg.c
++++ fontconfig-2.11.94/src/fccfg.c
+@@ -368,7 +368,6 @@ FcConfigAddDirList (FcConfig *config, Fc
+     FcStrList	    *dirlist;
+     FcChar8	    *dir;
+     FcCache	    *cache;
+-    FcBool	     ret = FcFalse;
+ 
+     dirlist = FcStrListCreate (dirSet);
+     if (!dirlist)
+@@ -383,10 +382,9 @@ FcConfigAddDirList (FcConfig *config, Fc
+ 	    continue;
+ 	FcConfigAddCache (config, cache, set, dirSet);
+ 	FcDirCacheUnload (cache);
+-	ret = FcTrue;
+     }
+     FcStrListDone (dirlist);
+-    return ret;
++    return FcTrue;
+ }
+ 
+ /*
+@@ -2199,7 +2197,6 @@ FcConfigAppFontAddFile (FcConfig    *con
+     FcStrSet	*subdirs;
+     FcStrList	*sublist;
+     FcChar8	*subdir;
+-    FcBool	 ret = FcFalse;
+ 
+     if (!config)
+     {
+@@ -2229,19 +2226,16 @@ FcConfigAppFontAddFile (FcConfig    *con
+ 	FcStrSetDestroy (subdirs);
+ 	return FcFalse;
+     }
+-    if (subdirs->num == 0)
+-	ret = FcTrue;
+-    else if ((sublist = FcStrListCreate (subdirs)))
++    if ((sublist = FcStrListCreate (subdirs)))
+     {
+ 	while ((subdir = FcStrListNext (sublist)))
+ 	{
+-	    if (FcConfigAppFontAddDir (config, subdir))
+-		ret = FcTrue;
++	    FcConfigAppFontAddDir (config, subdir);
+ 	}
+ 	FcStrListDone (sublist);
+     }
+     FcStrSetDestroy (subdirs);
+-    return ret;
++    return FcTrue;
+ }
+ 
+ FcBool
+@@ -2250,7 +2244,6 @@ FcConfigAppFontAddDir (FcConfig	    *con
+ {
+     FcFontSet	*set;
+     FcStrSet	*dirs;
+-    FcBool	 ret = FcTrue;
+ 
+     if (!config)
+     {
+@@ -2269,8 +2262,8 @@ FcConfigAppFontAddDir (FcConfig	    *con
+ 	set = FcFontSetCreate ();
+ 	if (!set)
+ 	{
+-	    ret = FcFalse;
+-	    goto bail;
++	    FcStrSetDestroy (dirs);
++	    return FcFalse;
+ 	}
+ 	FcConfigSetFonts (config, set, FcSetApplication);
+     }
+@@ -2278,10 +2271,12 @@ FcConfigAppFontAddDir (FcConfig	    *con
+     FcStrSetAddFilename (dirs, dir);
+ 
+     if (!FcConfigAddDirList (config, FcSetApplication, dirs))
+-	ret = FcFalse;
+-bail:
++    {
++	FcStrSetDestroy (dirs);
++	return FcFalse;
++    }
+     FcStrSetDestroy (dirs);
+-    return ret;
++    return FcTrue;
+ }
+ 
+ void
diff --git a/meta/recipes-graphics/fontconfig/fontconfig_2.11.94.bb b/meta/recipes-graphics/fontconfig/fontconfig_2.11.94.bb
index b3bc7eb..b427947 100644
--- a/meta/recipes-graphics/fontconfig/fontconfig_2.11.94.bb
+++ b/meta/recipes-graphics/fontconfig/fontconfig_2.11.94.bb
@@ -22,6 +22,7 @@ DEPENDS = "expat freetype zlib"
 
 SRC_URI = "http://fontconfig.org/release/fontconfig-${PV}.tar.gz \
            file://revert-static-pkgconfig.patch \
+           file://0001-Revert-changes-made-to-FcConfigAppFontAddDir-recentl.patch \
            "
 SRC_URI[md5sum] = "479be870c7f83f15f87bac085b61d641"
 SRC_URI[sha256sum] = "73f6d323c7bcfbde25d78397675191d55b8f4139132c6a9444410f3a2d8a9a95"
-- 
1.7.9.5




More information about the Openembedded-core mailing list