]> code.ossystems Code Review - openembedded-core.git/commitdiff
fontconfig: Revert changes made to FcConfigAppFontAddDir() recently
authorLi Zhou <li.zhou@windriver.com>
Tue, 1 Mar 2016 05:23:33 +0000 (13:23 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 9 Mar 2016 16:54:36 +0000 (16:54 +0000)
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@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-graphics/fontconfig/fontconfig/0001-Revert-changes-made-to-FcConfigAppFontAddDir-recentl.patch [new file with mode: 0644]
meta/recipes-graphics/fontconfig/fontconfig_2.11.94.bb

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 (file)
index 0000000..f2fd5d4
--- /dev/null
@@ -0,0 +1,132 @@
+From 46ec6a52d4cc447cc3ff4a13b2067ecb76c9db2e Mon Sep 17 00:00:00 2001
+From: Behdad Esfahbod <behdad@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@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
index b3bc7ebf4a960e73f40241f21501bba78c7e7b25..b427947a93d741cfbc64c509d2520f3897bd6445 100644 (file)
@@ -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"