libqt5multimedia5-plugins is not installable together with -GLES variant of Qt

Asked by Ratchanan Srirattanamet

So, we at UBports are porting Ubuntu Touch to be based on Ubuntu 20.04 (the project started before Ubuntu 22.04 is released). And to provide enough functionalities to Qt/QML applications, we need to install libqt5multimedia5-plugins in our image. Also, since Android devices implement only OpenGL ES, we need to use -gles variant of Qt libraries.

Which leads to this error:

$ sudo apt install libqt5gui5-gles libqt5multimedia5-plugins
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libqt5gui5-gles : Conflicts: libqt5gui5 but 5.12.8+dfsg-0ubuntu2.1 is to be installed
E: Unable to correct problems, you have held broken packages.

This seems to be due to the following dependency chain:

i ubuntu-touch-core-hybris Depends ubuntu-touch-core
i A ubuntu-touch-core Depends ubuntu-sdk-libs
i A ubuntu-sdk-libs Depends libqt5multimedia5-plugins
i A libqt5multimedia5-plugins Depends libqt5multimediagsttools5 (>= 5.12.5)
i A libqt5multimediagsttools5 Depends libqt5multimediawidgets5 (>= 5.6.0~beta)
i A libqt5multimediawidgets5 Depends libqt5opengl5 (>= 5.12.8+dfsg~)
i A libqt5opengl5 Depends libqt5gui5 (>= 5.1.0)

And, for some reason, libqt5opengl5 doesn't have a -gles variant. I'm not sure why it's not provided, since the fact that libqt5opengl5 exists on armhf means that this package has a working -gles variant. And from a quick look in qtmultimedia code I don't think there's anything inherently OpenGL-only about it. The code seems to require libqt5opengl5 in order to support the use of QGL* deprecated classes.

Now, I'm not sure what we should do next. We have ability to fork and compile certain packages in our environment, which is what we planned to do with qtmultimedia to disable libqt5opengl5 support. However, I wonder if there's a better approach to this. I understand that at this point in 20.04 release, having the new package probably isn't the best idea. But perhaps this could be fixed officially in Ubuntu 22.10 and/or Debian 12, and then we can copy what's being done into our repository.

Question information

Language:
English Edit question
Status:
Answered
For:
Ubuntu qtmultimedia-opensource-src Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Manfred Hampl (m-hampl) said :
#1

The QT-gles packages have been removed in Bug #1712924

It seems that the instruction

"All reverse dependencies on these sources should be alternative. I.e. nothing can depend on libqt5gui5-gles, only on libqt5gui5 | libqt5gui5-gles."

has not been followed.

Neither do I not know whether this will help in your case, not which package dependencies would have to be changed.

Can you help with this problem?

Provide an answer of your own, or ask Ratchanan Srirattanamet for more information if necessary.

To post a message you must log in.