OpenVoiceOS / ovos-shell

Apache License 2.0
2 stars 4 forks source link

Supporting Qt5 and Qt6, Images and Dependencies Issues #29

Open AIIX opened 1 year ago

AIIX commented 1 year ago

Image and Mycroft-GUI issues:

Multimedia Framework Issues:

Major changes:

JarbasAl commented 1 year ago

copy pasting from chat

is_qt6_available and is_qt5_available could be helper methods in ovos_utils to be used to conditionally select QML files in skills, if skill devs are willing to maintain compat

with the qt6 move i encourage skills to keep a qt5 version qml file and load it conditionally

at same time skill.json spec is being extended for skills to identify what they need, so OSM can be smart about it and refuse to install/fallback to older skill versions

lets assume mycroft-core sticks to qt5 in all their images etc, if we want skills to be cross compatible we will need skills to explicitly support both, at least as part of a transition period

AIIX commented 1 year ago

is_qt6_available and is_qt5_available is not going to work on many distributions, as distributions might ship both qt6 and qt5 packages during the migration phase to qt6 (currently as done by manjaro) , ovos-shell / mycroft-gui library will also only compile under a single qt version, so even if the distribution is shipping qt5 and ovos-shell and mycroft-gui lib have been built against qt6, qt5 skills will not load and same for the other way around.

There is no naming schema in QML to differentiate between QT5 and QT6 qml files either, and qml files targeting Qt6 cannot live under the same folder as qml files targeting Qt5.

Skills specifically need to target Qt5 and Qt6. Qt5 will eventually fully be replaced by Qt6 and a better approach here would be to let the distribution / setup specifically target which UI version to load and use during the migration phase to avoid detection of wrong QT versions.

Qt6 resource files during the migration phase in skills will be located under the "ui6" folder in skills, Qt5 resource files during the migration phase will continue to live under "ui" folder, whenever Qt5 support is fully dropped the "ui6" folder will replace the "ui" spec'd folder in skills.

Images / Setups targeting qt6 during the migration phase can simply add "qt_version: 6" to the GUI config under mycroft.conf to load qt6 resource files, PR for this is at https://github.com/OpenVoiceOS/OVOS-workshop/pull/50

AIIX commented 1 year ago

Also updating the issue as the timeline to switch / support Qt6 setups has shortened, KDE frameworks have fully switched all master branches to QT6 and will see a stable release in the coming weeks

What do these changes affect:

Proposed changes for OVOS Shell:

JarbasAl commented 1 year ago

conversation happening in other PRs, but here is a comment raising some points to keep issues connected

https://github.com/OpenVoiceOS/OVOS-workshop/pull/50#issuecomment-1422682703

AIIX commented 1 year ago
AIIX commented 1 year ago

Skills Port Status (To be updated here on every milestone):

j1nx commented 1 year ago

Looked into the status of QT6 within Buildroot. Looks like it might take some time, so guess switching the Buildroot image over to QT6 will not happen until further down the road this year.

At the moment only some base QT6 packages are merged into the master branch; https://github.com/buildroot/buildroot/tree/master/package/qt6

There is work going on, but I do not see to much new packages around the corner; https://patchwork.ozlabs.org/project/buildroot/list/?series=&submitter=&state=*&q=qt6&archive=&delegate=

JarbasAl commented 1 year ago

this is not yet completed.....