Skip to content

How to build a python3.7-abi wheel for ppc64le? #1022

@mgiessing

Description

@mgiessing

Expected behaviour

I want to build a opencv_python-4.10.0.84-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl but the abi3 part is missing (i.e. I need to built it manually for py37,38,39,310,311,312,313)

It works generally fine, but I just get:

opencv_python-4.10.0.84-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

...

opencv_python-4.10.0.84-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Actual behaviour

It doesn't build the abi3 part - I guess I'm missing a flag etc.?

Steps to reproduce

Be on a ppc64le system to reproduce:

a) Build the build-image

cd /tmp
wget https://raw.githubusercontent.com/opencv/opencv-python/4.x/docker/manylinux2014/Dockerfile_aarch64 -O Dockerfile.ppc64le

sed -i "s/aarch64/ppc64le/g" Dockerfile.ppc64le

docker build -t quay.io/mgiessing/opencv-build:4x -f Dockerfile.ppc64le .

b) Run the build image and build the ppc64le manylinux2014 wheel

# Build manually using Dockerfile.aarch64 and adopted minimally for ppc64le (based off the official quay.io/pypa/manylinux2014_ppc64le)
docker run -ti --rm quay.io/mgiessing/opencv-build:4x

# Repo that has manylinux2014 numpy ppc64le wheels
mkdir ~/.pip
echo "[global]" > ~/.pip/pip.conf
echo "extra-index-url = https://repo.fury.io/mgiessing" >> ~/.pip/pip.conf

cd $HOME
ver=cp37-cp37m

export CMAKE_ARGS="-G Ninja -DPYTHON3_LIMITED_API=ON"

git clone -b 84 --recursive https://github.com/opencv/opencv-python.git && cd opencv-python

# Needed as ppc64le has numpy 1.19.5 prebuilt wheel
sed -i "s/numpy==1.17.0/numpy==1.19.5/g" pyproject.toml

/opt/python/${ver}/bin/pip3 install ninja
export PATH=$PATH:/home/ci/.local/lib/python3.7/site-packages/ninja/data/bin
/opt/python/${ver}/bin/pip3 wheel . --verbose
auditwheel repair opencv_python*whl
Issue submission checklist
  • This is not a generic OpenCV usage question (looking for help for coding, other usage questions, homework etc.)
  • I have read the README of this repository and understand that this repository provides only an automated build toolchain for OpenCV Python packages (there is no actual OpenCV code here)
  • The issue is related to the build scripts in this repository, to the pre-built binaries or is a feature request (such as "please enable this additional dependency")
  • [] I'm using the latest version of opencv-python ==> No, I'm using version 84

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions