[Fontconfig] fontconfig: Branch 'main' - 3 commits
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jul 11 08:28:45 UTC 2023
.gitlab-ci.yml | 840 +++++++++++++++++++++++++++++--------------
.gitlab-ci/.gitignore | 1
.gitlab-ci/build.sh | 132 ++++++
.gitlab-ci/ci.template | 200 ++++++++++
.gitlab-ci/config.yml | 86 ++++
.gitlab-ci/fedora-cross.sh | 3
.gitlab-ci/fedora-install.sh | 3
.gitlab-ci/other.yml | 142 +++++++
8 files changed, 1142 insertions(+), 265 deletions(-)
New commits:
commit b1d149347a48b2484e93ffbbb2bc4c39462a46cf
Author: Akira TAGOH <akira at tagoh.org>
Date: Thu Apr 6 16:46:54 2023 +0900
Rework CI implementation v2
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f495fe5..9387806 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,6 +20,7 @@ include:
- project: 'freedesktop/ci-templates'
ref: *template_sha
file: '/templates/ci-fairy.yml'
+ - local: '.gitlab-ci/other.yml'
stages:
- prep
@@ -34,7 +35,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
- FEDORA_TAG: '2023-03-31.0-b6a9c5563c63'
+ FEDORA_TAG: '2023-03-31.0-e8249e0940af'
FEDORA_EXEC: 'bash .gitlab-ci/fedora-install.sh'
@@ -48,46 +49,32 @@ variables:
# will re-use the containers if the tag doesn't change.
fedora:rawhide at container-prep:
- extends:
- - .fdo.container-build at fedora
+ extends: .fdo.container-build at 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'
+ 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 at container-prep:
- extends:
- - .fdo.container-build at fedora
+ extends: .fdo.container-build at 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'
+ 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:37 at container-prep:
- extends:
- - .fdo.container-build at fedora
+ extends: .fdo.container-build at fedora
stage: prep
variables:
GIT_STRATEGY: none
FDO_DISTRIBUTION_VERSION: '37'
- 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'
- FDO_DISTRIBUTION_TAG: $FEDORA_TAG
- FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
-
-fedora:36 at container-prep:
- extends:
- - .fdo.container-build at fedora
- stage: prep
- variables:
- GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '36'
- 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'
+ 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
@@ -151,15 +138,6 @@ fedora:37 at container-clean:
FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
-fedora:36 at 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: '36'
- FDO_DISTRIBUTION_TAG: $FEDORA_TAG
-
#######################################
# #
@@ -167,72 +145,7 @@ fedora:36 at container-clean:
# #
#######################################
-.build autotools shared expat:
- stage: test
- 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" "$PREFIX"
- - cd "$BUILDDIR"
- - env
- - r=0
- - ../autogen.sh --prefix="$PREFIX" --enable-shared --disable-static --disable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
- - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - make distcheck V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - mv /tmp/fc-build.log .
- - exit $r
-.build autotools shared libxml2:
- stage: test
- 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" "$PREFIX"
- - cd "$BUILDDIR"
- - env
- - r=0
- - ../autogen.sh --prefix="$PREFIX" --enable-shared --disable-static --enable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
- - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - make distcheck V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - mv /tmp/fc-build.log .
- - exit $r
-.build autotools static expat:
- stage: test
- 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" "$PREFIX"
- - cd "$BUILDDIR"
- - env
- - r=0
- - ../autogen.sh --prefix="$PREFIX" --disable-shared --enable-static --disable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
- - make check V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - mv /tmp/fc-build.log .
- - exit $r
-.build autotools static libxml2:
- stage: test
- 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" "$PREFIX"
- - cd "$BUILDDIR"
- - env
- - r=0
- - ../autogen.sh --prefix="$PREFIX" --disable-shared --enable-static --enable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
- - make check V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - mv /tmp/fc-build.log .
- - exit $r
-.build meson shared:
- stage: test
+.build at template:
before_script:
- pip install meson
script:
@@ -240,32 +153,28 @@ fedora:36 at container-clean:
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
- export BUILDDIR="$(pwd)/build-$BUILD_ID"
- export MAKEFLAGS="-j4"
- - env
- - r=0
- - meson --prefix="$PREFIX" --default-library=shared "$BUILDDIR" 2>&1 | tee /tmp/fc-build.log || r=$?
- - meson compile -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - meson test -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - meson install -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - meson dist -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - mv /tmp/fc-build.log .
- - exit $r
-.build meson static:
- stage: test
- before_script:
- - pip install meson
- 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"
- - env
- - r=0
- - meson --prefix="$PREFIX" --default-library=static "$BUILDDIR" 2>&1 | tee /tmp/fc-build.log || r=$?
- - meson compile -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - meson test -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - meson install -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - mv /tmp/fc-build.log .
- - exit $r
+ - |
+ 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)
+ 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_artifacts:
artifacts:
name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
@@ -285,288 +194,403 @@ fedora:36 at container-clean:
t_fedora:rawhide:autotools shared expat:
extends:
- - .build autotools shared expat
+ - .build at template
- .fdo.distribution-image at 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 at container-prep'
t_fedora:rawhide:autotools shared libxml2:
extends:
- - .build autotools shared libxml2
+ - .build at template
- .fdo.distribution-image at 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 at container-prep'
t_fedora:rawhide:autotools static expat:
extends:
- - .build autotools static expat
+ - .build at template
- .fdo.distribution-image at 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 at container-prep'
t_fedora:rawhide:autotools static libxml2:
extends:
- - .build autotools static libxml2
+ - .build at template
- .fdo.distribution-image at 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 at container-prep'
-t_fedora:rawhide:meson shared:
+t_fedora:rawhide:mingw autotools static libxml2:
extends:
- - .build meson shared
+ - .build at template
- .fdo.distribution-image at 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 at container-prep'
-t_fedora:rawhide:meson static:
+t_fedora:rawhide:meson shared expat:
extends:
- - .build meson static
+ - .build at template
- .fdo.distribution-image at 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 at container-prep'
-t_fedora:38:autotools shared expat:
+t_fedora:rawhide:meson static expat:
extends:
- - .build autotools shared expat
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
- FDO_DISTRIBUTION_VERSION: '38'
+ 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:38 at container-prep'
+ - 'fedora:rawhide at container-prep'
-t_fedora:38:autotools shared libxml2:
+t_fedora:rawhide:mingw meson static expat:
extends:
- - .build autotools shared libxml2
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
- FDO_DISTRIBUTION_VERSION: '38'
+ 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:38 at container-prep'
+ - 'fedora:rawhide at container-prep'
-t_fedora:38:autotools static expat:
+t_fedora:38:autotools shared expat:
extends:
- - .build autotools static expat
+ - .build at template
- .fdo.distribution-image at 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 at container-prep'
-t_fedora:38:autotools static libxml2:
+t_fedora:38:autotools shared libxml2:
extends:
- - .build autotools static libxml2
+ - .build at template
- .fdo.distribution-image at 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 at container-prep'
-t_fedora:38:meson shared:
+t_fedora:38:autotools static expat:
extends:
- - .build meson shared
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
+ FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: '38'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FC_BUILDSYS: autotools
+ FC_BUILD_TYPE: static
+ FC_XML_BACKEND: expat
needs:
- 'fedora:38 at container-prep'
-t_fedora:38:meson static:
+t_fedora:38:autotools static libxml2:
extends:
- - .build meson static
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
+ FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: '38'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FC_BUILDSYS: autotools
+ FC_BUILD_TYPE: static
+ FC_XML_BACKEND: libxml2
needs:
- 'fedora:38 at container-prep'
-t_fedora:37:autotools shared expat:
+t_fedora:38:mingw autotools static libxml2:
extends:
- - .build autotools shared expat
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
- FDO_DISTRIBUTION_VERSION: '37'
+ FC_DISTRO_NAME: fedora
+ FDO_DISTRIBUTION_VERSION: '38'
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:37 at container-prep'
+ - 'fedora:38 at container-prep'
-t_fedora:37:autotools shared libxml2:
+t_fedora:38:meson shared expat:
extends:
- - .build autotools shared libxml2
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
- FDO_DISTRIBUTION_VERSION: '37'
+ 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:37 at container-prep'
+ - 'fedora:38 at container-prep'
-t_fedora:37:autotools static expat:
+t_fedora:38:meson static expat:
extends:
- - .build autotools static expat
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
- FDO_DISTRIBUTION_VERSION: '37'
+ FC_DISTRO_NAME: fedora
+ FDO_DISTRIBUTION_VERSION: '38'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FC_BUILDSYS: meson
+ FC_BUILD_TYPE: static
+ FC_XML_BACKEND: expat
needs:
- - 'fedora:37 at container-prep'
+ - 'fedora:38 at container-prep'
-t_fedora:37:autotools static libxml2:
+t_fedora:38:mingw meson static expat:
extends:
- - .build autotools static libxml2
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
- FDO_DISTRIBUTION_VERSION: '37'
+ FC_DISTRO_NAME: fedora
+ FDO_DISTRIBUTION_VERSION: '38'
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:37 at container-prep'
+ - 'fedora:38 at container-prep'
-t_fedora:37:meson shared:
+t_fedora:37:autotools shared expat:
extends:
- - .build meson shared
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
+ FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FC_BUILDSYS: autotools
+ FC_BUILD_TYPE: shared
+ FC_XML_BACKEND: expat
needs:
- 'fedora:37 at container-prep'
-t_fedora:37:meson static:
+t_fedora:37:autotools shared libxml2:
extends:
- - .build meson static
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
+ FC_DISTRO_NAME: fedora
FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FC_BUILDSYS: autotools
+ FC_BUILD_TYPE: shared
+ FC_XML_BACKEND: libxml2
+ FC_BUILD_DISTCHECK: 1
needs:
- 'fedora:37 at container-prep'
-t_fedora:36:autotools shared expat:
+t_fedora:37:autotools static expat:
extends:
- - .build autotools shared expat
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
- FDO_DISTRIBUTION_VERSION: '36'
+ FC_DISTRO_NAME: fedora
+ FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FC_BUILDSYS: autotools
+ FC_BUILD_TYPE: static
+ FC_XML_BACKEND: expat
needs:
- - 'fedora:36 at container-prep'
+ - 'fedora:37 at container-prep'
-t_fedora:36:autotools shared libxml2:
+t_fedora:37:autotools static libxml2:
extends:
- - .build autotools shared libxml2
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
- FDO_DISTRIBUTION_VERSION: '36'
+ FC_DISTRO_NAME: fedora
+ FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FC_BUILDSYS: autotools
+ FC_BUILD_TYPE: static
+ FC_XML_BACKEND: libxml2
needs:
- - 'fedora:36 at container-prep'
+ - 'fedora:37 at container-prep'
-t_fedora:36:autotools static expat:
+t_fedora:37:mingw autotools static libxml2:
extends:
- - .build autotools static expat
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
- FDO_DISTRIBUTION_VERSION: '36'
+ FC_DISTRO_NAME: fedora
+ FDO_DISTRIBUTION_VERSION: '37'
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:36 at container-prep'
+ - 'fedora:37 at container-prep'
-t_fedora:36:autotools static libxml2:
+t_fedora:37:meson shared expat:
extends:
- - .build autotools static libxml2
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
- FDO_DISTRIBUTION_VERSION: '36'
+ FC_DISTRO_NAME: fedora
+ FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FC_BUILDSYS: meson
+ FC_BUILD_TYPE: shared
+ FC_XML_BACKEND: expat
needs:
- - 'fedora:36 at container-prep'
+ - 'fedora:37 at container-prep'
-t_fedora:36:meson shared:
+t_fedora:37:meson static expat:
extends:
- - .build meson shared
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
- FDO_DISTRIBUTION_VERSION: '36'
+ FC_DISTRO_NAME: fedora
+ FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FC_BUILDSYS: meson
+ FC_BUILD_TYPE: static
+ FC_XML_BACKEND: expat
needs:
- - 'fedora:36 at container-prep'
+ - 'fedora:37 at container-prep'
-t_fedora:36:meson static:
+t_fedora:37:mingw meson static expat:
extends:
- - .build meson static
+ - .build at template
- .fdo.distribution-image at fedora
- .fc_artifacts
variables:
- FDO_DISTRIBUTION_VERSION: '36'
+ FC_DISTRO_NAME: fedora
+ FDO_DISTRIBUTION_VERSION: '37'
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:36 at container-prep'
+ - 'fedora:37 at container-prep'
+
diff --git a/.gitlab-ci/.gitignore b/.gitlab-ci/.gitignore
new file mode 100644
index 0000000..aeaec0f
--- /dev/null
+++ b/.gitlab-ci/.gitignore
@@ -0,0 +1 @@
+/*~
diff --git a/.gitlab-ci/build.sh b/.gitlab-ci/build.sh
new file mode 100755
index 0000000..7c3c47b
--- /dev/null
+++ b/.gitlab-ci/build.sh
@@ -0,0 +1,132 @@
+#! /bin/bash
+
+set -ex
+set -o pipefail
+
+case "$OSTYPE" in
+ msys) MyPWD=$(pwd -W) ;;
+ *) MyPWD=$(pwd) ;;
+esac
+enable=()
+disable=()
+distcheck=0
+enable_install=1
+cross=0
+buildsys="autotools"
+type="both"
+arch=""
+buildopt=()
+SRCDIR=$MyPWD
+export BUILD_ID=${BUILD_ID:-fontconfig-$$}
+export PREFIX=${PREFIX:-$MyPWD/prefix}
+export BUILDDIR=${BUILDDIR:-$MyPWD/build}
+
+while getopts a:ce:d:hIs:t:X: OPT
+do
+ case $OPT in
+ 'a') arch=$OPTARG ;;
+ 'c') distcheck=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=$?
+ make check V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ 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
+ 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=$?
+ meson test -v -C "$BUILDDIR" 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ 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
diff --git a/.gitlab-ci/ci.template b/.gitlab-ci/ci.template
index 2166175..43572db 100644
--- a/.gitlab-ci/ci.template
+++ b/.gitlab-ci/ci.template
@@ -24,6 +24,7 @@ include:
- project: 'freedesktop/ci-templates'
ref: *template_sha
file: '/templates/ci-fairy.yml'
+ - local: '.gitlab-ci/other.yml'
stages:
- prep
@@ -61,8 +62,7 @@ variables:
{% for version in distro.versions %}
{{distro.name}}:{{version}}@container-prep:
- extends:
- - .fdo.container-build@{{distro.name}}
+ extends: .fdo.container-build@{{distro.name}}
stage: prep
variables:
GIT_STRATEGY: none
@@ -126,72 +126,7 @@ variables:
# #
#######################################
-.build autotools shared expat:
- stage: test
- 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" "$PREFIX"
- - cd "$BUILDDIR"
- - env
- - r=0
- - ../autogen.sh --prefix="$PREFIX" --enable-shared --disable-static --disable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
- - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - make distcheck V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - mv /tmp/fc-build.log .
- - exit $r
-.build autotools shared libxml2:
- stage: test
- 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" "$PREFIX"
- - cd "$BUILDDIR"
- - env
- - r=0
- - ../autogen.sh --prefix="$PREFIX" --enable-shared --disable-static --enable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
- - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - make distcheck V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - mv /tmp/fc-build.log .
- - exit $r
-.build autotools static expat:
- stage: test
- 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" "$PREFIX"
- - cd "$BUILDDIR"
- - env
- - r=0
- - ../autogen.sh --prefix="$PREFIX" --disable-shared --enable-static --disable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
- - make check V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - mv /tmp/fc-build.log .
- - exit $r
-.build autotools static libxml2:
- stage: test
- 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" "$PREFIX"
- - cd "$BUILDDIR"
- - env
- - r=0
- - ../autogen.sh --prefix="$PREFIX" --disable-shared --enable-static --enable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
- - make check V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
- - mv /tmp/fc-build.log .
- - exit $r
-.build meson shared:
- stage: test
+.build at template:
before_script:
- pip install meson
script:
@@ -199,32 +134,28 @@ variables:
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
- export BUILDDIR="$(pwd)/build-$BUILD_ID"
- export MAKEFLAGS="-j4"
- - env
- - r=0
- - meson --prefix="$PREFIX" --default-library=shared "$BUILDDIR" 2>&1 | tee /tmp/fc-build.log || r=$?
- - meson compile -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - meson test -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - meson install -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - meson dist -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - mv /tmp/fc-build.log .
- - exit $r
-.build meson static:
- stage: test
- before_script:
- - pip install meson
- 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"
- - env
- - r=0
- - meson --prefix="$PREFIX" --default-library=static "$BUILDDIR" 2>&1 | tee /tmp/fc-build.log || r=$?
- - meson compile -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - meson test -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - meson install -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
- - mv /tmp/fc-build.log .
- - exit $r
+ - |
+ 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)
+ 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_artifacts:
artifacts:
name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
@@ -243,20 +174,21 @@ variables:
{% for distro in distributions %}
{% for version in distro.versions %}
-{% for bs in distro.buildsys %}
+{% for build in distro.builds %}
-t_{{distro.name}}:{{version}}:{{bs}}:
+t_{{distro.name}}:{{version}}:{{build.name}}:
extends:
- - .build {{bs}}
+ - .build at template
- .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 distro.build is defined and distro.build.extra_variables is defined %}
- {% for var in distro.build.extra_variables %}
- {{var}}
+ {% if build.variables is defined %}
+ {% for key, value in build.variables.items() %}
+ {{key}}: {{value}}
{% endfor %}
{% endif %}
needs:
@@ -265,3 +197,4 @@ t_{{distro.name}}:{{version}}:{{bs}}:
{% endfor %}
{% endfor %}
{% endfor %}
+
diff --git a/.gitlab-ci/config.yml b/.gitlab-ci/config.yml
index cf1ae0f..6ddd5bf 100644
--- a/.gitlab-ci/config.yml
+++ b/.gitlab-ci/config.yml
@@ -8,14 +8,53 @@ distributions:
- "rawhide"
- "38"
- "37"
- - "36"
- buildsys:
- - "autotools shared expat"
- - "autotools shared libxml2"
- - "autotools static expat"
- - "autotools static libxml2"
- - "meson shared"
- - "meson static"
+ 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: "autotools static expat"
+ variables:
+ FC_BUILDSYS: autotools
+ FC_BUILD_TYPE: static
+ FC_XML_BACKEND: expat
+ - name: "autotools static libxml2"
+ variables:
+ FC_BUILDSYS: autotools
+ FC_BUILD_TYPE: static
+ FC_XML_BACKEND: libxml2
+ - name: "mingw autotools static libxml2"
+ variables:
+ FC_BUILDSYS: autotools
+ FC_BUILD_TYPE: static
+ FC_XML_BACKEND: libxml2
+ FC_BUILD_PLATFORM: mingw
+ FC_BUILD_ARCH: x86_64-mingw32
+ - name: "meson shared expat"
+ variables:
+ FC_BUILDSYS: meson
+ FC_BUILD_TYPE: shared
+ FC_XML_BACKEND: expat
+ - name: "meson static expat"
+ variables:
+ FC_BUILDSYS: meson
+ FC_BUILD_TYPE: static
+ FC_XML_BACKEND: expat
+ - name: "mingw meson static expat"
+ 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
packages:
fedora:
@@ -39,5 +78,9 @@ packages:
"ninja-build",
"wget",
"python3-pip",
+ "mingw64-gettext",
+ "mingw64-freetype",
+ "mingw64-libxml2",
+ "wine",
]
use_qemu: false
diff --git a/.gitlab-ci/fedora-cross.sh b/.gitlab-ci/fedora-cross.sh
new file mode 100644
index 0000000..27cd003
--- /dev/null
+++ b/.gitlab-ci/fedora-cross.sh
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+eval `rpm --eval %{mingw64_env}`
diff --git a/.gitlab-ci/other.yml b/.gitlab-ci/other.yml
new file mode 100644
index 0000000..42caf1c
--- /dev/null
+++ b/.gitlab-ci/other.yml
@@ -0,0 +1,142 @@
+# 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
commit 3c16ea284903ca9870d22835437f5640d50b49a6
Author: Akira TAGOH <akira at tagoh.org>
Date: Fri Mar 31 23:27:21 2023 +0900
Fix a typo
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7881432..f495fe5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -34,7 +34,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
- FEDORA_TAG: '2023-03-31.0-b3f8fc5f8b0d'
+ FEDORA_TAG: '2023-03-31.0-b6a9c5563c63'
FEDORA_EXEC: 'bash .gitlab-ci/fedora-install.sh'
@@ -118,7 +118,7 @@ fedora:36 at container-prep:
script:
- ci-fairy -v --authfile $AUTHFILE delete-image
--repository $FDO_DISTRIBUTION_NAME/$FDO_DISTRIBUTION_VERSION
- --exclude-tag $FDO_DISTRIBUTION_TAG
+ --exclude-tag $FDO_DISTRIBUTION_TAG
dependencies: []
allow_failure: true
only:
diff --git a/.gitlab-ci/ci.template b/.gitlab-ci/ci.template
index 477b491..2166175 100644
--- a/.gitlab-ci/ci.template
+++ b/.gitlab-ci/ci.template
@@ -100,7 +100,7 @@ variables:
script:
- ci-fairy -v --authfile $AUTHFILE delete-image
--repository $FDO_DISTRIBUTION_NAME/$FDO_DISTRIBUTION_VERSION
- --exclude-tag $FDO_DISTRIBUTION_TAG
+ --exclude-tag $FDO_DISTRIBUTION_TAG
dependencies: []
allow_failure: true
only:
commit 428515daaed85ba37eee6d21fc99a53976f6d05c
Author: Akira TAGOH <akira at tagoh.org>
Date: Fri Mar 31 23:21:45 2023 +0900
Rework CI implementation
Use ci-templates.
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9aefae4..7881432 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,17 +1,174 @@
-image: fedora:rawhide
+# 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 dd90ac0d7a03b574eb4f18d7358083f0c97825f3
+
+include:
+ # Fedora container builder template
+ - project: 'freedesktop/ci-templates'
+ ref: *template_sha
+ file: '/templates/fedora.yml'
+ - project: 'freedesktop/ci-templates'
+ ref: *template_sha
+ file: '/templates/ci-fairy.yml'
stages:
- - build
+ - prep
+ - test
+ - container_clean
+
+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-03-31.0-b3f8fc5f8b0d'
+
+ FEDORA_EXEC: 'bash .gitlab-ci/fedora-install.sh'
+
+#######################################
+# #
+# 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 at container-prep:
+ extends:
+ - .fdo.container-build at 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'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
-shared-build:
- stage: build
+fedora:38 at container-prep:
+ extends:
+ - .fdo.container-build at 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'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
+
+fedora:37 at container-prep:
+ extends:
+ - .fdo.container-build at fedora
+ stage: prep
+ variables:
+ GIT_STRATEGY: none
+ FDO_DISTRIBUTION_VERSION: '37'
+ 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'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
+
+fedora:36 at container-prep:
+ extends:
+ - .fdo.container-build at fedora
+ stage: prep
+ variables:
+ GIT_STRATEGY: none
+ FDO_DISTRIBUTION_VERSION: '36'
+ 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'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ FDO_DISTRIBUTION_EXEC: $FEDORA_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 at 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:38 at 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
+
+fedora:37 at 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: '37'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+
+fedora:36 at 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: '36'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+
+
+#######################################
+# #
+# build stage #
+# #
+#######################################
+
+.build autotools shared expat:
+ stage: test
script:
- export BUILD_ID="fontconfig-$CI_JOB_NAME_$CI_COMMIT_SHA-$CI_JOB_ID"
- export PREFIX="$(pwd)/prefix-$BUILD_ID"
@@ -19,268 +176,397 @@ shared-build:
- export MAKEFLAGS="-j4"
- 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
- paths:
- - 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
+ - env
+ - r=0
+ - ../autogen.sh --prefix="$PREFIX" --enable-shared --disable-static --disable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
+ - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - make distcheck V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - mv /tmp/fc-build.log .
+ - exit $r
+.build autotools shared libxml2:
+ stage: test
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"
+ - mkdir "$BUILDDIR" "$PREFIX"
- cd "$BUILDDIR"
- - ../autogen.sh --prefix="$PREFIX" --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*
-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
+ - env
+ - r=0
+ - ../autogen.sh --prefix="$PREFIX" --enable-shared --disable-static --enable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
+ - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - make distcheck V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - mv /tmp/fc-build.log .
+ - exit $r
+.build autotools static expat:
+ stage: test
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"
+ - mkdir "$BUILDDIR" "$PREFIX"
- 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
+ - env
+ - r=0
+ - ../autogen.sh --prefix="$PREFIX" --disable-shared --enable-static --disable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
+ - make check V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - mv /tmp/fc-build.log .
+ - exit $r
+.build autotools static libxml2:
+ stage: test
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
+ - mkdir "$BUILDDIR" "$PREFIX"
+ - cd "$BUILDDIR"
+ - env
+ - r=0
+ - ../autogen.sh --prefix="$PREFIX" --disable-shared --enable-static --enable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
+ - make check V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - mv /tmp/fc-build.log .
+ - exit $r
+.build meson shared:
+ stage: test
+ before_script:
+ - pip install meson
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
+ - env
+ - r=0
+ - meson --prefix="$PREFIX" --default-library=shared "$BUILDDIR" 2>&1 | tee /tmp/fc-build.log || r=$?
+ - meson compile -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - meson test -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - meson install -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - meson dist -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - mv /tmp/fc-build.log .
+ - exit $r
+.build meson static:
+ stage: test
+ before_script:
+ - pip install meson
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"
+ - export MAKEFLAGS="-j4"
+ - env
+ - r=0
+ - meson --prefix="$PREFIX" --default-library=static "$BUILDDIR" 2>&1 | tee /tmp/fc-build.log || r=$?
+ - meson compile -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - meson test -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - meson install -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - mv /tmp/fc-build.log .
+ - exit $r
+.fc_artifacts:
artifacts:
name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
when: always
+ expire_in: 5 days
paths:
- - build-*/meson-logs/*txt
- - prefix-*
+ - fc-build.log
+ - build-*/fontconfig-*.tar.*
+ - build-*/fontconfig*/_build
+
+#######################################
+# #
+# test stage #
+# #
+#######################################
+
-meson vs2019 amd64:
- extends: '.build meson windows'
+t_fedora:rawhide:autotools shared expat:
+ extends:
+ - .build autotools shared expat
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
variables:
- ARCH: 'amd64'
+ FDO_DISTRIBUTION_VERSION: 'rawhide'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:rawhide at container-prep'
-meson vs2019 x86:
- extends: '.build meson windows'
+
+t_fedora:rawhide:autotools shared libxml2:
+ extends:
+ - .build autotools shared libxml2
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
variables:
- ARCH: 'x86'
+ FDO_DISTRIBUTION_VERSION: 'rawhide'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:rawhide at container-prep'
+
+
+t_fedora:rawhide:autotools static expat:
+ extends:
+ - .build autotools static expat
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: 'rawhide'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:rawhide at container-prep'
+
+
+t_fedora:rawhide:autotools static libxml2:
+ extends:
+ - .build autotools static libxml2
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: 'rawhide'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:rawhide at container-prep'
+
+
+t_fedora:rawhide:meson shared:
+ extends:
+ - .build meson shared
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: 'rawhide'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:rawhide at container-prep'
+
+
+t_fedora:rawhide:meson static:
+ extends:
+ - .build meson static
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: 'rawhide'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:rawhide at container-prep'
+
+
+t_fedora:38:autotools shared expat:
+ extends:
+ - .build autotools shared expat
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '38'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:38 at container-prep'
+
+
+t_fedora:38:autotools shared libxml2:
+ extends:
+ - .build autotools shared libxml2
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '38'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:38 at container-prep'
+
+
+t_fedora:38:autotools static expat:
+ extends:
+ - .build autotools static expat
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '38'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:38 at container-prep'
+
+
+t_fedora:38:autotools static libxml2:
+ extends:
+ - .build autotools static libxml2
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '38'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:38 at container-prep'
+
+
+t_fedora:38:meson shared:
+ extends:
+ - .build meson shared
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '38'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:38 at container-prep'
+
+
+t_fedora:38:meson static:
+ extends:
+ - .build meson static
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '38'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:38 at container-prep'
+
+
+t_fedora:37:autotools shared expat:
+ extends:
+ - .build autotools shared expat
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '37'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:37 at container-prep'
+
+
+t_fedora:37:autotools shared libxml2:
+ extends:
+ - .build autotools shared libxml2
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '37'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:37 at container-prep'
+
+
+t_fedora:37:autotools static expat:
+ extends:
+ - .build autotools static expat
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '37'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:37 at container-prep'
+
+
+t_fedora:37:autotools static libxml2:
+ extends:
+ - .build autotools static libxml2
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '37'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:37 at container-prep'
+
+
+t_fedora:37:meson shared:
+ extends:
+ - .build meson shared
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '37'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:37 at container-prep'
+
+
+t_fedora:37:meson static:
+ extends:
+ - .build meson static
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '37'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:37 at container-prep'
+
+
+t_fedora:36:autotools shared expat:
+ extends:
+ - .build autotools shared expat
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '36'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:36 at container-prep'
+
+
+t_fedora:36:autotools shared libxml2:
+ extends:
+ - .build autotools shared libxml2
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '36'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:36 at container-prep'
+
+
+t_fedora:36:autotools static expat:
+ extends:
+ - .build autotools static expat
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '36'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:36 at container-prep'
+
+
+t_fedora:36:autotools static libxml2:
+ extends:
+ - .build autotools static libxml2
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '36'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:36 at container-prep'
+
+
+t_fedora:36:meson shared:
+ extends:
+ - .build meson shared
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '36'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:36 at container-prep'
+
+
+t_fedora:36:meson static:
+ extends:
+ - .build meson static
+ - .fdo.distribution-image at fedora
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '36'
+ FDO_DISTRIBUTION_TAG: $FEDORA_TAG
+ needs:
+ - 'fedora:36 at container-prep'
-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
diff --git a/.gitlab-ci/ci.template b/.gitlab-ci/ci.template
new file mode 100644
index 0000000..477b491
--- /dev/null
+++ b/.gitlab-ci/ci.template
@@ -0,0 +1,267 @@
+# 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 dd90ac0d7a03b574eb4f18d7358083f0c97825f3
+
+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'
+
+stages:
+ - prep
+ - test
+ - 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 %}
+ {{"%-13s"| 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 %}
+ {{"%-13s"| format(distro.name.upper() + '_EXEC:')}}'bash .gitlab-ci/{{distro.name}}-install.sh'
+{% endfor %}
+
+#######################################
+# #
+# 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:
+ extends:
+ - .fdo.container-build@{{distro.name}}
+ 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 #
+# #
+#######################################
+
+.build autotools shared expat:
+ stage: test
+ 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" "$PREFIX"
+ - cd "$BUILDDIR"
+ - env
+ - r=0
+ - ../autogen.sh --prefix="$PREFIX" --enable-shared --disable-static --disable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
+ - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - make distcheck V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - mv /tmp/fc-build.log .
+ - exit $r
+.build autotools shared libxml2:
+ stage: test
+ 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" "$PREFIX"
+ - cd "$BUILDDIR"
+ - env
+ - r=0
+ - ../autogen.sh --prefix="$PREFIX" --enable-shared --disable-static --enable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
+ - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - make distcheck V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - mv /tmp/fc-build.log .
+ - exit $r
+.build autotools static expat:
+ stage: test
+ 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" "$PREFIX"
+ - cd "$BUILDDIR"
+ - env
+ - r=0
+ - ../autogen.sh --prefix="$PREFIX" --disable-shared --enable-static --disable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
+ - make check V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - mv /tmp/fc-build.log .
+ - exit $r
+.build autotools static libxml2:
+ stage: test
+ 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" "$PREFIX"
+ - cd "$BUILDDIR"
+ - env
+ - r=0
+ - ../autogen.sh --prefix="$PREFIX" --disable-shared --enable-static --enable-libxml2 2>&1 | tee /tmp/fc-build.log || r=$?
+ - make check V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - make install V=1 2>&1 | tee -a /tmp/fc-build.log || r=$?
+ - mv /tmp/fc-build.log .
+ - exit $r
+.build meson shared:
+ stage: test
+ before_script:
+ - pip install meson
+ 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"
+ - env
+ - r=0
+ - meson --prefix="$PREFIX" --default-library=shared "$BUILDDIR" 2>&1 | tee /tmp/fc-build.log || r=$?
+ - meson compile -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - meson test -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - meson install -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - meson dist -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - mv /tmp/fc-build.log .
+ - exit $r
+.build meson static:
+ stage: test
+ before_script:
+ - pip install meson
+ 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"
+ - env
+ - r=0
+ - meson --prefix="$PREFIX" --default-library=static "$BUILDDIR" 2>&1 | tee /tmp/fc-build.log || r=$?
+ - meson compile -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - meson test -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - meson install -v -C "$BUILDDIR" | tee -a /tmp/fc-build.log || r=$?
+ - mv /tmp/fc-build.log .
+ - exit $r
+.fc_artifacts:
+ artifacts:
+ name: fontconfig-$CI_COMMIT_SHA-$CI_JOB_ID
+ when: always
+ expire_in: 5 days
+ paths:
+ - fc-build.log
+ - build-*/fontconfig-*.tar.*
+ - build-*/fontconfig*/_build
+
+#######################################
+# #
+# test stage #
+# #
+#######################################
+
+{% for distro in distributions %}
+{% for version in distro.versions %}
+{% for bs in distro.buildsys %}
+
+t_{{distro.name}}:{{version}}:{{bs}}:
+ extends:
+ - .build {{bs}}
+ - .fdo.distribution-image@{{distro.name}}
+ - .fc_artifacts
+ variables:
+ FDO_DISTRIBUTION_VERSION: '{{version}}'
+ FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG
+ {# Where we have extra_variables defined, add them to the list #}
+ {% if distro.build is defined and distro.build.extra_variables is defined %}
+ {% for var in distro.build.extra_variables %}
+ {{var}}
+ {% endfor %}
+ {% endif %}
+ needs:
+ - '{{distro.name}}:{{version}}@container-prep'
+
+{% endfor %}
+{% endfor %}
+{% endfor %}
diff --git a/.gitlab-ci/config.yml b/.gitlab-ci/config.yml
new file mode 100644
index 0000000..cf1ae0f
--- /dev/null
+++ b/.gitlab-ci/config.yml
@@ -0,0 +1,43 @@
+.default_tag: &default_tag "2023-03-31.0"
+
+distributions:
+ - name: fedora
+ tag: *default_tag
+ base_type: fedora
+ versions:
+ - "rawhide"
+ - "38"
+ - "37"
+ - "36"
+ buildsys:
+ - "autotools shared expat"
+ - "autotools shared libxml2"
+ - "autotools static expat"
+ - "autotools static libxml2"
+ - "meson shared"
+ - "meson static"
+
+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",
+ ]
+ use_qemu: false
diff --git a/.gitlab-ci/fedora-install.sh b/.gitlab-ci/fedora-install.sh
new file mode 100644
index 0000000..4a21923
--- /dev/null
+++ b/.gitlab-ci/fedora-install.sh
@@ -0,0 +1,3 @@
+#! /bin/bash
+
+set -ex
More information about the Fontconfig
mailing list