openwrt / openwrt/video

qt5base: eglfs plugin packaging failure on multiple architectures due to optional KMS support

Open
#104 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Makefile
Stars
90
Forks
97
Avg merge
5d 19h
Merged PRs (30d)
13

Description

Related Pull Request: https://github.com/openwrt/video/pull/72

I'm working on the PR above to add qt5serialport and qt5serialbus packages, but I've encountered a systematic build failure in qt5base related to the eglfs plugin packaging.

The Problem
The qt5base package currently fails to build on every architecture tested in the CI (including x86_64, ARM, MIPS, RISC-V, and PowerPC) during the packaging phase.

The Makefile assumes libQt5EglFsKmsSupport.so is always created when EGLFS is enabled. However, Qt5 treats KMS/DRM support as a conditional feature within the EGLFS plugin. Even when libdrm is available, the internal feature tests for KMS fail during the configuration phase across all targets in the current CI environment. Consequently, the library is not generated, leading to the following error during the install phase:

cp: cannot stat '.../ipkg-install/usr/lib/libQt5EglFsKmsSupport.so*': No such file or directory

Considerations
Since Qt5's feature detection is opportunistic, the set of generated libraries for EGLFS varies depending on the configuration results.

One possible way to address this could be making the installation of these specific components conditional in the Makefile (e.g., using wildcard checks), ensuring the build completes with the available backends.

For example:

define Package/qt5base-plugin-platforms-eglfs/install
    $(if $(wildcard $(PKG_INSTALL_DIR)/usr/lib/libQt5EglFsKmsSupport.so*),$(call Build/Install/Libs,$(1),libQt5EglFsKmsSupport))
    $(call Build/Install/Plugins,$(1),platforms,libqeglfs)
    ...
endef

However, I'm opening this issue to discuss the best approach: should we try to enforce the presence of KMS support for these targets, or should the packaging be made more flexible to accommodate different build outputs?

I would appreciate your feedback on how to best handle these optional Qt5 components within the OpenWrt framework.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the qt5base packaging Makefile and the install definition for the EGLFS platform plugin. Reproduce the packaging failure in CI or on an affected architecture, then inspect which EGLFS libraries Qt generates when KMS support is unavailable. Done means qt5base packages successfully without assuming libQt5EglFsKmsSupport.so exists, while still installing the available EGLFS plugin.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.