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

MacPorts noreply at macports.org
Fri Oct 2 12:14:53 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 rjvbertin@…):

 Replying to [comment:52 michaelld@…]:

 > What are the primary/major differences between your setup and the
 current on in MP?

 The one currently in MP being the "exclusive" version? The main difference
 with that install layout is the fact that libraries and executables are
 moved into ${prefix}/libexec/qt4. Everything that was already under a qt4
 directory (share/qt4, doc/qt4) remained there (with maybe a few things
 moving around, but as little as possible).

 > -> Maybe: Send me a private email naming each new patch file & new
 variant and briefly what it addresses / does? I'm really not sure how to
 approach all of your changes!

 Erm, I think I have already done that a long time ago, about the time when
 I considered this port "done".

 > -> You know that I'm not going to just use what you provide out of the
 box.

 Why do you think I provide this as a "-devel" port? Yes, over time lots of
 changes have accumulated (and they should all be documented at least in
 the naming of patch files). I would in fact invite you to build this baby
 and see what comes out of that, and my offer stands to help out with any
 issues that arise from my work.
 port:qt4-mac is '''openmaintainer''', and if I'd had commit powers I'd
 have pushed qt4-mac-devel a long time ago already.

 > -> NOTE: I don't want a formal diff (e.g., "svn diff") between the
 current Portfile and yours; just too many changes to be able to parse what
 is what.

 I just included one because I was certain someone was going to insist on
 having it (and then telling me it's unreadable) :)

 > Nor do I care about the qt_dir install prefix, or parallel install, or
 transitional / exclusive or anything along those lines.

 Transitional was always just that, and easy to strip. I'm not even sure to
 what extent I myself still have ports that are built against the exclusive
 version.

 > We're going to move qt4-mac into ${prefix}/libexec/qt4-; period.

 If you mean that you plan to move anything into libexec/qt4-mac then I
 fear the only thing left that we might agree on is the possibility of a
 qt4-kde port analogous to port:qt5-kde I submitted the other day, which
 I'd maintain. I'm not interested in having to find out what issues I ran
 into with that all-in approach, but I'm sure it had to do with my KDE4
 ports.

 > -> For example, I notice quite a number of patches added to yours, and
 some extra variants. Do these fix bugs in open MP (or other) ticket and/or
 add usable functionality? Do they allow for better building across more
 compilers / OSs (e.g., KDE, X11, Aqua)?

 I have not sought to address open MP tickets unless pointed to them
 specifically. But yes, every bit I added was to improve something:
 - the sqlite3 plugin was rolled back into the main port as it's required
 by some of the applications the main port installs (suggestion from
 Bradley Giesbrecht)
 - the default is to build without internal support for C++ exceptions
 except for the few modules which actually use them. That provides a leaner
 build with less overhead
 - an LTO variant provides a build with link-time optimisation. This again
 gives a leaner build with snappier performance. (This and the previous
 item were achieved with guidance from Thiago Macieira)
 - installation of the >200Mb of html docs is moved to a variant
 - a KDE variant addresses a number of issues that KDE4 apps/users (can)
 run into (much) more frequently (than pure Qt apps).
 - qprocess-nozombies.patch prevents zombie processes that could otherwise
 be left by QProcess
 - qt4-prevent-mousevent-for-deleted-object.diff : does what it says; this
 could lead to crashes in KDE4 apps due to pending events delivered to
 deleted objects
 - *exceptions* and *lto* patches have to do with the no-exceptions and LTO
 builds
 - patch-tools-build_qtconfig.diff : builds the qtconfig utility
 - patch-improve-fontweight-support2.diff, patch-fontpanel.diff : implement
 somewhat improved support for font weights other than regular/bold/italic
 /bold-italic
 - qt4-deactivate-menurole-heuristics.patch (+KDE) : disables part of the
 text-heuristics based guessing which menu QAction should become the About
 or Preferences menuitem, That shortcut is rather flaky which has led to
 annoying misses in KDE4 apps; the patch is included in the KDE variant
 only.
 - debug-negative-qtimerint.patch (+KDE): gives more useful feedback when a
 QTimer is started with a negative interval, something I've seen happen in
 KDE4 apps

 Other patches in the KDE variant prevent null-pointer dereference in
 QAction::isEnabled() (undoubtedly again due to pending event handling),
 make QFileSystemWatcher less verbose and add a means to keep track of the
 number of open file descriptors when using that class (relevant for
 KDevelop).

 If I missed anything just ask.

 I see that I left in a reference to qt4-mac-devel-x11 . That's a remnant
 of attempts to experiment with QPA support which clearly isn't finalised
 in Qt4. So no Qt4-X11 support I'm afraid. I also haven't had any reason to
 experiment with other compilers; I have done so with my Qt5 ports however,
 so maybe some of that knowledge can be applied here. If there's a
 reason...

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


More information about the macports-tickets mailing list