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

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


The following commit(s) were added to refs/heads/main by this push:
     new 0257def1e2 [GLUTEN-8802][VL] Support build static/dynamic docker 
images for arm (#8803)
0257def1e2 is described below

commit 0257def1e2df5896e44a4bc737c29aee54051cef
Author: Zhiguo Wu <[email protected]>
AuthorDate: Fri Mar 7 22:37:06 2025 +0800

    [GLUTEN-8802][VL] Support build static/dynamic docker images for arm (#8803)
    
    This patch adds docker image for CentOS-8 static/dynamic build. The CI 
trigger will be enabled in future patch
---
 .github/workflows/docker_image.yml                 | 245 +++++++++++++++++++--
 dev/docker/Dockerfile.centos8-dynamic-build        |   5 +-
 dev/docker/Dockerfile.centos8-dynamic-build-jdk11  |  27 ++-
 dev/docker/Dockerfile.centos8-dynamic-build-jdk17  |  26 ++-
 ...namic-build => Dockerfile.centos8-static-build} |  24 +-
 dev/docker/Makefile                                |   2 +-
 dev/vcpkg/env.sh                                   |   2 +-
 dev/vcpkg/ports/duckdb/portfile.cmake              |   2 +-
 dev/vcpkg/ports/libelf/portfile.cmake              |   4 +
 dev/vcpkg/setup-build-depends.sh                   |   5 +
 docs/developers/velox-backend-build-in-docker.md   |   2 +-
 11 files changed, 305 insertions(+), 39 deletions(-)

diff --git a/.github/workflows/docker_image.yml 
b/.github/workflows/docker_image.yml
index 15c4774053..bc3ae26a81 100644
--- a/.github/workflows/docker_image.yml
+++ b/.github/workflows/docker_image.yml
@@ -23,12 +23,16 @@ on:
       - '.github/workflows/docker_image.yml'
       - '.github/workflows/util/install_spark_resources.sh'
       - 'dev/docker/Dockerfile.centos7-static-build'
+      - 'dev/docker/Dockerfile.centos8-static-build'
       - 'dev/docker/Dockerfile.centos8-dynamic-build'
       - 'dev/docker/Dockerfile.centos8-dynamic-build-jdk11'
       - 'dev/docker/Dockerfile.centos8-dynamic-build-jdk17'
   schedule:
     - cron: '0 20 * * 0'
 
+env:
+  DOCKERHUB_REPO: apache/gluten
+
 jobs:
   build-vcpkg-centos-7:
     if: ${{ startsWith(github.repository, 'apache/') }}
@@ -36,10 +40,10 @@ jobs:
 
     steps:
       - name: Checkout repository
-        uses: actions/checkout@v2
+        uses: actions/checkout@v4
 
       - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@v1
+        uses: docker/setup-buildx-action@v3
 
       - name: Login to Docker Hub
         uses: docker/login-action@v2
@@ -48,23 +52,82 @@ jobs:
           password: ${{ secrets.DOCKERHUB_TOKEN }}
 
       - name: Build and push Docker image
-        uses: docker/build-push-action@v2
+        uses: docker/build-push-action@v6
         with:
           context: .
           file: dev/docker/Dockerfile.centos7-static-build
           push: true
-          tags: apache/gluten:vcpkg-centos-7
+          tags: ${{ env.DOCKERHUB_REPO }}:vcpkg-centos-7
 
-  build-centos-8:
+  build-vcpkg-centos-8:
     if: ${{ startsWith(github.repository, 'apache/') }}
-    runs-on: ubuntu-latest
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        os: [ ubuntu-latest, ubuntu-24.04-arm ]
+
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v2
+
+      - name: Docker meta
+        id: meta
+        uses: docker/metadata-action@v5
+        with:
+          images: ${{ env.DOCKERHUB_REPO }}
+          tags: vcpkg-centos-8
+
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v3
+
+      - name: Login to Docker Hub
+        uses: docker/login-action@v2
+        with:
+          username: ${{ secrets.DOCKERHUB_USER }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+      - name: Build and push by digest
+        id: build
+        uses: docker/build-push-action@v6
+        with:
+          context: .
+          file: dev/docker/Dockerfile.centos8-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-centos-8-${{ matrix.os }}
+          path: ${{ runner.temp }}/digests/*
+          if-no-files-found: error
+          retention-days: 1
+
+  build-centos-8-jdk8:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        os: [ ubuntu-latest, ubuntu-24.04-arm ]
 
     steps:
       - name: Checkout repository
         uses: actions/checkout@v2
 
+      - name: Docker meta
+        id: meta
+        uses: docker/metadata-action@v5
+        with:
+          images: ${{ env.DOCKERHUB_REPO }}
+          tags: centos-8-jdk8
+
       - name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@v1
+        uses: docker/setup-buildx-action@v3
 
       - name: Login to Docker Hub
         uses: docker/login-action@v2
@@ -72,27 +135,171 @@ jobs:
           username: ${{ secrets.DOCKERHUB_USER }}
           password: ${{ secrets.DOCKERHUB_TOKEN }}
 
-      - name: Build and push Docker image Centos8
-        uses: docker/build-push-action@v2
+      - name: Build and push by digest
+        id: build
+        uses: docker/build-push-action@v6
         with:
           context: .
           file: dev/docker/Dockerfile.centos8-dynamic-build
-          push: true
-          tags: apache/gluten:centos-8 # JDK8 based
+          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-centos-8-jdk8-${{ matrix.os }}
+          path: ${{ runner.temp }}/digests/*
+          if-no-files-found: error
+          retention-days: 1
+
+  build-centos-8-jdk11:
+    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@v2
 
-      - name: Build and push Docker image Centos8 + JDK11
-        uses: docker/build-push-action@v2
+      - name: Docker meta
+        id: meta
+        uses: docker/metadata-action@v5
+        with:
+          images: ${{ env.DOCKERHUB_REPO }}
+          tags: centos-8-jdk11
+
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v3
+
+      - name: Login to Docker Hub
+        uses: docker/login-action@v2
+        with:
+          username: ${{ secrets.DOCKERHUB_USER }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+      - name: Build and push by digest
+        id: build
+        uses: docker/build-push-action@v6
         with:
           context: .
           file: dev/docker/Dockerfile.centos8-dynamic-build-jdk11
-          push: true
-          tags: apache/gluten:centos-8-jdk11
+          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-centos-8-jdk11-${{ matrix.os }}
+          path: ${{ runner.temp }}/digests/*
+          if-no-files-found: error
+          retention-days: 1
+
+  build-centos-8-jdk17:
+    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@v2
+
+      - name: Docker meta
+        id: meta
+        uses: docker/metadata-action@v5
+        with:
+          images: ${{ env.DOCKERHUB_REPO }}
+          tags: centos-8-jdk17
+
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v3
+
+      - name: Login to Docker Hub
+        uses: docker/login-action@v2
+        with:
+          username: ${{ secrets.DOCKERHUB_USER }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
 
-      - name: Build and push Docker image Centos8 + JDK17
-        uses: docker/build-push-action@v2
+      - name: Build and push by digest
+        id: build
+        uses: docker/build-push-action@v6
         with:
           context: .
           file: dev/docker/Dockerfile.centos8-dynamic-build-jdk17
-          push: true
-          tags: apache/gluten:centos-8-jdk17
+          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-centos-8-jdk17-${{ matrix.os }}
+          path: ${{ runner.temp }}/digests/*
+          if-no-files-found: error
+          retention-days: 1
+
+  merge:
+    if: ${{ startsWith(github.repository, 'apache/') }}
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        digests: [ vcpkg-centos-8, centos-8-jdk8, centos-8-jdk11, 
centos-8-jdk17 ]
+    needs:
+      - build-vcpkg-centos-8
+      - build-centos-8-jdk8
+      - build-centos-8-jdk11
+      - build-centos-8-jdk17
+    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@v2
+        with:
+          username: ${{ secrets.DOCKERHUB_USER }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v3
+
+      - name: Docker meta
+        id: meta
+        uses: docker/metadata-action@v5
+        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/docker/Dockerfile.centos8-dynamic-build 
b/dev/docker/Dockerfile.centos8-dynamic-build
index 34bf713057..5434af9036 100644
--- a/dev/docker/Dockerfile.centos8-dynamic-build
+++ b/dev/docker/Dockerfile.centos8-dynamic-build
@@ -42,4 +42,7 @@ RUN git clone --depth=1 
https://github.com/apache/incubator-gluten /opt/gluten
 RUN cd /opt/gluten/.github/workflows/util/ && ./install_spark_resources.sh 3.2 
&& ./install_spark_resources.sh 3.3 \
     && ./install_spark_resources.sh 3.4 && ./install_spark_resources.sh 3.5 && 
./install_spark_resources.sh 3.5-scala2.13
 
-RUN cd /opt/gluten && source /opt/rh/gcc-toolset-11/enable && 
./dev/builddeps-veloxbe.sh --run_setup_script=ON build_arrow && rm -rf 
/opt/gluten
+RUN if [ "$(uname -m)" = "aarch64" ]; then \
+        export CPU_TARGET="aarch64"; \
+    fi && \
+    cd /opt/gluten && source /opt/rh/gcc-toolset-11/enable && 
./dev/builddeps-veloxbe.sh --run_setup_script=ON build_arrow && rm -rf 
/opt/gluten
diff --git a/dev/docker/Dockerfile.centos8-dynamic-build-jdk11 
b/dev/docker/Dockerfile.centos8-dynamic-build-jdk11
index 3fe525a812..0ff4d69c8d 100644
--- a/dev/docker/Dockerfile.centos8-dynamic-build-jdk11
+++ b/dev/docker/Dockerfile.centos8-dynamic-build-jdk11
@@ -13,15 +13,36 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM apache/gluten:centos-8
+FROM centos:8
 
+RUN sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-* || true
+RUN sed -i -e 
"s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" 
/etc/yum.repos.d/CentOS-* || true
+
+RUN yum update -y && yum install -y epel-release sudo dnf && yum install -y 
ccache
+RUN dnf install -y --setopt=install_weak_deps=False gcc-toolset-11
+RUN echo "check_certificate = off" >> ~/.wgetrc
 
 RUN yum install -y java-11-openjdk-devel patch wget git perl
 ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk
 ENV PATH=$JAVA_HOME/bin:$PATH
-
+RUN wget --no-check-certificate 
https://downloads.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
 && \
+    tar -xvf apache-maven-3.8.8-bin.tar.gz && \
+    mv apache-maven-3.8.8 /usr/lib/maven
 ENV PATH=${PATH}:/usr/lib/maven/bin
 
+RUN wget -nv 
https://archive.apache.org/dist/celeborn/celeborn-0.3.2-incubating/apache-celeborn-0.3.2-incubating-bin.tgz
 -P /opt/
+RUN wget -nv 
https://archive.apache.org/dist/celeborn/celeborn-0.4.3/apache-celeborn-0.4.3-bin.tgz
 -P /opt/
+RUN wget -nv 
https://archive.apache.org/dist/celeborn/celeborn-0.5.3/apache-celeborn-0.5.3-bin.tgz
 -P /opt/
+
+RUN wget -nv 
https://archive.apache.org/dist/incubator/uniffle/0.9.2/apache-uniffle-0.9.2-incubating-bin.tar.gz
 -P /opt/
+RUN wget -nv 
https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz 
-P /opt/
+
 RUN git clone --depth=1 https://github.com/apache/incubator-gluten /opt/gluten
 
-RUN cd /opt/gluten && source /opt/rh/gcc-toolset-11/enable && 
./dev/builddeps-veloxbe.sh --run_setup_script=ON build_arrow && rm -rf 
/opt/gluten
+RUN cd /opt/gluten/.github/workflows/util/ && ./install_spark_resources.sh 3.2 
&& ./install_spark_resources.sh 3.3 \
+    && ./install_spark_resources.sh 3.4 && ./install_spark_resources.sh 3.5 && 
./install_spark_resources.sh 3.5-scala2.13
+
+RUN if [ "$(uname -m)" = "aarch64" ]; then \
+        export CPU_TARGET="aarch64"; \
+    fi && \
+    cd /opt/gluten && source /opt/rh/gcc-toolset-11/enable && 
./dev/builddeps-veloxbe.sh --run_setup_script=ON build_arrow && rm -rf 
/opt/gluten
diff --git a/dev/docker/Dockerfile.centos8-dynamic-build-jdk17 
b/dev/docker/Dockerfile.centos8-dynamic-build-jdk17
index 2c279864f1..8f5f06e87a 100644
--- a/dev/docker/Dockerfile.centos8-dynamic-build-jdk17
+++ b/dev/docker/Dockerfile.centos8-dynamic-build-jdk17
@@ -13,16 +13,36 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM apache/gluten:centos-8
+FROM centos:8
 
+RUN sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-* || true
+RUN sed -i -e 
"s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" 
/etc/yum.repos.d/CentOS-* || true
+
+RUN yum update -y && yum install -y epel-release sudo dnf && yum install -y 
ccache
+RUN dnf install -y --setopt=install_weak_deps=False gcc-toolset-11
+RUN echo "check_certificate = off" >> ~/.wgetrc
 
 RUN yum install -y java-17-openjdk-devel patch wget git perl
 ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk
 ENV PATH=$JAVA_HOME/bin:$PATH
-
+RUN wget --no-check-certificate 
https://downloads.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
 && \
+    tar -xvf apache-maven-3.8.8-bin.tar.gz && \
+    mv apache-maven-3.8.8 /usr/lib/maven
 ENV PATH=${PATH}:/usr/lib/maven/bin
 
+RUN wget -nv 
https://archive.apache.org/dist/celeborn/celeborn-0.3.2-incubating/apache-celeborn-0.3.2-incubating-bin.tgz
 -P /opt/
+RUN wget -nv 
https://archive.apache.org/dist/celeborn/celeborn-0.4.3/apache-celeborn-0.4.3-bin.tgz
 -P /opt/
+RUN wget -nv 
https://archive.apache.org/dist/celeborn/celeborn-0.5.3/apache-celeborn-0.5.3-bin.tgz
 -P /opt/
+
+RUN wget -nv 
https://archive.apache.org/dist/incubator/uniffle/0.9.2/apache-uniffle-0.9.2-incubating-bin.tar.gz
 -P /opt/
+RUN wget -nv 
https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz 
-P /opt/
+
 RUN git clone --depth=1 https://github.com/apache/incubator-gluten /opt/gluten
 
-RUN cd /opt/gluten && source /opt/rh/gcc-toolset-11/enable && 
./dev/builddeps-veloxbe.sh --run_setup_script=ON build_arrow && rm -rf 
/opt/gluten
+RUN cd /opt/gluten/.github/workflows/util/ && ./install_spark_resources.sh 3.2 
&& ./install_spark_resources.sh 3.3 \
+    && ./install_spark_resources.sh 3.4 && ./install_spark_resources.sh 3.5 && 
./install_spark_resources.sh 3.5-scala2.13
 
+RUN if [ "$(uname -m)" = "aarch64" ]; then \
+        export CPU_TARGET="aarch64"; \
+    fi && \
+    cd /opt/gluten && source /opt/rh/gcc-toolset-11/enable && 
./dev/builddeps-veloxbe.sh --run_setup_script=ON build_arrow && rm -rf 
/opt/gluten
diff --git a/dev/docker/Dockerfile.centos8-dynamic-build 
b/dev/docker/Dockerfile.centos8-static-build
similarity index 63%
copy from dev/docker/Dockerfile.centos8-dynamic-build
copy to dev/docker/Dockerfile.centos8-static-build
index 34bf713057..21864bb27a 100644
--- a/dev/docker/Dockerfile.centos8-dynamic-build
+++ b/dev/docker/Dockerfile.centos8-static-build
@@ -30,16 +30,22 @@ RUN wget --no-check-certificate 
https://downloads.apache.org/maven/maven-3/3.8.8
     mv apache-maven-3.8.8 /usr/lib/maven
 ENV PATH=${PATH}:/usr/lib/maven/bin
 
-RUN wget -nv 
https://archive.apache.org/dist/celeborn/celeborn-0.3.2-incubating/apache-celeborn-0.3.2-incubating-bin.tgz
 -P /opt/
-RUN wget -nv 
https://archive.apache.org/dist/celeborn/celeborn-0.4.3/apache-celeborn-0.4.3-bin.tgz
 -P /opt/
-RUN wget -nv 
https://archive.apache.org/dist/celeborn/celeborn-0.5.3/apache-celeborn-0.5.3-bin.tgz
 -P /opt/
+RUN git clone --depth=1 https://github.com/apache/incubator-gluten /opt/gluten
 
-RUN wget -nv 
https://archive.apache.org/dist/incubator/uniffle/0.9.2/apache-uniffle-0.9.2-incubating-bin.tar.gz
 -P /opt/
-RUN wget -nv 
https://archive.apache.org/dist/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz 
-P /opt/
+RUN cd /opt/gluten && bash ./dev/vcpkg/setup-build-depends.sh
 
-RUN git clone --depth=1 https://github.com/apache/incubator-gluten /opt/gluten
+# An actual path used for vcpkg cache.
+RUN mkdir -p /var/cache/vcpkg
 
-RUN cd /opt/gluten/.github/workflows/util/ && ./install_spark_resources.sh 3.2 
&& ./install_spark_resources.sh 3.3 \
-    && ./install_spark_resources.sh 3.4 && ./install_spark_resources.sh 3.5 && 
./install_spark_resources.sh 3.5-scala2.13
+# Set vcpkg cache path.
+ENV VCPKG_BINARY_SOURCES=clear;files,/var/cache/vcpkg,readwrite
 
-RUN cd /opt/gluten && source /opt/rh/gcc-toolset-11/enable && 
./dev/builddeps-veloxbe.sh --run_setup_script=ON build_arrow && rm -rf 
/opt/gluten
+# Build arrow, then install the native libs to system paths and jar package to 
.m2/ directory.
+RUN if [ "$(uname -m)" = "aarch64" ]; then \
+        export CPU_TARGET="aarch64"; \
+        export VCPKG_FORCE_SYSTEM_BINARIES=1; \
+    fi && \
+    cd /opt/gluten && source /opt/rh/gcc-toolset-11/enable && \
+    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 && \
+    rm -rf /opt/gluten
diff --git a/dev/docker/Makefile b/dev/docker/Makefile
index bffa0fca33..02f4ed54cd 100644
--- a/dev/docker/Makefile
+++ b/dev/docker/Makefile
@@ -54,7 +54,7 @@ docker-image-static-build:
 docker-image-dynamic-build:
        docker build \
                --file Dockerfile.centos8-dynamic-build \
-               --tag "apache/gluten:centos-8" \
+               --tag "apache/gluten:centos-8-jdk8" \
                --build-arg HTTPS_PROXY="" \
                --build-arg HTTP_PROXY="" \
                .
diff --git a/dev/vcpkg/env.sh b/dev/vcpkg/env.sh
index 009e9faba2..8f5efdbb33 100755
--- a/dev/vcpkg/env.sh
+++ b/dev/vcpkg/env.sh
@@ -10,7 +10,7 @@ SCRIPT_ROOT="$(realpath "$(dirname "${BASH_SOURCE[0]}")")"
 
 export VCPKG_ROOT="$SCRIPT_ROOT/.vcpkg"
 export VCPKG="$SCRIPT_ROOT/.vcpkg/vcpkg"
-export VCPKG_TRIPLET=x64-linux-avx
+export VCPKG_TRIPLET=$([ "${CPU_TARGET:-}" = "aarch64" ] && echo 
"arm64-linux-release" || echo "x64-linux-avx")
 export 
VCPKG_TRIPLET_INSTALL_DIR=${SCRIPT_ROOT}/vcpkg_installed/${VCPKG_TRIPLET}
 
 ${SCRIPT_ROOT}/init.sh "$@"
diff --git a/dev/vcpkg/ports/duckdb/portfile.cmake 
b/dev/vcpkg/ports/duckdb/portfile.cmake
index a572292953..a67323b50a 100644
--- a/dev/vcpkg/ports/duckdb/portfile.cmake
+++ b/dev/vcpkg/ports/duckdb/portfile.cmake
@@ -27,6 +27,6 @@ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/DuckDB)
 file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake")
 file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake")
 
-vcpkg_cmake_config_fixup(PACKAGE_NAME DuckDB)
+vcpkg_cmake_config_fixup(PACKAGE_NAME duckdb)
 
 vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/dev/vcpkg/ports/libelf/portfile.cmake 
b/dev/vcpkg/ports/libelf/portfile.cmake
index d1b347d693..67471d27e5 100644
--- a/dev/vcpkg/ports/libelf/portfile.cmake
+++ b/dev/vcpkg/ports/libelf/portfile.cmake
@@ -10,6 +10,10 @@ vcpkg_extract_source_archive(
     PATCHES install.patch
 )
 
+# Update config.guess and config.sub
+file(DOWNLOAD 
"https://git.savannah.gnu.org/cgit/config.git/plain/config.guess"; 
"${SOURCE_PATH}/config.guess")
+file(DOWNLOAD "https://git.savannah.gnu.org/cgit/config.git/plain/config.sub"; 
"${SOURCE_PATH}/config.sub")
+
 vcpkg_configure_make(SOURCE_PATH ${SOURCE_PATH} AUTOCONFIG)
 vcpkg_install_make()
 vcpkg_fixup_pkgconfig()
diff --git a/dev/vcpkg/setup-build-depends.sh b/dev/vcpkg/setup-build-depends.sh
index 5eeeab5dfe..1fc694da62 100755
--- a/dev/vcpkg/setup-build-depends.sh
+++ b/dev/vcpkg/setup-build-depends.sh
@@ -144,6 +144,11 @@ install_centos_8() {
         flex bison python3 \
         java-1.8.0-openjdk java-1.8.0-openjdk-devel
 
+    pip3 install --upgrade pip
+
+    # Requires cmake >= 3.28.3
+    pip3 install cmake==3.28.3
+
     dnf -y --enablerepo=powertools install autoconf-archive ninja-build
 
     install_maven_from_source
diff --git a/docs/developers/velox-backend-build-in-docker.md 
b/docs/developers/velox-backend-build-in-docker.md
index 4d5a32767f..a1b1d734af 100755
--- a/docs/developers/velox-backend-build-in-docker.md
+++ b/docs/developers/velox-backend-build-in-docker.md
@@ -48,7 +48,7 @@ The dynamic link approach needs to install the dependencies 
libraries. It then d
 The 'dockerfile' to build Gluten jar:
 
 ```
-FROM apache/gluten:centos-8
+FROM apache/gluten:centos-8-jdk8
 
 # Build Gluten Jar
 RUN source /opt/rh/devtoolset-11/enable && \


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

Reply via email to