New upstream release.
This commit is contained in:
parent
3d26dfea36
commit
03bbd6991d
1
.gitignore
vendored
1
.gitignore
vendored
@ -38,3 +38,4 @@ fontconfig-2.8.0.tar.gz
|
|||||||
/fontconfig-2.13.96.tar.xz
|
/fontconfig-2.13.96.tar.xz
|
||||||
/fontconfig-2.14.0.tar.xz
|
/fontconfig-2.14.0.tar.xz
|
||||||
/fontconfig-2.14.1.tar.xz
|
/fontconfig-2.14.1.tar.xz
|
||||||
|
/fontconfig-2.14.2.tar.xz
|
||||||
|
@ -1,337 +0,0 @@
|
|||||||
From 6715a14f138df01c11110488b7edbf514e4076b4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Akira TAGOH <akira@tagoh.org>
|
|
||||||
Date: Fri, 25 Nov 2022 21:15:32 +0900
|
|
||||||
Subject: [PATCH] Add FC_DESKTOP_NAME property
|
|
||||||
|
|
||||||
To allow users to have desktop-specific matching rule.
|
|
||||||
---
|
|
||||||
fontconfig/fontconfig.h | 27 ++++++++++---------
|
|
||||||
src/fcdefault.c | 58 ++++++++++++++++++++++++++++++++++++++---
|
|
||||||
src/fcint.h | 7 +++--
|
|
||||||
src/fcobjs.h | 1 +
|
|
||||||
src/fcxml.c | 14 +++++-----
|
|
||||||
5 files changed, 82 insertions(+), 25 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
|
|
||||||
index 09292a3..ac5a0b0 100644
|
|
||||||
--- a/fontconfig/fontconfig.h
|
|
||||||
+++ b/fontconfig/fontconfig.h
|
|
||||||
@@ -128,6 +128,7 @@ typedef int FcBool;
|
|
||||||
#define FC_POSTSCRIPT_NAME "postscriptname" /* String */
|
|
||||||
#define FC_FONT_HAS_HINT "fonthashint" /* Bool - true if font has hinting */
|
|
||||||
#define FC_ORDER "order" /* Integer */
|
|
||||||
+#define FC_DESKTOP_NAME "desktop" /* String */
|
|
||||||
|
|
||||||
#define FC_CACHE_SUFFIX ".cache-" FC_CACHE_VERSION
|
|
||||||
#define FC_DIR_CACHE_FILE "fonts.cache-" FC_CACHE_VERSION
|
|
||||||
@@ -285,7 +286,7 @@ typedef struct _FcObjectSet {
|
|
||||||
int sobject;
|
|
||||||
const char **objects;
|
|
||||||
} FcObjectSet;
|
|
||||||
-
|
|
||||||
+
|
|
||||||
typedef enum _FcMatchKind {
|
|
||||||
FcMatchPattern, FcMatchFont, FcMatchScan,
|
|
||||||
FcMatchKindEnd,
|
|
||||||
@@ -400,7 +401,7 @@ FcConfigGetFilename (FcConfig *config,
|
|
||||||
|
|
||||||
FcPublic FcChar8 *
|
|
||||||
FcConfigFilename (const FcChar8 *url);
|
|
||||||
-
|
|
||||||
+
|
|
||||||
FcPublic FcConfig *
|
|
||||||
FcConfigCreate (void);
|
|
||||||
|
|
||||||
@@ -418,7 +419,7 @@ FcConfigGetCurrent (void);
|
|
||||||
|
|
||||||
FcPublic FcBool
|
|
||||||
FcConfigUptoDate (FcConfig *config);
|
|
||||||
-
|
|
||||||
+
|
|
||||||
FcPublic FcBool
|
|
||||||
FcConfigBuildFonts (FcConfig *config);
|
|
||||||
|
|
||||||
@@ -548,12 +549,12 @@ FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b);
|
|
||||||
#define FC_CHARSET_DONE ((FcChar32) -1)
|
|
||||||
|
|
||||||
FcPublic FcChar32
|
|
||||||
-FcCharSetFirstPage (const FcCharSet *a,
|
|
||||||
+FcCharSetFirstPage (const FcCharSet *a,
|
|
||||||
FcChar32 map[FC_CHARSET_MAP_SIZE],
|
|
||||||
FcChar32 *next);
|
|
||||||
|
|
||||||
FcPublic FcChar32
|
|
||||||
-FcCharSetNextPage (const FcCharSet *a,
|
|
||||||
+FcCharSetNextPage (const FcCharSet *a,
|
|
||||||
FcChar32 map[FC_CHARSET_MAP_SIZE],
|
|
||||||
FcChar32 *next);
|
|
||||||
|
|
||||||
@@ -609,7 +610,7 @@ FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file);
|
|
||||||
|
|
||||||
FcPublic FcCache *
|
|
||||||
FcDirCacheRescan (const FcChar8 *dir, FcConfig *config);
|
|
||||||
-
|
|
||||||
+
|
|
||||||
FcPublic FcCache *
|
|
||||||
FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config);
|
|
||||||
|
|
||||||
@@ -772,7 +773,7 @@ FcFontSetMatch (FcConfig *config,
|
|
||||||
|
|
||||||
FcPublic FcPattern *
|
|
||||||
FcFontMatch (FcConfig *config,
|
|
||||||
- FcPattern *p,
|
|
||||||
+ FcPattern *p,
|
|
||||||
FcResult *result);
|
|
||||||
|
|
||||||
FcPublic FcPattern *
|
|
||||||
@@ -890,10 +891,10 @@ FcPatternHash (const FcPattern *p);
|
|
||||||
|
|
||||||
FcPublic FcBool
|
|
||||||
FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append);
|
|
||||||
-
|
|
||||||
+
|
|
||||||
FcPublic FcBool
|
|
||||||
FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append);
|
|
||||||
-
|
|
||||||
+
|
|
||||||
FcPublic FcResult
|
|
||||||
FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v);
|
|
||||||
|
|
||||||
@@ -956,7 +957,7 @@ FcPatternGetRange (const FcPattern *p, const char *object, int id, FcRange **r);
|
|
||||||
|
|
||||||
FcPublic FcPattern *
|
|
||||||
FcPatternVaBuild (FcPattern *p, va_list va);
|
|
||||||
-
|
|
||||||
+
|
|
||||||
FcPublic FcPattern *
|
|
||||||
FcPatternBuild (FcPattern *p, ...) FC_ATTRIBUTE_SENTINEL(0);
|
|
||||||
|
|
||||||
@@ -1025,10 +1026,10 @@ FcStrCopy (const FcChar8 *s);
|
|
||||||
|
|
||||||
FcPublic FcChar8 *
|
|
||||||
FcStrCopyFilename (const FcChar8 *s);
|
|
||||||
-
|
|
||||||
+
|
|
||||||
FcPublic FcChar8 *
|
|
||||||
FcStrPlus (const FcChar8 *s1, const FcChar8 *s2);
|
|
||||||
-
|
|
||||||
+
|
|
||||||
FcPublic void
|
|
||||||
FcStrFree (FcChar8 *s);
|
|
||||||
|
|
||||||
@@ -1145,7 +1146,7 @@ _FCFUNCPROTOEND
|
|
||||||
* Deprecated functions are placed here to help users fix their code without
|
|
||||||
* digging through documentation
|
|
||||||
*/
|
|
||||||
-
|
|
||||||
+
|
|
||||||
#define FcConfigGetRescanInverval FcConfigGetRescanInverval_REPLACE_BY_FcConfigGetRescanInterval
|
|
||||||
#define FcConfigSetRescanInverval FcConfigSetRescanInverval_REPLACE_BY_FcConfigSetRescanInterval
|
|
||||||
|
|
||||||
diff --git a/src/fcdefault.c b/src/fcdefault.c
|
|
||||||
index a9a3b72..6995216 100644
|
|
||||||
--- a/src/fcdefault.c
|
|
||||||
+++ b/src/fcdefault.c
|
|
||||||
@@ -211,28 +211,73 @@ retry:
|
|
||||||
return prgname;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static FcChar8 *default_desktop_name;
|
|
||||||
+
|
|
||||||
+FcChar8 *
|
|
||||||
+FcGetDesktopName (void)
|
|
||||||
+{
|
|
||||||
+ FcChar8 *desktop_name;
|
|
||||||
+retry:
|
|
||||||
+ desktop_name = fc_atomic_ptr_get (&default_desktop_name);
|
|
||||||
+ if (!desktop_name)
|
|
||||||
+ {
|
|
||||||
+ char *s = getenv ("XDG_CURRENT_DESKTOP");
|
|
||||||
+
|
|
||||||
+ if (!s)
|
|
||||||
+ desktop_name = FcStrdup ("");
|
|
||||||
+ else
|
|
||||||
+ desktop_name = FcStrdup (s);
|
|
||||||
+ if (!desktop_name)
|
|
||||||
+ {
|
|
||||||
+ fprintf (stderr, "Fontconfig error: out of memory in %s\n",
|
|
||||||
+ __FUNCTION__);
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!fc_atomic_ptr_cmpexch(&default_desktop_name, NULL, desktop_name))
|
|
||||||
+ {
|
|
||||||
+ free (desktop_name);
|
|
||||||
+ goto retry;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ if (desktop_name && !desktop_name[0])
|
|
||||||
+ return NULL;
|
|
||||||
+
|
|
||||||
+ return desktop_name;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void
|
|
||||||
FcDefaultFini (void)
|
|
||||||
{
|
|
||||||
FcChar8 *lang;
|
|
||||||
FcStrSet *langs;
|
|
||||||
FcChar8 *prgname;
|
|
||||||
+ FcChar8 *desktop;
|
|
||||||
|
|
||||||
lang = fc_atomic_ptr_get (&default_lang);
|
|
||||||
- if (lang && fc_atomic_ptr_cmpexch (&default_lang, lang, NULL)) {
|
|
||||||
+ if (lang && fc_atomic_ptr_cmpexch (&default_lang, lang, NULL))
|
|
||||||
+ {
|
|
||||||
free (lang);
|
|
||||||
}
|
|
||||||
|
|
||||||
langs = fc_atomic_ptr_get (&default_langs);
|
|
||||||
- if (langs && fc_atomic_ptr_cmpexch (&default_langs, langs, NULL)) {
|
|
||||||
+ if (langs && fc_atomic_ptr_cmpexch (&default_langs, langs, NULL))
|
|
||||||
+ {
|
|
||||||
FcRefInit (&langs->ref, 1);
|
|
||||||
FcStrSetDestroy (langs);
|
|
||||||
}
|
|
||||||
|
|
||||||
prgname = fc_atomic_ptr_get (&default_prgname);
|
|
||||||
- if (prgname && fc_atomic_ptr_cmpexch (&default_prgname, prgname, NULL)) {
|
|
||||||
+ if (prgname && fc_atomic_ptr_cmpexch (&default_prgname, prgname, NULL))
|
|
||||||
+ {
|
|
||||||
free (prgname);
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ desktop = fc_atomic_ptr_get (&default_desktop_name);
|
|
||||||
+ if (desktop && fc_atomic_ptr_cmpexch(&default_desktop_name, desktop, NULL))
|
|
||||||
+ {
|
|
||||||
+ free (desktop);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
@@ -336,6 +381,13 @@ FcDefaultSubstitute (FcPattern *pattern)
|
|
||||||
FcPatternObjectAddString (pattern, FC_PRGNAME_OBJECT, prgname);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (FcPatternObjectGet (pattern, FC_DESKTOP_NAME_OBJECT, 0, &v) == FcResultNoMatch)
|
|
||||||
+ {
|
|
||||||
+ FcChar8 *desktop = FcGetDesktopName ();
|
|
||||||
+ if (desktop)
|
|
||||||
+ FcPatternObjectAddString (pattern, FC_DESKTOP_NAME_OBJECT, desktop);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (!FcPatternFindObjectIter (pattern, &iter, FC_ORDER_OBJECT))
|
|
||||||
FcPatternObjectAddInteger (pattern, FC_ORDER_OBJECT, 0);
|
|
||||||
}
|
|
||||||
diff --git a/src/fcint.h b/src/fcint.h
|
|
||||||
index c615b66..78cee54 100644
|
|
||||||
--- a/src/fcint.h
|
|
||||||
+++ b/src/fcint.h
|
|
||||||
@@ -199,7 +199,7 @@ typedef struct _FcValueList {
|
|
||||||
} FcValueList;
|
|
||||||
|
|
||||||
#define FcValueListNext(vl) FcPointerMember(vl,next,FcValueList)
|
|
||||||
-
|
|
||||||
+
|
|
||||||
typedef int FcObject;
|
|
||||||
|
|
||||||
/* The 1024 is to leave some room for future added internal objects, such
|
|
||||||
@@ -238,7 +238,7 @@ struct _FcPattern {
|
|
||||||
FcFontSetFonts(fs)[i], \
|
|
||||||
FcPattern) : \
|
|
||||||
fs->fonts[i])
|
|
||||||
-
|
|
||||||
+
|
|
||||||
typedef enum _FcOp {
|
|
||||||
FcOpInteger, FcOpDouble, FcOpString, FcOpMatrix, FcOpRange, FcOpBool, FcOpCharSet, FcOpLangSet,
|
|
||||||
FcOpNil,
|
|
||||||
@@ -909,6 +909,9 @@ FcGetDefaultLang (void);
|
|
||||||
FcPrivate FcChar8 *
|
|
||||||
FcGetPrgname (void);
|
|
||||||
|
|
||||||
+FcPrivate FcChar8 *
|
|
||||||
+FcGetDesktopName (void);
|
|
||||||
+
|
|
||||||
FcPrivate void
|
|
||||||
FcDefaultFini (void);
|
|
||||||
|
|
||||||
diff --git a/src/fcobjs.h b/src/fcobjs.h
|
|
||||||
index acc0471..1cd8ed3 100644
|
|
||||||
--- a/src/fcobjs.h
|
|
||||||
+++ b/src/fcobjs.h
|
|
||||||
@@ -74,4 +74,5 @@ FC_OBJECT (FONT_VARIATIONS, FcTypeString, NULL)
|
|
||||||
FC_OBJECT (VARIABLE, FcTypeBool, FcCompareBool)
|
|
||||||
FC_OBJECT (FONT_HAS_HINT, FcTypeBool, FcCompareBool)
|
|
||||||
FC_OBJECT (ORDER, FcTypeInteger, FcCompareNumber)
|
|
||||||
+FC_OBJECT (DESKTOP_NAME, FcTypeString, NULL)
|
|
||||||
/* ^-------------- Add new objects here. */
|
|
||||||
diff --git a/src/fcxml.c b/src/fcxml.c
|
|
||||||
index 82a46f2..74c892d 100644
|
|
||||||
--- a/src/fcxml.c
|
|
||||||
+++ b/src/fcxml.c
|
|
||||||
@@ -367,7 +367,7 @@ typedef enum _FcElement {
|
|
||||||
FcElementDescription,
|
|
||||||
FcElementRemapDir,
|
|
||||||
FcElementResetDirs,
|
|
||||||
-
|
|
||||||
+
|
|
||||||
FcElementRescan,
|
|
||||||
|
|
||||||
FcElementPrefer,
|
|
||||||
@@ -731,7 +731,7 @@ FcTypecheckExpr (FcConfigParse *parse, FcExpr *expr, FcType type)
|
|
||||||
if (o)
|
|
||||||
FcTypecheckValue (parse, o->type, type);
|
|
||||||
}
|
|
||||||
- else
|
|
||||||
+ else
|
|
||||||
FcConfigMessage (parse, FcSevereWarning,
|
|
||||||
"invalid constant used : %s",
|
|
||||||
expr->u.constant);
|
|
||||||
@@ -794,7 +794,7 @@ FcTestCreate (FcConfigParse *parse,
|
|
||||||
if (test)
|
|
||||||
{
|
|
||||||
const FcObjectType *o;
|
|
||||||
-
|
|
||||||
+
|
|
||||||
test->kind = kind;
|
|
||||||
test->qual = qual;
|
|
||||||
test->object = FcObjectFromName ((const char *) field);
|
|
||||||
@@ -1533,7 +1533,7 @@ FcStrtod (char *s, char **end)
|
|
||||||
{
|
|
||||||
char buf[128];
|
|
||||||
int slen = strlen (s);
|
|
||||||
-
|
|
||||||
+
|
|
||||||
if (slen + dlen > (int) sizeof (buf))
|
|
||||||
{
|
|
||||||
if (end)
|
|
||||||
@@ -3101,7 +3101,7 @@ FcParsePattern (FcConfigParse *parse)
|
|
||||||
FcConfigMessage (parse, FcSevereError, "out of memory");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+
|
|
||||||
while ((vstack = FcVStackPeek (parse)))
|
|
||||||
{
|
|
||||||
switch ((int) vstack->tag) {
|
|
||||||
@@ -3176,7 +3176,7 @@ FcEndElement(void *userData, const XML_Char *name FC_UNUSED)
|
|
||||||
case FcElementRescan:
|
|
||||||
FcParseRescan (parse);
|
|
||||||
break;
|
|
||||||
-
|
|
||||||
+
|
|
||||||
case FcElementPrefer:
|
|
||||||
FcParseFamilies (parse, FcVStackPrefer);
|
|
||||||
break;
|
|
||||||
@@ -3512,7 +3512,7 @@ FcConfigParseAndLoadFromMemoryInternal (FcConfig *config,
|
|
||||||
XML_SetDoctypeDeclHandler (p, FcStartDoctypeDecl, FcEndDoctypeDecl);
|
|
||||||
XML_SetElementHandler (p, FcStartElement, FcEndElement);
|
|
||||||
XML_SetCharacterDataHandler (p, FcCharacterData);
|
|
||||||
-
|
|
||||||
+
|
|
||||||
#endif /* ENABLE_LIBXML2 */
|
|
||||||
|
|
||||||
#ifndef ENABLE_LIBXML2
|
|
||||||
--
|
|
||||||
2.38.1
|
|
||||||
|
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
Summary: Font configuration and customization library
|
Summary: Font configuration and customization library
|
||||||
Name: fontconfig
|
Name: fontconfig
|
||||||
Version: 2.14.1
|
Version: 2.14.2
|
||||||
Release: 3%{?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
|
||||||
@ -21,7 +21,6 @@ Source3: 10-sub-pixel-rgb-for-kde.conf
|
|||||||
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}-desktop-property.patch
|
|
||||||
|
|
||||||
BuildRequires: libxml2-devel
|
BuildRequires: libxml2-devel
|
||||||
BuildRequires: freetype-devel >= %{freetype_version}
|
BuildRequires: freetype-devel >= %{freetype_version}
|
||||||
@ -193,6 +192,9 @@ fi
|
|||||||
%doc fontconfig-devel.txt fontconfig-devel
|
%doc fontconfig-devel.txt fontconfig-devel
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* 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
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.14.1-3
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (fontconfig-2.14.1.tar.xz) = ba42e6f90ec92914895d2157c872c373adfc17be791b92253bcc40e85674a84e43c08ab2b37c3ae85b53b2e7bd2a7847abb479043f303b732c08eeac3ee733db
|
SHA512 (fontconfig-2.14.2.tar.xz) = 23483e0ae6aa7589fd37f9949a4cf951c5bff981739dbb446881e4cea86a208c0ab31e2358666eac724af1dc6a689a42733a7ce91cd3e76d8d91eacedb318085
|
||||||
|
Loading…
Reference in New Issue
Block a user