Unable to build qtx11extras module in Qt 5.15.5
-
I seem unable to to build the qtx11extras module that I require to build my application. I will detail all steps taken below.
I have downloaded Qt 5.15.5 source and extracted it. I build Qt using a shadow build like so:
Directory structure:
.../Qt/qt-everywhere-src-5.15.5/ .../Qt/qt5-build/ .../Qt/5.15.5-RHEL7/
From qt5-build, I call configure (note: platform is linux-g++):
../qt-everywhere-src-5.15.5/configure -opensource -debug -nomake examples -nomake tests -prefix ../5.15.5-RHEL7
Then I call
gmake
andgmake install
, and Qt builds without errors. When I look at the qtx11extras module subfolder in my build dir and install dir, both are empty except for a makefile and an empty src dir (also has a makefile).Following advice given here, I then attempt to build the module by itself by calling
gmake module-qtx11extras
from my build dir. The output from this command shows it cd'ing into each module directory and subdirs and doing nothing until it reaches the qtx11extras module directory, for which the output looks basically the same as the others:cd qtx11extras/ && ( test -e Makefile || /myPath/Qt/qt5-build/qtbase/bin/qmake -o Makefile /myPath/Qt/qt-everywhere-src-5.15.5/qtx11extras/qtx11extras.pro ) && make -f Makefile make[1]: Entering directory '/myPath/Qt/qt5-build/qtx11extras' cd src/ && ( test -e Makefile || /myPath/Qt/qt5-build/qtbase/bin/qmake -o Makefile /myPath/Qt/qt-everywhere-src-5.15.5/qtx11extras/src/src.pro ) && make -f Makefile make[2]: Entering directory '/myPath/Qt/qt5-build/qtx11extras/src' make[2]: Nothing to be done for 'first'. make[2]: Leaving directory '/myPath/Qt/qt5-build/qtx11extras/src' make[1]: Leaving directory '/myPath/Qt/qt5-build/qtx11extras'
And nothing happens. Do I need to run another configure command specific to the module first?
-
From that config.log:
looking for library xcb_icccm Trying source 0 (type pkgConfig) of library xcb_icccm ... + /bin/pkg-config --exists --silence-errors xcb-icccm '>=' 0.3.9 pkg-config did not find package. => source produced no result. Trying source 1 (type inline) of library xcb_icccm ... xcb/xcb_icccm.h not found in [] and global paths. => source produced no result. test config.qtbase_gui.libraries.xcb_icccm FAILED
It looks like this may be the problem since xcb-icccm is listed as an X11 requirement. However, I can't seem to find this package on CentOS7 with
yum list | grep xcb-icccm
(or grepping for 'xcb' or 'icccm' separately). A cursory google search suggest I may need to be looking forxcb-util-wm
instead, but I already have this installed...Is anyone able to chime in here with further insight? Sorry if this is a dumb question, I'm fairly new to building on Linux :)
-
@JW16 said in Unable to build qtx11extras module in Qt 5.15.5:
xcb-util-wm instead, but I already have this installed
Also its dev package?
-
I'm having this same issue trying to build Qt 5.15.8 from source on CentOS7 even with the header file /usr/include/xcb/xcb_icccm.h already installed on the system. (The following xcb package are installed: libxcb.x86_64 libxcb-devel.x86_64 xcb-util.x86_64 xcb-util-devel.x86_64 xcb-util-image.x86_64 xcb-util-image-devel.x86_64 xcb-util-wm.x86_64 xcb-util-wm-devel.x86_64). I can see in the config.log it continues to search and test for xcb packages, i.e, it currently cannot find xcb-keysyms. But it's not clear to me faulting through this output and piecemeal installing more xcb packages will ultimately trigger qt11extras to build/install - more specifically export the needed header files to live under <install path>/include/QtX11Extras/* during the install pass. I don't see configure options describing how to install X11 related modules or files in the help output from configure. The options do not seem to directly relate to telling Qt to build a specific module under the top level source tree like qt11extras. As the poster listed above, it does not work to cd into qtbase and type "gmake module-qtbase" . I don't see a target in the 700+ line Makefile there as generated by configure to build qtx11extras.
-
I would guess it's the usual suspect xkbcommon like here: https://forum.qt.io/topic/143128/qt-everywhere-src-5-15-2-fails-to-build-xcb-plation
-
I went back to the list of what should be installed as shown under, https://doc.qt.io/qt-5/linux-requirements.html. I did end up installing some xcb common and other packages. (See below for summary of some installed packages).
There are no errors during the build (using the recommended gcc/g++ 5.3.1 via devtoolset-4) and install of the qt source from the downloaded file, qt-everywhere-opensource-src-5.15.8.zip, on my CentOS7 system. For the configure command, I used,
$ configure --prefix=$HOME/qt-install -confirm-license -opensource -release -shared -nomake examples -nomake tests -verbose
But when I point the applications build sandbox that links against Qt to that 5.15.8 install tree via adding -DQt5_DIR=$HOME/qt-install/lib/cmake/Qt5 on the cmake command line, cmake flags Qt5X11Extras is missing for a build target.
-- Could NOT find Qt5X11Extras (missing: Qt5X11Extras_DIR) CMake Warning at cmake/FindQT.cmake:18 (find_package): Found package configuration file: <$HOME>/qt-install/lib/cmake/Qt5/Qt5Config.cmake but it set Qt5_FOUND to FALSE so package "Qt5" is considered to be NOT FOUND. Reason given by package: Failed to find Qt5 component "X11Extras" config file at <$HOME>/qt-install/lib/cmake/Qt5X11Extras/Qt5X11Ext Target "<foo>" links to target "Qt5::X11Extras" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing?
What was installed uner $HOME/qt-install/lib/cmake is the folowing,
$ ls $HOME/qt-install/lib/cmake Qt5 Qt5FontDatabaseSupport Qt5PrintSupport Qt5AccessibilitySupport Qt5GlxSupport Qt5ServiceSupport Qt5Concurrent Qt5Gui Qt5Sql Qt5Core Qt5InputSupport Qt5Test Qt5DBus Qt5KmsSupport Qt5ThemeSupport Qt5DeviceDiscoverySupport Qt5Network Qt5Widgets Qt5EdidSupport Qt5OpenGL Qt5XcbQpa Qt5EventDispatcherSupport Qt5OpenGLExtensions Qt5XkbCommonSupport Qt5FbSupport Qt5PlatformCompositorSupport Qt5Xml
# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) # yum repolist ... after updates ... repo id repo name status base/7/x86_64 CentOS-7 - Base 10072 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13747 extras/7/x86_64 CentOS-7 - Extras 515 updates/7/x86_64 CentOS-7 - Updates # yum list installed | grep -i xcb compat-libxcb.x86_64 1.9-1.el7 @base libxcb.x86_64 1.13-1.el7 @base libxcb-devel.x86_64 1.13-1.el7 @base libxcb-doc.noarch 1.13-1.el7 @base xcb-proto.noarch 1.13-1.el7 @base xcb-util.x86_64 0.4.0-2.el7 @base xcb-util-cursor.x86_64 0.1.2-2.el7 @epel xcb-util-cursor-devel.x86_64 0.1.2-2.el7 @epel xcb-util-devel.x86_64 0.4.0-2.el7 @base xcb-util-image.x86_64 0.4.0-2.el7 @base xcb-util-image-devel.x86_64 0.4.0-2.el7 @base xcb-util-keysyms.x86_64 0.4.0-1.el7 @base xcb-util-keysyms-devel.x86_64 0.4.0-1.el7 @base xcb-util-renderutil.x86_64 0.3.9-3.el7 @base xcb-util-renderutil-devel.x86_64 0.3.9-3.el7 @base xcb-util-wm.x86_64 0.4.1-5.el7 @base xcb-util-wm-devel.x86_64 0.4.1-5.el7 @base # yum list available | grep -i xcb | grep -v i686 # *** I don't see some xcb packages in the URL chart listed as available on CentOS7, e.g., xcb-randr, xcb-shape, xcb-xfixes # yum list installed | grep -i shape shapelib.x86_64 1.3.0-3.el7 @epel shapelib-devel.x86_64 1.3.0-3.el7 @epel shapelib-tools.x86_64 1.3.0-3.el7 @epel # yum list available | grep -i shape | grep -v i686 php-phpmyadmin-shapefile.noarch 2.0-1.el7 epel python-shapely-doc.noarch 1.5.17-1.el7 epel python2-shapely.x86_64 1.5.17-1.el7 epel python36-shapely.x86_64 1.5.17-1.el7 epel wondershaper.noarch 1.2.1-3.el7 epel # yum list installed | grep -i xkb libxkbcommon.x86_64 0.7.1-3.el7 @base libxkbcommon-devel.x86_64 0.7.1-3.el7 @base libxkbcommon-x11.x86_64 0.7.1-3.el7 @base libxkbcommon-x11-devel.x86_64 0.7.1-3.el7 @base libxkbfile.x86_64 1.0.9-3.el7 @base libxkbfile-devel.x86_64 1.0.9-3.el7 @base xfce4-xkb-plugin.x86_64 0.7.1-4.el7 @epel xorg-x11-xkb-extras.x86_64 7.7-14.el7 @base xorg-x11-xkb-utils.x86_64 7.7-14.el7 @base xorg-x11-xkb-utils-devel.x86_64 7.7-14.el7 @base # yum list available | grep -i xkb | grep -v i686 # # yum list installed | grep -i x11 dbus-x11.x86_64 1:1.10.24-15.el7 @base libX11.x86_64 1.6.7-4.el7_9 @updates libX11-common.noarch 1.6.7-4.el7_9 @updates libX11-devel.x86_64 1.6.7-4.el7_9 @updates libxkbcommon-x11.x86_64 0.7.1-3.el7 @base libxkbcommon-x11-devel.x86_64 0.7.1-3.el7 @base xorg-x11-proto-devel.noarch 2018.4-1.el7 @base xorg-x11-server-utils.x86_64 7.7-20.el7 @base xorg-x11-xauth.x86_64 1:1.0.9-1.el7 @base xorg-x11-xinit.x86_64 1.3.4-2.el7 @base xorg-x11-xkb-extras.x86_64 7.7-14.el7 @base xorg-x11-xkb-utils.x86_64 7.7-14.el7 @base xorg-x11-xkb-utils-devel.x86_64 7.7-14.el7 @base # yum list available | grep -i x11 | grep -v i686 baresip-x11.x86_64 2.11.0-1.el7 epel ghc-X11.x86_64 1.6.1.1-3.el7 epel ghc-X11-devel.x86_64 1.6.1.1-3.el7 epel ghc-X11-xft.x86_64 0.3.1-11.el7 epel ghc-X11-xft-devel.x86_64 0.3.1-11.el7 epel groff-x11.x86_64 1.22.2-8.el7 base hugs98-x11.x86_64 2006.09-19.el7 epel koules-x11.x86_64 1.4-16.el7 epel libNX_X11.x86_64 3.5.99.26-1.el7 epel libNX_X11-devel.x86_64 3.5.99.26-1.el7 epel libreoffice-x11.x86_64 1:5.3.6.1-25.el7_9 updates ocaml-x11.x86_64 4.05.0-6.el7 base perl-X11-GUITest.x86_64 0.28-1.el7 epel perl-X11-Protocol.noarch 0.56-18.el7 epel pulseaudio-module-x11.x86_64 10.0-6.el7_9 updates qt-x11.x86_64 1:4.8.7-9.el7_9 updates qt5-qtx11extras.x86_64 5.9.7-1.el7 base qt5-qtx11extras-devel.x86_64 5.9.7-1.el7 base qt5-qtx11extras-doc.noarch 5.9.7-1.el7 base root-graf-x11.x86_64 6.24.08-1.el7 epel vim-X11.x86_64 2:7.4.629-8.el7_9 updates x11vnc.x86_64 0.9.13-12.el7 epel x11vnc-javaviewers.noarch 0.9.13-12.el7 epel x3270-x11.x86_64 3.3.12ga12-5.el7_9 updates xorg-x11-apps.x86_64 7.7-7.el7 base xorg-x11-docs.noarch 1.6-7.el7 base xorg-x11-drivers.x86_64 7.7-6.el7 base xorg-x11-drv-ati.x86_64 19.0.1-3.el7_7 updates xorg-x11-drv-dummy.x86_64 0.3.7-1.el7.1 base xorg-x11-drv-evdev.x86_64 2.10.6-1.el7 base xorg-x11-drv-evdev-devel.x86_64 2.10.6-1.el7 base xorg-x11-drv-fbdev.x86_64 0.5.0-1.el7 base xorg-x11-drv-intel.x86_64 2.99.917-28.20180530.el7 base xorg-x11-drv-intel-devel.x86_64 2.99.917-28.20180530.el7 base xorg-x11-drv-keyboard.x86_64 1.9.0-1.el7 base xorg-x11-drv-libinput.x86_64 0.27.1-2.el7 base xorg-x11-drv-libinput-devel.x86_64 0.27.1-2.el7 base xorg-x11-drv-mouse.x86_64 1.9.2-2.el7 base xorg-x11-drv-mouse-devel.x86_64 1.9.2-2.el7 base xorg-x11-drv-nouveau.x86_64 1:1.0.15-1.el7 base xorg-x11-drv-openchrome.x86_64 0.5.0-3.el7.1 base xorg-x11-drv-openchrome-devel.x86_64 0.5.0-3.el7.1 base xorg-x11-drv-qxl.x86_64 0.1.5-5.el7 base xorg-x11-drv-synaptics.x86_64 1.9.0-2.el7 base xorg-x11-drv-synaptics-devel.x86_64 1.9.0-2.el7 base xorg-x11-drv-v4l.x86_64 0.2.0-49.el7 base xorg-x11-drv-vesa.x86_64 2.4.0-3.el7 base xorg-x11-drv-vmmouse.x86_64 13.1.0-1.el7.1 base xorg-x11-drv-vmware.x86_64 13.2.1-1.el7.1 base xorg-x11-drv-void.x86_64 1.4.1-2.el7.1 base xorg-x11-drv-wacom.x86_64 0.36.1-3.el7 base xorg-x11-drv-wacom-devel.x86_64 0.36.1-3.el7 base xorg-x11-font-utils.x86_64 1:7.5-21.el7 base xorg-x11-fonts-100dpi.noarch 7.5-9.el7 base xorg-x11-fonts-75dpi.noarch 7.5-9.el7 base xorg-x11-fonts-ISO8859-1-100dpi.noarch 7.5-9.el7 base xorg-x11-fonts-ISO8859-1-75dpi.noarch 7.5-9.el7 base xorg-x11-fonts-ISO8859-14-100dpi.noarch 7.5-9.el7 base xorg-x11-fonts-ISO8859-14-75dpi.noarch 7.5-9.el7 base xorg-x11-fonts-ISO8859-15-100dpi.noarch 7.5-9.el7 base xorg-x11-fonts-ISO8859-15-75dpi.noarch 7.5-9.el7 base xorg-x11-fonts-ISO8859-2-100dpi.noarch 7.5-9.el7 base xorg-x11-fonts-ISO8859-2-75dpi.noarch 7.5-9.el7 base xorg-x11-fonts-ISO8859-9-100dpi.noarch 7.5-9.el7 base xorg-x11-fonts-ISO8859-9-75dpi.noarch 7.5-9.el7 base xorg-x11-fonts-Type1.noarch 7.5-9.el7 base xorg-x11-fonts-cyrillic.noarch 7.5-9.el7 base xorg-x11-fonts-ethiopic.noarch 7.5-9.el7 base xorg-x11-fonts-misc.noarch 7.5-9.el7 base xorg-x11-resutils.x86_64 7.5-13.el7 epel xorg-x11-server-Xdmx.x86_64 1.20.4-21.el7_9 updates xorg-x11-server-Xephyr.x86_64 1.20.4-21.el7_9 updates xorg-x11-server-Xnest.x86_64 1.20.4-21.el7_9 updates xorg-x11-server-Xorg.x86_64 1.20.4-21.el7_9 updates xorg-x11-server-Xspice.x86_64 0.1.5-5.el7 base xorg-x11-server-Xvfb.x86_64 1.20.4-21.el7_9 updates xorg-x11-server-Xwayland.x86_64 1.20.4-21.el7_9 updates xorg-x11-server-common.x86_64 1.20.4-21.el7_9 updates xorg-x11-server-devel.x86_64 1.20.4-21.el7_9 updates xorg-x11-server-source.noarch 1.20.4-21.el7_9 updates xorg-x11-util-macros.noarch 1.19.0-3.el7 base xorg-x11-utils.x86_64 7.5-23.el7 base xorg-x11-xbitmaps.noarch 1.1.1-6.el7 base xorg-x11-xinit-session.x86_64 1.3.4-2.el7 base xorg-x11-xtrans-devel.noarch 1.3.5-1.el7 base *** I don't see any X11-xcb package # yum list installed | grep -i freetype freetype.x86_64 2.8-14.el7_9.1 @updates freetype-devel.x86_64 2.8-14.el7_9.1 @updates # yum list available | grep -i freetype | grep -v i686 freetype-demos.x86_64 2.8-14.el7_9.1 updates python-freetype.noarch 0.4.2-2.el7 epel # # yum list installed | grep -i xext libXext.x86_64 1.3.3-3.el7 @base libXext-devel.x86_64 1.3.3-3.el7 @base # yum list available | grep -i xext | grep -v i686 # # yum list installed | grep -i libsm libSM.x86_64 1.2.2-2.el7 @base libSM-devel.x86_64 1.2.2-2.el7 @base libsmartcols.x86_64 2.23.2-65.el7_9.1 @updates # yum list available | grep -i libsm | grep -v i686 libsmartcols-devel.x86_64 2.23.2-65.el7_9.1 updates libsmbclient.x86_64 4.10.16-20.el7_9 updates libsmbclient-devel.x86_64 4.10.16-20.el7_9 updates libsmbios.x86_64 2.3.3-8.el7 base libsmbios-cpp.x86_64 2.3.3-1.el7 epel libsmbios-cpp-devel.x86_64 2.3.3-1.el7 epel libsmbios-devel.x86_64 2.3.3-8.el7 base libsmi.x86_64 0.4.8-13.el7 base libsmi-devel.x86_64 0.4.8-13.el7 base # # yum list installed | grep -i libice libICE.x86_64 1.0.9-9.el7 @base libICE-devel.x86_64 1.0.9-9.el7 @base # yum list available | grep -i libice | grep -v i686 #