Dear Qt folks, regarding René's post from March (see below) I believe it would be good to give a _short_ update on the qt5-kde port status.
Currently the situation for port qt5-kde is as follows: - Qt at version 5.6.1 - tested building on Mavericks and El Capitan VMs - René also managed to get qt5-kde-qtwebkit into a separate subport - allows to build almost all of the KF5 ports @ version 5.24 successfully - 5 port groups would have to be updated (see comments 30-34 in [1]) We are very interested in feedback from other Qt maintainers concerning our chosen path to offer an alternative port for Qt5, which is dedicated to a better user experience for KDE specifically. Can we a) find a way to merge qt5 and qt5-kde(-devel) somehow b) or should we live with offering a dedicated Qt for KDE ?? What’s your opinion regarding this? If you’re FOR b), I’d soonish like to commit this port because automated CI is simply a must now. Us two doing all the build tests is tedious and error prone. Also we’d like to introduce the long-planned introduction of KF5 after all, since KDE4 apps aren’t really maintained anymore. Greets, Marko P.S.: I could also test it locally on a macOS "10.12.1 Beta” VM before committing anything... although I’d prefer to delegate this job to our macOS buildbot instead. ;-) [1] https://trac.macports.org/ticket/48967#comment:30 On 17 Mar 2016, at 12:37 , René J.V. Bertin <rjvber...@gmail.com> wrote: > Hi, > > While working on the update to Qt 5.6.0 I realised I should try to rekindle > the probably controversial issue of providing a dedicated Qt5 port that will > be optional for but preferred by the KF5 ports currently under testing. > > I've tried to be as succinct as possible... I hope this is all clear enough > and not too long; it'd be nice to get some feedback this time. > > The main specific adaptation of qt5-kde is a patch to QStandardPaths that > allows that class to return XDG-compliant locations for various settings > files and shared resources like icons, DBus scripts, etc. That's more or less > an unavoidable modification if we want KF5 applications to build, install and > behave (in MacPorts) like their KDE4 counterparts did - and interact with > those (and other, e.g. GTk/Gnome apps from the Freedesktop universe). Another > important difference is that the install layout follows the layout used by > the original, exclusive port:qt4-mac, because it is much closer to an > XDG-compliant layout. > > Having 2 different ports each providing the same middleware is of course not > an ideal solution. If things had gone as I'd liked there would now be a > single port with a +KDE variant. Alas, that apparently wasn't to be. > > Instead, I've set up my qt5-kde port to be as compatible as possible with the > main/official port:qt5. In a nutshell: port:qt5-kde installs everything the > qt5 *meta*port does, except the QtWebEngine component which for now is > provided as a subport because it is so costly to build (about as much as the > rest). Qt5-kde also installs symlinks that provide access to various elements > along the same paths as port:qt5 does (e.g. /opt/local/libexec/qt5/include -> > /opt/local/include/qt5). With this I have been able to install the binary Qt5 > Creator package and run the application without issues. > I have implemented a PortGroup wrapper that takes care of handling most > differences between the 2 ports by including the appropriate "payload" > PortGroup. As a result, users can install either Qt5 port as a mostly > transparent alternative for the other without being obliged to have both > installed and activate either the one or the other. A preference setting is > provided whereby ports can indicate which Qt5 flavour they prefer, which is > what gets installed if no Qt5 port is available yet. > > With these adaptions I think there is little hard reason not to admit qt5-kde > : users who don't care about KF5 ports or have reason to run port:qt5 with > its fewer patches and all-encompassing install prefix are served as they are > now, while users who do want to use KF5 applications in optimal form (or use > port:qt5-kde for some of its other specifics, like e.g. providing Qt 5.3.2 on > OS X 10.6) also get a choice. They'll still be able to use regular ports > depending on Qt5 - at the moment those will be built from source when > port:qt5-kde is installed instead of port:qt5 . > > I'm launching this thread to discuss ways to streamline this. For there is a > caveat. Originally, the Qt4 and Qt5 ports installed all Qt components, so > dependent ports could simply include the respective PortGroup which would > then add an appropriate (path:-style) dependency. My own QtWebEngine subport, > and now mcalhoun's complete separation into a 1-subport-per-component design > make this less trivial (port:qt5-kde does provide the equivalent subports as > stubs, btw). > Ports that want to depend on only the components they require (or require > QtWebEngine, in my case) can no longer simply include the PortGroup because > all those component subports follow a "${name}-component" naming scheme. > > Addressing the qt5-kde-qtwebengine dependency issue would be simple enough > for ports that simply continue to depend on all Qt5. A flag > (qt5.depends_qtwebengine) can be used to add the appropriate depends_libs > command in the qt5-kde PortGroup. > But the only way to handle this elegantly and transparently would be to > provide a dependency procedure, where ports could do something like > > {{{ > set qt5.selective_dependencies yes > # set qt5.prefer_kde yes > PortGroup qt5 1.0 > > qt5.depends_libs qtbase qtwebengine > }}} > > Each "payload" PortGroup (qt5-kde-1.0.tcl and what I've called > qt5-mac-1.0.tcl for lack of a better name) would add the appropriate > dependency statements in its specific implementation of the qt5.depends_libs > procedure, ideally using the path:- style : > > For port:qt5 you'd get > depends_libs-append > path:libexec/qt5/lib/QtWebEngineCore.framework/Versions/5/QtWebEngineCore:qt5-qtwebengine > > and for port:qt5-kde > depends_libs-append > path:libexec/qt5/Library/Frameworks/QtWebEngineWidgets.framework/Versions/5/QtWebEngineWidgets:qt5-kde-qtwebengine > > or > depends_libs-append > path:libexec/qt5/libs/QtWebEngineWidgets.framework/Versions/5/QtWebEngineWidgets:qt5-kde-qtwebengine > > because that path is valid too and ensures compatibility with port:qt5 even > though if that port is installed one should never get a dependency on > qt5-kde-qtwebengine . > > I've used a comparable procedure in my KF5 PortGroup, and that works > perfectly. > > Of course this would have to be agreed upon between mcalhoun, me, and all > potentially concerned port devs. > > Thanks, > René > > _______________________________________________ > macports-dev mailing list > macports-dev@lists.macosforge.org > https://lists.macosforge.org/mailman/listinfo/macports-dev _______________________________________________ macports-dev mailing list macports-dev@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macports-dev