Homebrew / homebrew-core

🍻 Default formulae for the missing package manager for macOS (or Linux)
https://brew.sh
BSD 2-Clause "Simplified" License
13.77k stars 12.45k forks source link

Transition formulae to Qt 5 #1705

Closed ilovezfs closed 7 years ago

ilovezfs commented 8 years ago

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

DomT4 commented 8 years ago

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 commented 8 years ago

@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 commented 8 years ago

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

DomT4 commented 8 years ago

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 https://github.com/Homebrew/homebrew-core/commit/79b67faffa47cac7bea281ff23eabe89aa165f84.

ilovezfs commented 8 years ago

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 commented 8 years ago

@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 :crossed_flags: cross-tap dependency on homebrew/versions/qt4.

DomT4 commented 8 years ago

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 commented 8 years ago

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 commented 8 years ago

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 commented 8 years ago

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

MikeMcQuaid commented 8 years ago

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

UniqMartin commented 8 years ago

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 commented 8 years ago

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. :racehorse: = qt5 available for upgrade, no rev-deps :skull: = no qt5, no rev-deps

MikeMcQuaid commented 8 years ago

@ilovezfs Nice work.

geoffmacintosh commented 8 years ago

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 commented 8 years ago

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

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

ilovezfs commented 8 years ago

Updated to reflect https://github.com/Homebrew/homebrew-core/pull/3328 avidemux migrated to cask https://github.com/Homebrew/homebrew-core/pull/3335 kdiff3 migrated to cask https://github.com/Homebrew/homebrew-core/pull/3339 quassel migrated to cask https://github.com/Homebrew/homebrew-core/pull/3340 sqlitebrowser migrated to cask

CC @AnastasiaSulyagina

DomT4 commented 8 years ago

Wireshark is done: https://github.com/Homebrew/homebrew-core/commit/a05941384bcd8e4ef846237aba79d14dc47d757f

DomT4 commented 8 years ago

gnuplot was done in https://github.com/Homebrew/homebrew-core/pull/3867 apparently.

schoeps commented 8 years ago

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

hainuo commented 8 years ago

i got qt5 install fails in https://gist.github.com/anonymous/8a0db109e7f274dcd26f1fb5114102ac

zmwangx commented 8 years ago

Ticked off pyqwt by throwing it to the boneyard. That leaves the number of remaining problems to solve at god knows how many.

ilovezfs commented 8 years ago
∞ - 1
zmwangx commented 8 years ago

Let Chrome JavaScript Console do the math for you:

> Infinity - 1
Infinity
Eitot commented 8 years ago

@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 commented 8 years ago

@Eitot Done, thanks!

equal-l2 commented 8 years ago

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 commented 8 years ago

@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 commented 8 years ago

@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 commented 8 years ago

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

MikeMcQuaid commented 8 years ago

Great work @tomyun.

iMichka commented 8 years ago

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

ilovezfs commented 8 years ago

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

MikeMcQuaid commented 8 years ago

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 commented 7 years ago

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

MikeMcQuaid commented 7 years ago

🚢d. Amazing work everyone who helped here.

godehardt commented 6 years ago

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 commented 6 years ago

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