7 commits - .gitlab-ci/android-cross-file.txt .gitlab-ci/install-android-toolchain.sh .gitlab-ci.yml subprojects/expat.wrap subprojects/fontconfig.wrap subprojects/freetype2.wrap subprojects/glib.wrap subprojects/libpng.wrap subprojects/pixman.wrap
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Mar 26 11:46:07 UTC 2025
.gitlab-ci.yml | 52 +++++++++-----------------------
.gitlab-ci/android-cross-file.txt | 22 +++++++++++++
.gitlab-ci/install-android-toolchain.sh | 33 ++++++++++++++++++++
subprojects/expat.wrap | 18 +++++------
subprojects/fontconfig.wrap | 12 +++----
subprojects/freetype2.wrap | 12 +++----
subprojects/glib.wrap | 11 +++---
subprojects/libpng.wrap | 18 +++++------
subprojects/pixman.wrap | 12 +++----
9 files changed, 112 insertions(+), 78 deletions(-)
New commits:
commit 7fd0cd0a9c0278c2b3d4c78087ca8481087b588b
Merge: 58578a2f4 20503ecec
Author: Tim-Philipp Müller <tim at centricular.com>
Date: Wed Mar 26 11:45:58 2025 +0000
Merge branch 'alatiera/android-image-test' into 'master'
ci: update the android CI image
See merge request cairo/cairo!614
commit 20503ecec38382e93f3dd5d6ef957ad711d61066
Author: Tim-Philipp Müller <tim at centricular.com>
Date: Wed Mar 26 10:22:43 2025 +0000
ci: drop placeholder-job tags from image jobs
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index edebaf658..478e5751c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -70,7 +70,7 @@ fedora image:
- '.fdo.container-build at fedora'
stage: 'prep'
tags:
- - placeholder-job
+ - kvm
variables:
FDO_DISTRIBUTION_PACKAGES: >
binutils-gold
commit 8dc09a1c486159047183d127e9da09bba33446f5
Author: Jordan Petridis <jpetridis at gnome.org>
Date: Wed Mar 12 00:39:29 2025 +0200
ci: Update rust version
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 18125f031..edebaf658 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -26,8 +26,8 @@ variables:
DEFAULT_MESON_ARGS: >
--default-library=both
- RUST_STABLE: "1.80.0"
- RUSTUP_VERSION: "1.27.1"
+ RUST_STABLE: "1.85.0"
+ RUSTUP_VERSION: "1.28.1"
ANDROID_HOME: "/android/sdk"
ANDROID_NDK_HOME: "/android/ndk"
commit 0826837e4a383d0363ca9113c1cbd6dede075428
Author: Jordan Petridis <jpetridis at gnome.org>
Date: Wed Mar 12 00:12:43 2025 +0200
ci: Install android toolchain into our own image
Previously we were using a prebuilt image from
gstreamer, but now we can copy what's needed and build
our own image with ci-templates.
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3f621f342..18125f031 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,7 +16,7 @@ workflow:
variables:
FDO_UPSTREAM_REPO: 'cairo/cairo'
FDO_DISTRIBUTION_VERSION: '40'
- FDO_DISTRIBUTION_TAG: '2024-07-26-coverage.0'
+ FDO_DISTRIBUTION_TAG: '2025-03-12-android.0'
# TODO: should probably get its own image at some point instead of reusing the GStreamer one
# See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/.gitlab-image-tags.yml for latest
@@ -29,6 +29,9 @@ variables:
RUST_STABLE: "1.80.0"
RUSTUP_VERSION: "1.27.1"
+ ANDROID_HOME: "/android/sdk"
+ ANDROID_NDK_HOME: "/android/ndk"
+
stages:
- prep
- build
@@ -70,11 +73,13 @@ fedora image:
- placeholder-job
variables:
FDO_DISTRIBUTION_PACKAGES: >
+ binutils-gold
meson
ninja-build
ccache
gcc
g++
+ gperf
zlib-devel
expat-devel
libpng-devel
@@ -101,8 +106,10 @@ fedora image:
google-noto-emoji-color-fonts
google-noto-sans-vf-fonts
fonttools
+ unzip
util-linux
poppler-utils
+ python3-pip
clang
clang-analyzer
clang-tools-extra
@@ -117,6 +124,7 @@ fedora image:
--arch x86_64-unknown-linux-gnu &&
bash .gitlab-ci/install-rust-tools.sh &&
bash .gitlab-ci/install-grcov.sh &&
+ bash .gitlab-ci/install-android-toolchain.sh $ANDROID_HOME $ANDROID_NDK_HOME &&
rm -rf /root/.cargo /root/.cache # cleanup compilation dirs; binaries are installed now
.build fedora:
@@ -398,10 +406,8 @@ vs2019 shared x86:
EXTRA_MESON_ARGS: '--default-library=shared'
android arm64 fedora:
- # TODO: should probably build our own image here some day
- # See https://gitlab.freedesktop.org/gstreamer/gstreamer/container_registry/7689 for current images
- image: 'registry.freedesktop.org/gstreamer/cerbero/android:2024-11-01.0'
- needs: []
+ extends:
+ - '.fdo.distribution-image at fedora'
stage: 'build'
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}"
@@ -409,11 +415,7 @@ android arm64 fedora:
when: 'always'
paths:
- "build/meson-logs/*.txt"
- before_script:
- - dnf install -y python3-pip gcc ninja-build gperf binutils-gold
- - pip3 install --user meson
script:
- - export PATH="$HOME/.local/bin:$PATH"
- meson setup --cross-file .gitlab-ci/android-cross-file.txt -Dpixman:a64-neon=disabled build
- meson compile --verbose -C build
diff --git a/.gitlab-ci/install-android-toolchain.sh b/.gitlab-ci/install-android-toolchain.sh
new file mode 100644
index 000000000..5b9fce8d2
--- /dev/null
+++ b/.gitlab-ci/install-android-toolchain.sh
@@ -0,0 +1,33 @@
+#! /bin/bash
+
+# Copied from gstreamer/cerbero
+# https://gitlab.freedesktop.org/gstreamer/cerbero/-/blob/2a0f5829aa1b56e8d36ef36f9675845345d54542/ci/docker_android_setup.sh
+
+set -eux
+
+export ANDROID_HOME=$1
+export ANDROID_NDK_HOME=$2
+
+mkdir -p /android/sources
+
+curl -o /android/sources/android-ndk.zip https://dl.google.com/android/repository/android-ndk-r25c-linux.zip
+unzip /android/sources/android-ndk.zip -d ${ANDROID_NDK_HOME}/
+# remove the intermediate versioned directory
+mv ${ANDROID_NDK_HOME}/*/* ${ANDROID_NDK_HOME}/
+
+curl -o /android/sources/android-sdk-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip
+unzip /android/sources/android-sdk-tools.zip -d ${ANDROID_HOME}/
+mkdir -p ${ANDROID_HOME}/licenses
+
+# Accept licenses. Values taken from:
+# $ANDROID_HOME/tools/bin/sdkmanager --sdk_root=$ANDROID_HOME --licenses
+# cd $ANDROID_HOME
+# for f in licenses/*; do echo "echo \"$(cat $f | tr -d '\n')\" > \${ANDROID_HOME}/$f"; done
+echo "601085b94cd77f0b54ff86406957099ebe79c4d6" > ${ANDROID_HOME}/licenses/android-googletv-license
+echo "859f317696f67ef3d7f30a50a5560e7834b43903" > ${ANDROID_HOME}/licenses/android-sdk-arm-dbt-license
+echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > ${ANDROID_HOME}/licenses/android-sdk-license
+echo "84831b9409646a918e30573bab4c9c91346d8abd" > ${ANDROID_HOME}/licenses/android-sdk-preview-license
+echo "33b6a2b64607f11b759f320ef9dff4ae5c47d97a" > ${ANDROID_HOME}/licenses/google-gdk-license
+echo "e9acab5b5fbb560a72cfaecce8946896ff6aab9d" > ${ANDROID_HOME}/licenses/mips-android-sysimage-license
+
+rm -rf /android/sources
commit 3a3771f86260e0c4ae5236e687e3bada104c3a68
Author: Jordan Petridis <jpetridis at gnome.org>
Date: Sat Mar 8 16:40:33 2025 +0200
ci: Update the android CI image
Switch to using the gstreamer/cerbero image that
has NDK installed, until we add the android toolchain
to our image.
Followup to 92dde935d4cdf3cdc981e154150db2ea076ab827
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 55ecbd8db..3f621f342 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -400,7 +400,8 @@ vs2019 shared x86:
android arm64 fedora:
# TODO: should probably build our own image here some day
# See https://gitlab.freedesktop.org/gstreamer/gstreamer/container_registry/7689 for current images
- image: 'registry.freedesktop.org/gstreamer/gstreamer/amd64/android-fedora:2020-10-22.0-master'
+ image: 'registry.freedesktop.org/gstreamer/cerbero/android:2024-11-01.0'
+ needs: []
stage: 'build'
artifacts:
name: "${CI_JOB_NAME}_${CI_COMMIT_SHA}"
@@ -408,9 +409,8 @@ android arm64 fedora:
when: 'always'
paths:
- "build/meson-logs/*.txt"
- allow_failure: true
before_script:
- - dnf install -y python3-pip gcc ninja-build gperf
+ - dnf install -y python3-pip gcc ninja-build gperf binutils-gold
- pip3 install --user meson
script:
- export PATH="$HOME/.local/bin:$PATH"
diff --git a/.gitlab-ci/android-cross-file.txt b/.gitlab-ci/android-cross-file.txt
index b9496c7b9..e5df1e5a7 100644
--- a/.gitlab-ci/android-cross-file.txt
+++ b/.gitlab-ci/android-cross-file.txt
@@ -1,6 +1,7 @@
[constants]
ndk_path = '/android/ndk'
-toolchain = ndk_path + '/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android'
+ndk_bindir = ndk_path + '/toolchains/llvm/prebuilt/linux-x86_64/bin/'
+toolchain = ndk_bindir + 'aarch64-linux-android'
api = '28'
[host_machine]
@@ -10,12 +11,12 @@ cpu = 'aarch64'
endian = 'little'
[properties]
-sys_root = ndk_path + '/sysroot'
-c_link_args = ['-fuse-ld=gold']
-cpp_link_args = ['-fuse-ld=gold']
+sys_root = ndk_path + '/sysroot'
+c_ld = 'gold'
+cpp_ld = 'gold'
[binaries]
c = toolchain + api + '-clang'
cpp = toolchain + api + '-clang++'
-ar = toolchain + '-ar'
-strip = toolchain + '-strip'
+ar = ndk_bindir + 'llvm-ar'
+strip = ndk_bindir + 'llvm-strip'
commit 6dd779677e8619b3be52130e3b7eb41047447c50
Author: Jordan Petridis <jpetridis at gnome.org>
Date: Tue Mar 11 15:54:16 2025 +0200
build: Update wrap files
diff --git a/subprojects/expat.wrap b/subprojects/expat.wrap
index 36be273c6..53d13b943 100644
--- a/subprojects/expat.wrap
+++ b/subprojects/expat.wrap
@@ -1,13 +1,13 @@
[wrap-file]
-directory = expat-2.6.0
-source_url = https://github.com/libexpat/libexpat/releases/download/R_2_6_0/expat-2.6.0.tar.xz
-source_filename = expat-2.6.0.tar.bz2
-source_hash = cb5f5a8ea211e1cabd59be0a933a52e3c02cc326e86a4d387d8d218e7ee47a3e
-patch_filename = expat_2.6.0-1_patch.zip
-patch_url = https://wrapdb.mesonbuild.com/v2/expat_2.6.0-1/get_patch
-patch_hash = 7452665b0cf413f87fae1dc4d5c779bc2c8f0ccf3ba637140c9d46eacf521604
-source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/expat_2.6.0-1/expat-2.6.0.tar.bz2
-wrapdb_version = 2.6.0-1
+directory = expat-2.6.4
+source_url = https://github.com/libexpat/libexpat/releases/download/R_2_6_4/expat-2.6.4.tar.xz
+source_filename = expat-2.6.4.tar.bz2
+source_hash = a695629dae047055b37d50a0ff4776d1d45d0a4c842cf4ccee158441f55ff7ee
+patch_filename = expat_2.6.4-1_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/expat_2.6.4-1/get_patch
+patch_hash = e4ffff014e06b805fbb36cd1e911e90829dc1e07301a3aee53231f9048758558
+source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/expat_2.6.4-1/expat-2.6.4.tar.bz2
+wrapdb_version = 2.6.4-1
[provide]
expat = expat_dep
diff --git a/subprojects/fontconfig.wrap b/subprojects/fontconfig.wrap
index 7dc416811..2a72b98a8 100644
--- a/subprojects/fontconfig.wrap
+++ b/subprojects/fontconfig.wrap
@@ -1,10 +1,10 @@
[wrap-file]
-directory = fontconfig-2.14.2
-source_url = https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.14.2.tar.xz
-source_filename = fontconfig-2.14.2.tar.xz
-source_hash = dba695b57bce15023d2ceedef82062c2b925e51f5d4cc4aef736cf13f60a468b
-source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/fontconfig_2.14.2-1/fontconfig-2.14.2.tar.xz
-wrapdb_version = 2.14.2-1
+directory = fontconfig-2.16.0
+source_url = https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.16.0.tar.xz
+source_filename = fontconfig-2.16.0.tar.xz
+source_hash = 6a33dc555cc9ba8b10caf7695878ef134eeb36d0af366041f639b1da9b6ed220
+source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/fontconfig_2.16.0-1/fontconfig-2.16.0.tar.xz
+wrapdb_version = 2.16.0-1
[provide]
fontconfig = fontconfig_dep
diff --git a/subprojects/freetype2.wrap b/subprojects/freetype2.wrap
index e3554c9a1..acad6f487 100644
--- a/subprojects/freetype2.wrap
+++ b/subprojects/freetype2.wrap
@@ -1,10 +1,10 @@
[wrap-file]
-directory = freetype-2.13.2
-source_url = https://download.savannah.gnu.org/releases/freetype/freetype-2.13.2.tar.xz
-source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/freetype2_2.13.2-1/freetype-2.13.2.tar.xz
-source_filename = freetype-2.13.2.tar.xz
-source_hash = 12991c4e55c506dd7f9b765933e62fd2be2e06d421505d7950a132e4f1bb484d
-wrapdb_version = 2.13.2-1
+directory = freetype-2.13.3
+source_url = https://download.savannah.gnu.org/releases/freetype/freetype-2.13.3.tar.xz
+source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/freetype2_2.13.3-1/freetype-2.13.3.tar.xz
+source_filename = freetype-2.13.3.tar.xz
+source_hash = 0550350666d427c74daeb85d5ac7bb353acba5f76956395995311a9c6f063289
+wrapdb_version = 2.13.3-1
[provide]
freetype2 = freetype_dep
diff --git a/subprojects/glib.wrap b/subprojects/glib.wrap
index 51d9cf8d4..71b6cd18b 100644
--- a/subprojects/glib.wrap
+++ b/subprojects/glib.wrap
@@ -1,9 +1,10 @@
[wrap-file]
-directory = glib-2.74.0
-source_url = https://download.gnome.org/sources/glib/2.74/glib-2.74.0.tar.xz
-source_filename = glib-2.74.0.tar.xz
-source_hash = 3652c7f072d7b031a6b5edd623f77ebc5dcd2ae698598abcc89ff39ca75add30
-wrapdb_version = 2.74.0-1
+directory = glib-2.84.0
+source_url = https://download.gnome.org/sources/glib/2.84/glib-2.84.0.tar.xz
+source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/glib_2.84.0-1/glib-2.84.0.tar.xz
+source_filename = glib-2.84.0.tar.xz
+source_hash = f8823600cb85425e2815cfad82ea20fdaa538482ab74e7293d58b3f64a5aff6a
+wrapdb_version = 2.84.0-1
[provide]
dependency_names = gthread-2.0, gobject-2.0, gmodule-no-export-2.0, gmodule-export-2.0, gmodule-2.0, glib-2.0, gio-2.0, gio-windows-2.0, gio-unix-2.0
diff --git a/subprojects/libpng.wrap b/subprojects/libpng.wrap
index d8a4abffa..ec796cd88 100644
--- a/subprojects/libpng.wrap
+++ b/subprojects/libpng.wrap
@@ -1,13 +1,13 @@
[wrap-file]
-directory = libpng-1.6.43
-source_url = https://github.com/glennrp/libpng/archive/v1.6.43.tar.gz
-source_filename = libpng-1.6.43.tar.gz
-source_hash = fecc95b46cf05e8e3fc8a414750e0ba5aad00d89e9fdf175e94ff041caf1a03a
-patch_filename = libpng_1.6.43-1_patch.zip
-patch_url = https://wrapdb.mesonbuild.com/v2/libpng_1.6.43-1/get_patch
-patch_hash = 0e995446c607ef2e618fb561929acf91e4bdd8017d2e18a7a3b68ba41da345e6
-source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/libpng_1.6.43-1/libpng-1.6.43.tar.gz
-wrapdb_version = 1.6.43-1
+directory = libpng-1.6.47
+source_url = https://github.com/glennrp/libpng/archive/v1.6.47.tar.gz
+source_filename = libpng-1.6.47.tar.gz
+source_hash = 631a4c58ea6c10c81f160c4b21fa8495b715d251698ebc2552077e8450f30454
+patch_filename = libpng_1.6.47-1_patch.zip
+patch_url = https://wrapdb.mesonbuild.com/v2/libpng_1.6.47-1/get_patch
+patch_hash = a21f619a39da40a215e6c0d51e92af173c14b5e958bad0c0069eb91a6b9b0a3d
+source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/libpng_1.6.47-1/libpng-1.6.47.tar.gz
+wrapdb_version = 1.6.47-1
[provide]
libpng = libpng_dep
diff --git a/subprojects/pixman.wrap b/subprojects/pixman.wrap
index 6ce238b84..2bc079ed0 100644
--- a/subprojects/pixman.wrap
+++ b/subprojects/pixman.wrap
@@ -1,10 +1,10 @@
[wrap-file]
-directory = pixman-0.43.4
-source_url = https://www.cairographics.org/releases/pixman-0.43.4.tar.gz
-source_filename = pixman-0.43.4.tar.gz
-source_hash = a0624db90180c7ddb79fc7a9151093dc37c646d8c38d3f232f767cf64b85a226
-source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/pixman_0.43.4-1/pixman-0.43.4.tar.gz
-wrapdb_version = 0.43.4-1
+directory = pixman-0.44.2
+source_url = https://www.cairographics.org/releases/pixman-0.44.2.tar.gz
+source_filename = pixman-0.44.2.tar.gz
+source_hash = 6349061ce1a338ab6952b92194d1b0377472244208d47ff25bef86fc71973466
+source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/pixman_0.44.2-1/pixman-0.44.2.tar.gz
+wrapdb_version = 0.44.2-1
[provide]
pixman-1 = idep_pixman
commit 8c67cb8e2df5066a08c851f8a1306b4a53a2e48b
Author: Jordan Petridis <jpetridis at gnome.org>
Date: Tue Mar 11 15:50:25 2025 +0200
ci: Move the android cross file into the repository
Avoid having the txt file be inline bash which is inline
in yaml in the ci config.
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 62d515006..55ecbd8db 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -414,31 +414,7 @@ android arm64 fedora:
- 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_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 --cross-file android-cross-file.txt -Dpixman:a64-neon=disabled build
+ - meson setup --cross-file .gitlab-ci/android-cross-file.txt -Dpixman:a64-neon=disabled build
- meson compile --verbose -C build
macOS x86 host:
diff --git a/.gitlab-ci/android-cross-file.txt b/.gitlab-ci/android-cross-file.txt
new file mode 100644
index 000000000..b9496c7b9
--- /dev/null
+++ b/.gitlab-ci/android-cross-file.txt
@@ -0,0 +1,21 @@
+[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_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'
More information about the cairo-commit
mailing list