Skip to content

Commit 736b905

Browse files
authored
OpenCV package does not distribute zlib (#780)
Roll back to manylinux version to presume binary compatibility. Related changes: #715 Address: - #765 - #772
1 parent 339bca5 commit 736b905

File tree

5 files changed

+9
-56
lines changed

5 files changed

+9
-56
lines changed

.github/workflows/build_wheels_linux.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
MB_ML_VER: 2014
4242
TRAVIS_BUILD_DIR: ${{ github.workspace }}
4343
CONFIG_PATH: travis_config.sh
44-
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20221205
44+
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20230117
4545
USE_CCACHE: 0
4646
UNICODE_WIDTH: 32
4747
PLAT: x86_64
@@ -139,7 +139,7 @@ jobs:
139139
NP_TEST_DEP: numpy==1.19.4
140140
TRAVIS_BUILD_DIR: ${{ github.workspace }}
141141
CONFIG_PATH: travis_config.sh
142-
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20220628
142+
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64:20230117
143143
USE_CCACHE: 1
144144
UNICODE_WIDTH: 32
145145
SDIST: ${{ matrix.build_sdist || 0 }}

.github/workflows/build_wheels_linux_arm.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
MB_ML_VER: 2014
4343
TRAVIS_BUILD_DIR: ${{ github.workspace }}
4444
CONFIG_PATH: travis_config.sh
45-
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20221205
45+
DOCKER_IMAGE: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64:20230117
4646
USE_CCACHE: 0
4747
UNICODE_WIDTH: 32
4848
SDIST: ${{ matrix.build_sdist || 0 }}

docker/manylinux2014/Dockerfile_aarch64

+3-15
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Version: 20221205
1+
# Version: 20230117
22
# Image name: quay.io/opencv-ci/opencv-python-manylinux2014-aarch64
33

44
FROM quay.io/pypa/manylinux2014_aarch64:latest
@@ -11,28 +11,16 @@ ARG NASM_VERSION=2.15.04
1111
ARG OPENSSL_VERSION=1_1_1s
1212
ARG QT_VERSION=5.15.0
1313
ARG YASM_VERSION=1.3.0
14-
ARG ZLIB_VERSION=1.2.13
1514

1615
ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH
1716

1817
# epel-release need for aarch64 to get openblas packages
19-
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 && \
18+
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 && \
2019
yum install openblas-devel dejavu-sans-fonts -y && \
2120
cp /usr/include/lapacke/lapacke*.h /usr/include/ && \
2221
curl https://raw.githubusercontent.com/xianyi/OpenBLAS/v0.3.3/cblas.h -o /usr/include/cblas.h && \
2322
# libpng will be built from source
24-
yum remove libpng zlib-devel bzip2-devel -y
25-
26-
RUN mkdir ~/zlib_sources && \
27-
cd ~/zlib_sources && \
28-
curl -O -L https://www.zlib.net/zlib-${ZLIB_VERSION}.tar.gz && \
29-
tar -xf zlib-${ZLIB_VERSION}.tar.gz && \
30-
cd zlib-${ZLIB_VERSION} && \
31-
./configure --prefix=/usr/local && \
32-
make && \
33-
make install && \
34-
cd .. && \
35-
rm -rf ~/zlib_sources
23+
yum remove libpng -y
3624

3725
RUN mkdir ~/libpng_sources && \
3826
cd ~/libpng_sources && \

docker/manylinux2014/Dockerfile_x86_64

+3-15
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Version: 20221205
1+
# Version: 20230117
22
# Image name: quay.io/opencv-ci/opencv-python-manylinux2014-x86-64
33

44
FROM quay.io/pypa/manylinux2014_x86_64:latest
@@ -11,28 +11,16 @@ ARG NASM_VERSION=2.15.04
1111
ARG OPENSSL_VERSION=1_1_1s
1212
ARG QT_VERSION=5.15.0
1313
ARG YASM_VERSION=1.3.0
14-
ARG ZLIB_VERSION=1.2.13
1514

1615
ENV LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH
1716

1817
# epel-release need for aarch64 to get openblas packages
19-
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 && \
18+
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 && \
2019
yum install openblas-devel dejavu-sans-fonts -y && \
2120
cp /usr/include/lapacke/lapacke*.h /usr/include/ && \
2221
curl https://raw.githubusercontent.com/xianyi/OpenBLAS/v0.3.3/cblas.h -o /usr/include/cblas.h && \
2322
# libpng will be built from source
24-
yum remove libpng zlib-devel bzip2-devel -y
25-
26-
RUN mkdir ~/zlib_sources && \
27-
cd ~/zlib_sources && \
28-
curl -O -L https://www.zlib.net/zlib-${ZLIB_VERSION}.tar.gz && \
29-
tar -xf zlib-${ZLIB_VERSION}.tar.gz && \
30-
cd zlib-${ZLIB_VERSION} && \
31-
./configure --prefix=/usr/local && \
32-
make && \
33-
make install && \
34-
cd .. && \
35-
rm -rf ~/zlib_sources
23+
yum remove libpng -y
3624

3725
RUN mkdir ~/libpng_sources && \
3826
cd ~/libpng_sources && \

patch_auditwheel_whitelist.py

-23
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,6 @@
33

44
from auditwheel import policy
55

6-
7-
def add_zlib_versions():
8-
with open(join(dirname(abspath(policy.__file__)), "manylinux-policy.json"), 'r') as manylinux_policy:
9-
manylinux_policy_lines = manylinux_policy.readlines()
10-
11-
manylinux_policy_data = ""
12-
for line in manylinux_policy_lines:
13-
if "ZLIB" in line:
14-
if len(line) > 22:
15-
updated_line = line[:-2] + ', "1.2.9", "1.2.12", "1.2.13"]'
16-
else:
17-
updated_line = line[:-2] + '"1.2.9", "1.2.12", "1.2.13"]'
18-
print("auditwheel patch: replace policy line \"%s\" with \"%s\"" % (line, updated_line))
19-
manylinux_policy_replacement = line.replace(line, updated_line)
20-
else:
21-
manylinux_policy_replacement = line
22-
manylinux_policy_data = manylinux_policy_data + manylinux_policy_replacement
23-
24-
with open(join(dirname(abspath(policy.__file__)), "manylinux-policy.json"), 'w') as manylinux_final_policy:
25-
manylinux_final_policy.write(manylinux_policy_data)
26-
276
def add_whitelisted_libs():
287
policies = None
298

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

39-
4018
if __name__ == '__main__':
41-
add_zlib_versions()
4219
add_whitelisted_libs()

0 commit comments

Comments
 (0)