gcompris / GCompris-qt

GCompris in Qt Quick - Mirror of https://invent.kde.org/education/gcompris
218 stars 167 forks source link

Can't compile, missing qtquickcontrols2-5-private-dev package on Raspbian Bullseye (Debian 11) #280

Closed pushing-boulders closed 2 years ago

pushing-boulders commented 2 years ago

Good day GCompris community. How are you today?

I am having some issues when trying to compile the latest GCompris code on our Raspberry Pi 400s.

A couple of months ago, we were no longer able to compile GCompris on Buster due to some newer versions of dependencies being required. After updating Raspberry Pi 400s to Bullseye, we were still (initially) unable to compile the latest GCompris due to the missing qtquickcontrols2-5-private-dev package for compiling QtQuickCalendar that is required for a couple of activities.

I saw this conversation related to the same: https://www.mail-archive.com/pkg-kde-talk@alioth-lists.debian.net/msg00599.html

However, the package shared as a solution is not available for Debian 11 (Bullseye): https://packages.debian.org/search?keywords=qtquickcontrols2-5-private-dev&searchon=names&suite=all&section=all

And the current qtquickcontrols2-5-dev dependency is only version 5.15.2+dfsg-2 on Bullseye, so I was unable to try and install any of these other experimental packages.

I played around and was able to extract the headers from these packages, copy them manually, and I was able to compile. I am not sure if every Raspberry Pi user would want to follow this same path to compile the latest and greatest GCompris version. I also don't know if I am making issues for myself in the future by copying the files in this manner.

To that end, a few questions:

  1. It was mentioned in the mailinglist thread that it was possible to exclude these two activities. What is the easiest way do that for the two QtQuickCalendar activities?
  2. Is there a timeframe for when the new QtQuickControls 2 will be implemented for these two activities?
  3. Is there anything I can do to help with this? I am not a developer, but depending on the work that needs to be done, I may be able to help update the code.

Thank you again for all that you do.

petitlapin commented 2 years ago

Hi, welcome!

Is there a possibility than "soon", Bullseye adds the missing package (qtquickcontrols2-5-private-dev)? I'm not sure on how it works but if it uses 5.15.2+dfsg-2 now, switching to 5.15.2+dfsg-3 or 5.15.2+dfsg-4 should be possible and it would add the missing package?

On my side, to compile for the RaspberryPi package, I compiled Qt from source and it's distributed inside the package. I haven't tested yet with the latest source but it should not be an issue (well, I hope :)).

It was mentioned in the mailinglist thread that it was possible to exclude these two activities. What is the easiest way do that for the two QtQuickCalendar activities?

I didn't add the option to not compile the qtquickcalendar but I can take a look if needed to do a proper exclusion (I write below how to temporarely not compile it, but it's more a patch than a clean fix).

Is there a timeframe for when the new QtQuickControls 2 will be implemented for these two activities?

Qt added back the Calendar component in Qt6.3. So when we'll switch to it, we can remove this dependency. Until then, we had to copy the code on our side and unfortunately, it depends on private modules...

Is there anything I can do to help with this? I am not a developer, but depending on the work that needs to be done, I may be able to help update the code.

For now, you can comment https://invent.kde.org/education/gcompris/-/blob/master/CMakeLists.txt#L417 and to not see the activities, add enabled: false in https://invent.kde.org/education/gcompris/-/blob/master/src/activities/calendar/ActivityInfo.qml#L30 and https://invent.kde.org/education/gcompris/-/blob/master/src/activities/find_the_day/ActivityInfo.qml#L30

pushing-boulders commented 2 years ago

Thank you so much for the quick response and details on compiling without these two activities, petitlapin.

Compiling GCompris is something our children were excited about doing each release, so when there was this hiccup in the process, we set out to find a solution. Thank you again for this information. We'll check compiling Qt directly from the source to see if that will work for us as well.

Thankfully, for now, I was able to rip out the headers from another package and was able to get GCompris to compile.

Agreed, I am not sure how it works either, but yes, the qtquickcontrols2-5-dev package could be updated and then possibly allow for one of these experimental packages to work as well. Or qtquickcontrols2-5-private-dev may be released for Bullseye, too.

I forgot that GCompris has additional binaries available on its web site.

Thank you again and I will give the Qt option a try as well.

petitlapin commented 2 years ago

Do you still have any issue or should we close this bug?

petitlapin commented 2 years ago

I've updated the code to not use anymore the private packages (https://invent.kde.org/education/gcompris/-/commit/505b005d837113f985f5edf3450a1d25220f03d0). So it should be fine now.

Cheers,

Johnny

pushing-boulders commented 2 years ago

@petitlapin My apologies for the delay. Thank you so much for address this issue. All is well when we clone and compile on the Raspberry Pi.