-
Notifications
You must be signed in to change notification settings - Fork 344
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
Qt5 support #256
Comments
Natron can ship with Qt4, so this is not a real issue. So Natron will still run.
Natron also runs on macOS 10.13, although Qt4 is not supported since OS X 10.7:
http://doc.qt.io/archives/qt-4.8/supported-platforms.html <http://doc.qt.io/archives/qt-4.8/supported-platforms.html>
Qt 5.6 supports PySide, not later versions. So anyway we will have to ship Qt with Natron, be it Qt4 or Qt5.
Natron compiles with Qt5 already, I just haven't tested yet the pyside/shiboken stuff.
See http://www.vfxplatform.com/ <http://www.vfxplatform.com/> for more details.
Volunteers are welcome: if you think you can help, I can give you a script that builds qt5.6+pyside+shiboken
|
Later versions have PySide 2 module (Qt for Python) https://wiki.qt.io/Qt_for_Python_GettingStarted
I'll try, but I don't know how better: port all PySide code to PySide 2, or port it to PyQt5? I think that bundling Qt with Natron source tarball is not good idea. |
pyside2 for qt 5.9 is unstable, see fredrikaverpil/pyside2-wheels#55 <fredrikaverpil/pyside2-wheels#55>
only pyside2 for 5.6 seems to be usable.
at least that's what autodesk and friends think (at vfxplatform.com <http://vfxplatform.com/>)
|
What about PyQt5? |
PySide was chosen over PyQt for obvious license reasons and industry adoption (see vfxplatform again).
PySide has a liberal licence (LGPL), PyQt is either commercial or GPLv3.
Somebody could make a PyQt fork/branch, or (better) make it a compile option in the main source code. We would then have a GPL3 Natron with PyQt and a GPL2 version with PySide.
So the core version should continue using PySide in my opinion.
|
@devernay ok, I understood. So, I see two ways out of the situation: build Qt4 and all necessary dependency's on PPA, and make a Flatpak package (over which I have already started work). And then, when PySide 2 is matured - think about porting to it. Or as you say - make Natron compiling with PySide and PyQt. |
I would vote for the flatpak option first |
The Qt4 bundled with Natron has many patches, included an important one for Natron concerning the threadpool. I'll soon release the script and patches we use to build Natron and all of its dependencies. |
@devernay maybe put all dependencies in 3drparty/ directory in Natron's tree (as submodules)? It would seriously simplify building Flatpak |
Pyside6 is ready now. |
Qt 6 will probably not be usable until 6.2 at the earliest. Qt 5.15 is also now EOL (LTS is commercial-only). Qt 5.12 LTS should be our target (IMHO), since it's the last supported Qt 5 version. |
Qt 5.12 LTS is EOL on Dec 5 2021, so I would call it not-so-long-term-support. |
Well, that's because the 5.15 LTS was supposed to replace 5.12, but it's now behind a paywall. RHEL/CentOS 7 and Ubuntu 20.04 LTS both uses 5.12. So it will be supported until 2025. 5.15 was also a bit buggy on release (for desktop), not sure they fixed everything before going "offline". Anyway, not that important, we first need to support 5.12+ (and test), then worry about what to ship etc. |
An AppImage is also a solution. |
Solution for what? |
Bundle it without dedicated Qt4 support on the consumer devices. |
Oh wow |
What do you mean by "implement QtPy"? You should already be able to install QtPy (and any other python package) using natron-python from the distribution. On macOS, it is simply:
|
To clarify, I didn't mean using Natron's embedded python to install QtPy via pip. Sorry, I misunderstood. I was under the impression that the I realize now that it's redundant, because once we finish the Qt5/PySide2 port, there would be no need to bind to PySide anymore. Maintaining a compatibility layer for Pyside and PySide 2 makes no sense if only PySide2 is used. Sorry for the confusion. |
Yes we could install QtPy in the default Natron distribution, and use it in all newly created PyPlugs, so that the code would remain compatible with Qt5/PySide2. However, pyplugs and code created before that will need to be converted manually to use QtPy |
Yeah, that is the obvious issue here and it seems to be a lot of work with little payoff (because we will still need manual conversion to use QtPy anyway, while porting the pyplugs from PySide + Python 2.7 to PySide2 + Python 3.9 is probably less work as there is the |
it will ease the transition to Qt5/PySide2 Suddegested by #256 (comment)
* use qtpy rather than pyside it will ease the transition to Qt5/PySide2 Suggested by #256 (comment)
Marking with normal priority and in-progress as I'm working on this. |
Now that we have #697, #698, #715, #716 and #764 merged in branch |
natron build still ask for pyside when only pyside2 is available.
|
That's due to the absense of
When #803 is merged then QMake will add |
Still the same
|
So strange, mind if you could share which branch you are using and your |
qmake -r CONFIG+=python3 PREFIX=/usr |
Three more questions, are you using a |
As I did Natron Qt4 Debian package before I try to never modify source code. |
I think the problem is in |
and pyside is also defined in Engine/Engine.pro
|
Uhh, |
Well now I'm able to build Natron with one exception I need to add
|
Now I have a Natron package I'm trying to use it. |
You can start Natron without them, though you're not going to have access to image or video I/O. From now on if you encounter individual bugs with Natron Qt5 I'd encourage you to check the issues tab or open a new one. |
Done in #808 |
closing this issue, continued in #827 |
Hello. Debian 10 and future releases of Ubuntu will drop Qt4 from archive, so Natron's GUI need to be ported to Qt5. It also dependency on PySide, which has no Qt5 support. Any plans to do that?
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
The text was updated successfully, but these errors were encountered: