-
Notifications
You must be signed in to change notification settings - Fork 891
Linux wheels: manylinux2014 tracking issue #309
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
It looks like as of this comment, the rollout has been completed. |
Thanks for the info. I'll update the Docker images and will run some tests. |
The current status is that Linux builds have an issue with Qt5. I get this on Ubuntu 20.04 when trying to run very simple script with
The Qt xcb plugin crashes on |
If someone would like to test the manylinux2014 wheels they can be downloaded by following this guide: https://github.com/skvark/opencv-python/releases/tag/34 |
Hi, any updates? looking forward to 4.3 :) |
I'll have to compile Qt5 probably manually to get rid of that error but haven't had the time to do it yet. |
Regarding manual build, have u look at C++ package managers? |
BTW, I built |
Yeah, locally built OpenCV will work of course just fine but that's not what this repository is trying to do. Manylinux wheels must be built on very specific systems to make them compatible with different Linux distributions (https://www.python.org/dev/peps/pep-0513/). The problem is not in package managers but in binary level compatibility across different distributions. The OpenCV builds related to this issue work just fine, only a subset of the methods related to displaying GUI windows is broken. As we can see above, Qt5 segfaults when it tries to use the bundled xcb plugin which has been included from the CentOS Qt5 build. Additionally, building for example Qt5 manually is not a problem, it just takes time when it's done for the first time. After that it can be used from the Docker images without any build overhead. |
@skvark In case any of these resources are helpful: Another interesting thing I found: PyQt5 builds
|
I guess we don't need |
Right, I just assumed that if PyQt5 managed to build a |
Oh, I see |
I'm pretty sure that building Qt5 on the manylinux image is quite straightforward process (same as Qt4 in current images, probably mostly copy pasting from there). After that the next thing is to get OpenCV built against it and testing the resulting wheels in other systems. Again, the main issue is that all those things take multiple evenings (or weekends) of my time. Anyone can of course do that as this is a open source project, it does not have to be me. The Dockerfiles are in the |
@skvark Would you consider setting up something like GitHub Sponsors for people who would like to say thank you for your work? |
@johnthagen I'll have a look at it. There are some complicated things related to Finnish taxation system which I need to check before even applying for example to Github Sponsors. |
I couldn't get the latest Qt5 work with OpenCV ( |
Linux builds are now ok. Fixing macOS issues now. |
Homebrew apparently fixed itself so the release builds can be now made. 3.4.10 is now in progress, 4.3.0 will come after they are done. |
The
manylinux1
images are starting show their age and therefore make the maintenance of the Linux wheels quite troublesome. OpenCV 3.4.10 and 4.3.0 cannot be built onmanylinux1
images due to too old glibc:In practice this means that the
manylinux1
(CentOS 5) needs to be updated tomanylinux2010
(CentOS 6) ormanylinux2014
(CentOS 7). Considering that the CentOS 6 will be deprecated later this year it's better move straight tomanylinux2014
. Themanylinux2014
tag support is not yet fully rolled out (pypa/manylinux#338). However, there are only some minor issues remaining and they will get solved likely during the next few months.This upgrade will most likely have positive effects to the OpenCV performance (see: #287). Additionally, external dependencies, such as Qt, can be updated to more recent versions.
What needs to be done:
manylinux2014
similarly to the currentmanylinux1
Dockerfilesnumpy
setup.py
custom rules and patchesThe text was updated successfully, but these errors were encountered: