[MacPorts] #51619: qt5.depends_component procedure

MacPorts noreply at macports.org
Fri Dec 30 14:59:50 CET 2016


#51619: qt5.depends_component procedure
---------------------------+----------------------
  Reporter:  RJVB          |      Owner:  mkae
      Type:  enhancement   |     Status:  assigned
  Priority:  Normal        |  Milestone:
 Component:  ports         |    Version:
Resolution:                |   Keywords:
      Port:  qt5, qt5-kde  |
---------------------------+----------------------

Comment (by RJVB):

 A few more things, inspired by upgrading to 5.7.1 :

 - qtenginio was deprecated in 5.6 and is removed from 5.7 . I doubt it was
 ever used but I am keeping its stubport (which will now raise an
 obsoletion error)

 - A few new components were added in 5.7: QtCharts QtDatavis3D QtGamepad
 QtPurchasing QtScxml (no idea yet what the latter does). They're all small
 when built and only depend on other components in `qt5-kde`, so I am
 including it in the main port, with stubs.

 - QtScript is deprecated but still available.

 KF5 evolves rather quickly and is in a sense a development platform and
 showcase for new, "Kool" things. I think the only reason why it doesn't
 yet require Qt 5.7 across the board is because of Qt 5.6's LTS status. I
 know that many KDE devs are already using preview versions of Qt 5.8, and
 at least 1 port already requires 5.7. (Not to mention QtWebEngine which
 works better in 5.7+ than it does in 5.6 .)
 All this is in line with KDE's history of being a source of APIs that end
 up being integrated into Qt.
 This observation is actually an additional argument NOT to integrate the
 KDE patches with the main `port:qt5` but to keep a dedicated Qt5 port so
 it become easier for KF5 ports to depend on `port:qt5-kde`, and for me to
 keep up with the "recommended" minimal Qt version.

 It is also an argument for something I already hinted at before: the 2nd
 part of his `qt5.depends_component` proposal

 {{{
         switch -exact ${comp} {
                     qtquickcontrols2 {
                         depends_lib-append
 path:lib/pkgconfig/Qt5QuickControls2.pc:${qt_port_name}
                     }
                     qtbase {
                         depends_lib-append
 path:lib/pkgconfig/Qt5Core.pc:${qt_port_name}
                     }
                     # ...
         }
 }}}

 should go into the port-specific PortGroup files, OR do a lookup in tables
 provided by those PortGroups.

 Yes, I realise this degrades the ABI compatibility argument. But as
 explained above:
 1 Qt guarantees that you can upgrade Qt from 5.x to 5.y without having to
 rebuild (except if certain private APIs are used)
 2 the autodefault +qt5kde variant prevents getting mismatched binary
 builds from the bots.

--
Ticket URL: <https://trac.macports.org/ticket/51619#comment:26>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list