Skip to content

Commit

Permalink
add new buildroot patch adding the missing xcb-util-cursor dependency
Browse files Browse the repository at this point in the history
preventing qt6base from correctly compiling with enabled XCB support.
  • Loading branch information
jens-maus committed Sep 21, 2024
1 parent 76e2478 commit aac5cb1
Show file tree
Hide file tree
Showing 6 changed files with 1,388 additions and 1 deletion.
1 change: 0 additions & 1 deletion buildroot-external/package/qutselect/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ config BR2_PACKAGE_QUTSELECT
select BR2_PACKAGE_JQ
select BR2_PACKAGE_LIBCURL
select BR2_PACKAGE_LIBCURL_CURL
select BR2_PACKAGE_XCB_UTIL_CURSOR
help
A Qt-based (unix) terminal server selection tool

Expand Down
20 changes: 20 additions & 0 deletions buildroot-patches/0009-qt6base-xcb-cursor.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--- buildroot/package/qt6/qt6base/Config.in.orig
+++ buildroot/package/qt6/qt6base/Config.in
@@ -65,6 +65,7 @@
select BR2_PACKAGE_XCB_UTIL_KEYSYMS
select BR2_PACKAGE_XCB_UTIL_RENDERUTIL
select BR2_PACKAGE_XCB_UTIL_WM
+ select BR2_PACKAGE_XCB_UTIL_CURSOR
select BR2_PACKAGE_LIBXKBCOMMON

comment "X.org XCB backend available if X.org is enabled"
--- buildroot/package/qt6/qt6base/qt6base.mk.orig
+++ buildroot/package/qt6/qt6base/qt6base.mk
@@ -207,6 +207,7 @@
xcb-util-image \
xcb-util-keysyms \
xcb-util-renderutil \
+ xcb-util-cursor \
xlib_libX11
else
QT6BASE_CONF_OPTS += -DFEATURE_xcb=OFF
Original file line number Diff line number Diff line change
@@ -0,0 +1,250 @@
config BR2_PACKAGE_QT6BASE
bool "qt6base"
select BR2_PACKAGE_DOUBLE_CONVERSION
select BR2_PACKAGE_LIBB2
select BR2_PACKAGE_PCRE2
select BR2_PACKAGE_PCRE2_16
select BR2_PACKAGE_ZLIB
help
Qt is a cross-platform application and UI framework for
developers using C++.

This package corresponds to the qt6base module, which
contains the base Qt libraries: QtCore, QtNetwork, QtGui,
QtWidgets, etc.

http://qt.io

if BR2_PACKAGE_QT6BASE

config BR2_PACKAGE_QT6BASE_CONCURRENT
bool "concurrent module"
help
This options enables the Qt6Concurrent library.

config BR2_PACKAGE_QT6BASE_DBUS
bool "DBus module"
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_MMU
select BR2_PACKAGE_DBUS
help
This option enables the D-Bus module.

config BR2_PACKAGE_QT6BASE_GUI
bool "gui module"
select BR2_PACKAGE_FREETYPE
# At least one graphic backend must be enabled, so enable
# linuxfb if nothing is enabled.
select BR2_PACKAGE_QT6BASE_LINUXFB if \
!BR2_PACKAGE_QT6BASE_XCB && \
!BR2_PACKAGE_QT6BASE_EGLFS
help
This option enables the Qt6Gui library.

if BR2_PACKAGE_QT6BASE_GUI

config BR2_PACKAGE_QT6BASE_VULKAN
bool "Vulkan support"
depends on BR2_INSTALL_LIBSTDCPP # vulkan-loader
depends on !BR2_STATIC_LIBS # vulkan-loader
depends on BR2_TOOLCHAIN_HAS_THREADS # vulkan-loader
select BR2_PACKAGE_VULKAN_HEADERS
select BR2_PACKAGE_VULKAN_LOADER
help
This option enables Vulkan support.

config BR2_PACKAGE_QT6BASE_LINUXFB
bool "linuxfb support"

config BR2_PACKAGE_QT6BASE_XCB
bool "X.org XCB support"
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_XLIB_LIBX11
select BR2_PACKAGE_LIBXCB
select BR2_PACKAGE_XCB_UTIL_IMAGE
select BR2_PACKAGE_XCB_UTIL_KEYSYMS
select BR2_PACKAGE_XCB_UTIL_RENDERUTIL
select BR2_PACKAGE_XCB_UTIL_WM
select BR2_PACKAGE_XCB_UTIL_CURSOR
select BR2_PACKAGE_LIBXKBCOMMON

comment "X.org XCB backend available if X.org is enabled"
depends on !BR2_PACKAGE_XORG7

config BR2_PACKAGE_QT6BASE_EGLFS
bool "eglfs support"
depends on BR2_PACKAGE_HAS_LIBEGL
depends on BR2_PACKAGE_HAS_LIBGBM
depends on BR2_PACKAGE_QT6_GL_SUPPORTS
select BR2_PACKAGE_QT6BASE_OPENGL

config BR2_PACKAGE_QT6BASE_DEFAULT_QPA
string "Default graphical platform"
help
Choose the default platform abstraction to use for graphical
applications (e.g xcb, linuxfb, eglfs, ...). If this is
empty, the default for your architecture will be used
(usually this is eglfs).

You can get a list of supported platforms by running a Qt
application with the option "-platform help" on your
target. You can choose a different platform at runtime with
the -platform option.

config BR2_PACKAGE_QT6BASE_OPENGL
bool "OpenGL support"
depends on BR2_PACKAGE_QT6_GL_SUPPORTS
help
This option enables OpenGL support.

comment "OpenGL support needs an OpenGL-capable backend"
depends on !BR2_PACKAGE_QT6_GL_SUPPORTS

if BR2_PACKAGE_QT6BASE_OPENGL

choice
prompt "OpenGL API"
help
Select OpenGL API.

config BR2_PACKAGE_QT6BASE_OPENGL_DESKTOP
bool "Desktop OpenGL"
depends on BR2_PACKAGE_HAS_LIBGL
help
Use desktop OpenGL.

config BR2_PACKAGE_QT6BASE_OPENGL_ES2
bool "OpenGL ES 2.0+"
depends on BR2_PACKAGE_HAS_LIBGLES
help
Use OpenGL ES 2.0 and later versions.

endchoice

endif

config BR2_PACKAGE_QT6BASE_FONTCONFIG
bool "fontconfig support"
select BR2_PACKAGE_FONTCONFIG
help
This option enables Fontconfig support using the system
fontconfig library.

config BR2_PACKAGE_QT6BASE_HARFBUZZ
bool "harfbuzz support"
select BR2_PACKAGE_HARFBUZZ if \
BR2_TOOLCHAIN_HAS_SYNC_4 && \
BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
help
This option enables HarfBuzz support (either system harfbuzz
if the toolchain supports __sync for 4 bytes, or the qt
provided one which avoids this dependency by using QAtomic).

config BR2_PACKAGE_QT6BASE_GIF
bool "GIF support"
help
This compiles and installs the plugin for GIF reading support.

config BR2_PACKAGE_QT6BASE_JPEG
bool "JPEG support"
select BR2_PACKAGE_JPEG
help
This option enables JPEG support using the system libjpeg
library.

config BR2_PACKAGE_QT6BASE_PNG
bool "PNG support"
select BR2_PACKAGE_LIBPNG
help
This option enables PNG support using the system libpng
library.

config BR2_PACKAGE_QT6BASE_WIDGETS
bool "widgets module"
help
This option enables the Qt6Widgets library.

config BR2_PACKAGE_QT6BASE_PRINTSUPPORT
bool "printing support"
# yes, print support needs widgets
depends on BR2_PACKAGE_QT6BASE_WIDGETS
help
This option enables printing support, optionally using CUPS
if available.

endif

config BR2_PACKAGE_QT6BASE_NETWORK
bool "network module"
select BR2_PACKAGE_LIBOPENSSL_ENABLE_PSK if BR2_PACKAGE_LIBOPENSSL
help
This options enables the Qt6Network library.

config BR2_PACKAGE_QT6BASE_SQL
bool "sql module"
help
This options enables the Qt6Sql library.

if BR2_PACKAGE_QT6BASE_SQL
config BR2_PACKAGE_QT6BASE_MYSQL
bool "MySQL Plugin"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_THREADS
select BR2_PACKAGE_MARIADB
help
Build MySQL plugin

comment "MySQL plugin needs a toolchain w/ C++, threads"
depends on BR2_USE_MMU
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_QT6BASE_PSQL
bool "PostgreSQL Plugin"
depends on BR2_USE_MMU
depends on !BR2_STATIC_LIBS
depends on BR2_USE_WCHAR
depends on !BR2_OPTIMIZE_FAST
select BR2_PACKAGE_POSTGRESQL
help
Build PostgreSQL plugin

comment "PostgreSQL plugin needs a toolchain w/ wchar, dynamic library"
depends on BR2_USE_MMU
depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR

comment "PostgreSQL plugin can't be built with optimize for fast"
depends on BR2_USE_MMU
depends on BR2_OPTIMIZE_FAST

config BR2_PACKAGE_QT6BASE_SQLITE
bool "SQLite plugin"
select BR2_PACKAGE_SQLITE
select BR2_PACKAGE_SQLITE_ENABLE_COLUMN_METADATA
help
Build SQLite plugin

endif

config BR2_PACKAGE_QT6BASE_SYSLOG
bool "syslog support"
help
Logs to the standard UNIX logging mechanism.

config BR2_PACKAGE_QT6BASE_TEST
bool "test module"
help
This options enables the Qt6Test library.

config BR2_PACKAGE_QT6BASE_TSLIB
bool "Enable Tslib support"
select BR2_PACKAGE_TSLIB
help
This options enables the Tslib plugin

config BR2_PACKAGE_QT6BASE_XML
bool "XML module"
help
This options enables the Qt6Xml library.

endif
Loading

0 comments on commit aac5cb1

Please sign in to comment.