diff --git a/.fmf/version b/.fmf/version
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/.fmf/version
@@ -0,0 +1 @@
+1
diff --git a/.gitignore b/.gitignore
index 95fbd70..8ea9665 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,3 +39,8 @@ fontconfig-2.8.0.tar.gz
/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
diff --git a/10-sub-pixel-rgb-for-kde.conf b/10-sub-pixel-rgb-for-kde.conf
deleted file mode 100644
index 63fd752..0000000
--- a/10-sub-pixel-rgb-for-kde.conf
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
- Enable sub-pixel rendering with the RGB stripes layout for KDE only
-
-
-
-
- KDE
-
- rgb
-
-
diff --git a/fontconfig-disable-network-required-test.patch b/fontconfig-disable-network-required-test.patch
index 8481f39..e048b49 100644
--- a/fontconfig-disable-network-required-test.patch
+++ b/fontconfig-disable-network-required-test.patch
@@ -1,7 +1,87 @@
-diff -pruN fontconfig-2.13.93.orig/test/run-test.sh fontconfig-2.13.93/test/run-test.sh
---- fontconfig-2.13.93.orig/test/run-test.sh 2020-11-28 10:56:42.000000000 +0900
-+++ fontconfig-2.13.93/test/run-test.sh 2020-11-28 12:39:57.345644527 +0900
-@@ -421,18 +421,18 @@ rm -rf "$MYCACHEBASEDIR" "$MYCONFIG" my-
+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" ]
@@ -11,7 +91,7 @@ diff -pruN fontconfig-2.13.93.orig/test/run-test.sh fontconfig-2.13.93/test/run-
- 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 "$(date -d @"${SOURCE_DATE_EPOCH}" +%y%m%d%H%M.%S)" "$FONTDIR"
+- touch -m -t "$(fdate ${SOURCE_DATE_EPOCH})" "$FONTDIR"
- fi
- "$BUILDTESTDIR"/test-crbug1004254
-else
@@ -21,7 +101,7 @@ diff -pruN fontconfig-2.13.93.orig/test/run-test.sh fontconfig-2.13.93/test/run-
+# 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 "$(date -d @"${SOURCE_DATE_EPOCH}" +%y%m%d%H%M.%S)" "$FONTDIR"
++# touch -m -t "$(fdate ${SOURCE_DATE_EPOCH})" "$FONTDIR"
+# fi
+# "$BUILDTESTDIR"/test-crbug1004254
+#else
diff --git a/fontconfig-drop-lang-from-pkgkit-format.patch b/fontconfig-drop-lang-from-pkgkit-format.patch
index 8b77308..abece6d 100644
--- a/fontconfig-drop-lang-from-pkgkit-format.patch
+++ b/fontconfig-drop-lang-from-pkgkit-format.patch
@@ -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:-|basename}: \"%{family[0]:-}\" \"%{style[0]:-}\""
- #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:-|basename}: \"%{family[0]:-}\" \"%{style[0]:-}\""
+ #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, ...)
diff --git a/fontconfig-fix-crash.patch b/fontconfig-fix-crash.patch
new file mode 100644
index 0000000..c52b33d
--- /dev/null
+++ b/fontconfig-fix-crash.patch
@@ -0,0 +1,28 @@
+From b9bec06d73340f1b5727302d13ac3df307b7febc Mon Sep 17 00:00:00 2001
+From: Akira TAGOH
+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
+
diff --git a/fontconfig-fix-remap.patch b/fontconfig-fix-remap.patch
deleted file mode 100644
index 5809a0b..0000000
--- a/fontconfig-fix-remap.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From fc0e9a78d2fe3b26f0b93c2a99b160e75e2a9f89 Mon Sep 17 00:00:00 2001
-From: Akira TAGOH
-Date: Wed, 28 Sep 2022 21:39:09 +0900
-Subject: [PATCH 1/3] Real fix of 91114d18c
-
-The change in 91114d18c broke remapping font paths.
-
-Patch from Mattias Clasen
-
-Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/331
----
- src/fcstr.c | 6 +-----
- 1 file changed, 1 insertion(+), 5 deletions(-)
-
-diff --git a/src/fcstr.c b/src/fcstr.c
-index 3fe518f..5ce65da 100644
---- a/src/fcstr.c
-+++ b/src/fcstr.c
-@@ -1467,7 +1467,6 @@ FcStrSetAddFilenamePairWithSalt (FcStrSet *set, const FcChar8 *a, const FcChar8
- {
- FcChar8 *new_a = NULL;
- FcChar8 *new_b = NULL;
-- FcChar8 *rs = NULL;
- FcBool ret;
-
- if (a)
-@@ -1487,10 +1486,7 @@ FcStrSetAddFilenamePairWithSalt (FcStrSet *set, const FcChar8 *a, const FcChar8
- }
- }
- /* Override maps with new one if exists */
-- if (FcStrSetMemberAB (set, new_a, new_b, &rs))
-- {
-- FcStrSetDel (set, rs);
-- }
-+ FcStrSetDel (set, new_a);
- ret = FcStrSetAddTriple (set, new_a, new_b, salt);
- if (new_a)
- FcStrFree (new_a);
---
-2.37.3
-
-From a10d07682a09ce5effbd121920b119618f4b7775 Mon Sep 17 00:00:00 2001
-From: Akira TAGOH
-Date: Wed, 28 Sep 2022 23:30:06 +0900
-Subject: [PATCH 2/3] Fix test cases for wrong use of remap-dir
-
----
- test/run-test.sh | 12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/test/run-test.sh b/test/run-test.sh
-index 1cedb8d..2b8a412 100644
---- a/test/run-test.sh
-+++ b/test/run-test.sh
-@@ -177,7 +177,10 @@ $FCCACHE "$FONTDIR"
- sleep 1
- ls -l "$CACHEDIR" > out1
- TESTTMPDIR=$(mktemp -d "$TMPDIR"/fontconfig.XXXXXXXX)
--sed "s!@FONTDIR@!$TESTTMPDIR/fonts!
-+# Once font dir is remapped, we could use $FONTDIR as different one in theory.
-+# but we don't use it here and to avoid duplicate entries, set the non-existing
-+# directory here.
-+sed "s!@FONTDIR@!$FONTDIR/a!
- s!@REMAPDIR@!$TESTTMPDIR/fonts!
- s!@CACHEDIR@!$TESTTMPDIR/cache.dir!" < "$TESTDIR"/fonts.conf.in > bind-fonts.conf
- echo "$BWRAP --bind / / --bind \"$CACHEDIR\" \"$TESTTMPDIR\"/cache.dir --bind \"$FONTDIR\" \"$TESTTMPDIR\"/fonts --bind .. \"$TESTTMPDIR\"/build --dev-bind /dev /dev --setenv FONTCONFIG_FILE \"$TESTTMPDIR\"/build/test/bind-fonts.conf \"$TESTTMPDIR\"/build/fc-match/fc-match\"$EXEEXT\" -f \"%{file}\n\" \":foundry=Misc\" > xxx"
-@@ -273,7 +276,10 @@ sleep 1
- (cd "$CACHEDIR"; ls -1 --color=no ./*cache*) > out1
- TESTTMPDIR=$(mktemp -d "$TMPDIR"/fontconfig.XXXXXXXX)
- mkdir -p "$TESTTMPDIR"/cache.dir
--sed "s!@FONTDIR@!$TESTTMPDIR/fonts!
-+# Once font dir is remapped, we could use $FONTDIR as different one in theory.
-+# but we don't use it here and to avoid duplicate entries, set the non-existing
-+# directory here.
-+sed "s!@FONTDIR@!$FONTDIR/a!
- s!@REMAPDIR@!$TESTTMPDIR/fonts!
- s!@CACHEDIR@!$TESTTMPDIR/cache.dir!" < "$TESTDIR"/fonts.conf.in > bind-fonts.conf
- $BWRAP --bind / / --bind "$FONTDIR" "$TESTTMPDIR"/fonts --bind .. "$TESTTMPDIR"/build --dev-bind /dev /dev --setenv FONTCONFIG_FILE "$TESTTMPDIR"/build/test/bind-fonts.conf "$TESTTMPDIR"/build/fc-cache/fc-cache"$EXEEXT" "$TESTTMPDIR"/fonts
---
-2.37.3
-
diff --git a/fontconfig-lower-nonlatin-conf.patch b/fontconfig-lower-nonlatin-conf.patch
new file mode 100644
index 0000000..3ff373a
--- /dev/null
+++ b/fontconfig-lower-nonlatin-conf.patch
@@ -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',
diff --git a/fontconfig.spec b/fontconfig.spec
index 28999b7..1bc63c7 100644
--- a/fontconfig.spec
+++ b/fontconfig.spec
@@ -4,31 +4,33 @@
Summary: Font configuration and customization library
Name: fontconfig
-Version: 2.14.2
-Release: 1%{?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: 10-sub-pixel-rgb-for-kde.conf
# https://bugzilla.redhat.com/show_bug.cgi?id=140335
Patch0: %{name}-sleep-less.patch
Patch4: %{name}-drop-lang-from-pkgkit-format.patch
Patch5: %{name}-disable-network-required-test.patch
+Patch6: %{name}-lower-nonlatin-conf.patch
+Patch7: %{name}-fix-crash.patch
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: make
+BuildRequires: meson ninja-build gcc
Requires: fonts-filesystem freetype
# Register DTD system-wide to make validation work by default
@@ -70,41 +72,50 @@ which is useful for developing applications that uses fontconfig.
%prep
%autosetup -p1
+# 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
-
-for i in doc/*.fncs; do
- touch -r $i ${i//.fncs/.sgml}
-done
-autoreconf
-%configure --with-add-fonts=/usr/share/X11/fonts/Type1,/usr/share/X11/fonts/TTF,/usr/local/share/fonts \
- --enable-libxml2 \
- --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}/
-# Use conditional conf instead
+# Use implied value to allow the use of conditional conf
rm $RPM_BUILD_ROOT%{_sysconfdir}/fonts/conf.d/10-sub-pixel-*.conf
-install -p -m 0644 %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/fonts/conf.d
-# 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/
+# 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}
@@ -119,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
@@ -156,7 +167,7 @@ if [ $1 == 0 ] && [ -e %{_sysconfdir}/xml/catalog ]; then
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
@@ -176,6 +187,7 @@ fi
# 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/*
@@ -189,9 +201,87 @@ fi
%{_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 - 2.17.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
+
+* Mon Jun 30 2025 Akira TAGOH - 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 - 2.17.0-1
+- New upstream release.
+ Resolves: rhbz#2375126
+
+* Fri Apr 11 2025 Akira TAGOH - 2.16.2-1
+- New upstream release.
+
+* Thu Mar 13 2025 Akira TAGOH - 2.16.1-1
+- New upstream release.
+
+* Mon Jan 27 2025 Akira TAGOH - 2.16.0-2
+- Fix endian detection.
+ Resolves: rhbz#2341757
+
+* Sat Jan 18 2025 Akira TAGOH - 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 - 2.15.0-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
+
+* Thu Aug 1 2024 Akira TAGOH - 2.15.0-8
+- Fix a memory leak and potentially uninitialized values.
+
+* Wed Jul 17 2024 Fedora Release Engineering - 2.15.0-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
+
+* Fri Jun 7 2024 Akira TAGOH - 2.15.0-6
+- Own /usr/lib/fontconfig
+ Resolves: rhbz#2284076
+
+* Mon Apr 29 2024 Michael Kuhn - 2.15.0-5
+- Fix emoji fonts being disabled when bitmap fonts were disabled
+
+* Sat Feb 10 2024 Akira TAGOH - 2.15.0-4
+- Delete .uuid with fc-cache -f.
+ Resolves: rhbz#1761885
+
+* Wed Jan 24 2024 Fedora Release Engineering - 2.15.0-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Fri Jan 19 2024 Fedora Release Engineering - 2.15.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Fri Dec 22 2023 Akira TAGOH - 2.15.0-1
+- New upstream release.
+ Resolves: rhbz#2255623
+
+* Thu Aug 17 2023 Akira TAGOH - 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 - 2.14.2-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Fri Jun 16 2023 Akira TAGOH - 2.14.2-3
+- Drop 10-sub-pixel-rgb-for-kde.conf
+ Resolves: rhbz#2212512
+
+* Tue Apr 4 2023 Akira TAGOH - 2.14.2-2
+- Migrated license tag to SPDX.
+
* Fri Jan 27 2023 Akira TAGOH - 2.14.2-1
- New upstream release.
diff --git a/plans/basic.fmf b/plans/basic.fmf
new file mode 100644
index 0000000..c1627f9
--- /dev/null
+++ b/plans/basic.fmf
@@ -0,0 +1,5 @@
+summary: Basic smoke test
+discover:
+ how: fmf
+execute:
+ how: tmt
diff --git a/sources b/sources
index 9884c80..9a3bb99 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (fontconfig-2.14.2.tar.xz) = 23483e0ae6aa7589fd37f9949a4cf951c5bff981739dbb446881e4cea86a208c0ab31e2358666eac724af1dc6a689a42733a7ce91cd3e76d8d91eacedb318085
+SHA512 (fontconfig-2.17.0.tar.xz) = dd64905c3e0e5c5881df505b8f0bea594bbac5ce145f57aedcd7130978cd285491497198d8f2d6ed26f7b2abb31268dc3ff97aa75ce998b8e57f2d5c75b240b4
diff --git a/tests/basic/main.fmf b/tests/basic/main.fmf
new file mode 100644
index 0000000..d6c06ec
--- /dev/null
+++ b/tests/basic/main.fmf
@@ -0,0 +1,3 @@
+summary: Concise summary describing what the test does
+test: ./test.sh
+framework: beakerlib
diff --git a/tests/basic/test.sh b/tests/basic/test.sh
new file mode 100755
index 0000000..10de1b4
--- /dev/null
+++ b/tests/basic/test.sh
@@ -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
diff --git a/tests/tests.yml b/tests/tests.yml
deleted file mode 100644
index d3fa1ed..0000000
--- a/tests/tests.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-- 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