[CMake and run time dependencies] Re: Do not split QML packages
Lisandro Damián Nicanor Pérez Meyer
perezmeyer at gmail.com
Tue Aug 15 20:27:22 BST 2023
El martes, 15 de agosto de 2023 10:26:02 -03 Carl Schwan escribió:
> On Tue, Aug 15, 2023, at 2:16 PM, Sandro Knauß wrote:
> > Hey,
> >
> > > The policy may have seemed a good idea back then when it was introduced,
but
> > > in my opinion the right thing to do [after it has been the cause of so
many
> > > issues that could have been avoided] would be to reconsider it and
ideally
> > > reach the conclusion of not splitting up QML packages into a multitude
of
> > > small-QML packages.
> >
> > The base problem, is that there is no proper way to detect QML
dependencies.
> > All distribution needs to manage them manually or have some of basic
scripting
> > to detect those dependencies. Keep in mind that build depdendecies !=
binary
> > dependencies.
>
> While technically not correct, marking the qml modules as build dependencies
has
> been very helpful for preventing this sort of issues, by creating explicit
compile
> failures when a new qml dependency is added. Since I started adding these
for
> Kirigami Addons and other QML libraries, I didn't get any report coming from
Fedora
> users (which was previously also a source of frustration).
>
> >
> > It won't help at all to have only one qml package per repo.
> >
> > I install kirigami-addons-dev (that will install all the qml packages) as
> > build dependency, this doesn't automatically make the binary depend on any
qml
> > package. So this list must managed by hand (independently if all qml is
> > shipped in one or multiple packages). Okay it is easier to just add one
> > package, but in the end it is error prune to do this all by hand. And a
> > standardized automatic way would help a lot.
>
> If this can help, it wouldn't be difficult to maintain a list of import names
for each app
> and store it as a file in the repository and ensure with a CI script that the
list is keep
> up to date. E.g. something generated with your grep script or something
similar. I have:
>
> grep -hre '^import org.kde' -e '^import Qt' src | sed 's/import //' | sed
's/as .*$//' | sed 's/ [[:digit:]]*\.[[:digit:]]*//' | sort | uniq
>
> We could even use qmldom for this but that might bit over-engineered. But in
any case,
> it would put the responsibility of keeping the list of dependencies up to
date on the
> app developers and then we can blame ourselves and not distros when
something is
> missing ;)
Errors happen at any level, it's not a matter of "blaming", if we find a way in
which all of us can be more or less happy with it then the better. To be
honest this is for me a specification error/omission at QML-level, and maybe
"upstream" here should be Qt itself. Note I am not blaming them, I am just
saying we might want to create a solution that can be pushed to Qt itself.
This issue does not only appears on distributions, it is also an issue that
happens at other levels too even in non-Debian environments. I see it
frequently at $JOB. Sometimes shipping "everything just in case" is simply not
the easiest solution.
Now, speaking with a "dev" hat on, I should really find the time to see what
others did and check what can be done. It's easier to speak^w write an email
rather than writing code :-D
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/distributions/attachments/20230815/24010e26/attachment.sig>
More information about the Distributions
mailing list