Displaying qt applications on wayland using qtwayland is complicated

  • Open
  • quality assurance status badge
Details
3 participants
  • Morgan Smith
  • Josselin Poiret
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Morgan Smith
Severity
normal
M
M
Morgan Smith wrote on 24 Aug 2023 19:48
(address . bug-guix@gnu.org)
DM5PR03MB31631C2B2E4D8ACE2E743EF5C51DA@DM5PR03MB3163.namprd03.prod.outlook.com
Hello guix!

Before I get into the actual bug I'm trying to report, I have to bring up 2
other complications.

1. qtwayland@6 currently doesn't build due a test failure. So in this bug I'm
either using "--without-tests=qtwayland" on the command line or
"((options->transformation '((without-tests . "qtwayland"))) qtwayland)" in
manifests.

2. The way we deal with multiple package versions in a profile is really weird.
"guix shell package@1 package@2" works as expected (both versions available).
"guix install package@1 package@2" silently installs only the newer one.
Putting package@1 and package@2 in a manifest yields: "error: profile contains
conflicting entries for package"


OK with that out of the way, onto my actual bug report:

I use wayland. I also use some qt applications. For a qt application to
display on wayland it either needs the qtwayland plugin available, or it can
use some x11 fallback thingy. The qtwayland plugin is the way I'd like my qt
applications to render.

Some applications include qtwayland in their inputs like okular and work fine
out of the box. Most applications (like openscad and jami) do not.

This is fine because we can simply install qtwayland into our profile. Not
everyone uses wayland so this actually seems like the appropriate thing to do.
Unfortunately, openscad uses qtwayland@5 and jami uses qtwayland@6. Due to the
above explained complication, I cannot simply install both into my profile.

We could make qtwayland@5 and qtwayland@6 into two completely different
packages and that would solve my problem. Doing "guix shell qtwayland@5
qtwayland@6 qtbase" (jami wants qtbase for some reason), allows me to run both
openscad and jami. So clearly qtwayland@5 and qtwayland@6 don't interfere with
each other.

Of course the more user friendly option would be to simply add the appropriate
qtwayland to the inputs of a package using the qt-build-system. Or maybe even
make it propagated from qtbase somehow?

guix size qtwayland@5 = 1203.1 MiB
guix size qtbase@5 = 1171.5 MiB

guix size qtwayland@6 = 1271.7 MiB
guix size qtbase@6 = 1190.2 MiB

Well if I understand how "guix size" works, then adding qtwayland would only
add 30 or 80 MiB, which in my opinion isn't a lot. My vote is on just adding
qtwayland to all wayland packages (at the cost of a full qt rebuild).
J
J
Josselin Poiret wrote on 25 Aug 2023 13:20
(address . maxim.cournoyer@gmail.com)
874jknv05x.fsf@jpoiret.xyz
Hi Morgan,

Morgan Smith <Morgan.J.Smith@outlook.com> writes:

Toggle quote (4 lines)
> Well if I understand how "guix size" works, then adding qtwayland would only
> add 30 or 80 MiB, which in my opinion isn't a lot. My vote is on just adding
> qtwayland to all wayland packages (at the cost of a full qt rebuild).

Just dropping by to say that I agree with this!

Best,
--
Josselin Poiret
-----BEGIN PGP SIGNATURE-----

iQHEBAEBCgAuFiEEOSSM2EHGPMM23K8vUF5AuRYXGooFAmTojmoQHGRldkBqcG9p
cmV0Lnh5egAKCRBQXkC5Fhcair9SC/wOkTohjqoR749oY1nUoop2aM81F8t8M57t
p7TghTm2v2SFmL7b19Zw5gm83dLq4MNja3gkT6hAlkwZ3yaX1VmOb5hUOB53ncom
0hFq2/ogL3Oko/8iIt/vKwcOxUoGvSwp73CAu2+jVEbkT+KylkTo+Q+1Gvbm6hRI
euqbc1KNGTuydt3lDO9vFe8R5QAY/4xKoCT2hGetBJWrXGYElRopnmPQRawfuyFN
sdDIAPY0y2dlUoMI2S40PSp7lJsoMG/4g17Blv5cX+mpdPBPvSGulvbdDS6/Ip4f
IFHepCmdO8OGKuW3gr9Y5SU82XQSrlD40AFYol65qsVtscs8Inwqo9DZpUQF2u8S
oUrO+Dyodh2BQ8EvcHFoEChZ+nqSQXG8ZnkmTzY/sK6D9W4d1UKA0KjNEBrL66Y+
MEYMTVVyZh8rKl45UJsVwAhqfSIq/YvZqZ2rGGtQJBeCpkLaPUO//7mNvA5gmL70
JBwAUIXTOF4waU+FEApEJ74owimyfkI=
=+0r5
-----END PGP SIGNATURE-----

M
M
Maxim Cournoyer wrote on 26 Aug 2023 18:20
(name . Morgan Smith)(address . Morgan.J.Smith@outlook.com)(address . 65508@debbugs.gnu.org)
87edjpojwv.fsf@gmail.com
Hi,

Morgan Smith <Morgan.J.Smith@outlook.com> writes:

Toggle quote (48 lines)
> Hello guix!
>
> Before I get into the actual bug I'm trying to report, I have to bring up 2
> other complications.
>
> 1. qtwayland@6 currently doesn't build due a test failure. So in this bug I'm
> either using "--without-tests=qtwayland" on the command line or
> "((options->transformation '((without-tests . "qtwayland"))) qtwayland)" in
> manifests.
>
> 2. The way we deal with multiple package versions in a profile is really weird.
> "guix shell package@1 package@2" works as expected (both versions available).
> "guix install package@1 package@2" silently installs only the newer one.
> Putting package@1 and package@2 in a manifest yields: "error: profile contains
> conflicting entries for package"
>
>
> OK with that out of the way, onto my actual bug report:
>
> I use wayland. I also use some qt applications. For a qt application to
> display on wayland it either needs the qtwayland plugin available, or it can
> use some x11 fallback thingy. The qtwayland plugin is the way I'd like my qt
> applications to render.
>
> Some applications include qtwayland in their inputs like okular and work fine
> out of the box. Most applications (like openscad and jami) do not.
>
> This is fine because we can simply install qtwayland into our profile. Not
> everyone uses wayland so this actually seems like the appropriate thing to do.
> Unfortunately, openscad uses qtwayland@5 and jami uses qtwayland@6. Due to the
> above explained complication, I cannot simply install both into my profile.
>
> We could make qtwayland@5 and qtwayland@6 into two completely different
> packages and that would solve my problem. Doing "guix shell qtwayland@5
> qtwayland@6 qtbase" (jami wants qtbase for some reason), allows me to run both
> openscad and jami. So clearly qtwayland@5 and qtwayland@6 don't interfere with
> each other.
>
> Of course the more user friendly option would be to simply add the appropriate
> qtwayland to the inputs of a package using the qt-build-system. Or maybe even
> make it propagated from qtbase somehow?
>
> guix size qtwayland@5 = 1203.1 MiB
> guix size qtbase@5 = 1171.5 MiB
>
> guix size qtwayland@6 = 1271.7 MiB
> guix size qtbase@6 = 1190.2 MiB

This size is a bit misleading for Qt 6, which recently regressed by
referencing Python, bloating it's size by about 100 MiB, IIRC (now fixed
on the telephony-team branch). Since qtwayland correctly works as a
plugin when installed to a user profile, it seems we should leave it
that way, but I agree we should fix the uses cases of installing
multiple versions of the same package in the same profile.

--
Thanks,
Maxim
?