Summary: | [NEW PORT] split part of www/qt5-websockets into new port www/qt5-websockets-qml | ||||||
---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | groot | ||||
Component: | Individual Port(s) | Assignee: | freebsd-kde (group) <kde> | ||||
Status: | Closed FIXED | ||||||
Severity: | Affects Only Me | CC: | grahamperrin, iblis.dif01, kde, rakuco, tcberner | ||||
Priority: | --- | ||||||
Version: | Latest | ||||||
Hardware: | Any | ||||||
OS: | Any | ||||||
Attachments: |
|
(no exp-run -- there are no clients of this in the ports tree yet) Technically speaking the patch looks OK, but I seem to be lacking some context. Whenever we split a program into multiple ports we need to consider the pros and cons of doing (and maintaining) that work ourselves, so what's driving this change here? I'm also not a fan of splitting it. But apparently TrueOS uses it for their (non-gui) tools. I'll quote some things from kenmoore in IRC for context: <kenmoore>: Quick Question: Why does the qt5-websocket port require the qt5-quick port? QtQuick is a graphical tool and brings in all the widgets/etc, but websocket is purely a CLI/core module: (reference: http://www.freshports.org/www/qt5-websockets/) I just noticed that our "server" utility was sucking in all of X11 and tracked it down to the Qt5-websocket port. That's the question behind it: if you want to use qt5 websockets from a text-only, command-line, QtCoreApplication, the existing port pulls in the core bits for websockets, but also the QML bindings which add the whole QtGui stack. That's not-so-convenient for a text application, just in terms of what gets installed alongside. Debian has packages that allow installing the core parts separately from the QML bindings (which pull in the GUI stack). So this split mirrors what Debian already do, and is convenient for those downstream consumers of Qt5 on FreeBSD that want websockets, without the GUI. (courous about why ask maintainer-feedback from me? (In reply to Iblis Lin from comment #5) Because I grabbed the first output of the query for "websockets" (net/libwebsockets), sorry. Alright, with the extra context I guess it makes sense to move forward with this. A few questions and comments: - Can you add some context to the new patches to the .pro files explaining why we're doing this? - Have you checked if the ports currently depending on qt5-websockets need to have their dependencies updated and their PORTREVISIONs bumped? You're right, the dependencies need to be doublechecked whether which webscocket component they need. Shotcut, sysadm and sysadm-client (the three ports that use qt5-websockets) all build unchanged (on 10.3 amd64 at least) -- they do not use the QML bindings. A commit references this bug: Author: tcberner Date: Thu Jul 6 20:40:52 UTC 2017 New revision: 445169 URL: https://svnweb.freebsd.org/changeset/ports/445169 Log: Split part of www/qt5-websockets into new port www/qt5-websockets-qml This splits qt5-websockets into a qt5-websockets port containing the core parts, and a qt5-websockets-qml port with the QML parts. The QML parts depend on Qt Quick, so on the GUI parts (and hence X11) while the core parts do not. PR: 220045 Submitted by: Adriaan de Groot <groot@kde.org> Changes: head/Mk/bsd.qt.mk head/multimedia/shotcut/Makefile head/sysutils/sysadm/Makefile head/sysutils/sysadm-client/Makefile head/www/Makefile head/www/qt5-websockets/Makefile head/www/qt5-websockets/files/ head/www/qt5-websockets/files/patch-src_src.pro head/www/qt5-websockets/pkg-plist head/www/qt5-websockets-qml/ head/www/qt5-websockets-qml/Makefile head/www/qt5-websockets-qml/files/ head/www/qt5-websockets-qml/files/patch-src_src.pro head/www/qt5-websockets-qml/pkg-plist Committed, Thanks. A commit references this bug: Author: rakuco Date: Sat Jul 8 10:44:13 UTC 2017 New revision: 445316 URL: https://svnweb.freebsd.org/changeset/ports/445316 Log: Fix qt5-websockets-qml's dependency path in bsd.qt.mk. libdeclarative_qmlwebsockets.so is not installed into ${QT_LIBDIR}, which causes the dependency logic in bsd.qt.mk to actually do something equivalent to this instead: BUILD_DEPENDS+= ${QT_LIBDIR}/${QT_QMLDIR}/QtWebSockets/libdeclarative_qmlwebsockets.so:www/qt5-websockets-qml RUN_DEPENDS+= ${QT_LIBDIR}/${QT_QMLDIR}/QtWebSockets/libdeclarative_qmlwebsockets.so:www/qt5-websockets-qml which translates into something like /usr/local/lib/qt5//usr/local/lib/qt5/qml/QtWebSockets/libdeclarative_qmlwebsockets.so:www/qt5-websockets-qml which obviously does not exist. Instead of settin websockets-qml_LIB, set websockets-qml_PATH like we do for other QML ports, so that our dependency logic does not needlessly prepend ${QT_LIBDIR} there. This fixes devel/qt5's build. PR: 220045 Changes: head/Mk/bsd.qt.mk |
Created attachment 183530 [details] Split port The attached patch splits qt5-websockets into a qt5-websockets port containing the core parts, and a qt5-websockets-qml port with the QML parts. The QML parts depend on Qt Quick, so on the GUI parts (and hence X11) while the core parts do not. Patch also available in the KDE ports tree on github. Requested by kenmoore; implementation groot@kde and tcberner.