diff --git a/FcConfigGetFilename.3 b/FcConfigGetFilename.3 new file mode 100644 index 0000000..9d16523 --- /dev/null +++ b/FcConfigGetFilename.3 @@ -0,0 +1,26 @@ +.\" auto-generated by docbook2man-spec from docbook-utils package +.TH "FcConfigGetFilename" "3" "27 1月 2020" "Fontconfig 2.13.91" "" +.SH NAME +FcConfigGetFilename \- Find a config file +.SH SYNOPSIS +.nf +\fB#include +.sp +FcChar8 * FcConfigGetFilename (FcConfig *\fIconfig\fB, const FcChar8 *\fIname\fB); +.fi\fR +.SH "DESCRIPTION" +.PP +Given the specified external entity name, return the associated filename. +This provides applications a way to convert various configuration file +references into filename form. +.PP +A null or empty \fIname\fR indicates that the default configuration file should +be used; which file this references can be overridden with the +FONTCONFIG_FILE environment variable. Next, if the name starts with \fI~\fR, it +refers to a file in the current users home directory. Otherwise if the name +doesn't start with '/', it refers to a file in the default configuration +directory; the built-in default directory can be overridden with the +FONTCONFIG_PATH environment variable. +.PP +The result of this function is affected by the FONTCONFIG_SYSROOT environment variable or equivalent functionality. + diff --git a/backport-fontconfig-sysroot.patch b/backport-fontconfig-sysroot.patch new file mode 100644 index 0000000..6a1367d --- /dev/null +++ b/backport-fontconfig-sysroot.patch @@ -0,0 +1,263 @@ +diff --git a/doc/fcconfig.fncs b/doc/fcconfig.fncs +index 5f1ef43..82769d5 100644 +--- a/doc/fcconfig.fncs ++++ b/doc/fcconfig.fncs +@@ -344,6 +344,15 @@ to be up to date, and used. + @TYPE1@ const FcChar8 * @ARG1@ name + @PURPOSE@ Find a config file + @DESC@ ++This function is deprecated and is replaced by FcConfigGetFilename. ++@@ ++ ++@RET@ FcChar8 * ++@FUNC@ FcConfigGetFilename ++@TYPE1@ FcConfig * @ARG1@ config ++@TYPE2@ const FcChar8 * @ARG2@ name ++@PURPOSE@ Find a config file ++@DESC@ + Given the specified external entity name, return the associated filename. + This provides applications a way to convert various configuration file + references into filename form. +@@ -355,6 +364,8 @@ refers to a file in the current users home directory. Otherwise if the name + doesn't start with '/', it refers to a file in the default configuration + directory; the built-in default directory can be overridden with the + FONTCONFIG_PATH environment variable. ++ ++The result of this function is affected by the FONTCONFIG_SYSROOT environment variable or equivalent functionality. + @@ + + @RET@ FcBool +diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h +index 9586616..2f0e8cf 100644 +--- a/fontconfig/fontconfig.h ++++ b/fontconfig/fontconfig.h +@@ -393,6 +393,10 @@ FcConfigHome (void); + FcPublic FcBool + FcConfigEnableHome (FcBool enable); + ++FcPublic FcChar8 * ++FcConfigGetFilename (FcConfig *config, ++ const FcChar8 *url); ++ + FcPublic FcChar8 * + FcConfigFilename (const FcChar8 *url); + +diff --git a/src/fccfg.c b/src/fccfg.c +index e81eeba..21ccd25 100644 +--- a/src/fccfg.c ++++ b/src/fccfg.c +@@ -686,7 +686,7 @@ FcConfigAddConfigFile (FcConfig *config, + const FcChar8 *f) + { + FcBool ret; +- FcChar8 *file = FcConfigFilename (f); ++ FcChar8 *file = FcConfigGetFilename (config, f); + + if (!file) + return FcFalse; +@@ -2284,10 +2284,19 @@ FcConfigEnableHome (FcBool enable) + } + + FcChar8 * +-FcConfigFilename (const FcChar8 *url) ++FcConfigGetFilename (FcConfig *config, ++ const FcChar8 *url) + { + FcChar8 *file, *dir, **path, **p; ++ const FcChar8 *sysroot; + ++ if (!config) ++ { ++ config = FcConfigGetCurrent (); ++ if (!config) ++ return NULL; ++ } ++ sysroot = FcConfigGetSysRoot (config); + if (!url || !*url) + { + url = (FcChar8 *) getenv ("FONTCONFIG_FILE"); +@@ -2297,13 +2306,23 @@ FcConfigFilename (const FcChar8 *url) + file = 0; + + if (FcStrIsAbsoluteFilename(url)) +- return FcConfigFileExists (0, url); ++ return FcConfigFileExists (sysroot, url); + + if (*url == '~') + { + dir = FcConfigHome (); + if (dir) +- file = FcConfigFileExists (dir, url + 1); ++ { ++ FcChar8 *s; ++ ++ if (sysroot) ++ s = FcStrBuildFilename (sysroot, dir, NULL); ++ else ++ s = dir; ++ file = FcConfigFileExists (s, url + 1); ++ if (sysroot) ++ FcStrFree (s); ++ } + else + file = 0; + } +@@ -2314,7 +2333,15 @@ FcConfigFilename (const FcChar8 *url) + return NULL; + for (p = path; *p; p++) + { +- file = FcConfigFileExists (*p, url); ++ FcChar8 *s; ++ ++ if (sysroot) ++ s = FcStrBuildFilename (sysroot, *p, NULL); ++ else ++ s = *p; ++ file = FcConfigFileExists (s, url); ++ if (sysroot) ++ FcStrFree (s); + if (file) + break; + } +@@ -2323,33 +2350,31 @@ FcConfigFilename (const FcChar8 *url) + return file; + } + ++FcChar8 * ++FcConfigFilename (const FcChar8 *url) ++{ ++ return FcConfigGetFilename (NULL, url); ++} ++ + FcChar8 * + FcConfigRealFilename (FcConfig *config, + const FcChar8 *url) + { +- const FcChar8 *sysroot = FcConfigGetSysRoot (config); +- FcChar8 *n = FcConfigFilename (url); +- FcChar8 *nn = NULL; ++ FcChar8 *n = FcConfigGetFilename (config, url); + + if (n) + { + FcChar8 buf[FC_PATH_MAX]; + ssize_t len; + +- if (sysroot) +- nn = FcStrBuildFilename (sysroot, n, NULL); +- else +- nn = FcStrdup (n); +- FcStrFree (n); +- +- if ((len = FcReadLink (nn, buf, sizeof (buf) - 1)) != -1) ++ if ((len = FcReadLink (n, buf, sizeof (buf) - 1)) != -1) + { + buf[len] = 0; + + if (!FcStrIsAbsoluteFilename (buf)) + { +- FcChar8 *dirname = FcStrDirname (nn); +- FcStrFree (nn); ++ FcChar8 *dirname = FcStrDirname (n); ++ FcStrFree (n); + if (!dirname) + return NULL; + +@@ -2358,18 +2383,18 @@ FcConfigRealFilename (FcConfig *config, + if (!path) + return NULL; + +- nn = FcStrCanonFilename (path); ++ n = FcStrCanonFilename (path); + FcStrFree (path); + } + else + { +- FcStrFree (nn); +- nn = FcStrdup (buf); ++ FcStrFree (n); ++ n = FcStrdup (buf); + } + } + } + +- return nn; ++ return n; + } + + /* +diff --git a/src/fcxml.c b/src/fcxml.c +index d9a67f6..a366644 100644 +--- a/src/fcxml.c ++++ b/src/fcxml.c +@@ -2541,7 +2541,7 @@ FcParseInclude (FcConfigParse *parse) + FcChar8 *filename; + static FcBool warn_conf = FcFalse, warn_confd = FcFalse; + +- filename = FcConfigFilename(s); ++ filename = FcConfigGetFilename(parse->config, s); + if (deprecated == FcTrue && + filename != NULL && + userdir != NULL && +@@ -3532,7 +3532,9 @@ _FcConfigParse (FcConfig *config, + FcStrBuf sbuf; + char buf[BUFSIZ]; + FcBool ret = FcFalse, complain_again = complain; ++ FcStrBuf reason; + ++ FcStrBufInit (&reason, NULL, 0); + #ifdef _WIN32 + if (!pGetSystemWindowsDirectory) + { +@@ -3549,12 +3551,20 @@ _FcConfigParse (FcConfig *config, + } + #endif + +- filename = FcConfigFilename (name); ++ filename = FcConfigGetFilename (config, name); + if (!filename) ++ { ++ FcStrBufString (&reason, (FcChar8 *)"No such file: "); ++ FcStrBufString (&reason, name ? name : (FcChar8 *)"(null)"); + goto bail0; ++ } + realfilename = FcConfigRealFilename (config, name); + if (!realfilename) ++ { ++ FcStrBufString (&reason, (FcChar8 *)"No such realfile: "); ++ FcStrBufString (&reason, name ? name : (FcChar8 *)"(null)"); + goto bail0; ++ } + if (FcStrSetMember (config->availConfigFiles, realfilename)) + { + FcStrFree (filename); +@@ -3582,7 +3592,11 @@ _FcConfigParse (FcConfig *config, + + fd = FcOpen ((char *) realfilename, O_RDONLY); + if (fd == -1) ++ { ++ FcStrBufString (&reason, (FcChar8 *)"Unable to open "); ++ FcStrBufString (&reason, realfilename); + goto bail1; ++ } + + do { + len = read (fd, buf, BUFSIZ); +@@ -3623,11 +3637,13 @@ bail0: + if (!ret && complain_again) + { + if (name) +- FcConfigMessage (0, FcSevereError, "Cannot %s config file \"%s\"", load ? "load" : "scan", name); ++ FcConfigMessage (0, FcSevereError, "Cannot %s config file \"%s\": %s", load ? "load" : "scan", name, FcStrBufDoneStatic (&reason)); + else +- FcConfigMessage (0, FcSevereError, "Cannot %s default config file", load ? "load" : "scan"); ++ FcConfigMessage (0, FcSevereError, "Cannot %s default config file: %s", load ? "load" : "scan", FcStrBufDoneStatic (&reason)); ++ FcStrBufDestroy (&reason); + return FcFalse; + } ++ FcStrBufDestroy (&reason); + return ret; + } + +-- +2.24.1 diff --git a/fontconfig-2.13.1.tar.bz2 b/fontconfig-2.13.1.tar.bz2 deleted file mode 100644 index 7b2b266..0000000 Binary files a/fontconfig-2.13.1.tar.bz2 and /dev/null differ diff --git a/fontconfig-2.13.92.tar.xz b/fontconfig-2.13.92.tar.xz new file mode 100644 index 0000000..69e9883 Binary files /dev/null and b/fontconfig-2.13.92.tar.xz differ diff --git a/fontconfig-fix-1744377.patch b/fontconfig-fix-1744377.patch new file mode 100644 index 0000000..8f0c407 --- /dev/null +++ b/fontconfig-fix-1744377.patch @@ -0,0 +1,107 @@ +diff --git a/src/fcxml.c b/src/fcxml.c +index 2e26e77a..076fa301 100644 +--- a/src/fcxml.c ++++ b/src/fcxml.c +@@ -3526,7 +3526,7 @@ _FcConfigParse (FcConfig *config, + int len; + FcStrBuf sbuf; + char buf[BUFSIZ]; +- FcBool ret = FcFalse; ++ FcBool ret = FcFalse, complain_again = complain; + + #ifdef _WIN32 + if (!pGetSystemWindowsDirectory) +@@ -3605,7 +3605,7 @@ _FcConfigParse (FcConfig *config, + close (fd); + + ret = FcConfigParseAndLoadFromMemoryInternal (config, filename, FcStrBufDoneStatic (&sbuf), complain, load); +- complain = FcFalse; /* no need to reclaim here */ ++ complain_again = FcFalse; /* no need to reclaim here */ + bail1: + FcStrBufDestroy (&sbuf); + bail0: +@@ -3613,7 +3613,9 @@ bail0: + FcStrFree (filename); + if (realfilename) + FcStrFree (realfilename); +- if (!ret && complain) ++ if (!complain) ++ return FcTrue; ++ if (!ret && complain_again) + { + if (name) + FcConfigMessage (0, FcSevereError, "Cannot %s config file \"%s\"", load ? "load" : "scan", name); +diff --git a/test/Makefile.am b/test/Makefile.am +index f9c21581..a9fa089a 100644 +--- a/test/Makefile.am ++++ b/test/Makefile.am +@@ -131,6 +131,10 @@ TESTS += test-d1f48f11 + endif + endif + ++check_PROGRAMS += test-bz1744377 ++test_bz1744377_LDADD = $(top_builddir)/src/libfontconfig.la ++TESTS += test-bz1744377 ++ + EXTRA_DIST=run-test.sh run-test-conf.sh $(LOG_COMPILER) $(TESTDATA) out.expected-long-family-names out.expected-no-long-family-names + + CLEANFILES=out out1 out2 fonts.conf out.expected +diff --git a/test/test-bz1744377.c b/test/test-bz1744377.c +new file mode 100644 +index 00000000..d7f10535 +--- /dev/null ++++ b/test/test-bz1744377.c +@@ -0,0 +1,51 @@ ++/* ++ * fontconfig/test/test-bz1744377.c ++ * ++ * Copyright © 2000 Keith Packard ++ * ++ * Permission to use, copy, modify, distribute, and sell this software and its ++ * documentation for any purpose is hereby granted without fee, provided that ++ * the above copyright notice appear in all copies and that both that ++ * copyright notice and this permission notice appear in supporting ++ * documentation, and that the name of the author(s) not be used in ++ * advertising or publicity pertaining to distribution of the software without ++ * specific, written prior permission. The authors make no ++ * representations about the suitability of this software for any purpose. It ++ * is provided "as is" without express or implied warranty. ++ * ++ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, ++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO ++ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR ++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, ++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++ * PERFORMANCE OF THIS SOFTWARE. ++ */ ++#include ++ ++int ++main (void) ++{ ++ const FcChar8 *doc = "" ++ "\n" ++ " blahblahblah\n" ++ "\n" ++ ""; ++ const FcChar8 *doc2 = "" ++ "\n" ++ " blahblahblah\n" ++ "\n" ++ ""; ++ FcConfig *cfg = FcConfigCreate (); ++ ++ if (!FcConfigParseAndLoadFromMemory (cfg, doc, FcTrue)) ++ return 1; ++ if (FcConfigParseAndLoadFromMemory (cfg, doc2, FcTrue)) ++ return 1; ++ if (!FcConfigParseAndLoadFromMemory (cfg, doc2, FcFalse)) ++ return 1; ++ ++ FcConfigDestroy (cfg); ++ ++ return 0; ++} +-- +2.23.0 diff --git a/fontconfig-fix-assertion.patch b/fontconfig-fix-assertion.patch new file mode 100644 index 0000000..3687aee --- /dev/null +++ b/fontconfig-fix-assertion.patch @@ -0,0 +1,128 @@ +diff --git a/src/fccache.c b/src/fccache.c +index 4744a84..035458e 100644 +--- a/src/fccache.c ++++ b/src/fccache.c +@@ -365,7 +365,6 @@ FcDirCacheProcess (FcConfig *config, const FcChar8 *dir, + struct stat file_stat, dir_stat; + FcBool ret = FcFalse; + const FcChar8 *sysroot = FcConfigGetSysRoot (config); +- struct timeval latest_mtime = (struct timeval){ 0 }; + + if (sysroot) + d = FcStrBuildFilename (sysroot, dir, NULL); +@@ -390,6 +389,8 @@ FcDirCacheProcess (FcConfig *config, const FcChar8 *dir, + #ifndef _WIN32 + FcBool retried = FcFalse; + #endif ++ struct timeval latest_mtime = (struct timeval){ 0 }; ++ + if (sysroot) + cache_hashed = FcStrBuildFilename (sysroot, cache_dir, cache_base, NULL); + else +@@ -1081,12 +1082,12 @@ FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat) + + if (!file_stat) + file_stat = &my_file_stat; +- fd = FcDirCacheOpenFile (cache_file, file_stat); +- if (fd < 0) +- return NULL; + config = FcConfigReference (NULL); + if (!config) + return NULL; ++ fd = FcDirCacheOpenFile (cache_file, file_stat); ++ if (fd < 0) ++ return NULL; + cache = FcDirCacheMapFd (config, fd, file_stat, NULL); + FcConfigDestroy (config); + close (fd); +diff --git a/src/fcinit.c b/src/fcinit.c +index 6f82ebd..0e1421e 100644 +--- a/src/fcinit.c ++++ b/src/fcinit.c +@@ -199,10 +199,10 @@ void + FcFini (void) + { + FcConfigFini (); +- FcCacheFini (); ++ FcConfigPathFini (); + FcDefaultFini (); + FcObjectFini (); +- FcConfigPathFini (); ++ FcCacheFini (); + } + + /* +-- +2.24.1 + +From 6f6b39780215714386606ca1c5457a7106639ff4 Mon Sep 17 00:00:00 2001 +From: Akira TAGOH +Date: Mon, 23 Mar 2020 14:03:47 +0900 +Subject: [PATCH] Fix assertion in FcCacheFini() again + +The previous fix in fbc05949ef52c8a8d69233eed77f6636dffec280 was wrong. reverting. + +When reading older caches, FcDirCacheMapHelper() returns FcFalse and +it became the return value from FcDirCacheProcess() too, which is wrong. +Actually one of calls for FcDirCacheMapHelper() should be successfully +finished and closure should have a valid pointer for cache. + +Due to this, the proper finalization process wasn't running against +cache in closure. + +Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/227 +--- + src/fccache.c | 17 +++++++++++++++-- + 1 file changed, 15 insertions(+), 2 deletions(-) + +diff --git a/src/fccache.c b/src/fccache.c +index 035458e..2d398c7 100644 +--- a/src/fccache.c ++++ b/src/fccache.c +@@ -365,6 +365,7 @@ FcDirCacheProcess (FcConfig *config, const FcChar8 *dir, + struct stat file_stat, dir_stat; + FcBool ret = FcFalse; + const FcChar8 *sysroot = FcConfigGetSysRoot (config); ++ struct timeval latest_mtime = (struct timeval){ 0 }; + + if (sysroot) + d = FcStrBuildFilename (sysroot, dir, NULL); +@@ -389,7 +390,6 @@ FcDirCacheProcess (FcConfig *config, const FcChar8 *dir, + #ifndef _WIN32 + FcBool retried = FcFalse; + #endif +- struct timeval latest_mtime = (struct timeval){ 0 }; + + if (sysroot) + cache_hashed = FcStrBuildFilename (sysroot, cache_dir, cache_base, NULL); +@@ -445,6 +445,8 @@ FcDirCacheProcess (FcConfig *config, const FcChar8 *dir, + } + FcStrListDone (list); + ++ if (closure) ++ return !!(*((FcCache **)closure) != NULL); + return ret; + } + +@@ -792,7 +794,18 @@ FcCacheFini (void) + int i; + + for (i = 0; i < FC_CACHE_MAX_LEVEL; i++) +- assert (fcCacheChains[i] == NULL); ++ { ++ if (FcDebug() & FC_DBG_CACHE) ++ { ++ if (fcCacheChains[i] != NULL) ++ { ++ FcCacheSkip *s = fcCacheChains[i]; ++ printf("Fontconfig error: not freed %p (dir: %s, refcount %d)\n", s->cache, FcCacheDir(s->cache), s->ref.count); ++ } ++ } ++ else ++ assert (fcCacheChains[i] == NULL); ++ } + assert (fcCacheMaxLevel == 0); + + free_lock (); +-- +2.24.1 diff --git a/fontconfig-fix-dtd-id.patch b/fontconfig-fix-dtd-id.patch new file mode 100644 index 0000000..f2f5e34 --- /dev/null +++ b/fontconfig-fix-dtd-id.patch @@ -0,0 +1,491 @@ +diff -uNr fontconfig-2.13.92.orig/conf.d/05-reset-dirs-sample.conf fontconfig-2.13.92/conf.d/05-reset-dirs-sample.conf +--- fontconfig-2.13.92.orig/conf.d/05-reset-dirs-sample.conf 2019-05-08 10:22:25.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/05-reset-dirs-sample.conf 2020-03-28 15:53:41.792757065 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + Re-define fonts dirs sample + +diff -uNr fontconfig-2.13.92.orig/conf.d/09-autohint-if-no-hinting.conf fontconfig-2.13.92/conf.d/09-autohint-if-no-hinting.conf +--- fontconfig-2.13.92.orig/conf.d/09-autohint-if-no-hinting.conf 2019-07-30 13:03:27.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/09-autohint-if-no-hinting.conf 2020-03-28 15:53:41.764757635 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/10-autohint.conf fontconfig-2.13.92/conf.d/10-autohint.conf +--- fontconfig-2.13.92.orig/conf.d/10-autohint.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/10-autohint.conf 2020-03-28 15:53:41.829756312 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/10-hinting-full.conf fontconfig-2.13.92/conf.d/10-hinting-full.conf +--- fontconfig-2.13.92.orig/conf.d/10-hinting-full.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/10-hinting-full.conf 2020-03-28 15:53:41.714758653 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/10-hinting-medium.conf fontconfig-2.13.92/conf.d/10-hinting-medium.conf +--- fontconfig-2.13.92.orig/conf.d/10-hinting-medium.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/10-hinting-medium.conf 2020-03-28 15:53:41.809756719 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/10-hinting-none.conf fontconfig-2.13.92/conf.d/10-hinting-none.conf +--- fontconfig-2.13.92.orig/conf.d/10-hinting-none.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/10-hinting-none.conf 2020-03-28 15:53:41.796756984 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/10-hinting-slight.conf fontconfig-2.13.92/conf.d/10-hinting-slight.conf +--- fontconfig-2.13.92.orig/conf.d/10-hinting-slight.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/10-hinting-slight.conf 2020-03-28 15:53:41.760757717 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/10-no-sub-pixel.conf fontconfig-2.13.92/conf.d/10-no-sub-pixel.conf +--- fontconfig-2.13.92.orig/conf.d/10-no-sub-pixel.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/10-no-sub-pixel.conf 2020-03-28 15:53:41.743758063 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/10-scale-bitmap-fonts.conf fontconfig-2.13.92/conf.d/10-scale-bitmap-fonts.conf +--- fontconfig-2.13.92.orig/conf.d/10-scale-bitmap-fonts.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/10-scale-bitmap-fonts.conf 2020-03-28 15:53:41.727758389 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/10-sub-pixel-bgr.conf fontconfig-2.13.92/conf.d/10-sub-pixel-bgr.conf +--- fontconfig-2.13.92.orig/conf.d/10-sub-pixel-bgr.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/10-sub-pixel-bgr.conf 2020-03-28 15:53:41.841756068 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/10-sub-pixel-rgb.conf fontconfig-2.13.92/conf.d/10-sub-pixel-rgb.conf +--- fontconfig-2.13.92.orig/conf.d/10-sub-pixel-rgb.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/10-sub-pixel-rgb.conf 2020-03-28 15:53:41.723758470 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/10-sub-pixel-vbgr.conf fontconfig-2.13.92/conf.d/10-sub-pixel-vbgr.conf +--- fontconfig-2.13.92.orig/conf.d/10-sub-pixel-vbgr.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/10-sub-pixel-vbgr.conf 2020-03-28 15:53:41.772757472 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/10-sub-pixel-vrgb.conf fontconfig-2.13.92/conf.d/10-sub-pixel-vrgb.conf +--- fontconfig-2.13.92.orig/conf.d/10-sub-pixel-vrgb.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/10-sub-pixel-vrgb.conf 2020-03-28 15:53:41.706758816 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/10-unhinted.conf fontconfig-2.13.92/conf.d/10-unhinted.conf +--- fontconfig-2.13.92.orig/conf.d/10-unhinted.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/10-unhinted.conf 2020-03-28 15:53:41.739758145 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/11-lcdfilter-default.conf fontconfig-2.13.92/conf.d/11-lcdfilter-default.conf +--- fontconfig-2.13.92.orig/conf.d/11-lcdfilter-default.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/11-lcdfilter-default.conf 2020-03-28 15:53:41.731758307 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/11-lcdfilter-legacy.conf fontconfig-2.13.92/conf.d/11-lcdfilter-legacy.conf +--- fontconfig-2.13.92.orig/conf.d/11-lcdfilter-legacy.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/11-lcdfilter-legacy.conf 2020-03-28 15:53:41.837756149 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/11-lcdfilter-light.conf fontconfig-2.13.92/conf.d/11-lcdfilter-light.conf +--- fontconfig-2.13.92.orig/conf.d/11-lcdfilter-light.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/11-lcdfilter-light.conf 2020-03-28 15:53:41.768757554 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/20-unhint-small-vera.conf fontconfig-2.13.92/conf.d/20-unhint-small-vera.conf +--- fontconfig-2.13.92.orig/conf.d/20-unhint-small-vera.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/20-unhint-small-vera.conf 2020-03-28 15:53:41.784757228 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/25-unhint-nonlatin.conf fontconfig-2.13.92/conf.d/25-unhint-nonlatin.conf +--- fontconfig-2.13.92.orig/conf.d/25-unhint-nonlatin.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/25-unhint-nonlatin.conf 2020-03-28 15:53:41.817756556 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/30-metric-aliases.conf fontconfig-2.13.92/conf.d/30-metric-aliases.conf +--- fontconfig-2.13.92.orig/conf.d/30-metric-aliases.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/30-metric-aliases.conf 2020-03-28 15:53:41.718758572 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/40-nonlatin.conf fontconfig-2.13.92/conf.d/40-nonlatin.conf +--- fontconfig-2.13.92.orig/conf.d/40-nonlatin.conf 2019-05-08 10:22:25.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/40-nonlatin.conf 2020-03-28 15:53:41.735758226 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/45-generic.conf fontconfig-2.13.92/conf.d/45-generic.conf +--- fontconfig-2.13.92.orig/conf.d/45-generic.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/45-generic.conf 2020-03-28 15:53:41.833756231 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/45-latin.conf fontconfig-2.13.92/conf.d/45-latin.conf +--- fontconfig-2.13.92.orig/conf.d/45-latin.conf 2019-05-08 10:22:25.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/45-latin.conf 2020-03-28 15:53:41.756757798 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/49-sansserif.conf fontconfig-2.13.92/conf.d/49-sansserif.conf +--- fontconfig-2.13.92.orig/conf.d/49-sansserif.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/49-sansserif.conf 2020-03-28 15:53:41.845755987 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/50-user.conf fontconfig-2.13.92/conf.d/50-user.conf +--- fontconfig-2.13.92.orig/conf.d/50-user.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/50-user.conf 2020-03-28 15:53:41.710758735 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/51-local.conf fontconfig-2.13.92/conf.d/51-local.conf +--- fontconfig-2.13.92.orig/conf.d/51-local.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/51-local.conf 2020-03-28 15:53:41.805756801 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/60-generic.conf fontconfig-2.13.92/conf.d/60-generic.conf +--- fontconfig-2.13.92.orig/conf.d/60-generic.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/60-generic.conf 2020-03-28 15:53:41.702758898 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/60-latin.conf fontconfig-2.13.92/conf.d/60-latin.conf +--- fontconfig-2.13.92.orig/conf.d/60-latin.conf 2019-05-08 10:22:25.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/60-latin.conf 2020-03-28 15:53:41.752757880 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + +diff -uNr fontconfig-2.13.92.orig/conf.d/65-fonts-persian.conf fontconfig-2.13.92/conf.d/65-fonts-persian.conf +--- fontconfig-2.13.92.orig/conf.d/65-fonts-persian.conf 2018-06-05 12:36:38.000000000 +0200 ++++ fontconfig-2.13.92/conf.d/65-fonts-persian.conf 2020-03-28 15:53:41.748757961 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + + + +diff -uNr fontconfig-2.13.92.orig/doc/fonts-conf.5 fontconfig-2.13.92/doc/fonts-conf.5 +--- fontconfig-2.13.92.orig/doc/fonts-conf.5 2019-08-09 13:12:20.000000000 +0200 ++++ fontconfig-2.13.92/doc/fonts-conf.5 2020-03-28 15:53:41.685759244 +0100 +@@ -264,7 +264,7 @@ + .sp + .nf + +- ++ + + \&... + +@@ -554,7 +554,7 @@ + .sp + .nf + +- ++ + + + + + +diff -uNr fontconfig-2.13.92.orig/fonts.conf.in fontconfig-2.13.92/fonts.conf.in +--- fontconfig-2.13.92.orig/fonts.conf.in 2019-05-08 10:22:25.000000000 +0200 ++++ fontconfig-2.13.92/fonts.conf.in 2020-03-28 15:53:41.698758979 +0100 +@@ -1,5 +1,5 @@ + +- ++ + + + + diff --git a/fontconfig-fix-dtd.patch b/fontconfig-fix-dtd.patch new file mode 100644 index 0000000..598c75a --- /dev/null +++ b/fontconfig-fix-dtd.patch @@ -0,0 +1,16 @@ +diff --git a/fonts.dtd b/fonts.dtd +index f8c9f2c..40ecb4e 100644 +--- a/fonts.dtd ++++ b/fonts.dtd +@@ -124,7 +124,7 @@ + +- ++ + +