pixman: Branch 'master' - 3 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Apr 18 03:09:52 UTC 2025


 .gitlab-ci.d/01-docker.yml                       |   17 ++++++----
 .gitlab-ci.d/01-docker/Dockerfile                |   17 +++-------
 .gitlab-ci.d/02-build.yml                        |   26 ++++------------
 .gitlab-ci.d/03-test.yml                         |   20 ++++++------
 .gitlab-ci.d/meson-cross/linux-arm-v7-gnu.meson  |    2 -
 .gitlab-ci.d/meson-cross/linux-arm-v7-llvm.meson |    2 -
 .gitlab-ci.d/templates/build-aarch64.yml         |   37 +++++++++++++++++++++++
 .gitlab-ci.d/templates/build-kvm.yml             |   37 +++++++++++++++++++++++
 .gitlab-ci.d/templates/build.yml                 |   12 +++----
 .gitlab-ci.d/templates/docker.yml                |   15 ++++-----
 .gitlab-ci.d/templates/test.yml                  |   18 +++--------
 11 files changed, 130 insertions(+), 73 deletions(-)

New commits:
commit b10c2262242e94fb180a4f9eba1d4fc1f730f26c
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date:   Thu Apr 17 14:43:16 2025 +0200

    ci: Increase number of retries for Windows targets
    
    In case there are intermittent errors which can be "fixed" by running
    the job again.
    
    Signed-off-by: Marek Pikuła <m.pikula at partner.samsung.com>

diff --git a/.gitlab-ci.d/03-test.yml b/.gitlab-ci.d/03-test.yml
index 5136fcf..3657c54 100644
--- a/.gitlab-ci.d/03-test.yml
+++ b/.gitlab-ci.d/03-test.yml
@@ -108,6 +108,7 @@ include:
         - "sse2 ssse3"
         - "mmx ssse3"
         - "mmx sse2"
+      retry: 2
   - local: .gitlab-ci.d/templates/test.yml
     inputs:
       target: windows-amd64
@@ -121,3 +122,4 @@ include:
       target: windows-arm64-v8
       toolchain: [llvm]
       runner_tags: [aarch64]
+      retry: 2
commit b546053dbacf0b6f5367eca4d9ec85d53c1058e1
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date:   Thu Apr 17 12:02:05 2025 +0200

    ci: Use untagged runners if possible
    
    Since the migration to the new FDO infrastructure
    (freedesktop/freedesktop#2076), there is an option to use fleeting
    runners for jobs not requiring KVM. In our case there are multiple
    instances where it is not needed, so it's possible to use untagged
    (fleeting) runners, which spin up only in case when the job queue load
    is high, possibly helping with #112.
    
    Signed-off-by: Marek Pikuła <m.pikula at partner.samsung.com>

diff --git a/.gitlab-ci.d/01-docker.yml b/.gitlab-ci.d/01-docker.yml
index 013b82b..8884e33 100644
--- a/.gitlab-ci.d/01-docker.yml
+++ b/.gitlab-ci.d/01-docker.yml
@@ -7,7 +7,8 @@
 include:
   - local: .gitlab-ci.d/templates/docker.yml
     inputs:
-      runner_tag: kvm-aarch64
+      runner_tags: [aarch64]
+      job_name_suffix: ":aarch64"
       targets:
         - linux-arm-v5
         - linux-arm-v7
@@ -15,16 +16,20 @@ include:
         - windows-arm64-v8
   - local: .gitlab-ci.d/templates/docker.yml
     inputs:
-      runner_tag: kvm
+      runner_tags: [kvm]
+      job_name_suffix: ":kvm"
+      targets:
+        - linux-mips64le
+        - linux-mipsel
+        - linux-ppc64le
+        - linux-riscv64
+  - local: .gitlab-ci.d/templates/docker.yml
+    inputs:
       targets:
         - linux-386
         - linux-amd64
         - linux-mips
-        - linux-mips64le
-        - linux-mipsel
         - linux-ppc
         - linux-ppc64
-        - linux-ppc64le
-        - linux-riscv64
         - windows-686
         - windows-amd64
diff --git a/.gitlab-ci.d/02-build.yml b/.gitlab-ci.d/02-build.yml
index 20eadc5..a6f0562 100644
--- a/.gitlab-ci.d/02-build.yml
+++ b/.gitlab-ci.d/02-build.yml
@@ -20,36 +20,28 @@ include:
   - local: .gitlab-ci.d/templates/build.yml
     inputs:
       target: linux-amd64
-  - local: .gitlab-ci.d/templates/build.yml
+  - local: .gitlab-ci.d/templates/build-aarch64.yml
     inputs:
       target: linux-arm-v5
-      qemu_cpu: arm1136
       # Disable coverage, as the tests take too long to run with a single thread.
       enable_gnu_coverage: false
-      runner_tag: kvm-aarch64
-      docker_job: docker:kvm-aarch64
-  - local: .gitlab-ci.d/templates/build.yml
+  - local: .gitlab-ci.d/templates/build-aarch64.yml
     inputs:
       target: linux-arm-v7
-      qemu_cpu: max
-      runner_tag: kvm-aarch64
-      docker_job: docker:kvm-aarch64
-  - local: .gitlab-ci.d/templates/build.yml
+  - local: .gitlab-ci.d/templates/build-aarch64.yml
     inputs:
       target: linux-arm64-v8
-      runner_tag: kvm-aarch64
-      docker_job: docker:kvm-aarch64
   - local: .gitlab-ci.d/templates/build.yml
     inputs:
       target: linux-mips
       toolchain: [gnu]  # TODO: https://gitlab.freedesktop.org/pixman/pixman/-/issues/105
       qemu_cpu: 74Kf
       enable_gnu_coverage: false
-  - local: .gitlab-ci.d/templates/build.yml
+  - local: .gitlab-ci.d/templates/build-kvm.yml
     inputs:
       target: linux-mips64le
       qemu_cpu: Loongson-3A4000
-  - local: .gitlab-ci.d/templates/build.yml
+  - local: .gitlab-ci.d/templates/build-kvm.yml
     inputs:
       target: linux-mipsel
       toolchain: [gnu]  # TODO: https://gitlab.freedesktop.org/pixman/pixman/-/issues/105
@@ -66,11 +58,11 @@ include:
       target: linux-ppc64
       qemu_cpu: power9
       enable_gnu_coverage: false
-  - local: .gitlab-ci.d/templates/build.yml
+  - local: .gitlab-ci.d/templates/build-kvm.yml
     inputs:
       target: linux-ppc64le
       qemu_cpu: power10
-  - local: .gitlab-ci.d/templates/build.yml
+  - local: .gitlab-ci.d/templates/build-kvm.yml
     inputs:
       target: linux-riscv64
       qemu_cpu: rv64
@@ -82,10 +74,8 @@ include:
     inputs:
       target: windows-amd64
       enable_gnu_coverage: false
-  - local: .gitlab-ci.d/templates/build.yml
+  - local: .gitlab-ci.d/templates/build-aarch64.yml
     inputs:
       target: windows-arm64-v8
       toolchain: [llvm]  # GNU toolchain doesn't seem to support Windows on ARM.
       enable_gnu_coverage: false
-      runner_tag: kvm-aarch64
-      docker_job: docker:kvm-aarch64
diff --git a/.gitlab-ci.d/03-test.yml b/.gitlab-ci.d/03-test.yml
index 23ec7ee..5136fcf 100644
--- a/.gitlab-ci.d/03-test.yml
+++ b/.gitlab-ci.d/03-test.yml
@@ -37,23 +37,18 @@ include:
     inputs:
       target: linux-arm-v5
       toolchain: [gnu]  # TODO: https://gitlab.freedesktop.org/pixman/pixman/-/issues/107
-      qemu_cpu: [arm1136]
       pixman_disable: ["arm-neon"] # Test only arm-simd.
       timeout: 3h
       test_timeout_multiplier: 40
-      runner_tag: kvm-aarch64
-      docker_job: docker:kvm-aarch64
+      runner_tags: [aarch64]
   - local: .gitlab-ci.d/templates/test.yml
     inputs:
       target: linux-arm-v7
-      qemu_cpu: [max]
-      runner_tag: kvm-aarch64
-      docker_job: docker:kvm-aarch64
+      runner_tags: [aarch64]
   - local: .gitlab-ci.d/templates/test.yml
     inputs:
       target: linux-arm64-v8
-      runner_tag: kvm-aarch64
-      docker_job: docker:kvm-aarch64
+      runner_tags: [aarch64]
   - local: .gitlab-ci.d/templates/test.yml
     inputs:
       target: linux-mips
@@ -68,12 +63,14 @@ include:
       target: linux-mips64le
       toolchain: [gnu]  # TODO: https://gitlab.freedesktop.org/pixman/pixman/-/issues/108
       qemu_cpu: [Loongson-3A4000]
+      runner_tags: [kvm]
   - local: .gitlab-ci.d/templates/test.yml
     inputs:
       target: linux-mipsel
       toolchain: [gnu]  # TODO: Add llvm once the build is fixed.
       qemu_cpu: [74Kf]
       timeout: 2h
+      runner_tags: [kvm]
   - local: .gitlab-ci.d/templates/test.yml
     inputs:
       target: linux-ppc
@@ -90,6 +87,7 @@ include:
     inputs:
       target: linux-ppc64le
       qemu_cpu: [power10]
+      runner_tags: [kvm]
   - local: .gitlab-ci.d/templates/test.yml
     inputs:
       target: linux-riscv64
@@ -101,6 +99,7 @@ include:
         - rv64,v=true,vext_spec=v1.0,vlen=256,elen=64
         - rv64,v=true,vext_spec=v1.0,vlen=512,elen=64
         - rv64,v=true,vext_spec=v1.0,vlen=1024,elen=64
+      runner_tags: [kvm]
   - local: .gitlab-ci.d/templates/test.yml
     inputs:
       target: windows-686
@@ -121,5 +120,4 @@ include:
     inputs:
       target: windows-arm64-v8
       toolchain: [llvm]
-      runner_tag: kvm-aarch64
-      docker_job: docker:kvm-aarch64
+      runner_tags: [aarch64]
diff --git a/.gitlab-ci.d/meson-cross/linux-arm-v7-gnu.meson b/.gitlab-ci.d/meson-cross/linux-arm-v7-gnu.meson
index 400fc75..aa6be82 100644
--- a/.gitlab-ci.d/meson-cross/linux-arm-v7-gnu.meson
+++ b/.gitlab-ci.d/meson-cross/linux-arm-v7-gnu.meson
@@ -3,4 +3,4 @@ c = 'gcc'
 ar = 'ar'
 strip = 'strip'
 pkg-config = 'pkg-config'
-exe_wrapper = 'qemu-arm'
+exe_wrapper = ['qemu-arm', '-cpu', 'max']
diff --git a/.gitlab-ci.d/meson-cross/linux-arm-v7-llvm.meson b/.gitlab-ci.d/meson-cross/linux-arm-v7-llvm.meson
index a6200e9..2b22cce 100644
--- a/.gitlab-ci.d/meson-cross/linux-arm-v7-llvm.meson
+++ b/.gitlab-ci.d/meson-cross/linux-arm-v7-llvm.meson
@@ -3,4 +3,4 @@ c = 'clang'
 ar = 'llvm-ar'
 strip = 'llvm-strip'
 pkg-config = 'pkg-config'
-exe_wrapper = 'qemu-arm'
+exe_wrapper = ['qemu-arm', '-cpu', 'max']
diff --git a/.gitlab-ci.d/templates/build-aarch64.yml b/.gitlab-ci.d/templates/build-aarch64.yml
new file mode 100644
index 0000000..0627a6d
--- /dev/null
+++ b/.gitlab-ci.d/templates/build-aarch64.yml
@@ -0,0 +1,37 @@
+spec:
+  inputs:
+    # For descriptions see build.yml.
+    target:
+    toolchain:
+      type: array
+      default: [gnu, llvm]
+    qemu_cpu:
+      default: ""
+    enable_gnu_coverage:
+      type: boolean
+      default: true
+    job_name_prefix:
+      default: ""
+    job_name_suffix:
+      default: ""
+    allow_failure:
+      type: boolean
+      default: false
+    retry:
+      type: number
+      default: 1
+---
+
+include:
+  - local: .gitlab-ci.d/templates/build.yml
+    inputs:
+      target: $[[ inputs.target ]]
+      toolchain: $[[ inputs.toolchain ]]
+      qemu_cpu: $[[ inputs.qemu_cpu ]]
+      enable_gnu_coverage: $[[ inputs.enable_gnu_coverage ]]
+      job_name_prefix: $[[ inputs.job_name_prefix ]]
+      job_name_suffix: $[[ inputs.job_name_suffix ]]
+      allow_failure: $[[ inputs.allow_failure ]]
+      retry: $[[ inputs.retry ]]
+      runner_tags: [aarch64]
+      docker_job: docker:aarch64
diff --git a/.gitlab-ci.d/templates/build-kvm.yml b/.gitlab-ci.d/templates/build-kvm.yml
new file mode 100644
index 0000000..b498a14
--- /dev/null
+++ b/.gitlab-ci.d/templates/build-kvm.yml
@@ -0,0 +1,37 @@
+spec:
+  inputs:
+    # For descriptions see build.yml.
+    target:
+    toolchain:
+      type: array
+      default: [gnu, llvm]
+    qemu_cpu:
+      default: ""
+    enable_gnu_coverage:
+      type: boolean
+      default: true
+    job_name_prefix:
+      default: ""
+    job_name_suffix:
+      default: ""
+    allow_failure:
+      type: boolean
+      default: false
+    retry:
+      type: number
+      default: 1
+---
+
+include:
+  - local: .gitlab-ci.d/templates/build.yml
+    inputs:
+      target: $[[ inputs.target ]]
+      toolchain: $[[ inputs.toolchain ]]
+      qemu_cpu: $[[ inputs.qemu_cpu ]]
+      enable_gnu_coverage: $[[ inputs.enable_gnu_coverage ]]
+      job_name_prefix: $[[ inputs.job_name_prefix ]]
+      job_name_suffix: $[[ inputs.job_name_suffix ]]
+      allow_failure: $[[ inputs.allow_failure ]]
+      retry: $[[ inputs.retry ]]
+      runner_tags: [kvm]
+      docker_job: docker:kvm
diff --git a/.gitlab-ci.d/templates/build.yml b/.gitlab-ci.d/templates/build.yml
index a471994..3e0c8a4 100644
--- a/.gitlab-ci.d/templates/build.yml
+++ b/.gitlab-ci.d/templates/build.yml
@@ -46,18 +46,18 @@ spec:
         `allow_failure`.
       type: number
       default: 1
-    runner_tag:
-      description: GitLab runner tag for this job.
-      default: kvm
+    runner_tags:
+      description: List of GitLab runner tags for this job.
+      type: array
+      default: []
     docker_job:
       description: Docker image build job name.
-      default: docker:kvm
+      default: docker
 ---
 
 "$[[ inputs.job_name_prefix ]]build:$[[ inputs.target ]]$[[ inputs.job_name_suffix ]]":
   extends: .target:all
-  tags:
-    - $[[ inputs.runner_tag | expand_vars ]]
+  tags: $[[ inputs.runner_tags ]]
   stage: build
   allow_failure: $[[ inputs.allow_failure ]]
   retry: $[[ inputs.retry ]]
diff --git a/.gitlab-ci.d/templates/docker.yml b/.gitlab-ci.d/templates/docker.yml
index d29941a..aa66f25 100644
--- a/.gitlab-ci.d/templates/docker.yml
+++ b/.gitlab-ci.d/templates/docker.yml
@@ -14,15 +14,17 @@ spec:
     job_name_suffix:
       description:
         Additional suffix for the job name. Can be used to prevent job
-        duplication for jobs for the same target.
+        duplication for jobs for the same target or running on a different
+        target.
       default: ""
-    runner_tag:
-      description: GitLab runner tag for this job.
-      default: kvm
+    runner_tags:
+      description: List of GitLab runner tags for this job.
+      type: array
+      default: []
 
 ---
 
-"$[[ inputs.job_name_prefix ]]docker:$[[ inputs.runner_tag | expand_vars ]]$[[ inputs.job_name_suffix ]]":
+"$[[ inputs.job_name_prefix ]]docker$[[ inputs.job_name_suffix ]]":
   stage: docker
   image: quay.io/buildah/stable
   rules:
@@ -37,8 +39,7 @@ spec:
     - if: "$CI_PIPELINE_SOURCE == 'schedule' && $TARGET =~ $ACTIVE_TARGET_PATTERN"
     - if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $TARGET =~ $ACTIVE_TARGET_PATTERN"
     - if: "$CI_COMMIT_TAG && $TARGET =~ $ACTIVE_TARGET_PATTERN"
-  tags:
-    - $[[ inputs.runner_tag | expand_vars ]]
+  tags: $[[ inputs.runner_tags ]]
 
   variables:
     # Use vfs with buildah. Docker offers overlayfs as a default, but Buildah
diff --git a/.gitlab-ci.d/templates/test.yml b/.gitlab-ci.d/templates/test.yml
index 1be2d0e..717468c 100644
--- a/.gitlab-ci.d/templates/test.yml
+++ b/.gitlab-ci.d/templates/test.yml
@@ -66,28 +66,20 @@ spec:
         `allow_failure`.
       type: number
       default: 1
-    runner_tag:
-      description: GitLab runner tag for this job.
-      default: kvm
-    docker_job:
-      description: Docker image build job name.
-      default: docker:kvm
+    runner_tags:
+      description: List of GitLab runner tags for this job.
+      type: array
+      default: []
 ---
 
 "$[[ inputs.job_name_prefix ]]test:$[[ inputs.target ]]$[[ inputs.job_name_suffix ]]":
   extends: .target:all
-  tags:
-    - $[[ inputs.runner_tag | expand_vars ]]
+  tags: $[[ inputs.runner_tags ]]
   stage: test
   allow_failure: $[[ inputs.allow_failure ]]
   retry: $[[ inputs.retry ]]
   timeout: $[[ inputs.timeout ]]
   needs:
-    - job: $[[ inputs.docker_job | expand_vars ]]
-      optional: true
-      parallel:
-        matrix:
-          - TARGET: $[[ inputs.target ]]
     - job: build:$[[ inputs.target ]]
       parallel:
         matrix:
commit 1d69114e4d81f8113423e6eb384f55183051e209
Author: Marek Pikuła <m.pikula at partner.samsung.com>
Date:   Wed Apr 16 19:55:04 2025 +0200

    ci: Build Wine for windows-amd64 from source
    
    Building the recent version from sources seems to help a little with the
    intermittent CI fails for windows-amd64 target. Wine 10.0 from Debian
    Trixie repos didn't do the job.
    
    Signed-off-by: Marek Pikuła <m.pikula at partner.samsung.com>

diff --git a/.gitlab-ci.d/01-docker/Dockerfile b/.gitlab-ci.d/01-docker/Dockerfile
index 43d1e2c..4dc72d2 100644
--- a/.gitlab-ci.d/01-docker/Dockerfile
+++ b/.gitlab-ci.d/01-docker/Dockerfile
@@ -145,17 +145,6 @@ RUN dpkg --add-architecture i386 \
     && ${APT_CLEANUP} \
     && ${WINE_BOOT}
 
-FROM windows-llvm-base AS windows-amd64
-ENV WINEPATH=/opt/llvm/x86_64-w64-mingw32/bin \
-    WINEARCH=win64
-RUN ${APT_UPDATE} \
-    && ${APT_INSTALL} \
-        libwine \
-        wine \
-        wine64 \
-    && ${APT_CLEANUP} \
-    && ${WINE_BOOT}
-
 # Dependencies needed both for Wine build and the final image.
 FROM windows-llvm-base AS windows-wine-build-base
 RUN ${APT_UPDATE} \
@@ -194,6 +183,12 @@ RUN cd wine \
     && make -j`nproc` \
     && make install
 
+FROM windows-llvm-base AS windows-amd64
+COPY --from=windows-wine-build /opt/wine /opt/wine
+ENV PATH=/opt/wine/bin:${PATH} \
+    WINEPATH=/opt/llvm/x86_64-w64-mingw32/bin
+RUN ${WINE_BOOT}
+
 FROM windows-wine-build-base AS windows-arm64-v8
 COPY --from=windows-wine-build /opt/wine /opt/wine
 ENV PATH=/opt/wine/bin:${PATH} \


More information about the xorg-commit mailing list