RHEL 9.0.0 Alpha bootstrap
The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/fontconfig#67fd78a8d06e0a5c1833307c66cd89b42e88908c
This commit is contained in:
parent
eeb5056d30
commit
173e1c897e
34
.gitignore
vendored
34
.gitignore
vendored
@ -0,0 +1,34 @@
|
|||||||
|
fontconfig-2.8.0.tar.gz
|
||||||
|
/fontconfig-2.9.0.tar.gz
|
||||||
|
/fontconfig-2.9.91.tar.bz2
|
||||||
|
/fontconfig-2.9.92.tar.bz2
|
||||||
|
/fontconfig-2.10.tar.bz2
|
||||||
|
/fontconfig-2.10.0.tar.bz2
|
||||||
|
/fontconfig-2.10.1.tar.bz2
|
||||||
|
/fontconfig-2.10.2.tar.bz2
|
||||||
|
/fontconfig-2.10.91.tar.bz2
|
||||||
|
/fontconfig-2.10.92.tar.bz2
|
||||||
|
/fontconfig-2.10.93.tar.bz2
|
||||||
|
/fontconfig-2.10.94.tar.bz2
|
||||||
|
/fontconfig-2.10.95.tar.bz2
|
||||||
|
/fontconfig-2.11.0.tar.bz2
|
||||||
|
/fontconfig-2.11.1.tar.bz2
|
||||||
|
/fontconfig-2.11.91.tar.bz2
|
||||||
|
/fontconfig-2.11.92.tar.bz2
|
||||||
|
/fontconfig-2.11.93.tar.bz2
|
||||||
|
/fontconfig-2.11.94.tar.bz2
|
||||||
|
/fontconfig-2.11.95.tar.bz2
|
||||||
|
/fontconfig-2.12.0.tar.bz2
|
||||||
|
/fontconfig-2.12.1.tar.bz2
|
||||||
|
/fontconfig-2.12.2.tar.bz2
|
||||||
|
/fontconfig-2.12.3.tar.bz2
|
||||||
|
/fontconfig-2.12.4.tar.bz2
|
||||||
|
/fontconfig-2.12.5.tar.bz2
|
||||||
|
/fontconfig-2.12.6.tar.bz2
|
||||||
|
/fontconfig-2.12.91.tar.bz2
|
||||||
|
/fontconfig-2.12.92.tar.bz2
|
||||||
|
/fontconfig-2.12.93.tar.bz2
|
||||||
|
/fontconfig-2.13.0.tar.bz2
|
||||||
|
/fontconfig-2.13.1.tar.bz2
|
||||||
|
/fontconfig-2.13.91.tar.xz
|
||||||
|
/fontconfig-2.13.92.tar.xz
|
44
25-no-bitmap-fedora.conf
Normal file
44
25-no-bitmap-fedora.conf
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<match target="font">
|
||||||
|
<test name="family" compare="eq">
|
||||||
|
<string>Kochi Mincho</string>
|
||||||
|
</test>
|
||||||
|
<edit name="embeddedbitmap" mode="assign">
|
||||||
|
<bool>false</bool>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="font">
|
||||||
|
<test name="family" compare="eq">
|
||||||
|
<string>Kochi Gothic</string>
|
||||||
|
</test>
|
||||||
|
<edit name="embeddedbitmap" mode="assign">
|
||||||
|
<bool>false</bool>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="font">
|
||||||
|
<test name="family" compare="eq">
|
||||||
|
<string>Sazanami Mincho</string>
|
||||||
|
</test>
|
||||||
|
<edit name="embeddedbitmap" mode="assign">
|
||||||
|
<bool>false</bool>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="font">
|
||||||
|
<test name="family" compare="eq">
|
||||||
|
<string>Sazanami Gothic</string>
|
||||||
|
</test>
|
||||||
|
<edit name="embeddedbitmap" mode="assign">
|
||||||
|
<bool>false</bool>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
<match target="font">
|
||||||
|
<test name="family" compare="eq">
|
||||||
|
<string>AR PL ShanHeiSun Uni</string>
|
||||||
|
</test>
|
||||||
|
<edit name="embeddedbitmap" mode="assign">
|
||||||
|
<bool>true</bool>
|
||||||
|
</edit>
|
||||||
|
</match>
|
||||||
|
</fontconfig>
|
25
FcConfigGetFilename.3
Normal file
25
FcConfigGetFilename.3
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
.\" 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 <fontconfig/fontconfig.h>
|
||||||
|
.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.
|
4
fc-cache
Executable file
4
fc-cache
Executable file
@ -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 "$@" || :
|
55
fontconfig-0-timestamp-dir-on-sb.patch
Normal file
55
fontconfig-0-timestamp-dir-on-sb.patch
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
diff --git a/src/fccache.c b/src/fccache.c
|
||||||
|
index 2d398c73..7139b082 100644
|
||||||
|
--- a/src/fccache.c
|
||||||
|
+++ b/src/fccache.c
|
||||||
|
@@ -845,7 +845,7 @@ FcCacheTimeValid (FcConfig *config, FcCache *cache, struct stat *dir_stat)
|
||||||
|
FcCacheDir (cache), cache->checksum, (int) dir_stat->st_mtime);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- return cache->checksum == (int) dir_stat->st_mtime && fnano;
|
||||||
|
+ return dir_stat->st_mtime == 0 || (cache->checksum == (int) dir_stat->st_mtime && fnano);
|
||||||
|
}
|
||||||
|
|
||||||
|
static FcBool
|
||||||
|
@@ -1041,17 +1041,39 @@ static FcBool
|
||||||
|
FcDirCacheMapHelper (FcConfig *config, int fd, struct stat *fd_stat, struct stat *dir_stat, struct timeval *latest_cache_mtime, void *closure)
|
||||||
|
{
|
||||||
|
FcCache *cache = FcDirCacheMapFd (config, fd, fd_stat, dir_stat);
|
||||||
|
- struct timeval cache_mtime;
|
||||||
|
+ struct timeval cache_mtime, zero_mtime = { 0, 0}, dir_mtime;
|
||||||
|
|
||||||
|
if (!cache)
|
||||||
|
return FcFalse;
|
||||||
|
cache_mtime.tv_sec = fd_stat->st_mtime;
|
||||||
|
+ dir_mtime.tv_sec = dir_stat->st_mtime;
|
||||||
|
#ifdef HAVE_STRUCT_STAT_ST_MTIM
|
||||||
|
cache_mtime.tv_usec = fd_stat->st_mtim.tv_nsec / 1000;
|
||||||
|
+ dir_mtime.tv_usec = dir_stat->st_mtim.tv_nsec / 1000;
|
||||||
|
#else
|
||||||
|
cache_mtime.tv_usec = 0;
|
||||||
|
+ dir_mtime.tv_usec = 0;
|
||||||
|
#endif
|
||||||
|
- if (timercmp (latest_cache_mtime, &cache_mtime, <))
|
||||||
|
+ /* special take care of OSTree */
|
||||||
|
+ if (!timercmp (&zero_mtime, &dir_mtime, !=))
|
||||||
|
+ {
|
||||||
|
+ if (!timercmp (&zero_mtime, &cache_mtime, !=))
|
||||||
|
+ {
|
||||||
|
+ if (*((FcCache **) closure))
|
||||||
|
+ FcDirCacheUnload (*((FcCache **) closure));
|
||||||
|
+ }
|
||||||
|
+ else if (*((FcCache **) closure) && !timercmp (&zero_mtime, latest_cache_mtime, !=))
|
||||||
|
+ {
|
||||||
|
+ FcDirCacheUnload (cache);
|
||||||
|
+ return FcFalse;
|
||||||
|
+ }
|
||||||
|
+ else if (timercmp (latest_cache_mtime, &cache_mtime, <))
|
||||||
|
+ {
|
||||||
|
+ if (*((FcCache **) closure))
|
||||||
|
+ FcDirCacheUnload (*((FcCache **) closure));
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ else if (timercmp (latest_cache_mtime, &cache_mtime, <))
|
||||||
|
{
|
||||||
|
if (*((FcCache **) closure))
|
||||||
|
FcDirCacheUnload (*((FcCache **) closure));
|
12
fontconfig-drop-lang-from-pkgkit-format.patch
Normal file
12
fontconfig-drop-lang-from-pkgkit-format.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -pruN fontconfig-2.13.92.orig/src/fcformat.c fontconfig-2.13.92/src/fcformat.c
|
||||||
|
--- fontconfig-2.13.92.orig/src/fcformat.c 2018-07-19 12:14:39.000000000 +0900
|
||||||
|
+++ fontconfig-2.13.92/src/fcformat.c 2020-01-20 13:05:33.626227767 +0900
|
||||||
|
@@ -78,7 +78,7 @@
|
||||||
|
#define FCCAT_FORMAT "\"%{file|basename|cescape}\" %{index} \"%{-file{%{=unparse|cescape}}}\""
|
||||||
|
#define FCMATCH_FORMAT "%{file:-<unknown filename>|basename}: \"%{family[0]:-<unknown family>}\" \"%{style[0]:-<unknown style>}\""
|
||||||
|
#define FCLIST_FORMAT "%{?file{%{file}: }}%{-file{%{=unparse}}}"
|
||||||
|
-#define PKGKIT_FORMAT "%{[]family{font(%{family|downcase|delete( )})\n}}%{[]lang{font(:lang=%{lang|downcase|translate(_,-)})\n}}"
|
||||||
|
+#define PKGKIT_FORMAT "%{[]family{font(%{family|downcase|delete( )})\n}}"
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
122
fontconfig-fix-1744377.patch
Normal file
122
fontconfig-fix-1744377.patch
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
From fcada522913e5e07efa6367eff87ace9f06d24c8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Akira TAGOH <akira@tagoh.org>
|
||||||
|
Date: Wed, 28 Aug 2019 17:46:03 +0900
|
||||||
|
Subject: [PATCH] Do not return FcFalse from FcConfigParseAndLoad*() if
|
||||||
|
complain is set to false
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1744377
|
||||||
|
---
|
||||||
|
src/fcxml.c | 8 ++++---
|
||||||
|
test/Makefile.am | 4 ++++
|
||||||
|
test/test-bz1744377.c | 51 +++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
3 files changed, 60 insertions(+), 3 deletions(-)
|
||||||
|
create mode 100644 test/test-bz1744377.c
|
||||||
|
|
||||||
|
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 <fontconfig/fontconfig.h>
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+main (void)
|
||||||
|
+{
|
||||||
|
+ const FcChar8 *doc = ""
|
||||||
|
+ "<fontconfig>\n"
|
||||||
|
+ " <include ignore_missing=\"yes\">blahblahblah</include>\n"
|
||||||
|
+ "</fontconfig>\n"
|
||||||
|
+ "";
|
||||||
|
+ const FcChar8 *doc2 = ""
|
||||||
|
+ "<fontconfig>\n"
|
||||||
|
+ " <include ignore_missing=\"no\">blahblahblah</include>\n"
|
||||||
|
+ "</fontconfig>\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
|
||||||
|
|
144
fontconfig-fix-assertion.patch
Normal file
144
fontconfig-fix-assertion.patch
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
From fbc05949ef52c8a8d69233eed77f6636dffec280 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Akira TAGOH <akira@tagoh.org>
|
||||||
|
Date: Wed, 26 Feb 2020 15:42:21 +0900
|
||||||
|
Subject: [PATCH] Fix assertion in FcFini()
|
||||||
|
|
||||||
|
Due to the unproper initialization of `latest_mtime', the duplicate caches
|
||||||
|
was still in fcCacheChains with no references. which means no one frees
|
||||||
|
them. thus, the memory leak was happened.
|
||||||
|
|
||||||
|
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/227
|
||||||
|
---
|
||||||
|
src/fccache.c | 9 +++++----
|
||||||
|
src/fcinit.c | 4 ++--
|
||||||
|
2 files changed, 7 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
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 <akira@tagoh.org>
|
||||||
|
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
|
||||||
|
|
490
fontconfig-fix-dtd-id.patch
Normal file
490
fontconfig-fix-dtd-id.patch
Normal file
@ -0,0 +1,490 @@
|
|||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<description>Re-define fonts dirs sample</description>
|
||||||
|
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<!--
|
||||||
|
fonts-persian.conf
|
||||||
|
To configure Persian fonts from The FarsiWeb Project.
|
||||||
|
diff -uNr fontconfig-2.13.92.orig/conf.d/65-khmer.conf fontconfig-2.13.92/conf.d/65-khmer.conf
|
||||||
|
--- fontconfig-2.13.92.orig/conf.d/65-khmer.conf 2018-06-05 12:36:38.000000000 +0200
|
||||||
|
+++ fontconfig-2.13.92/conf.d/65-khmer.conf 2020-03-28 15:53:41.813756638 +0100
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
diff -uNr fontconfig-2.13.92.orig/conf.d/65-nonlatin.conf fontconfig-2.13.92/conf.d/65-nonlatin.conf
|
||||||
|
--- fontconfig-2.13.92.orig/conf.d/65-nonlatin.conf 2019-05-08 10:22:25.000000000 +0200
|
||||||
|
+++ fontconfig-2.13.92/conf.d/65-nonlatin.conf 2020-03-28 15:53:41.825756394 +0100
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
diff -uNr fontconfig-2.13.92.orig/conf.d/69-unifont.conf fontconfig-2.13.92/conf.d/69-unifont.conf
|
||||||
|
--- fontconfig-2.13.92.orig/conf.d/69-unifont.conf 2018-06-05 12:36:38.000000000 +0200
|
||||||
|
+++ fontconfig-2.13.92/conf.d/69-unifont.conf 2020-03-28 15:53:41.821756475 +0100
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
diff -uNr fontconfig-2.13.92.orig/conf.d/70-no-bitmaps.conf fontconfig-2.13.92/conf.d/70-no-bitmaps.conf
|
||||||
|
--- fontconfig-2.13.92.orig/conf.d/70-no-bitmaps.conf 2018-06-05 12:36:38.000000000 +0200
|
||||||
|
+++ fontconfig-2.13.92/conf.d/70-no-bitmaps.conf 2020-03-28 15:53:41.788757147 +0100
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
diff -uNr fontconfig-2.13.92.orig/conf.d/70-yes-bitmaps.conf fontconfig-2.13.92/conf.d/70-yes-bitmaps.conf
|
||||||
|
--- fontconfig-2.13.92.orig/conf.d/70-yes-bitmaps.conf 2018-06-05 12:36:38.000000000 +0200
|
||||||
|
+++ fontconfig-2.13.92/conf.d/70-yes-bitmaps.conf 2020-03-28 15:53:41.780757310 +0100
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
diff -uNr fontconfig-2.13.92.orig/conf.d/80-delicious.conf fontconfig-2.13.92/conf.d/80-delicious.conf
|
||||||
|
--- fontconfig-2.13.92.orig/conf.d/80-delicious.conf 2018-06-05 12:36:38.000000000 +0200
|
||||||
|
+++ fontconfig-2.13.92/conf.d/80-delicious.conf 2020-03-28 15:53:41.800756903 +0100
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
diff -uNr fontconfig-2.13.92.orig/conf.d/90-synthetic.conf fontconfig-2.13.92/conf.d/90-synthetic.conf
|
||||||
|
--- fontconfig-2.13.92.orig/conf.d/90-synthetic.conf 2018-07-19 05:14:39.000000000 +0200
|
||||||
|
+++ fontconfig-2.13.92/conf.d/90-synthetic.conf 2020-03-28 15:53:41.776757391 +0100
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
||||||
|
<its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
|
||||||
|
diff -uNr fontconfig-2.13.92.orig/doc/fontconfig-user.html fontconfig-2.13.92/doc/fontconfig-user.html
|
||||||
|
--- fontconfig-2.13.92.orig/doc/fontconfig-user.html 2019-08-09 13:12:38.000000000 +0200
|
||||||
|
+++ fontconfig-2.13.92/doc/fontconfig-user.html 2020-03-28 15:53:41.694759061 +0100
|
||||||
|
@@ -422,7 +422,7 @@
|
||||||
|
><PRE
|
||||||
|
CLASS="PROGRAMLISTING"
|
||||||
|
> <?xml version="1.0"?>
|
||||||
|
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+ <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
...
|
||||||
|
</fontconfig>
|
||||||
|
@@ -1240,7 +1240,7 @@
|
||||||
|
><PRE
|
||||||
|
CLASS="PROGRAMLISTING"
|
||||||
|
><?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<!-- /etc/fonts/fonts.conf file to configure system font access -->
|
||||||
|
<fontconfig>
|
||||||
|
<!--
|
||||||
|
@@ -1367,7 +1367,7 @@
|
||||||
|
><PRE
|
||||||
|
CLASS="PROGRAMLISTING"
|
||||||
|
><?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<!-- $XDG_CONFIG_HOME/fontconfig/fonts.conf for per-user font configuration -->
|
||||||
|
<fontconfig>
|
||||||
|
|
||||||
|
diff -uNr fontconfig-2.13.92.orig/doc/fontconfig-user.sgml fontconfig-2.13.92/doc/fontconfig-user.sgml
|
||||||
|
--- fontconfig-2.13.92.orig/doc/fontconfig-user.sgml 2018-11-15 13:20:50.000000000 +0100
|
||||||
|
+++ fontconfig-2.13.92/doc/fontconfig-user.sgml 2020-03-28 15:53:41.680759345 +0100
|
||||||
|
@@ -300,7 +300,7 @@
|
||||||
|
following structure:
|
||||||
|
<programlisting>
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+ <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
...
|
||||||
|
</fontconfig>
|
||||||
|
@@ -573,7 +573,7 @@
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<!-- &confdir;/fonts.conf file to configure system font access -->
|
||||||
|
<fontconfig>
|
||||||
|
<!--
|
||||||
|
@@ -684,7 +684,7 @@
|
||||||
|
</para>
|
||||||
|
<programlisting>
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<!-- $XDG_CONFIG_HOME/fontconfig/fonts.conf for per-user font configuration -->
|
||||||
|
<fontconfig>
|
||||||
|
|
||||||
|
diff -uNr fontconfig-2.13.92.orig/doc/fontconfig-user.txt fontconfig-2.13.92/doc/fontconfig-user.txt
|
||||||
|
--- fontconfig-2.13.92.orig/doc/fontconfig-user.txt 2019-08-09 13:12:20.000000000 +0200
|
||||||
|
+++ fontconfig-2.13.92/doc/fontconfig-user.txt 2020-03-28 15:53:41.689759162 +0100
|
||||||
|
@@ -261,7 +261,7 @@
|
||||||
|
following structure:
|
||||||
|
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+ <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
...
|
||||||
|
</fontconfig>
|
||||||
|
@@ -573,7 +573,7 @@
|
||||||
|
This is an example of a system-wide configuration file
|
||||||
|
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<!-- /etc/fonts/fonts.conf file to configure system font access -->
|
||||||
|
<fontconfig>
|
||||||
|
<!--
|
||||||
|
@@ -683,7 +683,7 @@
|
||||||
|
$XDG_CONFIG_HOME/fontconfig/fonts.conf
|
||||||
|
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+ <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<!-- $XDG_CONFIG_HOME/fontconfig/fonts.conf for per-user font configuration -->
|
||||||
|
<fontconfig>
|
||||||
|
|
||||||
|
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
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
- <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+ <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<fontconfig>
|
||||||
|
\&...
|
||||||
|
</fontconfig>
|
||||||
|
@@ -554,7 +554,7 @@
|
||||||
|
.sp
|
||||||
|
.nf
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<!-- /etc/fonts/fonts.conf file to configure system font access -->
|
||||||
|
<fontconfig>
|
||||||
|
<!--
|
||||||
|
@@ -666,7 +666,7 @@
|
||||||
|
.sp
|
||||||
|
.nf
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<!-- $XDG_CONFIG_HOME/fontconfig/fonts.conf for per-user font configuration -->
|
||||||
|
<fontconfig>
|
||||||
|
|
||||||
|
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 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||||
|
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
|
||||||
|
<!-- /etc/fonts/fonts.conf file to configure system font access -->
|
||||||
|
<fontconfig>
|
||||||
|
<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
|
26
fontconfig-fix-dtd.patch
Normal file
26
fontconfig-fix-dtd.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From a4aa66a858f1ecd375c5efe5916398281f73f794 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jan Tojnar <jtojnar@gmail.com>
|
||||||
|
Date: Wed, 20 Nov 2019 02:13:58 +0000
|
||||||
|
Subject: [PATCH] Correct reset-dirs in DTD
|
||||||
|
|
||||||
|
Empty elements need to be declared as such in well-formed DTDs.
|
||||||
|
---
|
||||||
|
fonts.dtd | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/fonts.dtd b/fonts.dtd
|
||||||
|
index f8c9f2c..40ecb4e 100644
|
||||||
|
--- a/fonts.dtd
|
||||||
|
+++ b/fonts.dtd
|
||||||
|
@@ -124,7 +124,7 @@
|
||||||
|
<!--
|
||||||
|
Reset the list of fonts directories
|
||||||
|
-->
|
||||||
|
-<!ELEMENT reset-dirs >
|
||||||
|
+<!ELEMENT reset-dirs EMPTY>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Periodically rescan the font configuration and
|
||||||
|
--
|
||||||
|
2.24.1
|
||||||
|
|
41
fontconfig-fix-test.patch
Normal file
41
fontconfig-fix-test.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
diff -pruN fontconfig-2.13.92.orig/test/run-test.sh fontconfig-2.13.92/test/run-test.sh
|
||||||
|
--- fontconfig-2.13.92.orig/test/run-test.sh 2020-01-30 20:19:55.148680493 +0900
|
||||||
|
+++ fontconfig-2.13.92/test/run-test.sh 2020-01-30 20:25:48.604550017 +0900
|
||||||
|
@@ -409,7 +409,7 @@ rm -rf $MYCACHEBASEDIR $MYCONFIG my-font
|
||||||
|
|
||||||
|
fi # if [ "x$EXEEXT" = "x" ]
|
||||||
|
|
||||||
|
-if [ -x $BUILDTESTDIR/test-crbug1004254 ]; then
|
||||||
|
+if [ -x $BUILDTESTDIR/test-crbug1004254 ] && [ 0 -eq 1 ]; then
|
||||||
|
dotest "MT-safe global config"
|
||||||
|
prep
|
||||||
|
curl -s -o $FONTDIR/noto.zip https://noto-website-2.storage.googleapis.com/pkgs/NotoSans-hinted.zip
|
||||||
|
From 8bddcb113779178e5b5ed711db08d9bfbff924cc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Akira TAGOH <akira@tagoh.org>
|
||||||
|
Date: Thu, 5 Dec 2019 19:55:06 +0900
|
||||||
|
Subject: [PATCH] Fix a test fail when no bwrap was available
|
||||||
|
|
||||||
|
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/201
|
||||||
|
---
|
||||||
|
test/run-test.sh | 5 ++---
|
||||||
|
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/test/run-test.sh b/test/run-test.sh
|
||||||
|
index e1ee6d0..9b2e54b 100644
|
||||||
|
--- a/test/run-test.sh
|
||||||
|
+++ b/test/run-test.sh
|
||||||
|
@@ -40,9 +40,8 @@ ECHO=true
|
||||||
|
FCLIST="$LOG_COMPILER ../fc-list/fc-list$EXEEXT"
|
||||||
|
FCCACHE="$LOG_COMPILER ../fc-cache/fc-cache$EXEEXT"
|
||||||
|
|
||||||
|
-which bwrap > /dev/null 2>&1
|
||||||
|
-if [ $? -eq 0 ]; then
|
||||||
|
- BWRAP=`which bwrap`
|
||||||
|
+if [ -x "$(command -v bwrap)" ]; then
|
||||||
|
+ BWRAP="$(command -v bwrap)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
FONT1=$TESTDIR/4x6.pcf
|
||||||
|
--
|
||||||
|
2.24.1
|
||||||
|
|
1439
fontconfig-mt.patch
Normal file
1439
fontconfig-mt.patch
Normal file
File diff suppressed because it is too large
Load Diff
228
fontconfig-read-latest-cache.patch
Normal file
228
fontconfig-read-latest-cache.patch
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
From c9862b6ea7c3234b29f6500c7d07359847e55ed7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Akira TAGOH <akira@tagoh.org>
|
||||||
|
Date: Mon, 28 Oct 2019 17:11:38 +0900
|
||||||
|
Subject: [PATCH 1/9] Read latest cache in paths
|
||||||
|
|
||||||
|
Right now fontconfig uses a cache found first in a path and
|
||||||
|
cachedirs are the order of the system-wide path and then the user path.
|
||||||
|
this is due to avoid writing caches into the user path when running as root.
|
||||||
|
|
||||||
|
However, changing caches by certain config only, e.g. using <match target="scan">
|
||||||
|
may not take effect by this behavior, because it may be stored into the user path.
|
||||||
|
|
||||||
|
Thus, needing to find the latest cache out from paths.
|
||||||
|
|
||||||
|
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/182
|
||||||
|
---
|
||||||
|
src/fccache.c | 36 +++++++++++++++++++++-----
|
||||||
|
test/run-test.sh | 66 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
2 files changed, 96 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/fccache.c b/src/fccache.c
|
||||||
|
index 0976201..4acde22 100644
|
||||||
|
--- a/src/fccache.c
|
||||||
|
+++ b/src/fccache.c
|
||||||
|
@@ -338,7 +338,7 @@ FcDirCacheOpenFile (const FcChar8 *cache_file, struct stat *file_stat)
|
||||||
|
static FcBool
|
||||||
|
FcDirCacheProcess (FcConfig *config, const FcChar8 *dir,
|
||||||
|
FcBool (*callback) (FcConfig *config, int fd, struct stat *fd_stat,
|
||||||
|
- struct stat *dir_stat, void *closure),
|
||||||
|
+ struct stat *dir_stat, struct timeval *cache_mtime, void *closure),
|
||||||
|
void *closure, FcChar8 **cache_file_ret)
|
||||||
|
{
|
||||||
|
int fd = -1;
|
||||||
|
@@ -348,6 +348,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);
|
||||||
|
@@ -383,15 +384,18 @@ FcDirCacheProcess (FcConfig *config, const FcChar8 *dir,
|
||||||
|
#endif
|
||||||
|
fd = FcDirCacheOpenFile (cache_hashed, &file_stat);
|
||||||
|
if (fd >= 0) {
|
||||||
|
- ret = (*callback) (config, fd, &file_stat, &dir_stat, closure);
|
||||||
|
+ ret = (*callback) (config, fd, &file_stat, &dir_stat, &latest_mtime, closure);
|
||||||
|
close (fd);
|
||||||
|
if (ret)
|
||||||
|
{
|
||||||
|
if (cache_file_ret)
|
||||||
|
+ {
|
||||||
|
+ if (*cache_file_ret)
|
||||||
|
+ FcStrFree (*cache_file_ret);
|
||||||
|
*cache_file_ret = cache_hashed;
|
||||||
|
+ }
|
||||||
|
else
|
||||||
|
FcStrFree (cache_hashed);
|
||||||
|
- break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#ifndef _WIN32
|
||||||
|
@@ -414,7 +418,8 @@ FcDirCacheProcess (FcConfig *config, const FcChar8 *dir,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
- FcStrFree (cache_hashed);
|
||||||
|
+ else
|
||||||
|
+ FcStrFree (cache_hashed);
|
||||||
|
}
|
||||||
|
FcStrListDone (list);
|
||||||
|
|
||||||
|
@@ -998,12 +1003,31 @@ FcDirCacheUnload (FcCache *cache)
|
||||||
|
}
|
||||||
|
|
||||||
|
static FcBool
|
||||||
|
-FcDirCacheMapHelper (FcConfig *config, int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure)
|
||||||
|
+FcDirCacheMapHelper (FcConfig *config, int fd, struct stat *fd_stat, struct stat *dir_stat, struct timeval *latest_cache_mtime, void *closure)
|
||||||
|
{
|
||||||
|
FcCache *cache = FcDirCacheMapFd (config, fd, fd_stat, dir_stat);
|
||||||
|
+ struct timeval cache_mtime;
|
||||||
|
|
||||||
|
if (!cache)
|
||||||
|
return FcFalse;
|
||||||
|
+ cache_mtime.tv_sec = fd_stat->st_mtime;
|
||||||
|
+#ifdef HAVE_STRUCT_STAT_ST_MTIM
|
||||||
|
+ cache_mtime.tv_usec = fd_stat->st_mtim.tv_nsec / 1000;
|
||||||
|
+#else
|
||||||
|
+ cache_mtime.tv_usec = 0;
|
||||||
|
+#endif
|
||||||
|
+ if (timercmp (latest_cache_mtime, &cache_mtime, <))
|
||||||
|
+ {
|
||||||
|
+ if (*((FcCache **) closure))
|
||||||
|
+ FcDirCacheUnload (*((FcCache **) closure));
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ FcDirCacheUnload (cache);
|
||||||
|
+ return FcFalse;
|
||||||
|
+ }
|
||||||
|
+ latest_cache_mtime->tv_sec = cache_mtime.tv_sec;
|
||||||
|
+ latest_cache_mtime->tv_usec = cache_mtime.tv_usec;
|
||||||
|
*((FcCache **) closure) = cache;
|
||||||
|
return FcTrue;
|
||||||
|
}
|
||||||
|
@@ -1093,7 +1117,7 @@ FcDirChecksumNano (struct stat *statb)
|
||||||
|
* the magic number and the size field
|
||||||
|
*/
|
||||||
|
static FcBool
|
||||||
|
-FcDirCacheValidateHelper (FcConfig *config, int fd, struct stat *fd_stat, struct stat *dir_stat, void *closure FC_UNUSED)
|
||||||
|
+FcDirCacheValidateHelper (FcConfig *config, int fd, struct stat *fd_stat, struct stat *dir_stat, struct timeval *latest_cache_mtime, void *closure FC_UNUSED)
|
||||||
|
{
|
||||||
|
FcBool ret = FcTrue;
|
||||||
|
FcCache c;
|
||||||
|
diff --git a/test/run-test.sh b/test/run-test.sh
|
||||||
|
index 4e5968b..8ad09e3 100644
|
||||||
|
--- a/test/run-test.sh
|
||||||
|
+++ b/test/run-test.sh
|
||||||
|
@@ -340,6 +340,72 @@ fi
|
||||||
|
|
||||||
|
rm -rf $MyPWD/sysroot
|
||||||
|
|
||||||
|
+dotest "read newer caches when multiple places are allowed to store"
|
||||||
|
+prep
|
||||||
|
+cp $FONT1 $FONT2 $FONTDIR
|
||||||
|
+if [ -n ${SOURCE_DATE_EPOCH:-} ] && [ ${#SOURCE_DATE_EPOCH} -gt 0 ]; then
|
||||||
|
+ touch -m -t "`date -d \"@${SOURCE_DATE_EPOCH}\" +%y%m%d%H%M.%S`" $FONTDIR
|
||||||
|
+fi
|
||||||
|
+MYCACHEBASEDIR=`mktemp -d /tmp/fontconfig.XXXXXXXX`
|
||||||
|
+MYCACHEDIR=$MYCACHEBASEDIR/cache.dir
|
||||||
|
+MYOWNCACHEDIR=$MYCACHEBASEDIR/owncache.dir
|
||||||
|
+MYCONFIG=`mktemp /tmp/fontconfig.XXXXXXXX`
|
||||||
|
+
|
||||||
|
+mkdir -p $MYCACHEDIR
|
||||||
|
+mkdir -p $MYOWNCACHEDIR
|
||||||
|
+
|
||||||
|
+sed "s!@FONTDIR@!$FONTDIR!
|
||||||
|
+s!@REMAPDIR@!!
|
||||||
|
+s!@CACHEDIR@!$MYCACHEDIR!" < $TESTDIR/fonts.conf.in > my-fonts.conf
|
||||||
|
+
|
||||||
|
+FONTCONFIG_FILE=$MyPWD/my-fonts.conf $FCCACHE $FONTDIR
|
||||||
|
+
|
||||||
|
+sleep 1
|
||||||
|
+cat<<EOF>$MYCONFIG
|
||||||
|
+<fontconfig>
|
||||||
|
+ <match target="scan">
|
||||||
|
+ <test name="file"><string>$FONTDIR/4x6.pcf</string></test>
|
||||||
|
+ <edit name="pixelsize"><int>8</int></edit>
|
||||||
|
+ </match>
|
||||||
|
+</fontconfig>
|
||||||
|
+EOF
|
||||||
|
+sed "s!@FONTDIR@!$FONTDIR!
|
||||||
|
+s!@REMAPDIR@!<include ignore_missing=\"yes\">$MYCONFIG</include>!
|
||||||
|
+s!@CACHEDIR@!$MYOWNCACHEDIR!" < $TESTDIR/fonts.conf.in > my-fonts.conf
|
||||||
|
+
|
||||||
|
+if [ -n ${SOURCE_DATE_EPOCH:-} ]; then
|
||||||
|
+ old_epoch=${SOURCE_DATE_EPOCH}
|
||||||
|
+ SOURCE_DATE_EPOCH=`expr $SOURCE_DATE_EPOCH + 1`
|
||||||
|
+fi
|
||||||
|
+FONTCONFIG_FILE=$MyPWD/my-fonts.conf $FCCACHE -f $FONTDIR
|
||||||
|
+if [ -n ${SOURCE_DATE_EPOCH:-} ]; then
|
||||||
|
+ SOURCE_DATE_EPOCH=${old_epoch}
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+sed "s!@FONTDIR@!$FONTDIR!
|
||||||
|
+s!@REMAPDIR@!<include ignore_missing=\"yes\">$MYCONFIG</include>!
|
||||||
|
+s!@CACHEDIR@!$MYCACHEDIR</cachedir><cachedir>$MYOWNCACHEDIR!" < $TESTDIR/fonts.conf.in > my-fonts.conf
|
||||||
|
+
|
||||||
|
+FONTCONFIG_FILE=$MyPWD/my-fonts.conf $FCLIST - family pixelsize | sort > my-out
|
||||||
|
+echo "=" >> my-out
|
||||||
|
+FONTCONFIG_FILE=$MyPWD/my-fonts.conf $FCLIST - family pixelsize | sort >> my-out
|
||||||
|
+echo "=" >> my-out
|
||||||
|
+FONTCONFIG_FILE=$MyPWD/my-fonts.conf $FCLIST - family pixelsize | sort >> my-out
|
||||||
|
+tr -d '\015' <my-out >my-out.tmp; mv my-out.tmp my-out
|
||||||
|
+sed -e 's/pixelsize=6/pixelsize=8/g' $BUILDTESTDIR/$EXPECTED > my-out.expected
|
||||||
|
+
|
||||||
|
+if cmp my-out my-out.expected > /dev/null ; then : ; else
|
||||||
|
+ echo "*** Test failed: $TEST"
|
||||||
|
+ echo "*** output is in 'my-out', expected output in 'my-out.expected'"
|
||||||
|
+ echo "Actual Result"
|
||||||
|
+ cat my-out
|
||||||
|
+ echo "Expected Result"
|
||||||
|
+ cat my-out.expected
|
||||||
|
+ exit 1
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
+rm -rf $MYCACHEBASEDIR $MYCONFIG my-fonts.conf my-out my-out.expected
|
||||||
|
+
|
||||||
|
fi # if [ "x$EXEEXT" = "x" ]
|
||||||
|
|
||||||
|
rm -rf $FONTDIR $CACHEFILE $CACHEDIR $BASEDIR $FONTCONFIG_FILE out
|
||||||
|
--
|
||||||
|
2.24.1
|
||||||
|
|
||||||
|
From a45fc8a33256d9d3ea0ea7947f33c8e5e3cc7238 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Akira TAGOH <akira@tagoh.org>
|
||||||
|
Date: Thu, 31 Oct 2019 16:15:25 +0900
|
||||||
|
Subject: [PATCH 2/9] Fix a memory leak caused by the previous commit
|
||||||
|
|
||||||
|
---
|
||||||
|
src/fccache.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/fccache.c b/src/fccache.c
|
||||||
|
index 4acde22..c565560 100644
|
||||||
|
--- a/src/fccache.c
|
||||||
|
+++ b/src/fccache.c
|
||||||
|
@@ -397,6 +397,8 @@ FcDirCacheProcess (FcConfig *config, const FcChar8 *dir,
|
||||||
|
else
|
||||||
|
FcStrFree (cache_hashed);
|
||||||
|
}
|
||||||
|
+ else
|
||||||
|
+ FcStrFree (cache_hashed);
|
||||||
|
}
|
||||||
|
#ifndef _WIN32
|
||||||
|
else if (!retried)
|
||||||
|
@@ -416,6 +418,8 @@ FcDirCacheProcess (FcConfig *config, const FcChar8 *dir,
|
||||||
|
break;
|
||||||
|
goto retry;
|
||||||
|
}
|
||||||
|
+ else
|
||||||
|
+ FcStrFree (cache_hashed);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
else
|
||||||
|
--
|
||||||
|
2.24.1
|
||||||
|
|
14
fontconfig-required-freetype-version.patch
Normal file
14
fontconfig-required-freetype-version.patch
Normal file
@ -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)
|
36
fontconfig-score-hint-on-match.patch
Normal file
36
fontconfig-score-hint-on-match.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
From cb1036a7c7f1cb79fa799b1db368c86b018ec368 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Akira TAGOH <akira@tagoh.org>
|
||||||
|
Date: Fri, 9 Aug 2019 12:22:08 +0000
|
||||||
|
Subject: [PATCH] Affect FC_FONT_HAS_HINT property to score on matcher
|
||||||
|
|
||||||
|
---
|
||||||
|
src/fcmatch.c | 1 +
|
||||||
|
src/fcobjs.h | 2 +-
|
||||||
|
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/fcmatch.c b/src/fcmatch.c
|
||||||
|
index c3d2b8ad..78bcf7b4 100644
|
||||||
|
--- a/src/fcmatch.c
|
||||||
|
+++ b/src/fcmatch.c
|
||||||
|
@@ -342,6 +342,7 @@ typedef enum _FcMatcherPriority {
|
||||||
|
PRI1(SLANT),
|
||||||
|
PRI1(WEIGHT),
|
||||||
|
PRI1(WIDTH),
|
||||||
|
+ PRI1(FONT_HAS_HINT),
|
||||||
|
PRI1(DECORATIVE),
|
||||||
|
PRI1(ANTIALIAS),
|
||||||
|
PRI1(RASTERIZER),
|
||||||
|
diff --git a/src/fcobjs.h b/src/fcobjs.h
|
||||||
|
index 7bb97d09..dd4a6ec3 100644
|
||||||
|
--- a/src/fcobjs.h
|
||||||
|
+++ b/src/fcobjs.h
|
||||||
|
@@ -72,5 +72,5 @@ FC_OBJECT (COLOR, FcTypeBool, FcCompareBool)
|
||||||
|
FC_OBJECT (SYMBOL, FcTypeBool, FcCompareBool)
|
||||||
|
FC_OBJECT (FONT_VARIATIONS, FcTypeString, NULL)
|
||||||
|
FC_OBJECT (VARIABLE, FcTypeBool, FcCompareBool)
|
||||||
|
-FC_OBJECT (FONT_HAS_HINT, FcTypeBool, NULL)
|
||||||
|
+FC_OBJECT (FONT_HAS_HINT, FcTypeBool, FcCompareBool)
|
||||||
|
/* ^-------------- Add new objects here. */
|
||||||
|
--
|
||||||
|
2.22.0
|
||||||
|
|
12
fontconfig-sleep-less.patch
Normal file
12
fontconfig-sleep-less.patch
Normal file
@ -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;
|
285
fontconfig-sysroot.patch
Normal file
285
fontconfig-sysroot.patch
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
From cd51cb241aad7b362b793200ca7d42595c14f52b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Akira TAGOH <akira@tagoh.org>
|
||||||
|
Date: Mon, 21 Oct 2019 16:17:42 +0900
|
||||||
|
Subject: [PATCH] Take effect sysroot functionality to the default config file
|
||||||
|
|
||||||
|
When loading the default config file with FONTCONFIG_SYSROOT,
|
||||||
|
it fails if no /etc/fonts/fonts.conf is available, even if it is
|
||||||
|
there where is based on sysroot.
|
||||||
|
|
||||||
|
To address this, FcConfig is required to determine the sysroot.
|
||||||
|
therefore, this change makes FcConfigFilename() deprecated,
|
||||||
|
use FcConfigGetFilename() instead.
|
||||||
|
|
||||||
|
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/181
|
||||||
|
---
|
||||||
|
doc/fcconfig.fncs | 11 +++++++
|
||||||
|
fontconfig/fontconfig.h | 4 +++
|
||||||
|
src/fccfg.c | 67 ++++++++++++++++++++++++++++-------------
|
||||||
|
src/fcxml.c | 24 ++++++++++++---
|
||||||
|
4 files changed, 81 insertions(+), 25 deletions(-)
|
||||||
|
|
||||||
|
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 <function>FcConfigGetFilename</function>.
|
||||||
|
+@@
|
||||||
|
+
|
||||||
|
+@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.
|
||||||
|
+ </para><para>
|
||||||
|
+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
|
||||||
|
|
1066
fontconfig.spec
Normal file
1066
fontconfig.spec
Normal file
File diff suppressed because it is too large
Load Diff
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
|||||||
|
SHA512 (fontconfig-2.13.92.tar.xz) = 3c8c75ac51cb45531aa02654ce6e32e6db2650679531d2c84df00dd38425c27344599484b2625983ec55b1ba7bab3be8464d7eb75286ea3a0e97a361d2ae91d4
|
14
tests/tests.yml
Normal file
14
tests/tests.yml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
- hosts: localhost
|
||||||
|
roles:
|
||||||
|
- role: standard-test-basic
|
||||||
|
tags:
|
||||||
|
- classic
|
||||||
|
required_packages:
|
||||||
|
- fontconfig
|
||||||
|
tests:
|
||||||
|
- fcmatch_test:
|
||||||
|
dir: .
|
||||||
|
run: fc-match
|
||||||
|
- fclist_test:
|
||||||
|
dir: .
|
||||||
|
run: fc-list
|
Loading…
Reference in New Issue
Block a user