fontconfig: Branch 'main' - 8 commits
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jul 3 03:20:05 UTC 2025
.gitlab-ci.yml | 49 ++++++++++++++++++++++++++++++++++++++++---
.gitlab-ci/alpine-cross.sh | 4 +++
.gitlab-ci/alpine-install.sh | 5 ++++
.gitlab-ci/alpine-setup.sh | 3 ++
.gitlab-ci/build.sh | 9 +++++++
.gitlab-ci/ci.template | 2 -
.gitlab-ci/config.yml | 34 ++++++++++++++++++++++++++++-
test/test-mt-fccfg.c | 22 +++++++++++++++++--
8 files changed, 120 insertions(+), 8 deletions(-)
New commits:
commit bb23cc4a9f71448f7a4bfe37b154de60f3ae350e
Merge: 03d02f3 75cc3e6
Author: Akira TAGOH <akira at tagoh.org>
Date: Thu Jul 3 03:20:02 2025 +0000
Merge branch 'ci-alpine' into 'main'
ci: Add Alpine Linux
See merge request fontconfig/fontconfig!450
commit 75cc3e6ef0e451f42d3464ed4d639304ad9a4f58
Author: Akira TAGOH <akira at tagoh.org>
Date: Thu Jul 3 03:31:49 2025 +0900
test: Fix a build issue with musl libc
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/484
Changelog: fixed
diff --git a/test/test-mt-fccfg.c b/test/test-mt-fccfg.c
index 24ad758..3b7d843 100644
--- a/test/test-mt-fccfg.c
+++ b/test/test-mt-fccfg.c
@@ -1,9 +1,12 @@
/* Copyright (C) 2025 fontconfig Authors */
/* SPDX-License-Identifier: HPND */
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
#include <fontconfig/fontconfig.h>
#include <stdio.h>
-#define __USE_XOPEN
#include <pthread.h>
#include <stdlib.h>
@@ -13,6 +16,21 @@ struct thr_arg_s {
int thr_num;
};
+#ifdef _WIN32
+int
+setenv (const char *name, const char *value, int o)
+{
+ size_t len = strlen (name) + strlen (value) + 1;
+ char *s = malloc (len + 1);
+ int ret;
+
+ snprintf (s, len, "%s=%s", name, value);
+ ret = _putenv (s);
+ free (s);
+ return ret;
+}
+#endif
+
static void *
run_test_in_thread (void *arg)
{
@@ -61,7 +79,7 @@ test (void)
if (c1 == c2)
return 1;
/* To make visible if we have any references */
- putenv ("FC_DEBUG=16");
+ setenv ("FC_DEBUG", "16", 1);
FcFini();
return 0;
commit 39d58c7d5c8255797d20b340335fd26d9669980c
Author: Akira TAGOH <akira at tagoh.org>
Date: Thu Jul 3 03:31:02 2025 +0900
ci: install test fonts for Alpine
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ecaeacc..1b91f76 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -47,7 +47,7 @@ variables:
# changing these will force rebuilding the associated image
# Note: these tags have no meaning and are not tied to a particular
# fontconfig version
- ALPINE_TAG: '2025-07-02.2-2e99b6a0d622'
+ ALPINE_TAG: '2025-07-02.2-44bc6e2a4678'
FEDORA_TAG: '2025-07-02.2-594ebb6f3472'
FREEBSD_TAG: '2025-07-02.2-6658aea3e577'
diff --git a/.gitlab-ci/alpine-install.sh b/.gitlab-ci/alpine-install.sh
index 5ae6e23..5507bfd 100644
--- a/.gitlab-ci/alpine-install.sh
+++ b/.gitlab-ci/alpine-install.sh
@@ -2,3 +2,4 @@
set -ex
+python3 build-aux/fetch-testfonts.py --target-dir /testfonts
commit 2ea9dff2975d407f23fe173e3a83665f209eb4dd
Author: Akira TAGOH <akira at tagoh.org>
Date: Thu Jul 3 03:07:21 2025 +0900
ci: Add extra setup hook
to address path for ninja on Alpine
diff --git a/.gitlab-ci/alpine-setup.sh b/.gitlab-ci/alpine-setup.sh
new file mode 100644
index 0000000..95e82d5
--- /dev/null
+++ b/.gitlab-ci/alpine-setup.sh
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+export PATH=$PATH:/usr/lib/ninja-build/bin
diff --git a/.gitlab-ci/build.sh b/.gitlab-ci/build.sh
index 75a834c..68a8cdf 100755
--- a/.gitlab-ci/build.sh
+++ b/.gitlab-ci/build.sh
@@ -101,6 +101,10 @@ clean_exit() {
trap clean_exit INT TERM ABRT EXIT
+if [ -f .gitlab-ci/${FC_DISTRO_NAME}-setup.sh ]; then
+ . .gitlab-ci/${FC_DISTRO_NAME}-setup.sh
+fi
+
if [ x"$buildsys" == "xautotools" ]; then
if [ $subproject -eq 1 ]; then
echo "Subproject build not supported in autotools"
commit 89fabc390bfd7844909d03be409495cefcc25fa9
Author: Akira TAGOH <akira at tagoh.org>
Date: Wed Jul 2 23:08:34 2025 +0900
ci: Use venv to avoid externally-managed-environment error on Alpine
diff --git a/.gitlab-ci/build.sh b/.gitlab-ci/build.sh
index 350bbf5..75a834c 100755
--- a/.gitlab-ci/build.sh
+++ b/.gitlab-ci/build.sh
@@ -165,6 +165,8 @@ if [ x"$buildsys" == "xautotools" ]; then
fi
elif [ x"$buildsys" == "xmeson" ]; then
TASK="pip install"
+ python3 -m venv .venv
+ . .venv/bin/activate
pip install "meson>=1.6.1"
# tomli not required for Python >= 3.11
pip install tomli
@@ -255,6 +257,7 @@ elif [ x"$buildsys" == "xmeson" ]; then
TASK="meson dist"
meson dist -C "$BUILDDIR" 2>&1 | tee -a /tmp/fc-build.log
fi
+ deactivate
fi
TASK=
exit 0
commit 2fc720c2890364fa0d6e64a83d7127ee88794811
Author: Akira TAGOH <akira at tagoh.org>
Date: Wed Jul 2 21:58:48 2025 +0900
ci: make sure build.sh is running on bash
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 00cecde..ecaeacc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -318,7 +318,7 @@ freebsd:14.2 at container-clean:
buildopt+=(-s $FC_BUILDSYS)
buildopt+=(-t $FC_BUILD_TYPE)
buildopt+=(-X $FC_XML_BACKEND)
- sh .gitlab-ci/build.sh ${buildopt[@]}
+ bash .gitlab-ci/build.sh ${buildopt[@]}
variables:
FC_BUILDSYS: autotools
FC_XML_BACKEND: expat
diff --git a/.gitlab-ci/ci.template b/.gitlab-ci/ci.template
index 6e722f5..419341f 100644
--- a/.gitlab-ci/ci.template
+++ b/.gitlab-ci/ci.template
@@ -256,7 +256,7 @@ check-ci-script:
buildopt+=(-s $FC_BUILDSYS)
buildopt+=(-t $FC_BUILD_TYPE)
buildopt+=(-X $FC_XML_BACKEND)
- sh .gitlab-ci/build.sh ${buildopt[@]}
+ bash .gitlab-ci/build.sh ${buildopt[@]}
variables:
FC_BUILDSYS: autotools
FC_XML_BACKEND: expat
commit f9ad44822ebb24a6fd93ed75e0774bba43e52be9
Author: Akira TAGOH <akira at tagoh.org>
Date: Wed Jul 2 21:20:17 2025 +0900
ci: Fix a typo
diff --git a/.gitlab-ci/build.sh b/.gitlab-ci/build.sh
index 22cc4e0..350bbf5 100755
--- a/.gitlab-ci/build.sh
+++ b/.gitlab-ci/build.sh
@@ -8,7 +8,7 @@ cidir=$(dirname $0)
case "$OSTYPE" in
msys) MyPWD=$(pwd -W) ;;
- *BSD) PATH=$PATH:/usr/local/bin ;&
+ *BSD) PATH=$PATH:/usr/local/bin ;;
*) MyPWD=$(pwd) ;;
esac
enable=()
commit be9511f9aab1c0c9349bc68053b0bf1af5a23dce
Author: Akira TAGOH <akira at tagoh.org>
Date: Wed Jul 2 20:32:23 2025 +0900
ci: Add Alpine Linux
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 08bafee..00cecde 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -13,6 +13,10 @@
.templates_sha: &template_sha 32afe5644697e503af18a736587c8619fa036a72
include:
+ # Alpine container builder template
+ - project: 'freedesktop/ci-templates'
+ ref: *template_sha
+ file: '/templates/alpine.yml'
# Fedora container builder template
- project: 'freedesktop/ci-templates'
ref: *template_sha
@@ -43,9 +47,11 @@ variables:
# 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: '2025-07-02.1-64bf940db86f'
- FREEBSD_TAG: '2025-07-02.1-0a70e3d5a7e2'
+ ALPINE_TAG: '2025-07-02.2-2e99b6a0d622'
+ FEDORA_TAG: '2025-07-02.2-594ebb6f3472'
+ FREEBSD_TAG: '2025-07-02.2-6658aea3e577'
+ ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh'
FEDORA_EXEC: 'bash .gitlab-ci/fedora-install.sh'
FREEBSD_EXEC: 'bash .gitlab-ci/freebsd-install.sh'
@@ -92,6 +98,16 @@ check-ci-script:
# Build a container for each distribution + version. The ci-templates
# will re-use the containers if the tag doesn't change.
+alpine:edge at container-prep:
+ extends: .fdo.container-build at alpine
+ stage: prep
+ variables:
+ GIT_STRATEGY: none
+ FDO_DISTRIBUTION_VERSION: 'edge'
+ FDO_DISTRIBUTION_PACKAGES: 'freetype-dev expat-dev python3-dev gperf util-linux-dev json-c-dev curl bash py3-pip gcc ninja-build bubblewrap pkgconf musl-dev uuidgen'
+ FDO_DISTRIBUTION_TAG: $ALPINE_TAG
+ FDO_DISTRIBUTION_EXEC: $ALPINE_EXEC
+
fedora:rawhide at container-prep:
extends: .fdo.container-build at fedora
stage: prep
@@ -167,6 +183,15 @@ freebsd:14.2 at container-prep:
only:
- schedules
+alpine:edge at container-clean:
+ extends:
+ - .container-clean
+ variables:
+ GIT_STRATEGY: none
+ CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/alpine/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
+ FDO_DISTRIBUTION_VERSION: 'edge'
+ FDO_DISTRIBUTION_TAG: $ALPINE_TAG
+
fedora:rawhide at container-clean:
extends:
- .container-clean
@@ -577,6 +602,24 @@ meson-install-static:
#######################################
+t_alpine:edge:standard build:
+ stage: distro
+ extends:
+ - .build at template
+ - .fdo.distribution-image at alpine
+ - .fc_artifacts
+ variables:
+ FC_DISTRO_NAME: alpine
+ FDO_DISTRIBUTION_VERSION: 'edge'
+ FDO_DISTRIBUTION_TAG: $ALPINE_TAG
+ FC_BUILDSYS: meson
+ FC_BUILD_TYPE: shared
+ FC_XML_BACKEND: expat
+ FC_BUILD_DISABLED: nls
+ needs:
+ - 'alpine:edge at container-prep'
+
+
t_fedora:rawhide:standard build:
stage: distro
extends:
diff --git a/.gitlab-ci/alpine-cross.sh b/.gitlab-ci/alpine-cross.sh
new file mode 100644
index 0000000..c770d88
--- /dev/null
+++ b/.gitlab-ci/alpine-cross.sh
@@ -0,0 +1,4 @@
+#! /bin/sh
+
+echo "** Cross build not supported."
+exit 1
diff --git a/.gitlab-ci/alpine-install.sh b/.gitlab-ci/alpine-install.sh
new file mode 100644
index 0000000..5ae6e23
--- /dev/null
+++ b/.gitlab-ci/alpine-install.sh
@@ -0,0 +1,4 @@
+#! /bin/bash
+
+set -ex
+
diff --git a/.gitlab-ci/config.yml b/.gitlab-ci/config.yml
index 6cfacab..26a6bd5 100644
--- a/.gitlab-ci/config.yml
+++ b/.gitlab-ci/config.yml
@@ -1,4 +1,4 @@
-.default_tag: &default_tag "2025-07-02.1"
+.default_tag: &default_tag "2025-07-02.2"
build_patterns:
- name: "autotools shared expat"
@@ -64,6 +64,19 @@ test_patterns:
parent: "meson static libxml2"
distributions:
+ - name: alpine
+ tag: *default_tag
+ base_type: alpine
+ qemu_based: false
+ versions:
+ - "edge"
+ builds:
+ - name: "standard build"
+ variables:
+ FC_BUILDSYS: meson
+ FC_BUILD_TYPE: shared
+ FC_XML_BACKEND: expat
+ FC_BUILD_DISABLED: nls
- name: fedora
tag: *default_tag
base_type: fedora
@@ -120,6 +133,25 @@ distributions:
FC_BUILD_NO_CHECK: 1
packages:
+ alpine:
+ needed:
+ [
+ "freetype-dev",
+ "expat-dev",
+ "python3-dev",
+ "gperf",
+ "util-linux-dev",
+ "json-c-dev",
+ "curl",
+ "bash",
+ "py3-pip",
+ "gcc",
+ "ninja-build",
+ "bubblewrap",
+ "pkgconf",
+ "musl-dev",
+ "uuidgen",
+ ]
fedora:
needed:
[
More information about the Fontconfig
mailing list