Skip to content

Conversation

@mirko
Copy link
Member

@mirko mirko commented May 12, 2025

No description provided.

@mirko mirko force-pushed the mirko/qt5-rework branch 8 times, most recently from 9021a4a to 78000b5 Compare May 18, 2025 19:47
mirko and others added 22 commits May 22, 2025 10:58
Main objective is to make sure every Qt5 related file is clearly about
Qt version *5*. For files which do not contain the version number, make
sure the path contains it (e.g. suffixing the directory paths with
"/qt5"). This is done for host and target builds and accounts for the
following paths:
/bin -> /bin/qt5
/share -> /share/qt5
Every file inside /lib (except /lib/qt5/* which is covered by the
archdata-directory) is already versioned by its respective file names.
Keep target specific host builds inside $(STAGING_DIR)/host.
Without that patch the build rule including the input component depends
on other options being enabled, such as e.g. GUI support.
Since our host build is headless and we only need the input component
which actually does not have any such dependencies, we patch to force-
build it.

input component being present is a requirement for e.g. qt5tools
building certain host tools - such as 'kmap2qmap'.
Qt takes care of wrapping cross compiling paths by its own
qmlplugindump appears to be called at the end of `make`-invocation for
qmake generated projects.

If it fails with exit code != 0 the OpenWrt build fails.

qmlplugindump is apparently needed as a host tool, but can not be
(easily) packaged as a host tool.

The project file states:

  "qmlplugindump cannot be a build tool, because it loads target plugins."

which seems pretty mysterious to me.

So it's needed as a requirement on the host system, and/but natively
installed (newer) versions - at with my Debian's version - started to
fail with:

  "QQmlComponent: Component is not ready"

I have no idea what qmlplugindump actually does or why it's needed.

It seems to do no harm to not invoke qmlplugindump - so
hack-not-even-fix it by just overriding each qmlplugindump invocation.
Allow 3rd party software to use cmake to build against Qt5
Allow installing all plugins via wildcard ("*")
They shouldn't be necessary, as nothing will or at least should link
against the resulting shared objects, as they aren't regular ones but
plug-ins.
However cmake-based projects complain about them missing - hence
provide/install them.
and use that for files coming out of an qt5base install already.
Under certain circumstances udev appears to be responsible (or part of)
a race condition, where input devices are treated and behave differently
than expected.

An attempt of documenting this issue:
https://bugreports.qt.io/browse/QTBUG-86630
Packages should now include the file directly from within the qt5
directory part of the feed..
mirko added 16 commits May 22, 2025 10:58
That way projects not using qmake (but cmake) can still import all qt5
specific variables and helper functions, without its routines being
overriden by the qmake specific ones.
qt5quick2-2d-sw-renderer-GLstubs was a hack back then to get QtQuick
running on hardware without native gles2 support, but isn't needed
for recent versions anymore.
given qt5/common.mk is now included earlier, some variables such as
CONFIGURE_PREFIX are not yet defined. Since it's always /usr anyway,
set it statically.
This is trying to address the following issue: We pass variables to
qmake which get appended to qmake specific vars in mkspecs/*/qmake.conf.
However projects might invoke qmake once again, however without passing
respective variables along.
We might need to consider hard-coding the flags inside qmake.conf.
This directive is for target specific host files which can only result
in qmake builds.
strip '-' from PKG_NAME to determine official module name, but keep them
inside PKG_NAMEs for readibility (same as we still have the major
version number inside PKG_NAMEs)
Determined by PKG_NAME starting with "qt5".
qtdeclarative always has been and still is the official module name.
cmake errors out about referenced files not being found otherwise.
@mirko mirko force-pushed the mirko/qt5-rework branch from c7f6454 to eb56ee0 Compare May 22, 2025 12:16
@mirko mirko merged commit 22e17dc into openwrt:master May 22, 2025
0 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant