From a8dfcf21b1470921aec027a2532db37b7a1ba27e Mon Sep 17 00:00:00 2001 From: Olli-Pekka Heinisuo Date: Thu, 21 May 2020 13:34:06 +0300 Subject: [PATCH] Qt5 requires platform plugins also on Linux, update i686 Dockerfile --- cv2/__init__.py | 2 +- docker/manylinux2014/Dockerfile_i686 | 6 ++++++ setup.py | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/cv2/__init__.py b/cv2/__init__.py index ee8cd25..1207db9 100644 --- a/cv2/__init__.py +++ b/cv2/__init__.py @@ -9,7 +9,7 @@ from .data import * # this makes them available globals().update(importlib.import_module('cv2.cv2').__dict__) -if sys.platform == 'darwin': +if sys.platform == 'darwin' or sys.platform.startswith("linux"): os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = os.path.join( os.path.dirname(os.path.abspath(__file__)), 'qt', 'plugins' ) diff --git a/docker/manylinux2014/Dockerfile_i686 b/docker/manylinux2014/Dockerfile_i686 index 68678e8..e9e49d6 100644 --- a/docker/manylinux2014/Dockerfile_i686 +++ b/docker/manylinux2014/Dockerfile_i686 @@ -68,4 +68,10 @@ RUN curl -O -L https://github.com/Kitware/CMake/releases/download/v3.17.0/cmake- ENV PKG_CONFIG_PATH /usr/local/lib/pkgconfig:/root/ffmpeg_build/lib/pkgconfig ENV LDFLAGS -L/root/ffmpeg_build/lib + +# in i686, yum metadata ends up with slightly wrong timestamps +# which inhibits its update +# https://github.com/skvark/opencv-python/issues/148 +RUN yum clean all + ENV PATH "$HOME/bin:$PATH" diff --git a/setup.py b/setup.py index 24aa011..d5e524d 100644 --- a/setup.py +++ b/setup.py @@ -154,6 +154,11 @@ def main(): (r"lib/qt/plugins/platforms/libqcocoa\.dylib") ] + if sys.platform.startswith("linux") and not build_headless: + rearrange_cmake_output_data["cv2.qt.plugins.platforms"] = [ + (r"lib/qt/plugins/platforms/libqxcb\.so") + ] + if build_headless: # it seems that cocoa cannot be disabled so on macOS the package is not truly headless cmake_args.append("-DWITH_WIN32UI=OFF") -- GitLab