From 563922edefee882a04622ab0d78c25c61dfd851c Mon Sep 17 00:00:00 2001 From: Li Zhou Date: Tue, 1 Mar 2016 13:23:33 +0800 Subject: fontconfig: Revert changes made to FcConfigAppFontAddDir() recently Backport from fontconfig upstream to solve issue: fontconfig changes break pybootchartgui tool generating bootchart png file. Signed-off-by: Li Zhou Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- ...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 0000000000..f2fd5d4731 --- /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 +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 +--- + 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 config 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 b3bc7ebf4a..b427947a93 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" -- cgit 1.2.3-korg