Page MenuHomeSolus

How hard could it be? Deprecation of Qt4
Closed, ResolvedPublic

Assigned To
Authored By
DataDrake
Mar 22 2018, 2:14 PM
Referenced Files
F6070276: 0001-Patch-OpenSSL-1.1-support.patch
Jun 18 2020, 6:05 AM
Tokens
"Mountain of Wealth" token, awarded by kyrios123."Yellow Medal" token, awarded by GladOSkar."Evil Spooky Haunted Tree" token, awarded by Snuggle.

Description

The latest of the Qt 4.X series was released in 2011. Since then, many applications have been ported to Qt 5. This has been accelerated by the move from KF4 to KF5, as KDE-based applications are one of the largest consumers of Qt. The following is a table of our remaining Qt 4 packages, along with details regarding their Qt 5 migration status.

NameVersionQt5 Ready?Source Done
bitmessage0.6.2In progress, see hereHereDeprecated
dukto6.0No. It's dead. @JoshStrobl will deprecate it from repo.Deprecated
fbreader0.99.4Dead project (see here ) - Port to Qt5 patch from Gentoo appliedGtk?Yes
flacon2.1.1Yes (4.0.0)HereYes
graphviz2.40.10Yes (2.42.x)PatchYes
hedgewars0.9.22Yes (0.9.24)HereYes
hydrogen1.0.0-rc1Yes (1.0.0-beta1)HereYes
klayout0.25.1YesHereYes
lmms1.2.0YesHereYes
mixxx2.0.0Yes (2.2.0 - unreleased)HereYes
mp3diags1.2.03No, will be deprecatedHereDeprecated
mumble1.2.19Yes (>=1.3.0rc1)HereYes
natron2.3.4Flatpak available, will probably never fully support qt5Here
picard1.4.2Yes (2.0.0beta2)HereYes
puddletag1.2.0NoHereDeprecated
python-pyside1.2.4Yes (PySide2)HereYes
python-qscintilla2.10.2Yespython-qscintilla-qt5Yes
qca2.1.3Yesqca-qt5Yes
qjson0.9.0NoHereYes
qscintilla2.10.2Yesqscintilla-qt5Yes
scribus1.4.6Yes (1.5.5 dev)HereYes
shiboken1.2.4Yes (PySide2)HereYes
tagainijisho1.0.3In-ProgressHere
testdisk7.0YesHereYes
tortoisehg4.4.1Yes (4.5.2)See setup.pyYes
x2goclient4.1.0.0In-ProgressSee InstallYes

Notes

  • Uses shiboken - natron python-pyside
    • Uses python-pyside - natron
  • Uses python-qt4 - bitmessage puddletag
  • python3-qt4 can be deprecated (nothing uses it)

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
DataDrake triaged this task as Normal priority.Mar 22 2018, 2:14 PM
DataDrake moved this task from Backlog to Improvement on the Software board.

yubikey-neo-manager can be deprecated, it is so upstream. I was waiting for it's replacement yubikey-manager-qt to be out of beta first but, feature wise it's already on par.

@joebonrichie As per our package inclusion policy:

Typically, we prefer stable tagged releases. However, this may be waived if:
The software has significant traction (i.e. prerelease)
A bug fix only exists beyond the latest stable release for a git source

IMO yubikey-manager-qt would fall under "has significant traction".

@joebonrichie why don't you give yubikey-manager-qt a go at packaging and let us know how it goes. If there aren't any issues, then we can make a decision.

We have yubikey-manager-qt packaged already, will deprecate yubikey-neo-manager.

Picard's Qt5 support starts from v2.0.0, which is currently in beta.

➜  picard git:(master) git --no-pager diff release-1.4.2 release-2.0.0beta1 -- picard/tagger.py
diff --git a/picard/tagger.py b/picard/tagger.py
index 9c83f5a7..62c276ce 100644
--- a/picard/tagger.py
+++ b/picard/tagger.py
@@ -18,15 +18,15 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
-from __future__ import print_function
 import sip
 
 sip.setapi("QString", 2)
 sip.setapi("QVariant", 2)
 
-from PyQt4 import QtGui, QtCore
+from PyQt5 import QtGui, QtCore, QtWidgets
 
 import argparse
+import logging
 import os.path
 import platform
 import re

Could I please request the inclusion of Clementine on this list?

Relevant Package Requests
T272 T5536 T2122

[Edit]
Actually, I may have misunderstood the purpose of this list. I didn't realize it was for current packages. My bad!

This comment was removed by Jacalz.
This comment was removed by Jacalz.

Please mark LMMS as done now that 1.2.0 is in the repositories.

testdisk 7.1 is out. Please allow me to update it.

@livingsilver94 It has no designated MAINTAINERS.md file, go for it. If no MAINTAINERS.md file exists and there should be, we'll accept the patch and proactively add it.

Mumble should now be possible to mark as done with the release and inclusion of version 1.3.0 ?

I think natron is dead. Its development stopped 2 years ago and the official website is not reachable.

The project is not dead, however it does need new maintainers and the website is now on GitHub Pages, still they haven't updated Qt4 to Qt5.

@livingsilver94, seems that upstream has moved to new repo, and new website is available here. And actually we're already tracking Natron's new repository (we're on 2.3.14 release now).
However, seems that its status on Qt hasn't changed - building against Qt5 is possible, but the build will be impaired because they don't support PySide2 yet. And we still can't build it...

Ah OK, cool! Thanks to both of you.

Fyi, the link for the source of Hydrogen is just 404. However, it does look like they quite recently released beta2: https://github.com/hydrogen-music/hydrogen/releases/tag/1.0.0-beta2

DataDrake updated the task description. (Show Details)
  • FBReader has been proprietary since 2015, no active fork: https://github.com/geometer/FBReader/issues/308
    • This is going to be nuked.
  • tagainijisho hasn't had a release since 2015. Still being developed however Qt5 release (1.2.0) appears to be a significant ways off, with many issues dating back to 2015 and 2016 still being open. https://github.com/Gnurou/tagainijisho/milestone/6
    • This is going to be nuked
  • Hydrogen: Move to latest RC? https://github.com/hydrogen-music/hydrogen/releases/tag/1.0.0-rc1
    • If it fails, nuke it. I'd rather deal with it being "buggy" than having an entire toolkit for it.
  • Natron: Requested nukage by @DataDrake
  • Syncplay should support Qt5 however needs a maintainer. Can opt to either RFC or nuke.
  • python-pyside and python-pyside-tools can be nuked if we nuke syncplay. It may be able to be nuked depending on newer syncplay requirements.
  • shiboken is required for python-pyside, however has not seen a release since 2015. Advise to nuke if we can nuke syncplay or if it no longer requires python-pyside.
  • This basically leaves @DataDrake 's qucs as a blocker for qt4 deprecation

Once I land OpenSSL 1.1 series, Qt4 will no longer be able to be built without considerable effort I am not willing to invest. FreeBSD patches (I manually combined all their diffs from SVN) resolve X509 errors but everything else is result of changes in OpenSSL 1.1 series ABIs. Basically everybody (Arch, FreeBSD, Fedora, Debian, Ubuntu) nuked and stopped supporting it, the patches Debian provided that Arch carries do not function because of the very X509 issues that FreeBSD's patch solves. There aren't any differences between Debian and FreeBSD's patches otherwise, so if someone wants Qt4 badly enough they can sort it.

In theory qt4 will still work since the SOs aren't going away for OpenSSL 1.0 series, but not at the stage of testing yet (couple packages left before) so can't really say for sure.

If somebody wants to take a stab at it after I land OpenSSL 1.1 on Saturday (assuming testing is fine), here's what the patch will be to get you like halfway to building the OpenSSL support in Qt4.

I can have a go at getting Hydrogen updated to the latest RC if it is okay for you?

kyrios123 updated the task description. (Show Details)