This is an automated email from the ASF dual-hosted git repository.

zhouyuan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new cb97e825ba [GLUTEN-12412][VL] Add AlmaLinux 8 vcpkg static build CI 
image (#12757)
cb97e825ba is described below

commit cb97e825ba51745c69b27cdb9e0aa41f7653b4a4
Author: Kushaagra Shrivastava <[email protected]>
AuthorDate: Wed Aug 19 18:34:39 2026 +0530

    [GLUTEN-12412][VL] Add AlmaLinux 8 vcpkg static build CI image (#12757)
---
 .github/workflows/docker_image.yml                 | 93 ++++++++++++++++++++++
 ...velox-buildstatic-centos-8-enhanced-features.sh | 27 +++++++
 .../Dockerfile.almalinux8-gcc13-static-build       | 67 ++++++++++++++++
 ep/build-velox/src/get-velox.sh                    |  3 +-
 4 files changed, 189 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/docker_image.yml 
b/.github/workflows/docker_image.yml
index 3a4f9fc760..0cbe0078da 100644
--- a/.github/workflows/docker_image.yml
+++ b/.github/workflows/docker_image.yml
@@ -371,6 +371,56 @@ jobs:
           if-no-files-found: error
           retention-days: 1
 
+  build-vcpkg-almalinux-8-gcc13:
+    if: ${{ startsWith(github.repository, 'apache/') }}
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        os: [ ubuntu-latest, ubuntu-24.04-arm ]
+
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v6
+
+      - name: Docker meta
+        id: meta
+        uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf
+        with:
+          images: ${{ env.DOCKERHUB_REPO }}
+          tags: vcpkg-almalinux-8-gcc13
+
+      - name: Set up Docker Buildx
+        uses: 
docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd
+
+      - name: Login to Docker Hub
+        uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee
+        with:
+          username: ${{ secrets.DOCKERHUB_USER }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+      - name: Build and push by digest
+        id: build
+        uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf
+        with:
+          context: .
+          file: dev/docker/Dockerfile.almalinux8-gcc13-static-build
+          labels: ${{ steps.meta.outputs.labels }}
+          outputs: type=image,"name=${{ env.DOCKERHUB_REPO 
}}",push-by-digest=true,push=true
+
+      - name: Export digest
+        run: |
+          mkdir -p ${{ runner.temp }}/digests
+          digest="${{ steps.build.outputs.digest }}"
+          touch "${{ runner.temp }}/digests/${digest#sha256:}"
+
+      - name: Upload digest
+        uses: actions/upload-artifact@v4
+        with:
+          name: digests-vcpkg-almalinux-8-gcc13-${{ matrix.os }}
+          path: ${{ runner.temp }}/digests/*
+          if-no-files-found: error
+          retention-days: 1
+
   merge:
     if: ${{ startsWith(github.repository, 'apache/') }}
     runs-on: ubuntu-latest
@@ -498,3 +548,46 @@ jobs:
       - name: Inspect image
         run: |
           docker buildx imagetools inspect ${{ env.DOCKERHUB_REPO }}:${{ 
steps.meta.outputs.version }}
+
+  merge-almalinux-8-gcc13:
+    if: ${{ startsWith(github.repository, 'apache/') }}
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        digests: [ vcpkg-almalinux-8-gcc13 ]
+    needs:
+      - build-vcpkg-almalinux-8-gcc13
+    steps:
+      - name: Download digests
+        uses: actions/download-artifact@v4
+        with:
+          path: ${{ runner.temp }}/digests
+          pattern: digests-${{ matrix.digests }}-*
+          merge-multiple: true
+
+      - name: Login to Docker Hub
+        uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee
+        with:
+          username: ${{ secrets.DOCKERHUB_USER }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+      - name: Set up Docker Buildx
+        uses: 
docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd
+
+      - name: Docker meta
+        id: meta
+        uses: docker/metadata-action@030e881283bb7a6894de51c315a6bfe6a94e05cf
+        with:
+          images: ${{ env.DOCKERHUB_REPO }}
+          tags: ${{ matrix.digests }}
+
+      - name: Create manifest list and push
+        working-directory: ${{ runner.temp }}/digests
+        run: |
+          docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | 
join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
+            $(printf '${{ env.DOCKERHUB_REPO }}@sha256:%s ' *)
+
+      - name: Inspect image
+        run: |
+          docker buildx imagetools inspect ${{ env.DOCKERHUB_REPO }}:${{ 
steps.meta.outputs.version }}
+
diff --git a/dev/ci-velox-buildstatic-centos-8-enhanced-features.sh 
b/dev/ci-velox-buildstatic-centos-8-enhanced-features.sh
new file mode 100755
index 0000000000..c995e75e5d
--- /dev/null
+++ b/dev/ci-velox-buildstatic-centos-8-enhanced-features.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+set -e
+
+if [ "$(uname -m)" = "aarch64" ]; then
+    export CPU_TARGET="aarch64";
+    export VCPKG_FORCE_SYSTEM_BINARIES=1;
+fi
+
+export NUM_THREADS=2
+./dev/builddeps-veloxbe.sh --enable_vcpkg=ON --build_arrow=OFF 
--build_tests=ON --build_benchmarks=ON \
+                           --build_examples=OFF --enable_s3=ON --enable_gcs=ON 
--enable_hdfs=ON --enable_abfs=ON --enable_enhanced_features=ON
diff --git a/dev/docker/Dockerfile.almalinux8-gcc13-static-build 
b/dev/docker/Dockerfile.almalinux8-gcc13-static-build
new file mode 100644
index 0000000000..52131c7b63
--- /dev/null
+++ b/dev/docker/Dockerfile.almalinux8-gcc13-static-build
@@ -0,0 +1,67 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# vcpkg-based static build image for Gluten on AlmaLinux 8 + GCC 13.
+# Produces the apache/gluten:vcpkg-almalinux-8-gcc13 image.
+#
+# AlmaLinux 8 is a 1:1 RHEL 8 binary-compatible rebuild that replaces CentOS 8
+# (EOL Dec 2021). glibc 2.28 allows Velox's modern Folly/FBThrift/MVFST stack
+# to build without the socket.h workaround required on CentOS 7 (glibc 2.17).
+#
+# Modelled on dev/docker/Dockerfile.centos7-gcc13-static-build, which is the
+# reference requested in https://github.com/apache/gluten/issues/12412.
+
+FROM almalinux:8
+
+ENV JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
+ENV PATH=$JAVA_HOME/bin:$PATH
+
+# An actual path used for vcpkg cache.
+ENV VCPKG_PATH=/var/cache/vcpkg
+# Set vcpkg cache path.
+ENV VCPKG_BINARY_SOURCES=clear;files,${VCPKG_PATH},readwrite
+
+RUN set -ex; \
+    # AlmaLinux 8 repos are live — no mirror fixup needed. \
+    dnf update -y; \
+    dnf install -y epel-release sudo; \
+    # ccache is in EPEL — install after epel-release is registered. \
+    dnf install -y ccache; \
+    # gcc-toolset-13 ships GCC 13 on RHEL8-family via Red Hat Software 
Collections. \
+    dnf install -y --setopt=install_weak_deps=False gcc-toolset-13; \
+    dnf install -y java-1.8.0-openjdk-devel patch git wget perl python3 
automake libtool flex; \
+    dnf -y --enablerepo=powertools install autoconf-archive ninja-build; \
+    # Install a recent CMake binary — the version in EPEL 8 is too old for 
Velox. \
+    wget 
https://github.com/Kitware/CMake/releases/download/v3.31.12/cmake-3.31.12-linux-$(uname
 -m).sh; \
+    chmod +x cmake-3.31.12-linux-$(uname -m).sh; \
+    ./cmake-3.31.12-linux-$(uname -m).sh --skip-license --prefix=/usr/local; \
+    rm -f cmake-3.31.12-linux-$(uname -m).sh; \
+    echo "check_certificate = off" >> ~/.wgetrc; \
+    dnf clean all; \
+    git clone --depth=1 https://github.com/apache/gluten /opt/gluten; \
+    mkdir -p ${VCPKG_PATH}; \
+    echo "Build arrow, then install the native libs to system paths and jar 
package to .m2/ directory."; \
+    if [ "$(uname -m)" = "aarch64" ]; then \
+        export CPU_TARGET="aarch64"; \
+        export VCPKG_FORCE_SYSTEM_BINARIES=1; \
+    fi; \
+    source /opt/rh/gcc-toolset-13/enable; \
+    cd /opt/gluten; \
+    export SSL_VERIFY=false; \
+    bash ./dev/builddeps-veloxbe.sh --enable_vcpkg=ON --build_tests=ON 
--enable_s3=ON --enable_gcs=ON \
+                                    --enable_hdfs=ON --enable_abfs=ON  
build_arrow; \
+    ./build/mvn dependency:go-offline -Pbackends-velox -Piceberg -Pdelta 
-Pspark-3.5 -DskipTests; \
+    rm -rf /opt/gluten; \
+    rm -rf /root/.cache/ccache;
diff --git a/ep/build-velox/src/get-velox.sh b/ep/build-velox/src/get-velox.sh
index d34212196e..8713a3b8ae 100755
--- a/ep/build-velox/src/get-velox.sh
+++ b/ep/build-velox/src/get-velox.sh
@@ -154,7 +154,7 @@ function apply_provided_velox_patch {
 
 function apply_compilation_fixes {
   local SUDO_CMD=""
-  if [ "$OS" == "Linux" ]; then
+  if [ "$OS" == "Linux" ] && [ "${EUID:-$(id -u)}" -ne 0 ]; then
     SUDO_CMD="sudo"
   fi
   $SUDO_CMD cp ${CURRENT_DIR}/modify_arrow.patch 
${VELOX_HOME}/CMake/resolve_dependency_modules/arrow/
@@ -212,6 +212,7 @@ function setup_linux {
     "$LINUX_DISTRIBUTION" == "almalinux" ]]; then
     case "${LINUX_VERSION_ID%%.*}" in
       9) ;;
+      8) ;;
       *)
         echo "Unsupported ${LINUX_DISTRIBUTION} version: $LINUX_VERSION_ID"
         exit 1


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to