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