Accepting request 867108 from home:Vogtinator:qmlautoreqprov

- Convert the opt-in for qml.req to an opt-out

OBS-URL: https://build.opensuse.org/request/show/867108
OBS-URL: https://build.opensuse.org/package/show/KDE:Qt5/qml-autoreqprov?expand=0&rev=5
This commit is contained in:
Fabian Vogt 2021-01-30 14:18:41 +00:00 committed by Git OBS Bridge
parent de0d05e17e
commit 67bed737e7
3 changed files with 12 additions and 14 deletions

17
README
View File

@ -17,12 +17,11 @@ TLDR for packagers
Packages with system-wide QML modules get Provides like Packages with system-wide QML modules get Provides like
`qt5qmlimport(QtQuick.Controls.2) = 15` automatically. Imports in .qml files `qt5qmlimport(QtQuick.Controls.2) = 15` automatically. Imports in .qml files
map to RPM requires like `qt5qmlimport(QtQuick.Controls.2) >= 15`, but this is map to RPM requires like `qt5qmlimport(QtQuick.Controls.2) >= 15`. This can be
currently opt-in and has to be enabled with `%global %_enable_qml_requires 1` disabled with `%global %_disable_qml_requires 1` in .spec files. It's important
in .spec files. After adding that, it's important to check that all to check that all dependendencies are fulfilled, as in some cases a needed
dependendencies are fulfilled, as in some cases a needed `qmlimport` Provides `qmlimport` Provides is missing. See the "Internal and private exports" section
is missing. See the "Internal and private exports" section for how to deal with for how to deal with that.
that.
How the QML engine imports modules How the QML engine imports modules
---------------------------------- ----------------------------------
@ -75,12 +74,6 @@ possible per subpackage):
`%global %__qml_requires_opts --qtver 5` `%global %__qml_requires_opts --qtver 5`
To avoid that missing qmlimport provides (see "Internal and private exports")
make previously working packages unresolvable, generation of requires is opt-in
and needs to be enabled by defining `%_enable_qml_requires`:
`%global %_enable_qml_requires 1`
Currently, only .qml files directly part of the package are handled, so if Currently, only .qml files directly part of the package are handled, so if
those are part of a resources file embedded into an executable or library, they those are part of a resources file embedded into an executable or library, they
will not be read. Making this possible needs more research and effort. will not be read. Making this possible needs more research and effort.

View File

@ -1,3 +1,8 @@
-------------------------------------------------------------------
Wed Jan 27 08:54:39 UTC 2021 - Fabian Vogt <fabian@ritter-vogt.de>
- Convert the opt-in for qml.req to an opt-out
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Jan 15 15:40:18 UTC 2021 - Fabian Vogt <fabian@ritter-vogt.de> Fri Jan 15 15:40:18 UTC 2021 - Fabian Vogt <fabian@ritter-vogt.de>

View File

@ -1,4 +1,4 @@
%__qml_requires %{_rpmconfigdir}/qml.req %__qml_requires %{_rpmconfigdir}/qml.req
%__qml_path \\.qml$ %__qml_path \\.qml$
# Exclude everything unless _enable_qml_requires is set # Exclude everything if _disable_qml_requires is set
%__qml_exclude_path %nil%{?!_enable_qml_requires:\\.qml$} %__qml_exclude_path %nil%{?_disable_qml_requires:\\.qml$}