Skip to content
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

Transition formulae to Qt 5 #1705

Closed
78 tasks done
ilovezfs opened this issue Jun 4, 2016 · 38 comments
Closed
78 tasks done

Transition formulae to Qt 5 #1705

ilovezfs opened this issue Jun 4, 2016 · 38 comments
Labels
10.12 Sierra is specifically affected help wanted Task(s) needing PRs from the community or maintainers in progress Stale bot should stay away

Comments

@ilovezfs
Copy link
Contributor

ilovezfs commented Jun 4, 2016

These depend on qt and don't already have a qt5 option.

  • 🐎 avidemux - New releases have Qt5 support, OS X dmg ships with by default.
  • 🐎 codequery - Has Qt5 support since 0.16.0.
  • 🐎 djview4 - Should go and live in Homebrew/gui. Has Qt5 support.
  • 🐎 gammaray - Has Qt5 support, should be the default.
  • 🐎 gpsbabel - Has Qt5 support, is preferred in upstream configure script.
  • 🐎 liblastfm - Has Qt5 support, preferred by upstream.
  • 🐎 libqglviewer - Has Qt5 support, we're two versions behind upstream currently.
  • 🐎 qcachegrind - Supports Qt5, has been recommending since last release in 2013.
  • 🐎 qjackctl - Supports Qt5, upstream has been default that since last release.
  • 🐎 quassel - One release behind upstream, has announced Qt4 support is being deprecated, switch to Qt5.
  • 🐎 quazip - Has Qt5 support.
  • 🐎 qxmpp - Has Qt5 support.
  • 🐢 *gnuplot - Has Qt5 support, is recommended by upstream over Qt4.
    (revdeps: libqalculate, homebrew/science/kat, homebrew/science/octave, tsung, homebrew/science/maxima, homebrew/science/unafold)
  • 🐢 *qwt - Has Qt5 support but gnuradio/pyqwt/qwtpolar currently require it and would likely need migrating too. (revdeps: gnuradio, pyqwt, qwtpolar, homebrew/science/qgis)
  • 🐢 *ttfautohint - Has Qt5 support. (revdeps: pdf2htmlex)
  • 🐌 kdiff3 - Has Qt5 support, but Qt4 is default in upstream dmg.
  • 🐌 libdbusmenu-qt - Has Qt5 support in upstream, but no new release in 4 years.
  • 🐌 libechonest - Has Qt5 support, but using it renames headers which is quite breaky. Upside: Would kill qjson dep.
  • 🐌 qca - Has optional Qt5 support but Qt4 is heavily preferred upstream.
  • 🐌 *qjson - Has Qt5 support, but libdbusmenu-qt needs this and doesn't support Qt5 in releases yet. (revdeps: libdbusmenu-qt, libechonest)
  • 🐌 sqlitebrowser - Has Qt5 support. Upstream dmg uses Qt4 though.
  • 🐫 coin - Only optional but no Qt5 support, no release since 2012.
  • 🐫 open-mesh - Is optional, no Qt5 support. Two versions behind upstream again.
  • 🐫 openal-soft - Is optional, no Qt5 support.
  • 🐫 orfeo - We're 8 versions behind current, seriously. No Qt5 support still though! Qt4 can be disabled.
  • 🐫 suil - Qt is optional
  • 🐫 wireshark - Optional but upstream moving towards Qt5 and away from Qt rapidly.
  • 🐫 zint - Optional, but no Qt5 support.
  • 👻 *gwenhywfar - No Qt5 support, even in latest 2016 beta. (revdeps: aqbanking)
  • 👻 *pyqt - Lost cause. Already have PyQt5 for Qt5 support. (revdeps: below)
  • 👻 frescobaldi (depends on pyqt): First release with Qt5? frescobaldi/frescobaldi#842
  • 👻 git-cola (depends on pyqt)
  • 👻 gnuradio (depends on pyqt; made it optional but still no qt5 support)
  • 👻 ninja-ide (depends on pyqt)
  • 👻 puddletag (depends on pyqt)
  • 👻 pyqwt (depends on pyqt)
  • 👻 qbzr (depends on pyqt)
  • 👻 qscintilla2 (depends on pyqt)
  • 👻 swatchbooker (depends on pyqt)
  • 👻 treeline (depends on pyqt)
  • 👻 weboob (depends on pyqt)
  • 👻 homebrew/python/retext (depends on pyqt) https://github.com/Homebrew/homebrew-python/pull/356
  • 👻 homebrew/science/pcl (depends on pyqt, Qt 5 support upstream)
  • 👻 homebrew/science/qgis (depends on pyqt)
  • 👻 *pyside - No Qt5 support. (revdeps: binwalk, pyside-tools)
  • 👻 *shiboken - No Qt5 support. (revdeps: pyside)
  • 💀 automoc4 - No release since 2009, no Qt5 support.
  • 💀 cuty_capt - No release since 2011, no Qt5 support.
  • 💀 ezlupdate - No Qt5 support.
  • 💀 pyqwt - No release since 2009, no Qt5 support.
  • 💀 rcssserver - No release for 2+ years. No upstream commit for 2 years. No Qt5 support.
  • 💀 shrewsoft-vpn-client - No release for 2+ years, No Qt5 support.
  • 💀 soccerwindow2 - No release in nearly 5 years, No Qt5 support.
  • 💀 qwtpolar - One release behind upstream. Still no Qt5 support.
  • 💀 sqliteman - No Qt5 support. No release in 3+ years.
  • 💀 valkyrie - No upstream release for 5+ years. No Qt5 support.
  • 💀 visualnetkit - No upstream release in 7+ years. No Qt5 support. Already being patched for "new" Qt4 support, lol.
  • homebrew/games/color-code
  • homebrew/games/hedgewars
  • homebrew/games/hugor
  • homebrew/games/qtads
  • homebrew/science/alglib
  • homebrew/science/amos
  • homebrew/science/biopp
  • homebrew/science/cube
  • homebrew/science/geant
  • *homebrew/science/octave (revdeps: homebrew/science/dynare, homebrew/science/swrcfit)
  • *homebrew/science/opencascade (revdeps: homebrew/science/dealii, homebrew/science/gmsh)
  • *homebrew/science/opencv (revdeps: homebrew/science/butterflow, homebrew/science/cvblob, homebrew/science/openalpr, homebrew/science/openbr, homebrew/science/openimageio)
  • homebrew/science/openimageio
  • homebrew/science/osgearth
  • homebrew/science/paraview
  • homebrew/science/populations
  • homebrew/science/pulseview
  • homebrew/science/root
  • homebrew/versions/cmake30
  • homebrew/versions/gnuplot4
  • homebrew/x11/scantailor
@DomT4
Copy link
Member

DomT4 commented Jun 4, 2016

From prior Slack discussions:

* automoc4 - No release since 2009, no Qt5 support.
* avidemux - New releases have Qt5 support, OS X dmg ships with by default.
* codequery - Has Qt5 support since 0.16.0.
* coin - Only optional but no Qt5 support, no release since 2012.
* cuty_capt - No release since 2011, no Qt5 support.
* djview4 - Should go and live in Homebrew/gui. Has Qt5 support.
* ezlupdate - No Qt5 support.
* gammaray - Has Qt5 support, should be the default.
* gnuplot - Has Qt5 support, is recommended by upstream over Qt4.
* gnuradio - Optional in formula, but no Qt5 support.
* gpsbabel - Has Qt5 support, is preferred in upstream configure script.
* gwenhywfar - No Qt5 support, even in latest 2016 beta.
* kdiff3 - Has Qt5 support, but Qt4 is default in upstream dmg.
* libdbusmenu-qt - Has Qt5 support in upstream, but no new release in 4 years.
* libechonest - Has Qt5 support, but using it renames headers which is quite breaky. Upside: Would kill qjson dep.
* liblastfm - Has Qt5 support, preferred by upstream.
* libqglviewer - Has Qt5 support, we're two versions behind upstream currently.
* open-mesh - Is optional, no Qt5 support. Two versions behind upstream again.
* open-scene-graph - Is optional, support for Qt5 already in the formula.
* openal-soft - Is optional, no Qt5 support.
* orfeo - We're 8 versions behind current, seriously. No Qt5 support still though! Qt4 can be disabled.
* poppler - Already has Qt5 support optional in the formula.
* pyqt - Lost cause. Already have PyQt5 for Qt5 support.
* pyqwt - No release since 2009, no Qt5 support.
* pyside - No Qt5 support.
* qca - Has optional Qt5 support but Qt4 is heavily preferred upstream.
* qcachegrind - Supports Qt5, has been recommending since last release in 2013.
* qjackctl - Supports Qt5, upstream has been default that since last release.
* qjson - Has Qt5 support, but libdbusmenu-qt needs this and doesn't support Qt5 in releases yet.
* quassel - One release behind upstream, has announced Qt4 support is being deprecated, switch to Qt5.
* quazip - Has Qt5 support.
* qwt - Has Qt5 support but gnuradio/pyqwt/qwtpolar currently require it and would likely need migrating too.
* qwtpolar - One release behind upstream. Still no Qt5 support.
* qxmpp - Has Qt5 support.
* rcssserver - No release for 2+ years. No upstream commit for 2 years. No Qt5 support.
* shiboken - No Qt5 support.
* shrewsoft-vpn-client - No release for 2+ years, No Qt5 support.
* soccerwindow2 - No release in nearly 5 years, No Qt5 support.
* sqlitebrowser - Has Qt5 support. Upstream dmg uses Qt4 though.
* sqliteman - No Qt5 support. No release in 3+ years.
* suil - Qt is optional, already has Qt5 support in formula.
* ttfautohint - Has Qt5 support.
* valkyrie - No upstream release for 5+ years. No Qt5 support.
* visualnetkit - No upstream release in 7+ years. No Qt5 support. Already being patched for "new" Qt4 support, lol.
* wireshark - Optional but upstream moving towards Qt5 and away from Qt rapidly.
* zint - Optional, but no Qt5 support.

Potential for Qt5: 25/46

Could probably be migrated today: 15/46

@ilovezfs
Copy link
Contributor Author

ilovezfs commented Jun 4, 2016

@DomT4 OK, I've copied those notes up inline with the checkboxes. The only one that looks like it doesn't belong is wireshark since there's a qt5 option in the formula.

@ilovezfs
Copy link
Contributor Author

ilovezfs commented Jun 4, 2016

@DomT4 Also, I don't see a qt5 option in suil.

@DomT4
Copy link
Member

DomT4 commented Jun 4, 2016

The list was drawn up a few months ago, it's not entirely up-to-date. Qt5 support was removed from that formula temporarily in 79b67fa.

@ilovezfs
Copy link
Contributor Author

ilovezfs commented Jun 4, 2016

automoc4, cuty_capt, ezlupdate, gwenhywfar, pyqt, pyqwt, pyside, qwtpolar, rcssserver, shiboken, shrewsof, soccerwindow2, sqliteman, valkyrie, and visualnetkit all sound like boneyard candidates to me.

@ilovezfs
Copy link
Contributor Author

ilovezfs commented Jun 4, 2016

@DomT4 Will there be a qt4 in versions? If so, since qt is only optional in coin, gnuradio, open-mesh, open-scene-graph, openal-soft, orfeo, suil, wireshark, zint, I guess they could have a 🎌 cross-tap dependency on homebrew/versions/qt4.

@DomT4
Copy link
Member

DomT4 commented Jun 4, 2016

all sound like boneyard candidates to me.

Some of them are, but for example if you boneyard pyqt you also have to boneyard:

frescobaldi
git-cola
gnuradio
ninja-ide
puddletag
pyqwt
qbzr
qscintilla2
swatchbooker
treeline
weboob

You'd also have to boneyard pyside for shiboken, binwalk and pyside-tools for pyside and then you'd need to boneyard codequery because it uses qscintilla2, and so on. Going down the "Kill them all now" path would cause some fairly major ugliness.

The idea was to phase it out gradually, where for now we focus on switching the stuff that should be Qt5 but is Qt4 over to Qt5, and then go from there. It needs to be done fairly delicately for better or worse.

Will there be a qt4 in versions

We're not planning to punt it out of the core. We're just expecting it to stop building completely and be too much pain to rescue for OS X 10.12 or 10.13.

@ilovezfs
Copy link
Contributor Author

ilovezfs commented Jun 4, 2016

If as @UniqMartin said, "At this point it's EOL (since December 2015) and doesn't even receive security fixes," then I can't see justifying keeping it in core. But ho hum.

@DomT4
Copy link
Member

DomT4 commented Jun 4, 2016

We can always consider dropping the elements of Qt4 known to be particularly insecure at this point, but there's no getting around the fact that we can't just rip away support quickly and demand people cope with the Qt ecosystem being a slow, slow place.

@ilovezfs
Copy link
Contributor Author

ilovezfs commented Jun 4, 2016

Ambiguous cases where someone has to actually decide something:
🐌 kdiff3 - Has Qt5 support, but Qt4 is default in upstream dmg.
🐌 libdbusmenu-qt - Has Qt5 support in upstream, but no new release in 4 years.
🐌 libechonest - Has Qt5 support, but using it renames headers which is quite breaky. Upside: Would kill qjson dep.
🐌 qca - Has optional Qt5 support but Qt4 is heavily preferred upstream.
🐌 qjson - Has Qt5 support, but libdbusmenu-qt needs this and doesn't support Qt5 in releases yet.
🐌 qwt - Has Qt5 support but gnuradio/pyqwt/qwtpolar currently require it and would likely need migrating too.
🐌 sqlitebrowser - Has Qt5 support. Upstream dmg uses Qt4 though.

@MikeMcQuaid
Copy link
Member

Sounds like a good first step is to upgrade/boneyard the things that don't have reverse dependencies.

@UniqMartin
Copy link
Contributor

If as @UniqMartin said, "At this point it's EOL (since December 2015) and doesn't even receive security fixes," then I can't see justifying keeping it in core.

For reference: http://blog.qt.io/blog/2015/05/26/qt-4-8-7-released/ That's where I took this information from and I haven't seen any updates to the information provided in that post, thus assume it's still valid.

@ilovezfs
Copy link
Contributor Author

ilovezfs commented Jun 4, 2016

Sounds like a good first step is to upgrade/boneyard the things that don't have reverse dependencies.

I've updated the above with rev-deps. Anything with a (*) has at least one.
🐎 = qt5 available for upgrade, no rev-deps
💀 = no qt5, no rev-deps

@MikeMcQuaid
Copy link
Member

@ilovezfs Nice work.

@ilovezfs ilovezfs added the 10.12 Sierra is specifically affected label Jun 16, 2016
@geoffmacintosh
Copy link
Contributor

Pyqt4 can be built to use Qt5, and in my very limited experience, seems to be pretty much a drop-in upgrade. That might allow some things to stay out of the boneyard for a while anyway.

@jakepetroules
Copy link
Contributor

We are working on PySide + Qt 5. No ETA yet.

https://groups.google.com/forum/#!topic/pyside-dev/pqwzngAGLWE

@ilovezfs
Copy link
Contributor Author

ilovezfs commented Aug 2, 2016

Updated to reflect
#3328 avidemux migrated to cask
#3335 kdiff3 migrated to cask
#3339 quassel migrated to cask
#3340 sqlitebrowser migrated to cask

CC @AnastasiaSulyagina

@DomT4
Copy link
Member

DomT4 commented Aug 10, 2016

Wireshark is done: a059413

@UniqMartin UniqMartin added the help wanted Task(s) needing PRs from the community or maintainers label Aug 11, 2016
@MikeMcQuaid MikeMcQuaid mentioned this issue Aug 14, 2016
4 tasks
@DomT4
Copy link
Member

DomT4 commented Aug 16, 2016

gnuplot was done in #3867 apparently.

@schoeps
Copy link
Contributor

schoeps commented Aug 24, 2016

octave was done in https://github.com/Homebrew/homebrew-science/commit/53964a3744ec7fb33d4cf8910e33793e99359d35

@hainuo
Copy link

hainuo commented Sep 14, 2016

@Eitot
Copy link
Contributor

Eitot commented Oct 18, 2016

@ilovezfs: Can you update the list? color-code and gpsbabel are done. I happen to know that qcachegrind is updated too, but it isn’t linked here. There may be others.

@MikeMcQuaid
Copy link
Member

@Eitot Done, thanks!

@equal-l2
Copy link
Sponsor Contributor

equal-l2 commented Nov 12, 2016

cube has been done as above.
geant(now geant4) was done by commit Homebrew/homebrew-science@1196040.

gnuplot4 has been deleted on commit Homebrew/homebrew-versions@2a7fc1a

@MikeMcQuaid
Copy link
Member

@Homebrew/science and @Homebrew/games: FYI that this is getting pretty close to being done after which time we'll remove the Qt4 formula. I don't plan on personally updating those taps so it's probably worth thinking about what you want to do after we remove that formula.

@ilovezfs
Copy link
Contributor Author

@Homebrew/science these are science formulae that use Qt 4 and don't have a Qt 5 option in the formula:

alglib: required
opencascade: required, gmsh (optional)
qgis: required
populations: required

biopp: recommended
osgearth: recommended
paraview: recommended

amos: optional
g2o: optional
moose: optional
opencv: optional
openimageio: optional
root: optional

@tomyun
Copy link
Contributor

tomyun commented Nov 14, 2016

@Homebrew/games there are 3 formulae under the effect: hedgewars, hugor, qtads. will be handled at Homebrew/homebrew-games#735.

@MikeMcQuaid
Copy link
Member

Great work @tomyun.

@iMichka
Copy link
Member

iMichka commented Nov 14, 2016

homebrew/science/paraview has been merged and now uses QT5.

@ilovezfs
Copy link
Contributor Author

@Homebrew/science I have created a tracking issue for science: https://github.com/Homebrew/homebrew-science/issues/4595.

@MikeMcQuaid
Copy link
Member

brew uses qt is now empty for homebrew/core and homebrew/versions. Starting the rough countdown on removing the qt formula. I'll likely remove it at Christmas or later (25th December), regardless of the status of taps.

@Moisan
Copy link
Member

Moisan commented Dec 1, 2016

homebrew/x11/scantailor: support for Qt5 seems to be planned for version v1.0.0

@MikeMcQuaid
Copy link
Member

🚢d. Amazing work everyone who helped here.

@godehardt
Copy link

Regarding rcssserver (together with monitor and logplayer): it is still alive and got a version bump earlier this year, still depending on Qt4 though.
I got it to it to compile and work with the help of https://github.com/cartr/homebrew-qt4 and some minor tweak of the homebrew formulae.
Any interest in that? If so, how can/should I share it?

@MikeMcQuaid
Copy link
Member

@godehardt You can create your own tap for that. There's no interest in having any Qt4 formulae in this tap, sorry.

@Homebrew Homebrew locked and limited conversation to collaborators May 4, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
10.12 Sierra is specifically affected help wanted Task(s) needing PRs from the community or maintainers in progress Stale bot should stay away
Projects
None yet
Development

No branches or pull requests