diff --git a/.fontconfig.metadata b/.fontconfig.metadata new file mode 100644 index 0000000..cf56cad --- /dev/null +++ b/.fontconfig.metadata @@ -0,0 +1 @@ +b7bcc5d47211b7bbac35bb221860407db3601f5b SOURCES/fontconfig-2.13.0.tar.bz2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..52cbde1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/fontconfig-2.13.0.tar.bz2 diff --git a/README.md b/README.md deleted file mode 100644 index 0e7897f..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 - -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/25-no-bitmap-fedora.conf b/SOURCES/25-no-bitmap-fedora.conf new file mode 100644 index 0000000..ffa7926 --- /dev/null +++ b/SOURCES/25-no-bitmap-fedora.conf @@ -0,0 +1,44 @@ + + + + + + Kochi Mincho + + + false + + + + + Kochi Gothic + + + false + + + + + Sazanami Mincho + + + false + + + + + Sazanami Gothic + + + false + + + + + AR PL ShanHeiSun Uni + + + true + + + diff --git a/SOURCES/fc-cache b/SOURCES/fc-cache new file mode 100755 index 0000000..6a12446 --- /dev/null +++ b/SOURCES/fc-cache @@ -0,0 +1,4 @@ +#! /bin/sh + +[ -x /usr/bin/fc-cache-32 ] && /usr/bin/fc-cache-32 $@ || : +[ -x /usr/bin/fc-cache-64 ] && /usr/bin/fc-cache-64 $@ || : diff --git a/SOURCES/fontconfig-const-name-in-range.patch b/SOURCES/fontconfig-const-name-in-range.patch new file mode 100644 index 0000000..728c2c3 --- /dev/null +++ b/SOURCES/fontconfig-const-name-in-range.patch @@ -0,0 +1,60 @@ +From 198358dd8ff858c9e36531a7406ccb2246ae77b7 Mon Sep 17 00:00:00 2001 +From: Akira TAGOH +Date: Mon, 12 Mar 2018 11:49:58 +0900 +Subject: [PATCH] Allow the constant names in the range + +https://bugs.freedesktop.org/show_bug.cgi?id=105415 +--- + src/fcname.c | 34 +++++++++++++++++++++++++++++----- + 1 file changed, 29 insertions(+), 5 deletions(-) + +diff --git a/src/fcname.c b/src/fcname.c +index 79e413e..15fb659 100644 +--- a/src/fcname.c ++++ b/src/fcname.c +@@ -330,13 +330,37 @@ FcNameConvert (FcType type, FcChar8 *string) + case FcTypeRange: + if (sscanf ((char *) string, "[%lg %lg]", &b, &e) != 2) + { +- v.u.d = strtod ((char *) string, &p); +- if (p != NULL && p[0] != 0) ++ char *sc, *ec; ++ size_t len = strlen ((const char *) string); ++ int si, ei; ++ ++ sc = malloc (len); ++ ec = malloc (len); ++ if (sc && ec && sscanf ((char *) string, "[%s %[^]]]", sc, ec) == 2) + { +- v.type = FcTypeVoid; +- break; ++ if (FcNameConstant ((const FcChar8 *) sc, &si) && ++ FcNameConstant ((const FcChar8 *) ec, &ei)) ++ v.u.r = FcRangeCreateDouble (si, ei); ++ else ++ goto bail1; ++ } ++ else ++ { ++ bail1: ++ v.type = FcTypeDouble; ++ if (FcNameConstant (string, &si)) ++ { ++ v.u.d = (double) si; ++ } else { ++ v.u.d = strtod ((char *) string, &p); ++ if (p != NULL && p[0] != 0) ++ v.type = FcTypeVoid; ++ } + } +- v.type = FcTypeDouble; ++ if (sc) ++ free (sc); ++ if (ec) ++ free (ec); + } + else + v.u.r = FcRangeCreateDouble (b, e); +-- +2.14.3 + diff --git a/SOURCES/fontconfig-drop-incompatible-conf.patch b/SOURCES/fontconfig-drop-incompatible-conf.patch new file mode 100644 index 0000000..ae79a23 --- /dev/null +++ b/SOURCES/fontconfig-drop-incompatible-conf.patch @@ -0,0 +1,525 @@ +diff -pruN fontconfig-2.13.0.orig/conf.d/10-autohint.conf fontconfig-2.13.0/conf.d/10-autohint.conf +--- fontconfig-2.13.0.orig/conf.d/10-autohint.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/10-autohint.conf 2018-06-08 17:56:13.942291063 +0900 +@@ -1,11 +1,6 @@ + + + +- +- +- +- +- Enable autohinter + + + + + + + + + + + + + + + + + + + + + + + +diff -pruN fontconfig-2.13.0.orig/conf.d/30-metric-aliases.conf fontconfig-2.13.0/conf.d/30-metric-aliases.conf +--- fontconfig-2.13.0.orig/conf.d/30-metric-aliases.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/30-metric-aliases.conf 2018-06-08 17:57:33.560523086 +0900 +@@ -1,11 +1,6 @@ + + + +- +- +- +- +- Set substitutions for similar/metric-compatible families + + + +diff -pruN fontconfig-2.13.0.orig/conf.d/45-latin.conf fontconfig-2.13.0/conf.d/45-latin.conf +--- fontconfig-2.13.0.orig/conf.d/45-latin.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/45-latin.conf 2018-06-08 17:57:46.222719023 +0900 +@@ -1,11 +1,6 @@ + + + +- +- +- +- +- Set substitutions for Latin fonts + +diff -pruN fontconfig-2.13.0.orig/conf.d/50-user.conf fontconfig-2.13.0/conf.d/50-user.conf +--- fontconfig-2.13.0.orig/conf.d/50-user.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/50-user.conf 2018-06-08 17:57:54.872852876 +0900 +@@ -1,11 +1,6 @@ + + + +- +- +- +- +- Load per-user customization files + + local.conf + +diff -pruN fontconfig-2.13.0.orig/conf.d/60-generic.conf fontconfig-2.13.0/conf.d/60-generic.conf +--- fontconfig-2.13.0.orig/conf.d/60-generic.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/60-generic.conf 2018-06-08 17:58:03.405984919 +0900 +@@ -1,11 +1,6 @@ + + + +- +- +- +- +- Set preferable fonts for emoji/math fonts + + + +diff -pruN fontconfig-2.13.0.orig/conf.d/60-latin.conf fontconfig-2.13.0/conf.d/60-latin.conf +--- fontconfig-2.13.0.orig/conf.d/60-latin.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/60-latin.conf 2018-06-08 17:58:07.630050283 +0900 +@@ -1,11 +1,6 @@ + + + +- +- +- +- +- Set preferable fonts for Latin + + serif + +diff -pruN fontconfig-2.13.0.orig/conf.d/65-fonts-persian.conf fontconfig-2.13.0/conf.d/65-fonts-persian.conf +--- fontconfig-2.13.0.orig/conf.d/65-fonts-persian.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/65-fonts-persian.conf 2018-06-08 17:58:22.987287923 +0900 +@@ -31,10 +31,6 @@ + 2008 Behdad Esfahbod: Cleanup. Add fantasy and cursive. + --> + +- +- +- +- + + + +diff -pruN fontconfig-2.13.0.orig/conf.d/65-khmer.conf fontconfig-2.13.0/conf.d/65-khmer.conf +--- fontconfig-2.13.0.orig/conf.d/65-khmer.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/65-khmer.conf 2018-06-08 17:58:28.539373837 +0900 +@@ -1,10 +1,6 @@ + + + +- +- +- +- + + serif + +diff -pruN fontconfig-2.13.0.orig/conf.d/65-nonlatin.conf fontconfig-2.13.0/conf.d/65-nonlatin.conf +--- fontconfig-2.13.0.orig/conf.d/65-nonlatin.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/65-nonlatin.conf 2018-06-08 17:58:32.936441877 +0900 +@@ -1,11 +1,6 @@ + + + +- +- +- +- +- Set preferable fonts for non-Latin + + serif + +diff -pruN fontconfig-2.13.0.orig/conf.d/69-unifont.conf fontconfig-2.13.0/conf.d/69-unifont.conf +--- fontconfig-2.13.0.orig/conf.d/69-unifont.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/69-unifont.conf 2018-06-08 17:58:37.092506189 +0900 +@@ -1,10 +1,6 @@ + + + +- +- +- +- + + serif + +diff -pruN fontconfig-2.13.0.orig/conf.d/70-no-bitmaps.conf fontconfig-2.13.0/conf.d/70-no-bitmaps.conf +--- fontconfig-2.13.0.orig/conf.d/70-no-bitmaps.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/70-no-bitmaps.conf 2018-06-08 17:58:41.897580544 +0900 +@@ -1,11 +1,6 @@ + + + +- +- +- +- +- Reject bitmap fonts + + + +diff -pruN fontconfig-2.13.0.orig/conf.d/70-yes-bitmaps.conf fontconfig-2.13.0/conf.d/70-yes-bitmaps.conf +--- fontconfig-2.13.0.orig/conf.d/70-yes-bitmaps.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/70-yes-bitmaps.conf 2018-06-08 17:58:46.206647223 +0900 +@@ -1,11 +1,6 @@ + + + +- +- +- +- +- Accept bitmap fonts + + + +diff -pruN fontconfig-2.13.0.orig/conf.d/80-delicious.conf fontconfig-2.13.0/conf.d/80-delicious.conf +--- fontconfig-2.13.0.orig/conf.d/80-delicious.conf 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/conf.d/80-delicious.conf 2018-06-08 17:58:50.251709817 +0900 +@@ -1,10 +1,6 @@ + + + +- +- +- +- + + + +diff -pruN fontconfig-2.13.0.orig/conf.d/90-synthetic.conf fontconfig-2.13.0/conf.d/90-synthetic.conf +--- fontconfig-2.13.0.orig/conf.d/90-synthetic.conf 2018-06-08 17:55:25.274537971 +0900 ++++ fontconfig-2.13.0/conf.d/90-synthetic.conf 2018-06-08 17:58:54.259771838 +0900 +@@ -1,10 +1,6 @@ + + + +- +- +- +- + +diff -pruN fontconfig-2.13.0.orig/fonts.conf.in fontconfig-2.13.0/fonts.conf.in +--- fontconfig-2.13.0.orig/fonts.conf.in 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.13.0/fonts.conf.in 2018-06-08 19:55:53.912390551 +0900 +@@ -2,12 +2,6 @@ + + + +- +- +- +- +- Default configuration file +- + + + +- ++ + +- regular ++ medium + + + +-- +2.17.0 + diff --git a/SOURCES/fontconfig-fix-flatpak.patch b/SOURCES/fontconfig-fix-flatpak.patch new file mode 100644 index 0000000..467e09d --- /dev/null +++ b/SOURCES/fontconfig-fix-flatpak.patch @@ -0,0 +1,618 @@ +diff -pruN fontconfig-2.13.0.orig/src/fccache.c fontconfig-2.13.0/src/fccache.c +--- fontconfig-2.13.0.orig/src/fccache.c 2017-12-18 21:45:13.000000000 +0900 ++++ fontconfig-2.13.0/src/fccache.c 2018-06-08 18:39:33.079539192 +0900 +@@ -51,13 +51,23 @@ FcDirCacheCreateUUID (FcChar8 *dir, + FcBool force, + FcConfig *config) + { ++ const FcChar8 *sysroot = FcConfigGetSysRoot (config); ++ FcChar8 *target; + FcBool ret = FcTrue; + #ifndef _WIN32 + FcChar8 *uuidname; + +- uuidname = FcStrBuildFilename (dir, ".uuid", NULL); ++ if (sysroot) ++ target = FcStrBuildFilename (sysroot, dir, NULL); ++ else ++ target = FcStrdup (dir); ++ uuidname = FcStrBuildFilename (target, ".uuid", NULL); ++ + if (!uuidname) ++ { ++ FcStrFree (target); + return FcFalse; ++ } + + if (force || access ((const char *) uuidname, F_OK) < 0) + { +@@ -69,7 +79,7 @@ FcDirCacheCreateUUID (FcChar8 *dir, + struct stat statb; + struct timeval times[2]; + +- if (FcStat (dir, &statb) != 0) ++ if (FcStat (target, &statb) != 0) + { + ret = FcFalse; + goto bail1; +@@ -96,7 +106,7 @@ FcDirCacheCreateUUID (FcChar8 *dir, + hash_add = FcHashTableReplace; + else + hash_add = FcHashTableAdd; +- if (!hash_add (config->uuid_table, dir, uuid)) ++ if (!hash_add (config->uuid_table, target, uuid)) + { + ret = FcFalse; + goto bail3; +@@ -124,14 +134,15 @@ FcDirCacheCreateUUID (FcChar8 *dir, + times[0].tv_usec = 0; + times[1].tv_usec = 0; + #endif +- if (utimes ((const char *) dir, times) != 0) ++ if (utimes ((const char *) target, times) != 0) + { +- fprintf (stderr, "Unable to revert mtime: %s\n", dir); ++ fprintf (stderr, "Unable to revert mtime: %s\n", target); + } + } + } +- bail1: ++bail1: + FcStrFree (uuidname); ++ FcStrFree (target); + #endif + + return ret; +@@ -144,10 +155,17 @@ FcDirCacheReadUUID (FcChar8 *dir, + { + void *u; + uuid_t uuid; ++ const FcChar8 *sysroot = FcConfigGetSysRoot (config); ++ FcChar8 *target; + +- if (!FcHashTableFind (config->uuid_table, dir, &u)) ++ if (sysroot) ++ target = FcStrBuildFilename (sysroot, dir, NULL); ++ else ++ target = FcStrdup (dir); ++ ++ if (!FcHashTableFind (config->uuid_table, target, &u)) + { +- FcChar8 *uuidname = FcStrBuildFilename (dir, ".uuid", NULL); ++ FcChar8 *uuidname = FcStrBuildFilename (target, ".uuid", NULL); + int fd; + + if ((fd = FcOpen ((char *) uuidname, O_RDONLY)) >= 0) +@@ -162,7 +180,7 @@ FcDirCacheReadUUID (FcChar8 *dir, + { + if (FcDebug () & FC_DBG_CACHE) + printf ("FcDirCacheReadUUID %s -> %s\n", uuidname, suuid); +- FcHashTableAdd (config->uuid_table, dir, uuid); ++ FcHashTableAdd (config->uuid_table, target, uuid); + } + } + close (fd); +@@ -176,6 +194,7 @@ FcDirCacheReadUUID (FcChar8 *dir, + } + else + FcHashUuidFree (u); ++ FcStrFree (target); + } + #endif + +@@ -259,19 +278,22 @@ static FcChar8 * + FcDirCacheBasenameUUID (const FcChar8 *dir, FcChar8 cache_base[CACHEBASE_LEN], FcConfig *config) + { + void *u; +- FcChar8 *alias; ++ FcChar8 *target; ++ const FcChar8 *sysroot = FcConfigGetSysRoot (config); + +- if (!FcHashTableFind (config->alias_table, dir, (void **)&alias)) +- alias = FcStrdup (dir); +- if (FcHashTableFind (config->uuid_table, alias, &u)) ++ if (sysroot) ++ target = FcStrBuildFilename (sysroot, dir, NULL); ++ else ++ target = FcStrdup (dir); ++ if (FcHashTableFind (config->uuid_table, target, &u)) + { + uuid_unparse (u, (char *) cache_base); + strcat ((char *) cache_base, "-" FC_ARCHITECTURE FC_CACHE_SUFFIX); + FcHashUuidFree (u); +- FcStrFree (alias); ++ FcStrFree (target); + return cache_base; + } +- FcStrFree (alias); ++ FcStrFree (target); + return NULL; + } + #endif +@@ -417,6 +439,7 @@ struct _FcCacheSkip { + FcCache *cache; + FcRef ref; + intptr_t size; ++ void *allocated; + dev_t cache_dev; + ino_t cache_ino; + time_t cache_mtime; +@@ -542,6 +565,7 @@ FcCacheInsert (FcCache *cache, struct st + + s->cache = cache; + s->size = cache->size; ++ s->allocated = NULL; + FcRefInit (&s->ref, 1); + if (cache_stat) + { +@@ -616,6 +640,7 @@ FcCacheRemoveUnlocked (FcCache *cache) + FcCacheSkip **update[FC_CACHE_MAX_LEVEL]; + FcCacheSkip *s, **next; + int i; ++ void *allocated; + + /* + * Find links along each chain +@@ -633,6 +658,15 @@ FcCacheRemoveUnlocked (FcCache *cache) + *update[i] = s->next[i]; + while (fcCacheMaxLevel > 0 && fcCacheChains[fcCacheMaxLevel - 1] == NULL) + fcCacheMaxLevel--; ++ ++ allocated = s->allocated; ++ while (allocated) ++ { ++ /* First element in allocated chunk is the free list */ ++ next = *(void **)allocated; ++ free (allocated); ++ allocated = next; ++ } + free (s); + } + +@@ -702,6 +736,30 @@ FcCacheObjectDereference (void *object) + unlock_cache (); + } + ++void * ++FcCacheAllocate (FcCache *cache, size_t len) ++{ ++ FcCacheSkip *skip; ++ void *allocated = NULL; ++ ++ lock_cache (); ++ skip = FcCacheFindByAddrUnlocked (cache); ++ if (skip) ++ { ++ void *chunk = malloc (sizeof (void *) + len); ++ if (chunk) ++ { ++ /* First element in allocated chunk is the free list */ ++ *(void **)chunk = skip->allocated; ++ skip->allocated = chunk; ++ /* Return the rest */ ++ allocated = ((FcChar8 *)chunk) + sizeof (void *); ++ } ++ } ++ unlock_cache (); ++ return allocated; ++} ++ + void + FcCacheFini (void) + { +@@ -955,7 +1013,6 @@ FcCache * + FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file) + { + FcCache *cache = NULL; +- const FcChar8 *d; + + #ifndef _WIN32 + FcDirCacheReadUUID ((FcChar8 *) dir, config); +@@ -965,10 +1022,6 @@ FcDirCacheLoad (const FcChar8 *dir, FcCo + &cache, cache_file)) + return NULL; + +- d = FcCacheDir (cache); +- if (FcStrCmp (dir, d)) +- FcHashTableAdd (config->alias_table, (FcChar8 *) d, (FcChar8 *) dir); +- + return cache; + } + +diff -pruN fontconfig-2.13.0.orig/src/fccfg.c fontconfig-2.13.0/src/fccfg.c +--- fontconfig-2.13.0.orig/src/fccfg.c 2018-06-08 18:34:36.546946321 +0900 ++++ fontconfig-2.13.0/src/fccfg.c 2018-06-08 18:39:33.079539192 +0900 +@@ -144,12 +144,6 @@ FcConfigCreate (void) + FcHashUuidCopy, + (FcDestroyFunc) FcStrFree, + FcHashUuidFree); +- config->alias_table = FcHashTableCreate ((FcHashFunc) FcStrHashIgnoreCase, +- (FcCompareFunc) FcStrCmp, +- FcHashStrCopy, +- FcHashStrCopy, +- (FcDestroyFunc) FcStrFree, +- (FcDestroyFunc) FcStrFree); + + FcRefInit (&config->ref, 1); + +@@ -313,7 +307,6 @@ FcConfigDestroy (FcConfig *config) + FcStrFree (config->sysRoot); + + FcHashTableDestroy (config->uuid_table); +- FcHashTableDestroy (config->alias_table); + + free (config); + } +@@ -324,11 +317,15 @@ FcConfigDestroy (FcConfig *config) + + FcBool + FcConfigAddCache (FcConfig *config, FcCache *cache, +- FcSetName set, FcStrSet *dirSet) ++ FcSetName set, FcStrSet *dirSet, FcChar8 *forDir) + { + FcFontSet *fs; + intptr_t *dirs; + int i; ++ FcBool relocated = FcFalse; ++ ++ if (strcmp ((char *)FcCacheDir(cache), (char *)forDir) != 0) ++ relocated = FcTrue; + + /* + * Add fonts +@@ -342,23 +339,43 @@ FcConfigAddCache (FcConfig *config, FcCa + { + FcPattern *font = FcFontSetFont (fs, i); + FcChar8 *font_file; ++ FcChar8 *relocated_font_file = NULL; + +- /* +- * Check to see if font is banned by filename +- */ + if (FcPatternObjectGetString (font, FC_FILE_OBJECT, +- 0, &font_file) == FcResultMatch && +- !FcConfigAcceptFilename (config, font_file)) ++ 0, &font_file) == FcResultMatch) + { +- continue; ++ if (relocated) ++ { ++ FcChar8 *slash = FcStrLastSlash (font_file); ++ relocated_font_file = FcStrBuildFilename (forDir, slash + 1, NULL); ++ font_file = relocated_font_file; ++ } ++ ++ /* ++ * Check to see if font is banned by filename ++ */ ++ if (!FcConfigAcceptFilename (config, font_file)) ++ { ++ free (relocated_font_file); ++ continue; ++ } + } +- ++ + /* + * Check to see if font is banned by pattern + */ + if (!FcConfigAcceptFont (config, font)) ++ { ++ free (relocated_font_file); + continue; +- ++ } ++ ++ if (relocated_font_file) ++ { ++ font = FcPatternCacheRewriteFile (font, cache, relocated_font_file); ++ free (relocated_font_file); ++ } ++ + if (FcFontSetAdd (config->fonts[set], font)) + nref++; + } +@@ -374,18 +391,14 @@ FcConfigAddCache (FcConfig *config, FcCa + for (i = 0; i < cache->dirs_count; i++) + { + const FcChar8 *dir = FcCacheSubdir (cache, i); +- FcChar8 *alias; +- FcChar8 *d = FcStrDirname (dir); + FcChar8 *s = NULL; + +- if (FcHashTableFind (config->alias_table, d, (void **)&alias)) ++ if (relocated) + { + FcChar8 *base = FcStrBasename (dir); +- dir = s = FcStrBuildFilename (alias, base, NULL); +- FcStrFree (alias); ++ dir = s = FcStrBuildFilename (forDir, base, NULL); + FcStrFree (base); + } +- FcStrFree (d); + if (FcConfigAcceptFilename (config, dir)) + FcStrSetAddFilename (dirSet, dir); + if (s) +@@ -413,7 +426,7 @@ FcConfigAddDirList (FcConfig *config, Fc + cache = FcDirCacheRead (dir, FcFalse, config); + if (!cache) + continue; +- FcConfigAddCache (config, cache, set, dirSet); ++ FcConfigAddCache (config, cache, set, dirSet, dir); + FcDirCacheUnload (cache); + } + FcStrListDone (dirlist); +diff -pruN fontconfig-2.13.0.orig/src/fcint.h fontconfig-2.13.0/src/fcint.h +--- fontconfig-2.13.0.orig/src/fcint.h 2018-02-04 19:20:56.000000000 +0900 ++++ fontconfig-2.13.0/src/fcint.h 2018-06-08 18:39:33.080539208 +0900 +@@ -566,7 +566,6 @@ struct _FcConfig { + FcStrSet *availConfigFiles; /* config files available */ + FcPtrList *rulesetList; /* List of rulesets being installed */ + FcHashTable *uuid_table; /* UUID table for cachedirs */ +- FcHashTable *alias_table; /* alias table for cachedirs */ + }; + + typedef struct _FcFileTime { +@@ -617,9 +616,13 @@ FcCacheObjectReference (void *object); + FcPrivate void + FcCacheObjectDereference (void *object); + ++FcPrivate void * ++FcCacheAllocate (FcCache *cache, size_t len); ++ + FcPrivate void + FcCacheFini (void); + ++ + FcPrivate void + FcDirCacheReference (FcCache *cache, int nref); + +@@ -708,7 +711,7 @@ FcConfigModifiedTime (FcConfig *config); + + FcPrivate FcBool + FcConfigAddCache (FcConfig *config, FcCache *cache, +- FcSetName set, FcStrSet *dirSet); ++ FcSetName set, FcStrSet *dirSet, FcChar8 *forDir); + + FcPrivate FcRuleSet * + FcRuleSetCreate (const FcChar8 *name); +@@ -1150,6 +1153,9 @@ FcPatternAppend (FcPattern *p, FcPattern + FcPrivate int + FcPatternPosition (const FcPattern *p, const char *object); + ++FcPrivate FcPattern * ++FcPatternCacheRewriteFile (const FcPattern *pat, FcCache *cache, const FcChar8 *relocated_font_file); ++ + FcPrivate FcChar32 + FcStringHash (const FcChar8 *s); + +diff -pruN fontconfig-2.13.0.orig/src/fclist.c fontconfig-2.13.0/src/fclist.c +--- fontconfig-2.13.0.orig/src/fclist.c 2017-12-05 21:44:22.000000000 +0900 ++++ fontconfig-2.13.0/src/fclist.c 2018-06-08 18:39:33.049538728 +0900 +@@ -448,41 +448,6 @@ FcListAppend (FcListHashTable *table, + e = FcPatternObjectFindElt (font, FcObjectFromName (os->objects[o])); + if (e) + { +- if (FcRefIsConst (&font->ref) && !strcmp (os->objects[o], FC_FILE)) +- { +- FcChar8 *dir, *alias; +- FcConfig *config = FcConfigGetCurrent (); /* FIXME: this may need to be exported as API? */ +- +- for (v = FcPatternEltValues (e); v->value.type != FcTypeString; v = FcValueListNext (v)); +- if (!v) +- goto bail2; +- dir = FcStrDirname (FcValueString (&v->value)); +- if (FcHashTableFind (config->alias_table, dir, (void **) &alias)) +- { +- FcChar8 *base = FcStrBasename (FcValueString (&v->value)); +- FcChar8 *s = FcStrBuildFilename (alias, base, NULL); +- FcValue vv; +- +- FcStrFree (alias); +- FcStrFree (base); +- vv.type = FcTypeString; +- vv.u.s = s; +- if (!FcPatternAdd (bucket->pattern, +- os->objects[o], +- FcValueCanonicalize (&vv), +- FcTrue)) +- { +- FcStrFree (s); +- FcStrFree (dir); +- goto bail2; +- } +- FcStrFree (s); +- FcStrFree (dir); +- goto bail3; +- } +- else +- FcStrFree (dir); +- } + for (v = FcPatternEltValues(e), idx = 0; v; + v = FcValueListNext(v), ++idx) + { +@@ -491,7 +456,6 @@ FcListAppend (FcListHashTable *table, + FcValueCanonicalize(&v->value), defidx != idx)) + goto bail2; + } +- bail3:; + } + } + *prev = bucket; +diff -pruN fontconfig-2.13.0.orig/src/fcmatch.c fontconfig-2.13.0/src/fcmatch.c +--- fontconfig-2.13.0.orig/src/fcmatch.c 2017-12-23 14:06:22.000000000 +0900 ++++ fontconfig-2.13.0/src/fcmatch.c 2018-06-08 18:39:33.050538743 +0900 +@@ -682,43 +682,9 @@ FcFontRenderPrepare (FcConfig *confi + } + else + { +- if (FcRefIsConst (&font->ref) && fe->object == FC_FILE_OBJECT) +- { +- FcValueListPtr l = FcPatternEltValues (fe); +- FcChar8 *dir, *alias; +- +- while (l->value.type != FcTypeString) +- l = FcValueListNext (l); +- if (!l) +- goto bail0; +- dir = FcStrDirname (FcValueString (&l->value)); +- if (!config) +- config = FcConfigGetCurrent (); +- if (config && FcHashTableFind (config->alias_table, dir, (void **) &alias)) +- { +- FcChar8 *base = FcStrBasename (FcValueString (&l->value)); +- FcChar8 *s = FcStrBuildFilename (alias, base, NULL); +- FcValue v; +- +- FcStrFree (alias); +- FcStrFree (base); +- v.type = FcTypeString; +- v.u.s = s; +- FcPatternObjectAddWithBinding (new, fe->object, +- FcValueCanonicalize (&v), +- l->binding, +- FcTrue); +- FcStrFree (s); +- FcStrFree (dir); +- goto bail0; +- } +- else +- FcStrFree (dir); +- } + FcPatternObjectListAdd (new, fe->object, + FcValueListDuplicate (FcPatternEltValues (fe)), + FcTrue); +- bail0:; + } + } + for (i = 0; i < pat->num; i++) +diff -pruN fontconfig-2.13.0.orig/src/fcpat.c fontconfig-2.13.0/src/fcpat.c +--- fontconfig-2.13.0.orig/src/fcpat.c 2017-12-20 19:20:15.000000000 +0900 ++++ fontconfig-2.13.0/src/fcpat.c 2018-06-08 18:39:33.050538743 +0900 +@@ -373,6 +373,71 @@ FcValueListHash (FcValueListPtr l) + return hash; + } + ++static void * ++FcPatternGetCacheObject (FcPattern *p) ++{ ++ /* We use a value to find the cache, instead of the FcPattern object ++ * because the pattern itself may be a cache allocation if we rewrote the path, ++ * so the p may not be in the cached region. */ ++ return FcPatternEltValues(&FcPatternElts (p)[0]); ++} ++ ++FcPattern * ++FcPatternCacheRewriteFile (const FcPattern *p, ++ FcCache *cache, ++ const FcChar8 *relocated_font_file) ++{ ++ FcPatternElt *elts = FcPatternElts (p); ++ size_t i,j; ++ FcChar8 *data; ++ FcPattern *new_p; ++ FcPatternElt *new_elts; ++ FcValueList *new_value_list; ++ size_t new_path_len = strlen ((char *)relocated_font_file); ++ FcChar8 *new_path; ++ ++ /* Allocate space for the patter, the PatternElt headers and ++ * the FC_FILE FcValueList and path that will be freed with the ++ * cache */ ++ data = FcCacheAllocate (cache, ++ sizeof (FcPattern) + ++ p->num * sizeof (FcPatternElt) + ++ sizeof (FcValueList) + ++ new_path_len + 1); ++ ++ new_p = (FcPattern *)data; ++ data += sizeof (FcPattern); ++ new_elts = (FcPatternElt *)(data); ++ data += p->num * sizeof (FcPatternElt); ++ new_value_list = (FcValueList *)data; ++ data += sizeof (FcValueList); ++ new_path = data; ++ ++ *new_p = *p; ++ new_p->elts_offset = FcPtrToOffset (new_p, new_elts); ++ ++ /* Copy all but the FILE values from the cache */ ++ for (i = 0, j = 0; i < p->num; i++) ++ { ++ FcPatternElt *elt = &elts[i]; ++ new_elts[j].object = elt->object; ++ if (elt->object != FC_FILE_OBJECT) ++ new_elts[j++].values = FcPatternEltValues(elt); ++ else ++ new_elts[j++].values = new_value_list; ++ } ++ ++ new_value_list->next = NULL; ++ new_value_list->value.type = FcTypeString; ++ new_value_list->value.u.s = new_path; ++ new_value_list->binding = FcValueBindingWeak; ++ ++ /* Add rewritten path at the end */ ++ strcpy ((char *)new_path, (char *)relocated_font_file); ++ ++ return new_p; ++} ++ + void + FcPatternDestroy (FcPattern *p) + { +@@ -384,10 +449,10 @@ FcPatternDestroy (FcPattern *p) + + if (FcRefIsConst (&p->ref)) + { +- FcCacheObjectDereference (p); ++ FcCacheObjectDereference (FcPatternGetCacheObject(p)); + return; + } +- ++ + if (FcRefDec (&p->ref) != 1) + return; + +@@ -1155,7 +1220,7 @@ FcPatternReference (FcPattern *p) + if (!FcRefIsConst (&p->ref)) + FcRefInc (&p->ref); + else +- FcCacheObjectReference (p); ++ FcCacheObjectReference (FcPatternGetCacheObject(p)); + } + + FcPattern * +diff -pruN fontconfig-2.13.0.orig/test/run-test.sh fontconfig-2.13.0/test/run-test.sh +--- fontconfig-2.13.0.orig/test/run-test.sh 2017-12-18 21:25:18.000000000 +0900 ++++ fontconfig-2.13.0/test/run-test.sh 2018-06-08 18:39:33.031538449 +0900 +@@ -202,4 +202,29 @@ fi + rm -rf $TESTTMPDIR out1 out2 xxx bind-fonts.conf + fi + ++dotest "sysroot option" ++prep ++mkdir -p $MyPWD/sysroot/$FONTDIR ++mkdir -p $MyPWD/sysroot/$CACHEDIR ++cp $FONT1 $MyPWD/sysroot/$FONTDIR ++cp $MyPWD/fonts.conf $MyPWD/sysroot/$MyPWD/fonts.conf ++$FCCACHE -y $MyPWD/sysroot ++stat $MyPWD/sysroot/$FONTDIR/.uuid ++if test $? != 0; then ++ echo "*** Test failed: $TEST" ++ exit 1 ++fi ++ ++dotest "creating uuid-based cache file on sysroot" ++uuid=`cat $MyPWD/sysroot/$FONTDIR/.uuid` ++ls $MyPWD/sysroot/$CACHEDIR/$uuid* ++if [ $? != 0 ]; then ++ echo "*** Test failed: $TEST" ++ echo "No cache for $uuid" ++ ls $MyPWD/sysroot/$CACHEDIR ++ exit 1 ++fi ++ ++rm -rf $MyPWD/sysroot ++ + rm -rf $FONTDIR $CACHEFILE $CACHEDIR $FONTCONFIG_FILE out diff --git a/SOURCES/fontconfig-fix-memleaks.patch b/SOURCES/fontconfig-fix-memleaks.patch new file mode 100644 index 0000000..9a70e6b --- /dev/null +++ b/SOURCES/fontconfig-fix-memleaks.patch @@ -0,0 +1,40 @@ +From 684c3ce6850c4168e127ea84432e7a9006296ff4 Mon Sep 17 00:00:00 2001 +From: Akira TAGOH +Date: Fri, 25 May 2018 13:51:10 +0900 +Subject: [PATCH 1/7] Fix leaks + +--- + src/fcxml.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/fcxml.c b/src/fcxml.c +index 1ee1ba1..c69ee50 100644 +--- a/src/fcxml.c ++++ b/src/fcxml.c +@@ -2777,6 +2777,11 @@ FcParseAcceptRejectFont (FcConfigParse *parse, FcElement element) + { + FcConfigMessage (parse, FcSevereError, "out of memory"); + } ++ else ++ { ++ if (parse->scanOnly && vstack->u.string) ++ FcStrFree (vstack->u.string); ++ } + break; + case FcVStackPattern: + if (!parse->scanOnly && !FcConfigPatternsAdd (parse->config, +@@ -2786,7 +2791,11 @@ FcParseAcceptRejectFont (FcConfigParse *parse, FcElement element) + FcConfigMessage (parse, FcSevereError, "out of memory"); + } + else ++ { ++ if (parse->scanOnly && vstack->u.pattern) ++ FcPatternDestroy (vstack->u.pattern); + vstack->tag = FcVStackNone; ++ } + break; + default: + FcConfigMessage (parse, FcSevereWarning, "bad font selector"); +-- +2.17.1 + diff --git a/SOURCES/fontconfig-freetype-compat.patch b/SOURCES/fontconfig-freetype-compat.patch new file mode 100644 index 0000000..c5b7d45 --- /dev/null +++ b/SOURCES/fontconfig-freetype-compat.patch @@ -0,0 +1,33 @@ +diff -pruN fontconfig-2.13.0.orig/configure.ac fontconfig-2.13.0/configure.ac +--- fontconfig-2.13.0.orig/configure.ac 2018-06-08 18:56:53.882676862 +0900 ++++ fontconfig-2.13.0/configure.ac 2018-06-08 19:01:14.514726892 +0900 +@@ -319,6 +319,10 @@ fontconfig_save_cflags="$CFLAGS" + LIBS="$LIBS $FREETYPE_LIBS" + CFLAGS="$CFLAGS $FREETYPE_CFLAGS" + AC_CHECK_FUNCS(FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format FT_Done_MM_Var) ++AC_CHECK_MEMBERS([TT_OS2.usLowerOpticalPointSize, TT_OS2.usUpperOpticalPointSize], [], [], [[ ++#include ++#include FT_FREETYPE_H ++#include FT_TRUETYPE_TABLES_H]]) + + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + #include +diff -pruN fontconfig-2.13.0.orig/src/fcfreetype.c fontconfig-2.13.0/src/fcfreetype.c +--- fontconfig-2.13.0.orig/src/fcfreetype.c 2018-03-02 13:27:09.000000000 +0900 ++++ fontconfig-2.13.0/src/fcfreetype.c 2018-06-08 19:02:17.328703890 +0900 +@@ -1721,6 +1721,7 @@ FcFreeTypeQueryFaceInternal (const FT_Fa + free (complex_); + } + ++#if defined (HAVE_TT_OS2_USUPPEROPTICALPOINTSIZE) && defined (HAVE_TT_OS2_USLOWEROPTICALPOINTSIZE) + if (!variable_size && os2 && os2->version >= 0x0005 && os2->version != 0xffff) + { + double lower_size, upper_size; +@@ -1746,6 +1747,7 @@ FcFreeTypeQueryFaceInternal (const FT_Fa + FcRangeDestroy (r); + } + } ++#endif + + /* + * Type 1: Check for FontInfo dictionary information diff --git a/SOURCES/fontconfig-implicit-object-for-const-name.patch b/SOURCES/fontconfig-implicit-object-for-const-name.patch new file mode 100644 index 0000000..8dbde51 --- /dev/null +++ b/SOURCES/fontconfig-implicit-object-for-const-name.patch @@ -0,0 +1,31 @@ +From 4699406a68321179b14fae7412f828e2f37a7033 Mon Sep 17 00:00:00 2001 +From: Akira TAGOH +Date: Wed, 14 Mar 2018 18:31:30 +0900 +Subject: [PATCH 2/5] Add the value of the constant name to the implicit object + in the pattern + +For objects which has been changed the object type to FcTypeRange. + +https://bugs.freedesktop.org/show_bug.cgi?id=105415 +--- + src/fcname.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/fcname.c b/src/fcname.c +index 15fb659..c9320ae 100644 +--- a/src/fcname.c ++++ b/src/fcname.c +@@ -490,6 +490,10 @@ FcNameParse (const FcChar8 *name) + if (!FcPatternAddBool (pat, c->object, c->value)) + goto bail2; + break; ++ case FcTypeRange: ++ if (!FcPatternAddInteger (pat, c->object, c->value)) ++ goto bail2; ++ break; + default: + break; + } +-- +2.14.3 + diff --git a/SOURCES/fontconfig-locale.patch b/SOURCES/fontconfig-locale.patch new file mode 100644 index 0000000..c63a717 --- /dev/null +++ b/SOURCES/fontconfig-locale.patch @@ -0,0 +1,274 @@ +From 923b5be626a6e03fbaeee0b5cd6d0246c2f8f36f Mon Sep 17 00:00:00 2001 +From: Akira TAGOH +Date: Wed, 14 Mar 2018 12:35:05 +0900 +Subject: [PATCH 1/5] Do not override locale if already set by app + +https://bugs.freedesktop.org/show_bug.cgi?id=105492 +--- + src/fccfg.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/fccfg.c b/src/fccfg.c +index eb0b76d..e311f17 100644 +--- a/src/fccfg.c ++++ b/src/fccfg.c +@@ -45,11 +45,16 @@ retry_locale: + is_locale_initialized = (intptr_t) fc_atomic_ptr_get (&static_is_locale_initialized); + if (!is_locale_initialized) + { ++ char *loc; ++ + is_locale_initialized = FcTrue; + if (!fc_atomic_ptr_cmpexch (&static_is_locale_initialized, NULL, + (void *)(intptr_t) is_locale_initialized)) + goto retry_locale; +- setlocale (LC_ALL, ""); ++ ++ loc = setlocale (LC_ALL, NULL); ++ if (!loc || strcmp (loc, "C") == 0) ++ setlocale (LC_ALL, ""); + } + retry_config: + config = fc_atomic_ptr_get (&_fcConfig); +-- +2.14.3 + +From 98eaef69af1350e459bf9c175476d3b772968874 Mon Sep 17 00:00:00 2001 +From: Akira TAGOH +Date: Thu, 15 Mar 2018 12:17:52 +0900 +Subject: [PATCH 4/5] Leave the locale setting to applications + +https://bugs.freedesktop.org/show_bug.cgi?id=105492 +--- + fc-conflist/fc-conflist.c | 2 ++ + src/fccfg.c | 22 ++-------------------- + 2 files changed, 4 insertions(+), 20 deletions(-) + +diff --git a/fc-conflist/fc-conflist.c b/fc-conflist/fc-conflist.c +index d02273b..5c40a0f 100644 +--- a/fc-conflist/fc-conflist.c ++++ b/fc-conflist/fc-conflist.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + + #ifdef ENABLE_NLS + #include +@@ -102,6 +103,7 @@ main (int argc, char **argv) + #if HAVE_GETOPT_LONG || HAVE_GETOPT + int c; + ++ setlocale (LC_ALL, ""); + #if HAVE_GETOPT_LONG + while ((c = getopt_long (argc, argv, "Vh", longopts, NULL)) != -1) + #else +diff --git a/src/fccfg.c b/src/fccfg.c +index e311f17..e35c451 100644 +--- a/src/fccfg.c ++++ b/src/fccfg.c +@@ -26,7 +26,6 @@ + + #include "fcint.h" + #include +-#include + #include + + #if defined (_WIN32) && !defined (R_OK) +@@ -39,24 +38,7 @@ static FcConfig * + FcConfigEnsure (void) + { + FcConfig *config; +- FcBool is_locale_initialized; +- static void *static_is_locale_initialized; +-retry_locale: +- is_locale_initialized = (intptr_t) fc_atomic_ptr_get (&static_is_locale_initialized); +- if (!is_locale_initialized) +- { +- char *loc; +- +- is_locale_initialized = FcTrue; +- if (!fc_atomic_ptr_cmpexch (&static_is_locale_initialized, NULL, +- (void *)(intptr_t) is_locale_initialized)) +- goto retry_locale; +- +- loc = setlocale (LC_ALL, NULL); +- if (!loc || strcmp (loc, "C") == 0) +- setlocale (LC_ALL, ""); +- } +-retry_config: ++retry: + config = fc_atomic_ptr_get (&_fcConfig); + if (!config) + { +@@ -64,7 +46,7 @@ retry_config: + + if (!fc_atomic_ptr_cmpexch (&_fcConfig, NULL, config)) { + FcConfigDestroy (config); +- goto retry_config; ++ goto retry; + } + } + return config; +-- +2.14.3 + +From 2938e4d72da40f6bb0d22086c519a9852a820f40 Mon Sep 17 00:00:00 2001 +From: Akira TAGOH +Date: Thu, 15 Mar 2018 12:54:02 +0900 +Subject: [PATCH 5/5] call setlocale + +--- + fc-cache/fc-cache.c | 2 ++ + fc-cat/fc-cat.c | 2 ++ + fc-list/fc-list.c | 2 ++ + fc-match/fc-match.c | 2 ++ + fc-pattern/fc-pattern.c | 2 ++ + fc-query/fc-query.c | 2 ++ + fc-scan/fc-scan.c | 2 ++ + 7 files changed, 14 insertions(+) + +diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c +index dc93c19..87e3020 100644 +--- a/fc-cache/fc-cache.c ++++ b/fc-cache/fc-cache.c +@@ -41,6 +41,7 @@ + #include + #include + #include ++#include + + #if defined (_WIN32) + #define STRICT +@@ -302,6 +303,7 @@ main (int argc, char **argv) + #if HAVE_GETOPT_LONG || HAVE_GETOPT + int c; + ++ setlocale (LC_ALL, ""); + #if HAVE_GETOPT_LONG + while ((c = getopt_long (argc, argv, "Efrsy:Vvh", longopts, NULL)) != -1) + #else +diff --git a/fc-cat/fc-cat.c b/fc-cat/fc-cat.c +index dfe30d7..69611bc 100644 +--- a/fc-cat/fc-cat.c ++++ b/fc-cat/fc-cat.c +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + + #ifdef ENABLE_NLS + #include +@@ -271,6 +272,7 @@ main (int argc, char **argv) + #if HAVE_GETOPT_LONG || HAVE_GETOPT + int c; + ++ setlocale (LC_ALL, ""); + #if HAVE_GETOPT_LONG + while ((c = getopt_long (argc, argv, "Vvrh", longopts, NULL)) != -1) + #else +diff --git a/fc-list/fc-list.c b/fc-list/fc-list.c +index 5cded50..2039acd 100644 +--- a/fc-list/fc-list.c ++++ b/fc-list/fc-list.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + #ifdef HAVE_CONFIG_H + #include + #else +@@ -117,6 +118,7 @@ main (int argc, char **argv) + #if HAVE_GETOPT_LONG || HAVE_GETOPT + int c; + ++ setlocale (LC_ALL, ""); + #if HAVE_GETOPT_LONG + while ((c = getopt_long (argc, argv, "vbf:qVh", longopts, NULL)) != -1) + #else +diff --git a/fc-match/fc-match.c b/fc-match/fc-match.c +index 7902707..dee6147 100644 +--- a/fc-match/fc-match.c ++++ b/fc-match/fc-match.c +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + + #ifdef ENABLE_NLS + #include +@@ -121,6 +122,7 @@ main (int argc, char **argv) + #if HAVE_GETOPT_LONG || HAVE_GETOPT + int c; + ++ setlocale (LC_ALL, ""); + #if HAVE_GETOPT_LONG + while ((c = getopt_long (argc, argv, "asvbf:Vh", longopts, NULL)) != -1) + #else +diff --git a/fc-pattern/fc-pattern.c b/fc-pattern/fc-pattern.c +index f63761c..7989b81 100644 +--- a/fc-pattern/fc-pattern.c ++++ b/fc-pattern/fc-pattern.c +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + + #ifdef ENABLE_NLS + #include +@@ -111,6 +112,7 @@ main (int argc, char **argv) + #if HAVE_GETOPT_LONG || HAVE_GETOPT + int c; + ++ setlocale (LC_ALL, ""); + #if HAVE_GETOPT_LONG + while ((c = getopt_long (argc, argv, "cdf:Vh", longopts, NULL)) != -1) + #else +diff --git a/fc-query/fc-query.c b/fc-query/fc-query.c +index 9da090d..fbffb84 100644 +--- a/fc-query/fc-query.c ++++ b/fc-query/fc-query.c +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + + #ifdef ENABLE_NLS + #include +@@ -115,6 +116,7 @@ main (int argc, char **argv) + #if HAVE_GETOPT_LONG || HAVE_GETOPT + int c; + ++ setlocale (LC_ALL, ""); + #if HAVE_GETOPT_LONG + while ((c = getopt_long (argc, argv, "i:bf:Vh", longopts, NULL)) != -1) + #else +diff --git a/fc-scan/fc-scan.c b/fc-scan/fc-scan.c +index edb967c..9302ac5 100644 +--- a/fc-scan/fc-scan.c ++++ b/fc-scan/fc-scan.c +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + + #ifdef ENABLE_NLS + #include +@@ -110,6 +111,7 @@ main (int argc, char **argv) + #if HAVE_GETOPT_LONG || HAVE_GETOPT + int c; + ++ setlocale (LC_ALL, ""); + #if HAVE_GETOPT_LONG + while ((c = getopt_long (argc, argv, "bf:Vh", longopts, NULL)) != -1) + #else +-- +2.14.3 + diff --git a/SOURCES/fontconfig-required-freetype-version.patch b/SOURCES/fontconfig-required-freetype-version.patch new file mode 100644 index 0000000..6f7aae3 --- /dev/null +++ b/SOURCES/fontconfig-required-freetype-version.patch @@ -0,0 +1,14 @@ +diff -pruN fontconfig-2.12.93.orig/configure.ac fontconfig-2.12.93/configure.ac +--- fontconfig-2.12.93.orig/configure.ac 2018-02-15 22:01:54.000000000 +0900 ++++ fontconfig-2.12.93/configure.ac 2018-02-15 22:33:42.353941393 +0900 +@@ -308,8 +308,8 @@ AC_DEFINE_UNQUOTED(USE_ICONV,$use_iconv, + # Checks for FreeType + # + dnl See http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/VERSIONS.TXT for versioning in freetype +-PKG_CHECK_MODULES(FREETYPE, freetype2 >= 21.0.15) +-PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2 >= 21.0.15" ++PKG_CHECK_MODULES(FREETYPE, freetype2 >= 20.0.14) ++PKGCONFIG_REQUIRES="$PKGCONFIG_REQUIRES freetype2 >= 20.0.14" + + AC_SUBST(FREETYPE_LIBS) + AC_SUBST(FREETYPE_CFLAGS) diff --git a/SOURCES/fontconfig-revert-urw-alias.patch b/SOURCES/fontconfig-revert-urw-alias.patch new file mode 100644 index 0000000..8d34d31 --- /dev/null +++ b/SOURCES/fontconfig-revert-urw-alias.patch @@ -0,0 +1,213 @@ +From 2084b76bea78f9a41349de57d76134efd5174d96 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Fri, 15 Sep 2017 22:52:52 +0200 +Subject: [PATCH 324/491] build: Remove references to deleted file + +Commit cc67d7df17 removed 30-urw-aliases.conf, so don't try to +install it. +--- + conf.d/Makefile.am | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/conf.d/Makefile.am b/conf.d/Makefile.am +index fd50a5d..ff03fb2 100644 +--- a/conf.d/Makefile.am ++++ b/conf.d/Makefile.am +@@ -29,7 +29,6 @@ CONF_LINKS = \ + 10-hinting-$(PREFERRED_HINTING).conf \ + 10-scale-bitmap-fonts.conf \ + 20-unhint-small-vera.conf \ +- 30-urw-aliases.conf \ + 30-metric-aliases.conf \ + 40-nonlatin.conf \ + 45-generic.conf \ +@@ -70,7 +69,6 @@ template_DATA = \ + 11-lcdfilter-light.conf \ + 20-unhint-small-vera.conf \ + 25-unhint-nonlatin.conf \ +- 30-urw-aliases.conf \ + 30-metric-aliases.conf \ + 40-nonlatin.conf \ + 45-generic.conf \ +-- +2.17.1 + +From cc67d7df172431cb345ed42c27eb852e2ee65ae2 Mon Sep 17 00:00:00 2001 +From: "David Kaspar [Dee'Kej]" +Date: Fri, 1 Sep 2017 11:05:16 +0200 +Subject: [PATCH 323/491] conf.d: Drop aliases for (URW)++ fonts + + They have become a part of (URW)++ upstream release now: + https://github.com/ArtifexSoftware/urw-base35-fonts/tree/master/fontconfig +--- + conf.d/30-metric-aliases.conf | 29 +++-------------------------- + conf.d/30-urw-aliases.conf | 33 --------------------------------- + 2 files changed, 3 insertions(+), 59 deletions(-) + delete mode 100644 conf.d/30-urw-aliases.conf + +diff --git a/conf.d/30-metric-aliases.conf b/conf.d/30-metric-aliases.conf +index 1f0778d..c755c5e 100644 +--- a/conf.d/30-metric-aliases.conf ++++ b/conf.d/30-metric-aliases.conf +@@ -44,6 +44,9 @@ but in an order preferring similar designs first. We do this in three steps: + 3) Alias each generic to its specifics. + e.g. Arial to Liberation Sans, Arimo, Albany, and Albany AMT + ++NOTE: The (URW)++ fonts mappings of generics to specifics were removed, because ++ upstream now includes them in their release of (URW)++ Core Font Set here: ++ https://github.com/ArtifexSoftware/urw-base35-fonts/tree/master/fontconfig + --> + + +@@ -308,7 +311,6 @@ but in an order preferring similar designs first. We do this in three steps: + + + +- + + + Arimo +@@ -460,7 +462,6 @@ but in an order preferring similar designs first. We do this in three steps: + + + +- + + + Arial +@@ -490,8 +491,6 @@ but in an order preferring similar designs first. We do this in three steps: + + + +- +- + + + +@@ -499,8 +498,6 @@ but in an order preferring similar designs first. We do this in three steps: + Helvetica + + TeX Gyre Heros +- Nimbus Sans +- Nimbus Sans L + + + +@@ -508,7 +505,6 @@ but in an order preferring similar designs first. We do this in three steps: + Helvetica Narrow + + TeX Gyre Heros Cn +- Nimbus Sans Narrow + + + +@@ -516,8 +512,6 @@ but in an order preferring similar designs first. We do this in three steps: + Times + + TeX Gyre Termes +- Nimbus Roman +- Nimbus Roman No9 L + + + +@@ -525,9 +519,6 @@ but in an order preferring similar designs first. We do this in three steps: + Courier + + TeX Gyre Cursor +- Nimbus Mono PS +- Nimbus Mono +- Nimbus Mono L + + + +@@ -535,8 +526,6 @@ but in an order preferring similar designs first. We do this in three steps: + ITC Avant Garde Gothic + + TeX Gyre Adventor +- URW Gothic +- URW Gothic L + + + +@@ -545,9 +534,6 @@ but in an order preferring similar designs first. We do this in three steps: + + Bookman Old Style + TeX Gyre Bonum +- URW Bookman +- Bookman URW +- URW Bookman L + + + +@@ -555,9 +541,6 @@ but in an order preferring similar designs first. We do this in three steps: + ITC Zapf Chancery + + TeX Gyre Chorus +- Z003 +- Chancery URW +- URW Chancery L + + + +@@ -566,9 +549,6 @@ but in an order preferring similar designs first. We do this in three steps: + + Palatino Linotype + TeX Gyre Pagella +- P052 +- Palladio URW +- URW Palladio L + + + +@@ -577,9 +557,6 @@ but in an order preferring similar designs first. We do this in three steps: + + Century Schoolbook + TeX Gyre Schola +- C059 +- Century SchoolBook URW +- Century Schoolbook L + + + +diff --git a/conf.d/30-urw-aliases.conf b/conf.d/30-urw-aliases.conf +deleted file mode 100644 +index cfde071..0000000 +--- a/conf.d/30-urw-aliases.conf ++++ /dev/null +@@ -1,33 +0,0 @@ +- +- +- +- +- +- Zapf Dingbats +- +- D050000L +- Dingbats +- +- +- +- ITC Zapf Dingbats +- +- D050000L +- Dingbats +- +- +- +- +- Symbol +- +- +- Standard Symbols PS +- +- +- Standard Symbols L +- +- +- +-- +2.17.1 + diff --git a/SOURCES/fontconfig-sleep-less.patch b/SOURCES/fontconfig-sleep-less.patch new file mode 100644 index 0000000..bd9c58c --- /dev/null +++ b/SOURCES/fontconfig-sleep-less.patch @@ -0,0 +1,12 @@ +diff -pruN fontconfig-2.12.91.orig/fc-cache/fc-cache.c fontconfig-2.12.91/fc-cache/fc-cache.c +--- fontconfig-2.12.91.orig/fc-cache/fc-cache.c 2017-11-20 21:02:20.000000000 +0900 ++++ fontconfig-2.12.91/fc-cache/fc-cache.c 2017-12-14 16:59:19.002003145 +0900 +@@ -413,7 +413,7 @@ main (int argc, char **argv) + */ + /* the resolution of mtime on FAT is 2 seconds */ + if (changed) +- sleep (2); ++ sleep (1); + if (verbose) + printf ("%s: %s\n", argv[0], ret ? _("failed") : _("succeeded")); + return ret; diff --git a/SPECS/fontconfig.spec b/SPECS/fontconfig.spec new file mode 100644 index 0000000..ffcb02d --- /dev/null +++ b/SPECS/fontconfig.spec @@ -0,0 +1,863 @@ +%global freetype_version 2.8-7 + +Summary: Font configuration and customization library +Name: fontconfig +Version: 2.13.0 +Release: 4.3%{?dist} +# src/ftglue.[ch] is in Public Domain +# src/fccache.c contains Public Domain code +# fc-case/CaseFolding.txt is in the UCD +# otherwise MIT +License: MIT and Public Domain and UCD +Group: System Environment/Libraries +Source: http://fontconfig.org/release/%{name}-%{version}.tar.bz2 +URL: http://fontconfig.org +Source1: 25-no-bitmap-fedora.conf +Source2: fc-cache + +# https://bugzilla.redhat.com/show_bug.cgi?id=140335 +Patch0: %{name}-sleep-less.patch +Patch1: %{name}-required-freetype-version.patch +Patch2: %{name}-const-name-in-range.patch +Patch3: %{name}-implicit-object-for-const-name.patch +Patch4: %{name}-locale.patch +Patch5: %{name}-fix-embolden-logic.patch +Patch6: %{name}-fix-memleaks.patch +Patch7: %{name}-fix-flatpak.patch +Patch8: %{name}-fix-doublefree.patch +Patch9: %{name}-revert-urw-alias.patch +Patch10: %{name}-drop-incompatible-conf.patch +Patch11: %{name}-freetype-compat.patch + +BuildRequires: expat-devel +BuildRequires: freetype-devel >= %{freetype_version} +BuildRequires: fontpackages-devel +BuildRequires: libuuid-devel +BuildRequires: autoconf automake libtool gettext itstool +BuildRequires: gperf + +Requires: fontpackages-filesystem freetype +Requires(pre): freetype >= 2.8-7 +Requires(post): grep coreutils +Requires: dejavu-sans-fonts + +%description +Fontconfig is designed to locate fonts within the +system and select them according to requirements specified by +applications. + +%package devel +Summary: Font configuration and customization library +Group: Development/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: freetype-devel >= %{freetype_version} +Requires: pkgconfig +Requires: gettext + +%description devel +The fontconfig-devel package includes the header files, +and developer docs for the fontconfig package. + +Install fontconfig-devel if you want to develop programs which +will use fontconfig. + +%package devel-doc +Summary: Development Documentation files for fontconfig library +Group: Documentation +BuildArch: noarch +Requires: %{name}-devel = %{version}-%{release} + +%description devel-doc +The fontconfig-devel-doc package contains the documentation files +which is useful for developing applications that uses fontconfig. + +%prep +%setup -q +%patch0 -p1 -b .sleep-less +%patch1 -p1 -b .freetype +%patch2 -p1 -b .const-range +%patch3 -p1 -b .const +%patch4 -p1 -b .locale +%patch5 -p1 -b .embolden +%patch6 -p1 -b .memleaks +%patch7 -p1 -b .flatpak +%patch8 -p1 -b .doublefree +%patch9 -p1 -b .urw -R +%patch10 -p1 -b .incompat +%patch11 -p1 -b .freetype-compat + +%build +# We don't want to rebuild the docs, but we want to install the included ones. +export HASDOCBOOK=no + +autoreconf +%configure --with-add-fonts=/usr/share/X11/fonts/Type1,/usr/share/X11/fonts/TTF,/usr/local/share/fonts \ + --disable-static --with-cache-dir=/usr/lib/fontconfig/cache + +make %{?_smp_mflags} V=1 + +%install +make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" V=1 + +find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' + +install -p -m 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/fonts/conf.d +ln -s %{_fontconfig_templatedir}/25-unhint-nonlatin.conf $RPM_BUILD_ROOT%{_fontconfig_confdir}/ + +# move installed doc files back to build directory to package them +# in the right place +mv $RPM_BUILD_ROOT%{_docdir}/fontconfig/* . +rmdir $RPM_BUILD_ROOT%{_docdir}/fontconfig/ + +# rename fc-cache binary +mv $RPM_BUILD_ROOT%{_bindir}/fc-cache $RPM_BUILD_ROOT%{_bindir}/fc-cache-%{__isa_bits} + +install -p -m 0755 %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/fc-cache + +%find_lang %{name} +%find_lang %{name}-conf +cat %{name}-conf.lang >> %{name}.lang + +%check +make check V=1 + +%post +/sbin/ldconfig + +umask 0022 + +mkdir -p /usr/lib/fontconfig/cache + +[[ -d %{_localstatedir}/cache/fontconfig ]] && rm -rf %{_localstatedir}/cache/fontconfig/* 2> /dev/null || : + +# Force regeneration of all fontconfig cache files +# The check for existance is needed on dual-arch installs (the second +# copy of fontconfig might install the binary instead of the first) +# The HOME setting is to avoid problems if HOME hasn't been reset +if [ -x /usr/bin/fc-cache ] && /usr/bin/fc-cache --version 2>&1 | grep -q %{version} ; then + HOME=/root /usr/bin/fc-cache -f +fi + +%postun -p /sbin/ldconfig + +%files -f %{name}.lang +%doc README AUTHORS COPYING +%doc fontconfig-user.txt fontconfig-user.html +%doc %{_fontconfig_confdir}/README +%{_libdir}/libfontconfig.so.* +%{_bindir}/fc-cache* +%{_bindir}/fc-cat +%{_bindir}/fc-conflist +%{_bindir}/fc-list +%{_bindir}/fc-match +%{_bindir}/fc-pattern +%{_bindir}/fc-query +%{_bindir}/fc-scan +%{_bindir}/fc-validate +%{_fontconfig_templatedir}/*.conf +%{_datadir}/xml/fontconfig +# fonts.conf is not supposed to be modified. +# If you want to do so, you should use local.conf instead. +%config %{_fontconfig_masterdir}/fonts.conf +%config(noreplace) %{_fontconfig_confdir}/*.conf +%dir /usr/lib/fontconfig/cache +%{_mandir}/man1/* +%{_mandir}/man5/* + +%files devel +%{_libdir}/libfontconfig.so +%{_libdir}/pkgconfig/* +%{_includedir}/fontconfig +%{_mandir}/man3/* +%{_datadir}/gettext/its/fontconfig.its +%{_datadir}/gettext/its/fontconfig.loc + +%files devel-doc +%doc fontconfig-devel.txt fontconfig-devel + +%changelog +* Fri Jun 08 2018 Akira TAGOH - 2.13.0-4.3 +- Add 30-urw-aliases.conf back. + +* Fri Jun 08 2018 Akira TAGOH - 2.13.0-4.2 +- Drop more new syntax in config. + +* Fri Jun 08 2018 Akira TAGOH - 2.13.0-4.1 +- Rebase to 2.13.0 (#1576501) +- Rename fc-cache binary to fc-cache-{32,64} for multilib. (#1568968) +- backport some fixes related to Flatpak. +- Drop new syntax in config for compatibility. +- Requires dejavu-sans-fonts instead of font(:lang=en) (#1484094) + +* Fri Feb 24 2017 Akira TAGOH - 2.10.95-11 +- Add Requires: font(:lang=en) (#1403957) + +* Fri Sep 23 2016 Akira TAGOH - 2.10.95-10 +- Fix a regression in the previous change. (#1355930) + +* Fri Aug 5 2016 Akira TAGOH - 2.10.95-9 +- CVE-2016-5384: Validate offsets in cache files properly. (#1355930) + +* Fri Jun 10 2016 Akira TAGOH - 2.10.95-8 +- Update 45-latin.conf to add some hints to fall back for Windows fonts (#1073460) + +* Fri Jan 24 2014 Daniel Mach - 2.10.95-7 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 2.10.95-6 +- Mass rebuild 2013-12-27 + +* Tue Oct 8 2013 Akira TAGOH - 2.10.95-5 +- Fix the race condition issue on updating cache (#1011510) +- Fix crash issue in FcFontSort() +- Fix an issue not copying all values from the font. + +* Fri Sep 13 2013 Akira TAGOH - 2.10.95-4 +- Fix memory leaks in FcFreeTypeQueryFace(). + +* Mon Sep 2 2013 Akira TAGOH - 2.10.95-3 +- Do not create a directory for migration when no old config file and directory. + (#1003495) + +* Sat Aug 31 2013 Akira TAGOH - 2.10.95-1 +- Fix a crash issue (#1003069) + +* Fri Aug 30 2013 Akira TAGOH - 2.10.94-1 +- New upstream release. +- migrate the configuration for XDG Base Directory spec automatically (#882267) + +* Sat Aug 03 2013 Fedora Release Engineering - 2.10.93-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon May 20 2013 Akira TAGOH - 2.10.93-1 +- New upstream release. + +* Thu Apr 11 2013 Akira TAGOH - 2.10.92-3 +- Fix a web font issue in firefox. (#946859) + +* Mon Apr 1 2013 Akira TAGOH - 2.10.92-2 +- Fix font matching issue. (#929372) + +* Fri Mar 29 2013 Akira TAGOH - 2.10.92-1 +- New upstream release. + +* Tue Feb 12 2013 Akira TAGOH - 2.10.91-3 +- Improve the spec to meet the latest packaging guidelines (#225759) + - add -devel-doc subpackage. +- Fix a build issue with automake 1.13 + +* Fri Feb 8 2013 Ville Skyttä - 2.10.91-2 +- Own the %%{_datadir}/xml/fontconfig dir. +- Fix bogus dates in %%changelog. + +* Fri Jan 11 2013 Akira TAGOH - 2.10.91-1 +- New upstream release (#894109) + - threadsafe + - new tool to validate the glyph coverage + - add new rule to scale the bitmap font. + +* Mon Nov 26 2012 Akira TAGOH - 2.10.2-1 +- New upstream release. + - Fix an regression on FcFontMatch with namelang. (#876970) + +* Thu Oct 25 2012 Akira TAGOH - 2.10.1-2 +- Update License field (#869614) + +* Fri Jul 27 2012 Akira TAGOH - 2.10.1-1 +- New upstream release. + +* Thu Jul 19 2012 Fedora Release Engineering - 2.10.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jul 17 2012 Akira TAGOH - 2.10.0-1 +- New upstream release. + +* Mon Jun 25 2012 Akira TAGOH - 2.9.92-1 +- New upstream release. + +* Mon Jun 11 2012 Akira TAGOH - 2.9.91-1 +- New upstream release. + - docs are generated with the fixed docbook (#826145) + - handle whitespace in family name correctly (#468565, #591634) + - Updated ne.orth. (#586763) + +* Wed May 16 2012 Akira TAGOH - 2.9.0-2 +- Add grep and coreutils to Requires(post). (#821957) + +* Fri Mar 23 2012 Akira TAGOH +- backport patch to make 'result' from FcFontMatch() and FcFontSort() + more reliable. + +* Wed Mar 21 2012 Akira TAGOH - 2.9.0-1 +- New upstream release (#803559) + - Update ks.orth (#790471) + - Add brx.orth (#790460) + - Update ur.orth (#757985) + - No Apple Roman cmap support anymore. should works. (#681808) + - Update ne.orth (#586763) + - Add a workaround for ZapfDingbats. (#562952, #497648, #468565) +- clean up the spec file. +- Add BR: fontpackages-devel. +- Add R: fontpackages-filesystem. + +* Fri Jan 13 2012 Fedora Release Engineering - 2.8.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue May 31 2011 Adam Jackson 2.8.0-4 +- fontconfig-2.8.0-dingbats.patch: Hack for dingbats font matching. (#468565) + +* Tue Feb 08 2011 Fedora Release Engineering - 2.8.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Jun 24 2010 Adam Jackson 2.8.0-2 +- fontconfig-2.8.0-sleep-less.patch: Make a stupid sleep() in fc-cache + slightly less stupid. + +* Thu Dec 3 2009 Behdad Esfahbod - 2.8.0-1 +- Update to 2.8.0 + +* Tue Sep 8 2009 Behdad Esfahbod - 2.7.3-1 +- Update to 2.7.3 + +* Mon Aug 31 2009 Behdad Esfahbod - 2.7.2-1 +- Update to 2.7.2 + +* Mon Jul 27 2009 Behdad Esfahbod - 2.7.1-1 +- Update to 2.7.1 + +* Fri Jul 24 2009 Fedora Release Engineering - 2.7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Jun 24 2009 Behdad Esfahbod - 2.7.0 +- Update to 2.7.0 + +* Mon Jun 1 2009 Behdad Esfahbod - 2.6.99.behdad.20090601-1 +- Update to 2.6.99.behdad.20090601 + +* Fri May 8 2009 Behdad Esfahbod - 2.6.99.behdad.20090508-1 +- Update to 2.6.99.behdad.20090508 +- Resolves #497984 + +* Wed Mar 18 2009 Behdad Esfahbod - 2.6.99.behdad.20090318-1 +- Update to 2.6.99.behdad.20090318 +- Resolves #490888 + +* Tue Mar 17 2009 Behdad Esfahbod - 2.6.99.behdad.20090317-1 +- Update to 2.6.99.behdad.20090317 +- Resolves #485685 + +* Sat Mar 14 2009 Behdad Esfahbod - 2.6.99.behdad-3 +- New tarball with version fixed in the header + +* Fri Mar 13 2009 Behdad Esfahbod - 2.6.99.behdad-2 +- Previous tarball was broken. Rebuild with respinned ball. + +* Fri Mar 13 2009 Behdad Esfahbod - 2.6.99.behdad-1 +- Update to 2.6.99.behdad + +* Tue Mar 10 2009 Behdad Esfahbod - 2.6.98-1.gb39c36a +- Update to 2.6.98-1.gb39c36a + +* Tue Feb 24 2009 Fedora Release Engineering - 2.6.97-5.g945d6a4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Feb 23 2009 Nicolas Mailhot +- 2.6.97-4.g945d6a4 +— global-ization + +* Mon Feb 16 2009 Richard Hughes - 2.6.97-3.g945d6a4 +- Correct the rpm provide name to be font(), not Font(). + +* Sun Feb 15 2009 Behdad Esfahbod - 2.6.97-2.g945d6a4 +- Another try. + +* Sun Feb 15 2009 Behdad Esfahbod - 2.6.97-1.g945d6a4 +- Update to 2.6.97-1.g945d6a4 + +* Sun Feb 15 2009 Behdad Esfahbod - 2.6.96-1.g0b290a6 +- Update to 2.6.96-1.g0b290a6 + +* Tue Jan 27 2009 Behdad Esfahbod - 2.6.95-1.git.66.gb162bfb +- Update to 2.6.95-1.git.66.gb162bfb + +* Fri Jan 23 2009 Behdad Esfahbod - 2.6.94-1.git.65.g628ee83 +- Update to 2.6.94-1.git.65.g628ee83 + +* Wed Jan 21 2009 Behdad Esfahbod - 2.6.93-1.git.64.g6aa4dce +- Update to 2.6.93-1.git.64.g6aa4dce + +* Mon Jan 19 2009 Behdad Esfahbod - 2.6.92-1.git.64.g167bb82 +- Update to 2.6.92-1.git.64.g167bb82 + +* Mon Jan 19 2009 Behdad Esfahbod - 2.6.91-1.git.64.g9feaf34 +- Update to 2.6.91-1.git.64.g9feaf34 + +* Fri Jan 16 2009 Behdad Esfahbod - 2.6.90-3.git.63.g6bb4b9a +- Install fc-scan and fc-query + +* Fri Jan 16 2009 Behdad Esfahbod - 2.6.90-2.git.63.g6bb4b9a +- Update to 2.6.90-1.git.63.g6bb4b9a +- Remove upstreamed patch + +* Mon Oct 20 2008 Behdad Esfahbod - 2.6.0-3 +- Add fontconfig-2.6.0-indic.patch +- Resolves: #464470 + +* Sun Jun 01 2008 Behdad Esfahbod - 2.6.0-2 +- Fix build. + +* Sat May 31 2008 Behdad Esfahbod - 2.6.0-1 +- Update to 2.6.0. + +* Mon Feb 18 2008 Fedora Release Engineering - 2.5.0-2 +- Autorebuild for GCC 4.3 + +* Wed Nov 14 2007 Behdad Esfahbod - 2.5.0-1 +- Update to 2.5.0. + +* Tue Nov 06 2007 Behdad Esfahbod - 2.4.92-1 +- Update to 2.4.92. +- Mark /etc/fonts/conf.d/* as config(noreplace). +- Remove most of our conf file, all upstreamed except for + 75-blacklist-fedora.conf that I'm happily dropping. Who has + Hershey fonts these days... +- ln upstream'ed 25-unhint-nonlatin.conf from conf.avail in conf.d +- Add 25-no-bitmap-fedora.conf which is the tiny remaining bit + of conf that didn't end up upstream. Can get rid of it in the + future, but not just yet. + +* Thu Oct 25 2007 Behdad Esfahbod - 2.4.91-1 +- Update to 2.4.91. +- Add /usr/local/share/fonts to default config. (#147004) +- Don't rebuild docs, to fix multilib conflicts. (#313011) +- Remove docbook and elinks BuildRequires and stuff as we don't + rebuild docs. + +* Wed Aug 22 2007 Adam Jackson - 2.4.2-5 +- Rebuild for PPC toolchain bug +- Add BuildRequires: gawk + +* Sun Jun 17 2007 Matthias Clasen - 2.4.2-4 +- /etc/fonts/conf.d is now owned by filesystem + +* Fri May 11 2007 Matthias Clasen - 2.4.2-3 +- Add Liberation fonts to 30-aliases-fedora.conf + +* Fri Jan 12 2007 Behdad Esfahbod - 2.4.2-2 +- Change /usr/share/X11/fonts/OTF to /usr/share/X11/fonts/TTF +- Resolves: #220809 + +* Tue Dec 5 2006 Matthias Clasen - 2.4.2-1 +- Update to 2.4.2 + +* Wed Oct 4 2006 Matthias Clasen - 2.4.1-4 +- Fix a multilib upgrade problem (#208151) + +* Sun Oct 01 2006 Jesse Keating - 2.4.1-3 +- rebuilt for unwind info generation, broken in gcc-4.1.1-21 + +* Fri Sep 22 2006 Behdad Esfahbod - 2.4.1-2 +- Update 30-aliases-fedora.conf to correctly alias MS and StarOffice + fonts. (#207460) + +* Fri Sep 15 2006 Behdad Esfahbod - 2.4.1-1 +- Update to 2.4.1, a public API was dropped from 2.4.0 +- Remove upstreamed patch + +* Mon Sep 11 2006 Behdad Esfahbod - 2.4.0-1 +- Update to 2.4.0 +- Rename/order our configuration stuff to match the new scheme. + Breaks expected :-( + +* Thu Sep 07 2006 Behdad Esfahbod - 2.3.97-3 +- Add missing file. Previous update didn't go through + +* Thu Sep 07 2006 Behdad Esfahbod - 2.3.97-2 +- Add fontconfig-2.3.97-ppc64.patch, for ppc64 arch signature + +* Thu Sep 07 2006 Behdad Esfahbod - 2.3.97-1 +- update to 2.3.97 +- Drop upstreamed patches +- Regenerate defaultconfig patch +- Don't touch stamp as it was not ever needed + +* Thu Aug 17 2006 Behdad Esfahbod - 2.3.95-11 +- inclusion of zhong yi font and rearranged font prefer list. (bug# 201300) + +* Fri Aug 11 2006 Ray Strode - 2.3.95-10 +- use "%%5x" instead of " %%4x" to support 64k instead of + clamping. Idea from Behdad. + +* Fri Aug 11 2006 Ray Strode - 2.3.95-9 +- tweak last patch to give a more reasonable page size + value if 64k page size is in effect. + +* Fri Aug 11 2006 Ray Strode - 2.3.95-8 +- maybe fix buffer overflow (bug 202152). + +* Fri Aug 11 2006 Ray Strode - 2.3.95-7 +- Update configs to provide better openoffice/staroffice + compatibility (bug 200723) + +* Thu Jul 27 2006 Behdad Esfahbod - 2.3.95-6 +- Do umask 0022 in post +- Update configs to reflect addition of new Indic fonts (#200381, #200397) + +* Tue Jul 18 2006 Matthias Clasen - 2.3.95-5 +- Plug a small memory leak + +* Wed Jul 12 2006 Jesse Keating - 2.3.95-4.1.1 +- rebuild + +* Wed Jul 12 2006 Jesse Keating - 2.3.95-4.1 +- rebuild + +* Fri Jun 2 2006 Matthias Clasen - 2.3.95-4 +- Fix the handling of TTF font collections + +* Thu May 18 2006 Matthias Clasen - 2.3.95-3 +- Apply a patch by David Turner to speed up cache generation + +* Wed Apr 26 2006 Bill Nottingham - 2.3.95-2 +- fix fonts.conf typo + +* Wed Apr 26 2006 Matthias Clasen - 2.3.95-1 +- Update to 2.3.95 + +* Fri Feb 24 2006 Matthias Clasen - 2.3.94-1 +- Update to 2.3.94 + +* Sat Feb 11 2006 Matthias Clasen - 2.3.93.cvs20060211-1 +- Newer cvs snapshot + +* Fri Feb 10 2006 Jesse Keating - 2.3.93.cvs20060208-1.1 +- bump again for double-long bug on ppc(64) + +* Wed Feb 8 2006 Matthias Clasen - 2.3.93.cvs20060208-1 +- Newer cvs snapshot + +* Tue Feb 7 2006 Matthias Clasen - 2.3.93.cvs20060207-1 +- Newer cvs snapshot +- Drop upstreamed patches, pick up some new ones + +* Tue Feb 07 2006 Jesse Keating - 2.3.93.cvs20060131-3.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Thu Feb 2 2006 Ray Strode - 2.3.93.cvs20060131-3 +- Move user cache to a subdirectory (bug 160275) + +* Thu Feb 2 2006 Matthias Clasen - 2.3.93.cvs20060131-2 +- Accumulated patches + +* Tue Jan 31 2006 Matthias Clasen - 2.3.93.cvs20060131-1 +- Newer cvs snapshot + +* Tue Jan 24 2006 Matthias Clasen - 2.3.93.cvs20060124-1 +- Newer cvs snapshot + +* Tue Jan 17 2006 Ray Strode - 2.3.93-4 +- apply patch from Tim Mayberry to correct aliasing and disable + hinting for the two Chinese font names AR PL ShanHeiSun Uni + and AR PL Zenkai Uni + +* Tue Jan 10 2006 Bill Nottingham - 2.3.93-3 +- prereq coreutils for mkdir/touch in %%post + +* Wed Dec 21 2005 Carl Worth - 2.3.93-2 +- Fix to create /var/cache/fontconfig/stamp in the post install stage. + +* Wed Dec 21 2005 Carl Worth - 2.3.93-1 +- New upstream version. + +* Tue Dec 13 2005 Carl Worth - 2.3.92.cvs20051129-3 +- Disable hinting for Lohit Gujarati + +* Fri Dec 9 2005 Carl Worth - 2.3.92.cvs20051129-2 +- Add two new Chinese font names to the default fonts.conf file: + AR PL ShanHeiSun Uni + AR PL Zenkai Uni + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Tue Nov 29 2005 Matthias Clasen - 2.3.92.cvs20051129-1 +- Update to a newer cvs snapshot + +* Sat Nov 19 2005 Matthias Clasen - 2.3.92.cvs20051119-1 +- Update to a newer cvs snapshot + +* Wed Nov 16 2005 Bill Nottingham - 2.3.93-3 +- modular X moved fonts from /usr/X11R6/lib/X11/fonts to + /usr/share/X11/fonts, adjust %%configure accordingly and + conflict with older font packages + +* Wed Nov 9 2005 Carl Worth - 2.3.92-2 +- Remove inadvertent rejection of Luxi Mono from 40-blacklist-fonts.conf. + Fixes #172437 + +* Fri Nov 4 2005 Matthias Clasen - 2.3.92-1 +- Update to 2.3.92 + +* Mon Oct 31 2005 Matthias Clasen - 2.3.91.cvs20051031-1 +- Update to a newer cvs snapshot +- Add a patch which should help to understand broken cache problems + +* Fri Oct 21 2005 Matthias Clasen - 2.3.91.cvs20051017-2 +- Add new Chinese fonts +- Fix the 40-blacklist-fonts.conf file to use the documented + fonts.conf syntax, and exclude the Hershey fonts by family + name. + +* Fri Oct 14 2005 Matthias Clasen - 2.3.91.cvs20051017-1 +- Update to the mmap branch of fontconfig + +* Fri Jul 22 2005 Kristian Høgsberg - 2.3.2-1 +- Update to fontconfig-2.3.2. Drop + + fontconfig-2.1-slighthint.patch, + fontconfig-2.2.3-timestamp.patch, + fontconfig-2.2.3-names.patch, + fontconfig-2.2.3-ta-pa-orth.patch, and + fontconfig-2.2.3-timestamp.patch, + + as they are now merged upstream. + +- Fold fontconfig-2.2.3-add-sazanami.patch into + fontconfig-2.3.2-defaultconfig.patch and split rules to disable CJK + hinting out into /etc/fonts/conf.d/50-no-hint-fonts.conf. + +- Drop fontconfig-0.0.1.020826.1330-blacklist.patch and use the new + rejectfont directive to reject those fonts in 40-blacklist-fonts.conf. + +- Add fontconfig-2.3.2-only-parse-conf-files.patch to avoid parsing + .rpmsave files. + +- Renable s390 documentation now that #97079 has been fixed and add + BuildRequires: for docbook-utils and docbook-utils-pdf. + +- Drop code to iconv and custom install man pages, upstream does the + right thing now. + +- Add workaround from hell to make elinks cooperate so we can build + txt documentation. + +* Tue Apr 19 2005 David Zeuthen - 2.2.3-13 +- Add another font family name Sazanami Gothic/Mincho (#148748) + +* Fri Mar 4 2005 David Zeuthen - 2.2.3-12 +- Rebuild + +* Fri Mar 4 2005 David Zeuthen - 2.2.3-11 +- Rebuild + +* Fri Mar 4 2005 David Zeuthen - 2.2.3-10 +- Rebuild + +* Fri Mar 4 2005 David Zeuthen - 2.2.3-9 +- Disable docs for s390 for now + +* Fri Mar 4 2005 David Zeuthen - 2.2.3-8 +- Rebuild + +* Wed Dec 1 2004 Owen Taylor - 2.2.3-6 +- Sleep a second before the exit of fc-cache to fix problems with fast + serial installs of fonts (#140335) +- Turn off hinting for Lohit Hindi/Bengali/Punjabi (#139816) + +* Tue Oct 19 2004 Owen Taylor - 2.2.3-5 +- Add Lohit fonts for Indic languages (#134492) +- Add Punjabi converage, fix Tamil coverage + +* Wed Sep 22 2004 Owen Taylor - 2.2.3-4 +- Update fonts-hebrew names to include CLM suffix + +* Thu Sep 2 2004 Owen Taylor - 2.2.3-3 +- Backport code from head branch of fontconfig CVS to parse names + for postscript fonts (fixes #127500, J. J. Ramsey) +- Own /usr/share/fonts (#110956, David K. Levine) +- Add KacstQura to serif/sans-serif/monospace aliases (#101182) + +* Mon Aug 16 2004 Owen Taylor - 2.2.3-2 +- Don't run fc-cache if the binary isn't there (#128072, tracked + down by Jay Turner) + +* Tue Aug 3 2004 Owen Taylor - 2.2.3-1 +- Upgrade to 2.2.3 +- Convert man pages to UTF-8 (#108730, Peter van Egdom) +- Renable docs on s390 + +* Mon Jul 26 2004 Owen Taylor - 2.2.1-12 +- Rebuild for RHEL +- Back freetype required version down to 2.1.4 + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Mon Apr 19 2004 Owen Taylor 2.2.1-10 +- Require recent freetype (#109592, Peter Oliver) +- Remove fonts.conf timestamp to fix multiarch conflict (#118182) +- Disable hinting for Mukti Narrow (#120915, Sayamindu Dasgupta) + +* Wed Mar 10 2004 Owen Taylor 2.2.1-8.1 +- Rebuild + +* Wed Mar 10 2004 Owen Taylor 2.2.1-8.0 +- Add Albany/Cumberland/Thorndale as fallbacks for Microsoft core fonts and + as non-preferred alternatives for Sans/Serif/Monospace +- Fix FreeType includes for recent FreeType + +* Tue Mar 02 2004 Elliot Lee +- rebuilt + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Mon Sep 22 2003 Owen Taylor 2.2.1-6.0 +- Should have been passing --with-add-fonts, not --with-add-dirs to + configure ... caused wrong version of Luxi to be used. (#100862) + +* Fri Sep 19 2003 Owen Taylor 2.2.1-5.0 +- Tweak fonts.conf to get right hinting for CJK fonts (#97337) + +* Tue Jun 17 2003 Bill Nottingham 2.2.1-3 +- handle null config->cache correctly + +* Thu Jun 12 2003 Owen Taylor 2.2.1-2 +- Update default config to include Hebrew fonts (#90501, Dov Grobgeld) + +* Tue Jun 10 2003 Owen Taylor 2.2.1-2 +- As a workaround disable doc builds on s390 + +* Mon Jun 9 2003 Owen Taylor 2.2.1-1 +- Version 2.2.1 + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Mon Feb 24 2003 Elliot Lee +- debuginfo rebuild + +* Mon Feb 24 2003 Owen Taylor 2.1-8 +- Fix segfault in fc-cache from .dircache patch + +* Mon Feb 24 2003 Owen Taylor +- Back out patch that wrote fonts.conf entries that crash RH-8.0 + gnome-terminal, go with patch from fontconfig CVS instead. + (#84863) + +* Tue Feb 11 2003 Owen Taylor +- Move fontconfig man page to main package, since it contains non-devel + information (#76189) +- Look in the OTF subdirectory of /usr/X11R6/lib/fonts as well + so we find Syriac fonts (#82627) + +* Thu Feb 6 2003 Matt Wilson 2.1-5 +- modified fontconfig-0.0.1.020626.1517-fontdir.patch to hard code + /usr/X11R6/lib/X11/fonts instead of using $(X_FONT_DIR). This is + because on lib64 machines, fonts are not in /usr/X11R6/lib64/.... + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Wed Jan 15 2003 Owen Taylor +- Try a different tack when fixing cache problem + +* Tue Jan 14 2003 Owen Taylor +- Try to fix bug where empty cache entries would be found in + ~/.fonts.cache-1 during scanning (#81335) + +* Thu Nov 21 2002 Mike A. Harris 2.1-1 +- Updated to version 2.1 +- Updated slighthint patch to fontconfig-2.1-slighthint.patch +- Updated freetype version required to 2.1.2-7 + +* Mon Sep 2 2002 Owen Taylor +- Version 2.0 +- Correct capitalization/spacing for ZYSong18030 name (#73272) + +* Fri Aug 30 2002 Owen Taylor +- Blacklist fonts from ghostscript-fonts that don't render correctly + +* Mon Aug 26 2002 Owen Taylor +- Upgrade to fcpackage rc3 +- Fix bug in comparisons for xx_XX language tags +- Compensate for a minor config file change in rc3 + +* Wed Aug 21 2002 Owen Taylor +- Add an explicit PreReq for freetype +- Move fonts we don't ship to the end of the fonts.conf aliases so + installing them doesn't change the look. + +* Wed Aug 21 2002 Owen Taylor +- Memory leak fix when parsing config files +- Set rh_prefer_bitmaps for .ja fonts to key off of in Xft +- Fix some groff warnings for fontconfig.man (#72138) + +* Thu Aug 15 2002 Owen Taylor +- Try once more to get the right default Sans-serif font :-( +- Switch the Sans/Monospace aliases for Korean to Gulim, not Dotum + +* Wed Aug 14 2002 Owen Taylor +- Fix %%post + +* Tue Aug 13 2002 Owen Taylor +- Fix lost Luxi Sans default + +* Mon Aug 12 2002 Owen Taylor +- Upgrade to rc2 +- Turn off hinting for all CJK fonts +- Fix typo in %%post +- Remove the custom language tag stuff in favor of Keith's standard + solution. + +* Mon Jul 15 2002 Owen Taylor +- Prefer Luxi Sans to Nimbus Sans again + +* Fri Jul 12 2002 Owen Taylor +- Add FC_HINT_STYLE to FcBaseObjectTypes +- Switch Chinese fonts to always using Sung-ti / Ming-ti, and never Kai-ti +- Add ZYSong18030 to aliases (#68428) + +* Wed Jul 10 2002 Owen Taylor +- Fix a typo in the langtag patch (caught by Erik van der Poel) + +* Wed Jul 3 2002 Owen Taylor +- Add FC_HINT_STYLE tag + +* Thu Jun 27 2002 Owen Taylor +- New upstream version, with fix for problems with + ghostscript-fonts (Fonts don't work for Qt+CJK, + etc.) + +* Wed Jun 26 2002 Owen Taylor +- New upstream version, fixing locale problem + +* Mon Jun 24 2002 Owen Taylor +- Add a hack where we set the "language" fontconfig property based on the locale, then + we conditionalize base on that in the fonts.conf file. + +* Sun Jun 23 2002 Owen Taylor +- New upstream version + +* Tue Jun 18 2002 Owen Taylor +- Fix crash from FcObjectSetAdd + +* Tue Jun 11 2002 Owen Taylor +- make fonts.conf %%config, not %%config(noreplace) +- Another try at the CJK aliases +- Add some CJK fonts to the config +- Prefer Luxi Mono to Nimbus Mono + +* Mon Jun 10 2002 Owen Taylor +- New upstream version +- Fix matching for bitmap fonts + +* Mon Jun 3 2002 Owen Taylor +- New version, new upstream mega-tarball + +* Tue May 28 2002 Owen Taylor +- Fix problem with FcConfigSort + +* Fri May 24 2002 Owen Taylor +- Initial specfile +