fontconfig issueshttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues2023-09-13T09:17:52Zhttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/383Duplicate styles in variable font2023-09-13T09:17:52ZJiaJun MaoDuplicate styles in variable fontI have a variable font [SourceHanSansCN-VF-2.otf](/uploads/6af292d9e94c61d731464bfd860889dd/SourceHanSansCN-VF-2.otf) install in Mac OS, I got response as fellows with fc-list (V2.14.2):
```plaintext
~> fc-list -b : file postscriptname ...I have a variable font [SourceHanSansCN-VF-2.otf](/uploads/6af292d9e94c61d731464bfd860889dd/SourceHanSansCN-VF-2.otf) install in Mac OS, I got response as fellows with fc-list (V2.14.2):
```plaintext
~> fc-list -b : file postscriptname family style weight | grep "SourceHanSansCN-VF" -A 1 -B 4
Pattern has 5 elts (size 16)
family: "Source Han Sans CN VF"(s) "思源黑体 CN VF"(s)
style: "Normal"(s)
weight: 55(f)(s)
file: "/Users/maojj/Library/Fonts/SourceHanSansCN-VF-2.otf"(s)
postscriptname: "SourceHanSansCNVF_350wght"(s)
--
Pattern has 5 elts (size 16)
family: "Source Han Sans CN VF"(s) "思源黑体 CN VF"(s)
style: "Heavy"(s)
weight: 210(f)(s)
file: "/Users/maojj/Library/Fonts/SourceHanSansCN-VF-2.otf"(s)
postscriptname: "SourceHanSansCNVF_900wght"(s)
--
Pattern has 5 elts (size 16)
family: "Source Han Sans CN VF"(s) "思源黑体 CN VF"(s)
style: "Light"(s)
weight: 50(f)(s)
file: "/Users/maojj/Library/Fonts/SourceHanSansCN-VF-2.otf"(s)
postscriptname: "SourceHanSansCNVF_300wght"(s)
--
Pattern has 5 elts (size 16)
family: "Source Han Sans CN VF"(s) "思源黑体 CN VF"(s)
style: "Regular"(s)
weight: 45(f)(s)
file: "/Users/maojj/Library/Fonts/SourceHanSansCN-VF-2.otf"(s)
postscriptname: "SourceHanSansCN-Variable"(s)
--
Pattern has 5 elts (size 16)
family: "Source Han Sans CN VF"(s) "思源黑体 CN VF"(s)
style: "Medium"(s)
weight: 100(f)(s)
file: "/Users/maojj/Library/Fonts/SourceHanSansCN-VF-2.otf"(s)
postscriptname: "SourceHanSansCNVF_500wght"(s)
--
Pattern has 3 elts (size 16)
family: "Source Han Sans CN VF"(s) "思源黑体 CN VF"(s)
weight: [45 210](s)
file: "/Users/maojj/Library/Fonts/SourceHanSansCN-VF-2.otf"(s)
--
Pattern has 5 elts (size 16)
family: "Source Han Sans CN VF"(s) "思源黑体 CN VF"(s)
style: "Regular"(s)
weight: 80(f)(s)
file: "/Users/maojj/Library/Fonts/SourceHanSansCN-VF-2.otf"(s)
postscriptname: "SourceHanSansCNVF_400wght"(s)
--
Pattern has 5 elts (size 16)
family: "Source Han Sans CN VF"(s) "思源黑体 CN VF"(s)
style: "Bold"(s)
weight: 200(f)(s)
file: "/Users/maojj/Library/Fonts/SourceHanSansCN-VF-2.otf"(s)
postscriptname: "SourceHanSansCNVF_700wght"(s)
```
From the response, we can find there are two "Regular" style with different weight, and postscriptname with different format ("SourceHanSansCN-Variable" vs "SourceHanSansCNVF_400wght" )
```plaintext
Pattern has 5 elts (size 16)
family: "Source Han Sans CN VF"(s) "思源黑体 CN VF"(s)
style: "Regular"(s)
weight: 45(f)(s)
file: "/Users/maojj/Library/Fonts/SourceHanSansCN-VF-2.otf"(s)
postscriptname: "SourceHanSansCN-Variable"(s)
Pattern has 5 elts (size 16)
family: "Source Han Sans CN VF"(s) "思源黑体 CN VF"(s)
style: "Regular"(s)
weight: 80(f)(s)
file: "/Users/maojj/Library/Fonts/SourceHanSansCN-VF-2.otf"(s)
postscriptname: "SourceHanSansCNVF_400wght"(s)
```
And I get Font Variations table from https://opentype.js.org/font-inspector.html :
```plaintext
axes:
{"tag":"wght","minValue":250,"defaultValue":250,"maxValue":900,"name":{"en":"Weight"}}
instances:
{"name":{"en":"ExtraLight"},"coordinates":{"wght":250}}
{"name":{"en":"Light"},"coordinates":{"wght":300}}
{"name":{"en":"Normal"},"coordinates":{"wght":350}}
{"name":{"en":"Regular"},"coordinates":{"wght":400}}
{"name":{"en":"Medium"},"coordinates":{"wght":500}}
{"name":{"en":"Bold"},"coordinates":{"wght":700}}
{"name":{"en":"Heavy"},"coordinates":{"wght":900}}
```
So maybe one "Regular" style should be "Normal" (wght 350)? Is is a bug of fc-list ?https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/382How can I compile fontconfig into a debug version under linux2023-08-25T06:06:31ZtwabrHow can I compile fontconfig into a debug version under linuxI use the command `./autogen.sh --enable-debug`
, but no effect.
I want to debug its source codeI use the command `./autogen.sh --enable-debug`
, but no effect.
I want to debug its source codehttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/381XML-based configuration file2023-08-23T10:37:27ZtwabrXML-based configuration fileI am using emscripten to test fontconfig. When I load the packaged fontconfig.js in html, I am prompted that the file cannot be found. I think the default font configuration file cannot be read in the browser, such as: fonts.conf. What s...I am using emscripten to test fontconfig. When I load the packaged fontconfig.js in html, I am prompted that the file cannot be found. I think the default font configuration file cannot be read in the browser, such as: fonts.conf. What should I do? how to do ithttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/380fccompat.c doesn't compile when using HAVE_RAND_R instead of HAVE_LRAND482023-09-11T09:18:46ZAndreas Falkenhahnfccompat.c doesn't compile when using HAVE_RAND_R instead of HAVE_LRAND48In fccompat.c we have this code:
```
static unsigned int seed = time (NULL);
result = rand_r (&seed);
```
This won't compile because it assigns a non-constant value to a static variable which isn't allowed in C. So this code sh...In fccompat.c we have this code:
```
static unsigned int seed = time (NULL);
result = rand_r (&seed);
```
This won't compile because it assigns a non-constant value to a static variable which isn't allowed in C. So this code should be changed to this:
```
static unsigned int seed;
seed = time (NULL);
result = rand_r (&seed);
```https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/379fontconfig cache directory on windows2023-08-10T11:33:08ZZUHONG TAOfontconfig cache directory on windowsfontconfig will create a cache directory on the root of app installed driver
![image](/uploads/5cff8544853cc0691d39ec75544f9a0c/image.png)
it should be created in the temp directory or with a hidden propertyfontconfig will create a cache directory on the root of app installed driver
![image](/uploads/5cff8544853cc0691d39ec75544f9a0c/image.png)
it should be created in the temp directory or with a hidden propertyhttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/378Make link_confs.py generate relative symlinks2023-08-12T05:36:59ZRaul RangelMake link_confs.py generate relative symlinks[link_confs.py](https://gitlab.freedesktop.org/fontconfig/fontconfig/-/blob/main/conf.d/link_confs.py) currently generates absolute symlinks.
i.e.,
```
etc/fonts/conf.d/51-local.conf -> /etc/fonts/conf.avail/51-local.conf
etc/fonts/conf...[link_confs.py](https://gitlab.freedesktop.org/fontconfig/fontconfig/-/blob/main/conf.d/link_confs.py) currently generates absolute symlinks.
i.e.,
```
etc/fonts/conf.d/51-local.conf -> /etc/fonts/conf.avail/51-local.conf
etc/fonts/conf.d/60-generic.conf -> /etc/fonts/conf.avail/60-generic.conf
```
It would be nice if instead of generating absolute symlinks, it generated relative symlinks:
i.e.,
```
etc/fonts/conf.d/11-lcdfilter-default.conf -> ../conf.avail/11-lcdfilter-default.conf
```
The problem with absolute symlinks is that they are not valid when cross-compiling. If I look inside my cross compiler SYSROOT, the symlinks are broken, vs the relative ones work correctly.
![Screenshot_from_2023-08-09_14-13-59](/uploads/129cb20d150c2f5e713791f3f959a51b/Screenshot_from_2023-08-09_14-13-59.png)
This causes problems for the Gentoo [fontconfig package](https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/fontconfig/fontconfig-2.14.2-r3.ebuild#n208) because it checks for broken symlinks.Akira TAGOHAkira TAGOHhttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/377Can't recognize charset code: zh_Hans/zh_Hant2023-08-07T05:22:32ZGhost UserCan't recognize charset code: zh_Hans/zh_HantFontconfig warning: ignoring zh_Hans.UTF-8: not a valid region tag
Fontconfig warning: ignoring zh_Hant.UTF-8: not a valid region tag
Maybe zh-Hans-CN/zh-Hant-TW are the same too.Fontconfig warning: ignoring zh_Hans.UTF-8: not a valid region tag
Fontconfig warning: ignoring zh_Hant.UTF-8: not a valid region tag
Maybe zh-Hans-CN/zh-Hant-TW are the same too.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/376FontConfig use the wrong encoding to decode NameRecord2023-09-21T09:15:38Zmoi15moiFontConfig use the wrong encoding to decode NameRecordCurrently, FontConfig doesn't use the right encoding to decode the NameRecord for the microsoft platform: https://gitlab.freedesktop.org/fontconfig/fontconfig/-/blob/d863f6778915f7dd224c98c814247ec292904e30/src/fcfreetype.c#L88-103
Here...Currently, FontConfig doesn't use the right encoding to decode the NameRecord for the microsoft platform: https://gitlab.freedesktop.org/fontconfig/fontconfig/-/blob/d863f6778915f7dd224c98c814247ec292904e30/src/fcfreetype.c#L88-103
Here is how GDI and DirectWrite does: https://github.com/MicrosoftDocs/typography-issues/issues/956#issuecomment-1205678068
In brief, if you want to emulate GDI, here is the logic in python:
```py
if platformID == TT_PLATFORM_MICROSOFT:
if platEncID == TT_MS_ID_PRC:
return "cp936" #
elif platEncID == TT_MS_ID_BIG_5:
if nameID == TT_NAME_ID_FONT_SUBFAMILY:
return "utf_16_be"
else:
return "cp950"
elif platEncID == TT_MS_ID_WANSUNG:
if nameID == TT_NAME_ID_FONT_SUBFAMILY:
return "utf_16_be"
else:
return "cp949"
else:
return "utf_16_be"
```
Important to note, in GDI and DirectWrite, when the encoding is not "utf_16_be", it removes the leading zeros for each Double Byte.
Example in python:
```py
# This bytes is from the font 文鼎中特廣告體 - Download here: http://fonts.top/Arphic-Fonts/41459.html
string = b"\x00\xa4\x00\xe5\x00\xb9\x00\xa9\x00\xa4\x00\xa4\x00\xaf\x00S\x00\xbc\x00s\x00\xa7\x00i\x00\xc5\x00\xe9"
if platformID == TT_PLATFORM_MICROSOFT and encoding != "utf_16_be":
name_to_decode = string.replace(b"\x00", b"")
```
Just for information, the logic is a bit different for the CMAP:
```py
if platformID == TT_PLATFORM_MICROSOFT:
if platEncID == TT_MS_ID_SYMBOL_CS || platEncID == TT_MS_ID_UNICODE_CS || platEncID == TT_MS_ID_UCS_4:
return "utf_16_be"
elif platEncID == TT_MS_ID_SJIS:
return "cp932"
elif platEncID == TT_MS_ID_PRC:
return "cp936"
elif platEncID == TT_MS_ID_BIG_5:
return "cp950"
elif platEncID == TT_MS_ID_WANSUNG:
return "cp949"
elif platEncID == TT_MS_ID_JOHAB:
return "cp1361"
```https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/375Provide a way to detect WOFF/WOFF2 fonts2023-08-09T11:02:06ZKhaled HosnyProvide a way to detect WOFF/WOFF2 fontsRelated to #92
Some distributions install WOFF and WOFF2 fonts in directories indexed by FontConfig and FontConfig will list them like any other format it supports.
Applications that don’t support WOFF/WOFF2 fonts, however, have no si...Related to #92
Some distributions install WOFF and WOFF2 fonts in directories indexed by FontConfig and FontConfig will list them like any other format it supports.
Applications that don’t support WOFF/WOFF2 fonts, however, have no simple way of detecting such fonts and filtering them out. The `FC_FONTFORMAT` of the pattern reports the format of the uncompressed font file and there is no indication that it is a WOFF/WOFF2 file.
Applications are left with either:
- Filtering based on file extension, which is brittle
- Sniffing the format by opening the file and reading its header, which is likely to be slow, and applications might need to cache it, defeating the one of the benefits of using FontConfig.
I think either `FC_FONTFORMAT` should be extended to report also WOFF/WOFF2, e.g. `WOFF-CFF`, `WOFF-TTF`, and so on, or a new property, e.g., `FC_FONTCONTAINER` or some such would be supoprted. The later might even be help distingush naked CFF fonts from CFF in SFNT fonts as currently both report font format of `CFF`.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/374Memory access fault in FcConfigSubstituteWithPat2023-07-28T09:27:25ZAndreas FalkenhahnMemory access fault in FcConfigSubstituteWithPatThere's a memory access fault in `FcConfigSubstituteWithPat` in case one of the following calls to `malloc` fails:
```
value = (FcValueList **) malloc (SIZEOF_VOID_P * nobjs);
if (!value)
{
retval = FcFalse;
goto bail1;
...There's a memory access fault in `FcConfigSubstituteWithPat` in case one of the following calls to `malloc` fails:
```
value = (FcValueList **) malloc (SIZEOF_VOID_P * nobjs);
if (!value)
{
retval = FcFalse;
goto bail1;
}
elt = (FcPatternElt **) malloc (SIZEOF_VOID_P * nobjs);
if (!elt)
{
retval = FcFalse;
goto bail1;
}
tst = (FcTest **) malloc (SIZEOF_VOID_P * nobjs);
if (!tst)
{
retval = FcFalse;
goto bail1;
}
```
The memory access fault is caused by the fact that in `bail1` we have this:
```
bail1:
FamilyTableClear (&data);
```
But `data` is initialized *after* the `malloc` calls quoted above, thus a call to `FamilyTableClear` will cause a memory access fault. I don't know how to post merge requests here so I'm just posting my fix. We just have to initialize `data` before any gotos to `bail1`, e.g. like this:
```
FamilyTableInit (&data, p); // --> I moved this line to here!
nobjs = FC_MAX_BASE_OBJECT + config->maxObjects + 2;
value = (FcValueList **) malloc (SIZEOF_VOID_P * nobjs);
if (!value)
{
retval = FcFalse;
goto bail1;
}
elt = (FcPatternElt **) malloc (SIZEOF_VOID_P * nobjs);
if (!elt)
{
retval = FcFalse;
goto bail1;
}
tst = (FcTest **) malloc (SIZEOF_VOID_P * nobjs);
if (!tst)
{
retval = FcFalse;
goto bail1;
}
if (FcDebug () & FC_DBG_EDIT)
{
printf ("FcConfigSubstitute ");
FcPatternPrint (p);
}
```Akira TAGOHAkira TAGOHhttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/373Typos in fc-conflist.sgml2023-07-15T07:34:27ZpellTypos in fc-conflist.sgmlThere are a couple of typos in fc-conflist.sgml which I'm supposing is where the same issue in the man page originates.
The phrase:
`how fontconfig acautlly process them`
Should read:
`how fontconfig actually processes them`
Edit: I'v...There are a couple of typos in fc-conflist.sgml which I'm supposing is where the same issue in the man page originates.
The phrase:
`how fontconfig acautlly process them`
Should read:
`how fontconfig actually processes them`
Edit: I've attached a patch with the correction.
[fc-conflist.sgml.patch]
(/uploads/5d164fee889a3c0f8039dd27743885ef/fc-conflist.sgml.patch)https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/372Font gets pruned from fc-match list2023-07-11T04:56:30ZbarmadridFont gets pruned from fc-match list"Please note that I only have the 51-local.conf config enabled to ensure no overrides happens for below".
I have the following rule for setting default serif fonts:
```
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:..."Please note that I only have the 51-local.conf config enabled to ensure no overrides happens for below".
I have the following rule for setting default serif fonts:
```
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>Font 1</family>
<family>Font 2</family>
<family>Font 3</family>
<family>Font 4</family>
<family>Font 5</family>
<family>Font 6</family>
</prefer>
</alias>
</fontconfig>
```
However, if run `fc-match serif -s` I don't see **Font 5** from list above, but If I move it on top then I can see it with that command, but in that case it will be the default and not a fallback as I intend.
Please note: if I run `fc-match serif -a` instead, then I can see it even if it's placed down below!
Can you please explain this behavior and why the font is being pruned and ommited by `fc-match -s`?
Thankshttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/370Fontconfig error: Cannot load default config file: No such file: (null)2023-06-28T12:50:17ZRaizencorpFontconfig error: Cannot load default config file: No such file: (null)Hi,
I'm new to FontConfig so i don't understand fully the library. But i'm developping an app in python that need to convert html to pdf using weasyprint with a twist. I'm creating a standalone with pyinstaller on windows. So as i under...Hi,
I'm new to FontConfig so i don't understand fully the library. But i'm developping an app in python that need to convert html to pdf using weasyprint with a twist. I'm creating a standalone with pyinstaller on windows. So as i understood i need gtk3 to get the /etc/fonts files and directory, and pango from this Lastest installer (found on weasyprint doc): https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases
As i backtrace my FontConfig error, i ended up seeing that fc actualy was creating the config and not looking for my fonts.conf (or i got lost somewhere) with fcConfigCreate() in fccfg.c. And create the struct like config.
The thing is, i try to access the variable like `configFiles` but i only get a memory address not useful hahaha
Would anyone care to explain how this conf file works, and where is it looking for ?https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/369Provide a json schema for fontconfig XML?2023-07-21T04:35:20ZwzyProvide a json schema for fontconfig XML?For those users who are not familiar with fontconfig XML syntax, they usually make mistakes when editing `~/.config/fontconfig/fonts.conf`. So can we provide language server for fontconfig XML? json/yaml/toml/XML and all data exchange fo...For those users who are not familiar with fontconfig XML syntax, they usually make mistakes when editing `~/.config/fontconfig/fonts.conf`. So can we provide language server for fontconfig XML? json/yaml/toml/XML and all data exchange format can be supported by [jsonschema](https://json-schema.org/). Can a json schma for fontconfig XML be uploaded to [jsonschema store](https://www.schemastore.org/json/)?https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/368Everything in conf.avail is applied, even when using FONTCONFIG_FILE2023-06-21T12:20:43ZMark HillsEverything in conf.avail is applied, even when using FONTCONFIG_FILEI set FONTCONFIG_FILE to override the config, but the entire contents of the system `/usr/share/fontconfig/conf.avail` are processed.
I've used this for many years to have my own font config without root access or modifying installed pa...I set FONTCONFIG_FILE to override the config, but the entire contents of the system `/usr/share/fontconfig/conf.avail` are processed.
I've used this for many years to have my own font config without root access or modifying installed packages, and sometimes per-application settings.
Recently I noticed the system config affecting the font settings, but I don't know when this began.
There seems to be some kind of 'modal' behaviour here depending on whether FONTCONFIG_FILE is unset, set, or does not exist -- note the flipping between `/usr/share/fontconfig` and `/etc/fonts` in the logs below. I haven't traced the source code to see why. The two distros I tested both seem to have duplicates of the files.
This negates much of the `conf.d` -> `conf.avail` symlinking, if all the files are being read?
If `FONTCONFIG_FILE` still reads the system config then I imagine this may interfere with the test cases in the source code?
The logs below are from Alpine Linux, but I tested `fc-conflist` on:
* Alpine Linux 3.18 (fontconfig-2.14.2-r3)
* Slackware 15.0 (fontconfig-2.13.92-x86_64-3)
```
$ FONTCONFIG_FILE=$HOME/.fonts.conf fc-conflist
+ /home/mark/.fonts.conf: No description
- /usr/share/fontconfig/conf.avail/05-reset-dirs-sample.conf: Re-define fonts dirs sample
- /usr/share/fontconfig/conf.avail/09-autohint-if-no-hinting.conf: Enable autohinter if font doesn't have any hinting
- /usr/share/fontconfig/conf.avail/10-autohint.conf: Enable autohinter
- /usr/share/fontconfig/conf.avail/10-hinting-full.conf: Set hintfull to hintstyle
- /usr/share/fontconfig/conf.avail/10-hinting-medium.conf: Set hintmedium to hintstyle
- /usr/share/fontconfig/conf.avail/10-hinting-none.conf: Set hintnone to hintstyle
- /usr/share/fontconfig/conf.avail/10-hinting-slight.conf: Set hintslight to hintstyle
- /usr/share/fontconfig/conf.avail/10-no-antialias.conf: Disable antialiasing
- /usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf: Bitmap scaling
[...]
- /usr/share/fontconfig/conf.avail/90-synthetic.conf: No description
```
```
$ FONTCONFIG_FILE=$HOME/does-not-exist fc-conflist
Fontconfig error: Cannot load default config file: No such file: (null)
+ /etc/fonts/conf.d/10-hinting-slight.conf: Set hintslight to hintstyle
+ /etc/fonts/conf.d/10-scale-bitmap-fonts.conf: Bitmap scaling
+ /etc/fonts/conf.d/10-sub-pixel-none.conf: Disable sub-pixel rendering
+ /etc/fonts/conf.d/10-yes-antialias.conf: Enable antialiasing
+ /etc/fonts/conf.d/11-lcdfilter-default.conf: Use lcddefault as default for LCD filter
+ /etc/fonts/conf.d/20-unhint-small-vera.conf: Disable hinting for Bitstream Vera fonts when the size is less than 8ppem
+ /etc/fonts/conf.d/30-liberation-mono.conf: No description
+ /etc/fonts/conf.d/30-liberation-sans-narrow.conf: No description
+ /etc/fonts/conf.d/30-liberation-sans.conf: No description
+ /etc/fonts/conf.d/30-liberation-serif.conf: No description
[...]
+ /etc/fonts/conf.d/90-tt-dejavu.conf: No description
+ memory: No description
```
```
$ export -n FONTCONFIG_FILE
$ fc-conflist
+ /etc/fonts/conf.d/10-hinting-slight.conf: Set hintslight to hintstyle
+ /etc/fonts/conf.d/10-scale-bitmap-fonts.conf: Bitmap scaling
+ /etc/fonts/conf.d/10-sub-pixel-none.conf: Disable sub-pixel rendering
+ /etc/fonts/conf.d/10-yes-antialias.conf: Enable antialiasing
+ /etc/fonts/conf.d/11-lcdfilter-default.conf: Use lcddefault as default for LCD filter
+ /etc/fonts/conf.d/20-unhint-small-vera.conf: Disable hinting for Bitstream Vera fonts when the size is less than 8ppem
+ /etc/fonts/conf.d/30-liberation-mono.conf: No description
+ /etc/fonts/conf.d/30-liberation-sans-narrow.conf: No description
+ /etc/fonts/conf.d/30-liberation-sans.conf: No description
+ /etc/fonts/conf.d/30-liberation-serif.conf: No description
+ /etc/fonts/conf.d/30-metric-aliases.conf: Set substitutions for similar/metric-compatible families
+ /etc/fonts/conf.d/40-nonlatin.conf: Set substitutions for non-Latin fonts
+ /etc/fonts/conf.d/42-luxi-mono.conf: No description
+ /etc/fonts/conf.d/45-dejavu.conf: No description
+ /etc/fonts/conf.d/45-generic.conf: Set substitutions for emoji/math fonts
+ /etc/fonts/conf.d/45-latin.conf: Set substitutions for Latin fonts
+ /etc/fonts/conf.d/45-liberation-sans-narrow.conf: No description
+ /etc/fonts/conf.d/45-liberation.conf: No description
+ /etc/fonts/conf.d/48-spacing.conf: Add mono to the family when spacing is 100
+ /etc/fonts/conf.d/49-sansserif.conf: Add sans-serif to the family when no generic name
+ /home/mark/.fonts.conf: No description
+ /etc/fonts/conf.d/50-user.conf: Load per-user customization files
+ /etc/fonts/conf.d/51-local.conf: Load local customization file
+ /etc/fonts/conf.d/60-generic.conf: Set preferable fonts for emoji/math fonts
+ /etc/fonts/conf.d/60-latin.conf: Set preferable fonts for Latin
+ /etc/fonts/conf.d/65-fonts-persian.conf: No description
+ /etc/fonts/conf.d/65-nonlatin.conf: Set preferable fonts for non-Latin
+ /etc/fonts/conf.d/69-unifont.conf: No description
+ /etc/fonts/conf.d/80-delicious.conf: No description
+ /etc/fonts/conf.d/90-liberation-sans-narrow.conf: No description
+ /etc/fonts/conf.d/90-liberation.conf: No description
+ /etc/fonts/conf.d/90-synthetic.conf: No description
+ /etc/fonts/conf.d/90-tt-dejavu.conf: No description
+ /etc/fonts/fonts.conf: Default configuration file
- /usr/share/fontconfig/conf.avail/05-reset-dirs-sample.conf: Re-define fonts dirs sample
- /usr/share/fontconfig/conf.avail/09-autohint-if-no-hinting.conf: Enable autohinter if font doesn't have any hinting
- /usr/share/fontconfig/conf.avail/10-autohint.conf: Enable autohinter
- /usr/share/fontconfig/conf.avail/10-hinting-full.conf: Set hintfull to hintstyle
- /usr/share/fontconfig/conf.avail/10-hinting-medium.conf: Set hintmedium to hintstyle
- /usr/share/fontconfig/conf.avail/10-hinting-none.conf: Set hintnone to hintstyle
- /usr/share/fontconfig/conf.avail/10-no-antialias.conf: Disable antialiasing
- /usr/share/fontconfig/conf.avail/10-sub-pixel-bgr.conf: Enable sub-pixel rendering with the BGR stripes layout
- /usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf: Enable sub-pixel rendering with the RGB stripes layout
- /usr/share/fontconfig/conf.avail/10-sub-pixel-vbgr.conf: Enable sub-pixel rendering with the vertical BGR stripes layout
- /usr/share/fontconfig/conf.avail/10-sub-pixel-vrgb.conf: Enable sub-pixel rendering with the vertical RGB stripes layout
- /usr/share/fontconfig/conf.avail/10-unhinted.conf: Disable hinting
- /usr/share/fontconfig/conf.avail/11-lcdfilter-legacy.conf: Use lcdlegacy as default for LCD filter
- /usr/share/fontconfig/conf.avail/11-lcdfilter-light.conf: Use lcdlight as default for LCD filter
- /usr/share/fontconfig/conf.avail/25-unhint-nonlatin.conf: Disable hinting for CJK fonts
- /usr/share/fontconfig/conf.avail/35-lang-normalize.conf: No description
- /usr/share/fontconfig/conf.avail/65-khmer.conf: No description
- /usr/share/fontconfig/conf.avail/70-no-bitmaps.conf: Reject bitmap fonts
- /usr/share/fontconfig/conf.avail/70-yes-bitmaps.conf: Accept bitmap fonts
```https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/367Fontconfig debug build doesn't find debug version of libexpat (libexpatd.lib)2023-06-15T07:20:03ZTim CrewsFontconfig debug build doesn't find debug version of libexpat (libexpatd.lib)This was found in the context of gvsbuild (a Python script for building the GTK stack on Windows). The pertinent issue is https://github.com/wingtk/gvsbuild/issues/971.
gvsbuild currently builds version 2.14.2 of fontconfig and version...This was found in the context of gvsbuild (a Python script for building the GTK stack on Windows). The pertinent issue is https://github.com/wingtk/gvsbuild/issues/971.
gvsbuild currently builds version 2.14.2 of fontconfig and version 2.50.0 of expat.
Since at least [expat version 2.2.9](https://github.com/libexpat/libexpat/blob/R_2_2_9/expat/Changes) back in 2019, the expat library names have been libexpat.lib for release builds and libexpatd.lib for debug builds.
The fontconfig build code that searches for expat apparently doesn't know to look for libexpatd.lib (with the "d" suffix) for the debug build configuration. Although libexpatd.lib does exist at build time, the fontconfig build doesn't find it. Instead, it falls back to building version 2.2.6 of expat as a subproject. Version 2.2.6 was before the expat library name change, so that version of expat produces "expat.lib".
On the other hand, the release configuration of the fontconfig build does find libexpat.lib and properly links to that library.
The result of this is that debug and release configurations of fontconfig refer to different versions of the expat library with different library names. This, in turn, leads to deployment issues for applications that are distributed with shared libraries. (For example, I ran into this problem while running an application that had been distributed with the gvsbuild-generated fontconfig-1.dll and libexpatd.dll, but the application failed to launch because expat.dll had not been distributed.)https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/366How to decode SVG fonts in fontconfig?2023-06-12T02:09:46ZJamaika1How to decode SVG fonts in fontconfig?I've created an ffmpeg decoder with librsvg but I can't figure out how to decode fonts in win64.
I have a strange message.
```
Fontconfig error: Cannot load default config file: No such file: (null)
Input #0, svg_pipe, from 'gvariant-byt...I've created an ffmpeg decoder with librsvg but I can't figure out how to decode fonts in win64.
I have a strange message.
```
Fontconfig error: Cannot load default config file: No such file: (null)
Input #0, svg_pipe, from 'gvariant-byte-boundaries.svg':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: svg, bgra, 154x51, 25 fps, 25 tbr, 25 tbn
1304.76 M-V: 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
```https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/365'scalable' vs. 'outline'2023-06-12T10:57:00ZWerner Lemberg'scalable' vs. 'outline'Please document what exactly the properties 'scalable' and 'outline' mean. IMHO it is *not* obvious what they actually do. For example, most users are probably surprised that color bitmap fonts, contrary to B/W bitmap fonts, have the '...Please document what exactly the properties 'scalable' and 'outline' mean. IMHO it is *not* obvious what they actually do. For example, most users are probably surprised that color bitmap fonts, contrary to B/W bitmap fonts, have the 'scalable' property set.https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/364Typo in FcCharSet docs2023-06-08T15:15:43ZJeffrey BrownTypo in FcCharSet docsIn [`doc/fccharset.fncs#L58`](https://gitlab.freedesktop.org/fontconfig/fontconfig/-/blob/main/doc/fccharset.fncs#L58), the line reads "Add a character to a charset", but since the function is `FcCharSetDelChar`, it should be "Remove a c...In [`doc/fccharset.fncs#L58`](https://gitlab.freedesktop.org/fontconfig/fontconfig/-/blob/main/doc/fccharset.fncs#L58), the line reads "Add a character to a charset", but since the function is `FcCharSetDelChar`, it should be "Remove a character from a charset".
Unfortunately I am not able to fork the project and contribute the fix, because I get "personal project creation is not allowed".Akira TAGOHAkira TAGOHhttps://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/363Improve documentation of `acceptfont` and `rejectfont`2023-06-12T13:34:26ZWerner LembergImprove documentation of `acceptfont` and `rejectfont`The documentation should mention that `<acceptfont>` and `<rejectfont>` are only influenced by `<match target="scan">` and not by the targets `"font"` and `"pattern"`, together with an explanation why this is so.The documentation should mention that `<acceptfont>` and `<rejectfont>` are only influenced by `<match target="scan">` and not by the targets `"font"` and `"pattern"`, together with an explanation why this is so.