Change the build system to enable building with Qt5 or Qt6
Open, Needs TriagePublic

Description

As has already been said, this is a development step/tool, testing the waters to see what is missing to build against Qt6, things that need to be ported, things that might need to get implemented upstream ...etc.

Note that this isn't for general consumption yet, and that the KF libs so version is still 5 (it was discussed in the KF6 weekly meeting and the conclusion was that it would be too much hassle to switch this now before branching KF6), so it's strongly advisable to install this in a separate prefix from the rest of the system.

As part of this work, all Frameworks are being built with all deprecated KF code disabled (-DEXCLUDE_DEPRECATED_BEFORE_AND_AT=5.90.0 -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055a00).

It's advisable to build them in the same order as shown by kdesrc-build --list-build frameworks, if module A depends on module B, B will be listed before A (but it's not a definitive order, i.e. some Tier1 frameworks are listed way down the list if nothing depends on them in KF ...etc), i.e. you have to build the whole stack from the bottom up so that it all links against Qt6 libs (won't build otherwise).

First the Frameworks that can already be built with Qt6 by passing -DQT_MAJOR_VERSION=6 (@mlaurent made a huge chunk of them). For MR's that haven't been merged yet, links are posted.

Done (or with an open MR):

kcoreaddons
ki18n
karchive
kconfig
kdoctools
kwidgetsaddons
kcodecs
kauth
kdbusaddons
kguiaddons
kconfigwidgets
kitemviews
kwindowsystem
kiconthemes
kcompletion
kcrash
kservice
sonnet
attica
breeze-icons
kglobalaccel
ktextwidgets
knotifications
kxmlgui
kbookmarks
kjobwidgets
kwallet
solid
kio
kparts
kpackage
kactivities
kdeclarative
kidletime
kunitconversion
syntax-highlighting
kdnssd
kitemmodels
syndication
threadweaver
kded
kfilemetadata
knewstuff
kpty
baloo
bluez-qt
kactivities-stats
kcalendarcore
kcontacts
kdesu
kholidays
kimageformats
knotifyconfig
kpeople
kplotting
modemmanager-qt
networkmanager-qt
prison
ktexteditor
krunner
oxygen-icons5
kdav

kwayland
frameworkintegration
kirigami
kquickcharts
purpose

plasma-framework
qqc2-desktop-style

Non-KF:

polkit-qt-1 (done)

packagekit-qt
appstream-qt
dbusmenu-qt

No action needed:

kapidox

Deprecated Frameworks:

kdelibs4support
kdewebkit
khtml
kjsembed
kmediaplayer
kinit
kjs
kross
kdesignerplugin
kemoticons
kxmlrpcclient

ahmadsamir updated the task description. (Show Details)
alex added a subscriber: alex.Dec 25 2021, 7:03 PM

krunner (links against plasma-framework)

The dependent pats have been deprecated for quite a wile. In a deprecation free build nothing depends on plasma-frameworks

In T15127#268279, @alex wrote:

krunner (links against plasma-framework)

The dependent pats have been deprecated for quite a wile. In a deprecation free build nothing depends on plasma-frameworks

Maybe I didn't git pull (or maybe it's something else and I got things mixed up), I'll check again.

alex added a comment.Dec 25 2021, 7:46 PM

This should take care of the plasma-frameworks dependency: https://invent.kde.org/frameworks/krunner/-/merge_requests/83

ahmadsamir updated the task description. (Show Details)Dec 25 2021, 8:16 PM
ahmadsamir updated the task description. (Show Details)
In T15127#268282, @alex wrote:

This should take care of the plasma-frameworks dependency: https://invent.kde.org/frameworks/krunner/-/merge_requests/83

KRunner is now in the done list :)

ahmadsamir updated the task description. (Show Details)Dec 25 2021, 8:20 PM
mlaurent updated the task description. (Show Details)Dec 26 2021, 8:38 AM
mlaurent updated the task description. (Show Details)Dec 26 2021, 8:45 AM

what is the status of Phonon4Qt5 ? Will it deprecated or we need to add to this list ?

ahmadsamir added a subscriber: sitter.EditedDec 26 2021, 1:06 PM

what is the status of Phonon4Qt5 ? Will it deprecated or we need to add to this list ?

I don't know. @sitter ?

AFAIK, it's an optional dependency, but I don't know if it should be ported or not.

mlaurent added a comment.EditedDec 26 2021, 2:21 PM

We have a lot of apps which uses it.

vkrause updated the task description. (Show Details)Dec 26 2021, 4:32 PM
ahmadsamir updated the task description. (Show Details)Dec 26 2021, 4:35 PM
vkrause updated the task description. (Show Details)Dec 26 2021, 6:37 PM
ahmadsamir updated the task description. (Show Details)Dec 26 2021, 7:26 PM
ahmadsamir updated the task description. (Show Details)Dec 31 2021, 7:43 PM
mlaurent updated the task description. (Show Details)Jan 3 2022, 8:57 AM
mlaurent updated the task description. (Show Details)
mlaurent updated the task description. (Show Details)Jan 4 2022, 11:33 AM
mlaurent updated the task description. (Show Details)Jan 5 2022, 7:02 AM

Unless we want to port a whole bunch of apps to something else i guess we'll want to port phonon.

mlaurent updated the task description. (Show Details)Jan 17 2022, 7:49 AM
vkrause added a subscriber: vkrause.EditedJan 17 2022, 5:45 PM

Remaining issues:

Building but blocked by dependencies:

  • QQC2 Desktop Style: works, but blocked on Kirigami
  • Frameworks Integration: works but blocked on KNewStuff
  • KCMUtils: works but blocked on KDeclarative
  • KRunner: works, but CI build blocked on Plasma Framework as we cannot have different dependencies between KF5 and KF6 yet
mthw added a subscriber: mthw.Mar 5 2022, 11:25 AM
nicolasfella moved this task from In Progress to Done on the KF6 board.Apr 30 2022, 6:19 PM