@@ -22,7 +22,6 @@ FROM quay.io/pypa/manylinux2014_${ARCH}
2222
2323ARG PYTHON_VERSION
2424ARG PYTHON_SPEC
25- ARG PLATFORM
2625ARG ARCH
2726
2827ENV PYTHON_VERSION=${PYTHON_VERSION}
@@ -36,6 +35,7 @@ ENV PYTHON_LIBRARIES /opt/python/${PYTHON_SPEC}/lib/python${PYTHON_VERSION}
3635RUN pip3 install pyyaml
3736
3837ADD .build/dependencies.yaml /
38+ ADD .build/pulsar-client-cpp-version.txt /
3939ADD .build/dep-version.py /usr/local/bin
4040
4141# Download and compile boost
@@ -54,3 +54,71 @@ RUN CMAKE_VERSION=$(dep-version.py cmake) && \
5454 cp cmake-${CMAKE_VERSION}-linux-${ARCH}/bin/* /usr/bin/ && \
5555 cp -r cmake-${CMAKE_VERSION}-linux-${ARCH}/share/cmake-* /usr/share/ && \
5656 rm -rf cmake-${CMAKE_VERSION}-linux-${ARCH} cmake-${CMAKE_VERSION}-linux-${ARCH}.tar.gz
57+
58+ # Download and compile protobuf
59+ RUN PROTOBUF_VERSION=$(dep-version.py protobuf) && \
60+ curl -O -L https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/protobuf-cpp-${PROTOBUF_VERSION}.tar.gz && \
61+ tar xfz protobuf-cpp-${PROTOBUF_VERSION}.tar.gz && \
62+ cd protobuf-${PROTOBUF_VERSION}/ && \
63+ CXXFLAGS=-fPIC ./configure && \
64+ make -j8 && make install && ldconfig && \
65+ rm -rf /protobuf-cpp-${PROTOBUF_VERSION}.tar.gz /protobuf-${PROTOBUF_VERSION}
66+
67+ # ZLib
68+ RUN ZLIB_VERSION=$(dep-version.py zlib) && \
69+ curl -O -L https://github.com/madler/zlib/archive/v${ZLIB_VERSION}.tar.gz && \
70+ tar xfz v${ZLIB_VERSION}.tar.gz && \
71+ cd zlib-${ZLIB_VERSION} && \
72+ CFLAGS="-fPIC -O3" ./configure && \
73+ make -j8 && make install && \
74+ rm -rf /v${ZLIB_VERSION}.tar.gz /zlib-${ZLIB_VERSION}
75+
76+ # Zstandard
77+ RUN ZSTD_VERSION=$(dep-version.py zstd) && \
78+ curl -O -L https://github.com/facebook/zstd/releases/download/v${ZSTD_VERSION}/zstd-${ZSTD_VERSION}.tar.gz && \
79+ tar xfz zstd-${ZSTD_VERSION}.tar.gz && \
80+ cd zstd-${ZSTD_VERSION} && \
81+ CFLAGS="-fPIC -O3" make -j8 && \
82+ make install && \
83+ rm -rf /zstd-${ZSTD_VERSION} /zstd-${ZSTD_VERSION}.tar.gz
84+
85+ # Snappy
86+ RUN SNAPPY_VERSION=$(dep-version.py snappy) && \
87+ curl -O -L https://github.com/google/snappy/archive/refs/tags/${SNAPPY_VERSION}.tar.gz && \
88+ tar xfz ${SNAPPY_VERSION}.tar.gz && \
89+ cd snappy-${SNAPPY_VERSION} && \
90+ CXXFLAGS="-fPIC -O3" cmake . -DSNAPPY_BUILD_TESTS=OFF -DSNAPPY_BUILD_BENCHMARKS=OFF && \
91+ make -j8 && make install && \
92+ rm -rf /snappy-${SNAPPY_VERSION} /${SNAPPY_VERSION}.tar.gz
93+
94+ RUN OPENSSL_VERSION=$(dep-version.py openssl) && \
95+ OPENSSL_VERSION_UNDERSCORE=$(echo $OPENSSL_VERSION | sed 's/\. /_/g' ) && \
96+ curl -O -L https://github.com/openssl/openssl/archive/OpenSSL_${OPENSSL_VERSION_UNDERSCORE}.tar.gz && \
97+ tar xfz OpenSSL_${OPENSSL_VERSION_UNDERSCORE}.tar.gz && \
98+ cd openssl-OpenSSL_${OPENSSL_VERSION_UNDERSCORE}/ && \
99+ ./config -fPIC --prefix=/usr/local/ssl/ && \
100+ make -j8 && make install && \
101+ rm -rf /OpenSSL_${OPENSSL_VERSION_UNDERSCORE}.tar.gz /openssl-OpenSSL_${OPENSSL_VERSION_UNDERSCORE}
102+
103+ ENV LD_LIBRARY_PATH /usr/local/ssl/lib/:/usr/local/lib
104+ ENV OPENSSL_ROOT_DIR /usr/local/ssl/
105+
106+ # LibCurl
107+ RUN CURL_VERSION=$(dep-version.py curl) && \
108+ CURL_VERSION_UNDERSCORE=$(echo $CURL_VERSION | sed 's/\. /_/g' ) && \
109+ curl -O -L https://github.com/curl/curl/releases/download/curl-${CURL_VERSION_UNDERSCORE}/curl-${CURL_VERSION}.tar.gz && \
110+ tar xfz curl-${CURL_VERSION}.tar.gz && \
111+ cd curl-${CURL_VERSION} && \
112+ CFLAGS=-fPIC ./configure --with-ssl=/usr/local/ssl/ --without-zstd && \
113+ make -j8 && make install && \
114+ rm -rf /curl-${CURL_VERSION}.tar.gz /curl-${CURL_VERSION}
115+
116+ # Pulsar client C++
117+ RUN PULSAR_CPP_VERSION=$(cat pulsar-client-cpp-version.txt | xargs) && \
118+ curl -O -L https://archive.apache.org/dist/pulsar/pulsar-client-cpp-${PULSAR_CPP_VERSION}/apache-pulsar-client-cpp-${PULSAR_CPP_VERSION}.tar.gz && \
119+ tar xfz apache-pulsar-client-cpp-${PULSAR_CPP_VERSION}.tar.gz && \
120+ cd apache-pulsar-client-cpp-${PULSAR_CPP_VERSION} && \
121+ cmake . -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF -DBUILD_STATIC_LIB=OFF -DLINK_STATIC=ON && \
122+ make -j8 && \
123+ make install && \
124+ rm -rf apache-pulsar-client-cpp-${PULSAR_CPP_VERSION} apache-pulsar-client-cpp-${PULSAR_CPP_VERSION}.tar.gz
0 commit comments