[MacPorts] #51619: qt5.depends_component procedure

MacPorts noreply at macports.org
Thu Dec 29 19:07:23 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):

 Replying to [comment:17 MarcusCalhoun-Lopez]:
 > Replying to [comment:14 RJVB]:

 > > - port:qt5 currently installs the pkg-config files to
 `${qt_libs_dir}/pkgconfig`. Is that to be changed?
 > Links to the .pc files are currently put into `${prefix}/lib/pkgconfig`
 (see [https://trac.macports.org/changeset/142505/trunk/dports here]).

 OK. I put those files into lib/pkgconfig directly.

 > > I am VERY much in favour of maintaining the PortGroup approach
 implemented in
 > >
 [https://github.com/RJVB/macstrop/blob/master/_resources/port1.0/group/qt5-1.0.tcl
 qt5-1.0.tcl]

 > I believe there would be **strong** objections from the other developers
 to having dependencies influenced by {{{[file exists
 ${prefix}/include/qt5/QtCore/QtCore]}}}.[[BR]]
 > At the very least, it would run contrary to ReproducibleBuilds.[[BR]]

 No, because of the variant I include. Build with a different Qt5 port
 installed and your port will be labelled with a variant, which makes it
 officially different from what the build bots give.
 KF5 ports set `qt5.prefer_kde 1` before including the PortGroup. On the
 build bots and on virgin systems that means that `port:qt5-kde` will be
 installed, and the resulting build will have `+qt5kde` set. This will be
 exactly the same build on the bots, on a user system when installed from
 scratch, and on a user system where `port:qt5-kde` was already installed.

 > `port deps libQGLViewer` would give different answers from one day to
 the next depending on which Qt is installed.

 All this is not so different from what you get with regular vs. -devel
 ports. Yes, `port deps foo-qt5` will give a different answer depending on
 what Qt5 port is installed, but it's an answer that reflects the local
 context.

 I don't see a way around this if we want minimal disruption of ports that
 use Qt5. Once a choice for Qt5 ports has been made, all Qt5 dependencies
 should be taken from that same choice: you shouldn't end up mixing
 qt5-qtbase and qt55-qtdeclarative for instance, nor qt5-kde with
 qt5-qttools to name just 2 examples.

 We could probably make a more complex use variants and for the KF5 ports
 that could logic could be hidden (made automatic) in the KF5 PortGroup.
 But would we want to oblige users to specify a variant to "force"
 libQGLViewer or any other "pure Qt5" port to install when port:qt5-kde is
 installed? Or a variant to make it use port:qt55 on 10.7 if indeed that's
 the only way to get a proper Qt5 experience on that OS version?

 > I may have misunderstood how qt5-kde stubports are used, but I humbly
 suggest this is resolved after consensus is reached on general strategy.

 Possibly, but in this case the fix is easy; the early return I mentioned
 above (i.e. don't add any dependencies for a component provided by qt5-kde
 it it's known we're using qt5-kde). That doesn't really depend on the kind
 of consensus we can reach.

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


More information about the macports-tickets mailing list