From e2a005c1b66b2eb0f6b5135675b2c9eeaa12bc5b Mon Sep 17 00:00:00 2001 From: Lidi Zheng Date: Tue, 17 Sep 2019 12:41:50 -0700 Subject: [PATCH 1/6] Build Python wheels with tag manylinux2010 --- .../Dockerfile | 0 .../Dockerfile | 0 .../Dockerfile | 38 ++++++++++++++++ .../Dockerfile | 38 ++++++++++++++++ tools/run_tests/artifacts/artifact_targets.py | 43 ++++++++++++------- 5 files changed, 104 insertions(+), 15 deletions(-) rename tools/dockerfile/{grpc_artifact_python_manylinux_x64 => grpc_artifact_python_manylinux1_x64}/Dockerfile (100%) rename tools/dockerfile/{grpc_artifact_python_manylinux_x86 => grpc_artifact_python_manylinux1_x86}/Dockerfile (100%) create mode 100644 tools/dockerfile/grpc_artifact_python_manylinux2010_x64/Dockerfile create mode 100644 tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile diff --git a/tools/dockerfile/grpc_artifact_python_manylinux_x64/Dockerfile b/tools/dockerfile/grpc_artifact_python_manylinux1_x64/Dockerfile similarity index 100% rename from tools/dockerfile/grpc_artifact_python_manylinux_x64/Dockerfile rename to tools/dockerfile/grpc_artifact_python_manylinux1_x64/Dockerfile diff --git a/tools/dockerfile/grpc_artifact_python_manylinux_x86/Dockerfile b/tools/dockerfile/grpc_artifact_python_manylinux1_x86/Dockerfile similarity index 100% rename from tools/dockerfile/grpc_artifact_python_manylinux_x86/Dockerfile rename to tools/dockerfile/grpc_artifact_python_manylinux1_x86/Dockerfile diff --git a/tools/dockerfile/grpc_artifact_python_manylinux2010_x64/Dockerfile b/tools/dockerfile/grpc_artifact_python_manylinux2010_x64/Dockerfile new file mode 100644 index 00000000000..37e2da568ae --- /dev/null +++ b/tools/dockerfile/grpc_artifact_python_manylinux2010_x64/Dockerfile @@ -0,0 +1,38 @@ +# Copyright 2019 The gRPC Authors +# +# Licensed 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. + +# Docker file for building gRPC manylinux Python artifacts. + +FROM quay.io/pypa/manylinux2010_x86_64 + +# Update the package manager +RUN yum update -y +RUN yum install -y curl-devel expat-devel gettext-devel linux-headers openssl-devel zlib-devel gcc + +################################### +# Install Python build requirements +RUN /opt/python/cp27-cp27m/bin/pip install cython +RUN /opt/python/cp27-cp27mu/bin/pip install cython +RUN /opt/python/cp34-cp34m/bin/pip install cython +RUN /opt/python/cp35-cp35m/bin/pip install cython +RUN /opt/python/cp36-cp36m/bin/pip install cython +RUN /opt/python/cp37-cp37m/bin/pip install cython + +#################################################### +# Install auditwheel with fix for namespace packages +RUN git clone https://github.com/pypa/auditwheel /usr/local/src/auditwheel +RUN cd /usr/local/src/auditwheel && git checkout 2.1 +RUN /opt/python/cp36-cp36m/bin/pip install /usr/local/src/auditwheel +RUN rm /usr/local/bin/auditwheel +RUN cd /usr/local/bin && ln -s /opt/python/cp36-cp36m/bin/auditwheel diff --git a/tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile b/tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile new file mode 100644 index 00000000000..a4acb30d09d --- /dev/null +++ b/tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile @@ -0,0 +1,38 @@ +# Copyright 2019 The gRPC Authors +# +# Licensed 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. + +# Docker file for building gRPC manylinux Python artifacts. + +FROM quay.io/pypa/manylinux2010_i686 + +# Update the package manager +RUN yum update -y +RUN yum install -y curl-devel expat-devel gettext-devel linux-headers openssl-devel zlib-devel gcc + +################################### +# Install Python build requirements +RUN /opt/python/cp27-cp27m/bin/pip install cython +RUN /opt/python/cp27-cp27mu/bin/pip install cython +RUN /opt/python/cp34-cp34m/bin/pip install cython +RUN /opt/python/cp35-cp35m/bin/pip install cython +RUN /opt/python/cp36-cp36m/bin/pip install cython +RUN /opt/python/cp37-cp37m/bin/pip install cython + +#################################################### +# Install auditwheel with fix for namespace packages +RUN git clone https://github.com/pypa/auditwheel /usr/local/src/auditwheel +RUN cd /usr/local/src/auditwheel && git checkout 2.1 +RUN /opt/python/cp36-cp36m/bin/pip install /usr/local/src/auditwheel +RUN rm /usr/local/bin/auditwheel +RUN cd /usr/local/bin && ln -s /opt/python/cp36-cp36m/bin/auditwheel diff --git a/tools/run_tests/artifacts/artifact_targets.py b/tools/run_tests/artifacts/artifact_targets.py index aa1d0c3bf22..e251e29dbf7 100644 --- a/tools/run_tests/artifacts/artifact_targets.py +++ b/tools/run_tests/artifacts/artifact_targets.py @@ -135,7 +135,7 @@ class PythonArtifact: timeout_seconds=60 * 60 * 5, docker_base_image='quay.io/grpc/raspbian_{}'.format(self.arch), extra_docker_args=extra_args) - elif self.platform == 'linux': + elif 'manylinux' in self.platform: if self.arch == 'x86': environ['SETARCH_CMD'] = 'linux32' # Inside the manylinux container, the python installations are located in @@ -150,10 +150,11 @@ class PythonArtifact: environ['CFLAGS'] = '-DGPR_MANYLINUX1=1' environ['GRPC_BUILD_GRPCIO_TOOLS_DEPENDENTS'] = 'TRUE' environ['GRPC_BUILD_MANYLINUX_WHEEL'] = 'TRUE' + return create_docker_jobspec( self.name, - 'tools/dockerfile/grpc_artifact_python_manylinux_%s' % - self.arch, + 'tools/dockerfile/grpc_artifact_python_%s_%s' % (self.platform, + self.arch), 'tools/run_tests/artifacts/build_artifact_python.sh', environ=environ, timeout_seconds=60 * 60, @@ -360,12 +361,18 @@ def targets(): CSharpExtArtifact('linux', 'android', arch_abi='armeabi-v7a'), CSharpExtArtifact('linux', 'android', arch_abi='x86'), CSharpExtArtifact('macos', 'ios'), - PythonArtifact('linux', 'x86', 'cp27-cp27m'), - PythonArtifact('linux', 'x86', 'cp27-cp27mu'), - PythonArtifact('linux', 'x86', 'cp34-cp34m'), - PythonArtifact('linux', 'x86', 'cp35-cp35m'), - PythonArtifact('linux', 'x86', 'cp36-cp36m'), - PythonArtifact('linux', 'x86', 'cp37-cp37m'), + PythonArtifact('manylinux1', 'x86', 'cp27-cp27m'), + PythonArtifact('manylinux1', 'x86', 'cp27-cp27mu'), + PythonArtifact('manylinux1', 'x86', 'cp34-cp34m'), + PythonArtifact('manylinux1', 'x86', 'cp35-cp35m'), + PythonArtifact('manylinux1', 'x86', 'cp36-cp36m'), + PythonArtifact('manylinux1', 'x86', 'cp37-cp37m'), + PythonArtifact('manylinux2010', 'x86', 'cp27-cp27m'), + PythonArtifact('manylinux2010', 'x86', 'cp27-cp27mu'), + PythonArtifact('manylinux2010', 'x86', 'cp34-cp34m'), + PythonArtifact('manylinux2010', 'x86', 'cp35-cp35m'), + PythonArtifact('manylinux2010', 'x86', 'cp36-cp36m'), + PythonArtifact('manylinux2010', 'x86', 'cp37-cp37m'), PythonArtifact('linux_extra', 'armv7', '2.7'), PythonArtifact('linux_extra', 'armv7', '3.4'), PythonArtifact('linux_extra', 'armv7', '3.5'), @@ -374,12 +381,18 @@ def targets(): PythonArtifact('linux_extra', 'armv6', '3.4'), PythonArtifact('linux_extra', 'armv6', '3.5'), PythonArtifact('linux_extra', 'armv6', '3.6'), - PythonArtifact('linux', 'x64', 'cp27-cp27m'), - PythonArtifact('linux', 'x64', 'cp27-cp27mu'), - PythonArtifact('linux', 'x64', 'cp34-cp34m'), - PythonArtifact('linux', 'x64', 'cp35-cp35m'), - PythonArtifact('linux', 'x64', 'cp36-cp36m'), - PythonArtifact('linux', 'x64', 'cp37-cp37m'), + PythonArtifact('manylinux1', 'x64', 'cp27-cp27m'), + PythonArtifact('manylinux1', 'x64', 'cp27-cp27mu'), + PythonArtifact('manylinux1', 'x64', 'cp34-cp34m'), + PythonArtifact('manylinux1', 'x64', 'cp35-cp35m'), + PythonArtifact('manylinux1', 'x64', 'cp36-cp36m'), + PythonArtifact('manylinux1', 'x64', 'cp37-cp37m'), + PythonArtifact('manylinux2010', 'x64', 'cp27-cp27m'), + PythonArtifact('manylinux2010', 'x64', 'cp27-cp27mu'), + PythonArtifact('manylinux2010', 'x64', 'cp34-cp34m'), + PythonArtifact('manylinux2010', 'x64', 'cp35-cp35m'), + PythonArtifact('manylinux2010', 'x64', 'cp36-cp36m'), + PythonArtifact('manylinux2010', 'x64', 'cp37-cp37m'), PythonArtifact('macos', 'x64', 'python2.7'), PythonArtifact('macos', 'x64', 'python3.4'), PythonArtifact('macos', 'x64', 'python3.5'), From 60b68b884d1475e7a671791a395fdaac64646e21 Mon Sep 17 00:00:00 2001 From: Lidi Zheng Date: Tue, 17 Sep 2019 13:04:43 -0700 Subject: [PATCH 2/6] Remove manylinux2010 i686 targets --- .../Dockerfile | 38 ------------------- tools/run_tests/artifacts/artifact_targets.py | 8 +--- 2 files changed, 2 insertions(+), 44 deletions(-) delete mode 100644 tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile diff --git a/tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile b/tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile deleted file mode 100644 index a4acb30d09d..00000000000 --- a/tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 2019 The gRPC Authors -# -# Licensed 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. - -# Docker file for building gRPC manylinux Python artifacts. - -FROM quay.io/pypa/manylinux2010_i686 - -# Update the package manager -RUN yum update -y -RUN yum install -y curl-devel expat-devel gettext-devel linux-headers openssl-devel zlib-devel gcc - -################################### -# Install Python build requirements -RUN /opt/python/cp27-cp27m/bin/pip install cython -RUN /opt/python/cp27-cp27mu/bin/pip install cython -RUN /opt/python/cp34-cp34m/bin/pip install cython -RUN /opt/python/cp35-cp35m/bin/pip install cython -RUN /opt/python/cp36-cp36m/bin/pip install cython -RUN /opt/python/cp37-cp37m/bin/pip install cython - -#################################################### -# Install auditwheel with fix for namespace packages -RUN git clone https://github.com/pypa/auditwheel /usr/local/src/auditwheel -RUN cd /usr/local/src/auditwheel && git checkout 2.1 -RUN /opt/python/cp36-cp36m/bin/pip install /usr/local/src/auditwheel -RUN rm /usr/local/bin/auditwheel -RUN cd /usr/local/bin && ln -s /opt/python/cp36-cp36m/bin/auditwheel diff --git a/tools/run_tests/artifacts/artifact_targets.py b/tools/run_tests/artifacts/artifact_targets.py index e251e29dbf7..7f35eb19cf3 100644 --- a/tools/run_tests/artifacts/artifact_targets.py +++ b/tools/run_tests/artifacts/artifact_targets.py @@ -361,18 +361,14 @@ def targets(): CSharpExtArtifact('linux', 'android', arch_abi='armeabi-v7a'), CSharpExtArtifact('linux', 'android', arch_abi='x86'), CSharpExtArtifact('macos', 'ios'), + # TODO(https://github.com/grpc/grpc/issues/20283) + # Add manylinux2010_x86 targets once this issue is resolved. PythonArtifact('manylinux1', 'x86', 'cp27-cp27m'), PythonArtifact('manylinux1', 'x86', 'cp27-cp27mu'), PythonArtifact('manylinux1', 'x86', 'cp34-cp34m'), PythonArtifact('manylinux1', 'x86', 'cp35-cp35m'), PythonArtifact('manylinux1', 'x86', 'cp36-cp36m'), PythonArtifact('manylinux1', 'x86', 'cp37-cp37m'), - PythonArtifact('manylinux2010', 'x86', 'cp27-cp27m'), - PythonArtifact('manylinux2010', 'x86', 'cp27-cp27mu'), - PythonArtifact('manylinux2010', 'x86', 'cp34-cp34m'), - PythonArtifact('manylinux2010', 'x86', 'cp35-cp35m'), - PythonArtifact('manylinux2010', 'x86', 'cp36-cp36m'), - PythonArtifact('manylinux2010', 'x86', 'cp37-cp37m'), PythonArtifact('linux_extra', 'armv7', '2.7'), PythonArtifact('linux_extra', 'armv7', '3.4'), PythonArtifact('linux_extra', 'armv7', '3.5'), From c55142a632013ec9d952a5c2a64ba6393047c0c0 Mon Sep 17 00:00:00 2001 From: Lidi Zheng Date: Tue, 17 Sep 2019 13:08:25 -0700 Subject: [PATCH 3/6] Add linux label to make our CI work --- tools/run_tests/artifacts/artifact_targets.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/run_tests/artifacts/artifact_targets.py b/tools/run_tests/artifacts/artifact_targets.py index 7f35eb19cf3..762c1a32399 100644 --- a/tools/run_tests/artifacts/artifact_targets.py +++ b/tools/run_tests/artifacts/artifact_targets.py @@ -110,6 +110,8 @@ class PythonArtifact: self.arch = arch self.labels = ['artifact', 'python', platform, arch, py_version] self.py_version = py_version + if 'manylinux' in platform: + self.labels.append('linux') def pre_build_jobspecs(self): return [] From 31afe769022eb43f0525a3a9eceaf1319feb8ab5 Mon Sep 17 00:00:00 2001 From: Lidi Zheng Date: Tue, 17 Sep 2019 14:20:13 -0700 Subject: [PATCH 4/6] Make the artifact check accepts both manylinux1 and manylinux2010 --- tools/run_tests/artifacts/build_artifact_python.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/run_tests/artifacts/build_artifact_python.sh b/tools/run_tests/artifacts/build_artifact_python.sh index 7393b88a768..a708f2e103d 100755 --- a/tools/run_tests/artifacts/build_artifact_python.sh +++ b/tools/run_tests/artifacts/build_artifact_python.sh @@ -79,12 +79,12 @@ ${SETARCH_CMD} "${PYTHON}" tools/distrib/python/grpcio_tools/setup.py bdist_whee if [ "$GRPC_BUILD_MANYLINUX_WHEEL" != "" ] then for wheel in dist/*.whl; do - "${AUDITWHEEL}" show "$wheel" | tee /dev/stderr | grep \"manylinux1 + "${AUDITWHEEL}" show "$wheel" | tee /dev/stderr | grep \"manylinux "${AUDITWHEEL}" repair "$wheel" -w "$ARTIFACT_DIR" rm "$wheel" done for wheel in tools/distrib/python/grpcio_tools/dist/*.whl; do - "${AUDITWHEEL}" show "$wheel" | tee /dev/stderr | grep \"manylinux1 + "${AUDITWHEEL}" show "$wheel" | tee /dev/stderr | grep \"manylinux "${AUDITWHEEL}" repair "$wheel" -w "$ARTIFACT_DIR" rm "$wheel" done From 23a2ddcd65a2718426efbd3980f927f3a147de9a Mon Sep 17 00:00:00 2001 From: Lidi Zheng Date: Tue, 17 Sep 2019 14:46:50 -0700 Subject: [PATCH 5/6] Restrict the acceptable artifact tags to all existing uploadable combinations --- tools/run_tests/artifacts/build_artifact_python.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/run_tests/artifacts/build_artifact_python.sh b/tools/run_tests/artifacts/build_artifact_python.sh index a708f2e103d..91eb21fd7ee 100755 --- a/tools/run_tests/artifacts/build_artifact_python.sh +++ b/tools/run_tests/artifacts/build_artifact_python.sh @@ -79,12 +79,12 @@ ${SETARCH_CMD} "${PYTHON}" tools/distrib/python/grpcio_tools/setup.py bdist_whee if [ "$GRPC_BUILD_MANYLINUX_WHEEL" != "" ] then for wheel in dist/*.whl; do - "${AUDITWHEEL}" show "$wheel" | tee /dev/stderr | grep \"manylinux + "${AUDITWHEEL}" show "$wheel" | tee /dev/stderr | grep -E -w 'manylinux(1|2010)_(x86_64|i686)' "${AUDITWHEEL}" repair "$wheel" -w "$ARTIFACT_DIR" rm "$wheel" done for wheel in tools/distrib/python/grpcio_tools/dist/*.whl; do - "${AUDITWHEEL}" show "$wheel" | tee /dev/stderr | grep \"manylinux + "${AUDITWHEEL}" show "$wheel" | tee /dev/stderr | grep -E -w 'manylinux(1|2010)_(x86_64|i686)' "${AUDITWHEEL}" repair "$wheel" -w "$ARTIFACT_DIR" rm "$wheel" done From 644a1c02483459a3aa4ee5eec15c31231563bc79 Mon Sep 17 00:00:00 2001 From: Esun Kim Date: Wed, 9 Oct 2019 08:41:42 -0700 Subject: [PATCH 6/6] Update docker images for manylinux --- .../grpc_artifact_linux_x64/Dockerfile | 2 +- .../grpc_artifact_linux_x86/Dockerfile | 2 +- .../Dockerfile | 9 +----- .../Dockerfile | 11 ++----- .../Dockerfile | 10 ++---- .../Dockerfile | 32 +++++++++++++++++++ .../artifacts/build_artifact_python.sh | 4 +-- 7 files changed, 41 insertions(+), 29 deletions(-) create mode 100644 tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile diff --git a/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile b/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile index b3c16951229..d0faf057679 100644 --- a/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile +++ b/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile @@ -84,7 +84,7 @@ RUN apt-get update && apt-get install -t jessie-backports -y cmake && apt-get cl # Python AuditWheel dependencies (needed to check manylinux1 compatibility) RUN apt-get install -y python3 python3-pip -RUN pip3 install auditwheel==1.10.0 +RUN pip3 install auditwheel==2.1.1 RUN mkdir /var/local/jenkins diff --git a/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile b/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile index c9054653067..8738137f5b2 100644 --- a/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile +++ b/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile @@ -77,7 +77,7 @@ RUN apt-get update && apt-get install -t jessie-backports -y cmake && apt-get cl # Python AuditWheel dependencies (needed to check manylinux1 compatibility) RUN apt-get install -y python3 python3-pip -RUN pip3 install auditwheel==1.10.0 +RUN pip3 install auditwheel==2.1.1 RUN mkdir /var/local/jenkins diff --git a/tools/dockerfile/grpc_artifact_python_manylinux1_x64/Dockerfile b/tools/dockerfile/grpc_artifact_python_manylinux1_x64/Dockerfile index c36ad6bec58..1ff6aa062a2 100644 --- a/tools/dockerfile/grpc_artifact_python_manylinux1_x64/Dockerfile +++ b/tools/dockerfile/grpc_artifact_python_manylinux1_x64/Dockerfile @@ -28,11 +28,4 @@ RUN /opt/python/cp34-cp34m/bin/pip install cython RUN /opt/python/cp35-cp35m/bin/pip install cython RUN /opt/python/cp36-cp36m/bin/pip install cython RUN /opt/python/cp37-cp37m/bin/pip install cython - -#################################################### -# Install auditwheel with fix for namespace packages -RUN git clone https://github.com/pypa/auditwheel /usr/local/src/auditwheel -RUN cd /usr/local/src/auditwheel && git checkout 2.1 -RUN /opt/python/cp36-cp36m/bin/pip install /usr/local/src/auditwheel -RUN rm /usr/local/bin/auditwheel -RUN cd /usr/local/bin && ln -s /opt/python/cp36-cp36m/bin/auditwheel +RUN /opt/python/cp38-cp38/bin/pip install cython diff --git a/tools/dockerfile/grpc_artifact_python_manylinux1_x86/Dockerfile b/tools/dockerfile/grpc_artifact_python_manylinux1_x86/Dockerfile index a33e0517ae2..18b4cb62927 100644 --- a/tools/dockerfile/grpc_artifact_python_manylinux1_x86/Dockerfile +++ b/tools/dockerfile/grpc_artifact_python_manylinux1_x86/Dockerfile @@ -28,12 +28,5 @@ RUN /opt/python/cp34-cp34m/bin/pip install cython RUN /opt/python/cp35-cp35m/bin/pip install cython RUN /opt/python/cp36-cp36m/bin/pip install cython RUN /opt/python/cp37-cp37m/bin/pip install cython - -#################################################### -# Install auditwheel with fix for namespace packages -RUN git clone https://github.com/pypa/auditwheel /usr/local/src/auditwheel -RUN cd /usr/local/src/auditwheel && git checkout 2.1 -RUN /opt/python/cp36-cp36m/bin/pip install /usr/local/src/auditwheel -RUN rm /usr/local/bin/auditwheel -RUN cd /usr/local/bin && ln -s /opt/python/cp36-cp36m/bin/auditwheel - +RUN /opt/python/cp37-cp37m/bin/pip install cython +RUN /opt/python/cp38-cp38/bin/pip install cython diff --git a/tools/dockerfile/grpc_artifact_python_manylinux2010_x64/Dockerfile b/tools/dockerfile/grpc_artifact_python_manylinux2010_x64/Dockerfile index 37e2da568ae..66aefcaac28 100644 --- a/tools/dockerfile/grpc_artifact_python_manylinux2010_x64/Dockerfile +++ b/tools/dockerfile/grpc_artifact_python_manylinux2010_x64/Dockerfile @@ -28,11 +28,5 @@ RUN /opt/python/cp34-cp34m/bin/pip install cython RUN /opt/python/cp35-cp35m/bin/pip install cython RUN /opt/python/cp36-cp36m/bin/pip install cython RUN /opt/python/cp37-cp37m/bin/pip install cython - -#################################################### -# Install auditwheel with fix for namespace packages -RUN git clone https://github.com/pypa/auditwheel /usr/local/src/auditwheel -RUN cd /usr/local/src/auditwheel && git checkout 2.1 -RUN /opt/python/cp36-cp36m/bin/pip install /usr/local/src/auditwheel -RUN rm /usr/local/bin/auditwheel -RUN cd /usr/local/bin && ln -s /opt/python/cp36-cp36m/bin/auditwheel +RUN /opt/python/cp37-cp37m/bin/pip install cython +RUN /opt/python/cp38-cp38/bin/pip install cython diff --git a/tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile b/tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile new file mode 100644 index 00000000000..f55a8785182 --- /dev/null +++ b/tools/dockerfile/grpc_artifact_python_manylinux2010_x86/Dockerfile @@ -0,0 +1,32 @@ +# Copyright 2019 The gRPC Authors +# +# Licensed 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. + +# Docker file for building gRPC manylinux Python artifacts. + +FROM quay.io/pypa/manylinux2010_i686 + +# Update the package manager +RUN yum update -y +RUN yum install -y curl-devel expat-devel gettext-devel linux-headers openssl-devel zlib-devel gcc + +################################### +# Install Python build requirements +RUN /opt/python/cp27-cp27m/bin/pip install cython +RUN /opt/python/cp27-cp27mu/bin/pip install cython +RUN /opt/python/cp34-cp34m/bin/pip install cython +RUN /opt/python/cp35-cp35m/bin/pip install cython +RUN /opt/python/cp36-cp36m/bin/pip install cython +RUN /opt/python/cp37-cp37m/bin/pip install cython +RUN /opt/python/cp37-cp37m/bin/pip install cython +RUN /opt/python/cp38-cp38/bin/pip install cython diff --git a/tools/run_tests/artifacts/build_artifact_python.sh b/tools/run_tests/artifacts/build_artifact_python.sh index 91eb21fd7ee..1fc7fd67a6f 100755 --- a/tools/run_tests/artifacts/build_artifact_python.sh +++ b/tools/run_tests/artifacts/build_artifact_python.sh @@ -79,12 +79,12 @@ ${SETARCH_CMD} "${PYTHON}" tools/distrib/python/grpcio_tools/setup.py bdist_whee if [ "$GRPC_BUILD_MANYLINUX_WHEEL" != "" ] then for wheel in dist/*.whl; do - "${AUDITWHEEL}" show "$wheel" | tee /dev/stderr | grep -E -w 'manylinux(1|2010)_(x86_64|i686)' + "${AUDITWHEEL}" show "$wheel" | tee /dev/stderr | grep -E -w "$AUDITWHEEL_PLAT" "${AUDITWHEEL}" repair "$wheel" -w "$ARTIFACT_DIR" rm "$wheel" done for wheel in tools/distrib/python/grpcio_tools/dist/*.whl; do - "${AUDITWHEEL}" show "$wheel" | tee /dev/stderr | grep -E -w 'manylinux(1|2010)_(x86_64|i686)' + "${AUDITWHEEL}" show "$wheel" | tee /dev/stderr | grep -E -w "$AUDITWHEEL_PLAT" "${AUDITWHEEL}" repair "$wheel" -w "$ARTIFACT_DIR" rm "$wheel" done