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

xyz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-client-cpp.git


The following commit(s) were added to refs/heads/main by this push:
     new 9f0b6fb  Use vcpkg to build alpine packages (#505)
9f0b6fb is described below

commit 9f0b6fb40700131de080897ee69bbdfbcacc527a
Author: Yunze Xu <xyzinfern...@163.com>
AuthorDate: Mon Sep 29 22:41:24 2025 +0800

    Use vcpkg to build alpine packages (#505)
---
 .github/workflows/ci-build-binary-artifacts.yaml |  8 +--
 pkg/apk/APKBUILD                                 | 30 ++++----
 pkg/apk/Dockerfile                               | 91 ++----------------------
 pkg/apk/build-apk.sh                             |  2 +-
 pkg/apk/docker-build-apk-arm64.sh                |  2 +-
 5 files changed, 28 insertions(+), 105 deletions(-)

diff --git a/.github/workflows/ci-build-binary-artifacts.yaml 
b/.github/workflows/ci-build-binary-artifacts.yaml
index 0a49c70..f91e117 100644
--- a/.github/workflows/ci-build-binary-artifacts.yaml
+++ b/.github/workflows/ci-build-binary-artifacts.yaml
@@ -93,16 +93,16 @@ jobs:
       matrix:
         include:
           - name: 'Windows x64'
-            os: windows-2019
+            os: windows-2022
             triplet: x64-windows-static
             suffix: 'windows-win64'
-            generator: 'Visual Studio 16 2019'
+            generator: 'Visual Studio 17 2022'
             arch: '-A x64'
           - name: 'Windows x86'
-            os: windows-2019
+            os: windows-2022
             triplet: x86-windows-static
             suffix: 'windows-win32'
-            generator: 'Visual Studio 16 2019'
+            generator: 'Visual Studio 17 2022'
             arch: '-A Win32'
 
     steps:
diff --git a/pkg/apk/APKBUILD b/pkg/apk/APKBUILD
index 3c3cdc7..1b476c2 100644
--- a/pkg/apk/APKBUILD
+++ b/pkg/apk/APKBUILD
@@ -17,7 +17,7 @@
 # under the License.
 #
 
-# Maintainer: "Apache Pulsar <d...@pulsar.apache.org>"
+# Maintainer: Apache Pulsar <d...@pulsar.apache.org>
 
 pkgname="apache-pulsar-client"
 pkgver="$VERSION"
@@ -38,19 +38,23 @@ build() {
        if [ "$CBUILD" != "$CHOST" ]; then
                CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux 
-DCMAKE_HOST_SYSTEM_NAME=Linux"
        fi
-       cmake \
-               -DCMAKE_INSTALL_PREFIX=/usr \
-               -DCMAKE_INSTALL_LIBDIR=lib \
-               -DBUILD_SHARED_LIBS=True \
-               -DCMAKE_BUILD_TYPE=Release \
-               -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-               -DCMAKE_C_FLAGS="$CFLAGS" \
-               -DBUILD_TESTS=OFF \
-                -DLINK_STATIC=ON  \
-               ${CMAKE_CROSSOPTS} ${ROOT_DIR}
-       make -j6
+    git clone https://github.com/microsoft/vcpkg.git
+    mv vcpkg $ROOT_DIR/
+    export VCPKG_FORCE_SYSTEM_BINARIES=1
+    set +e
+    cmake -B build -DINTEGRATE_VCPKG=ON -DCMAKE_BUILD_TYPE=Release \
+        -DCMAKE_MAKE_PROGRAM=make \
+        -DCMAKE_INSTALL_PREFIX="$pkgdir" \
+        -DBUILD_TESTS=OFF -DBUILD_DYNAMIC_LIB=ON -DBUILD_STATIC_LIB=ON \
+        $ROOT_DIR
+    if [[ $? -ne 0 ]]; then
+        cat $ROOT_DIR/vcpkg/buildtrees/detect_compiler/*.log
+        exit 1
+    fi
+    set -e
+    cmake --build build -j8
 }
 
 package() {
-       make DESTDIR="$pkgdir" install
+    cmake --build build --target install
 }
diff --git a/pkg/apk/Dockerfile b/pkg/apk/Dockerfile
index db501f0..1335174 100644
--- a/pkg/apk/Dockerfile
+++ b/pkg/apk/Dockerfile
@@ -17,7 +17,7 @@
 # under the License.
 #
 
-FROM alpine:3.12
+FROM alpine:3.19
 
 ARG PLATFORM
 
@@ -31,91 +31,10 @@ RUN apk add \
       g++ \
       make \
       cmake \
-      python3 \
-      py3-pip \
       perl \
       git \
+      ninja \
+      zip \
+      unzip \
+      openssl-dev \
       sudo
-
-RUN pip3 install pyyaml
-
-ADD .build/dependencies.yaml /
-ADD .build/dep-version.py /usr/local/bin
-
-# Download and compile boost
-RUN BOOST_VERSION=$(dep-version.py boost) && \
-    curl -O -L 
https://github.com/boostorg/boost/releases/download/boost-${BOOST_VERSION}/boost-${BOOST_VERSION}.tar.gz
 && \
-    tar zxf boost-${BOOST_VERSION}.tar.gz && \
-    cd boost-${BOOST_VERSION} && \
-    ./bootstrap.sh --with-libraries=regex && \
-    ./b2 -d0 address-model=64 cxxflags=-fPIC link=static threading=multi 
variant=release install && \
-    rm -rf /boost-${BOOST_VERSION}.tar.gz /boost-${BOOST_VERSION}
-
-# Download and compile protobuf
-RUN PROTOBUF_VERSION=$(dep-version.py protobuf) && \
-    curl -O -L  
https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/protobuf-cpp-${PROTOBUF_VERSION}.tar.gz
 && \
-    tar xfz protobuf-cpp-${PROTOBUF_VERSION}.tar.gz && \
-    cd protobuf-${PROTOBUF_VERSION}/ && \
-    CXXFLAGS=-fPIC ./configure && \
-    make -j8 && make install && \
-    rm -rf /protobuf-cpp-${PROTOBUF_VERSION}.tar.gz 
/protobuf-${PROTOBUF_VERSION}
-
-# ZLib
-RUN ZLIB_VERSION=$(dep-version.py zlib) && \
-    curl -O -L https://github.com/madler/zlib/archive/v${ZLIB_VERSION}.tar.gz 
&& \
-    tar xfz v${ZLIB_VERSION}.tar.gz && \
-    cd zlib-${ZLIB_VERSION} && \
-    CFLAGS="-fPIC -O3" ./configure && \
-    make -j8 && make install && \
-    rm -rf /v${ZLIB_VERSION}.tar.gz /zlib-${ZLIB_VERSION}
-
-# Zstandard
-RUN ZSTD_VERSION=$(dep-version.py zstd) && \
-    curl -O -L 
https://github.com/facebook/zstd/releases/download/v${ZSTD_VERSION}/zstd-${ZSTD_VERSION}.tar.gz
 && \
-    tar xfz zstd-${ZSTD_VERSION}.tar.gz && \
-    cd zstd-${ZSTD_VERSION} && \
-    CFLAGS="-fPIC -O3" make -j8 && \
-    make install && \
-    rm -rf /zstd-${ZSTD_VERSION} /zstd-${ZSTD_VERSION}.tar.gz
-
-# Snappy
-RUN SNAPPY_VERSION=$(dep-version.py snappy) && \
-    curl -O -L 
https://github.com/google/snappy/archive/refs/tags/${SNAPPY_VERSION}.tar.gz && \
-    tar xfz ${SNAPPY_VERSION}.tar.gz && \
-    cd snappy-${SNAPPY_VERSION} && \
-    CXXFLAGS="-fPIC -O3" cmake . -DSNAPPY_BUILD_TESTS=OFF 
-DSNAPPY_BUILD_BENCHMARKS=OFF && \
-    make -j8 && make install && \
-    rm -rf /snappy-${SNAPPY_VERSION} /${SNAPPY_VERSION}.tar.gz
-
-# Roaring
-RUN ROARING_VERSION=$(dep-version.py roaring) && \
-    curl -O -L  
https://github.com/RoaringBitmap/CRoaring/archive/refs/tags/v${ROARING_VERSION}.tar.gz
 && \
-    tar xfz v${ROARING_VERSION}.tar.gz && \
-    cd CRoaring-${ROARING_VERSION} && \
-    mkdir build && cd build && CXXFLAGS="-fPIC -O3" cmake .. && \
-    make -j8 && make install && \
-    rm -rf /v${ROARING_VERSION}.tar.gz /CRoaring-${ROARING_VERSION}
-
-RUN OPENSSL_VERSION=$(dep-version.py openssl) && \
-    OPENSSL_VERSION_UNDERSCORE=$(echo $OPENSSL_VERSION | sed 's/\./_/g') && \
-    curl -O -L 
https://github.com/openssl/openssl/archive/OpenSSL_${OPENSSL_VERSION_UNDERSCORE}.tar.gz
 && \
-    tar xfz OpenSSL_${OPENSSL_VERSION_UNDERSCORE}.tar.gz && \
-    cd openssl-OpenSSL_${OPENSSL_VERSION_UNDERSCORE}/ && \
-    ./Configure -fPIC --prefix=/usr/local/ssl/ linux-${PLATFORM} && \
-    make -j8 && make install && \
-    rm -rf /OpenSSL_${OPENSSL_VERSION_UNDERSCORE}.tar.gz 
/openssl-OpenSSL_${OPENSSL_VERSION_UNDERSCORE}
-
-ENV LD_LIBRARY_PATH /usr/local/ssl/lib/:
-ENV OPENSSL_ROOT_DIR /usr/local/ssl/
-
-# LibCurl
-RUN CURL_VERSION=$(dep-version.py curl) && \
-    CURL_VERSION_UNDERSCORE=$(echo $CURL_VERSION | sed 's/\./_/g') && \
-    curl -O -L  
https://github.com/curl/curl/releases/download/curl-${CURL_VERSION_UNDERSCORE}/curl-${CURL_VERSION}.tar.gz
 && \
-    tar xfz curl-${CURL_VERSION}.tar.gz && \
-    cd curl-${CURL_VERSION} && \
-    CFLAGS=-fPIC ./configure --with-ssl=/usr/local/ssl/ --without-zstd 
--without-libpsl && \
-    make -j8 && make install && \
-    rm -rf /curl-${CURL_VERSION}.tar.gz /curl-${CURL_VERSION}
-
-
diff --git a/pkg/apk/build-apk.sh b/pkg/apk/build-apk.sh
index 66cb763..5436048 100755
--- a/pkg/apk/build-apk.sh
+++ b/pkg/apk/build-apk.sh
@@ -36,7 +36,7 @@ export VERSION=`echo $POM_VERSION | sed -E 's/\-[a-zA-Z]+//'`
 
 echo "VERSION: $VERSION"
 
-abuild-keygen -a -i -n
+sudo abuild-keygen -a -i -n
 abuild -F -c -r
 
 cp -r /root/packages/pkg ./build
diff --git a/pkg/apk/docker-build-apk-arm64.sh 
b/pkg/apk/docker-build-apk-arm64.sh
index 7563152..8480ee5 100755
--- a/pkg/apk/docker-build-apk-arm64.sh
+++ b/pkg/apk/docker-build-apk-arm64.sh
@@ -25,7 +25,7 @@ ROOT_DIR=$(git rev-parse --show-toplevel)
 IMAGE_NAME=${1:-apachepulsar/pulsar-build:alpine-3.16-arm64}
 
 docker run -v $ROOT_DIR:/pulsar-client-cpp \
-        --env PLATFORM=arm64 \
+        --env PLATFORM=aarch64 \
         $IMAGE_NAME \
         /pulsar-client-cpp/pkg/apk/build-apk.sh
 

Reply via email to