Skip to content

Commit b6003b3

Browse files
committed
Use pre-built libraries to build wheels on Linux
1 parent 9990205 commit b6003b3

File tree

6 files changed

+31
-90
lines changed

6 files changed

+31
-90
lines changed

.github/workflows/ci-build-release-wheels.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,6 @@ jobs:
5757
- name: Set up QEMU
5858
uses: docker/setup-qemu-action@v2
5959

60-
- uses: docker/setup-buildx-action@v2
61-
- run: build-support/copy-deps-versionfile.sh
62-
6360
- name: Build Manylinux Docker image
6461
uses: docker/build-push-action@v3
6562
with:

.github/workflows/ci-pr-validation.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,6 @@ jobs:
126126
- name: Set up QEMU
127127
uses: docker/setup-qemu-action@v2
128128

129-
- uses: docker/setup-buildx-action@v2
130-
- run: build-support/copy-deps-versionfile.sh
131-
132129
- name: Build Manylinux Docker image
133130
uses: docker/build-push-action@v3
134131
with:

build-support/copy-deps-versionfile.sh

Lines changed: 0 additions & 30 deletions
This file was deleted.

pkg/build-wheel-inside-docker.sh

Lines changed: 27 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -21,46 +21,39 @@
2121
set -e -x
2222

2323
cd /pulsar-client-python
24+
source build-support/dep-url.sh
2425

2526
# Build cpp wheels
26-
if [[ $ARCH == "aarch64" ]]; then
27-
export VCPKG_FORCE_SYSTEM_BINARIES=1
28-
fi
29-
PULSAR_CPP_VERSION=$(dep-version.py pulsar-cpp)
30-
. /dep-url.sh
31-
download_dependency /dependencies.yaml pulsar-cpp
32-
cd apache-pulsar-client-cpp-${PULSAR_CPP_VERSION}
33-
34-
git clone https://github.com/microsoft/vcpkg.git
35-
cd vcpkg
36-
37-
# manylinux2014 does not have ninja in the system package manager
38-
git clone https://github.com/ninja-build/ninja.git
39-
cd ninja
40-
git checkout release
41-
./configure.py --bootstrap
42-
mv ninja /usr/bin/
43-
cd ..
44-
./bootstrap-vcpkg.sh
45-
cd ..
27+
PULSAR_CPP_VERSION=$(cat ./dependencies.yaml | grep pulsar-cpp | awk '{print $2}')
4628

47-
cmake -B build -DINTEGRATE_VCPKG=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF -DBUILD_DYNAMIC_LIB=ON -DBUILD_STATIC_LIB=ON
48-
cmake --build build -j8 --target install
49-
cd ..
50-
rm -rf apache-pulsar-client-cpp-$(PULSAR_CPP_VERSION)
29+
if [ $CPP_BINARY_TYPE == "rpm" ]; then
30+
if [ $ARCH == "aarch64" ]; then
31+
RPM_ROOT_DIR=$(pulsar_cpp_base_url $PULSAR_CPP_VERSION)/rpm-arm64/aarch64
32+
else
33+
RPM_ROOT_DIR=$(pulsar_cpp_base_url $PULSAR_CPP_VERSION)/rpm-x86_64/x86_64
34+
fi
35+
curl -O -L $RPM_ROOT_DIR/apache-pulsar-client-$PULSAR_CPP_VERSION-1.$ARCH.rpm
36+
curl -O -L $RPM_ROOT_DIR/apache-pulsar-client-devel-$PULSAR_CPP_VERSION-1.$ARCH.rpm
37+
curl -O -L $RPM_ROOT_DIR/apache-pulsar-client-debuginfo-$PULSAR_CPP_VERSION-1.$ARCH.rpm
38+
rpm -ivh *.rpm
39+
else # apk
40+
if [ $ARCH == "aarch64" ]; then
41+
APK_ROOT_DIR=$(pulsar_cpp_base_url $PULSAR_CPP_VERSION)/apk-arm64/aarch64
42+
else
43+
APK_ROOT_DIR=$(pulsar_cpp_base_url $PULSAR_CPP_VERSION)/apk-x86_64/x86_64
44+
fi
45+
curl -O -L $APK_ROOT_DIR/apache-pulsar-client-$PULSAR_CPP_VERSION-r0.apk
46+
curl -O -L $APK_ROOT_DIR/apache-pulsar-client-dev-$PULSAR_CPP_VERSION-r0.apk
47+
apk add --allow-untrusted *.apk
48+
fi
5149

52-
PYBIND11_VERSION=$(./build-support/dep-version.py pybind11)
53-
curl -L -O https://github.com/pybind/pybind11/archive/refs/tags/v${PYBIND11_VERSION}.tar.gz
54-
tar zxf v${PYBIND11_VERSION}.tar.gz
50+
download_dependency $PWD/dependencies.yaml pybind11
5551
rm -rf pybind11
56-
mv pybind11-${PYBIND11_VERSION} pybind11
57-
58-
rm -f CMakeCache.txt CMakeFiles
59-
60-
cmake . \
61-
-DCMAKE_BUILD_TYPE=Release
52+
mv pybind11-* pybind11
6253

63-
make -j4
54+
cmake -B build -DCMAKE_BUILD_TYPE=Release
55+
cmake --build build -j8
56+
mv build/lib_pulsar.so .
6457

6558
./setup.py bdist_wheel
6659

pkg/manylinux2014/Dockerfile

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,11 @@ ARG PYTHON_VERSION
2424
ARG PYTHON_SPEC
2525
ARG ARCH
2626

27+
ENV CPP_BINARY_TYPE=rpm
2728
ENV PYTHON_VERSION=${PYTHON_VERSION}
2829
ENV PYTHON_SPEC=${PYTHON_SPEC}
2930

3031
ENV PATH="/opt/python/${PYTHON_SPEC}/bin:${PATH}"
3132
ENV ARCH=${ARCH}
3233

33-
ENV PYTHON_INCLUDE_DIR /opt/python/${PYTHON_SPEC}/include
34-
ENV PYTHON_LIBRARIES /opt/python/${PYTHON_SPEC}/lib/python${PYTHON_VERSION}
35-
ENV Python3_ROOT_DIR /opt/python/${PYTHON_SPEC}/
36-
37-
RUN pip3 install pyyaml setuptools
38-
39-
ADD .build/dependencies.yaml /
40-
ADD .build/dep-version.py /usr/local/bin
41-
ADD .build/dep-url.sh /
42-
43-
RUN yum install -y curl zip unzip tar perl-IPC-Cmd
34+
RUN pip3 install setuptools

pkg/manylinux_musl/Dockerfile

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,6 @@ ARG ARCH
3030
ENV ARCH=${ARCH}
3131

3232
ENV PATH="/opt/python/${PYTHON_SPEC}/bin:${PATH}"
33-
ENV PYTHON_INCLUDE_DIR /opt/python/${PYTHON_SPEC}/include
34-
ENV PYTHON_LIBRARIES /opt/python/${PYTHON_SPEC}/lib/python${PYTHON_VERSION}
3533

36-
RUN pip install pyyaml setuptools
37-
38-
ADD .build/dependencies.yaml /
39-
ADD .build/dep-version.py /usr/local/bin
40-
ADD .build/dep-url.sh /
41-
42-
RUN apk add build-base cmake ninja zip unzip curl git
34+
RUN pip install setuptools
35+
ENV CPP_BINARY_TYPE="apk"

0 commit comments

Comments
 (0)