Skip to content

Commit 651e13e

Browse files
mayeutjcfr
authored andcommitted
Add ppc64le & s390x manylinux2014 builds
1 parent aeab1d2 commit 651e13e

5 files changed

+72
-56
lines changed

.travis.yml

+15-6
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ branches:
33
- master
44
- /^[0-9]+(\.[0-9]+)*(\.post[0-9]+)?$/
55

6+
os: linux
7+
dist: focal
68
language: python
9+
python: "3.8"
710

811
matrix:
912
include:
@@ -18,12 +21,14 @@ matrix:
1821
env:
1922
- PYTHON_VERSION=2.7.18
2023

21-
- os: linux
22-
arch: arm64-graviton2
24+
- arch: arm64-graviton2
2325
virt: vm
2426
group: edge
25-
dist: focal
26-
language: generic
27+
28+
- arch: ppc64le
29+
30+
- arch: s390x
31+
2732

2833

2934
cache:
@@ -63,15 +68,19 @@ before_install:
6368
-v $(pwd):/io \
6469
--env TRAVIS=True \
6570
--env TRAVIS_OS_NAME="${TRAVIS_OS_NAME}" \
66-
quay.io/pypa/manylinux2014_aarch64 \
67-
/io/scripts/manylinux2014-aarch64-build-and-test-wheel.sh
71+
quay.io/pypa/manylinux2014_$(uname -m) \
72+
/io/scripts/manylinux2014-build-and-test-wheel.sh
6873
fi
6974
7075
install:
7176
- |
7277
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
7378
ci install
7479
elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
80+
MACHINE=$(uname -m)
81+
if [[ "${MACHINE}" == "s390x" ]] || [[ "${MACHINE}" == "ppc64le" ]]; then
82+
pip install $(pwd)/cryptography*.whl
83+
fi
7584
pip install twine
7685
fi
7786

scikit-ci.yml

+1-13
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@ before_install:
1313
PATH: /opt/python/$<MANYLINUX_PYTHON>/bin:$<PATH>
1414
SETUP_CMAKE_ARGS: -DCMAKE_JOB_POOL_COMPILE:STRING=compile -DCMAKE_JOB_POOL_LINK:STRING=link '-DCMAKE_JOB_POOLS:STRING=compile=4;link=3'
1515
commands:
16-
- |
17-
if [[ ${DEFAULT_DOCKCROSS_IMAGE} == *"manylinux2014-aarch64"* ]]; then
18-
./scripts/manylinux2014-aarch64-build-and-install-openssl.sh
19-
fi
2016
- python: |
2117
import ci, os
2218
image_name=os.environ["DEFAULT_DOCKCROSS_IMAGE"].split(":")[0].split("/")[1]
@@ -37,14 +33,6 @@ before_install:
3733
# SETUP_CMAKE_ARGS
3834
if arch in ["x86", "x64"]:
3935
os.environ["SETUP_CMAKE_ARGS"] = "-DOPENSSL_ROOT_DIR:PATH=/usr/local/ssl " + os.environ["SETUP_CMAKE_ARGS"]
40-
# SETUP_BDIST_WHEEL_ARGS
41-
if arch == "aarch64":
42-
os.environ["SETUP_BDIST_WHEEL_ARGS"] = "--plat-name %s" % os.environ["AUDITWHEEL_PLAT"]
43-
setup_cmake_args = []
44-
# Remove this after addressing https://github.com/dockcross/dockcross/issues/431
45-
setup_cmake_args.append("-DOPENSSL_ROOT_DIR:PATH=/tmp/openssl-install")
46-
setup_cmake_args.append("-DSTRIP_EXECUTABLE:FILEPATH=" + os.environ["CROSS_ROOT"] + "/" + os.environ["CROSS_TRIPLE"] + "/bin/strip")
47-
os.environ["SETUP_CMAKE_ARGS"] = " ".join(setup_cmake_args) + " " + os.environ["SETUP_CMAKE_ARGS"]
4836
ci.driver.Driver.save_env(os.environ)
4937
5038
travis:
@@ -64,7 +52,7 @@ before_install:
6452
os.environ["SETUP_BDIST_WHEEL_ARGS"] = "--plat-name %s" % os.environ["AUDITWHEEL_PLAT"]
6553
setup_cmake_args = []
6654
setup_cmake_args.append("-DSTRIP_EXECUTABLE:FILEPATH=/opt/rh/devtoolset-9/root/usr/" + "/bin/strip")
67-
if platform.machine() == "aarch64":
55+
if platform.machine() in {"aarch64", "ppc64le", "s390x"}:
6856
# Remove this after addressing https://github.com/dockcross/dockcross/issues/431
6957
setup_cmake_args.append("-DOPENSSL_ROOT_DIR:PATH=/tmp/openssl-install")
7058
os.environ["SETUP_CMAKE_ARGS"] = " ".join(setup_cmake_args)

scripts/manylinux2014-aarch64-build-and-test-wheel.sh

-32
This file was deleted.

scripts/manylinux2014-aarch64-build-and-install-openssl.sh renamed to scripts/manylinux2014-build-and-install-openssl.sh

+15-5
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,37 @@ check_var CROSS_TRIPLE
2121

2222
# OPENSSL_INSTALL_DIR=${CROSS_ROOT}/${CROSS_TRIPLE}
2323
# Support using older manylinux2014-aarch64 images where 'sudo' is broken
24-
OPENSSL_INSTALL_DIR=/tmp/openssl-install
24+
25+
OPENSSL_INSTALL_DIR=$1
26+
shift
2527

2628
cd /tmp
2729

2830
# Download
29-
wget http://www.openssl.org/source/${OPENSSL_ROOT}.tar.gz
31+
curl -fsSLO http://www.openssl.org/source/${OPENSSL_ROOT}.tar.gz
3032
check_sha256sum ${OPENSSL_ROOT}.tar.gz ${OPENSSL_HASH}
3133
tar -xzf ${OPENSSL_ROOT}.tar.gz
3234
rm -rf ${OPENSSL_ROOT}.tar.gz
3335

36+
if [ "$(uname -m)" == "s390x" ]; then
37+
TARGET=linux64-s390x
38+
else
39+
TARGET=linux-$(uname -m)
40+
fi
41+
3442
# Configure
3543
cd ${OPENSSL_ROOT}
3644
./Configure \
37-
linux-aarch64 \
45+
${TARGET} \
3846
--cross-compile-prefix= \
3947
--prefix=${OPENSSL_INSTALL_DIR} \
40-
shared
48+
$*
4149

4250
# Build
4351
make -j$(nproc)
4452

4553
# Install
46-
make install
54+
make install > /dev/null
4755

56+
cd /tmp
57+
rm -rf ${OPENSSL_ROOT}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/bin/bash
2+
3+
set -e
4+
set -x
5+
6+
MANYLINUX_PYTHON_BIN=/opt/python/cp38-cp38/bin
7+
export PATH="${MANYLINUX_PYTHON_BIN}:$PATH"
8+
9+
cd /io
10+
./scripts/manylinux2014-build-and-install-openssl.sh /tmp/openssl-install shared
11+
12+
MACHINE=$(uname -m)
13+
if [ "${MACHINE}" == "s390x" ] || [ "${MACHINE}" == "ppc64le" ]; then
14+
# build cryptography from sources
15+
yum install -y libffi-devel
16+
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path
17+
export PATH=${HOME}/.cargo/bin:${PATH}
18+
./scripts/manylinux2014-build-and-install-openssl.sh /tmp/openssl-cryptography no-shared -fPIC
19+
CFLAGS="-I/tmp/openssl-cryptography/include" LDFLAGS="-L/tmp/openssl-cryptography/lib" ${MANYLINUX_PYTHON_BIN}/pip wheel --no-binary :all: cryptography
20+
${MANYLINUX_PYTHON_BIN}/pip install ./cryptography*.whl
21+
fi
22+
23+
ci_before_install() {
24+
${MANYLINUX_PYTHON_BIN}/python scripts/ssl-check.py
25+
${MANYLINUX_PYTHON_BIN}/pip install scikit-ci scikit-ci-addons scikit-build
26+
}
27+
28+
ci_install() {
29+
${MANYLINUX_PYTHON_BIN}/ci install
30+
}
31+
ci_test() {
32+
${MANYLINUX_PYTHON_BIN}/ci test
33+
}
34+
ci_after_success() {
35+
${MANYLINUX_PYTHON_BIN}/ci after_test
36+
}
37+
38+
ci_before_install
39+
ci_install
40+
ci_test
41+
ci_after_success

0 commit comments

Comments
 (0)