Amarok/Development/KF5port

From KDE Community Wiki

This page is meant as a guide to port Amarok to Qt5/Frameworks5 and Plasma5.

Stages of port

The broad plan involves the porting of the code-base to compile by using KF5::KDELibs4Support. After this the plan involves porting Amarok away from KF5::KDELibs4Support. We are still in the first part now i.e the current aim is to let Amarok compile by using KF5::KDELibs4Support(with LOTS and LOTS of depreciated warnings).

  1. Restoring build on Qt5/KF5: Port of cmake files and all code, so everything builds at least again by using KF5::KDELibs4Support. In this part the primary focus is on building it back again. INCOMPLETE
  2. All tests should pass after the above has been done. TODO
  3. Porting away from KF5::KDELibs4Support. TODO

General

The commits containing the ongoing port of Amarok to Qt5/KF5 are made to the kf5 branch.


Todo overview

  • The inclusions of header should be reorganize to follow the rule <QXxxx>, then <KXxxx>, then "Xxxx.h" and follow the alphabetical order.
  • While porting some KUrl to QUrl, some methods were method(KUrl) and used as method(myString) with myString being a QString. It doesn't work anymore: now the method is used as method( QUrl(myString) ) which is not so nice, although it compiles.

Status

The current status of the port of the individual methods can be found here: Status page

New Dependencies

If you would like to build it then you have to install the following development packages (apart from the existing dependencies like Taglib, zlib, googlemock, etc ) containing the following components for your respective system :

Dependency Version
Extra CMake Modules (ECM) 1.7.0
Qt5::Core
Qt5::DBus
Qt5::Widgets
Qt5::Test
Qt5::Gui
Qt5::Svg
Qt5::Xml
Qt5::Script
Qt5::Sql
Qt5::Quick
Qt5::Qml
Qt5::ScriptTools
Qt5::WebKitWidgets
Qca-Qt5
Phonon4Qt5
KF5::CoreAddons
KF5::Solid
KF5::Codecs
KF5::I18n
KF5::ThreadWeaver
KF5::KDELibs4Support
KF5::Codecs
KF5::I18n
KF5::ThreadWeaver
KF5::Plasma
KF5::PlasmaQuick
KF5::KCMUtils
KF5::NewStuff
KF5::TextEditor
KF5::GlobalAccel
KF5::KIO
KF5::NotifyConfig
KF5::Archive
KF5::DNSSD

This list has been kept dynamic to avoid pulling unwanted dependencies which means more components will be added when the need arises.

Extra

Some references: