New upstream release.

Rebase to 2.14 and revert Noto Default change happened in f36.
  Resolves: rhbz#2075393
This commit is contained in:
Akira TAGOH 2022-04-19 15:20:26 +09:00
parent e6d8942608
commit 87af8a18ab
6 changed files with 54 additions and 234 deletions

1
.gitignore vendored
View File

@ -34,3 +34,4 @@ fontconfig-2.8.0.tar.gz
/fontconfig-2.13.92.tar.xz /fontconfig-2.13.92.tar.xz
/fontconfig-2.13.93.tar.xz /fontconfig-2.13.93.tar.xz
/fontconfig-2.13.94.tar.xz /fontconfig-2.13.94.tar.xz
/fontconfig-2.14.0.tar.xz

View File

@ -1,40 +0,0 @@
From 2b897d4624f015c0f59a9f46925b758adfc79190 Mon Sep 17 00:00:00 2001
From: Akira TAGOH <akira@tagoh.org>
Date: Mon, 19 Jul 2021 21:03:20 +0900
Subject: [PATCH] Enable 11-lcdfilter-default.conf by default
Some applications needs this enabled by default on non-GNOME desktops.
reference: https://bugzilla.redhat.com/show_bug.cgi?id=1965684
---
conf.d/Makefile.am | 1 +
conf.d/meson.build | 1 +
2 files changed, 2 insertions(+)
diff --git a/conf.d/Makefile.am b/conf.d/Makefile.am
index 710318c1..43b6e2b9 100644
--- a/conf.d/Makefile.am
+++ b/conf.d/Makefile.am
@@ -32,6 +32,7 @@ DOC_FILES = $(DOC_SOURCES:.in=)
CONF_LINKS = \
10-hinting-$(PREFERRED_HINTING).conf \
10-scale-bitmap-fonts.conf \
+ 11-lcdfilter-default.conf \
20-unhint-small-vera.conf \
30-metric-aliases.conf \
40-nonlatin.conf \
diff --git a/conf.d/meson.build b/conf.d/meson.build
index 2cb144ee..172e2af2 100644
--- a/conf.d/meson.build
+++ b/conf.d/meson.build
@@ -42,6 +42,7 @@ preferred_hinting = 'slight'
conf_links = [
'10-hinting-@0@.conf'.format(preferred_hinting),
'10-scale-bitmap-fonts.conf',
+ '11-lcdfilter-default.conf',
'20-unhint-small-vera.conf',
'30-metric-aliases.conf',
'40-nonlatin.conf',
--
2.32.0

View File

@ -0,0 +1,27 @@
diff -pruN fontconfig-2.14.0.orig/conf.d/60-latin.conf fontconfig-2.14.0/conf.d/60-latin.conf
--- fontconfig-2.14.0.orig/conf.d/60-latin.conf 2021-12-03 19:48:08.000000000 +0900
+++ fontconfig-2.14.0/conf.d/60-latin.conf 2022-04-18 19:21:20.287729201 +0900
@@ -5,7 +5,6 @@
<alias>
<family>serif</family>
<prefer>
- <family>Noto Serif</family>
<family>DejaVu Serif</family>
<family>Times New Roman</family>
<family>Thorndale AMT</family>
@@ -18,7 +17,6 @@
<alias>
<family>sans-serif</family>
<prefer>
- <family>Noto Sans</family>
<family>DejaVu Sans</family>
<family>Verdana</family>
<family>Arial</family>
@@ -35,7 +33,6 @@
<alias>
<family>monospace</family>
<prefer>
- <family>Noto Sans Mono</family>
<family>DejaVu Sans Mono</family>
<family>Inconsolata</family>
<family>Andale Mono</family>

View File

@ -1,188 +0,0 @@
From 4d43f84188847a6a77f7259f986fb178c52c1ea7 Mon Sep 17 00:00:00 2001
From: Akira TAGOH <akira@tagoh.org>
Date: Thu, 8 Jul 2021 14:21:50 +0900
Subject: [PATCH 1/2] Do not set different score to non-string values
Non-string values in a cache is supposed to choose one from them.
Due to the change of da1c9f7a, there was a regression on scoring for
matching functions. So reverting the behavior for evaluating non-string
values to the previous one.
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/286
---
src/fcmatch.c | 2 +-
test/Makefile.am | 1 +
test/run-test-conf.sh | 1 +
test/test-conf.c | 71 ++++++++++++++++++++++++++--------------
test/test-issue-286.json | 35 ++++++++++++++++++++
5 files changed, 85 insertions(+), 25 deletions(-)
create mode 100644 test/test-issue-286.json
diff --git a/src/fcmatch.c b/src/fcmatch.c
index c88e3aa..fd43cbd 100644
--- a/src/fcmatch.c
+++ b/src/fcmatch.c
@@ -433,7 +433,7 @@ FcCompareValueList (FcObject object,
*result = FcResultTypeMismatch;
return FcFalse;
}
- v = v * 1000 + j * 100 + k;
+ v = v * 1000 + j * 100 + k * (v2->value.type == FcTypeString ? 1 : 0);
if (v < best)
{
if (bestValue)
diff --git a/test/Makefile.am b/test/Makefile.am
index aea8724..d07654b 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -47,6 +47,7 @@ TESTDATA = \
test-45-generic.json \
test-60-generic.json \
test-90-synthetic.json \
+ test-issue-286.json \
test-style-match.json \
$(NULL)
diff --git a/test/run-test-conf.sh b/test/run-test-conf.sh
index 0c2bd52..bbb56f4 100644
--- a/test/run-test-conf.sh
+++ b/test/run-test-conf.sh
@@ -49,6 +49,7 @@ for i in \
$RUNNER $TESTDIR/../conf.d/$i $TESTDIR/$test_json
done
for i in \
+ test-issue-286.json \
test-style-match.json \
; do
echo $RUNNER $TESTDIR/$i ...
diff --git a/test/test-conf.c b/test/test-conf.c
index e4e9da4..1a52c6e 100644
--- a/test/test-conf.c
+++ b/test/test-conf.c
@@ -207,35 +207,58 @@ build_pattern (json_object *obj)
}
}
} else if (type == json_type_double || type == json_type_int) {
+ const FcObjectType *fc_o = FcNameGetObjectType (iter.key);
double values[4];
- if (n != 2 && n != 4) {
- fprintf (stderr, "E: array starting with number not range or matrix\n");
+
+ if (fc_o && fc_o->type == FcTypeDouble) {
+ for (i = 0; i < n; i++)
+ {
+ o = json_object_array_get_idx (iter.val, i);
+ type = json_object_get_type (o);
+ if (type == json_type_double) {
+ v.type = FcTypeDouble;
+ v.u.d = json_object_get_double (o);
+ } else if (type == json_type_int) {
+ v.type = FcTypeInteger;
+ v.u.i = json_object_get_int (o);
+ } else {
+ fprintf (stderr, "E: unable to convert to double\n");
+ continue;
+ }
+ FcPatternAdd (pat, iter.key, v, FcTrue);
+ v.type = FcTypeVoid;
+ }
continue;
- }
- for (i = 0; i < n; i++) {
- o = json_object_array_get_idx (iter.val, i);
- type = json_object_get_type (o);
- if (type != json_type_double && type != json_type_int) {
- fprintf (stderr, "E: numeric array entry not a number\n");
+ } else {
+ if (n != 2 && n != 4) {
+ fprintf (stderr, "E: array starting with number not range or matrix\n");
continue;
}
- values[i] = json_object_get_double (o);
- }
- if (n == 2) {
- v.type = FcTypeRange;
- v.u.r = FcRangeCreateDouble (values[0], values[1]);
- if (!v.u.r) {
- fprintf (stderr, "E: failed to create range\n");
- continue;
+ for (i = 0; i < n; i++) {
+ o = json_object_array_get_idx (iter.val, i);
+ type = json_object_get_type (o);
+ if (type != json_type_double && type != json_type_int) {
+ fprintf (stderr, "E: numeric array entry not a number\n");
+ continue;
+ }
+ values[i] = json_object_get_double (o);
+ }
+ if (n == 2) {
+ v.type = FcTypeRange;
+ v.u.r = FcRangeCreateDouble (values[0], values[1]);
+ if (!v.u.r) {
+ fprintf (stderr, "E: failed to create range\n");
+ continue;
+ }
+ destroy_v = FcTrue;
+ } else {
+ v.type = FcTypeMatrix;
+ v.u.m = &matrix;
+ matrix.xx = values[0];
+ matrix.xy = values[1];
+ matrix.yx = values[2];
+ matrix.yy = values[3];
}
- destroy_v = FcTrue;
- } else {
- v.type = FcTypeMatrix;
- v.u.m = &matrix;
- matrix.xx = values[0];
- matrix.xy = values[1];
- matrix.yx = values[2];
- matrix.yy = values[3];
}
} else {
fprintf (stderr, "E: array format not recognized\n");
diff --git a/test/test-issue-286.json b/test/test-issue-286.json
new file mode 100644
index 0000000..a3199fa
--- /dev/null
+++ b/test/test-issue-286.json
@@ -0,0 +1,35 @@
+{
+ "fonts": [
+ {
+ "family": "Foo",
+ "style": "Italic",
+ "pixelsize": [15, 16, 17, 18],
+ "file": "/path/to/Foo-Italic.ttf",
+ "fontversion": 133365
+ },
+ {
+ "family": "Foo",
+ "style": "Regular",
+ "pixelsize": [11, 12, 13, 14, 15, 16, 17, 18, 22],
+ "file": "/path/to/Foo-Regular.ttf",
+ "fontversion": 133365
+ }
+ ],
+ "tests": [
+ {
+ "method": "match",
+ "query": {
+ "family": "Foo",
+ "style": "Regular",
+ "pixelsize": 16
+ },
+ "result": {
+ "family": "Foo",
+ "style": "Regular",
+ "pixelsize": 16,
+ "file": "/path/to/Foo-Regular.ttf",
+ "fontversion": 133365
+ }
+ }
+ ]
+}
--
2.31.1

View File

@ -4,8 +4,8 @@
Summary: Font configuration and customization library Summary: Font configuration and customization library
Name: fontconfig Name: fontconfig
Version: 2.13.94 Version: 2.14.0
Release: 2%{?dist} Release: 1%{?dist}
# src/ftglue.[ch] is in Public Domain # src/ftglue.[ch] is in Public Domain
# src/fccache.c contains Public Domain code # src/fccache.c contains Public Domain code
# fc-case/CaseFolding.txt is in the UCD # fc-case/CaseFolding.txt is in the UCD
@ -20,8 +20,7 @@ Source2: fc-cache
Patch0: %{name}-sleep-less.patch Patch0: %{name}-sleep-less.patch
Patch4: %{name}-drop-lang-from-pkgkit-format.patch Patch4: %{name}-drop-lang-from-pkgkit-format.patch
Patch5: %{name}-disable-network-required-test.patch Patch5: %{name}-disable-network-required-test.patch
Patch6: %{name}-score-fix.patch Patch6: %{name}-revert-noto-default.patch
Patch7: %{name}-lcdfilter.patch
BuildRequires: libxml2-devel BuildRequires: libxml2-devel
BuildRequires: freetype-devel >= %{freetype_version} BuildRequires: freetype-devel >= %{freetype_version}
@ -189,6 +188,27 @@ fi
%doc fontconfig-devel.txt fontconfig-devel %doc fontconfig-devel.txt fontconfig-devel
%changelog %changelog
* Thu Mar 31 2022 Akira TAGOH <tagoh@redhat.com> - 2.14.0-1
- New upstream release.
- Rebase to 2.14 and revert Noto Default change happened in f36.
Resolves: rhbz#2075393
* 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 * Tue Jul 20 2021 Akira TAGOH <tagoh@redhat.com> - 2.13.94-2
- Fix the score calculation on matching for multiple values. - Fix the score calculation on matching for multiple values.
- Enable 11-lcdfilter-default.conf. - Enable 11-lcdfilter-default.conf.
@ -196,7 +216,7 @@ fi
- Rebase to the latest release. - Rebase to the latest release.
Resolves: rhbz#2023161 Resolves: rhbz#2023161
* Thu Jun 29 2021 Akira TAGOH <tagoh@redhat.com> - 2.13.94-1 * Tue Jun 29 2021 Akira TAGOH <tagoh@redhat.com> - 2.13.94-1
- New upstream release. - New upstream release.
* Thu Mar 25 2021 Akira TAGOH <tagoh@redhat.com> - 2.13.93-6 * Thu Mar 25 2021 Akira TAGOH <tagoh@redhat.com> - 2.13.93-6

View File

@ -1 +1 @@
SHA512 (fontconfig-2.13.94.tar.xz) = f880c71d3fa59855a72baea7ee220dcb2067cf9afa2ee5c30b6b18a6f8252b6cb34ab8d7cd9f8631e63afbc5733ccb781ac089792217c4d98726960550e5ba37 SHA512 (fontconfig-2.14.0.tar.xz) = a5257249d031b3cd1a7b1521cd58f48d235a970020da4136a727db5407ec98e74a3776bc467d7e39f30ec664f56ff9fe39068317744a5e737a65109f7a005bfc