[MacPorts] #44193: qt: allow side by side installation of qt4-mac and qt5-mac

MacPorts noreply at macports.org
Sat Oct 3 03:43:16 PDT 2015


#44193: qt: allow side by side installation of qt4-mac and qt5-mac
-------------------------------+------------------------
  Reporter:  mojca@…           |      Owner:  mcalhoun@…
      Type:  enhancement       |     Status:  new
  Priority:  Normal            |  Milestone:
 Component:  ports             |    Version:
Resolution:                    |   Keywords:
      Port:  qt4-mac, qt5-mac  |
-------------------------------+------------------------

Comment (by mojca@…):

 Replying to [comment:60 rjvbertin@…]:
 > First off, existing users can be warned not to upgrade to 10.11, but I
 guess you also have newcomers in mind (who'd have to be told to wait until
 compatibility issues are fixed).

 When I talked about upgrading, I meant upgrading packages on MacPorts. I'm
 almost sure that once we move Qt4 away from the default location there
 will be just a zillion of ports broken (disclaimer: that might not be the
 case with that "transitional" solution perhaps). Some might be fixed
 automagically be revbumping them, but I would expect that a lot of other
 ports would have to be fixed to continue working with the new Qt4
 structure. A single Qt4/5 maintainer simply cannot fix all the ports, no
 matter what. (When I change the packaging of wxWidgets, it probably took
 me 2 weeks almost full time to sort everything out. And even then I
 managed to hurt some maintainers who thought that I simply made too heavy
 changes to their ports when I tried to make them compatible with 3.0.) So
 I expect a large number of ports to be broken after Qt4 gets updated. But
 developers won't fix their ports until a new version of qt4-mac comes out,
 ideally one that comes as a binary package. (Not upgrading to 10.11 is not
 the answer for everyone. And people who do upgrade right away need to be
 aware of potential problems with a bunch of software. That has always been
 the case with early adopters.)

 Btw: if we are moving the complete structure anyway, what about renaming
 the new port simply to `qt4`? Now that x11 is hardly support (and probably
 not needed), there is no way to keep calling that port `"mac"`. That way
 we could keep the old `qt4-mac` in place for a while (and ports that won't
 be upgraded yet might conditionally keep working), while urging everyone
 to switch to the new `qt4` asap and update the ports to use qt4 instead of
 qt4-mac?

 > port:qt5-mac has already been made concurrent, so it would only require
 a patch if the commit Michael has mentioned has not made it to any
 released version. It would certainly surprise me if it hadn't made it into
 5.5.0 (released not more than a few weeks ago), and that version is
 already available in the port:qt5-kde I submitted.
 > Now to debunk a few misconceptions: the *-mac and proposed *-kde
 versions are not co-installable, so there is no *extra* disk space or
 processor time required.

 Which is even worse. Because then I have no option to link, say, gnuplot
 against qt5-kde if I happen to like the kde structure more. Becasue that
 will make gnuplot conflict with just about every other Qt-based package in
 MacPorts.

 > There aren't many qt5 dependent ports ATM

 I maintain a bunch of Qt-based ports that all work with Qt5, but I cannot
 afford to keep and test compatibility against Qt5 or get rid of Qt4
 completely as long as qt5-mac is conflicting with qt4-mac.

 > * I could however add a variant like the "transitional" variant in my
 qt4-mac proposals, which puts up symlinks so that existing dependents
 continue to find the stuff they need under libexec/qt5-mac. I won't have
 much time for that this weekend, and would need someone to help testing in
 any case.

 May I perhaps suggest you to put your files to a place like GitHub or any
 other public service, so that it becomes slightly easier to track your
 changes for those who might be interested? Uploading zips to trac starts
 getting cumbersome at some point, particularly with the amount of changes
 that you need to make.

 > About the install layout/directory structure: I've seen it argued that
 just putting everything into a single directory is how Digia do it with
 their own installers, on OS X. True, but the use case they envision is
 developers who build standalone app bundles that can be submitted to the
 App Store. That's not the reason for which MacPorts contains Qt, I think.
 There are Qt ports so there can be any number of other ports to depend on
 the appropriate Qt version. Most of those dependents probably come from
 other Unix desktops where Qt does not install in a single directory.

 Quick question: do I understand it properly that some of your ports
 (mostly those based on KDE) do not even work if one installs the complete
 Qt into a single directory like libexec? If that is the case, we might
 have a strong argument to try to keep the directories spread out at their
 usual location.
 Or do both configurations (either a single directory or different
 directories) work with most ports?

 > Once again, the Qt4 port I attached here is set up so it can serve as a
 drop-in replacement for the current, "exclusive" port:qt4-mac. Full drop-
 in compatibility requires installing the transitional subport which caters
 to existing, non-rebuilt dependents.

 So if I understand properly, installing both ports (your new qt[45]-mac)
 as well as the transitional subport will make sure that all the ports that
 haven't been fixed and/or rebuilt yet will happily keep working? And the
 transitional subport will only be a problem when building other ports
 against qt5? If that is so, the transition might be a lot less painful
 than what I imagined.

 > * But there must be more. I don't think they're going to be a challenge,
 just monks' work to get right.
 > * In fact, I'd see this as an argument just to commit qt4-mac-devel. It
 won't be installed automatically on any user machines, but devs like us
 can chose it deliberately over qt4-mac . Thanks to rev-upgrade a rebuild
 will be triggered of all installed dependents if the transitional variant
 is not installed. With a few devs doing this the problem ports will be
 identified soon enough. [[BR]]

 Potentially the qt4-mac-devel could be called qt4?

-- 
Ticket URL: <https://trac.macports.org/ticket/44193#comment:62>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list