Compare commits
61 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
90ff975dce | ||
|
|
b06b4f8a91 | ||
|
|
8bca22ae68 | ||
|
|
9a1e8029b0 | ||
|
|
518fc318a2 | ||
|
|
3a435a53cb | ||
|
|
97f5c4867a | ||
|
|
702de2a7ad | ||
|
|
7ee5fe6990 | ||
|
|
64359ad1d0 | ||
|
|
d1acb38e3b | ||
|
|
54b1870164 | ||
|
|
cab4ae8a7a | ||
|
|
4c49ef27c3 | ||
|
|
39a7075dc3 | ||
|
|
e2bb04c6db | ||
|
|
c671260692 | ||
|
|
c400e27282 | ||
|
|
d3f982b32d | ||
|
|
067f5c6f8e | ||
|
|
354394f0f4 | ||
|
|
be5b48f736 | ||
|
|
e200ccfc72 | ||
|
|
50326b4808 | ||
|
|
bfd9218620 | ||
|
|
d72678cc75 | ||
|
|
1b1dff0137 | ||
|
|
353020918c | ||
|
|
7450f4c8e9 | ||
|
|
b1ee7ffdbd | ||
|
|
a71d8d0d33 | ||
|
|
03bbd6991d | ||
|
|
3d26dfea36 | ||
|
|
25e368d9d2 | ||
|
|
1b2e3f5380 | ||
|
|
dbbbc58182 | ||
|
|
8656c32f21 | ||
|
|
fe5f5a11d5 | ||
|
|
177d7fafb7 | ||
|
|
395eea0c20 | ||
|
|
189f0d39cd | ||
|
|
86ee1af10c | ||
|
|
12eb8925cc | ||
|
|
8ac3e95437 | ||
|
|
facd7c0903 | ||
|
|
565d0e4aa3 | ||
|
|
5eb83f78c3 | ||
|
|
20ec3d803f | ||
|
|
cec02510f8 | ||
|
|
26105d265d | ||
|
|
df8fa2cecc | ||
|
|
57609aa1db | ||
|
|
a7c1f3c46b | ||
|
|
e1c4b435e6 | ||
|
|
bea6e439c6 | ||
|
|
0add3463d1 | ||
|
|
67fd78a8d0 | ||
|
|
1721032c8e | ||
|
|
27aa546da1 | ||
|
|
b1ff33d3af | ||
|
|
212a960242 |
20 changed files with 467 additions and 2380 deletions
1
.fmf/version
Normal file
1
.fmf/version
Normal file
|
|
@ -0,0 +1 @@
|
|||
1
|
||||
12
.gitignore
vendored
12
.gitignore
vendored
|
|
@ -32,3 +32,15 @@ fontconfig-2.8.0.tar.gz
|
|||
/fontconfig-2.13.1.tar.bz2
|
||||
/fontconfig-2.13.91.tar.xz
|
||||
/fontconfig-2.13.92.tar.xz
|
||||
/fontconfig-2.13.93.tar.xz
|
||||
/fontconfig-2.13.94.tar.xz
|
||||
/fontconfig-2.13.95.tar.xz
|
||||
/fontconfig-2.13.96.tar.xz
|
||||
/fontconfig-2.14.0.tar.xz
|
||||
/fontconfig-2.14.1.tar.xz
|
||||
/fontconfig-2.14.2.tar.xz
|
||||
/fontconfig-2.15.0.tar.xz
|
||||
/fontconfig-2.16.0.tar.xz
|
||||
/fontconfig-2.16.1.tar.xz
|
||||
/fontconfig-2.16.2.tar.xz
|
||||
/fontconfig-2.17.0.tar.xz
|
||||
|
|
|
|||
|
|
@ -1,25 +0,0 @@
|
|||
.\" 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.
|
||||
113
fontconfig-disable-network-required-test.patch
Normal file
113
fontconfig-disable-network-required-test.patch
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
diff -pruN fontconfig-2.17.0.orig/test/meson.build fontconfig-2.17.0/test/meson.build
|
||||
--- fontconfig-2.17.0.orig/test/meson.build 2025-06-27 12:12:04.000000000 +0900
|
||||
+++ fontconfig-2.17.0/test/meson.build 2025-06-27 14:41:08.843726446 +0900
|
||||
@@ -1,16 +1,16 @@
|
||||
-fetch_test_fonts = custom_target(
|
||||
- 'fetch_test_fonts',
|
||||
- output: 'testfonts',
|
||||
- command: [
|
||||
- python3,
|
||||
- join_paths(meson.project_source_root(), 'build-aux', 'fetch-testfonts.py'),
|
||||
- '--target-dir',
|
||||
- '@BUILD_ROOT@/testfonts',
|
||||
- '--try-symlink',
|
||||
- ],
|
||||
- build_by_default: false,
|
||||
- build_always_stale: true,
|
||||
-)
|
||||
+#fetch_test_fonts = custom_target(
|
||||
+# 'fetch_test_fonts',
|
||||
+# output: 'testfonts',
|
||||
+# command: [
|
||||
+# python3,
|
||||
+# join_paths(meson.project_source_root(), 'build-aux', 'fetch-testfonts.py'),
|
||||
+# '--target-dir',
|
||||
+# '@BUILD_ROOT@/testfonts',
|
||||
+# '--try-symlink',
|
||||
+# ],
|
||||
+# build_by_default: false,
|
||||
+# build_always_stale: true,
|
||||
+#)
|
||||
|
||||
tests = [
|
||||
['test-bz89617.c', {'c_args': ['-DSRCDIR="@0@"'.format(meson.current_source_dir())]}],
|
||||
@@ -33,7 +33,7 @@ if host_machine.system() != 'windows'
|
||||
]
|
||||
tests_not_parallel += [
|
||||
# FIXME: this needs NotoSans-hinted.zip font downloaded and unpacked into test build directory! see run-test.sh
|
||||
- ['test-crbug1004254.c', {'dependencies': dependency('threads')}], # for pthread
|
||||
+ # ['test-crbug1004254.c', {'dependencies': dependency('threads')}], # for pthread
|
||||
['test-mt-fccfg.c', {'include_directories': include_directories('../src'), 'dependencies': dependency('threads')}],
|
||||
]
|
||||
|
||||
@@ -74,10 +74,10 @@ foreach test_data : tests + tests_not_pa
|
||||
endforeach
|
||||
|
||||
|
||||
-if get_option('fontations').enabled()
|
||||
- rust = import('rust')
|
||||
- rust.test('fc_fontations_rust_tests', fc_fontations, link_with: [libfontconfig_internal], depends: fetch_test_fonts, env: ['builddir=@0@'.format(meson.project_build_root())],)
|
||||
-endif
|
||||
+#if get_option('fontations').enabled()
|
||||
+# rust = import('rust')
|
||||
+# rust.test('fc_fontations_rust_tests', fc_fontations, link_with: [libfontconfig_internal], depends: fetch_test_fonts, env: ['builddir=@0@'.format(meson.project_build_root())],)
|
||||
+#endif
|
||||
|
||||
fs = import('fs')
|
||||
|
||||
@@ -92,14 +92,14 @@ if host_machine.system() != 'windows'
|
||||
|
||||
test('run_test_sh', find_program('run-test.sh'), timeout: 600, env: ['srcdir=@0@'.format(meson.current_source_dir()), 'builddir=@0@'.format(meson.current_build_dir()), 'EXEEXT=@0@'.format(conf.get('EXEEXT')), 'VERBOSE=1'])
|
||||
|
||||
- if pytest.found()
|
||||
- test('pytest', pytest, args: ['--tap'],
|
||||
- workdir: meson.current_source_dir(),
|
||||
- env: ['builddir=@0@'.format(meson.project_build_root())],
|
||||
- protocol: 'tap',
|
||||
- timeout: 600,
|
||||
- depends: fetch_test_fonts)
|
||||
- endif
|
||||
+# if pytest.found()
|
||||
+# test('pytest', pytest, args: ['--tap'],
|
||||
+# workdir: meson.current_source_dir(),
|
||||
+# env: ['builddir=@0@'.format(meson.project_build_root())],
|
||||
+# protocol: 'tap',
|
||||
+# timeout: 600,
|
||||
+# depends: fetch_test_fonts)
|
||||
+# endif
|
||||
endif
|
||||
|
||||
if jsonc_dep.found()
|
||||
diff -pruN fontconfig-2.17.0.orig/test/run-test.sh fontconfig-2.17.0/test/run-test.sh
|
||||
--- fontconfig-2.17.0.orig/test/run-test.sh 2025-06-27 12:12:04.000000000 +0900
|
||||
+++ fontconfig-2.17.0/test/run-test.sh 2025-06-27 14:39:19.098581228 +0900
|
||||
@@ -521,18 +521,18 @@ rm -rf "$MYCACHEBASEDIR" "$MYCONFIG" "$B
|
||||
|
||||
fi # if [ "x$EXEEXT" = "x" ]
|
||||
|
||||
-if [ -x "$BUILDTESTDIR"/test-crbug1004254 ]; then
|
||||
- dotest "MT-safe global config"
|
||||
- prep
|
||||
- curl -s -o "$FONTDIR"/noto.zip https://noto-website-2.storage.googleapis.com/pkgs/NotoSans-hinted.zip
|
||||
- (cd "$FONTDIR"; unzip noto.zip)
|
||||
- if [ -n "${SOURCE_DATE_EPOCH:-}" ] && [ ${#SOURCE_DATE_EPOCH} -gt 0 ]; then
|
||||
- touch -m -t "$(fdate ${SOURCE_DATE_EPOCH})" "$FONTDIR"
|
||||
- fi
|
||||
- "$BUILDTESTDIR"/test-crbug1004254
|
||||
-else
|
||||
+#if [ -x "$BUILDTESTDIR"/test-crbug1004254 ]; then
|
||||
+# dotest "MT-safe global config"
|
||||
+# prep
|
||||
+# curl -s -o "$FONTDIR"/noto.zip https://noto-website-2.storage.googleapis.com/pkgs/NotoSans-hinted.zip
|
||||
+# (cd "$FONTDIR"; unzip noto.zip)
|
||||
+# if [ -n "${SOURCE_DATE_EPOCH:-}" ] && [ ${#SOURCE_DATE_EPOCH} -gt 0 ]; then
|
||||
+# touch -m -t "$(fdate ${SOURCE_DATE_EPOCH})" "$FONTDIR"
|
||||
+# fi
|
||||
+# "$BUILDTESTDIR"/test-crbug1004254
|
||||
+#else
|
||||
echo "No test-crbug1004254: skipped"
|
||||
-fi
|
||||
+#fi
|
||||
|
||||
if [ "x$EXEEXT" = "x" ]; then
|
||||
|
||||
|
|
@ -1,12 +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}}"
|
||||
|
||||
diff -pruN fontconfig-2.16.1.orig/src/fcformat.c fontconfig-2.16.1/src/fcformat.c
|
||||
--- fontconfig-2.16.1.orig/src/fcformat.c 2025-03-13 20:16:47.000000000 +0900
|
||||
+++ fontconfig-2.16.1/src/fcformat.c 2025-03-13 20:42:03.633324643 +0900
|
||||
@@ -77,7 +77,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
|
||||
message (const char *fmt, ...)
|
||||
|
|
|
|||
|
|
@ -1,122 +0,0 @@
|
|||
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
|
||||
|
||||
|
|
@ -1,144 +0,0 @@
|
|||
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
|
||||
|
||||
28
fontconfig-fix-crash.patch
Normal file
28
fontconfig-fix-crash.patch
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
From b9bec06d73340f1b5727302d13ac3df307b7febc Mon Sep 17 00:00:00 2001
|
||||
From: Akira TAGOH <akira@tagoh.org>
|
||||
Date: Mon, 30 Jun 2025 09:05:18 +0900
|
||||
Subject: [PATCH] Fix a heap buffer overflow
|
||||
|
||||
https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/481
|
||||
|
||||
Changelog: fixed
|
||||
---
|
||||
src/fcfreetype.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/fcfreetype.c b/src/fcfreetype.c
|
||||
index 7a4d9811..0a87d27a 100644
|
||||
--- a/src/fcfreetype.c
|
||||
+++ b/src/fcfreetype.c
|
||||
@@ -2661,7 +2661,7 @@ FcFontCapabilities (FT_Face face)
|
||||
goto bail;
|
||||
|
||||
maxsize = (((FT_ULong)gpos_count + (FT_ULong)gsub_count) * OTLAYOUT_LEN +
|
||||
- (issilgraphitefont ? strlen(fcSilfCapability) : 0));
|
||||
+ (issilgraphitefont ? strlen(fcSilfCapability) + 1: 0));
|
||||
complex_ = malloc (sizeof (FcChar8) * maxsize);
|
||||
if (!complex_)
|
||||
goto bail;
|
||||
--
|
||||
2.50.0
|
||||
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
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
|
||||
|
||||
42
fontconfig-lower-nonlatin-conf.patch
Normal file
42
fontconfig-lower-nonlatin-conf.patch
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
diff -pruN fontconfig-2.16.0.orig/conf.d/Makefile.am fontconfig-2.16.0/conf.d/Makefile.am
|
||||
--- fontconfig-2.16.0.orig/conf.d/Makefile.am 2025-01-18 00:15:05.000000000 +0900
|
||||
+++ fontconfig-2.16.0/conf.d/Makefile.am 2025-01-18 00:38:32.245398277 +0900
|
||||
@@ -47,7 +47,7 @@ CONF_LINKS = \
|
||||
60-generic.conf \
|
||||
60-latin.conf \
|
||||
65-fonts-persian.conf \
|
||||
- 65-nonlatin.conf \
|
||||
+ 69-nonlatin.conf \
|
||||
69-unifont.conf \
|
||||
80-delicious.conf \
|
||||
90-synthetic.conf
|
||||
@@ -95,7 +95,7 @@ template_DATA = \
|
||||
60-latin.conf \
|
||||
65-fonts-persian.conf \
|
||||
65-khmer.conf \
|
||||
- 65-nonlatin.conf \
|
||||
+ 69-nonlatin.conf \
|
||||
69-unifont.conf \
|
||||
70-no-bitmaps.conf \
|
||||
70-no-bitmaps-and-emoji.conf \
|
||||
diff -pruN fontconfig-2.16.0.orig/conf.d/meson.build fontconfig-2.16.0/conf.d/meson.build
|
||||
--- fontconfig-2.16.0.orig/conf.d/meson.build 2025-01-18 00:15:05.000000000 +0900
|
||||
+++ fontconfig-2.16.0/conf.d/meson.build 2025-01-18 00:38:43.243595743 +0900
|
||||
@@ -33,7 +33,7 @@ conf_files = [
|
||||
'60-latin.conf',
|
||||
'65-fonts-persian.conf',
|
||||
'65-khmer.conf',
|
||||
- '65-nonlatin.conf',
|
||||
+ '69-nonlatin.conf',
|
||||
'69-unifont.conf',
|
||||
'70-no-bitmaps.conf',
|
||||
'70-no-bitmaps-and-emoji.conf',
|
||||
@@ -64,7 +64,7 @@ conf_links = [
|
||||
'60-generic.conf',
|
||||
'60-latin.conf',
|
||||
'65-fonts-persian.conf',
|
||||
- '65-nonlatin.conf',
|
||||
+ '69-nonlatin.conf',
|
||||
'69-unifont.conf',
|
||||
'80-delicious.conf',
|
||||
'90-synthetic.conf',
|
||||
1439
fontconfig-mt.patch
1439
fontconfig-mt.patch
File diff suppressed because it is too large
Load diff
|
|
@ -1,228 +0,0 @@
|
|||
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
|
||||
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
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)
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
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
|
||||
|
||||
|
|
@ -1,285 +0,0 @@
|
|||
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
|
||||
|
||||
265
fontconfig.spec
265
fontconfig.spec
|
|
@ -4,42 +4,43 @@
|
|||
|
||||
Summary: Font configuration and customization library
|
||||
Name: fontconfig
|
||||
Version: 2.13.92
|
||||
Release: 8%{?dist}
|
||||
Version: 2.17.0
|
||||
Release: 3%{?dist}
|
||||
# src/ftglue.[ch] is in Public Domain
|
||||
# src/fccache.c contains Public Domain code
|
||||
## https://gitlab.com/fedora/legal/fedora-license-data/-/issues/177
|
||||
# fc-case/CaseFolding.txt is in the UCD
|
||||
# otherwise MIT
|
||||
License: MIT and Public Domain and UCD
|
||||
License: HPND AND LicenseRef-Fedora-Public-Domain AND Unicode-DFS-2016
|
||||
Source: http://fontconfig.org/release/%{name}-%{version}.tar.xz
|
||||
URL: http://fontconfig.org
|
||||
Source1: 25-no-bitmap-fedora.conf
|
||||
Source2: fc-cache
|
||||
Source3: FcConfigGetFilename.3
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=140335
|
||||
Patch0: %{name}-sleep-less.patch
|
||||
Patch1: %{name}-required-freetype-version.patch
|
||||
Patch2: %{name}-score-hint-on-match.patch
|
||||
Patch3: %{name}-fix-1744377.patch
|
||||
Patch4: %{name}-drop-lang-from-pkgkit-format.patch
|
||||
Patch5: %{name}-sysroot.patch
|
||||
Patch6: %{name}-read-latest-cache.patch
|
||||
Patch7: %{name}-mt.patch
|
||||
Patch8: %{name}-fix-test.patch
|
||||
Patch9: %{name}-fix-assertion.patch
|
||||
Patch5: %{name}-disable-network-required-test.patch
|
||||
Patch6: %{name}-lower-nonlatin-conf.patch
|
||||
Patch7: %{name}-fix-crash.patch
|
||||
|
||||
BuildRequires: expat-devel
|
||||
BuildRequires: libxml2-devel
|
||||
BuildRequires: freetype-devel >= %{freetype_version}
|
||||
BuildRequires: fontpackages-devel
|
||||
BuildRequires: autoconf automake libtool gettext
|
||||
BuildRequires: gettext
|
||||
BuildRequires: gperf
|
||||
BuildRequires: docbook-utils docbook-utils-pdf
|
||||
BuildRequires: meson ninja-build gcc
|
||||
|
||||
Requires: fontpackages-filesystem freetype
|
||||
Requires: fonts-filesystem freetype
|
||||
# Register DTD system-wide to make validation work by default
|
||||
# (used by fonts-rpm-macros)
|
||||
Requires(pre): xml-common
|
||||
Requires(postun): xml-common
|
||||
PreReq: freetype >= 2.9.1-6
|
||||
Requires(post): grep coreutils
|
||||
Requires: font(:lang=en)
|
||||
Suggests: font(dejavusans)
|
||||
Suggests: font(notosans)
|
||||
|
||||
%description
|
||||
Fontconfig is designed to locate fonts within the
|
||||
|
|
@ -71,30 +72,50 @@ which is useful for developing applications that uses fontconfig.
|
|||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
cp %{SOURCE3} $RPM_BUILD_DIR/%{name}-%{version}/doc
|
||||
# To reduce a maintenance cost of fontconfig-lower-nonlatin-conf.patch
|
||||
mv conf.d/65-nonlatin.conf conf.d/69-nonlatin.conf
|
||||
|
||||
%build
|
||||
# We don't want to rebuild the docs, but we want to install the included ones.
|
||||
export HASDOCBOOK=no
|
||||
|
||||
autoreconf
|
||||
%configure --with-add-fonts=/usr/share/X11/fonts/Type1,/usr/share/X11/fonts/TTF,/usr/local/share/fonts \
|
||||
--disable-static --with-cache-dir=/usr/lib/fontconfig/cache
|
||||
|
||||
make %{?_smp_mflags}
|
||||
%meson -Ddoc=disabled -Dcache-build=disabled -Dxml-backend=libxml2 \
|
||||
-Dadditional-fonts-dirs=/usr/share/X11/fonts/Type1,/usr/share/X11/fonts/TTF,/usr/local/share/fonts \
|
||||
-Dcache-dir=/usr/lib/fontconfig/cache \
|
||||
--default-library=shared
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
|
||||
|
||||
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
|
||||
%meson_install
|
||||
|
||||
install -p -m 0644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/fonts/conf.d
|
||||
ln -s %{_fontconfig_templatedir}/25-unhint-nonlatin.conf $RPM_BUILD_ROOT%{_fontconfig_confdir}/
|
||||
|
||||
# move installed doc files back to build directory to package them
|
||||
# in the right place
|
||||
mv $RPM_BUILD_ROOT%{_docdir}/fontconfig/* .
|
||||
rmdir $RPM_BUILD_ROOT%{_docdir}/fontconfig/
|
||||
# Use implied value to allow the use of conditional conf
|
||||
rm $RPM_BUILD_ROOT%{_sysconfdir}/fonts/conf.d/10-sub-pixel-*.conf
|
||||
|
||||
# Do not enable bitmap-related conf
|
||||
rm $RPM_BUILD_ROOT%{_sysconfdir}/fonts/conf.d/70-*bitmaps*.conf
|
||||
|
||||
# Install docs manually
|
||||
install -d $RPM_BUILD_ROOT%{_mandir}/man1
|
||||
install -d $RPM_BUILD_ROOT%{_mandir}/man3
|
||||
install -d $RPM_BUILD_ROOT%{_mandir}/man5
|
||||
for f in doc/*.1; do
|
||||
install -p -m 0644 $f $RPM_BUILD_ROOT%{_mandir}/man1
|
||||
done
|
||||
for f in doc/*.3; do
|
||||
install -p -m 0644 $f $RPM_BUILD_ROOT%{_mandir}/man3
|
||||
done
|
||||
for f in doc/*.5; do
|
||||
install -p -m 0644 $f $RPM_BUILD_ROOT%{_mandir}/man5
|
||||
done
|
||||
for f in doc/*.txt doc/*.pdf doc/*.html; do
|
||||
install -p -m 0644 $f .
|
||||
done
|
||||
|
||||
# adjust the timestamp to avoid conflicts for multilib
|
||||
touch -r doc/fontconfig-user.sgml fontconfig-user.txt
|
||||
touch -r doc/fontconfig-user.sgml fontconfig-user.html
|
||||
touch -r doc/fontconfig-devel.sgml fontconfig-devel.txt
|
||||
touch -r doc/fontconfig-devel.sgml fontconfig-devel.html
|
||||
|
||||
# rename fc-cache binary
|
||||
mv $RPM_BUILD_ROOT%{_bindir}/fc-cache $RPM_BUILD_ROOT%{_bindir}/fc-cache-%{__isa_bits}
|
||||
|
|
@ -109,7 +130,7 @@ install -p -m 0755 %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/fc-cache
|
|||
cat %{name}-conf.lang >> %{name}.lang
|
||||
|
||||
%check
|
||||
VERBOSE=1 make check
|
||||
%meson_test
|
||||
|
||||
%post
|
||||
umask 0022
|
||||
|
|
@ -132,8 +153,21 @@ HOME=/root /usr/bin/fc-cache -s
|
|||
%transfiletriggerpostun -- /usr/share/fonts /usr/share/X11/fonts/Type1 /usr/share/X11/fonts/TTF /usr/local/share/fonts
|
||||
HOME=/root /usr/bin/fc-cache -s
|
||||
|
||||
%posttrans
|
||||
if [ -e %{_sysconfdir}/xml/catalog ]; then
|
||||
%{_bindir}/xmlcatalog --noout --add system \
|
||||
"urn:fontconfig:fonts.dtd" \
|
||||
"file://%{_datadir}/xml/fontconfig/fonts.dtd" \
|
||||
%{_sysconfdir}/xml/catalog
|
||||
fi
|
||||
|
||||
%postun
|
||||
if [ $1 == 0 ] && [ -e %{_sysconfdir}/xml/catalog ]; then
|
||||
%{_bindir}/xmlcatalog --noout --del "urn:fontconfig:fonts.dtd" %{_sysconfdir}/xml/catalog
|
||||
fi
|
||||
|
||||
%files -f %{name}.lang
|
||||
%doc README AUTHORS
|
||||
%doc README.md AUTHORS
|
||||
%doc fontconfig-user.txt fontconfig-user.html
|
||||
%doc %{_fontconfig_confdir}/README
|
||||
%license COPYING
|
||||
|
|
@ -153,6 +187,7 @@ HOME=/root /usr/bin/fc-cache -s
|
|||
# If you want to do so, you should use local.conf instead.
|
||||
%config %{_fontconfig_masterdir}/fonts.conf
|
||||
%config(noreplace) %{_fontconfig_confdir}/*.conf
|
||||
%dir /usr/lib/fontconfig
|
||||
%dir /usr/lib/fontconfig/cache
|
||||
%{_mandir}/man1/*
|
||||
%{_mandir}/man5/*
|
||||
|
|
@ -166,9 +201,169 @@ HOME=/root /usr/bin/fc-cache -s
|
|||
%{_datadir}/gettext/its/fontconfig.loc
|
||||
|
||||
%files devel-doc
|
||||
%doc fontconfig-devel.txt fontconfig-devel
|
||||
%doc fontconfig-devel.txt fontconfig-devel.html
|
||||
|
||||
%changelog
|
||||
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.17.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Mon Jun 30 2025 Akira TAGOH <tagoh@redhat.com> - 2.17.0-2
|
||||
- Backport a patch to fix a crash with Graphite fonts
|
||||
- Drop 70-*bitmaps*.conf from /etc/fonts/conf.d so far.
|
||||
Resolves: rhbz#2375426
|
||||
|
||||
* Fri Jun 27 2025 Akira TAGOH <tagoh@redhat.com> - 2.17.0-1
|
||||
- New upstream release.
|
||||
Resolves: rhbz#2375126
|
||||
|
||||
* Fri Apr 11 2025 Akira TAGOH <tagoh@redhat.com> - 2.16.2-1
|
||||
- New upstream release.
|
||||
|
||||
* Thu Mar 13 2025 Akira TAGOH <tagoh@redhat.com> - 2.16.1-1
|
||||
- New upstream release.
|
||||
|
||||
* Mon Jan 27 2025 Akira TAGOH <tagoh@redhat.com> - 2.16.0-2
|
||||
- Fix endian detection.
|
||||
Resolves: rhbz#2341757
|
||||
|
||||
* Sat Jan 18 2025 Akira TAGOH <tagoh@redhat.com> - 2.16.0-1
|
||||
- New upstream release.
|
||||
Resolves: rhbz#2338618
|
||||
- Use meson instead of autotools to build.
|
||||
- Disable meson test on s390x temporarily.
|
||||
|
||||
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.0-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Thu Aug 1 2024 Akira TAGOH <tagoh@redhat.com> - 2.15.0-8
|
||||
- Fix a memory leak and potentially uninitialized values.
|
||||
|
||||
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.0-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Fri Jun 7 2024 Akira TAGOH <tagoh@redhat.com> - 2.15.0-6
|
||||
- Own /usr/lib/fontconfig
|
||||
Resolves: rhbz#2284076
|
||||
|
||||
* Mon Apr 29 2024 Michael Kuhn <suraia@fedoraproject.org> - 2.15.0-5
|
||||
- Fix emoji fonts being disabled when bitmap fonts were disabled
|
||||
|
||||
* Sat Feb 10 2024 Akira TAGOH <tagoh@redhat.com> - 2.15.0-4
|
||||
- Delete .uuid with fc-cache -f.
|
||||
Resolves: rhbz#1761885
|
||||
|
||||
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Dec 22 2023 Akira TAGOH <tagoh@redhat.com> - 2.15.0-1
|
||||
- New upstream release.
|
||||
Resolves: rhbz#2255623
|
||||
|
||||
* Thu Aug 17 2023 Akira TAGOH <tagoh@redhat.com> - 2.14.2-5
|
||||
- Update 65-nonlatin.conf to 69-nonlatin.conf
|
||||
This basically provides substitutes for certain languages and is helpful
|
||||
to determine default behavior though, we have per-package config for similar purpose.
|
||||
Since 65 is mostly used for default fonts and this config prevents some behavior for
|
||||
packages named something coming later than "nonlatin" in the alphabetical order.
|
||||
So moving this to the safer priority.
|
||||
This would fixes an issue, particularly Lohit Marathi vs Lohit Devanagari after
|
||||
updating their priorities from 65 to 66.
|
||||
|
||||
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.14.2-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Fri Jun 16 2023 Akira TAGOH <tagoh@redhat.com> - 2.14.2-3
|
||||
- Drop 10-sub-pixel-rgb-for-kde.conf
|
||||
Resolves: rhbz#2212512
|
||||
|
||||
* Tue Apr 4 2023 Akira TAGOH <tagoh@redhat.com> - 2.14.2-2
|
||||
- Migrated license tag to SPDX.
|
||||
|
||||
* Fri Jan 27 2023 Akira TAGOH <tagoh@redhat.com> - 2.14.2-1
|
||||
- New upstream release.
|
||||
|
||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.14.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Sat Nov 26 2022 Akira TAGOH <tagoh@redhat.com> - 2.14.1-2
|
||||
- Enable RGB stripes layout for sub-pixel rendering on KDE only.
|
||||
Resolves: rhbz#2137825
|
||||
|
||||
* Fri Oct 21 2022 Akira TAGOH <tagoh@redhat.com> - 2.14.1-1
|
||||
- New upstream release.
|
||||
|
||||
* Wed Sep 28 2022 Akira TAGOH <tagoh@redhat.com> - 2.14.0-3
|
||||
- Remap font paths to other place properly.
|
||||
|
||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.14.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Thu Mar 31 2022 Akira TAGOH <tagoh@redhat.com> - 2.14.0-1
|
||||
- New upstream release.
|
||||
|
||||
* Fri Feb 4 2022 Akira TAGOH <tagoh@redhat.com> - 2.13.96-1
|
||||
- New upstream release.
|
||||
- Fix missing a file in the archive.
|
||||
Resolves: rhbz#2050478
|
||||
|
||||
* Tue Feb 1 2022 Akira TAGOH <tagoh@redhat.com> - 2.13.95-1
|
||||
- New upstream release.
|
||||
- Update deps to font(notosans)
|
||||
https://fedoraproject.org/wiki/Changes/DefaultToNotoFonts
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.13.94-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.13.94-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Tue Jul 20 2021 Akira TAGOH <tagoh@redhat.com> - 2.13.94-2
|
||||
- Fix the score calculation on matching for multiple values.
|
||||
- Enable 11-lcdfilter-default.conf.
|
||||
Resolves: rhbz#1965684
|
||||
|
||||
* Tue Jun 29 2021 Akira TAGOH <tagoh@redhat.com> - 2.13.94-1
|
||||
- New upstream release.
|
||||
|
||||
* Thu Mar 25 2021 Akira TAGOH <tagoh@redhat.com> - 2.13.93-6
|
||||
- Fix postun scriptlet to remove the entry from xml catalog.
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.13.93-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Wed Dec 23 2020 Akira TAGOH <tagoh@redhat.com> - 2.13.93-4
|
||||
- cherry pick some upstream patches
|
||||
- Skip leading white space in style.
|
||||
- Remove abort from FcCompareSize.
|
||||
- Fix memory leaks
|
||||
- Check qual and compare for family tests.
|
||||
-
|
||||
* Thu Dec 3 2020 Akira TAGOH <tagoh@redhat.com> - 2.13.93-3
|
||||
- Add back fullname property at the scan matching phase for the backward compatibility.
|
||||
Resolves: rhbz#1902881
|
||||
|
||||
* Mon Nov 30 2020 Akira TAGOH <tagoh@redhat.com> - 2.13.93-2
|
||||
- Fix file conflicts.
|
||||
|
||||
* Sat Nov 28 2020 Akira TAGOH <tagoh@redhat.com> - 2.13.93-1
|
||||
- New upstream release.
|
||||
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.13.92-12
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Thu Apr 23 2020 Akira TAGOH <tagoh@redhat.com> - 2.13.92-11
|
||||
- deal with system caches as always latest on Silverblue. (#1750891)
|
||||
|
||||
* Thu Apr 02 2020 Akira TAGOH <tagoh@redhat.com> - 2.13.92-10
|
||||
- Build against libxml2 instead of expat.
|
||||
|
||||
* Sat Mar 28 2020 Nicolas Mailhot <nim@fedoraproject.org> - 2.13.92-9
|
||||
- Fix DTD declaration and registration so users and Fedora automation can
|
||||
easily validate new configuration files
|
||||
|
||||
* Mon Mar 23 2020 Akira TAGOH <tagoh@redhat.com> - 2.13.92-8
|
||||
- Fix assertion in FcCacheFini() again.
|
||||
Resolves: rhbz#1815684
|
||||
|
|
|
|||
5
plans/basic.fmf
Normal file
5
plans/basic.fmf
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
summary: Basic smoke test
|
||||
discover:
|
||||
how: fmf
|
||||
execute:
|
||||
how: tmt
|
||||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (fontconfig-2.13.92.tar.xz) = 3c8c75ac51cb45531aa02654ce6e32e6db2650679531d2c84df00dd38425c27344599484b2625983ec55b1ba7bab3be8464d7eb75286ea3a0e97a361d2ae91d4
|
||||
SHA512 (fontconfig-2.17.0.tar.xz) = dd64905c3e0e5c5881df505b8f0bea594bbac5ce145f57aedcd7130978cd285491497198d8f2d6ed26f7b2abb31268dc3ff97aa75ce998b8e57f2d5c75b240b4
|
||||
|
|
|
|||
3
tests/basic/main.fmf
Normal file
3
tests/basic/main.fmf
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
summary: Concise summary describing what the test does
|
||||
test: ./test.sh
|
||||
framework: beakerlib
|
||||
22
tests/basic/test.sh
Executable file
22
tests/basic/test.sh
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
rlRun "tmp=\$(mktemp -d)" 0 "Create tmp directory"
|
||||
rlRun "pushd $tmp"
|
||||
rlRun "set -o pipefail"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest
|
||||
rlRun "fc-match" 0 "Check fc-match"
|
||||
rlRun "fc-list" 0 "Check fc-list"
|
||||
rlRun "fc-scan /usr/share/fonts" 0 "Check fc-scan"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlRun "popd"
|
||||
rlRun "rm -r $tmp" 0 "Remove tmp directory"
|
||||
rlPhaseEnd
|
||||
rlJournalEnd
|
||||
Loading…
Add table
Add a link
Reference in a new issue