Skip to content

Commit

Permalink
OpenCV package does not distribute zlib (#780)
Browse files Browse the repository at this point in the history
Roll back to manylinux version to presume binary compatibility.
Related changes: #715
Address:
- #765
- #772
  • Loading branch information
asmorkalov committed Jan 20, 2023
1 parent 339bca5 commit 736b905
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 56 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build_wheels_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
MB_ML_VER: 2014
TRAVIS_BUILD_DIR: ${{ github.workspace }}
CONFIG_PATH: travis_config.sh
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20221205
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20230117
USE_CCACHE: 0
UNICODE_WIDTH: 32
PLAT: x86_64
Expand Down Expand Up @@ -139,7 +139,7 @@ jobs:
NP_TEST_DEP: numpy==1.19.4
TRAVIS_BUILD_DIR: ${{ github.workspace }}
CONFIG_PATH: travis_config.sh
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20220628
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20230117
USE_CCACHE: 1
UNICODE_WIDTH: 32
SDIST: ${{ matrix.build_sdist || 0 }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build_wheels_linux_arm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
MB_ML_VER: 2014
TRAVIS_BUILD_DIR: ${{ github.workspace }}
CONFIG_PATH: travis_config.sh
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20221205
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20230117
USE_CCACHE: 0
UNICODE_WIDTH: 32
SDIST: ${{ matrix.build_sdist || 0 }}
Expand Down
18 changes: 3 additions & 15 deletions docker/manylinux2014/Dockerfile_aarch64
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Version: 20221205
# Version: 20230117
# Image name: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64

FROM quay.io/pypa/manylinux2014_aarch64:latest
Expand All @@ -11,28 +11,16 @@ ARG NASM_VERSION=2.15.04
ARG OPENSSL_VERSION=1_1_1s
ARG QT_VERSION=5.15.0
ARG YASM_VERSION=1.3.0
ARG ZLIB_VERSION=1.2.13

ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH

# epel-release need for aarch64 to get openblas packages
RUN yum install bzip2-devel curl-devel xcb-util-renderutil-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libXi-devel lapack-devel epel-release -y && \
RUN yum install zlib-devel curl-devel xcb-util-renderutil-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libXi-devel lapack-devel epel-release -y && \
yum install openblas-devel dejavu-sans-fonts -y && \
cp /usr/include/lapacke/lapacke*.h /usr/include/ && \
curl https://raw.githubusercontent.com/xianyi/OpenBLAS/v0.3.3/cblas.h -o /usr/include/cblas.h && \
# libpng will be built from source
yum remove libpng zlib-devel bzip2-devel -y

RUN mkdir ~/zlib_sources && \
cd ~/zlib_sources && \
curl -O -L https://www.zlib.net/zlib-${ZLIB_VERSION}.tar.gz && \
tar -xf zlib-${ZLIB_VERSION}.tar.gz && \
cd zlib-${ZLIB_VERSION} && \
./configure --prefix=/usr/local && \
make && \
make install && \
cd .. && \
rm -rf ~/zlib_sources
yum remove libpng -y

RUN mkdir ~/libpng_sources && \
cd ~/libpng_sources && \
Expand Down
18 changes: 3 additions & 15 deletions docker/manylinux2014/Dockerfile_x86_64
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Version: 20221205
# Version: 20230117
# Image name: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64

FROM quay.io/pypa/manylinux2014_x86_64:latest
Expand All @@ -11,28 +11,16 @@ ARG NASM_VERSION=2.15.04
ARG OPENSSL_VERSION=1_1_1s
ARG QT_VERSION=5.15.0
ARG YASM_VERSION=1.3.0
ARG ZLIB_VERSION=1.2.13

ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH

# epel-release need for aarch64 to get openblas packages
RUN yum install bzip2-devel curl-devel xcb-util-renderutil-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libXi-devel lapack-devel epel-release -y && \
RUN yum install zlib-devel curl-devel xcb-util-renderutil-devel xcb-util-devel xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel mesa-libGL-devel libxkbcommon-devel libxkbcommon-x11-devel libXi-devel lapack-devel epel-release -y && \
yum install openblas-devel dejavu-sans-fonts -y && \
cp /usr/include/lapacke/lapacke*.h /usr/include/ && \
curl https://raw.githubusercontent.com/xianyi/OpenBLAS/v0.3.3/cblas.h -o /usr/include/cblas.h && \
# libpng will be built from source
yum remove libpng zlib-devel bzip2-devel -y

RUN mkdir ~/zlib_sources && \
cd ~/zlib_sources && \
curl -O -L https://www.zlib.net/zlib-${ZLIB_VERSION}.tar.gz && \
tar -xf zlib-${ZLIB_VERSION}.tar.gz && \
cd zlib-${ZLIB_VERSION} && \
./configure --prefix=/usr/local && \
make && \
make install && \
cd .. && \
rm -rf ~/zlib_sources
yum remove libpng -y

RUN mkdir ~/libpng_sources && \
cd ~/libpng_sources && \
Expand Down
23 changes: 0 additions & 23 deletions patch_auditwheel_whitelist.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,6 @@

from auditwheel import policy


def add_zlib_versions():
with open(join(dirname(abspath(policy.__file__)), "manylinux-policy.json"), 'r') as manylinux_policy:
manylinux_policy_lines = manylinux_policy.readlines()

manylinux_policy_data = ""
for line in manylinux_policy_lines:
if "ZLIB" in line:
if len(line) > 22:
updated_line = line[:-2] + ', "1.2.9", "1.2.12", "1.2.13"]'
else:
updated_line = line[:-2] + '"1.2.9", "1.2.12", "1.2.13"]'
print("auditwheel patch: replace policy line \"%s\" with \"%s\"" % (line, updated_line))
manylinux_policy_replacement = line.replace(line, updated_line)
else:
manylinux_policy_replacement = line
manylinux_policy_data = manylinux_policy_data + manylinux_policy_replacement

with open(join(dirname(abspath(policy.__file__)), "manylinux-policy.json"), 'w') as manylinux_final_policy:
manylinux_final_policy.write(manylinux_policy_data)

def add_whitelisted_libs():
policies = None

Expand All @@ -36,7 +15,5 @@ def add_whitelisted_libs():
with open(join(dirname(abspath(policy.__file__)), "manylinux-policy.json"), "w") as f:
f.write(json.dumps(policies))


if __name__ == '__main__':
add_zlib_versions()
add_whitelisted_libs()

0 comments on commit 736b905

Please sign in to comment.