[Buildroot] [PATCH 1/2] package/qt5base: fix race with libxkbcommon

Arnout Vandecappelle arnout at mind.be
Mon Mar 28 19:54:24 UTC 2022



On 28/03/2022 13:14, Quentin Schulz wrote:
> From: Quentin Schulz <quentin.schulz at theobroma-systems.com>
> 
> qt5wayland package currently has a bug if the xkbcommon Qt config is not
> enabled which highlighted a race issues between qt5base, libxkbcommon
> and qt5wayland.
> 
> qt5wayland has a dependency on libxkbcommon package if it's enabled.
> qt5base only has a dependency on libxkbcommon if xcb support is to be
> enabled.
> 
> If libxkbcommon package is built before qt5base, qt5base will detect it
> during its configure step and enable the Qt config accordingly. This
> will make it available to qt5wayland afterwards, even if xcb support is
> not enabled in Buildroot Kconfig.
> 
> However, if qt5base is built before libxkbcommon is, qt5base will not
> advertise support of xbcommon feature to qt5wayland (which will fail its
> build because of a bug in the source code).
> 
> Since the package build order should not impact the outcome of the
> build, let's explicit the dependency if and only if libxkbcommon package
> is to be compiled at some point in time so that at least this feature is
> not susceptible to races.
> 
> Cc: Quentin Schulz <foss+buildroot at 0leil.net>
> Signed-off-by: Quentin Schulz <quentin.schulz at theobroma-systems.com>
> ---
>   package/qt5/qt5base/qt5base.mk | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
> index 4418f0d3ba..891635ad35 100644
> --- a/package/qt5/qt5base/qt5base.mk
> +++ b/package/qt5/qt5base/qt5base.mk
> @@ -168,6 +168,11 @@ QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_LINUXFB),--enable-linuxfb,-
>   QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),-directfb,-no-directfb)
>   QT5BASE_DEPENDENCIES   += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),directfb)
>   
> +ifeq ($(BR2_PACKAGE_LIBXKBCOMMON),y)
> +QT5BASE_CONFIGURE_OPTS += -xkbcommon
> +QT5BASE_DEPENDENCIES   += libxkbcommon
> +endif
> +
>   ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y)
>   QT5BASE_CONFIGURE_OPTS += -xcb
>   QT5BASE_CONFIGURE_OPTS += -xkbcommon

  The existing entries should be removed.

  Applied both to master with that fixed, thanks.

  Regards,
  Arnout





More information about the buildroot mailing list