The accessibility/at-spi2-core port has an option ATKONLY which disables spi. The qt5-gui port builds just fine with at-spi2-core built with ATKONLY=on, but fails in the package phase as it assumes certain files to be available: [...] =======================<phase: package >============================ ===> Building package for qt5-gui-5.15.8p157_1 pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/include/qt5/QtLinuxAccessibilitySupport/5.15.8/QtLinuxAccessibilitySupport/private/application_p.h:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/include/qt5/QtLinuxAccessibilitySupport/5.15.8/QtLinuxAccessibilitySupport/private/atspiadaptor_p.h:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/include/qt5/QtLinuxAccessibilitySupport/5.15.8/QtLinuxAccessibilitySupport/private/bridge_p.h:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/include/qt5/QtLinuxAccessibilitySupport/5.15.8/QtLinuxAccessibilitySupport/private/cache_p.h:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/include/qt5/QtLinuxAccessibilitySupport/5.15.8/QtLinuxAccessibilitySupport/private/constant_mappings_p.h:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/include/qt5/QtLinuxAccessibilitySupport/5.15.8/QtLinuxAccessibilitySupport/private/dbusconnection_p.h:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/include/qt5/QtLinuxAccessibilitySupport/5.15.8/QtLinuxAccessibilitySupport/private/struct_marshallers_p.h:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/include/qt5/QtLinuxAccessibilitySupport/QtLinuxAccessibilitySupport:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/include/qt5/QtLinuxAccessibilitySupport/QtLinuxAccessibilitySupportDepends:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/include/qt5/QtLinuxAccessibilitySupport/QtLinuxAccessibilitySupportVersion:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/include/qt5/QtLinuxAccessibilitySupport/qtlinuxaccessibilitysupportversion.h:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/lib/cmake/Qt5LinuxAccessibilitySupport/Qt5LinuxAccessibilitySupportConfig.cmake:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/lib/cmake/Qt5LinuxAccessibilitySupport/Qt5LinuxAccessibilitySupportConfigVersion.cmake:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/lib/qt5/libQt5LinuxAccessibilitySupport.a:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/lib/qt5/libQt5LinuxAccessibilitySupport.prl:No such file or directory pkg-static: Unable to access file /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/stage/usr/local/lib/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri:No such file or directory *** Error code 1 I am not sure how to handle this (or if this can/should be handled)?
Created attachment 243986 [details] Add ATK_BRIDGE option for qt5-gui Add an ATK_BRIDGE option for qt5-gui, parallel to the same option in gtk30. When this option is unset, qt5-gui packages correctly when ATKONLY=on is set in accessibility/at-spi2-core .
Created attachment 243987 [details] Add ATK_BRIDGE option for qt5-widgets This, similarly, adds an ATK_BRIDGE option to qt5-widgets, working similarly to the one for qt5-gui.
Thanks! I tested it and it builds fine now. One thing though, I think the Makefiles need a ATK_BRIDGE_DESC variable, otherwise the ATK_BRIDGE option in the options dialog lacks a description.
Created attachment 244229 [details] Add ATK_BRIDGE option for qt5-gui, with DESC
Created attachment 244230 [details] Add ATK_BRIDGE option for qt5-widgets, with DESC
Moin moin Please convert your patches to https://docs.freebsd.org/en/books/porters-handbook/makefiles/#options-vars mfg Tobias
(In reply to Tobias C. Berner from comment #6) When I attempt to use the option vars formulation then x11-toolkits/qt5-gui fails to configure. The error is `Project ERROR: Unknown module(s) in QT_PRIVATE: dbus`. Adding a `CONFIGURE_ENV` to also pass the customized QT_CONFIG and QT_DEFINES did not help. I'm not entirely clear on what is going wrong. It seems like `ATK_BRIDGE_USE_QT= dbus` is no longer being recognized by the USE_QT machinery when using `ATK_BRIDGE_VARS(_OFF)?` to customize QT_CONFIG and QT_DEFINES.
(In reply to Corey Halpin from comment #7) Oh! Ugh. Nevermind. I see now what I was doing wrong. I'll have updated patches after a few more `testport` runs complete.
Created attachment 244391 [details] Add ATK_BRIDGE option for qt5-gui, option vars version
Created attachment 244392 [details] Add ATK_BRIDGE option for qt5-widgets, option vars version
Both option vars versions pass `poudriere testport` for 13.2/amd64 both with and without the ATK_BRIDGE option set.
(In reply to Corey Halpin from comment #11) Thanks for your work, unfortunately I think that patch needs updating for qt5-gui 5.15.12p148 (I've ran into this issue yet again after recent update).
(In reply to jakub_lach from comment #12) What specifically is the problem you are seeing? With a ports tree updated from git this morning, both the above patches still apply and the ports still build correctly in poudriere. I'm now building on 14.0/amd64 rather than 13.2/amd64, but offhand I can't think of a reason that would make any difference.
*** Bug 276026 has been marked as a duplicate of this bug. ***
(In reply to Corey Halpin from comment #13) --- sub-ibus-all --- ./qibustypes.h:152:8: error: unknown type name 'QDBusArgument' inline QDBusArgument &operator<<(QDBusArgument &argument, const QIBusAttribute &attribute) ^ ./qibustypes.h:152:34: error: unknown type name 'QDBusArgument' inline QDBusArgument &operator<<(QDBusArgument &argument, const QIBusAttribute &attribute) ^ ./qibustypes.h:154:14: error: unknown type name 'QDBusArgument' inline const QDBusArgument &operator>>(const QDBusArgument &argument, QIBusAttribute &attribute) ^ ./qibustypes.h:154:46: error: unknown type name 'QDBusArgument' inline const QDBusArgument &operator>>(const QDBusArgument &argument, QIBusAttribute &attribute) ^ ./qibustypes.h:157:8: error: unknown type name 'QDBusArgument' inline QDBusArgument &operator<<(QDBusArgument &argument, const QIBusAttributeList &attributeList) ^ ./qibustypes.h:157:34: error: unknown type name 'QDBusArgument' inline QDBusArgument &operator<<(QDBusArgument &argument, const QIBusAttributeList &attributeList) ^ ./qibustypes.h:159:14: error: unknown type name 'QDBusArgument' inline const QDBusArgument &operator>>(const QDBusArgument &argument, QIBusAttributeList &attributeList) ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. *** [.obj/qibustypes.o] Error code 1 make[3]: stopped in /usr/obj/usr/ports/x11-toolkits/qt5-gui/work/kde-qtbase-5.15.12p148/src/plugins/platforminputcontexts/ibus 1 error make[3]: stopped in /usr/obj/usr/ports/x11-toolkits/qt5-gui/work/kde-qtbase-5.15.12p148/src/plugins/platforminputcontexts/ibus *** [sub-ibus-all] Error code 2 make[2]: stopped in /usr/obj/usr/ports/x11-toolkits/qt5-gui/work/kde-qtbase-5.15.12p148/src/plugins/platforminputcontexts --- sub-compose-all --- *** [sub-compose-all] Error code 6 make[2]: stopped in /usr/obj/usr/ports/x11-toolkits/qt5-gui/work/kde-qtbase-5.15.12p148/src/plugins/platforminputcontexts 2 errors make[2]: stopped in /usr/obj/usr/ports/x11-toolkits/qt5-gui/work/kde-qtbase-5.15.12p148/src/plugins/platforminputcontexts *** Error code 2
(In reply to jakub_lach from comment #15) Error messages without any context about how you got them are pretty difficult to debug. Could you please specify: - What version of FreeBSD you are using and on what architecture? - How you are building the port (e.g., ports directly, `portmaster`, `poudriere`, etc)? - What options you are using for the port? (For what it's worth, if you haven't unset the ATK_BRIDGE option for these two ports, but you have set ATKONLY in accessibility/at-spi2-core, then it wouldn't be expected to work. The new options added in this patch must be unset in combination with the ATKONLY=on in accessibility/at-spi2-core - that is the situation for the successful builds in poudriere under 14.0/amd64 that I mentioned earlier.)
(In reply to Corey Halpin from comment #16) Hello, Sorry for the cryptic message, I'm still running some (portmaster) rebuilds to be 100% sure, though the above was with patch "Add ATK_BRIDGE option for qt5-gui, option vars version" applied and ATK_BRIDGE set to off, ATKONLY set to on (both portswide), 14.0-STABLE #0 stable/14-0a6b61a89 amd64. Previously had the same packaging error as you.
(In reply to jakub_lach from comment #17) Thank you for the additional information - it is very helpful. Unfortunately, I'm still not able to replicate the error your are getting. I created a 14.0 jail, pulled ports from git, applied the patches from this bug, and added the following to make.conf: ``` OPTIONS_UNSET+= ATK_BRIDGE OPTIONS_UNSET+= DBUS accessibility_at-spi2-core_SET+= ATKONLY ``` With these settings in place, portmaster correctly builds `x11-toolkits/qt5-gui`. I suspect that either 1) there's something installed on your system that's confusing `configure` so that it depends on dbus despite `-DQT_NO_DBUS` in the build, or 2) there's some other port on your system built against dbus that implicitly forces the dbus dependency. Can you do (as root): ``` cd /usr/ports/x11-toolkits/qt5-gui make clean make configure | tee ~/qt5-gui-config.log ``` Then please attach the `qt5-gui-config.log` from root's homedir to this bug? Thank you.
(In reply to Corey Halpin from comment #18) Thanks for reply, I will test again later, though for fwiw it occurred to me that I didn't really need ATKONLY=on in accessibility/at-spi2-core so for now I just recompiled/updated all affected ports without additional patches.
Created attachment 247856 [details] qt5-gui-config.log after applying patch and build error qt5-gui-config.log after applying patch and build error
(In reply to jakub_lach from comment #20) I think the cause might be that the X11 option was disabled when building. I added the following to /etc/make.conf and then rebuilt the port, which solved the problem. x11_libxkbcommon_SET=X11
Created attachment 258018 [details] Add ATK_BRIDGE option for qt5-gui, option vars version ^Triage: rebase patch.
Created attachment 258019 [details] Add ATK_BRIDGE option for qt5-widgets, option vars version ^Triage: rebase patch.
It seems this patch is not complete, pkg-plist has to be adapted for the changes. However, I'm not in favour of this option: ATKONLY option in accessibility/at-spi2-core says that upstream does not support this configuration, besides building Qt 5 with unsupported at-spi2-core could result in cryptic problems with downstream ports.
Adding this option allows users who do not want dbus on their systems to build qt5 without it. The ports tree has not previously provided for this without local patches, so not including it at least would not be a regression. I'm perfectly happy continuing to maintain my local patches for this purpose. My personal experience has been that removing dbus support tends to avoid "cryptic problems", auto-starting daemons that I didn't want, and programs hanging seemingly at random. Including this option in the port would allow users to decide which "cryptic problems" they want to experience - those caused by dbus or those caused by omitting it.