Summary: | dev-qt/qtwidgets-5.15.3: QXdgDesktopPortalTheme errors like ‘QDBusMessage’ was not declared in this scope | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | robertgzr <robert> |
Component: | Current packages | Assignee: | Qt Bug Alias <qt> |
Status: | CONFIRMED --- | ||
Severity: | normal | CC: | jstein, sam |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
See Also: | https://bugs.gentoo.org/show_bug.cgi?id=504322 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
shortened qtwidgets build log
emerge --info log Full log output emerge --info for full log |
Description
robertgzr
2022-04-28 10:53:39 UTC
Created attachment 775161 [details]
shortened qtwidgets build log
Created attachment 775164 [details]
emerge --info log
Do not shorten build.log in general please. I'm not sure what to make of this bug - what is the version of dev-qt/qtdbus at the time of this error? Is it reproducible? > Do not shorten build.log in general please it was multiple MB, which I couldn't simply upload here... what alternatives are there? > version of dev-qt/qtdbus [I] dev-qt/qtdbus (5.15.3(5/5.15){tbz2}@04/22/2022): > reproducible On my system this happened consistently... without the dbus/gtk useflags this works and I can upgrade to 5.15.3 fine but that's not helpful :D I get similar weird issues when upgrading qtdeclarative btw: In file included from /var/tmp/portage/dev-qt/qtdeclarative-5.15.3-r1/work/qtdeclarative-everywhere-src-5.15.3/include/QtQuick/qsgmaterialshader.h:1, from /var/tmp/portage/dev-qt/qtdeclarative-5.15.3-r1/work/qtdeclarative-everywhere-src-5.15.3/src/quick/scenegraph/coreapi/qsgmaterial.h:44, from /var/tmp/portage/dev-qt/qtdeclarative-5.15.3-r1/work/qtdeclarative-everywhere-src-5.15.3/src/quick/scenegraph/coreapi/qsgmaterialshader.cpp:40: /var/tmp/portage/dev-qt/qtdeclarative-5.15.3-r1/work/qtdeclarative-everywhere-src-5.15.3/include/QtQuick/../../src/quick/scenegraph/coreapi/qsgmaterialshader.h:89:9: error: ‘QOpenGLContext’ does not name a type 89 | QOpenGLContext *context() const; | ^~~~~~~~~~~~~~ /var/tmp/portage/dev-qt/qtdeclarative-5.15.3-r1/work/qtdeclarative-everywhere-src-5.15.3/include/QtQuick/../../src/quick/scenegraph/coreapi/qsgmaterialshader.h:106:12: error: ‘QOpenGLShaderProgram’ does not name a type 106 | inline QOpenGLShaderProgram *program() { return &m_program; } | ^~~~~~~~~~~~~~~~~~~~ I feel like something is borked with my qt install, but I would love to know what it could be :P updating the system today managed to resolve this. still no idea what is going on though :S (In reply to robertgzr from comment #4) > > Do not shorten build.log in general please > > it was multiple MB, which I couldn't simply upload here... what alternatives > are there? > Ansifilter it and then compress it with e.g. xz -9. Created attachment 814726 [details]
Full log output
I've added an attachment including a full log, after encountering the same error myself. I also believe https://bugs.gentoo.org/504322 to be related to this one, since I was also hitting missing `qopenglextrafunctions.h` during some of my build attempts. I verified that /usr/include/qt5/QtGui/qopenglextrafunctions.h` did exist when it didn't find it. The official Qt5 documentation mentions `QT += gui` as cmake flags (we're not using cmake ourselves, though). I've tried to rebuild my whole `dev-qt/*` tree multiple times, with different sets of USE flags. qtwidgets only seems to build with `USE="-dbus -only-gles2"`, but that is not sufficient to bootstrap it. Created attachment 814750 [details]
emerge --info for full log
Probably wise to include my CC=clang and whatnot.
1. QtDBus/QDBusMessage includes QtDBus/qdbusmessage.h, which encloses all classes etc. within: #ifndef QT_NO_DBUS 2. /usr/include/qt5/QtCore/qconfig.h installed by qtcore contains: #define QT_NO_DBUS 3. /usr/include/qt5/QtCore/qconfig.h is modified in Gentoo to start with #include <Gentoo/gentoo-qconfig.h>, but user from comment #7 had broken bashrc, which overrode pkg_postinst() function, so qt5-build_pkg_postinst() and qt5_regenerate_global_configs() were not run, and his /usr/include/qt5/Gentoo/gentoo-qconfig.h was empty. (It would normally contain '#define QT_DBUS' if qtdbus is installed.) 4. Some parts of build system fail to pass -I${build_directory}/include (either with full path or relative path with .. sequences) to compiler, so ${build_directory}/include/QtCore/qconfig.h (which is generated by 'configure' and in this case does not contain '#define QT_NO_DBUS ') is not used. This is seen in build log for all files after ' * Running emake in src/plugins/platformthemes' at line 1853. It is possible that qtwidgets[-dbus] with qtdbus installed would automagically enable some qtdbus code at least in src/plugins/platformthemes directory. Since there may be other affected packages, I suggest that eclass, after ensuring existence of usable qconfig.h in build directory (https://gitweb.gentoo.org/repo/gentoo.git/tree/eclass/qt5-build.eclass?id=3834431f616e7cd362315b23ea47e2aade67a264#n666), append -I option with appropriate directory to {C,CXX}FLAGS. My /usr/include/qt5/Gentoo/gentoo-qconfig.h is empty, too. How can I fix this? I already tried to `emerge -v1 dev-qt/qtcore` but this did not help, the file is still empty. On my other system with similar setup (and similar ~/.bashrc) the file is not empty. (In reply to Lars from comment #11) > My /usr/include/qt5/Gentoo/gentoo-qconfig.h is empty, too. How can I fix > this? > I already tried to `emerge -v1 dev-qt/qtcore` but this did not help, the > file is still empty. > On my other system with similar setup (and similar ~/.bashrc) the file is > not empty. There might be some ideas here: https://forums.gentoo.org/viewtopic-t-1161660.html In particular the post mentioning the PATH variable: https://forums.gentoo.org/viewtopic-p-8777444.html#8777444 Another topic here, with a similar issue though no conclusion so far it seems: https://forums.gentoo.org/viewtopic-t-1161250.html (In reply to Chiitoo from comment #12) > There might be some ideas here: > > https://forums.gentoo.org/viewtopic-t-1161660.html > > In particular the post mentioning the PATH variable: > > https://forums.gentoo.org/viewtopic-p-8777444.html#8777444 Thank you! I had a similar issue as explained here: https://forums.gentoo.org/viewtopic-p-8777444.html?sid=bcfd98f88582b005ca278732e3c845fc#8777444 Running the find command used in `qt5_regenerate_global_configs()` in '/usr/portage/eclass/qt5-build.eclass' manually, shows which entry in PATH is the culprit. In my case it was `~/.local/bin` defined in '/etc/env.d/99pip'. `equery belongs /etc/env.d/99pip` finds nothing, so maybe I created the file myself. After removing the file, `env-update && source /etc/profile` and `emerge -v1 dev-qt/qtcore` everything else worked. |