Compare commits

..

11 Commits

Author SHA1 Message Date
Akira TAGOH 7861a71961 Bump version to 2.14.2 2023-01-27 14:46:22 +09:00
Akira TAGOH c0eaca02ef Adujst indentation between programlisting in fontconfig-user.sgml
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/344
2023-01-27 14:41:06 +09:00
Akira TAGOH bd95bafba0 Add some missing constant names for weight.
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/348
2023-01-25 23:38:40 +09:00
Akira TAGOH e3d9ad280a Report more detailed logs instead of assertion.
Getting backtraces against this assertion isn't useful at all.
Fontconfig isn't capable to report who really have a reference
of caches though, this report may be better than assertion.
So we can try analysis tools then.
And report it only when running with FC_DEBUG=16.
2023-01-25 19:11:57 +09:00
Ondrej Balaz 50c55e95f4 Expand ~ in glob
Allow ~ home directory expansion in acceptfont and rejectfont globs.

Fixes: #347
2023-01-25 14:37:45 +09:00
Akira TAGOH 7663a0db66 Fix a typo in description for HAVE_STDATOMIC_PRIMITIVES
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/346
2023-01-25 14:37:29 +09:00
lilinjie 10b2905e05 fix typo
Signed-off-by: lilinjie <lilinjie@uniontech.com>
2023-01-25 09:18:40 +09:00
Akira TAGOH 8f5e6dc91b src/meson.build: Store correct paths to fontconfig.pc.
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/345
2023-01-25 09:18:08 +09:00
Jean Abou Samra 6c2b709b32 Ignore LC_CTYPE if set to "UTF-8"
LC_CTYPE is set to "UTF-8" on some macOS systems, which is
POSIX-compliant in a strict sense, but breaks the usual assumption
that a locale name has the form "ll_LL.encoding".

https://unix.stackexchange.com/questions/503110/valid-values-for-lc-ctype

Previously, this would cause the warning

  Fontconfig warning: ignoring UTF-8: not a valid region tag

Now, we just skip this variable if set to "UTF-8", since that value
doesn't give any language information, and move on to try LANG.
2023-01-25 09:17:59 +09:00
Akira TAGOH e2e3c10de7 Convert more tabs to spaces in docs
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/343
2023-01-25 09:17:35 +09:00
Akira TAGOH afe6e8101a Convert tabs to spaces
This fixes broken layout on pdf.

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/343
2023-01-25 09:17:17 +09:00
77 changed files with 410 additions and 3118 deletions

View File

@ -1,717 +1,286 @@
# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=yaml:
#######################################
# #
# THIS FILE IS GENERATED, DO NOT EDIT #
# #
#######################################
# To change the gitlab CI, edit .gitlab-ci/ci.template and/or .gitlab-ci/config.yml
# and run ci-fairy generate-template. For details, see
# https://freedesktop.pages.freedesktop.org/ci-templates/ci-fairy.html#templating-gitlab-ci-yml
.templates_sha: &template_sha d11c0dd4c1c9a69c14b4af9b50cdd12b89d24672
include:
# Fedora container builder template
- project: 'freedesktop/ci-templates'
ref: *template_sha
file: '/templates/fedora.yml'
# Freebsd container builder template
- project: 'freedesktop/ci-templates'
ref: *template_sha
file: '/templates/freebsd.yml'
- project: 'freedesktop/ci-templates'
ref: *template_sha
file: '/templates/ci-fairy.yml'
- local: '.gitlab-ci/other.yml'
image: fedora:rawhide
stages:
- sanity check
- prep
- test
- deploy
- container_clean
- build
variables:
FDO_UPSTREAM_REPO: fontconfig/fontconfig
GIT_DEPTH: 1
before_script:
- dnf -y upgrade --disablerepo=rawhide-modular --nogpgcheck fedora-repos fedora-repos-rawhide
- dnf -y upgrade --disablerepo=rawhide-modular
- dnf -y install --disablerepo=rawhide-modular --allowerasing --skip-broken @buildsys-build autoconf automake libtool gettext gettext-devel gperf expat-devel libxml2-devel freetype-devel json-c-devel git docbook-utils docbook-utils-pdf bubblewrap
- dnf -y install --disablerepo=rawhide-modular --allowerasing --skip-broken ninja-build wget python3-pip
- pip install meson
# these tags should be updated each time the list of packages is updated
# changing these will force rebuilding the associated image
# Note: these tags have no meaning and are not tied to a particular
# fontconfig version
FEDORA_TAG: '2023-12-05.1-7c59f403cca5'
FREEBSD_TAG: '2023-12-05.1-b3f6fd9ee634'
FEDORA_EXEC: 'bash .gitlab-ci/fedora-install.sh'
FREEBSD_EXEC: 'bash .gitlab-ci/freebsd-install.sh'
#######################################
# #
# sanity check #
# #
#######################################
fail-if-fork-is-not-public:
stage: sanity check
script:
- |
if [ $CI_PROJECT_VISIBILITY != "public" ]; then
echo "*************************************************************************************"
echo "Project visibility must be set to 'public'."
echo "Change this in $CI_PROJECT_URL/edit under 'Visibility, project features, permissions'"
echo "*************************************************************************************"
exit 1
fi
except:
- main@fontconfig/fontconfig
check-ci-script:
extends:
- .fdo.ci-fairy
stage: sanity check
script:
- ci-fairy generate-template --verify && exit 0 || true
- >
printf "%s\n" \
"Committed gitlab-ci.yml differs from generated gitlab-ci.yml." \
"To change the gitlab CI, edit .gitlab-ci/ci.template and/or .gitlab-ci/config.yml" \
" and run ci-fairy generate-template. For details, see " \
"https://freedesktop.pages.freedesktop.org/ci-templates/ci-fairy.html#templating-gitlab-ci-yml"
- exit 1
#######################################
# #
# containers stage #
# #
#######################################
# Build a container for each distribution + version. The ci-templates
# will re-use the containers if the tag doesn't change.
fedora:rawhide@container-prep:
extends: .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
FDO_DISTRIBUTION_VERSION: 'rawhide'
FDO_DISTRIBUTION_PACKAGES: '@buildsys-build autoconf automake libtool gettext gettext-devel gperf expat-devel libxml2-devel freetype-devel json-c-devel git docbook-utils docbook-utils-pdf bubblewrap ninja-build wget python3-pip mingw64-gettext mingw64-freetype mingw64-libxml2 wine'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
fedora:39@container-prep:
extends: .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
FDO_DISTRIBUTION_VERSION: '39'
FDO_DISTRIBUTION_PACKAGES: '@buildsys-build autoconf automake libtool gettext gettext-devel gperf expat-devel libxml2-devel freetype-devel json-c-devel git docbook-utils docbook-utils-pdf bubblewrap ninja-build wget python3-pip mingw64-gettext mingw64-freetype mingw64-libxml2 wine'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
fedora:38@container-prep:
extends: .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
FDO_DISTRIBUTION_VERSION: '38'
FDO_DISTRIBUTION_PACKAGES: '@buildsys-build autoconf automake libtool gettext gettext-devel gperf expat-devel libxml2-devel freetype-devel json-c-devel git docbook-utils docbook-utils-pdf bubblewrap ninja-build wget python3-pip mingw64-gettext mingw64-freetype mingw64-libxml2 wine'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
freebsd:14.0@container-prep:
extends: .fdo.qemu-build@freebsd
tags:
- kvm
stage: prep
variables:
GIT_STRATEGY: none
FDO_DISTRIBUTION_VERSION: '14.0'
FDO_DISTRIBUTION_PACKAGES: 'gcc autoconf automake libtool gettext gperf expat libxml2 freetype2 json-c git ninja wget python3 py39-pip pkgconf gmake'
FDO_DISTRIBUTION_TAG: $FREEBSD_TAG
FDO_DISTRIBUTION_EXEC: $FREEBSD_EXEC
freebsd:13.2@container-prep:
extends: .fdo.qemu-build@freebsd
tags:
- kvm
stage: prep
variables:
GIT_STRATEGY: none
FDO_DISTRIBUTION_VERSION: '13.2'
FDO_DISTRIBUTION_PACKAGES: 'gcc autoconf automake libtool gettext gperf expat libxml2 freetype2 json-c git ninja wget python3 py39-pip pkgconf gmake'
FDO_DISTRIBUTION_TAG: $FREEBSD_TAG
FDO_DISTRIBUTION_EXEC: $FREEBSD_EXEC
#######################################
# #
# container clean stage #
# #
#######################################
#
# This stage will look for the container images e currently have in
# the registry and will remove any that are not tagged with the provided
# $container_image:$tag
#
# This job only runs for a scheduled pipeline.
#
# Go to your Profile, Settings, Access Tokens
# Create a personal token with `api' scope, copy the value.
# Go to CI/CD, Schedules, schedule a monthly job.
# Define a variable of type File named AUTHFILE. Content is that token
# value.
.container-clean:
stage: container_clean
image: golang:alpine
before_script:
- apk add python3 py-pip git
- pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates
script:
- ci-fairy -v --authfile $AUTHFILE delete-image
--repository $FDO_DISTRIBUTION_NAME/$FDO_DISTRIBUTION_VERSION
--exclude-tag $FDO_DISTRIBUTION_TAG
dependencies: []
allow_failure: true
only:
- schedules
fedora:rawhide@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
FDO_DISTRIBUTION_VERSION: 'rawhide'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
fedora:39@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
FDO_DISTRIBUTION_VERSION: '39'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
fedora:38@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
FDO_DISTRIBUTION_VERSION: '38'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
freebsd:14.0@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/freebsd/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
FDO_DISTRIBUTION_VERSION: '14.0'
FDO_DISTRIBUTION_TAG: $FREEBSD_TAG
freebsd:13.2@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/freebsd/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
FDO_DISTRIBUTION_VERSION: '13.2'
FDO_DISTRIBUTION_TAG: $FREEBSD_TAG
#######################################
# #
# build stage #
# #
#######################################
.check_tainted: &check_tainted |
# make sure the kernel is not tainted
if [[ "$(ssh localhost -p 5555 cat /proc/sys/kernel/tainted)" -gt 0 ]];
then
echo tainted kernel ;
exit 1 ;
fi
.build-in-qemu@template:
tags:
- kvm
script:
- /app/vmctl start || (echo "Error - Failed to start the VM." && exit 1)
- *check_tainted
- export BUILD_ID="fontconfig-$CI_JOB_NAME_$CI_COMMIT_SHA-$CI_JOB_ID"
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
- export BUILDDIR="$(pwd)/build-$BUILD_ID"
- export MAKEFLAGS="-j4"
- |
buildopt=()
for bo in $FC_BUILD_ENABLED; do
buildopt+=(-e $bo)
done
for bo in $FC_BUILD_DISABLED; do
buildopt+=(-d $bo)
done
[ -n "$FC_BUILD_ARCH" ] && buildopt+=(-a $FC_BUILD_ARCH)
[ $FC_BUILD_DISTCHECK -eq 1 ] && buildopt+=(-c)
[ $FC_BUILD_NO_INSTALL -eq 1 ] && buildopt+=(-I)
[ $FC_BUILD_NO_CHECK -eq 1 ] && buildopt+=(-C)
buildopt+=(-s $FC_BUILDSYS)
buildopt+=(-t $FC_BUILD_TYPE)
buildopt+=(-X $FC_XML_BACKEND)
export buildopt
- "scp -r $(pwd) vm:"
- echo "CI_JOB_ID=\"$CI_JOB_ID\"" > fcenv
- echo "CI_JOB_NAME=\"$CI_JOB_NAME\"" >> fcenv
- echo "BUILD_ID=\"$BUILD_ID\"" >> fcenv
- echo "MAKEFLAGS=\"$MAKEFLAGS\"" >> fcenv
- echo "MAKE=\"$MAKE\"" >> fcenv
- "scp fcenv vm:~/$CI_PROJECT_NAME/.gitlab-ci/fcenv"
- /app/vmctl exec "cd $CI_PROJECT_NAME ; bash .gitlab-ci/build.sh ${buildopt[@]}" && touch .success || true
- scp -r vm:$CI_PROJECT_NAME/build $BUILDDIR
- *check_tainted
- /app/vmctl stop
- if [[ ! -e .success ]];
then
exit 1 ;
fi
variables:
FC_BUILDSYS: autotools
FC_XML_BACKEND: expat
FC_BUILD_TYPE: both
FC_BUILD_DISTCHECK: 0
FC_BUILD_NO_INSTALL: 0
FC_BUILD_NO_CHECK: 0
.build@template:
shared-build:
stage: build
script:
- export BUILD_ID="fontconfig-$CI_JOB_NAME_$CI_COMMIT_SHA-$CI_JOB_ID"
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
- export BUILDDIR="$(pwd)/build-$BUILD_ID"
- export MAKEFLAGS="-j4"
- |
buildopt=()
for bo in $FC_BUILD_ENABLED; do
buildopt+=(-e $bo)
done
for bo in $FC_BUILD_DISABLED; do
buildopt+=(-d $bo)
done
[ -n "$FC_BUILD_ARCH" ] && buildopt+=(-a $FC_BUILD_ARCH)
[ $FC_BUILD_DISTCHECK -eq 1 ] && buildopt+=(-c)
[ $FC_BUILD_NO_INSTALL -eq 1 ] && buildopt+=(-I)
[ $FC_BUILD_NO_CHECK -eq 1 ] && buildopt+=(-C)
buildopt+=(-s $FC_BUILDSYS)
buildopt+=(-t $FC_BUILD_TYPE)
buildopt+=(-X $FC_XML_BACKEND)
sh .gitlab-ci/build.sh ${buildopt[@]}
variables:
FC_BUILDSYS: autotools
FC_XML_BACKEND: expat
FC_BUILD_TYPE: both
FC_BUILD_DISTCHECK: 0
FC_BUILD_NO_INSTALL: 0
FC_BUILD_NO_CHECK: 0
.fc_artifacts:
- mkdir "$BUILDDIR" "$PREFIX"
- cd "$BUILDDIR"
- ../autogen.sh --prefix="$PREFIX" --enable-shared --disable-static --enable-libxml2
- make
- make check
- make install
- make distcheck
artifacts:
name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
when: always
expire_in: 5 days
paths:
- build*/fc-build.log
- build*/fontconfig-*.tar.*
- build*/test/*log
- build*/fontconfig*/_build
- build*/meson-logs/*
#######################################
# #
# test stage #
# #
#######################################
t_fedora:rawhide:autotools shared expat:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: 'rawhide'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
needs:
- 'fedora:rawhide@container-prep'
t_fedora:rawhide:autotools shared libxml2:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: 'rawhide'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: libxml2
FC_BUILD_DISTCHECK: 1
needs:
- 'fedora:rawhide@container-prep'
t_fedora:rawhide:meson shared expat:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: 'rawhide'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: meson
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
needs:
- 'fedora:rawhide@container-prep'
t_fedora:rawhide:autotools static expat:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: 'rawhide'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: static
FC_XML_BACKEND: expat
needs:
- 'fedora:rawhide@container-prep'
t_fedora:rawhide:autotools static libxml2:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: 'rawhide'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: static
FC_XML_BACKEND: libxml2
needs:
- 'fedora:rawhide@container-prep'
t_fedora:rawhide:meson static expat:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: 'rawhide'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: meson
FC_BUILD_TYPE: static
FC_XML_BACKEND: expat
needs:
- 'fedora:rawhide@container-prep'
t_fedora:rawhide:mingw autotools static libxml2:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: 'rawhide'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: static
FC_XML_BACKEND: libxml2
FC_BUILD_PLATFORM: mingw
FC_BUILD_ARCH: x86_64-mingw32
needs:
- 'fedora:rawhide@container-prep'
t_fedora:rawhide:mingw meson static expat:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: 'rawhide'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: meson
FC_BUILD_TYPE: static
FC_XML_BACKEND: expat
FC_BUILD_PLATFORM: mingw
FC_BUILD_ARCH: linux-mingw-w64-64bit
FC_BUILD_NO_INSTALL: 1
needs:
- 'fedora:rawhide@container-prep'
t_fedora:39:autotools shared expat:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: '39'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
needs:
- 'fedora:39@container-prep'
t_fedora:39:autotools shared libxml2:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: '39'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: libxml2
FC_BUILD_DISTCHECK: 1
needs:
- 'fedora:39@container-prep'
t_fedora:39:meson shared expat:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: '39'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: meson
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
needs:
- 'fedora:39@container-prep'
t_fedora:38:autotools shared expat:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: '38'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
needs:
- 'fedora:38@container-prep'
t_fedora:38:autotools shared libxml2:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: '38'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: libxml2
FC_BUILD_DISTCHECK: 1
needs:
- 'fedora:38@container-prep'
t_fedora:38:meson shared expat:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .fc_artifacts
variables:
FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: '38'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FC_BUILDSYS: meson
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
needs:
- 'fedora:38@container-prep'
t_freebsd:14.0:autotools shared expat:
extends:
- .build-in-qemu@template
- .fdo.distribution-image@freebsd
- .fc_artifacts
variables:
FC_DISTRO_NAME: freebsd
FDO_DISTRIBUTION_VERSION: '14.0'
FDO_DISTRIBUTION_TAG: $FREEBSD_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
MAKE: gmake
FC_BUILD_NO_CHECK: 1
needs:
- 'freebsd:14.0@container-prep'
t_freebsd:14.0:autotools shared libxml2:
extends:
- .build-in-qemu@template
- .fdo.distribution-image@freebsd
- .fc_artifacts
variables:
FC_DISTRO_NAME: freebsd
FDO_DISTRIBUTION_VERSION: '14.0'
FDO_DISTRIBUTION_TAG: $FREEBSD_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: libxml2
MAKE: gmake
FC_BUILD_NO_CHECK: 1
needs:
- 'freebsd:14.0@container-prep'
t_freebsd:14.0:meson shared expat:
extends:
- .build-in-qemu@template
- .fdo.distribution-image@freebsd
- .fc_artifacts
variables:
FC_DISTRO_NAME: freebsd
FDO_DISTRIBUTION_VERSION: '14.0'
FDO_DISTRIBUTION_TAG: $FREEBSD_TAG
FC_BUILDSYS: meson
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
FC_BUILD_NO_CHECK: 1
needs:
- 'freebsd:14.0@container-prep'
t_freebsd:13.2:autotools shared expat:
extends:
- .build-in-qemu@template
- .fdo.distribution-image@freebsd
- .fc_artifacts
variables:
FC_DISTRO_NAME: freebsd
FDO_DISTRIBUTION_VERSION: '13.2'
FDO_DISTRIBUTION_TAG: $FREEBSD_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
MAKE: gmake
FC_BUILD_NO_CHECK: 1
needs:
- 'freebsd:13.2@container-prep'
t_freebsd:13.2:autotools shared libxml2:
extends:
- .build-in-qemu@template
- .fdo.distribution-image@freebsd
- .fc_artifacts
variables:
FC_DISTRO_NAME: freebsd
FDO_DISTRIBUTION_VERSION: '13.2'
FDO_DISTRIBUTION_TAG: $FREEBSD_TAG
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: libxml2
MAKE: gmake
FC_BUILD_NO_CHECK: 1
needs:
- 'freebsd:13.2@container-prep'
t_freebsd:13.2:meson shared expat:
extends:
- .build-in-qemu@template
- .fdo.distribution-image@freebsd
- .fc_artifacts
variables:
FC_DISTRO_NAME: freebsd
FDO_DISTRIBUTION_VERSION: '13.2'
FDO_DISTRIBUTION_TAG: $FREEBSD_TAG
FC_BUILDSYS: meson
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
FC_BUILD_NO_CHECK: 1
needs:
- 'freebsd:13.2@container-prep'
#######################################
# #
# deploy stage #
# #
#######################################
check-merge-request:
extends:
- .fdo.ci-fairy
stage: deploy
- build-*/fontconfig-*.tar.*
- build-*/fontconfig*/_build/sub/*.log
- build-*/fontconfig*/_build/sub/test/*.log
- build-*/fontconfig*/_build/sub/test/*.trs
- build-*/fontconfig*/_build/sub/test/out*
- build-*/*.log
- build-*/test/*.log
- build-*/test/*.trs
- build-*/test/out*
- prefix-*
static-build:
stage: build
script:
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
- export BUILD_ID="fontconfig-$CI_JOB_NAME_$CI_COMMIT_SHA-$CI_JOB_ID"
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
- export BUILDDIR="$(pwd)/build-$BUILD_ID"
- export MAKEFLAGS="-j4"
- mkdir "$BUILDDIR"
- cd "$BUILDDIR"
- ../autogen.sh --prefix="$PREFIX" --disable-shared --enable-static --enable-libxml2
- make
- make check
artifacts:
when: on_failure
reports:
junit: results.xml
name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
when: always
paths:
- build-*/*.log
- build-*/test/*.log
- build-*/test/*.trs
- build-*/test/out*
mingw-build:
image: fedora:35
stage: build
before_script:
- dnf -y upgrade --disablerepo=rawhide-modular
- dnf -y install --disablerepo=rawhide-modular --allowerasing --skip-broken @buildsys-build autoconf automake libtool gettext gettext-devel gperf libxml2-devel freetype-devel json-c-devel git docbook-utils docbook-utils-pdf wget
- dnf -y install --disablerepo=rawhide-modular --allowerasing --skip-broken mingw64-gettext mingw64-freetype mingw64-libxml2 wine
script:
- export BUILD_ID="fontconfig-$CI_JOB_NAME_$CI_COMMIT_SHA-$CI_JOB_ID"
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
- export BUILDDIR="$(pwd)/build-$BUILD_ID"
- export MAKEFLAGS="-j4"
- mkdir "$BUILDDIR"
- cd "$BUILDDIR"
- eval `rpm --eval %{mingw64_env}`
- ../autogen.sh --prefix="$PREFIX" --host=x86_64-mingw32 --disable-shared --enable-static --enable-libxml2
- make
- make check
artifacts:
name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
when: always
paths:
- build-*/*.log
- build-*/test/*.log
- build-*/test/*.trs
- build-*/test/out*
meson-shared-build:
image: fedora:latest
stage: build
script:
- export BUILD_ID="fontconfig-$CI_JOB_NAME_$CI_COMMIT_SHA-$CI_JOB_ID"
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
- export BUILDDIR="$(pwd)/build-$BUILD_ID"
- export MAKEFLAGS="-j4"
- meson --prefix="$PREFIX" --default-library=shared "$BUILDDIR"
- ninja -C "$BUILDDIR"
- ninja -C "$BUILDDIR" test
- ninja -C "$BUILDDIR" install
artifacts:
name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
when: always
paths:
- build-*/meson-logs/*txt
- prefix-*
meson-static-build:
image: fedora:latest
stage: build
script:
- export BUILD_ID="fontconfig-$CI_JOB_NAME_$CI_COMMIT_SHA-$CI_JOB_ID"
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
- export BUILDDIR="$(pwd)/build-$BUILD_ID"
- export MAKEFLAGS="-j4"
- meson --prefix="$PREFIX" --default-library=static "$BUILDDIR"
- ninja -C "$BUILDDIR"
- ninja -C "$BUILDDIR" test
- ninja -C "$BUILDDIR" install
artifacts:
name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
when: always
paths:
- build-*/meson-logs/*txt
- prefix-*
meson-mingw-w64-build:
image: fedora:latest
stage: build
# allow failure until https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/263 is resolved
allow_failure: true
script:
- export BUILD_ID="fontconfig-$CI_JOB_NAME_$CI_COMMIT_SHA-$CI_JOB_ID"
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
- export BUILDDIR="$(pwd)/build-$BUILD_ID"
- eval `rpm --eval %{mingw64_env}`
- meson --prefix="$PREFIX" "$BUILDDIR" --cross-file .gitlab-ci/linux-mingw-w64-64bit.txt
- ninja -C "$BUILDDIR"
- ninja -C "$BUILDDIR" test
# install doesn't work, fccache problems, but autotools ci doesn't do that either
# - ninja -C "$BUILDDIR" install
artifacts:
name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
when: always
paths:
- build-*/meson-logs/*txt
- prefix-*
# FIXME: fontconfig should probably get its own image
# In the meantime, the latest GStreamer image tag can be found here:
# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/.gitlab-image-tags.yml#L10
.build meson windows:
image: 'registry.freedesktop.org/gstreamer/gstreamer/amd64/windows:2022-09-23.0-main'
stage: 'build'
tags:
- 'docker'
- 'windows'
- '2022'
variables:
# Make sure any failure in PowerShell scripts is fatal
ErrorActionPreference: 'Stop'
WarningPreference: 'Stop'
# Uncomment the following key if need to pass custom args, as well with the
# $env:MESON_ARGS line in the `script:` blocks
# MESON_ARGS: >-
# -Dfoo=enabled
# -Dbar=disabled
before_script:
# Make sure meson is up to date, so we don't need to rebuild the image with each release
- pip3 install -U meson certifi
script:
# For some reason, options are separated by newline instead of space, so we
# have to replace them first.
# - $env:MESON_ARGS = $env:MESON_ARGS.replace("`n"," ")
# Gitlab executes PowerShell in docker, but VsDevCmd.bat is a batch script.
# Environment variables substitutions is done by PowerShell before calling
# cmd.exe, that's why we use $env:FOO instead of %FOO%
- cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=$env:ARCH &&
SET CERT_PATH=$(python -m certifi) &&
SET SSL_CERT_FILE=$(python -m certifi) &&
SET REQUESTS_CA_BUNDLE=$(python -m certifi) &&
meson build $env:MESON_ARGS &&
ninja -C build &&
ninja -C build test"
artifacts:
name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
when: always
paths:
- build-*/meson-logs/*txt
- prefix-*
meson vs2019 amd64:
extends: '.build meson windows'
variables:
ARCH: 'amd64'
meson vs2019 x86:
extends: '.build meson windows'
variables:
ARCH: 'x86'
meson macos:
stage: 'build'
tags:
- gst-macos-11.1
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}"
expire_in: '5 days'
when: 'always'
paths:
- "build/meson-logs/*txt"
before_script:
- pip3 install --upgrade pip
# Make sure meson is up to date
- pip3 install -U meson
# Need to install certificates for python
- pip3 install --upgrade certifi
# Anther way t install certificates
- open /Applications/Python\ 3.8/Install\ Certificates.command
# Get ninja
- curl -L -o ninja-mac.zip https://github.com/ninja-build/ninja/releases/download/v1.10.0/ninja-mac.zip
- unzip ninja-mac.zip
- sudo cp ninja /usr/local/bin
script:
- CERT_PATH=$(python3 -m certifi) && export SSL_CERT_FILE=${CERT_PATH} && export REQUESTS_CA_BUNDLE=${CERT_PATH} && meson build
- ninja -C build
- ninja -C build test
# msys infrastructure is a bit broken, disable for now
meson msys2:
extends: '.build meson windows'
when: 'manual'
allow_failure: true
script:
# For some reason, options are separated by newline instead of space, so we
# have to replace them first.
# - $env:MESON_ARGS = $env:MESON_ARGS.replace("`n"," ")
- $env:PATH += ";C:\msys64\usr\bin;C:\msys64\mingw64/bin;C:\msys64\mingw32/bin"
# XXX: Copied from https://gitlab.freedesktop.org/gstreamer/gst-ci/blob/master/gitlab/ci_template.yml#L487
# For some reason docker build hangs if this is included in the image, needs more troubleshooting
- C:\msys64\usr\bin\bash -c "pacman-key --init && pacman-key --populate msys2 && pacman-key --refresh-keys || true"
- C:\msys64\usr\bin\bash -c "pacman -Syuu --noconfirm"
- C:\msys64\usr\bin\bash -c "pacman -Sy --noconfirm --needed mingw-w64-x86_64-toolchain ninja"
- C:\msys64\usr\bin\bash -c "meson build $env:MESON_ARGS &&
ninja -C build &&
ninja -C build test"
meson android arm64 fedora:
# See https://gitlab.freedesktop.org/gstreamer/gst-ci/container_registry/164 for current images
image: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/android-fedora:2020-10-22.0-master'
stage: 'build'
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}"
expire_in: '5 days'
when: 'always'
paths:
- "build/meson-logs/*.txt"
before_script:
- dnf install -y python3-pip gcc ninja-build gperf
- pip3 install --user meson
script:
- export PATH="$HOME/.local/bin:$PATH"
- |
cat > android-cross-file.txt <<EOF
[constants]
ndk_path = '/android/ndk'
toolchain = ndk_path + '/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android'
api = '28'
[host_machine]
system = 'android'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'
[properties]
sys_root = ndk_path + '/sysroot'
c_args = ['-Wno-pointer-bool-conversion']
c_link_args = ['-fuse-ld=gold']
cpp_link_args = ['-fuse-ld=gold']
[binaries]
c = toolchain + api + '-clang'
cpp = toolchain + api + '-clang++'
ar = toolchain + '-ar'
strip = toolchain + '-strip'
EOF
- meson setup --werror --cross-file android-cross-file.txt build
- meson compile --verbose -C build

View File

@ -1 +0,0 @@
/*~

View File

@ -1,144 +0,0 @@
#! /bin/bash
set -ex
set -o pipefail
cidir=$(dirname $0)
[ -f ${cidir}/fcenv ] && . ${cidir}/fcenv
case "$OSTYPE" in
msys) MyPWD=$(pwd -W) ;;
*BSD) PATH=$PATH:/usr/local/bin ;&
*) MyPWD=$(pwd) ;;
esac
enable=()
disable=()
distcheck=0
enable_install=1
disable_check=0
cross=0
buildsys="autotools"
type="both"
arch=""
buildopt=()
SRCDIR=$MyPWD
export MAKE=${MAKE:-make}
export BUILD_ID=${BUILD_ID:-fontconfig-$$}
export PREFIX=${PREFIX:-$MyPWD/prefix}
export BUILDDIR=${BUILDDIR:-$MyPWD/build}
while getopts a:cCe:d:hIs:t:X: OPT
do
case $OPT in
'a') arch=$OPTARG ;;
'c') distcheck=1 ;;
'C') disable_check=1 ;;
'e') enable+=($OPTARG) ;;
'd') disable+=($OPTARG) ;;
'I') enable_install=0 ;;
's') buildsys=$OPTARG ;;
't') type=$OPTARG ;;
'X') backend=$OPTARG ;;
'h')
echo "Usage: $0 [-a ARCH] [-c] [-e OPT] [-d OPT] [-I] [-s BUILDSYS] [-t BUILDTYPE] [-X XMLBACKEND]"
exit 1
;;
esac
done
case x"$FC_BUILD_PLATFORM" in
'xmingw') cross=1 ;;
*) cross=0 ;;
esac
env
r=0
if [ x"$buildsys" == "xautotools" ]; then
for i in "${enable[@]}"; do
buildopt+=(--enable-$i)
done
for i in "${disable[@]}"; do
buildopt+=(--disable-$i)
done
case x"$backend" in
'xexpat')
buildopt+=(--disable-libxml2)
;;
'xlibxml2')
buildopt+=(--enable-libxml2)
;;
esac
case x"$type" in
'xshared')
buildopt+=(--enable-shared)
buildopt+=(--disable-static)
;;
'xstatic')
buildopt+=(--disable-shared)
buildopt+=(--enable-static)
;;
'both')
buildopt+=(--enable-shared)
buildopt+=(--enable-static)
;;
esac
if [ $cross -eq 1 -a -z "$arch" ]; then
buildopt+=(--host=$arch)
if [ -f .gitlab-ci/${FC_DISTRO_NAME}-cross.sh ]; then
echo "No ${FC_DISTRO_NAME}-cross.sh available"
exit 1
fi
. .gitlab-ci/${FC_DISTRO_NAME}-cross.sh
fi
rm -rf "$BUILDDIR" "$PREFIX" || :
mkdir "$BUILDDIR" "$PREFIX"
cd "$BUILDDIR"
../autogen.sh --prefix="$PREFIX" ${buildopt[*]} 2>&1 | tee /tmp/fc-build.log || r=$?
$MAKE V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
if [ $disable_check -eq 0 ]; then
$MAKE check V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
fi
if [ $enable_install -eq 1 ]; then
$MAKE install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
fi
if [ $distcheck -eq 1 ]; then
$MAKE distcheck V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
fi
elif [ x"$buildsys" == "xmeson" ]; then
pip install meson
for i in "${enable[@]}"; do
buildopt+=(-D$i=true)
done
for i in "${disable[@]}"; do
buildopt+=(-D$i=false)
done
case x"$backend" in
'xexpat')
;;
'xlibxml2')
;;
esac
if [ $cross -eq 1 -a -z "$arch" ]; then
buildopt+=(--cross-file)
buildopt+=(.gitlab-ci/$arch.txt)
if [ -f .gitlab-ci/cross-$FC_DISTRO_NAME.sh ]; then
echo "No cross-$FC_DISTRO_NAME.sh available"
exit 1
fi
. .gitlab-ci/cross-$FC_DISTRO_NAME.sh
fi
buildopt+=(--default-library=$type)
meson setup --prefix="$PREFIX" ${buildopt[*]} "$BUILDDIR" 2>&1 | tee /tmp/fc-build.log || r=$?
meson compile -v -C "$BUILDDIR" 2>&1 | tee -a /tmp/fc-build.log || r=$?
if [ $disable_check -eq 0 ]; then
meson test -v -C "$BUILDDIR" 2>&1 | tee -a /tmp/fc-build.log || r=$?
fi
if [ $enable_install -eq 1 ]; then
meson install -C "$BUILDDIR" 2>&1 | tee -a /tmp/fc-build.log || r=$?
fi
if [ $distcheck -eq 1 ]; then
meson dist -C "$BUILDDIR" 2>&1 | tee -a /tmp/fc-build.log || r=$?
fi
fi
mv /tmp/fc-build.log . || :
exit $r

View File

@ -1,331 +0,0 @@
# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=yaml:
{# You're looking at the template here, so you can ignore the below
warning. This is the right file to edit #}
#######################################
# #
# THIS FILE IS GENERATED, DO NOT EDIT #
# #
#######################################
# To change the gitlab CI, edit .gitlab-ci/ci.template and/or .gitlab-ci/config.yml
# and run ci-fairy generate-template. For details, see
# https://freedesktop.pages.freedesktop.org/ci-templates/ci-fairy.html#templating-gitlab-ci-yml
.templates_sha: &template_sha d11c0dd4c1c9a69c14b4af9b50cdd12b89d24672
include:
{% for distro in distributions|sort(attribute="name") %}
# {{ distro.name.capitalize() }} container builder template
- project: 'freedesktop/ci-templates'
ref: *template_sha
file: '/templates/{{distro.name}}.yml'
{% endfor %}
- project: 'freedesktop/ci-templates'
ref: *template_sha
file: '/templates/ci-fairy.yml'
- local: '.gitlab-ci/other.yml'
stages:
- sanity check
- prep
- test
- deploy
- container_clean
variables:
FDO_UPSTREAM_REPO: fontconfig/fontconfig
GIT_DEPTH: 1
# these tags should be updated each time the list of packages is updated
# changing these will force rebuilding the associated image
# Note: these tags have no meaning and are not tied to a particular
# fontconfig version
{% for distro in distributions %}
{{"%-15s"| format(distro.name.upper() + '_TAG:')}}'{{distro.tag}}-{{
(ci_fairy.hashfiles('.gitlab-ci/config.yml',
'.gitlab-ci/' + distro.name + '-install.sh'))[0:12]
}}'
{% endfor %}
{% for distro in distributions %}
{{"%-15s"| format(distro.name.upper() + '_EXEC:')}}'bash .gitlab-ci/{{distro.name}}-install.sh'
{% endfor %}
#######################################
# #
# sanity check #
# #
#######################################
fail-if-fork-is-not-public:
stage: sanity check
script:
- |
if [ $CI_PROJECT_VISIBILITY != "public" ]; then
echo "*************************************************************************************"
echo "Project visibility must be set to 'public'."
echo "Change this in $CI_PROJECT_URL/edit under 'Visibility, project features, permissions'"
echo "*************************************************************************************"
exit 1
fi
except:
- main@fontconfig/fontconfig
check-ci-script:
extends:
- .fdo.ci-fairy
stage: sanity check
script:
- ci-fairy generate-template --verify && exit 0 || true
- >
printf "%s\n" \
"Committed gitlab-ci.yml differs from generated gitlab-ci.yml." \
"To change the gitlab CI, edit .gitlab-ci/ci.template and/or .gitlab-ci/config.yml" \
" and run ci-fairy generate-template. For details, see " \
"https://freedesktop.pages.freedesktop.org/ci-templates/ci-fairy.html#templating-gitlab-ci-yml"
- exit 1
#######################################
# #
# containers stage #
# #
#######################################
# Build a container for each distribution + version. The ci-templates
# will re-use the containers if the tag doesn't change.
{% for distro in distributions %}
{% for version in distro.versions %}
{{distro.name}}:{{version}}@container-prep:
{% if distro.qemu_based %}
extends: .fdo.qemu-build@{{distro.name}}
{% else %}
extends: .fdo.container-build@{{distro.name}}
{% endif %}
{% if distro.qemu_based %}
tags:
- kvm
{% endif %}
stage: prep
variables:
GIT_STRATEGY: none
FDO_DISTRIBUTION_VERSION: '{{version}}'
FDO_DISTRIBUTION_PACKAGES: '{{' '.join(packages[distro.name].needed)}}'
FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG
FDO_DISTRIBUTION_EXEC: ${{distro.name.upper()}}_EXEC
{% endfor %}
{% endfor %}
#######################################
# #
# container clean stage #
# #
#######################################
#
# This stage will look for the container images e currently have in
# the registry and will remove any that are not tagged with the provided
# $container_image:$tag
#
# This job only runs for a scheduled pipeline.
#
# Go to your Profile, Settings, Access Tokens
# Create a personal token with `api' scope, copy the value.
# Go to CI/CD, Schedules, schedule a monthly job.
# Define a variable of type File named AUTHFILE. Content is that token
# value.
.container-clean:
stage: container_clean
image: golang:alpine
before_script:
- apk add python3 py-pip git
- pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates
script:
- ci-fairy -v --authfile $AUTHFILE delete-image
--repository $FDO_DISTRIBUTION_NAME/$FDO_DISTRIBUTION_VERSION
--exclude-tag $FDO_DISTRIBUTION_TAG
dependencies: []
allow_failure: true
only:
- schedules
{% for distro in distributions %}
{% for version in distro.versions %}
{{distro.name}}:{{version}}@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/{{distro.name}}/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
FDO_DISTRIBUTION_VERSION: '{{version}}'
FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG
{% endfor %}
{% endfor %}
#######################################
# #
# build stage #
# #
#######################################
.check_tainted: &check_tainted |
# make sure the kernel is not tainted
if [[ "$(ssh localhost -p 5555 cat /proc/sys/kernel/tainted)" -gt 0 ]];
then
echo tainted kernel ;
exit 1 ;
fi
.build-in-qemu@template:
tags:
- kvm
script:
- /app/vmctl start || (echo "Error - Failed to start the VM." && exit 1)
- *check_tainted
- export BUILD_ID="fontconfig-$CI_JOB_NAME_$CI_COMMIT_SHA-$CI_JOB_ID"
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
- export BUILDDIR="$(pwd)/build-$BUILD_ID"
- export MAKEFLAGS="-j4"
- |
buildopt=()
for bo in $FC_BUILD_ENABLED; do
buildopt+=(-e $bo)
done
for bo in $FC_BUILD_DISABLED; do
buildopt+=(-d $bo)
done
[ -n "$FC_BUILD_ARCH" ] && buildopt+=(-a $FC_BUILD_ARCH)
[ $FC_BUILD_DISTCHECK -eq 1 ] && buildopt+=(-c)
[ $FC_BUILD_NO_INSTALL -eq 1 ] && buildopt+=(-I)
[ $FC_BUILD_NO_CHECK -eq 1 ] && buildopt+=(-C)
buildopt+=(-s $FC_BUILDSYS)
buildopt+=(-t $FC_BUILD_TYPE)
buildopt+=(-X $FC_XML_BACKEND)
export buildopt
- "scp -r $(pwd) vm:"
- echo "CI_JOB_ID=\"$CI_JOB_ID\"" > fcenv
- echo "CI_JOB_NAME=\"$CI_JOB_NAME\"" >> fcenv
- echo "BUILD_ID=\"$BUILD_ID\"" >> fcenv
- echo "MAKEFLAGS=\"$MAKEFLAGS\"" >> fcenv
- echo "MAKE=\"$MAKE\"" >> fcenv
- "scp fcenv vm:~/$CI_PROJECT_NAME/.gitlab-ci/fcenv"
- /app/vmctl exec "cd $CI_PROJECT_NAME ; bash .gitlab-ci/build.sh ${buildopt[@]}" && touch .success || true
- scp -r vm:$CI_PROJECT_NAME/build $BUILDDIR
- *check_tainted
- /app/vmctl stop
- if [[ ! -e .success ]];
then
exit 1 ;
fi
variables:
FC_BUILDSYS: autotools
FC_XML_BACKEND: expat
FC_BUILD_TYPE: both
FC_BUILD_DISTCHECK: 0
FC_BUILD_NO_INSTALL: 0
FC_BUILD_NO_CHECK: 0
.build@template:
script:
- export BUILD_ID="fontconfig-$CI_JOB_NAME_$CI_COMMIT_SHA-$CI_JOB_ID"
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
- export BUILDDIR="$(pwd)/build-$BUILD_ID"
- export MAKEFLAGS="-j4"
- |
buildopt=()
for bo in $FC_BUILD_ENABLED; do
buildopt+=(-e $bo)
done
for bo in $FC_BUILD_DISABLED; do
buildopt+=(-d $bo)
done
[ -n "$FC_BUILD_ARCH" ] && buildopt+=(-a $FC_BUILD_ARCH)
[ $FC_BUILD_DISTCHECK -eq 1 ] && buildopt+=(-c)
[ $FC_BUILD_NO_INSTALL -eq 1 ] && buildopt+=(-I)
[ $FC_BUILD_NO_CHECK -eq 1 ] && buildopt+=(-C)
buildopt+=(-s $FC_BUILDSYS)
buildopt+=(-t $FC_BUILD_TYPE)
buildopt+=(-X $FC_XML_BACKEND)
sh .gitlab-ci/build.sh ${buildopt[@]}
variables:
FC_BUILDSYS: autotools
FC_XML_BACKEND: expat
FC_BUILD_TYPE: both
FC_BUILD_DISTCHECK: 0
FC_BUILD_NO_INSTALL: 0
FC_BUILD_NO_CHECK: 0
.fc_artifacts:
artifacts:
name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
when: always
expire_in: 5 days
paths:
- build*/fc-build.log
- build*/fontconfig-*.tar.*
- build*/test/*log
- build*/fontconfig*/_build
- build*/meson-logs/*
#######################################
# #
# test stage #
# #
#######################################
{% for distro in distributions %}
{% for version in distro.versions %}
{% for build in distro.builds %}
{% if not 'build_only' in build or build.build_only == version %}
t_{{distro.name}}:{{version}}:{{build.name}}:
extends:
{% if distro.qemu_based %}
- .build-in-qemu@template
{% else %}
- .build@template
{% endif %}
- .fdo.distribution-image@{{distro.name}}
- .fc_artifacts
variables:
FC_DISTRO_NAME: {{distro.name}}
FDO_DISTRIBUTION_VERSION: '{{version}}'
FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG
{# Where we have extra_variables defined, add them to the list #}
{% if build.variables is defined %}
{% for key, value in build.variables.items() %}
{{key}}: {{value}}
{% endfor %}
{% endif %}
needs:
- '{{distro.name}}:{{version}}@container-prep'
{% endif %}
{% endfor %}
{% endfor %}
{% endfor %}
#######################################
# #
# deploy stage #
# #
#######################################
check-merge-request:
extends:
- .fdo.ci-fairy
stage: deploy
script:
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
artifacts:
when: on_failure
reports:
junit: results.xml
allow_failure: true

View File

@ -1,140 +0,0 @@
.default_tag: &default_tag "2023-12-05.1"
distributions:
- name: fedora
tag: *default_tag
base_type: fedora
qemu_based: false
versions:
- "rawhide"
- "39"
- "38"
builds:
- name: "autotools shared expat"
variables:
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
- name: "autotools shared libxml2"
variables:
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: libxml2
FC_BUILD_DISTCHECK: 1
- name: "meson shared expat"
variables:
FC_BUILDSYS: meson
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
- name: "autotools static expat"
build_only: "rawhide"
variables:
FC_BUILDSYS: autotools
FC_BUILD_TYPE: static
FC_XML_BACKEND: expat
- name: "autotools static libxml2"
build_only: "rawhide"
variables:
FC_BUILDSYS: autotools
FC_BUILD_TYPE: static
FC_XML_BACKEND: libxml2
- name: "meson static expat"
build_only: "rawhide"
variables:
FC_BUILDSYS: meson
FC_BUILD_TYPE: static
FC_XML_BACKEND: expat
- name: "mingw autotools static libxml2"
build_only: "rawhide"
variables:
FC_BUILDSYS: autotools
FC_BUILD_TYPE: static
FC_XML_BACKEND: libxml2
FC_BUILD_PLATFORM: mingw
FC_BUILD_ARCH: x86_64-mingw32
- name: "mingw meson static expat"
build_only: "rawhide"
variables:
FC_BUILDSYS: meson
FC_BUILD_TYPE: static
FC_XML_BACKEND: expat
FC_BUILD_PLATFORM: mingw
FC_BUILD_ARCH: linux-mingw-w64-64bit
FC_BUILD_NO_INSTALL: 1
- name: freebsd
tag: *default_tag
base_type: freebsd
qemu_based: true
versions:
- "14.0"
- "13.2"
builds:
- name: "autotools shared expat"
variables:
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
MAKE: gmake
FC_BUILD_NO_CHECK: 1 # FIXME: There is GNU-specific parameter issue in touch command.
- name: "autotools shared libxml2"
variables:
FC_BUILDSYS: autotools
FC_BUILD_TYPE: shared
FC_XML_BACKEND: libxml2
MAKE: gmake
FC_BUILD_NO_CHECK: 1
- name: "meson shared expat"
variables:
FC_BUILDSYS: meson
FC_BUILD_TYPE: shared
FC_XML_BACKEND: expat
FC_BUILD_NO_CHECK: 1
packages:
fedora:
needed:
[
"@buildsys-build",
"autoconf",
"automake",
"libtool",
"gettext",
"gettext-devel",
"gperf",
"expat-devel",
"libxml2-devel",
"freetype-devel",
"json-c-devel",
"git",
"docbook-utils",
"docbook-utils-pdf",
"bubblewrap",
"ninja-build",
"wget",
"python3-pip",
"mingw64-gettext",
"mingw64-freetype",
"mingw64-libxml2",
"wine",
]
freebsd:
needed:
[
"gcc",
"autoconf",
"automake",
"libtool",
"gettext",
"gperf",
"expat",
"libxml2",
"freetype2",
"json-c",
"git",
"ninja",
"wget",
"python3",
"py39-pip",
"pkgconf",
"gmake",
]

View File

@ -1,3 +0,0 @@
#! /bin/sh
eval `rpm --eval %{mingw64_env}`

View File

@ -1,3 +0,0 @@
#! /bin/bash
set -ex

View File

@ -1,4 +0,0 @@
#! /bin/sh
echo "** Cross build not supported."
exit 1

View File

@ -1,3 +0,0 @@
#! /bin/bash
set -ex

View File

@ -1,142 +0,0 @@
# FIXME: fontconfig should probably get its own image
# In the meantime, the latest GStreamer image tag can be found here:
# https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/.gitlab-image-tags.yml#L10
.build meson windows:
image: "registry.freedesktop.org/gstreamer/gstreamer/amd64/windows:2022-09-23.0-main"
stage: "test"
tags:
- "docker"
- "windows"
- "2022"
variables:
# Make sure any failure in PowerShell scripts is fatal
ErrorActionPreference: "Stop"
WarningPreference: "Stop"
# Uncomment the following key if need to pass custom args, as well with the
# $env:MESON_ARGS line in the `script:` blocks
# MESON_ARGS: >-
# -Dfoo=enabled
# -Dbar=disabled
before_script:
# Make sure meson is up to date, so we don't need to rebuild the image with each release
- pip3 install -U meson certifi
script:
# For some reason, options are separated by newline instead of space, so we
# have to replace them first.
# - $env:MESON_ARGS = $env:MESON_ARGS.replace("`n"," ")
# Gitlab executes PowerShell in docker, but VsDevCmd.bat is a batch script.
# Environment variables substitutions is done by PowerShell before calling
# cmd.exe, that's why we use $env:FOO instead of %FOO%
- cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=$env:ARCH &&
SET CERT_PATH=$(python -m certifi) &&
SET SSL_CERT_FILE=$(python -m certifi) &&
SET REQUESTS_CA_BUNDLE=$(python -m certifi) &&
meson build $env:MESON_ARGS &&
ninja -C build &&
ninja -C build test"
artifacts:
name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
when: always
paths:
- build-*/meson-logs/*txt
- prefix-*
meson vs2019 amd64:
extends: ".build meson windows"
variables:
ARCH: "amd64"
meson vs2019 x86:
extends: ".build meson windows"
variables:
ARCH: "x86"
meson macos:
stage: "test"
tags:
- gst-macos-11.1
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}"
expire_in: "5 days"
when: "always"
paths:
- "build/meson-logs/*txt"
before_script:
- pip3 install --upgrade pip
# Make sure meson is up to date
- pip3 install -U meson
# Need to install certificates for python
- pip3 install --upgrade certifi
# Anther way t install certificates
- open /Applications/Python\ 3.8/Install\ Certificates.command
# Get ninja
- curl -L -o ninja-mac.zip https://github.com/ninja-build/ninja/releases/download/v1.10.0/ninja-mac.zip
- unzip ninja-mac.zip
- sudo cp ninja /usr/local/bin
script:
- CERT_PATH=$(python3 -m certifi) && export SSL_CERT_FILE=${CERT_PATH} && export REQUESTS_CA_BUNDLE=${CERT_PATH} && meson build
- ninja -C build
- ninja -C build test
# msys infrastructure is a bit broken, disable for now
meson msys2:
extends: ".build meson windows"
when: "manual"
allow_failure: true
script:
# For some reason, options are separated by newline instead of space, so we
# have to replace them first.
# - $env:MESON_ARGS = $env:MESON_ARGS.replace("`n"," ")
- $env:PATH += ";C:\msys64\usr\bin;C:\msys64\mingw64/bin;C:\msys64\mingw32/bin"
# XXX: Copied from https://gitlab.freedesktop.org/gstreamer/gst-ci/blob/master/gitlab/ci_template.yml#L487
# For some reason docker build hangs if this is included in the image, needs more troubleshooting
- C:\msys64\usr\bin\bash -c "pacman-key --init && pacman-key --populate msys2 && pacman-key --refresh-keys || true"
- C:\msys64\usr\bin\bash -c "pacman -Syuu --noconfirm"
- C:\msys64\usr\bin\bash -c "pacman -Sy --noconfirm --needed mingw-w64-x86_64-toolchain ninja"
- C:\msys64\usr\bin\bash -c "meson build $env:MESON_ARGS &&
ninja -C build &&
ninja -C build test"
meson android arm64 fedora:
# See https://gitlab.freedesktop.org/gstreamer/gst-ci/container_registry/164 for current images
image: "registry.freedesktop.org/gstreamer/gst-ci/amd64/android-fedora:2020-10-22.0-master"
stage: "test"
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}"
expire_in: "5 days"
when: "always"
paths:
- "build/meson-logs/*.txt"
before_script:
- dnf install -y python3-pip gcc ninja-build gperf
- pip3 install --user meson
script:
- export PATH="$HOME/.local/bin:$PATH"
- |
cat > android-cross-file.txt <<EOF
[constants]
ndk_path = '/android/ndk'
toolchain = ndk_path + '/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android'
api = '28'
[host_machine]
system = 'android'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'
[properties]
sys_root = ndk_path + '/sysroot'
c_args = ['-Wno-pointer-bool-conversion']
c_link_args = ['-fuse-ld=gold']
cpp_link_args = ['-fuse-ld=gold']
[binaries]
c = toolchain + api + '-clang'
cpp = toolchain + api + '-clang++'
ar = toolchain + '-ar'
strip = toolchain + '-strip'
EOF
- meson setup --werror --cross-file android-cross-file.txt build
- meson compile --verbose -C build

View File

@ -1,17 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<description>Use lcdnone as default for LCD filter</description>
<!-- Use lcdnone as default for LCD filter -->
<match target="pattern">
<!--
This sort of configuration is available on the major desktop environments
and we don't have to break it with "assign" unconditionally. however, we
want to set something for others. So we use "append" here to get this working
in both cases so that most clients would takes a look at the first place only.
-->
<edit mode="append" name="lcdfilter">
<const>lcdnone</const>
</edit>
</match>
</fontconfig>

View File

@ -53,13 +53,6 @@ NOTE: The (URW)++ fonts mappings of generics to specifics were removed, because
<!-- Map specifics to generics -->
<!-- PostScript -->
<alias binding="same">
<family>Helvetica LT Std</family>
<default>
<family>Helvetica</family>
</default>
</alias>
<alias binding="same">
<family>Nimbus Sans L</family>
<default>
@ -116,13 +109,6 @@ NOTE: The (URW)++ fonts mappings of generics to specifics were removed, because
</default>
</alias>
<alias binding="same">
<family>Courier Std</family>
<accept>
<family>Courier</family>
</accept>
</alias>
<alias binding="same">
<family>Nimbus Mono L</family>
<default>
@ -509,13 +495,6 @@ NOTE: The (URW)++ fonts mappings of generics to specifics were removed, because
<!-- Map generics to specifics -->
<!-- PostScript -->
<alias binding="same">
<family>Helvetica</family>
<accept>
<family>Helvetica LT Std</family>
</accept>
</alias>
<alias binding="same">
<family>Helvetica</family>
<accept>
@ -545,9 +524,9 @@ NOTE: The (URW)++ fonts mappings of generics to specifics were removed, because
</alias>
<alias binding="same">
<family>Courier</family>
<accept>
<family>Courier Std</family>
<accept>
<family>Courier</family>
</accept>
</alias>

View File

@ -125,10 +125,6 @@
<family>DejaVu Sans</family>
<default><family>sans-serif</family></default>
</alias>
<alias>
<family>Helvetica LT Std</family>
<default><family>sans-serif</family></default>
</alias>
<alias>
<family>Helvetica</family>
<default><family>sans-serif</family></default>
@ -193,11 +189,11 @@
<default><family>monospace</family></default>
</alias>
<alias>
<family>Courier Std</family>
<family>Courier</family>
<default><family>monospace</family></default>
</alias>
<alias>
<family>Courier</family>
<family>Courier Std</family>
<default><family>monospace</family></default>
</alias>
<alias>

View File

@ -33,10 +33,6 @@
<family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
<family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
<family>HanyiSong</family> <!-- han (zh-cn,zh-tw) -->
<family>Hiragino Mincho ProN</family> <!-- han (ja) - macOS -->
<family>Songti SC</family> <!-- han (zh-cn) - macOS -->
<family>Songti TC</family> <!-- han (zh-tw) - macOS -->
<family>SimSong</family> <!-- han (zh-cn) - macOS -->
<family>MgOpen Canonica</family>
<family>Sazanami Mincho</family>
<family>IPAMonaMincho</family>
@ -50,7 +46,6 @@
<family>NanumMyeongjo</family> <!-- hangul (ko) -->
<family>UnBatang</family> <!-- hangul (ko) -->
<family>Baekmuk Batang</family> <!-- hangul (ko) -->
<family>AppleMyungjo</family> <!-- hangul (ko) - macOS -->
<family>KacstQura</family>
<family>Frank Ruehl CLM</family>
<family>Lohit Bengali</family>
@ -108,12 +103,6 @@
<family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
<family>AR PL ShanHeiSun Uni</family> <!--han (ja,zh-cn,zh-tw) -->
<family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
<family>Hiragino Sans</family> <!-- han (ja) - macOS -->
<family>PingFang SC</family> <!-- han (zh-cn) - macOS -->
<family>PingFang TC</family> <!-- han (zh-tw) - macOS -->
<family>PingFang HK</family> <!-- han (zh-hk) - macOS -->
<family>Hiragino Sans CNS</family> <!-- han (zh-cn) - macOS -->
<family>Hiragino Sans GB</family> <!-- han (zh-tw) - macOS -->
<family>MgOpen Modata</family>
<family>VL Gothic</family>
<family>IPAMonaGothic</family>
@ -132,7 +121,6 @@
<family>UnDotum</family> <!-- hangul (ko) -->
<family>Baekmuk Dotum</family> <!-- hangul (ko) -->
<family>Baekmuk Gulim</family> <!-- hangul (ko) -->
<family>Apple SD Gothic Neo</family> <!-- hangul (ko) - macOS -->
<family>KacstQura</family>
<family>Lohit Bengali</family>
<family>Lohit Gujarati</family>

View File

@ -6,7 +6,7 @@
<selectfont>
<rejectfont>
<pattern>
<patelt name="outline"><bool>false</bool></patelt>
<patelt name="scalable"><bool>false</bool></patelt>
</pattern>
</rejectfont>
</selectfont>

View File

@ -6,7 +6,7 @@
<selectfont>
<acceptfont>
<pattern>
<patelt name="outline"><bool>false</bool></patelt>
<patelt name="scalable"><bool>false</bool></patelt>
</pattern>
</acceptfont>
</selectfont>

View File

@ -79,7 +79,6 @@ template_DATA = \
11-lcdfilter-default.conf \
11-lcdfilter-legacy.conf \
11-lcdfilter-light.conf \
11-lcdfilter-none.conf \
20-unhint-small-vera.conf \
25-unhint-nonlatin.conf \
30-metric-aliases.conf \
@ -109,7 +108,14 @@ README: $(srcdir)/README.in
cd ../fc-lang && $(MAKE) $(AM_MAKEFLAGS) $(top_builddir)/conf.d/35-lang-normalize.conf
install-data-hook:
$(PYTHON) $(srcdir)/link_confs.py $(templatedir) $(configdir) $(CONF_LINKS)
mkdir -p $(DESTDIR)$(configdir)
@(echo cd $(DESTDIR)$(configdir); \
cd $(DESTDIR)$(configdir); \
for i in $(CONF_LINKS); do \
echo $(RM) $$i";" ln -s $(templatedir)/$$i .; \
$(RM) $$i; \
ln -s $(templatedir)/$$i .; \
done)
uninstall-local:
@(echo cd $(DESTDIR)$(configdir); \
cd $(DESTDIR)$(configdir); \

View File

@ -34,7 +34,7 @@ if __name__=='__main__':
except FileNotFoundError:
pass
try:
os.symlink(os.path.relpath(src, start=args.confpath), dst)
os.symlink(src, dst)
except NotImplementedError:
# Not supported on this version of Windows
break

View File

@ -18,7 +18,6 @@ conf_files = [
'11-lcdfilter-default.conf',
'11-lcdfilter-legacy.conf',
'11-lcdfilter-light.conf',
'11-lcdfilter-none.conf',
'20-unhint-small-vera.conf',
'25-unhint-nonlatin.conf',
'30-metric-aliases.conf',

View File

@ -55,7 +55,7 @@ running out of memory.
@FUNC@ FcCharSetDelChar
@TYPE1@ FcCharSet * @ARG1@ fcs
@TYPE2@ FcChar32% @ARG2@ ucs4
@PURPOSE@ Delete a character from a charset
@PURPOSE@ Add a character to a charset
@DESC@
<function>FcCharSetDelChar</function> deletes a single Unicode char from the set,
returning FcFalse on failure, either as a result of a constant set or from

View File

@ -109,15 +109,9 @@ disabled. The previous setting of the value is returned.
@PURPOSE@ Build font database
@DESC@
Builds the set of available fonts for the given configuration. Note that
any changes to the configuration after this call (through
<function>FcConfigParseAndLoad</function> or
<function>FcConfigParseAndLoadFromMemory</function>) have indeterminate
effects. (On the other hand, application fonts can still be modified
through <function>FcConfigAppFontAddFile</function>,
<function>FcConfigAppFontAddDir</function> and
<function>FcConfigAppFontClear</function>). Returns FcFalse if this operation
runs out of memory. If <parameter>config</parameter> is NULL, the current
configuration is used.
any changes to the configuration after this call have indeterminate effects.
Returns FcFalse if this operation runs out of memory.
If <parameter>config</parameter> is NULL, the current configuration is used.
@@
@RET@ FcStrList *
@ -391,12 +385,6 @@ and parsed. If 'complain' is FcFalse, no warning will be displayed if
'file' does not exist. Error and warning messages will be output to stderr.
Returns FcFalse if some error occurred while loading the file, either a
parse error, semantic error or allocation failure. Otherwise returns FcTrue.
After all configuration files / strings have been loaded, with
<function>FcConfigParseAndLoad</function> and/or
<function>FcConfigParseAndLoadFromMemory</function>, call
<function>FcConfigBuildFonts</function> to build the font
database.
@@
@RET@ FcBool
@ -412,12 +400,6 @@ and dparsed. If 'complain' is FcFalse, no warning will be displayed if
'file' does not exist. Error and warning messages will be output to stderr.
Returns FcFalse if fsome error occurred while loading the file, either a
parse error, semantic error or allocation failure. Otherwise returns FcTrue.
After all configuration files / strings have been loaded, with
<function>FcConfigParseAndLoad</function> and/or
<function>FcConfigParseAndLoadFromMemory</function>, call
<function>FcConfigBuildFonts</function> to build the font
database.
@SINCE@ 2.12.5
@@

View File

@ -175,7 +175,7 @@ convenience for the application's rendering mechanism.
face object
rasterizer FC_RASTERIZER String Which rasterizer is in use (deprecated)
outline FC_OUTLINE Bool Whether the glyphs are outlines
scalable FC_SCALABLE Bool Whether the glyphs are outlines or have color
scalable FC_SCALABLE Bool Whether glyphs can be scaled
dpi FC_DPI Double Target dots per inch
rgba FC_RGBA Int unknown, rgb, bgr, vrgb,
vbgr, none - subpixel geometry
@ -183,7 +183,6 @@ convenience for the application's rendering mechanism.
conversions (deprecated)
minspace FC_MINSPACE Bool Eliminate leading from line
spacing
matrix FC_MATRIX Matrix Hold an affine transformation
charset FC_CHARSET CharSet Unicode chars encoded by
the font
lang FC_LANG LangSet Set of RFC-3066-style
@ -208,15 +207,12 @@ convenience for the application's rendering mechanism.
hash FC_HASH String SHA256 hash value of the font data
with "sha256:" prefix (deprecated)
postscriptname FC_POSTSCRIPT_NAME String Font name in PostScript
color FC_COLOR Bool Whether any glyphs have color
symbol FC_SYMBOL Bool Whether font uses MS symbol-font encoding
color FC_COLOR Bool Whether any glyphs have color
fontvariations FC_FONT_VARIATIONS String comma-separated string of axes in variable font
variable FC_VARIABLE Bool Whether font is Variable Font
fonthashint FC_FONT_HAS_HINT Bool Whether font has hinting
order FC_ORDER Int Order number of the font
desktop FC_DESKTOP_NAME String Current desktop name
namedinstance FC_NAMED_INSTANCE Bool Whether font is a named instance
fontwarapper FC_FONT_WRAPPER String The font wrapper format
</programlisting>
</sect2>
</sect1>

View File

@ -101,15 +101,15 @@ fullname String Font full names (often includes style)
fullnamelang String Languages corresponding to each fullname
slant Int Italic, oblique or roman
weight Int Light, medium, demibold, bold or black
width Int Condensed, normal or expanded
size Double Point size
width Int Condensed, normal or expanded
aspect Double Stretches glyphs horizontally before hinting
pixelsize Double Pixel size
spacing Int Proportional, dual-width, monospace or charcell
foundry String Font foundry name
antialias Bool Whether glyphs can be antialiased
hintstyle Int Automatic hinting style
hinting Bool Whether the rasterizer should use hinting
hintstyle Int Automatic hinting style
verticallayout Bool Use vertical layout
autohint Bool Use autohinter instead of normal hinter
globaladvance Bool Use font global advance data (deprecated)
@ -118,12 +118,14 @@ index Int The index of the font within the file
ftface FT_Face Use the specified FreeType face object
rasterizer String Which rasterizer is in use (deprecated)
outline Bool Whether the glyphs are outlines
scalable Bool Whether the glyphs are outlines or have color
scalable Bool Whether glyphs can be scaled
color Bool Whether any glyphs have color
scale Double Scale factor for point->pixel conversions
(deprecated)
dpi Double Target dots per inch
rgba Int unknown, rgb, bgr, vrgb, vbgr,
none - subpixel geometry
scale Double Scale factor for point->pixel conversions
(deprecated)
lcdfilter Int Type of LCD filter
minspace Bool Eliminate leading from line spacing
charset CharSet Unicode chars encoded by the font
lang String List of RFC-3066-style languages this
@ -134,23 +136,13 @@ fontformat String String name of the font format
embolden Bool Rasterizer should synthetically embolden the font
embeddedbitmap Bool Use the embedded bitmap instead of the outline
decorative Bool Whether the style is a decorative variant
lcdfilter Int Type of LCD filter
fontfeatures String List of the feature tags in OpenType to be enabled
namelang String Language name to be used for the default value of
familylang, stylelang, and fullnamelang
fontfeatures String List of the feature tags in OpenType to be enabled
prgname String String Name of the running program
postscriptname String Font family name in PostScript
color Bool Whether any glyphs have color
symbol Bool Whether font uses MS symbol-font encoding
fontvariations String comma-separated string of axes in variable font
variable Bool Wheter font is Variable Font
fonthashint Bool Whether the font has hinting
order Int Order number of the font
desktop String Current desktop name
namedinstance Bool Whether font is a named instance
fontwarapper String The font wrapper format, current values are WOFF, WOFF2,
SFNT for any other SFNT font, and CFF for standalone
CFF fonts.
</programlisting>
</refsect2>
<refsect2>
@ -387,21 +379,18 @@ Fontconfig will validate all of the configuration files and directories and
automatically rebuild the internal datastructures when this interval passes.
</para></refsect2>
<refsect2><title><literal>&lt;selectfont&gt;</literal></title><para>
This element is used to deny/allow list fonts from being listed or matched
against. It holds acceptfont and rejectfont elements. This list is applied
only once when caches is loaded. So if you want to filter out by some patterns,
patterns is evaluated with something in cache only.
In other words, target patterns except "scan" won't takes any effects.
This element is used to black/white list fonts from being listed or matched
against. It holds acceptfont and rejectfont elements.
</para></refsect2>
<refsect2><title><literal>&lt;acceptfont&gt;</literal></title><para>
Fonts matched by an acceptfont element are "allowlisted"; such fonts are
Fonts matched by an acceptfont element are "whitelisted"; such fonts are
explicitly included in the set of fonts used to resolve list and match
requests; including them in this list protects them from being "denylisted"
requests; including them in this list protects them from being "blacklisted"
by a rejectfont element. Acceptfont elements include glob and pattern
elements which are used to match fonts.
</para></refsect2>
<refsect2><title><literal>&lt;rejectfont&gt;</literal></title><para>
Fonts matched by an rejectfont element are "denylisted"; such fonts are
Fonts matched by an rejectfont element are "blacklisted"; such fonts are
excluded from the set of fonts used to resolve list and match requests as if
they didn't exist in the system. Rejectfont elements include glob and
pattern elements which are used to match fonts.

View File

@ -1,11 +1,11 @@
# CaseFolding-15.1.0.txt
# Date: 2023-05-12, 21:53:10 GMT
# © 2023 Unicode®, Inc.
# CaseFolding-14.0.0.txt
# Date: 2021-03-08, 19:35:41 GMT
# © 2021 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use, see https://www.unicode.org/terms_of_use.html
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
# For documentation, see https://www.unicode.org/reports/tr44/
# For documentation, see http://www.unicode.org/reports/tr44/
#
# Case Folding Properties
#
@ -929,7 +929,6 @@
1FCC; S; 1FC3; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
1FD2; F; 03B9 0308 0300; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
1FD3; F; 03B9 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
1FD3; S; 0390; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
1FD6; F; 03B9 0342; # GREEK SMALL LETTER IOTA WITH PERISPOMENI
1FD7; F; 03B9 0308 0342; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
1FD8; C; 1FD0; # GREEK CAPITAL LETTER IOTA WITH VRACHY
@ -938,7 +937,6 @@
1FDB; C; 1F77; # GREEK CAPITAL LETTER IOTA WITH OXIA
1FE2; F; 03C5 0308 0300; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
1FE3; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
1FE3; S; 03B0; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
1FE4; F; 03C1 0313; # GREEK SMALL LETTER RHO WITH PSILI
1FE6; F; 03C5 0342; # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
1FE7; F; 03C5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
@ -1330,7 +1328,6 @@ FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL
FB03; F; 0066 0066 0069; # LATIN SMALL LIGATURE FFI
FB04; F; 0066 0066 006C; # LATIN SMALL LIGATURE FFL
FB05; F; 0073 0074; # LATIN SMALL LIGATURE LONG S T
FB05; S; FB06; # LATIN SMALL LIGATURE LONG S T
FB06; F; 0073 0074; # LATIN SMALL LIGATURE ST
FB13; F; 0574 0576; # ARMENIAN SMALL LIGATURE MEN NOW
FB14; F; 0574 0565; # ARMENIAN SMALL LIGATURE MEN ECH

View File

@ -96,7 +96,7 @@ manpage.1: manpage.sgml
<para><command>&dhpackage;</command> prints an annotated list of all the configuration files processed by Fontconfig.</para>
<para>The output is a `-' or `+' depending on whether the file is ignored or processed, a space, the file's path, a colon and space, and the description from the file or `No description' if none is present.</para>
<para>The order of files looks like how fontconfig actually processes them except one contains &lt;include&gt; element.
<para>The order of files looks like how fontconfig acautlly process them except one contains &lt;include&gt; element.
In that case, it will be shown after processing all the sub directories where is targeted by &lt;include&gt;.</para>
</refsect1>

View File

@ -282,40 +282,7 @@ ORTH = \
doi.orth \
mni.orth \
und_zsye.orth \
und_zmth.orth \
anp.orth \
bhb.orth \
hif.orth \
mag.orth \
raj.orth \
the.orth \
agr.orth \
ayc.orth \
bem.orth \
ckb.orth \
cmn.orth \
dsb.orth \
hak.orth \
lij.orth \
lzh.orth \
mfe.orth \
mhr.orth \
miq.orth \
mjw.orth \
mnw.orth \
nan.orth \
nhn.orth \
niu.orth \
rif.orth \
sgs.orth \
shn.orth \
szl.orth \
tcy.orth \
tpi.orth \
unm.orth \
wae.orth \
yue.orth \
yuw.orth
und_zmth.orth
# ^-------------- Add new orth files here
BUILT_SOURCES += $(top_builddir)/conf.d/35-lang-normalize.conf

View File

@ -1,31 +0,0 @@
#
# fontconfig/fc-lang/agr.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Aguaruna (Latin) (anp) Endonym: Awajún
#
# See:
# https://en.wikipedia.org/wiki/Aguaruna_language
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/agr_PE
0041-005a
0061-007a
00fa # ú LATIN SMALL LETTER U WITH ACUTE

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/anp.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Anguika (Devanagari script) (anp)
#
# See:
# https://en.wikipedia.org/wiki/Angika
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/anp_IN
include hi.orth

View File

@ -1,35 +0,0 @@
#
# fontconfig/fc-lang/ayc.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Aymara (Latin) (ayc)
#
# See:
# https://en.wikipedia.org/wiki/Aymara_language
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/ayc_PE
0041-005a
0061-007a
# Long vowels are indicated in the spelling with a diaeresis in writing: ä, ï, ü
00e4 # ä LATIN SMALL LETTER A WITH DIAERESIS
00ef # ï LATIN SMALL LETTER I WITH DIAERESIS
00fc # ü LATIN SMALL LETTER U WITH DIAERESIS
00f1 # ñ LATIN SMALL LETTER N WITH TILDE

View File

@ -1,31 +0,0 @@
#
# fontconfig/fc-lang/bem.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Bemba (Latin) (bem)
#
# See:
# https://en.wikipedia.org/wiki/Bemba_language
# https://github.com/unicode-org/cldr/blob/main/common/main/bem.xml
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/bem_ZM
0041-005a
0061-007a

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/bhb.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Bhili (Devanagari script) (bhb)
#
# See:
# https://en.wikipedia.org/wiki/Bhili_language
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/bhb_IN
include hi.orth

View File

@ -1,32 +0,0 @@
#
# fontconfig/fc-lang/ckb.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Central Kurdish (ckb)
#
# See:
# https://en.wikipedia.org/wiki/Sorani
# https://en.wikipedia.org/wiki/Kurdish_alphabets#Sorani_alphabet
# https://github.com/unicode-org/cldr/blob/main/common/main/ckb.xml
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/ckb_IQ
# Assuming central Kurdish uses the same orthography as Iranian Kurdish
include ku_ir.orth

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/cmn.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Mandarin Chinese (cmn)
#
# See:
# https://en.wikipedia.org/wiki/Mandarin_Chinese
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/cmn_TW
include zh_tw.orth

View File

@ -1,37 +0,0 @@
#
# fontconfig/fc-lang/dsb.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Lower Sorbian (dsb)
#
# See:
# https://en.wikipedia.org/wiki/Lower_Sorbian_language
# https://en.wikipedia.org/wiki/Sorbian_alphabet
#
# “The Sorbian alphabet is based on the ISO basic Latin alphabet but
# uses diacritics such as the acute accent and the caron, making it
# similar to the Czech and Polish alphabets. (This mixture is also
# found in the Belarusian Latin alphabet.) The standard character
# encoding for the Sorbian alphabet is ISO 8859-2 (Latin-2).”
#
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/dsb_DE
include cs.orth

View File

@ -251,7 +251,7 @@ if __name__=='__main__':
print('#define fcLangCharSetIndices (fcLangData.langIndices)')
print('#define fcLangCharSetIndicesInv (fcLangData.langIndicesInv)')
assert len(sets) < 65536 # FIXME: need to change index type to 32-bit below then
assert len(sets) < 256 # FIXME: need to change index type to 16-bit below then
print('''
static const struct {{
@ -262,7 +262,7 @@ static const struct {{
{} langIndices[{}];
{} langIndicesInv[{}];
}} fcLangData = {{'''.format(len(sets), len(leaves), tn, tn,
'FcChar16 ', len(sets), 'FcChar16 ', len(sets)))
'FcChar8 ', len(sets), 'FcChar8 ', len(sets)))
# Dump sets
print('{')

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/hak.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Hakka Chinese (hak)
#
# See:
# https://en.wikipedia.org/wiki/Hakka_Chinese
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/hak_TW
include zh_tw.orth

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/hif.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Fiji Hindi (Devanagari script) (hif)
#
# See:
# https://en.wikipedia.org/wiki/Fiji_Hindi
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/hif_FJ
include hi.orth

View File

@ -1,38 +0,0 @@
#
# fontconfig/fc-lang/lij.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Ligurian (lij)
#
# See:
# https://en.wikipedia.org/wiki/Lower_Sorbian_language
# https://en.wikipedia.org/wiki/Sorbian_alphabet'
# https://github.com/unicode-org/cldr/blob/main/common/main/lij.xml
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/lij_IT
include it.orth
00e2 # â LATIN SMALL LETTER A WITH CIRCUMFLEX
00e4 # ä LATIN SMALL LETTER A WITH DIAERESIS
00e6 # æ LATIN SMALL LETTER AE
00e7 # ç LATIN SMALL LETTER C WITH CEDILLA
00f1 # ñ LATIN SMALL LETTER N WITH TILDE

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/lzh.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Literary Chinese (lzh)
#
# See:
# https://en.wikipedia.org/wiki/Classical_Chinese
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/lzh_TW
include zh_tw.orth

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/mag.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Magahi (Devanagari script) (mag)
#
# See:
# https://en.wikipedia.org/wiki/Magahi_language
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/mag_IN
include hi.orth

View File

@ -246,39 +246,6 @@ orth_files = [
'mni.orth',
'und_zsye.orth',
'und_zmth.orth',
'anp.orth',
'bhb.orth',
'hif.orth',
'mag.orth',
'raj.orth',
'the.orth',
'agr.orth',
'ayc.orth',
'bem.orth',
'ckb.orth',
'cmn.orth',
'dsb.orth',
'hak.orth',
'lij.orth',
'lzh.orth',
'mfe.orth',
'mhr.orth',
'miq.orth',
'mjw.orth',
'mnw.orth',
'nan.orth',
'nhn.orth',
'niu.orth',
'rif.orth',
'sgs.orth',
'shn.orth',
'szl.orth',
'tcy.orth',
'tpi.orth',
'unm.orth',
'wae.orth',
'yue.orth',
'yuw.orth',
]
fclang_h = custom_target('fclang.h',

View File

@ -1,31 +0,0 @@
#
# fontconfig/fc-lang/mfe.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Mauritian Creole (mfe)
#
# See:
# https://en.wikipedia.org/wiki/Mauritian_Creole#Orthography
# https://github.com/unicode-org/cldr/blob/main/common/main/mfe.xml
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/mfe_MU
include fr.orth

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/mhr.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Meadow Mari (mhr)
#
# See:
# https://en.wikipedia.org/wiki/Meadow_Mari_language
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/mhr_RU
include ru.orth

View File

@ -1,39 +0,0 @@
#
# fontconfig/fc-lang/miq.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Miskito (miq)
#
# See:
# https://en.wikipedia.org/wiki/Miskito_language#Orthography_and_phonology
#
# “There is still much controversy about Miskito orthography and it
# cannot be considered settled, even with printed Miskito grammars,
# Bible translations, and other texts.”
#
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/miq_NI
include es.orth
00e3 # ã LATIN SMALL LETTER A WITH TILDE
1ebd # ẽ LATIN SMALL LETTER E WITH TILDE
0129 # ĩ LATIN SMALL LETTER I WITH TILDE
00f5 # õ LATIN SMALL LETTER O WITH TILDE
0169 # ũ LATIN SMALL LETTER U WITH TILDE

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/mjw.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Karbi (mjw)
#
# See:
# https://en.wikipedia.org/wiki/Karbi_language
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/mjw_IN
include en.orth

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/mnw.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Mon (mnw)
#
# See:
# https://en.wikipedia.org/wiki/Mon_language
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/mnw_MM
include my.orth

View File

@ -1,31 +0,0 @@
#
# fontconfig/fc-lang/nan.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Min Nan Chinese (nan)
#
# See:
# https://en.wikipedia.org/wiki/Southern_Min
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/nan_TW
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/nan_TW@latin
include zh_tw.orth
include en.orth

View File

@ -1,31 +0,0 @@
#
# fontconfig/fc-lang/nhn.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Tlaxcala-Puebla Nahuatl (nhn) Endonym: Tlahco nāhuatlahtōlli
#
# See:
# https://en.wikipedia.org/wiki/Tlaxcala%E2%80%93Puebla_Nahuatl
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/nhn_MX
include es.orth
0101 # ā LATIN SMALL LETTER A WITH MACRON
014d # ō LATIN SMALL LETTER O WITH MACRON

View File

@ -1,35 +0,0 @@
#
# fontconfig/fc-lang/niu.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Niuean (niu)
#
# See:
# https://en.wikipedia.org/wiki/Niuean_language#Orthography
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/niu_NU
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/niu_NZ
include en.orth
0101 # ā LATIN SMALL LETTER A WITH MACRON
0113 # ē LATIN SMALL LETTER E WITH MACRON
012b # ī LATIN SMALL LETTER I WITH MACRON
014d # ō LATIN SMALL LETTER O WITH MACRON
016b # ū LATIN SMALL LETTER U WITH MACRON

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/raj.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Rajasthani (Devanagari script) (raj)
#
# See:
# https://en.wikipedia.org/wiki/Rajasthani_languages
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/raj_IN
include hi.orth

View File

@ -1,43 +0,0 @@
#
# fontconfig/fc-lang/rif.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Riffian (rif)
#
# See:
# https://en.wikipedia.org/wiki/Tarifit
# https://en.wikipedia.org/wiki/Berber_Latin_alphabet
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/rif_MA
include en.orth
010d # č LATIN SMALL LETTER C WITH CARON
1e0d # ḍ LATIN SMALL LETTER D WITH DOT BELOW
025b # ɛ LATIN SMALL LETTER OPEN E
01e7 # ǧ LATIN SMALL LETTER G WITH CARON
0263 # ɣ LATIN SMALL LETTER GAMMA
1e25 # ḥ LATIN SMALL LETTER H WITH DOT BELOW
0159 # ř LATIN SMALL LETTER R WITH CARON
1e5b # ṛ LATIN SMALL LETTER R WITH DOT BELOW
1e63 # ṣ LATIN SMALL LETTER S WITH DOT BELOW
1e6d # ṭ LATIN SMALL LETTER T WITH DOT BELOW
1e93 # ẓ LATIN SMALL LETTER Z WITH DOT BELOW

View File

@ -1,36 +0,0 @@
#
# fontconfig/fc-lang/sgs.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Samogitian (sgs)
#
# See:
# https://en.wikipedia.org/wiki/Samogitian_language#Writing_system
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/sgs_LT
include lt.orth
0101 # ā LATIN SMALL LETTER A WITH MACRON
0113 # ē LATIN SMALL LETTER E WITH MACRON
014d # ō LATIN SMALL LETTER O WITH MACRON
012b # ī LATIN SMALL LETTER I WITH MACRON
0117 # ė LATIN SMALL LETTER E WITH DOT ABOVE
0304 # ̄ COMBINING MACRON
00f5 # õ LATIN SMALL LETTER O WITH TILDE

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/shn.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Shan (shn)
#
# See:
# https://en.wikipedia.org/wiki/Shan_language
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/shn_MM
include my.orth

View File

@ -1,42 +0,0 @@
#
# fontconfig/fc-lang/szl.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Silesian (szl)
#
# See:
# https://en.wikipedia.org/wiki/Silesian_language
# https://en.wikipedia.org/wiki/Silesian_language#Writing_system
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/szl_PL
include pl.orth
00c3 # Ã LATIN CAPITAL LETTER A WITH TILDE
0106 # Ć LATIN CAPITAL LETTER C WITH ACUTE
0141 # Ł LATIN CAPITAL LETTER L WITH STROKE
0143 # Ń LATIN CAPITAL LETTER N WITH ACUTE
014e # Ŏ LATIN CAPITAL LETTER O WITH BREVE
014c # Ō LATIN CAPITAL LETTER O WITH MACRON
00d4 # Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX
00d5 # Õ LATIN CAPITAL LETTER O WITH TILDE
015a # Ś LATIN CAPITAL LETTER S WITH ACUTE
016e # Ů LATIN CAPITAL LETTER U WITH RING ABOVE
0179 # Ź LATIN CAPITAL LETTER Z WITH ACUTE
017b # Ż LATIN CAPITAL LETTER Z WITH DOT ABOVE

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/tcy.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Tulu (tcy)
#
# See:
# https://en.wikipedia.org/wiki/Tulu_language#Writing_system
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/tcy_IN
include kn.orth

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/the.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Chitwania Tharu (Devanagari script) (the)
#
# See:
# https://en.wikipedia.org/wiki/Tharu_languages
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/the_NP
include hi.orth

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/tpi.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Tok Pisin (tpi)
#
# See:
# https://en.wikipedia.org/wiki/Tok_Pisin#Alphabet
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/tpi_PG
include en.orth

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/unm.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Unami language (unm)
#
# See:
# https://en.wikipedia.org/wiki/Unami_language
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/unm_US
include en.orth

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/wae.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Walser German (wae)
#
# See:
# https://en.wikipedia.org/wiki/Walser_German#Phonology
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/wae_CH
include de.orth

View File

@ -1,30 +0,0 @@
#
# fontconfig/fc-lang/yue.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Yue Chinese, Cantonese (yue)
#
# See:
# https://en.wikipedia.org/wiki/Cantonese
# https://en.wikipedia.org/wiki/Yue_Chinese
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/yue_HK
include zh_hk.orth

View File

@ -1,29 +0,0 @@
#
# fontconfig/fc-lang/yuw.orth
#
# Copyright © 2022 Mike FABIAN
#
# 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.
#
# Yau (yuw)
#
# See:
# https://en.wikipedia.org/wiki/Yau_language_(Trans%E2%80%93New_Guinea)
# https://sourceware.org/git/?p=glibc.git;a=blob_plain;f=localedata/locales/yuw_PG
include en.orth

View File

@ -67,7 +67,7 @@ typedef int FcBool;
* it means multiple copies of the font information.
*/
#define FC_CACHE_VERSION_NUMBER 9
#define FC_CACHE_VERSION_NUMBER 8
#define _FC_STRINGIFY_(s) #s
#define _FC_STRINGIFY(s) _FC_STRINGIFY_(s)
#define FC_CACHE_VERSION _FC_STRINGIFY(FC_CACHE_VERSION_NUMBER)
@ -129,8 +129,6 @@ typedef int FcBool;
#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_NAMED_INSTANCE "namedinstance" /* Bool - true if font is named instance */
#define FC_FONT_WRAPPER "fontwrapper" /* String */
#define FC_CACHE_SUFFIX ".cache-" FC_CACHE_VERSION
#define FC_DIR_CACHE_FILE "fonts.cache-" FC_CACHE_VERSION

View File

@ -1,6 +1,6 @@
project('fontconfig', 'c',
version: '2.14.2',
meson_version : '>= 0.60.0',
meson_version : '>= 0.57.0',
default_options: [ 'buildtype=debugoptimized'],
)
@ -209,20 +209,6 @@ if cc.links(files('meson-cc-tests/solaris-atomic-operations.c'), name: 'Solaris
endif
# Check iconv support
iconv_dep = []
found_iconv = 0
if host_machine.system() != 'windows'
iconv_dep = dependency('iconv', required: get_option('iconv'))
found_iconv = iconv_dep.found().to_int()
else
if get_option('iconv').enabled()
warning('-Diconv was set but this is not functional on Windows.')
endif
endif
conf.set('USE_ICONV', found_iconv)
deps += [iconv_dep]
prefix = get_option('prefix')
fonts_conf = configuration_data()
@ -302,7 +288,7 @@ endif
fc_baseconfigdir = get_option('baseconfig-dir')
if fc_baseconfigdir in ['default', 'yes', 'no']
fc_baseconfigdir = prefix / get_option('sysconfdir') / 'fonts'
fc_baseconfigdir = prefix / get_option('sysconfdir') / 'fonts'
endif
fc_configdir = get_option('config-dir')
@ -339,7 +325,7 @@ if gperf.found()
@1@
'''
gperf_snippet = run_command(gperf, '-L', 'ANSI-C', files('meson-cc-tests/gperf.txt'),
check: true).stdout()
check: true).stdout()
foreach type : ['size_t', 'unsigned']
if cc.compiles(gperf_test_format.format(type, gperf_snippet))
@ -361,7 +347,7 @@ endif
message('gperf len type is @0@'.format(gperf_len_type))
conf.set('FC_GPERF_SIZE_T', gperf_len_type,
description : 'The type of gperf "len" parameter')
description : 'The type of gperf "len" parameter')
conf.set('_GNU_SOURCE', true)
@ -384,16 +370,16 @@ fcstdint_h = configure_file(
makealias = files('src/makealias.py')[0]
alias_headers = custom_target('alias_headers',
output: ['fcalias.h', 'fcaliastail.h'],
input: ['fontconfig/fontconfig.h', 'src/fcdeprecate.h', 'fontconfig/fcprivate.h'],
command: [python3, makealias, join_paths(meson.current_source_dir(), 'src'), '@OUTPUT@', '@INPUT@'],
)
output: ['fcalias.h', 'fcaliastail.h'],
input: ['fontconfig/fontconfig.h', 'src/fcdeprecate.h', 'fontconfig/fcprivate.h'],
command: [python3, makealias, join_paths(meson.current_source_dir(), 'src'), '@OUTPUT@', '@INPUT@'],
)
ft_alias_headers = custom_target('ft_alias_headers',
output: ['fcftalias.h', 'fcftaliastail.h'],
input: ['fontconfig/fcfreetype.h'],
command: [python3, makealias, join_paths(meson.current_source_dir(), 'src'), '@OUTPUT@', '@INPUT@']
)
output: ['fcftalias.h', 'fcftaliastail.h'],
input: ['fontconfig/fcfreetype.h'],
command: [python3, makealias, join_paths(meson.current_source_dir(), 'src'), '@OUTPUT@', '@INPUT@']
)
tools_man_pages = []
@ -434,14 +420,14 @@ endif
configure_file(output: 'config.h', configuration: conf)
configure_file(output: 'fonts.conf',
input: 'fonts.conf.in',
configuration: fonts_conf,
install_dir: fc_baseconfigdir,
install: true)
input: 'fonts.conf.in',
configuration: fonts_conf,
install_dir: fc_baseconfigdir,
install: true)
install_data('fonts.dtd',
install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'xml/fontconfig')
)
install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'xml/fontconfig')
)
fc_headers = [
'fontconfig/fontconfig.h',
@ -455,21 +441,20 @@ install_headers(fc_headers, subdir: meson.project_name())
doc_targets = get_variable('doc_targets', [])
summary({
'Documentation': (doc_targets.length() > 0 ? doc_targets : false),
'NLS': not get_option('nls').disabled(),
'Tests': not get_option('tests').disabled(),
'Tools': not get_option('tools').disabled(),
'iconv': found_iconv == 1,
}, section: 'General', bool_yn: true, list_sep: ', ')
'Documentation': (doc_targets.length() > 0 ? doc_targets : false),
'NLS': not get_option('nls').disabled(),
'Tests': not get_option('tests').disabled(),
'Tools': not get_option('tools').disabled(),
}, section: 'General', bool_yn: true, list_sep: ', ')
summary({
'Hinting': preferred_hinting,
'Font directories': fc_fonts_paths,
'Additional font directories': fc_add_fonts,
}, section: 'Defaults', bool_yn: true, list_sep: ', ')
'Hinting': preferred_hinting,
'Font directories': fc_fonts_paths,
'Additional font directories': fc_add_fonts,
}, section: 'Defaults', bool_yn: true, list_sep: ', ')
summary({
'Cache directory': fc_cachedir,
'Template directory': fc_templatedir,
'Base config directory': fc_baseconfigdir,
'Config directory': fc_configdir,
'XML directory': fc_xmldir,
}, section: 'Paths', bool_yn: true, list_sep: ', ')
'Cache directory': fc_cachedir,
'Template directory': fc_templatedir,
'Base config directory': fc_baseconfigdir,
'Config directory': fc_configdir,
'XML directory': fc_xmldir,
}, section: 'Paths', bool_yn: true, list_sep: ', ')

View File

@ -13,7 +13,6 @@ option('tools', type : 'feature', value : 'auto', yield : true,
description: 'Build command-line tools (fc-list, fc-query, etc.)')
option('cache-build', type : 'feature', value : 'enabled',
description: 'Run fc-cache on install')
option('iconv', type: 'feature', value: 'disabled')
# Defaults
option('default-hinting', type: 'combo', choices: ['none', 'slight', 'medium', 'full'], value: 'slight',

View File

@ -147,6 +147,10 @@ FcConfigCreate (void)
if (!config->configDirs)
goto bail1;
config->configMapDirs = FcStrSetCreate();
if (!config->configMapDirs)
goto bail1_5;
config->configFiles = FcStrSetCreate ();
if (!config->configFiles)
goto bail2;
@ -226,6 +230,8 @@ bail4:
bail3:
FcStrSetDestroy (config->configFiles);
bail2:
FcStrSetDestroy (config->configMapDirs);
bail1_5:
FcStrSetDestroy (config->configDirs);
bail1:
free (config);
@ -364,6 +370,7 @@ FcConfigDestroy (FcConfig *config)
(void) fc_atomic_ptr_cmpexch (&_fcConfig, config, NULL);
FcStrSetDestroy (config->configDirs);
FcStrSetDestroy (config->configMapDirs);
FcStrSetDestroy (config->fontDirs);
FcStrSetDestroy (config->cacheDirs);
FcStrSetDestroy (config->configFiles);
@ -2275,8 +2282,8 @@ FcConfigSubstituteWithPat (FcConfig *config,
printf ("FcConfigSubstitute done");
FcPatternPrint (p);
}
FamilyTableClear (&data);
bail1:
FamilyTableClear (&data);
if (elt)
free (elt);
if (value)

View File

@ -228,9 +228,8 @@ FcRandom(void)
#elif HAVE_LRAND48
result = lrand48 ();
#elif HAVE_RAND_R
static unsigned int seed;
static unsigned int seed = time (NULL);
seed = time (NULL);
result = rand_r (&seed);
#elif HAVE_RAND
static FcBool initialized = FcFalse;

View File

@ -201,7 +201,7 @@ FcDirScanConfig (FcFontSet *set,
DIR *d;
struct dirent *e;
FcStrSet *files;
FcChar8 *file_prefix = NULL, *s_dir = NULL;
FcChar8 *file_prefix, *s_dir = NULL;
FcChar8 *base;
const FcChar8 *sysroot = FcConfigGetSysRoot (config);
FcBool ret = FcTrue;
@ -213,6 +213,16 @@ FcDirScanConfig (FcFontSet *set,
if (!set && !dirs)
return FcTrue;
/* freed below */
file_prefix = (FcChar8 *) malloc (strlen ((char *) dir) + 1 + FC_MAX_FILE_LEN + 1);
if (!file_prefix) {
ret = FcFalse;
goto bail;
}
strcpy ((char *) file_prefix, (char *) dir);
strcat ((char *) file_prefix, FC_DIR_SEPARATOR_S);
base = file_prefix + strlen ((char *) file_prefix);
if (sysroot)
s_dir = FcStrBuildFilename (sysroot, dir, NULL);
else
@ -222,16 +232,6 @@ FcDirScanConfig (FcFontSet *set,
goto bail;
}
/* freed below */
file_prefix = (FcChar8 *) malloc (strlen ((char *) s_dir) + 1 + FC_MAX_FILE_LEN + 1);
if (!file_prefix) {
ret = FcFalse;
goto bail;
}
strcpy ((char *) file_prefix, (char *) s_dir);
strcat ((char *) file_prefix, FC_DIR_SEPARATOR_S);
base = file_prefix + strlen ((char *) file_prefix);
if (FcDebug () & FC_DBG_SCAN)
printf ("\tScanning dir %s\n", s_dir);

View File

@ -27,7 +27,6 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_ADVANCES_H
@ -93,7 +92,7 @@ static const FcFtEncoding fcFtEncoding[] = {
{ TT_PLATFORM_MICROSOFT, TT_MS_ID_SYMBOL_CS, "UTF-16BE" },
{ TT_PLATFORM_MICROSOFT, TT_MS_ID_UNICODE_CS, "UTF-16BE" },
{ TT_PLATFORM_MICROSOFT, TT_MS_ID_SJIS, "SJIS-WIN" },
{ TT_PLATFORM_MICROSOFT, TT_MS_ID_PRC, "GB18030" },
{ TT_PLATFORM_MICROSOFT, TT_MS_ID_GB2312, "GB2312" },
{ TT_PLATFORM_MICROSOFT, TT_MS_ID_BIG_5, "BIG-5" },
{ TT_PLATFORM_MICROSOFT, TT_MS_ID_WANSUNG, "Wansung" },
{ TT_PLATFORM_MICROSOFT, TT_MS_ID_JOHAB, "Johab" },
@ -699,7 +698,6 @@ FcSfntNameTranscode (FT_SfntName *sname)
iconv_t cd;
#endif
FcChar8 *utf8;
FcBool redecoded = FcFalse;
for (i = 0; i < NUM_FC_FT_ENCODING; i++)
if (fcFtEncoding[i].platform_id == sname->platform_id &&
@ -710,7 +708,6 @@ FcSfntNameTranscode (FT_SfntName *sname)
return 0;
fromcode = fcFtEncoding[i].fromcode;
retry:
/*
* Many names encoded for TT_PLATFORM_MACINTOSH are broken
* in various ways. Kludge around them.
@ -722,10 +719,6 @@ retry:
{
fromcode = "SJIS";
}
else if (sname->language_id == TT_MAC_LANGID_JAPANESE)
{
fromcode = "SJIS";
}
else if (sname->language_id >= 0x100)
{
/*
@ -755,7 +748,7 @@ retry:
int ilen, olen;
FcChar8 *u8;
FcChar32 ucs4;
/*
* Convert Utf16 to Utf8
*/
@ -789,7 +782,7 @@ retry:
int olen;
FcChar8 *u8;
FcChar32 ucs4;
/*
* Convert Latin1 to Utf8. Freed below
*/
@ -844,17 +837,17 @@ retry:
size_t in_bytes_left = sname->string_len;
size_t out_bytes_left = sname->string_len * FC_UTF8_MAX_LEN;
char *inbuf, *outbuf;
utf8 = malloc (out_bytes_left + 1);
if (!utf8)
{
iconv_close (cd);
return 0;
}
outbuf = (char *) utf8;
inbuf = (char *) sname->string;
while (in_bytes_left)
{
size_t did = iconv (cd,
@ -864,13 +857,6 @@ retry:
{
iconv_close (cd);
free (utf8);
if (!redecoded)
{
/* Regard the encoding as UTF-16BE and try again. */
redecoded = FcTrue;
fromcode = "UTF-16BE";
goto retry;
}
return 0;
}
}
@ -878,14 +864,6 @@ retry:
*outbuf = '\0';
goto done;
}
#else
if (!redecoded)
{
/* Regard the encoding as UTF-16BE and try again. */
redecoded = FcTrue;
fromcode = "UTF-16BE";
goto retry;
}
#endif
return 0;
done:
@ -1226,7 +1204,7 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
int spacing;
/* Support for glyph-variation named-instances. */
FT_MM_Var *mmvar = NULL;
FT_MM_Var *master = NULL;
FT_Var_Named_Style *instance = NULL;
double weight_mult = 1.0;
double width_mult = 1.0;
@ -1280,7 +1258,7 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
goto bail1;
}
ftresult = FT_Get_MM_Var (face, &mmvar);
ftresult = FT_Get_MM_Var (face, &master);
if (id >> 16)
{
@ -1291,17 +1269,17 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
{
/* Query variable font itself. */
unsigned int i;
for (i = 0; i < mmvar->num_axis; i++)
for (i = 0; i < master->num_axis; i++)
{
double min_value = mmvar->axis[i].minimum / (double) (1U << 16);
double def_value = mmvar->axis[i].def / (double) (1U << 16);
double max_value = mmvar->axis[i].maximum / (double) (1U << 16);
double min_value = master->axis[i].minimum / (double) (1U << 16);
double def_value = master->axis[i].def / (double) (1U << 16);
double max_value = master->axis[i].maximum / (double) (1U << 16);
FcObject obj = FC_INVALID_OBJECT;
if (min_value > def_value || def_value > max_value || min_value == max_value)
continue;
switch (mmvar->axis[i].tag)
switch (master->axis[i].tag)
{
case FT_MAKE_TAG ('w','g','h','t'):
obj = FC_WEIGHT_OBJECT;
@ -1343,20 +1321,20 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
id &= 0xFFFF;
}
else if ((id >> 16) - 1 < mmvar->num_namedstyles)
else if ((id >> 16) - 1 < master->num_namedstyles)
{
/* Pull out weight and width from named-instance. */
unsigned int i;
instance = &mmvar->namedstyle[(id >> 16) - 1];
instance = &master->namedstyle[(id >> 16) - 1];
for (i = 0; i < mmvar->num_axis; i++)
for (i = 0; i < master->num_axis; i++)
{
double value = instance->coords[i] / (double) (1U << 16);
double default_value = mmvar->axis[i].def / (double) (1U << 16);
double default_value = master->axis[i].def / (double) (1U << 16);
double mult = default_value ? value / default_value : 1;
//printf ("named-instance, axis %d tag %lx value %g\n", i, mmvar->axis[i].tag, value);
switch (mmvar->axis[i].tag)
//printf ("named-instance, axis %d tag %lx value %g\n", i, master->axis[i].tag, value);
switch (master->axis[i].tag)
{
case FT_MAKE_TAG ('w','g','h','t'):
weight_mult = mult;
@ -1381,12 +1359,12 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
if (!ftresult)
{
unsigned int i;
for (i = 0; i < mmvar->num_axis; i++)
for (i = 0; i < master->num_axis; i++)
{
switch (mmvar->axis[i].tag)
switch (master->axis[i].tag)
{
case FT_MAKE_TAG ('o','p','s','z'):
if (!FcPatternObjectAddDouble (pat, FC_SIZE_OBJECT, mmvar->axis[i].def / (double) (1U << 16)))
if (!FcPatternObjectAddDouble (pat, FC_SIZE_OBJECT, master->axis[i].def / (double) (1U << 16)))
goto bail1;
variable_size = FcTrue;
break;
@ -1512,7 +1490,7 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
case TT_NAME_ID_WWS_FAMILY:
case TT_NAME_ID_TYPOGRAPHIC_FAMILY:
case TT_NAME_ID_FONT_FAMILY:
#if 0
#if 0
case TT_NAME_ID_UNIQUE_ID:
#endif
if (FcDebug () & FC_DBG_SCANV)
@ -1672,7 +1650,7 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
{
FcChar8 *start, *end;
FcChar8 *family;
start = (FcChar8 *) strrchr ((char *) file, '/');
if (start)
start++;
@ -1993,7 +1971,7 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
prop.type == BDF_PROPERTY_TYPE_CARDINAL))
{
FT_Int32 value;
if (prop.type == BDF_PROPERTY_TYPE_INTEGER)
value = prop.u.integer;
else
@ -2185,9 +2163,6 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
if (!FcPatternObjectAddBool (pat, FC_ANTIALIAS_OBJECT, FcFalse))
goto bail2;
}
FcChar8* wrapper = NULL;
#if HAVE_FT_GET_X11_FONT_FORMAT
/*
* Use the (not well documented or supported) X-specific function
@ -2196,45 +2171,11 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
{
const char *font_format = FT_Get_X11_Font_Format (face);
if (font_format)
{
if (!FcPatternObjectAddString (pat, FC_FONTFORMAT_OBJECT, (FcChar8 *) font_format))
goto bail2;
/* If this is not a SFNT font and format is CFF, then it is a standlone CFF font */
if (!FT_IS_SFNT (face) && !strcmp (font_format, "CFF"))
wrapper = (FcChar8*) "CFF";
}
}
#endif
if (!FcPatternObjectAddBool (pat, FC_NAMED_INSTANCE_OBJECT, !!(id > 0xffff)))
goto bail2;
if (FT_IS_SFNT (face))
{
/* If this is an SFNT wrapper, try to sniff the SFNT tag which is the
* first 4 bytes, to see if it is a WOFF or WOFF2 wrapper. */
wrapper = (FcChar8*) "SFNT";
char buf[4];
int fd = FcOpen ((char *) file, O_RDONLY);
if (fd != -1 && read (fd, buf, 4))
{
if (buf[0] == 'w' && buf[1] == 'O' && buf[2] == 'F')
{
if (buf[3] == 'F')
wrapper = (FcChar8*) "WOFF";
else if (buf[3] == '2')
wrapper = (FcChar8*) "WOFF2";
}
}
close (fd);
}
if (wrapper)
if (!FcPatternObjectAddString (pat, FC_FONT_WRAPPER_OBJECT, wrapper))
goto bail2;
/*
* Drop our reference to the charset
*/
@ -2242,13 +2183,13 @@ FcFreeTypeQueryFaceInternal (const FT_Face face,
if (foundry_)
free (foundry_);
if (mmvar)
if (master)
{
#ifdef HAVE_FT_DONE_MM_VAR
if (face->glyph)
FT_Done_MM_Var (face->glyph->library, mmvar);
FT_Done_MM_Var (face->glyph->library, master);
#else
free (mmvar);
free (master);
#endif
}
@ -2258,13 +2199,13 @@ bail2:
FcCharSetDestroy (cs);
bail1:
FcPatternDestroy (pat);
if (mmvar)
if (master)
{
#ifdef HAVE_FT_DONE_MM_VAR
if (face->glyph)
FT_Done_MM_Var (face->glyph->library, mmvar);
FT_Done_MM_Var (face->glyph->library, master);
#else
free (mmvar);
free (master);
#endif
}
if (!nm_share && name_mapping)
@ -2409,26 +2350,12 @@ skip:
cs = NULL;
FT_Done_Face (face);
face = NULL;
#ifdef HAVE_FT_DONE_MM_VAR
FT_Done_MM_Var (ftLibrary, mm_var);
#else
free (mm_var);
#endif
mm_var = NULL;
face_num++;
instance_num = set_instance_num;
if (FT_New_Face (ftLibrary, (const char *) file, face_num, &face))
break;
num_instances = face->style_flags >> 16;
if (num_instances && (!index_set || instance_num))
{
FT_Get_MM_Var (face, &mm_var);
if (!mm_var)
num_instances = 0;
}
}
} while (!err && (!index_set || face_num == set_face_num) && face_num < num_faces);
@ -2716,7 +2643,7 @@ FcFreeTypeCharSetAndSpacing (FT_Face face, FcBlanks *blanks FC_UNUSED, int *spac
#define FcIsSpace(x) (040 == (x))
#define FcIsDigit(c) (('0' <= (c) && (c) <= '9'))
#define FcIsValidScript(x) (FcIsLower(x) || FcIsUpper (x) || FcIsDigit(x) || FcIsSpace(x))
static void
addtag(FcChar8 *complex_, FT_ULong tag)
{
@ -2835,9 +2762,9 @@ GetScriptTags(FT_Face face, FT_ULong tabletag, FT_ULong **stags)
goto Fail;
/* sort the tag list before returning it */
qsort(*stags, p, sizeof(FT_ULong), compareulong);
qsort(*stags, script_count, sizeof(FT_ULong), compareulong);
return p;
return script_count;
Fail:
free(*stags);

View File

@ -408,8 +408,8 @@ typedef struct _FcStrBuf {
typedef struct _FcHashTable FcHashTable;
typedef FcChar32 (* FcHashFunc) (const FcChar8 *data);
typedef int (* FcCompareFunc) (const FcChar8 *v1, const FcChar8 *v2);
typedef FcChar32 (* FcHashFunc) (const void *data);
typedef int (* FcCompareFunc) (const void *v1, const void *v2);
typedef FcBool (* FcCopyFunc) (const void *src, void **dest);
@ -524,6 +524,7 @@ struct _FcConfig {
* and those directives may occur in any order
*/
FcStrSet *configDirs; /* directories to scan for fonts */
FcStrSet *configMapDirs; /* mapped names to generate cache entries */
/*
* List of directories containing fonts,
* built by recursively scanning the set

View File

@ -322,10 +322,8 @@ typedef enum _FcMatcherPriorityDummy {
typedef enum _FcMatcherPriority {
PRI1(FILE),
PRI1(FONT_WRAPPER),
PRI1(FONTFORMAT),
PRI1(VARIABLE),
PRI1(NAMED_INSTANCE),
PRI1(SCALABLE),
PRI1(COLOR),
PRI1(FOUNDRY),
@ -1245,7 +1243,7 @@ FcFontSetSort (FcConfig *config FC_UNUSED,
FcPatternGet (p, FC_LANG, nPatternLang, &patternLang) == FcResultMatch;
nPatternLang++)
;
/* freed below */
nodes = malloc (nnodes * sizeof (FcSortNode) +
nnodes * sizeof (FcSortNode *) +
@ -1311,7 +1309,7 @@ FcFontSetSort (FcConfig *config FC_UNUSED,
for (i = 0; i < nPatternLang; i++)
{
FcValue nodeLang;
if (!patternLangSat[i] &&
FcPatternGet (p, FC_LANG, i, &patternLang) == FcResultMatch &&
FcPatternGet (nodeps[f]->pattern, FC_LANG, 0, &nodeLang) == FcResultMatch)

View File

@ -75,6 +75,4 @@ FC_OBJECT (VARIABLE, FcTypeBool, FcCompareBool)
FC_OBJECT (FONT_HAS_HINT, FcTypeBool, FcCompareBool)
FC_OBJECT (ORDER, FcTypeInteger, FcCompareNumber)
FC_OBJECT (DESKTOP_NAME, FcTypeString, NULL)
FC_OBJECT (NAMED_INSTANCE, FcTypeBool, FcCompareBool)
FC_OBJECT (FONT_WRAPPER, FcTypeString, FcCompareString)
/* ^-------------- Add new objects here. */

View File

@ -3689,10 +3689,7 @@ bail0:
if (realfilename)
FcStrFree (realfilename);
if (!complain)
{
FcStrBufDestroy (&reason);
return FcTrue;
}
if (!ret && complain_again)
{
if (name)

View File

@ -31,10 +31,12 @@ fc_sources = [
# FIXME: obviously fragile, cc.preprocess would be sweet
cpp = cc.cmd_array()
if cc.get_argument_syntax() == 'gcc'
if cc.get_id() == 'gcc'
cpp += ['-E', '-P']
elif cc.get_argument_syntax() == 'msvc'
elif cc.get_id() == 'msvc'
cpp += ['/EP']
elif cc.get_id() == 'clang'
cpp += ['-E', '-P']
else
error('FIXME: implement cc.preprocess')
endif

View File

@ -1,55 +0,0 @@
#! /bin/sh
# -*- sh -*-
# Copyright (C) 2023 fontconfig Authors
# SPDX-License-Identifier: MIT
set -e
: "${TMPDIR=/tmp}"
case "$OSTYPE" in
msys ) MyPWD=$(pwd -W) ;; # On Msys/MinGW, returns a MS Windows style path.
* ) MyPWD=$(pwd) ;; # On any other platforms, returns a Unix style path.
esac
TESTDIR=${srcdir-"$MyPWD"}
BUILDTESTDIR=${builddir-"$MyPWD"}
BASEDIR=$(mktemp -d "$TMPDIR"/fontconfig.XXXXXXXX)
FONTDIR="$BASEDIR"/fonts
CACHEDIR="$BASEDIR"/cache.dir
EXPECTED=${EXPECTED-"out.expected"}
FCLIST="$LOG_COMPILER ../../fc-list/fc-list$EXEEXT"
FCCACHE="$LOG_COMPILER ../../fc-cache/fc-cache$EXEEXT"
FCMATCH="$LOG_COMPILER ../../fc-match/fc-match$EXEEXT"
if [ -x "$(command -v bwrap)" ]; then
BWRAP="$(command -v bwrap)"
fi
FONT1=$TESTDIR/../4x6.pcf
FONT2=$TESTDIR/../8x16.pcf
TEST=""
clean_exit() {
rc=$?
trap - INT TERM ABRT EXIT
if [ "x$TEST" != "x" ]; then
echo "Aborting from '$TEST' with the exit code $rc"
fi
rm -rf $BASEDIR
exit $rc
}
trap clean_exit INT TERM ABRT EXIT
prep() {
rm -rf "$CACHEDIR"
rm -rf "$FONTDIR"
mkdir "$FONTDIR"
}
dotest () {
TEST=$1
test x"$VERBOSE" = x || echo "Running: $TEST"
}

View File

@ -1,104 +0,0 @@
#! /bin/sh
# -*- sh -*-
# Copyright (C) 2023 fontconfig Authors
# SPDX-License-Identifier: MIT
. $(dirname $0)/functions
dotest "Remap - same family name but different filename"
prep
TESTRESULT1=$(mktemp "$TMPDIR"/fontconfig.XXXXXXXX)
TESTRESULT2=$(mktemp "$TMPDIR"/fontconfig.XXXXXXXX)
TESTRESULT3=$(mktemp "$TMPDIR"/fontconfig.XXXXXXXX)
TESTFONT1DIR=$(mktemp -d "$TMPDIR"/fontconfig.XXXXXXXX)
TESTFONT2DIR=$(mktemp -d "$TMPDIR"/fontconfig.XXXXXXXX)
TESTCACHE1DIR=$(mktemp -d "$TMPDIR"/fontconfig.XXXXXXXX)
TESTCACHE2DIR=$(mktemp -d "$TMPDIR"/fontconfig.XXXXXXXX)
TESTBUILD1DIR=$(mktemp -d "$TMPDIR"/fontconfig.XXXXXXXX)
TESTBUILD2DIR=$(mktemp -d "$TMPDIR"/fontconfig.XXXXXXXX)
TESTRUNDIR=$(mktemp -d "$TMPDIR"/fontconfig.XXXXXXXX)
mkdir -p "$TESTBUILD1DIR"/build
mkdir -p "$TESTBUILD2DIR"/build
mkdir -p "$TESTRUNDIR"/fonts
mkdir -p "$TESTRUNDIR"/fonts-cache
cp "$FONT1" "$TESTFONT1DIR"/foo.pcf
cp "$FONT1" "$TESTFONT2DIR"/bar.pcf
touch -m -t $(date -d @0 +%y%m%d%H%M.%S) "$TESTFONT1DIR"
touch -m -t $(date -d @0 +%y%m%d%H%M.%S) "$TESTFONT1DIR"/*
touch -m -t $(date -d @0 +%y%m%d%H%M.%S) "$TESTFONT2DIR"
touch -m -t $(date -d @0 +%y%m%d%H%M.%S) "$TESTFONT2DIR"/*
cat<<_EOF_>>"$TESTBUILD1DIR"/fonts.conf
<fontconfig>
<dir>/usr/share/fonts</dir>
<cachedir>/usr/lib/fontconfig/cache</cachedir>
</fontconfig>
_EOF_
cat<<_EOF_>>"$TESTBUILD2DIR"/fonts.conf
<fontconfig>
<dir salt="flatpak">/usr/share/fonts</dir>
<cachedir>/usr/lib/fontconfig/cache</cachedir>
</fontconfig>
_EOF_
cat<<_EOF_>>"$TESTBUILD2DIR"/bind-fonts.conf
<fontconfig>
<dir salt="flatpak">/usr/share/fonts</dir>
<dir>$TESTRUNDIR/fonts</dir>
<cachedir>/usr/lib/fontconfig/cache</cachedir>
<cachedir>$TESTRUNDIR/fonts-cache</cachedir>
<remap-dir as-path="/usr/share/fonts">$TESTRUNDIR/fonts</remap-dir>
</fontconfig>
_EOF_
# Generate host caches
$BWRAP --bind / / --bind "$TESTCACHE1DIR" /usr/lib/fontconfig/cache --bind "$TESTFONT1DIR" /usr/share/fonts --bind "$TESTBUILD1DIR" /usr/share/fontconfig --dev-bind /dev /dev --setenv FONTCONFIG_FILE "$TESTBUILD1DIR"/fonts.conf $FCCACHE
touch -m -t $(date -d @0 +%y%m%d%H%M.%S) "$TESTCACHE1DIR"
touch -m -t $(date -d @0 +%y%m%d%H%M.%S) "$TESTCACHE1DIR"/*
$BWRAP --bind / / --bind "$TESTCACHE1DIR" /usr/lib/fontconfig/cache --bind "$TESTFONT1DIR" /usr/share/fonts --bind "$TESTBUILD1DIR" /usr/share/fontconfig --dev-bind /dev /dev --setenv FONTCONFIG_FILE "$TESTBUILD1DIR"/fonts.conf $FCMATCH Fixed file > "$TESTRESULT1"
if grep foo.pcf "$TESTRESULT1" > /dev/null; then : ; else
echo "*** Test failed: $TEST"
echo "file property doesn't point to the expected file."
cat "$TESTRESULT1"
exit 1
fi
# Generate runtime caches
$BWRAP --bind / / --bind "$TESTCACHE2DIR" /usr/lib/fontconfig/cache --bind "$TESTFONT2DIR" /usr/share/fonts --bind "$TESTBUILD2DIR" /usr/share/fontconfig --dev-bind /dev /dev --setenv FONTCONFIG_FILE "$TESTBUILD2DIR"/fonts.conf $FCCACHE
touch -m -t $(date -d @0 +%y%m%d%H%M.%S) "$TESTCACHE2DIR"
touch -m -t $(date -d @0 +%y%m%d%H%M.%S) "$TESTCACHE2DIR"/*
$BWRAP --bind / / --bind "$TESTCACHE2DIR" /usr/lib/fontconfig/cache --bind "$TESTFONT2DIR" /usr/share/fonts --bind "$TESTBUILD2DIR" /usr/share/fontconfig --dev-bind /dev /dev --setenv FONTCONFIG_FILE "$TESTBUILD2DIR"/fonts.conf $FCMATCH Fixed file > "$TESTRESULT2"
if grep bar.pcf "$TESTRESULT2" > /dev/null; then : ; else
echo "*** Test failed: $TEST"
echo "file property doesn't point to the expected file."
cat "$TESTRESULT2"
exit 1
fi
# Ask for fonts on similar environemnt to flatpak
$BWRAP --bind / / --ro-bind "$TESTCACHE2DIR" /usr/lib/fontconfig/cache --ro-bind "$TESTFONT2DIR" /usr/share/fonts --bind "$TESTBUILD2DIR" /usr/share/fontconfig --ro-bind "$TESTRUNDIR" "$TESTRUNDIR" --ro-bind "$TESTCACHE1DIR" "$TESTRUNDIR"/fonts-cache --ro-bind "$TESTFONT1DIR" "$TESTRUNDIR"/fonts --dev-bind /dev /dev --setenv FONTCONFIG_FILE "$TESTBUILD2DIR"/bind-fonts.conf $FCMATCH Fixed file > "$TESTRESULT3"
$BWRAP --bind / / --ro-bind "$TESTCACHE2DIR" /usr/lib/fontconfig/cache --ro-bind "$TESTFONT2DIR" /usr/share/fonts --bind "$TESTBUILD2DIR" /usr/share/fontconfig --ro-bind "$TESTRUNDIR" "$TESTRUNDIR" --ro-bind "$TESTCACHE1DIR" "$TESTRUNDIR"/fonts-cache --ro-bind "$TESTFONT1DIR" "$TESTRUNDIR"/fonts --dev-bind /dev /dev --setenv FONTCONFIG_FILE "$TESTBUILD2DIR"/bind-fonts.conf ls $(sed 's/:file=//' "$TESTRESULT3") > /dev/null
# Check the amount of cache files
if [ $(ls "$TESTCACHE1DIR"|wc -l) == 2 ]; then : ; else
echo "*** Test failed: $TEST"
echo "Too much cache files created at host cache dir."
ls "$TESTCACHE1DIR"
exit 1
fi
if [ $(ls "$TESTCACHE2DIR"|wc -l) == 2 ]; then : ; else
echo "*** Test failed: $TEST"
echo "Too much cache files created at runtime cache dir."
ls "$TESTCACHE2DIR"
exit 1
fi
rm -rf "$TESTFONT1DIR" "$TESTFONT2DIR" "$TESTCACHE1DIR" "$TESTCACHE2DIR" "$TESTBUILD1DIR" "$TESTBUILD2DIR"
rm -f "$TESTRESULT1" "$TESTRESULT2"
TEST=""
echo "Success."

View File

@ -29,6 +29,7 @@
struct _FcConfig {
FcStrSet *configDirs; /* directories to scan for fonts */
FcStrSet *configMapDirs;
FcStrSet *fontDirs;
FcStrSet *cacheDirs;
FcStrSet *configFiles; /* config files loaded */

View File

@ -1,64 +0,0 @@
{
"fonts": [
{
"family": [
"Foo"
],
"style": [
"Regular"
],
"file": "/path/to/Foo-VF.otf",
"index": 1,
"namedinstance": false,
"fontversion": 1
},
{
"family": [
"Foo",
"Foo Bold"
],
"style": [
"Bold",
"Regular"
],
"file": "/path/to/Foo-VF.otf",
"index": 65537,
"namedinstance": true,
"fontversion": 1
}
],
"tests": [
{
"method": "match",
"query": {
"family": "Foo",
"style": "Bold",
"namedinstance": false
},
"result": {
"family": "Foo",
"style": "Regular",
"file": "/path/to/Foo-VF.otf",
"index": 1,
"namedinstance": false,
"fontversion": 1
}
},
{
"method": "match",
"query": {
"family": "Foo",
"style": "Bold",
"namedinstance": true
},
"result": {
"family": "Foo",
"style": "Bold",
"file": "/path/to/Foo-VF.otf",
"index": 65537,
"namedinstance": true,
"fontversion": 1
}
}
]
}