public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/kde:master commit in: kde-apps/marble/, kde-apps/ksystemlog/, kde-apps/kreversi/, kde-apps/konsole/, ...
@ 2019-11-10 17:11 Andreas Sturmlechner
  0 siblings, 0 replies; only message in thread
From: Andreas Sturmlechner @ 2019-11-10 17:11 UTC (permalink / raw
  To: gentoo-commits

commit:     8f795471321d535b10c7395612bccc6824a33094
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Mon Nov  4 20:56:06 2019 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Nov 10 17:06:54 2019 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=8f795471

kde-apps: Port 9999 to ecm.eclass and kde.org.eclass

Added/updated HOMEPAGE in many places.

Package-Manager: Portage-2.3.78, Repoman-2.3.17
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../akonadi-calendar/akonadi-calendar-9999.ebuild  |  55 +++++----
 .../akonadi-contacts/akonadi-contacts-9999.ebuild  |  49 ++++----
 .../akonadi-import-wizard-9999.ebuild              |  51 ++++----
 kde-apps/akonadi-mime/akonadi-mime-9999.ebuild     |  37 +++---
 kde-apps/akonadi-notes/akonadi-notes-9999.ebuild   |  19 +--
 kde-apps/akonadi-search/akonadi-search-9999.ebuild |  47 ++++----
 kde-apps/akonadi/akonadi-9999.ebuild               |  60 +++++-----
 kde-apps/akonadiconsole/akonadiconsole-9999.ebuild |  64 +++++-----
 kde-apps/akregator/akregator-9999.ebuild           |  76 ++++++------
 kde-apps/analitza/analitza-9999.ebuild             |  26 +++--
 kde-apps/ark/ark-9999.ebuild                       |  59 +++++-----
 kde-apps/artikulate/artikulate-9999.ebuild         |  43 ++++---
 kde-apps/audiocd-kio/audiocd-kio-9999.ebuild       |  31 ++---
 kde-apps/baloo-widgets/baloo-widgets-9999.ebuild   |  26 +++--
 kde-apps/blinken/blinken-9999.ebuild               |  33 +++---
 kde-apps/bomber/bomber-9999.ebuild                 |  34 +++---
 kde-apps/bovo/bovo-9999.ebuild                     |  36 +++---
 .../calendarjanitor/calendarjanitor-9999.ebuild    |  30 ++---
 .../calendarsupport/calendarsupport-9999.ebuild    |  57 ++++-----
 kde-apps/cantor/cantor-9999.ebuild                 |  71 ++++++-----
 kde-apps/cervisia/cervisia-9999.ebuild             |  47 ++++----
 .../dolphin-plugins-bazaar-9999.ebuild             |  35 +++---
 .../dolphin-plugins-dropbox-9999.ebuild            |  35 +++---
 .../dolphin-plugins-git-9999.ebuild                |  39 ++++---
 .../dolphin-plugins-mercurial-9999.ebuild          |  45 ++++---
 .../dolphin-plugins-subversion-9999.ebuild         |  37 +++---
 kde-apps/dolphin/dolphin-9999.ebuild               |  87 +++++++-------
 kde-apps/dragon/dragon-9999.ebuild                 |  47 ++++----
 kde-apps/eventviews/eventviews-9999.ebuild         |  53 +++++----
 kde-apps/ffmpegthumbs/ffmpegthumbs-9999.ebuild     |  16 ++-
 kde-apps/filelight/filelight-9999.ebuild           |  34 +++---
 kde-apps/granatier/granatier-9999.ebuild           |  40 ++++---
 .../grantlee-editor/grantlee-editor-9999.ebuild    |  55 +++++----
 kde-apps/grantleetheme/grantleetheme-9999.ebuild   |  30 ++---
 kde-apps/gwenview/gwenview-9999.ebuild             |  90 +++++++-------
 .../incidenceeditor/incidenceeditor-9999.ebuild    |  73 ++++++------
 kde-apps/juk/juk-9999.ebuild                       |  56 ++++-----
 kde-apps/k3b/k3b-9999.ebuild                       |  67 ++++++-----
 .../kaccounts-integration-9999.ebuild              |  34 +++---
 .../kaccounts-providers-9999.ebuild                |  26 +++--
 kde-apps/kaddressbook/kaddressbook-9999.ebuild     |  78 +++++++------
 kde-apps/kajongg/kajongg-9999.ebuild               |  32 ++---
 kde-apps/kalarm/kalarm-9999.ebuild                 | 104 +++++++++--------
 kde-apps/kalarmcal/kalarmcal-9999.ebuild           |  29 +++--
 kde-apps/kalgebra/kalgebra-9999.ebuild             |  45 ++++---
 kde-apps/kalzium/kalzium-9999.ebuild               |  52 +++++----
 kde-apps/kamera/kamera-9999.ebuild                 |  27 +++--
 kde-apps/kamoso/kamoso-9999.ebuild                 |  32 ++---
 kde-apps/kanagram/kanagram-9999.ebuild             |  51 ++++----
 kde-apps/kapman/kapman-9999.ebuild                 |  38 +++---
 kde-apps/kapptemplate/kapptemplate-9999.ebuild     |  33 +++---
 kde-apps/kate/kate-9999.ebuild                     |  87 +++++++-------
 kde-apps/katomic/katomic-9999.ebuild               |  38 +++---
 kde-apps/kbackup/kbackup-9999.ebuild               |  37 +++---
 kde-apps/kblackbox/kblackbox-9999.ebuild           |  41 ++++---
 kde-apps/kblocks/kblocks-9999.ebuild               |  36 +++---
 kde-apps/kblog/kblog-9999.ebuild                   |  20 ++--
 kde-apps/kbounce/kbounce-9999.ebuild               |  44 +++----
 kde-apps/kbreakout/kbreakout-9999.ebuild           |  42 ++++---
 kde-apps/kbruch/kbruch-9999.ebuild                 |  28 +++--
 kde-apps/kcachegrind/kcachegrind-9999.ebuild       |  39 ++++---
 kde-apps/kcalc/kcalc-9999.ebuild                   |  39 ++++---
 kde-apps/kcalutils/kcalutils-9999.ebuild           |  34 +++---
 kde-apps/kcharselect/kcharselect-9999.ebuild       |  29 +++--
 kde-apps/kcolorchooser/kcolorchooser-9999.ebuild   |  17 +--
 kde-apps/kcron/kcron-9999.ebuild                   |  28 +++--
 kde-apps/kdav/kdav-9999.ebuild                     |  21 ++--
 .../kde-dev-scripts/kde-dev-scripts-9999.ebuild    |  14 ++-
 kde-apps/kde-dev-utils/kde-dev-utils-9999.ebuild   |  30 ++---
 kde-apps/kdebugsettings/kdebugsettings-9999.ebuild |  28 +++--
 .../kdegraphics-mobipocket-9999.ebuild             |  13 ++-
 .../kdemultimedia-meta-9999.ebuild                 |   6 +-
 .../kdenetwork-filesharing-9999.ebuild             |  24 ++--
 kde-apps/kdenlive/kdenlive-9999.ebuild             |  85 +++++++-------
 kde-apps/kdepim-addons/kdepim-addons-9999.ebuild   |  98 ++++++++--------
 .../kdepim-apps-libs/kdepim-apps-libs-9999.ebuild  |  44 ++++---
 kde-apps/kdepim-meta/kdepim-meta-9999.ebuild       |   2 +-
 kde-apps/kdepim-runtime/kdepim-runtime-9999.ebuild | 106 +++++++++--------
 .../kdesdk-kioslaves/kdesdk-kioslaves-9999.ebuild  |  12 +-
 .../kdesdk-thumbnailers-9999.ebuild                |  19 +--
 kde-apps/kdf/kdf-9999.ebuild                       |  38 +++---
 kde-apps/kdialog/kdialog-9999.ebuild               |  38 +++---
 kde-apps/kdiamond/kdiamond-9999.ebuild             |  38 +++---
 kde-apps/keditbookmarks/keditbookmarks-9999.ebuild |  47 ++++----
 kde-apps/kfind/kfind-9999.ebuild                   |  41 ++++---
 kde-apps/kfloppy/kfloppy-9999.ebuild               |  36 +++---
 kde-apps/kfourinline/kfourinline-9999.ebuild       |  36 +++---
 kde-apps/kgeography/kgeography-9999.ebuild         |  36 +++---
 kde-apps/kget/kget-9999.ebuild                     |  72 ++++++------
 kde-apps/kgoldrunner/kgoldrunner-9999.ebuild       |  38 +++---
 kde-apps/kgpg/kgpg-9999.ebuild                     |  62 +++++-----
 kde-apps/khangman/khangman-9999.ebuild             |  54 +++++----
 kde-apps/khelpcenter/khelpcenter-9999.ebuild       |  61 +++++-----
 .../kidentitymanagement-9999.ebuild                |  37 +++---
 kde-apps/kig/kig-9999.ebuild                       |  58 ++++-----
 kde-apps/kigo/kigo-9999.ebuild                     |  44 ++++---
 kde-apps/killbots/killbots-9999.ebuild             |  36 +++---
 .../kimagemapeditor/kimagemapeditor-9999.ebuild    |  39 ++++---
 kde-apps/kimap/kimap-9999.ebuild                   |  26 +++--
 kde-apps/kio-extras/kio-extras-9999.ebuild         |  69 ++++++-----
 kde-apps/kipi-plugins/kipi-plugins-9999.ebuild     |  46 ++++----
 kde-apps/kiriki/kiriki-9999.ebuild                 |  38 +++---
 kde-apps/kiten/kiten-9999.ebuild                   |  46 ++++----
 kde-apps/kitinerary/kitinerary-9999.ebuild         |  28 +++--
 kde-apps/kjumpingcube/kjumpingcube-9999.ebuild     |  36 +++---
 kde-apps/kldap/kldap-9999.ebuild                   |  25 ++--
 kde-apps/kleopatra/kleopatra-9999.ebuild           |  54 +++++----
 kde-apps/klettres/klettres-9999.ebuild             |  37 +++---
 kde-apps/klickety/klickety-9999.ebuild             |  40 ++++---
 kde-apps/klines/klines-9999.ebuild                 |  34 +++---
 kde-apps/kmag/kmag-9999.ebuild                     |  33 +++---
 kde-apps/kmahjongg/kmahjongg-9999.ebuild           |  44 ++++---
 .../kmail-account-wizard-9999.ebuild               |  69 ++++++-----
 kde-apps/kmail/kmail-9999.ebuild                   | 130 +++++++++++----------
 kde-apps/kmailtransport/kmailtransport-9999.ebuild |  47 ++++----
 kde-apps/kmbox/kmbox-9999.ebuild                   |   9 +-
 kde-apps/kmime/kmime-9999.ebuild                   |  11 +-
 kde-apps/kmines/kmines-9999.ebuild                 |  36 +++---
 kde-apps/kmix/kmix-9999.ebuild                     |  50 ++++----
 kde-apps/kmousetool/kmousetool-9999.ebuild         |  29 +++--
 kde-apps/kmouth/kmouth-9999.ebuild                 |  39 ++++---
 kde-apps/kmplot/kmplot-9999.ebuild                 |  48 ++++----
 kde-apps/knavalbattle/knavalbattle-9999.ebuild     |  46 ++++----
 kde-apps/knetwalk/knetwalk-9999.ebuild             |  44 +++----
 kde-apps/knights/knights-9999.ebuild               |  54 +++++----
 kde-apps/knotes/knotes-9999.ebuild                 |  91 ++++++++-------
 kde-apps/kolf/kolf-9999.ebuild                     |  44 +++----
 kde-apps/kollision/kollision-9999.ebuild           |  36 +++---
 kde-apps/kolourpaint/kolourpaint-9999.ebuild       |  45 +++----
 kde-apps/kompare/kompare-9999.ebuild               |  48 ++++----
 kde-apps/konqueror/konqueror-9999.ebuild           |  97 +++++++--------
 kde-apps/konquest/konquest-9999.ebuild             |  40 ++++---
 kde-apps/konsole/konsole-9999.ebuild               |  73 ++++++------
 .../konsolekalendar/konsolekalendar-9999.ebuild    |  27 +++--
 kde-apps/kontact/kontact-9999.ebuild               |  62 +++++-----
 .../kontactinterface/kontactinterface-9999.ebuild  |  25 ++--
 kde-apps/kopete/kopete-9999.ebuild                 |  65 ++++++-----
 kde-apps/korganizer/korganizer-9999.ebuild         | 119 ++++++++++---------
 kde-apps/kpat/kpat-9999.ebuild                     |  45 ++++---
 kde-apps/kpimtextedit/kpimtextedit-9999.ebuild     |  40 ++++---
 kde-apps/kpkpass/kpkpass-9999.ebuild               |  11 +-
 kde-apps/kqtquickcharts/kqtquickcharts-9999.ebuild |  10 +-
 kde-apps/krdc/krdc-9999.ebuild                     |  51 ++++----
 kde-apps/kreversi/kreversi-9999.ebuild             |  50 ++++----
 kde-apps/krfb/krfb-9999.ebuild                     |  49 ++++----
 .../kross-interpreters-9999.ebuild                 |  17 ++-
 kde-apps/kruler/kruler-9999.ebuild                 |  33 +++---
 kde-apps/kshisen/kshisen-9999.ebuild               |  42 ++++---
 kde-apps/ksirk/ksirk-9999.ebuild                   |  52 +++++----
 kde-apps/ksmtp/ksmtp-9999.ebuild                   |  17 ++-
 kde-apps/ksnakeduel/ksnakeduel-9999.ebuild         |  40 ++++---
 kde-apps/kspaceduel/kspaceduel-9999.ebuild         |  38 +++---
 kde-apps/ksquares/ksquares-9999.ebuild             |  40 ++++---
 kde-apps/ksudoku/ksudoku-9999.ebuild               |  56 ++++-----
 kde-apps/ksystemlog/ksystemlog-9999.ebuild         |  49 ++++----
 kde-apps/kteatime/kteatime-9999.ebuild             |  35 +++---
 kde-apps/ktimer/ktimer-9999.ebuild                 |  31 ++---
 kde-apps/ktouch/ktouch-9999.ebuild                 |  62 +++++-----
 .../ktp-accounts-kcm/ktp-accounts-kcm-9999.ebuild  |  48 ++++----
 kde-apps/ktp-approver/ktp-approver-9999.ebuild     |  28 +++--
 .../ktp-auth-handler/ktp-auth-handler-9999.ebuild  |  32 ++---
 kde-apps/ktp-call-ui/ktp-call-ui-9999.ebuild       |  42 ++++---
 .../ktp-common-internals-9999.ebuild               |  60 +++++-----
 .../ktp-contact-list/ktp-contact-list-9999.ebuild  |  50 ++++----
 .../ktp-contact-runner-9999.ebuild                 |  24 ++--
 .../ktp-desktop-applets-9999.ebuild                |  19 +--
 .../ktp-filetransfer-handler-9999.ebuild           |  24 ++--
 .../ktp-kded-module/ktp-kded-module-9999.ebuild    |  44 +++----
 kde-apps/ktp-send-file/ktp-send-file-9999.ebuild   |  32 ++---
 kde-apps/ktp-text-ui/ktp-text-ui-9999.ebuild       |  66 ++++++-----
 kde-apps/ktuberling/ktuberling-9999.ebuild         |  50 ++++----
 kde-apps/kturtle/kturtle-9999.ebuild               |  42 ++++---
 kde-apps/kubrick/kubrick-9999.ebuild               |  36 +++---
 kde-apps/kwalletmanager/kwalletmanager-9999.ebuild |  63 +++++-----
 kde-apps/kwave/kwave-9999.ebuild                   |  52 +++++----
 kde-apps/kwordquiz/kwordquiz-9999.ebuild           |  51 ++++----
 kde-apps/kwrite/kwrite-9999.ebuild                 |  46 ++++----
 kde-apps/libgravatar/libgravatar-9999.ebuild       |  29 +++--
 kde-apps/libkcddb/libkcddb-9999.ebuild             |  34 +++---
 .../libkcompactdisc/libkcompactdisc-9999.ebuild    |  16 ++-
 kde-apps/libkdcraw/libkdcraw-9999.ebuild           |   7 +-
 kde-apps/libkdegames/libkdegames-9999.ebuild       |  65 ++++++-----
 kde-apps/libkdepim/libkdepim-9999.ebuild           |  51 ++++----
 .../libkeduvocdocument-9999.ebuild                 |  21 ++--
 kde-apps/libkexiv2/libkexiv2-9999.ebuild           |   7 +-
 kde-apps/libkgapi/libkgapi-9999.ebuild             |  29 ++---
 kde-apps/libkgeomap/libkgeomap-9999.ebuild         |  28 +++--
 kde-apps/libkipi/libkipi-9999.ebuild               |  19 +--
 kde-apps/libkleo/libkleo-9999.ebuild               |  31 ++---
 kde-apps/libkmahjongg/libkmahjongg-9999.ebuild     |  25 ++--
 .../libkomparediff2/libkomparediff2-9999.ebuild    |  27 +++--
 kde-apps/libksane/libksane-9999.ebuild             |  20 ++--
 kde-apps/libksieve/libksieve-9999.ebuild           |  61 +++++-----
 kde-apps/libktnef/libktnef-9999.ebuild             |  21 ++--
 kde-apps/lokalize/lokalize-9999.ebuild             |  61 +++++-----
 kde-apps/lskat/lskat-9999.ebuild                   |  38 +++---
 kde-apps/mailcommon/mailcommon-9999.ebuild         |  73 ++++++------
 kde-apps/mailimporter/mailimporter-9999.ebuild     |  31 ++---
 kde-apps/marble/marble-9999.ebuild                 |  67 ++++++-----
 kde-apps/mbox-importer/mbox-importer-9999.ebuild   |  35 +++---
 kde-apps/messagelib/messagelib-9999.ebuild         |  95 ++++++++-------
 kde-apps/minuet/minuet-9999.ebuild                 |  23 ++--
 kde-apps/okular/okular-9999.ebuild                 |  76 ++++++------
 kde-apps/palapeli/palapeli-9999.ebuild             |  48 ++++----
 kde-apps/parley/parley-9999.ebuild                 |  65 ++++++-----
 kde-apps/picmi/picmi-9999.ebuild                   |  47 ++++----
 .../pim-data-exporter-9999.ebuild                  |  57 ++++-----
 .../pim-sieve-editor/pim-sieve-editor-9999.ebuild  |  57 ++++-----
 kde-apps/pimcommon/pimcommon-9999.ebuild           |  69 ++++++-----
 kde-apps/poxml/poxml-9999.ebuild                   |  10 +-
 kde-apps/print-manager/print-manager-9999.ebuild   |  48 ++++----
 kde-apps/rocs/rocs-9999.ebuild                     |  56 ++++-----
 .../signon-kwallet-extension-9999.ebuild           |   7 +-
 kde-apps/spectacle/spectacle-9999.ebuild           |  58 ++++-----
 kde-apps/step/step-9999.ebuild                     |  58 ++++-----
 kde-apps/svgpart/svgpart-9999.ebuild               |  22 ++--
 kde-apps/sweeper/sweeper-9999.ebuild               |  40 ++++---
 kde-apps/thumbnailers/thumbnailers-9999.ebuild     |  21 ++--
 kde-apps/umbrello/umbrello-9999.ebuild             |  61 +++++-----
 kde-apps/yakuake/yakuake-9999.ebuild               |  58 ++++-----
 .../zeroconf-ioslave/zeroconf-ioslave-9999.ebuild  |  19 +--
 221 files changed, 5311 insertions(+), 4240 deletions(-)

diff --git a/kde-apps/akonadi-calendar/akonadi-calendar-9999.ebuild b/kde-apps/akonadi-calendar/akonadi-calendar-9999.ebuild
index 32f18515b1..8c16f55d95 100644
--- a/kde-apps/akonadi-calendar/akonadi-calendar-9999.ebuild
+++ b/kde-apps/akonadi-calendar/akonadi-calendar-9999.ebuild
@@ -3,38 +3,43 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library for akonadi calendar integration"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep kcalutils)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep kmime)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/kcalutils-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/akonadi-contacts/akonadi-contacts-9999.ebuild b/kde-apps/akonadi-contacts/akonadi-contacts-9999.ebuild
index 674cd45fa3..2f7415da23 100644
--- a/kde-apps/akonadi-contacts/akonadi-contacts-9999.ebuild
+++ b/kde-apps/akonadi-contacts/akonadi-contacts-9999.ebuild
@@ -3,10 +3,15 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional"
-inherit kde5
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library for akonadi contact integration"
+
+SLOT="5"
 KEYWORDS=""
 LICENSE="GPL-2+"
 IUSE=""
@@ -15,26 +20,26 @@ IUSE=""
 RESTRICT+=" test"
 
 DEPEND="
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep prison)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep kmime)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/prison-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/akonadi-import-wizard/akonadi-import-wizard-9999.ebuild b/kde-apps/akonadi-import-wizard/akonadi-import-wizard-9999.ebuild
index 3b95348ba6..5d79ba5ccc 100644
--- a/kde-apps/akonadi-import-wizard/akonadi-import-wizard-9999.ebuild
+++ b/kde-apps/akonadi-import-wizard/akonadi-import-wizard-9999.ebuild
@@ -3,37 +3,42 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Assistant to import PIM data from other applications into Akonadi"
 HOMEPAGE+=" https://userbase.kde.org/Kmail/Import_Options"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep mailcommon)
-	$(add_kdeapps_dep mailimporter)
-	$(add_kdeapps_dep messagelib)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/mailcommon-${PVCUT}:5
+	>=kde-apps/mailimporter-${PVCUT}:5
+	>=kde-apps/messagelib-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/akonadi-mime/akonadi-mime-9999.ebuild b/kde-apps/akonadi-mime/akonadi-mime-9999.ebuild
index a4de234ed9..3c11af85a9 100644
--- a/kde-apps/akonadi-mime/akonadi-mime-9999.ebuild
+++ b/kde-apps/akonadi-mime/akonadi-mime-9999.ebuild
@@ -3,31 +3,36 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library for akonadi mime types"
-KEYWORDS=""
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
+KEYWORDS=""
 IUSE=""
 
 # some akonadi tests time out, that probably needs more work as it's ~700 tests
 RESTRICT+=" test"
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep kmime)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-libs/libxslt
 "
 RDEPEND="${DEPEND}

diff --git a/kde-apps/akonadi-notes/akonadi-notes-9999.ebuild b/kde-apps/akonadi-notes/akonadi-notes-9999.ebuild
index 78047e113e..90055f95c5 100644
--- a/kde-apps/akonadi-notes/akonadi-notes-9999.ebuild
+++ b/kde-apps/akonadi-notes/akonadi-notes-9999.ebuild
@@ -3,19 +3,24 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library for akonadi notes integration"
-KEYWORDS=""
+
 LICENSE="GPL-2+"
+SLOT="5"
+KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep ki18n)
-	$(add_kdeapps_dep kmime)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/akonadi-search/akonadi-search-9999.ebuild b/kde-apps/akonadi-search/akonadi-search-9999.ebuild
index bc95fadf79..01707f2795 100644
--- a/kde-apps/akonadi-search/akonadi-search-9999.ebuild
+++ b/kde-apps/akonadi-search/akonadi-search-9999.ebuild
@@ -3,42 +3,47 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Libraries and daemons to implement searching in Akonadi"
 HOMEPAGE="https://cgit.kde.org/akonadi-search.git"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 BDEPEND="
-	test? ( $(add_kdeapps_dep akonadi 'tools') )
+	test? ( >=kde-apps/akonadi-${PVCUT}:5[tools] )
 "
 COMMON_DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep krunner)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep kmime)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/krunner-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	>=dev-libs/xapian-1.3:=[chert(+)]
 "
 DEPEND="${COMMON_DEPEND}
 	dev-libs/boost
-	test? ( $(add_kdeapps_dep akonadi 'mysql,postgres,sqlite') )
+	test? ( >=kde-apps/akonadi-${PVCUT}:5[mysql,postgres,sqlite] )
 "
 RDEPEND="${COMMON_DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/akonadi/akonadi-9999.ebuild b/kde-apps/akonadi/akonadi-9999.ebuild
index 7007cbadc3..1130c4a8f4 100644
--- a/kde-apps/akonadi/akonadi-9999.ebuild
+++ b/kde-apps/akonadi/akonadi-9999.ebuild
@@ -4,14 +4,18 @@
 EAPI=7
 
 ECM_DESIGNERPLUGIN="true"
-KDE_TEST="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALDBUS_TEST="true"
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Storage service for PIM data and libraries for PIM apps"
 HOMEPAGE="https://community.kde.org/KDE_PIM/akonadi"
 
+SLOT="5"
 KEYWORDS=""
 LICENSE="LGPL-2.1+"
 IUSE="+kaccounts +mysql postgres sqlite tools xml"
@@ -19,32 +23,32 @@ IUSE="+kaccounts +mysql postgres sqlite tools xml"
 REQUIRED_USE="|| ( mysql postgres sqlite ) test? ( tools )"
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtsql 'mysql?,postgres?')
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtsql-${QTMIN}:5[mysql?,postgres?]
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	kaccounts? (
-		$(add_kdeapps_dep kaccounts-integration)
+		>=kde-apps/kaccounts-integration-${PVCUT}:5
 		net-libs/accounts-qt
 	)
 	sqlite? (
-		$(add_qt_dep qtsql 'sqlite' '' '5=')
+		>=dev-qt/qtsql-${QTMIN}:5=[sqlite]
 		dev-db/sqlite:3
 	)
 	xml? ( dev-libs/libxml2 )
@@ -92,7 +96,7 @@ pkg_setup() {
 		ewarn "In particular, kde-apps/kmail does not work properly with the sqlite backend."
 	fi
 
-	kde5_pkg_setup
+	ecm_pkg_setup
 }
 
 src_configure() {
@@ -104,7 +108,7 @@ src_configure() {
 		$(cmake-utils_use_find_package xml LibXml2)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }
 
 src_install() {
@@ -116,11 +120,11 @@ EOF
 	insinto /usr/share/config/akonadi
 	doins "${T}"/akonadiserverrc
 
-	kde5_src_install
+	ecm_src_install
 }
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 	elog "You can select the storage backend in ~/.config/akonadi/akonadiserverrc."
 	elog "Available drivers are:"
 	use mysql && elog "  QMYSQL"

diff --git a/kde-apps/akonadiconsole/akonadiconsole-9999.ebuild b/kde-apps/akonadiconsole/akonadiconsole-9999.ebuild
index 4c4ac0788d..156b3f86b2 100644
--- a/kde-apps/akonadiconsole/akonadiconsole-9999.ebuild
+++ b/kde-apps/akonadiconsole/akonadiconsole-9999.ebuild
@@ -3,43 +3,47 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional" # FIXME: Check back for doc in release
-inherit kde5
+ECM_HANDBOOK="forceoptional" # FIXME: Check back for doc in release
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Application for debugging Akonadi Resources"
+HOMEPAGE="https://techbase.kde.org/KDE_PIM/Akonadi/Development_Tools"
+
 LICENSE="GPL-2+ LGPL-2.1+ handbook? ( FDL-1.2+ )"
-HOMEPAGE="https://kde.org/"
+SLOT="5"
 KEYWORDS=""
-
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-search)
-	$(add_kdeapps_dep calendarsupport)
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcontacts)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep messagelib)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsql)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-search-${PVCUT}:5
+	>=kde-apps/calendarsupport-${PVCUT}:5
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/messagelib-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsql-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-libs/xapian:=
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/akregator/akregator-9999.ebuild b/kde-apps/akregator/akregator-9999.ebuild
index e11cd1ed20..79f0f030b1 100644
--- a/kde-apps/akregator/akregator-9999.ebuild
+++ b/kde-apps/akregator/akregator-9999.ebuild
@@ -3,49 +3,53 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="News feed aggregator"
-HOMEPAGE="https://kde.org/applications/internet/akregator"
+HOMEPAGE="https://kde.org/applications/internet/org.kde.akregator"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
-
 IUSE=""
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep syndication)
-	$(add_kdeapps_dep grantleetheme)
-	$(add_kdeapps_dep kontactinterface)
-	$(add_kdeapps_dep kpimtextedit)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep messagelib)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwebengine)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/syndication-${KFMIN}:5
+	>=kde-apps/grantleetheme-${PVCUT}:5
+	>=kde-apps/kontactinterface-${PVCUT}:5
+	>=kde-apps/kpimtextedit-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/messagelib-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwebengine-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 DEPEND="${COMMON_DEPEND}
 	dev-libs/grantlee:5

diff --git a/kde-apps/analitza/analitza-9999.ebuild b/kde-apps/analitza/analitza-9999.ebuild
index e623dc462c..8deed95347 100644
--- a/kde-apps/analitza/analitza-9999.ebuild
+++ b/kde-apps/analitza/analitza-9999.ebuild
@@ -3,30 +3,34 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional-recursive"
+ECM_TEST="forceoptional-recursive"
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="KDE library for mathematical features"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="eigen nls"
 
 BDEPEND="
-	nls? ( $(add_qt_dep linguist-tools) )
+	nls? ( >=dev-qt/linguist-tools-${QTMIN}:5 )
 "
 DEPEND="
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui '-gles2')
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5[-gles2]
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	eigen? ( dev-cpp/eigen:3 )
 "
 RDEPEND="${DEPEND}"
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 
 	if ! use test; then
 		sed -i \
@@ -40,5 +44,5 @@ src_configure() {
 		$(cmake-utils_use_find_package eigen Eigen3)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/ark/ark-9999.ebuild b/kde-apps/ark/ark-9999.ebuild
index 098a65b2f9..c40062f950 100644
--- a/kde-apps/ark/ark-9999.ebuild
+++ b/kde-apps/ark/ark-9999.ebuild
@@ -3,14 +3,19 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="optional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="optional"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="KDE Archiving tool"
-HOMEPAGE="https://kde.org/applications/utilities/ark
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.ark
 https://utils.kde.org/projects/ark/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="bzip2 lzma zip"
 
@@ -18,32 +23,32 @@ BDEPEND="
 	sys-devel/gettext
 "
 RDEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kpty)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kpty-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	app-arch/libarchive:=[bzip2?,lzma?,zlib]
 	sys-libs/zlib
 	zip? ( >=dev-libs/libzip-1.2.0:= )
 "
 DEPEND="${RDEPEND}
-	$(add_qt_dep qtconcurrent)
+	>=dev-qt/qtconcurrent-${QTMIN}:5
 "
 
 # bug #560548, last checked with 16.04.1
@@ -56,11 +61,11 @@ src_configure() {
 		$(cmake-utils_use_find_package zip LibZip)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	if [[ -z "${REPLACING_VERSIONS}" ]]; then
 		if ! has_version app-arch/rar; then

diff --git a/kde-apps/artikulate/artikulate-9999.ebuild b/kde-apps/artikulate/artikulate-9999.ebuild
index 5df763638b..4a115c18bf 100644
--- a/kde-apps/artikulate/artikulate-9999.ebuild
+++ b/kde-apps/artikulate/artikulate-9999.ebuild
@@ -3,33 +3,38 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
-inherit kde5
+ECM_HANDBOOK="optional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Language learning application that helps improving pronunciation skills"
-HOMEPAGE="https://edu.kde.org/applications/language/artikulate"
+HOMEPAGE="https://kde.org/applications/education/org.kde.artikulate"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="+gstreamer qtmedia"
 
 REQUIRED_USE="|| ( gstreamer qtmedia )"
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsql)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
-	$(add_qt_dep qtxmlpatterns)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsql-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
+	>=dev-qt/qtxmlpatterns-${QTMIN}:5
 	gstreamer? ( >=media-libs/qt-gstreamer-1.2.0[qt5(+)] )
-	qtmedia? ( $(add_qt_dep qtmultimedia) )
+	qtmedia? ( >=dev-qt/qtmultimedia-${QTMIN}:5 )
 "
 RDEPEND="${DEPEND}"
 
@@ -39,5 +44,5 @@ src_configure() {
 		-DBUILD_QTMULTIMEDIA_PLUGIN=$(usex qtmedia)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/audiocd-kio/audiocd-kio-9999.ebuild b/kde-apps/audiocd-kio/audiocd-kio-9999.ebuild
index 8fc361f8b8..143bbae968 100644
--- a/kde-apps/audiocd-kio/audiocd-kio-9999.ebuild
+++ b/kde-apps/audiocd-kio/audiocd-kio-9999.ebuild
@@ -3,25 +3,30 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="kioslave for accessing audio CDs"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2 )"
+SLOT="5"
 KEYWORDS=""
 IUSE="flac vorbis"
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_kdeapps_dep libkcddb)
-	$(add_kdeapps_dep libkcompactdisc)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-apps/libkcddb-${PVCUT}:5
+	>=kde-apps/libkcompactdisc-${PVCUT}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-sound/cdparanoia
 	flac? ( >=media-libs/flac-1.1.2 )
 	vorbis? (
@@ -39,5 +44,5 @@ src_configure() {
 		$(cmake-utils_use_find_package vorbis OggVorbis)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/baloo-widgets/baloo-widgets-9999.ebuild b/kde-apps/baloo-widgets/baloo-widgets-9999.ebuild
index b5fcff11da..33583b7720 100644
--- a/kde-apps/baloo-widgets/baloo-widgets-9999.ebuild
+++ b/kde-apps/baloo-widgets/baloo-widgets-9999.ebuild
@@ -3,24 +3,28 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional"
-inherit kde5
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Widget library for baloo"
+
 LICENSE="LGPL-2+ LGPL-2.1+ || ( LGPL-2.1 LGPL-3 )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep baloo)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kfilemetadata)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/baloo-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kfilemetadata-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"
 

diff --git a/kde-apps/blinken/blinken-9999.ebuild b/kde-apps/blinken/blinken-9999.ebuild
index eccf5f8a83..dfa6bdde07 100644
--- a/kde-apps/blinken/blinken-9999.ebuild
+++ b/kde-apps/blinken/blinken-9999.ebuild
@@ -3,31 +3,36 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Memory enhancement game based on KDE Frameworks"
-HOMEPAGE="https://kde.org/applications/education/blinken
+HOMEPAGE="https://kde.org/applications/education/org.kde.blinken
 https://edu.kde.org/blinken/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-libs/phonon[qt5(+)]
 "
 RDEPEND="${DEPEND}"
 
 src_install() {
-	kde5_src_install
+	ecm_src_install
 	rm "${ED}"/usr/share/${PN}/README.packagers || die
 }

diff --git a/kde-apps/bomber/bomber-9999.ebuild b/kde-apps/bomber/bomber-9999.ebuild
index e528a66716..c173617b13 100644
--- a/kde-apps/bomber/bomber-9999.ebuild
+++ b/kde-apps/bomber/bomber-9999.ebuild
@@ -3,26 +3,32 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Single player arcade bombing game"
-HOMEPAGE="https://kde.org/applications/games/bomber/"
+HOMEPAGE="https://kde.org/applications/games/org.kde.bomber"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!games-action/xbomber

diff --git a/kde-apps/bovo/bovo-9999.ebuild b/kde-apps/bovo/bovo-9999.ebuild
index 1729f762de..32a4d32a2a 100644
--- a/kde-apps/bovo/bovo-9999.ebuild
+++ b/kde-apps/bovo/bovo-9999.ebuild
@@ -3,27 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Five-in-a-row Board Game"
-HOMEPAGE="https://kde.org/applications/games/bovo/"
+HOMEPAGE="https://kde.org/applications/games/org.kde.bovo"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtconcurrent)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtconcurrent-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"
 

diff --git a/kde-apps/calendarjanitor/calendarjanitor-9999.ebuild b/kde-apps/calendarjanitor/calendarjanitor-9999.ebuild
index 5908a010e9..ca83a87698 100644
--- a/kde-apps/calendarjanitor/calendarjanitor-9999.ebuild
+++ b/kde-apps/calendarjanitor/calendarjanitor-9999.ebuild
@@ -3,32 +3,36 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional" # FIXME: Check back for doc in release
-KDE_TEST="false"
-KMNAME="akonadi-calendar-tools"
-inherit kde5
+ECM_HANDBOOK="forceoptional" # FIXME: Check back for doc in release
+ECM_TEST="false"
+KDE_ORG_NAME="akonadi-calendar-tools"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Tool to scan calendar data for buggy instances"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
-
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-calendar)
-	$(add_kdeapps_dep calendarsupport)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-calendar-${PVCUT}:5
+	>=kde-apps/calendarsupport-${PVCUT}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 
 	cmake_comment_add_subdirectory doc konsolekalendar
 	sed -i -e "/console\.categories/ s/^/#DONT/" CMakeLists.txt || die

diff --git a/kde-apps/calendarsupport/calendarsupport-9999.ebuild b/kde-apps/calendarsupport/calendarsupport-9999.ebuild
index 04f46e3dda..756593c42b 100644
--- a/kde-apps/calendarsupport/calendarsupport-9999.ebuild
+++ b/kde-apps/calendarsupport/calendarsupport-9999.ebuild
@@ -3,39 +3,44 @@
 
 EAPI=7
 
-KDE_TEST="false"
-inherit kde5
+ECM_TEST="false"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Calendar support library"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep kholidays)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-calendar)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep kcalutils)
-	$(add_kdeapps_dep kdepim-apps-libs)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep designer)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/kholidays-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-calendar-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/kcalutils-${PVCUT}:5
+	>=kde-apps/kdepim-apps-libs-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/designer-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-libs/libical
 "
 RDEPEND="${DEPEND}

diff --git a/kde-apps/cantor/cantor-9999.ebuild b/kde-apps/cantor/cantor-9999.ebuild
index a681d25a65..365aee8b9e 100644
--- a/kde-apps/cantor/cantor-9999.ebuild
+++ b/kde-apps/cantor/cantor-9999.ebuild
@@ -3,13 +3,20 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
 PYTHON_COMPAT=( python3_{6,7} )
-inherit kde5 python-single-r1
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org python-single-r1
 
 DESCRIPTION="Interface for doing mathematics and scientific computing"
-HOMEPAGE="https://kde.org/applications/education/cantor https://edu.kde.org/cantor/"
+HOMEPAGE="https://kde.org/applications/education/org.kde.cantor
+https://edu.kde.org/cantor/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="+analitza julia lua markdown postscript python qalculate R"
 
@@ -17,30 +24,30 @@ REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
 
 # TODO Add Sage Mathematics Software backend (http://www.sagemath.org)
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kpty)
-	$(add_frameworks_dep ktexteditor)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep syntax-highlighting)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
-	$(add_qt_dep qtxmlpatterns)
-	analitza? ( $(add_kdeapps_dep analitza) )
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kpty-${KFMIN}:5
+	>=kde-frameworks/ktexteditor-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/syntax-highlighting-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
+	>=dev-qt/qtxmlpatterns-${QTMIN}:5
+	analitza? ( >=kde-apps/analitza-${PVCUT}:5 )
 	julia? ( dev-lang/julia )
 	lua? ( dev-lang/luajit:2 )
 	markdown? ( >=app-text/discount-2.2.2 )
@@ -51,7 +58,7 @@ DEPEND="
 	postscript? ( app-text/libspectre )
 	python? (
 		${PYTHON_DEPS}
-		$(add_qt_dep qtdbus)
+		>=dev-qt/qtdbus-${QTMIN}:5
 	)
 	R? ( dev-lang/R )
 "
@@ -60,7 +67,7 @@ RDEPEND="${DEPEND}"
 RESTRICT+=" test"
 
 pkg_pretend() {
-	kde5_pkg_pretend
+	ecm_pkg_pretend
 
 	if ! has_version sci-mathematics/maxima && ! has_version sci-mathematics/octave && \
 		! use analitza && ! use julia && ! use lua && ! use python && ! use qalculate && ! use R; then
@@ -83,7 +90,7 @@ pkg_pretend() {
 
 pkg_setup() {
 	use python && python-single-r1_pkg_setup
-	kde5_pkg_setup
+	ecm_pkg_setup
 }
 
 src_configure() {
@@ -100,5 +107,5 @@ src_configure() {
 		$(cmake-utils_use_find_package qalculate Qalculate)
 		$(cmake-utils_use_find_package R R)
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/cervisia/cervisia-9999.ebuild b/kde-apps/cervisia/cervisia-9999.ebuild
index aa46eb4917..2d5e71a35d 100644
--- a/kde-apps/cervisia/cervisia-9999.ebuild
+++ b/kde-apps/cervisia/cervisia-9999.ebuild
@@ -3,33 +3,38 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="CVS frontend by KDE"
-HOMEPAGE="https://kde.org/applications/development/cervisia"
+HOMEPAGE="https://kde.org/applications/development/org.kde.cervisia"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdesu)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kinit)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdesu-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kinit-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	dev-vcs/cvs

diff --git a/kde-apps/dolphin-plugins-bazaar/dolphin-plugins-bazaar-9999.ebuild b/kde-apps/dolphin-plugins-bazaar/dolphin-plugins-bazaar-9999.ebuild
index 12b213b98c..1614a0429b 100644
--- a/kde-apps/dolphin-plugins-bazaar/dolphin-plugins-bazaar-9999.ebuild
+++ b/kde-apps/dolphin-plugins-bazaar/dolphin-plugins-bazaar-9999.ebuild
@@ -3,23 +3,30 @@
 
 EAPI=7
 
-KMNAME="dolphin-plugins"
-KDE_HANDBOOK="false"
+ECM_HANDBOOK="false"
+KDE_ORG_NAME="dolphin-plugins"
 MY_PLUGIN_NAME="bazaar"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Dolphin plugin for Bazaar integration"
+HOMEPAGE="https://kde.org/applications/system/org.kde.dolphin_plugins"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_kdeapps_dep dolphin)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-apps/dolphin-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/dolphin-plugins:5
@@ -27,10 +34,10 @@ RDEPEND="${DEPEND}
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 	# kxmlgui, qtnetwork only required by dropbox
-	punt_bogus_dep Qt5 Network
-	punt_bogus_dep KF5 XmlGui
+	ecm_punt_bogus_dep Qt5 Network
+	ecm_punt_bogus_dep KF5 XmlGui
 	# delete non-${PN} translations
 	if [[ ${KDE_BUILD_TYPE} = release ]]; then
 		find po -type f -name "*po" -and -not -name "*${MY_PLUGIN_NAME}plugin" -delete || die
@@ -45,5 +52,5 @@ src_configure() {
 		-DBUILD_hg=OFF
 		-DBUILD_svn=OFF
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/dolphin-plugins-dropbox/dolphin-plugins-dropbox-9999.ebuild b/kde-apps/dolphin-plugins-dropbox/dolphin-plugins-dropbox-9999.ebuild
index dc7db3648e..2c4a4f686d 100644
--- a/kde-apps/dolphin-plugins-dropbox/dolphin-plugins-dropbox-9999.ebuild
+++ b/kde-apps/dolphin-plugins-dropbox/dolphin-plugins-dropbox-9999.ebuild
@@ -3,25 +3,32 @@
 
 EAPI=7
 
-KMNAME="dolphin-plugins"
-KDE_HANDBOOK="false"
+ECM_HANDBOOK="false"
+KDE_ORG_NAME="dolphin-plugins"
 MY_PLUGIN_NAME="dropbox"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Dolphin plugin for Dropbox service integration"
+HOMEPAGE="https://kde.org/applications/system/org.kde.dolphin_plugins"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep dolphin)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/dolphin-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/dolphin-plugins:5
@@ -29,7 +36,7 @@ RDEPEND="${DEPEND}
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 	# delete non-${PN} translations
 	if [[ ${KDE_BUILD_TYPE} = release ]]; then
 		find po -type f -name "*po" -and -not -name "*${MY_PLUGIN_NAME}plugin" -delete || die
@@ -44,5 +51,5 @@ src_configure() {
 		-DBUILD_hg=OFF
 		-DBUILD_svn=OFF
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/dolphin-plugins-git/dolphin-plugins-git-9999.ebuild b/kde-apps/dolphin-plugins-git/dolphin-plugins-git-9999.ebuild
index 9e8570dce9..a871d83d14 100644
--- a/kde-apps/dolphin-plugins-git/dolphin-plugins-git-9999.ebuild
+++ b/kde-apps/dolphin-plugins-git/dolphin-plugins-git-9999.ebuild
@@ -3,25 +3,32 @@
 
 EAPI=7
 
-KMNAME="dolphin-plugins"
-KDE_HANDBOOK="false"
+ECM_HANDBOOK="false"
+KDE_ORG_NAME="dolphin-plugins"
 MY_PLUGIN_NAME="git"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Dolphin plugin for Git integration"
+HOMEPAGE="https://kde.org/applications/system/org.kde.dolphin_plugins"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_kdeapps_dep dolphin)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-apps/dolphin-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/dolphin-plugins:5
@@ -29,10 +36,10 @@ RDEPEND="${DEPEND}
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 	# kxmlgui, qtnetwork only required by dropbox
-	punt_bogus_dep Qt5 Network
-	punt_bogus_dep KF5 XmlGui
+	ecm_punt_bogus_dep Qt5 Network
+	ecm_punt_bogus_dep KF5 XmlGui
 	# delete non-${PN} translations
 	if [[ ${KDE_BUILD_TYPE} = release ]]; then
 		find po -type f -name "*po" -and -not -name "*${MY_PLUGIN_NAME}plugin" -delete || die
@@ -47,5 +54,5 @@ src_configure() {
 		-DBUILD_hg=OFF
 		-DBUILD_svn=OFF
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/dolphin-plugins-mercurial/dolphin-plugins-mercurial-9999.ebuild b/kde-apps/dolphin-plugins-mercurial/dolphin-plugins-mercurial-9999.ebuild
index a450ae2232..d9241f55ce 100644
--- a/kde-apps/dolphin-plugins-mercurial/dolphin-plugins-mercurial-9999.ebuild
+++ b/kde-apps/dolphin-plugins-mercurial/dolphin-plugins-mercurial-9999.ebuild
@@ -3,28 +3,35 @@
 
 EAPI=7
 
-KMNAME="dolphin-plugins"
-KDE_HANDBOOK="false"
+ECM_HANDBOOK="false"
+KDE_ORG_NAME="dolphin-plugins"
 MY_PLUGIN_NAME="hg"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Dolphin plugin for Mercurial integration"
+HOMEPAGE="https://kde.org/applications/system/org.kde.dolphin_plugins"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktexteditor)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_kdeapps_dep dolphin)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktexteditor-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-apps/dolphin-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/dolphin-plugins:5
@@ -32,10 +39,10 @@ RDEPEND="${DEPEND}
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 	# kxmlgui, qtnetwork only required by dropbox
-	punt_bogus_dep Qt5 Network
-	punt_bogus_dep KF5 XmlGui
+	ecm_punt_bogus_dep Qt5 Network
+	ecm_punt_bogus_dep KF5 XmlGui
 	# delete non-${PN} translations
 	if [[ ${KDE_BUILD_TYPE} = release ]]; then
 		find po -type f -name "*po" -and -not -name "*${MY_PLUGIN_NAME}plugin" -delete || die
@@ -50,5 +57,5 @@ src_configure() {
 		-DBUILD_git=OFF
 		-DBUILD_svn=OFF
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/dolphin-plugins-subversion/dolphin-plugins-subversion-9999.ebuild b/kde-apps/dolphin-plugins-subversion/dolphin-plugins-subversion-9999.ebuild
index 61777c6632..af57bd5c3c 100644
--- a/kde-apps/dolphin-plugins-subversion/dolphin-plugins-subversion-9999.ebuild
+++ b/kde-apps/dolphin-plugins-subversion/dolphin-plugins-subversion-9999.ebuild
@@ -3,35 +3,42 @@
 
 EAPI=7
 
-KMNAME="dolphin-plugins"
-KDE_HANDBOOK="false"
+ECM_HANDBOOK="false"
+KDE_ORG_NAME="dolphin-plugins"
 MY_PLUGIN_NAME="svn"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Dolphin plugin for Subversion integration"
+HOMEPAGE="https://kde.org/applications/system/org.kde.dolphin_plugins"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_kdeapps_dep dolphin)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-apps/dolphin-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/dolphin-plugins:5
-	$(add_kdeapps_dep kompare)
+	>=kde-apps/kompare-${PVCUT}:5
 	dev-vcs/subversion
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 	# kxmlgui, qtnetwork only required by dropbox
-	punt_bogus_dep Qt5 Network
-	punt_bogus_dep KF5 XmlGui
+	ecm_punt_bogus_dep Qt5 Network
+	ecm_punt_bogus_dep KF5 XmlGui
 	# delete non-${PN} translations
 	if [[ ${KDE_BUILD_TYPE} = release ]]; then
 		find po -type f -name "*po" -and -not -name "*${MY_PLUGIN_NAME}plugin" -delete || die
@@ -46,5 +53,5 @@ src_configure() {
 		-DBUILD_git=OFF
 		-DBUILD_hg=OFF
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/dolphin/dolphin-9999.ebuild b/kde-apps/dolphin/dolphin-9999.ebuild
index 4f62a1a279..562251b382 100644
--- a/kde-apps/dolphin/dolphin-9999.ebuild
+++ b/kde-apps/dolphin/dolphin-9999.ebuild
@@ -3,56 +3,63 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="true"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Plasma filemanager focusing on usability"
-HOMEPAGE="https://kde.org/applications/system/dolphin https://userbase.kde.org/Dolphin"
+HOMEPAGE="https://kde.org/applications/system/org.kde.dolphin
+https://userbase.kde.org/Dolphin"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="activities semantic-desktop"
 
 DEPEND="
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kinit)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep solid)
-	$(add_qt_dep qtconcurrent)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kinit-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/solid-${KFMIN}:5
+	>=dev-qt/qtconcurrent-${QTMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	media-libs/phonon[qt5(+)]
-	activities? ( $(add_frameworks_dep kactivities) )
+	activities? ( >=kde-frameworks/kactivities-${KFMIN}:5 )
 	semantic-desktop? (
-		$(add_frameworks_dep baloo)
-		$(add_frameworks_dep kfilemetadata)
-		$(add_kdeapps_dep baloo-widgets)
+		>=kde-frameworks/baloo-${KFMIN}:5
+		>=kde-frameworks/kfilemetadata-${KFMIN}:5
+		>=kde-apps/baloo-widgets-${PVCUT}:5
 	)
 "
 RDEPEND="${DEPEND}
-	$(add_kdeapps_dep kio-extras)
+	>=kde-apps/kio-extras-${PVCUT}:5
 "
 
 RESTRICT+=" test"
@@ -65,11 +72,11 @@ src_configure() {
 		$(cmake-utils_use_find_package semantic-desktop KF5FileMetaData)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	if [[ -z "${REPLACING_VERSIONS}" ]]; then
 		has_version "kde-apps/ark:${SLOT}" || \

diff --git a/kde-apps/dragon/dragon-9999.ebuild b/kde-apps/dragon/dragon-9999.ebuild
index 4d5af0ea2e..130be400d3 100644
--- a/kde-apps/dragon/dragon-9999.ebuild
+++ b/kde-apps/dragon/dragon-9999.ebuild
@@ -3,13 +3,16 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
-DESCRIPTION="A simple video player"
-HOMEPAGE="https://kde.org/applications/multimedia/dragonplayer"
+DESCRIPTION="Simple video player"
+HOMEPAGE="https://kde.org/applications/multimedia/org.kde.dragonplayer"
 
 LICENSE="GPL-2+ || ( GPL-2 GPL-3 ) handbook? ( FDL-1.2 )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
@@ -17,24 +20,24 @@ BDEPEND="
 	sys-devel/gettext
 "
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep solid)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/solid-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-libs/phonon[qt5(+)]
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/eventviews/eventviews-9999.ebuild b/kde-apps/eventviews/eventviews-9999.ebuild
index f9f7bd18d8..303c6348a6 100644
--- a/kde-apps/eventviews/eventviews-9999.ebuild
+++ b/kde-apps/eventviews/eventviews-9999.ebuild
@@ -3,38 +3,43 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Calendar viewer for KDE PIM"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 # drop qtgui subslot operator when QT_MINIMAL >= 5.14.0
 DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-calendar)
-	$(add_kdeapps_dep calendarsupport)
-	$(add_kdeapps_dep kcalutils)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep libkdepim)
-	$(add_qt_dep designer)
-	$(add_qt_dep qtgui '' '' '5=')
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-calendar-${PVCUT}:5
+	>=kde-apps/calendarsupport-${PVCUT}:5
+	>=kde-apps/kcalutils-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=dev-qt/designer-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5=
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-libs/kdiagram:5
 	dev-libs/libical
 "

diff --git a/kde-apps/ffmpegthumbs/ffmpegthumbs-9999.ebuild b/kde-apps/ffmpegthumbs/ffmpegthumbs-9999.ebuild
index 90aa888556..db94f14efe 100644
--- a/kde-apps/ffmpegthumbs/ffmpegthumbs-9999.ebuild
+++ b/kde-apps/ffmpegthumbs/ffmpegthumbs-9999.ebuild
@@ -3,10 +3,14 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="FFmpeg based thumbnail generator for video files"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE="libav"
 
@@ -14,11 +18,11 @@ BDEPEND="
 	virtual/pkgconfig
 "
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	libav? ( media-video/libav:= )
 	!libav? ( media-video/ffmpeg:0= )
 "

diff --git a/kde-apps/filelight/filelight-9999.ebuild b/kde-apps/filelight/filelight-9999.ebuild
index b84a3de70b..21ce4020dc 100644
--- a/kde-apps/filelight/filelight-9999.ebuild
+++ b/kde-apps/filelight/filelight-9999.ebuild
@@ -3,25 +3,31 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
-inherit kde5
+ECM_HANDBOOK="optional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Visualise disk usage with interactive map of concentric, segmented rings"
-HOMEPAGE="https://utils.kde.org/projects/filelight/"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.filelight
+https://utils.kde.org/projects/filelight/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/granatier/granatier-9999.ebuild b/kde-apps/granatier/granatier-9999.ebuild
index 8653fcff2d..42b3980ab5 100644
--- a/kde-apps/granatier/granatier-9999.ebuild
+++ b/kde-apps/granatier/granatier-9999.ebuild
@@ -3,28 +3,34 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Bomberman game"
-HOMEPAGE="https://kde.org/applications/games/granatier/"
+HOMEPAGE="https://kde.org/applications/games/org.kde.granatier"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/grantlee-editor/grantlee-editor-9999.ebuild b/kde-apps/grantlee-editor/grantlee-editor-9999.ebuild
index bbd16dad18..c816363975 100644
--- a/kde-apps/grantlee-editor/grantlee-editor-9999.ebuild
+++ b/kde-apps/grantlee-editor/grantlee-editor-9999.ebuild
@@ -3,38 +3,43 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Utilities and tools to manage themes in KDE PIM applications"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep ktexteditor)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep kpimtextedit)
-	$(add_kdeapps_dep messagelib)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwebengine 'widgets')
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/ktexteditor-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/kpimtextedit-${PVCUT}:5
+	>=kde-apps/messagelib-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwebengine-${QTMIN}:5[widgets]
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kaddressbook:4

diff --git a/kde-apps/grantleetheme/grantleetheme-9999.ebuild b/kde-apps/grantleetheme/grantleetheme-9999.ebuild
index a4f2134972..be7ec1e713 100644
--- a/kde-apps/grantleetheme/grantleetheme-9999.ebuild
+++ b/kde-apps/grantleetheme/grantleetheme-9999.ebuild
@@ -3,29 +3,33 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional"
-inherit kde5
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library for Grantlee plugins"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-libs/grantlee:5
 "
 DEPEND="${COMMON_DEPEND}
-	$(add_qt_dep qtnetwork)
+	>=dev-qt/qtnetwork-${QTMIN}:5
 "
 RDEPEND="${COMMON_DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/gwenview/gwenview-9999.ebuild b/kde-apps/gwenview/gwenview-9999.ebuild
index f28ee21351..2c633ddefd 100644
--- a/kde-apps/gwenview/gwenview-9999.ebuild
+++ b/kde-apps/gwenview/gwenview-9999.ebuild
@@ -3,17 +3,19 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="true"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Image viewer by KDE"
-HOMEPAGE="
-	https://kde.org/applications/graphics/gwenview/
-	https://userbase.kde.org/Gwenview
-"
+HOMEPAGE="https://kde.org/applications/graphics/org.kde.gwenview
+https://userbase.kde.org/Gwenview"
 
 LICENSE="GPL-2+ handbook? ( FDL-1.2 )"
+SLOT="5"
 KEYWORDS=""
 IUSE="activities fits kipi +mpris raw semantic-desktop share X"
 
@@ -21,59 +23,59 @@ IUSE="activities fits kipi +mpris raw semantic-desktop share X"
 RESTRICT+=" test"
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep solid)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtopengl)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/solid-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtopengl-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-gfx/exiv2:=
 	media-libs/lcms:2
 	media-libs/libpng:0=
 	media-libs/phonon[qt5(+)]
 	virtual/jpeg:0
-	activities? ( $(add_frameworks_dep kactivities) )
+	activities? ( >=kde-frameworks/kactivities-${KFMIN}:5 )
 	fits? ( sci-libs/cfitsio )
-	kipi? ( $(add_kdeapps_dep libkipi '' '' '5=') )
-	mpris? ( $(add_qt_dep qtdbus) )
-	raw? ( $(add_kdeapps_dep libkdcraw) )
+	kipi? ( >=kde-apps/libkipi-${PVCUT}:5= )
+	mpris? ( >=dev-qt/qtdbus-${QTMIN}:5 )
+	raw? ( >=kde-apps/libkdcraw-${PVCUT}:5 )
 	semantic-desktop? (
-		$(add_frameworks_dep baloo)
-		$(add_frameworks_dep kfilemetadata)
+		>=kde-frameworks/baloo-${KFMIN}:5
+		>=kde-frameworks/kfilemetadata-${KFMIN}:5
 	)
-	share? ( $(add_frameworks_dep purpose) )
+	share? ( >=kde-frameworks/purpose-${KFMIN}:5 )
 	X? (
-		$(add_qt_dep qtx11extras)
+		>=dev-qt/qtx11extras-${QTMIN}:5
 		x11-libs/libX11
 	)
 "
 DEPEND="${COMMON_DEPEND}
-	$(add_frameworks_dep kwindowsystem)
-	$(add_qt_dep qtconcurrent)
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=dev-qt/qtconcurrent-${QTMIN}:5
 "
 RDEPEND="${COMMON_DEPEND}
-	$(add_frameworks_dep kimageformats)
-	$(add_qt_dep qtimageformats)
-	kipi? ( $(add_kdeapps_dep kipi-plugins) )
+	>=kde-frameworks/kimageformats-${KFMIN}:5
+	>=dev-qt/qtimageformats-${QTMIN}:5
+	kipi? ( >=kde-apps/kipi-plugins-${PVCUT}:5 )
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 	if ! use mpris; then
 		# FIXME: upstream a better solution
 		sed -e "/set(HAVE_QTDBUS/s/\${Qt5DBus_FOUND}/0/" -i CMakeLists.txt || die
@@ -96,11 +98,11 @@ src_configure() {
 		mycmakeargs+=( -DGWENVIEW_SEMANTICINFO_BACKEND=None )
 	fi
 
-	kde5_src_configure
+	ecm_src_configure
 }
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	if [[ -z "${REPLACING_VERSIONS}" ]] && ! has_version kde-apps/svgpart:${SLOT} ; then
 		elog "For SVG support, install kde-apps/svgpart:${SLOT}"

diff --git a/kde-apps/incidenceeditor/incidenceeditor-9999.ebuild b/kde-apps/incidenceeditor/incidenceeditor-9999.ebuild
index bac95b1dc4..a62af3bae2 100644
--- a/kde-apps/incidenceeditor/incidenceeditor-9999.ebuild
+++ b/kde-apps/incidenceeditor/incidenceeditor-9999.ebuild
@@ -3,48 +3,53 @@
 
 EAPI=7
 
-KDE_TEST="true"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Incidence editor for korganizer"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-calendar)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep calendarsupport)
-	$(add_kdeapps_dep eventviews)
-	$(add_kdeapps_dep kcalutils)
-	$(add_kdeapps_dep kdepim-apps-libs)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kldap)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep libkdepim)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-calendar-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/calendarsupport-${PVCUT}:5
+	>=kde-apps/eventviews-${PVCUT}:5
+	>=kde-apps/kcalutils-${PVCUT}:5
+	>=kde-apps/kdepim-apps-libs-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kldap-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-libs/kdiagram:5
 "
 RDEPEND="${DEPEND}

diff --git a/kde-apps/juk/juk-9999.ebuild b/kde-apps/juk/juk-9999.ebuild
index d19d86f90d..405e7a3b79 100644
--- a/kde-apps/juk/juk-9999.ebuild
+++ b/kde-apps/juk/juk-9999.ebuild
@@ -3,39 +3,43 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Jukebox and music manager by KDE"
-HOMEPAGE="https://kde.org/applications/multimedia/juk/"
+HOMEPAGE="https://kde.org/applications/multimedia/org.kde.juk"
 
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kglobalaccel)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kglobalaccel-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	media-libs/phonon[qt5(+)]
 	>=media-libs/taglib-1.6
 "

diff --git a/kde-apps/k3b/k3b-9999.ebuild b/kde-apps/k3b/k3b-9999.ebuild
index 23457fc271..e62657fc86 100644
--- a/kde-apps/k3b/k3b-9999.ebuild
+++ b/kde-apps/k3b/k3b-9999.ebuild
@@ -3,14 +3,19 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="true"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Full-featured burning and ripping application based on KDE Frameworks"
-HOMEPAGE="https://userbase.kde.org/K3b"
+HOMEPAGE="https://kde.org/applications/multimedia/org.kde.k3b
+https://userbase.kde.org/K3b"
 
 LICENSE="GPL-2 FDL-1.2"
+SLOT="5"
 KEYWORDS=""
 IUSE="dvd emovix encode ffmpeg flac libav mad mp3 musepack sndfile sox taglib vcd vorbis webkit"
 
@@ -21,31 +26,31 @@ REQUIRED_USE="
 "
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kfilemetadata 'taglib?')
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep solid)
-	$(add_kdeapps_dep libkcddb)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kfilemetadata-${KFMIN}:5[taglib?]
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/solid-${KFMIN}:5
+	>=kde-apps/libkcddb-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	media-libs/libsamplerate
 	dvd? ( media-libs/libdvdread:= )
 	ffmpeg? (
@@ -102,11 +107,11 @@ src_configure() {
 		$(cmake-utils_use_find_package webkit Qt5WebKitWidgets)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	echo
 	elog "If you get warnings on start-up, uncheck the \"Check system"

diff --git a/kde-apps/kaccounts-integration/kaccounts-integration-9999.ebuild b/kde-apps/kaccounts-integration/kaccounts-integration-9999.ebuild
index fb47b876f8..d6d81b96f7 100644
--- a/kde-apps/kaccounts-integration/kaccounts-integration-9999.ebuild
+++ b/kde-apps/kaccounts-integration/kaccounts-integration-9999.ebuild
@@ -3,14 +3,18 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional"
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+PLASMA_MINIMAL=5.16.5
+QTMIN=5.12.3
 VIRTUALDBUS_TEST="true"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Administer web accounts for the sites and services across the Plasma desktop"
 HOMEPAGE="https://community.kde.org/KTp"
-LICENSE="LGPL-2.1"
 
+LICENSE="LGPL-2.1"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
@@ -18,23 +22,23 @@ BDEPEND="
 	sys-devel/gettext
 "
 COMMON_DEPEND="
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	net-libs/accounts-qt
 	>=net-libs/libaccounts-glib-1.21:=
 	net-libs/signond
 "
 DEPEND="${COMMON_DEPEND}
-	$(add_frameworks_dep kcmutils)
-	$(add_plasma_dep kde-cli-tools)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-plasma/kde-cli-tools-${PLASMA_MINIMAL}:5
 "
 RDEPEND="${COMMON_DEPEND}
 	dev-util/intltool

diff --git a/kde-apps/kaccounts-providers/kaccounts-providers-9999.ebuild b/kde-apps/kaccounts-providers/kaccounts-providers-9999.ebuild
index 423010b568..7fad100694 100644
--- a/kde-apps/kaccounts-providers/kaccounts-providers-9999.ebuild
+++ b/kde-apps/kaccounts-providers/kaccounts-providers-9999.ebuild
@@ -3,12 +3,16 @@
 
 EAPI=7
 
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE accounts providers"
 HOMEPAGE="https://community.kde.org/KTp"
-LICENSE="LGPL-2.1"
 
+LICENSE="LGPL-2.1"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
@@ -16,15 +20,15 @@ BDEPEND="
 	dev-util/intltool
 "
 DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kpackage)
-	$(add_kdeapps_dep kaccounts-integration)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kpackage-${KFMIN}:5
+	>=kde-apps/kaccounts-integration-${PVCUT}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	net-libs/signon-ui

diff --git a/kde-apps/kaddressbook/kaddressbook-9999.ebuild b/kde-apps/kaddressbook/kaddressbook-9999.ebuild
index 6880f4f1ff..12e9fc66b0 100644
--- a/kde-apps/kaddressbook/kaddressbook-9999.ebuild
+++ b/kde-apps/kaddressbook/kaddressbook-9999.ebuild
@@ -3,60 +3,64 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Address book application based on KDE Frameworks"
-HOMEPAGE="https://kde.org/applications/office/kaddressbook/"
+HOMEPAGE="https://kde.org/applications/office/org.kde.kaddressbook"
 
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep prison)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-search)
-	$(add_kdeapps_dep grantleetheme)
-	$(add_kdeapps_dep kdepim-apps-libs)
-	$(add_kdeapps_dep kontactinterface)
-	$(add_kdeapps_dep libgravatar)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep libkleo)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/prison-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-search-${PVCUT}:5
+	>=kde-apps/grantleetheme-${PVCUT}:5
+	>=kde-apps/kdepim-apps-libs-${PVCUT}:5
+	>=kde-apps/kontactinterface-${PVCUT}:5
+	>=kde-apps/libgravatar-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/libkleo-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	>=app-crypt/gpgme-1.11.1[cxx,qt5]
 	dev-libs/grantlee:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n
-	$(add_kdeapps_dep kdepim-runtime)
+	>=kde-apps/kdepim-runtime-${PVCUT}:5
 "
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	if [[ -z "${REPLACING_VERSIONS}" ]]; then
 		has_version "kde-apps/kdepim-addons:${SLOT}" || \

diff --git a/kde-apps/kajongg/kajongg-9999.ebuild b/kde-apps/kajongg/kajongg-9999.ebuild
index 4377f345c9..3900de2998 100644
--- a/kde-apps/kajongg/kajongg-9999.ebuild
+++ b/kde-apps/kajongg/kajongg-9999.ebuild
@@ -3,45 +3,51 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 PYTHON_COMPAT=( python3_{6,7} )
-inherit python-single-r1 kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit python-single-r1 ecm kde.org
 
 DESCRIPTION="Classical Mah Jongg for four players"
-HOMEPAGE="https://kde.org/applications/games/kajongg/"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kajongg"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
 
 DEPEND="${PYTHON_DEPS}
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep ki18n)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-db/sqlite:3
 	dev-python/PyQt5[gui,svg,widgets,${PYTHON_USEDEP}]
 	>=dev-python/twisted-16.6.0[${PYTHON_USEDEP}]
 "
 RDEPEND="${DEPEND}
-	$(add_kdeapps_dep libkmahjongg)
+	>=kde-apps/libkmahjongg-${PVCUT}:5
 "
 
 pkg_setup() {
 	python-single-r1_pkg_setup
-	kde5_pkg_setup
+	ecm_pkg_setup
 }
 
 src_prepare() {
 	python_fix_shebang src
-	kde5_src_prepare
+	ecm_src_prepare
 	sed -i -e "/KDE_ADD_PYTHON_EXECUTABLE/s/^/#DONT/" CMakeLists.txt || die
 }
 
 src_install() {
-	kde5_src_install
+	ecm_src_install
 	dosym ../share/kajongg/kajongg.py /usr/bin/kajongg
 	dosym ../share/kajongg/kajonggserver.py /usr/bin/kajonggserver
 	fperms a+x /usr/share/kajongg/kajongg{,server}.py

diff --git a/kde-apps/kalarm/kalarm-9999.ebuild b/kde-apps/kalarm/kalarm-9999.ebuild
index 682ec1cabc..19c25eefca 100644
--- a/kde-apps/kalarm/kalarm-9999.ebuild
+++ b/kde-apps/kalarm/kalarm-9999.ebuild
@@ -3,12 +3,18 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Application to manage alarms and other timer based alerts for the desktop"
-HOMEPAGE+=" https://userbase.kde.org/KAlarm"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kalarm
+https://userbase.kde.org/KAlarm"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE="X"
 
@@ -16,58 +22,58 @@ BDEPEND="
 	dev-libs/libxslt
 "
 DEPEND="
-	$(add_frameworks_dep kauth)
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kglobalaccel)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep kholidays)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep kalarmcal)
-	$(add_kdeapps_dep kcalutils)
-	$(add_kdeapps_dep kdepim-apps-libs)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep kontactinterface)
-	$(add_kdeapps_dep kpimtextedit)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep mailcommon)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kauth-${KFMIN}:5
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kglobalaccel-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/kholidays-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/kalarmcal-${PVCUT}:5
+	>=kde-apps/kcalutils-${PVCUT}:5
+	>=kde-apps/kdepim-apps-libs-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/kontactinterface-${PVCUT}:5
+	>=kde-apps/kpimtextedit-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/mailcommon-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-libs/phonon[qt5(+)]
 	X? (
-		$(add_qt_dep qtx11extras)
+		>=dev-qt/qtx11extras-${QTMIN}:5
 		x11-libs/libX11
 	)
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n
-	$(add_kdeapps_dep kdepim-runtime)
+	>=kde-apps/kdepim-runtime-${PVCUT}:5
 "
 
 src_configure() {
@@ -76,5 +82,5 @@ src_configure() {
 		$(cmake-utils_use_find_package X X11)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kalarmcal/kalarmcal-9999.ebuild b/kde-apps/kalarmcal/kalarmcal-9999.ebuild
index b151247463..f2d7dea0c3 100644
--- a/kde-apps/kalarmcal/kalarmcal-9999.ebuild
+++ b/kde-apps/kalarmcal/kalarmcal-9999.ebuild
@@ -3,26 +3,31 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Client library to access and handling of KAlarm calendar data"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kholidays)
-	$(add_frameworks_dep ki18n)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep kcalutils)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_qt_dep qtgui)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kholidays-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/kcalutils-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
 "
 DEPEND="${COMMON_DEPEND}
-	test? ( $(add_qt_dep qtdbus) )
+	test? ( >=dev-qt/qtdbus-${QTMIN}:5 )
 "
 RDEPEND="${COMMON_DEPEND}
 	!kde-apps/kdepim-l10n
@@ -30,5 +35,5 @@ RDEPEND="${COMMON_DEPEND}
 "
 
 src_test() {
-	LANG="C" kde5_src_test #bug 665626
+	LANG="C" ecm_src_test #bug 665626
 }

diff --git a/kde-apps/kalgebra/kalgebra-9999.ebuild b/kde-apps/kalgebra/kalgebra-9999.ebuild
index b7a334eb78..b997a6ef6e 100644
--- a/kde-apps/kalgebra/kalgebra-9999.ebuild
+++ b/kde-apps/kalgebra/kalgebra-9999.ebuild
@@ -3,33 +3,40 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
-inherit kde5
+ECM_HANDBOOK="optional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="MathML-based 2D and 3D graph calculator by KDE"
-HOMEPAGE="https://kde.org/applications/education/kalgebra https://edu.kde.org/kalgebra/"
+HOMEPAGE="https://kde.org/applications/education/org.kde.kalgebra
+https://edu.kde.org/kalgebra/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="readline"
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep analitza)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwebengine 'widgets')
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/analitza-${PVCUT}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwebengine-${QTMIN}:5[widgets]
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	readline? ( sys-libs/readline:0= )
 "
 RDEPEND="${DEPEND}
-	$(add_frameworks_dep kirigami)
-	$(add_qt_dep qtquickcontrols)
+	>=kde-frameworks/kirigami-${KFMIN}:5
+	>=dev-qt/qtquickcontrols-${QTMIN}:5
 "
 
 src_configure() {
@@ -37,5 +44,5 @@ src_configure() {
 		$(cmake-utils_use_find_package readline Readline)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kalzium/kalzium-9999.ebuild b/kde-apps/kalzium/kalzium-9999.ebuild
index 82a45387f2..6c673fc51e 100644
--- a/kde-apps/kalzium/kalzium-9999.ebuild
+++ b/kde-apps/kalzium/kalzium-9999.ebuild
@@ -3,35 +3,41 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5 flag-o-matic
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org flag-o-matic
 
 DESCRIPTION="Periodic table of the elements"
-HOMEPAGE="https://kde.org/applications/education/kalzium https://edu.kde.org/kalzium/"
+HOMEPAGE="https://kde.org/applications/education/org.kde.kalzium
+https://edu.kde.org/kalzium/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="editor solver"
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kplotting)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kunitconversion)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtscript)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kplotting-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kunitconversion-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtscript-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	editor? (
-		$(add_frameworks_dep knewstuff)
-		$(add_qt_dep qtopengl)
+		>=kde-frameworks/knewstuff-${KFMIN}:5
+		>=dev-qt/qtopengl-${QTMIN}:5
 		dev-cpp/eigen:3
 		sci-chemistry/openbabel
 		sci-libs/avogadrolibs[qt5]
@@ -54,5 +60,5 @@ src_configure(){
 		$(cmake-utils_use_find_package solver Libfacile)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kamera/kamera-9999.ebuild b/kde-apps/kamera/kamera-9999.ebuild
index b686c71302..58d362611b 100644
--- a/kde-apps/kamera/kamera-9999.ebuild
+++ b/kde-apps/kamera/kamera-9999.ebuild
@@ -3,11 +3,16 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Plasma integration for gphoto2 cameras"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kamera"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2 )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
@@ -15,15 +20,15 @@ BDEPEND="
 	sys-devel/gettext
 "
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-libs/libgphoto2:=
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kamoso/kamoso-9999.ebuild b/kde-apps/kamoso/kamoso-9999.ebuild
index 2998993a16..3938f0701e 100644
--- a/kde-apps/kamoso/kamoso-9999.ebuild
+++ b/kde-apps/kamoso/kamoso-9999.ebuild
@@ -3,34 +3,38 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Application to take pictures and videos from your webcam by KDE"
-HOMEPAGE="https://userbase.kde.org/Kamoso"
+HOMEPAGE="https://kde.org/applications/multimedia/org.kde.kamoso
+https://userbase.kde.org/Kamoso"
 
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep purpose)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/purpose-${KFMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-libs/glib:2
 	media-libs/gst-plugins-base:1.0
 	virtual/opengl
 "
 RDEPEND="${DEPEND}
-	$(add_frameworks_dep kirigami)
-	$(add_qt_dep qtquickcontrols2)
+	>=kde-frameworks/kirigami-${KFMIN}:5
+	>=dev-qt/qtquickcontrols2-${QTMIN}:5
 	media-plugins/gst-plugins-jpeg:1.0
 	media-plugins/gst-plugins-libpng:1.0
 	media-plugins/gst-plugins-meta:1.0[alsa,theora,vorbis,v4l]

diff --git a/kde-apps/kanagram/kanagram-9999.ebuild b/kde-apps/kanagram/kanagram-9999.ebuild
index 8d3318d315..93ea704754 100644
--- a/kde-apps/kanagram/kanagram-9999.ebuild
+++ b/kde-apps/kanagram/kanagram-9999.ebuild
@@ -3,36 +3,43 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Game based on anagrams of words"
-HOMEPAGE="https://kde.org/applications/education/kanagram https://edu.kde.org/kanagram/"
+HOMEPAGE="https://kde.org/applications/education/org.kde.kanagram
+https://edu.kde.org/kanagram/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="speech"
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep sonnet)
-	$(add_kdeapps_dep libkeduvocdocument)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/sonnet-${KFMIN}:5
+	>=kde-apps/libkeduvocdocument-${PVCUT}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-libs/phonon[qt5(+)]
-	speech? ( $(add_qt_dep qtspeech) )
+	speech? ( >=dev-qt/qtspeech-${QTMIN}:5 )
 "
 RDEPEND="${DEPEND}
-	$(add_kdeapps_dep kdeedu-data)
-	$(add_qt_dep qtmultimedia 'qml')
-	$(add_qt_dep qtquickcontrols)
+	>=kde-apps/kdeedu-data-${PVCUT}:5
+	>=dev-qt/qtmultimedia-${QTMIN}:5[qml]
+	>=dev-qt/qtquickcontrols-${QTMIN}:5
 "
 
 src_configure() {
@@ -40,5 +47,5 @@ src_configure() {
 		$(cmake-utils_use_find_package speech Qt5TextToSpeech)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kapman/kapman-9999.ebuild b/kde-apps/kapman/kapman-9999.ebuild
index 93038f4786..96702b5749 100644
--- a/kde-apps/kapman/kapman-9999.ebuild
+++ b/kde-apps/kapman/kapman-9999.ebuild
@@ -3,27 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Pac-Man clone by KDE"
-HOMEPAGE="https://kde.org/applications/games/kapman/"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kapman"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kapptemplate/kapptemplate-9999.ebuild b/kde-apps/kapptemplate/kapptemplate-9999.ebuild
index 8650c30168..5453d4dc3b 100644
--- a/kde-apps/kapptemplate/kapptemplate-9999.ebuild
+++ b/kde-apps/kapptemplate/kapptemplate-9999.ebuild
@@ -3,25 +3,30 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Shell script to create the necessary framework to develop KDE applications"
-HOMEPAGE="https://kde.org/applications/development/kapptemplate"
+HOMEPAGE="https://kde.org/applications/development/org.kde.kapptemplate"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kate/kate-9999.ebuild b/kde-apps/kate/kate-9999.ebuild
index 2ec3dd1e90..9258d0d75d 100644
--- a/kde-apps/kate/kate-9999.ebuild
+++ b/kde-apps/kate/kate-9999.ebuild
@@ -3,54 +3,59 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
-KDE_TEST="true"
+ECM_HANDBOOK="optional"
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Multi-document editor with network transparency, Plasma integration and more"
-HOMEPAGE="https://kde.org/applications/utilities/kate https://kate-editor.org/"
+HOMEPAGE="https://kate-editor.org/
+https://kde.org/applications/utilities/org.kde.kate"
 
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="activities +filebrowser lspclient +projects plasma +snippets sql"
 
 DEPEND="
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktexteditor)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
-	activities? ( $(add_frameworks_dep kactivities) )
-	filebrowser? ( $(add_frameworks_dep kbookmarks) )
-	lspclient? ( $(add_frameworks_dep kitemmodels) )
-	plasma? ( $(add_frameworks_dep plasma) )
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktexteditor-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
+	activities? ( >=kde-frameworks/kactivities-${KFMIN}:5 )
+	filebrowser? ( >=kde-frameworks/kbookmarks-${KFMIN}:5 )
+	lspclient? ( >=kde-frameworks/kitemmodels-${KFMIN}:5 )
+	plasma? ( >=kde-frameworks/plasma-${KFMIN}:5 )
 	projects? (
-		$(add_frameworks_dep knewstuff)
-		$(add_frameworks_dep threadweaver)
+		>=kde-frameworks/knewstuff-${KFMIN}:5
+		>=kde-frameworks/threadweaver-${KFMIN}:5
 	)
-	snippets? ( $(add_frameworks_dep knewstuff) )
+	snippets? ( >=kde-frameworks/knewstuff-${KFMIN}:5 )
 	sql? (
-		$(add_frameworks_dep kwallet)
-		$(add_qt_dep qtsql)
+		>=kde-frameworks/kwallet-${KFMIN}:5
+		>=dev-qt/qtsql-${QTMIN}:5
 	)
 "
 RDEPEND="${DEPEND}
@@ -58,7 +63,7 @@ RDEPEND="${DEPEND}
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 
 	# delete colliding kwrite translations
 	if [[ ${KDE_BUILD_TYPE} = release ]]; then
@@ -79,7 +84,7 @@ src_configure() {
 		-DBUILD_kwrite=FALSE
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }
 
 src_test() {
@@ -88,11 +93,11 @@ src_test() {
 		-E "(session_manager_test|sessions_action_test)"
 	)
 
-	kde5_src_test
+	ecm_src_test
 }
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	if [[ -z "${REPLACING_VERSIONS}" ]]; then
 		elog "The functionality of ktexteditorpreview plugin can be extended with:"

diff --git a/kde-apps/katomic/katomic-9999.ebuild b/kde-apps/katomic/katomic-9999.ebuild
index 038b9d00ea..27ac8047a0 100644
--- a/kde-apps/katomic/katomic-9999.ebuild
+++ b/kde-apps/katomic/katomic-9999.ebuild
@@ -3,29 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Atomic Entertainment Game"
-HOMEPAGE="
-	https://kde.org/applications/games/katomic/
-	https://games.kde.org/game.php?game=katomic
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.katomic
+https://games.kde.org/game.php?game=katomic"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kbackup/kbackup-9999.ebuild b/kde-apps/kbackup/kbackup-9999.ebuild
index 46cfa74559..d66129e0fb 100644
--- a/kde-apps/kbackup/kbackup-9999.ebuild
+++ b/kde-apps/kbackup/kbackup-9999.ebuild
@@ -3,28 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Program that lets you back up any directories or files"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kbackup"
+
 LICENSE="GPL-2"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kblackbox/kblackbox-9999.ebuild b/kde-apps/kblackbox/kblackbox-9999.ebuild
index f05c8f2261..052f3e4f4f 100644
--- a/kde-apps/kblackbox/kblackbox-9999.ebuild
+++ b/kde-apps/kblackbox/kblackbox-9999.ebuild
@@ -3,29 +3,36 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Game of hide and seek played on a grid of boxes"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kblackbox"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kblocks/kblocks-9999.ebuild b/kde-apps/kblocks/kblocks-9999.ebuild
index 3c2bd38102..30cbf3eaca 100644
--- a/kde-apps/kblocks/kblocks-9999.ebuild
+++ b/kde-apps/kblocks/kblocks-9999.ebuild
@@ -3,26 +3,32 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Single-player Tetris-like KDE game"
-HOMEPAGE="https://kde.org/applications/games/kblocks/"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kblocks"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kblog/kblog-9999.ebuild b/kde-apps/kblog/kblog-9999.ebuild
index 6975c2c131..5964b67a8b 100644
--- a/kde-apps/kblog/kblog-9999.ebuild
+++ b/kde-apps/kblog/kblog-9999.ebuild
@@ -3,21 +3,25 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+KFMIN=5.63.0
+inherit ecm kde.org
 
 DESCRIPTION="Library providing client-side support for web application remote blogging APIs"
+HOMEPAGE="https://api.kde.org/kdepim/kblog/html/index.html"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kxmlrpcclient)
-	$(add_frameworks_dep syndication)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kxmlrpcclient-${KFMIN}:5
+	>=kde-frameworks/syndication-${KFMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/kbounce/kbounce-9999.ebuild b/kde-apps/kbounce/kbounce-9999.ebuild
index d9d6cdbb9d..ad42bb674f 100644
--- a/kde-apps/kbounce/kbounce-9999.ebuild
+++ b/kde-apps/kbounce/kbounce-9999.ebuild
@@ -3,32 +3,36 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Bounce Ball Game"
-HOMEPAGE="
-	https://kde.org/applications/games/kbounce/
-	https://games.kde.org/game.php?game=kbounce
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kbounce
+https://games.kde.org/game.php?game=kbounce"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kbreakout/kbreakout-9999.ebuild b/kde-apps/kbreakout/kbreakout-9999.ebuild
index 5bf67a8247..db1223efa1 100644
--- a/kde-apps/kbreakout/kbreakout-9999.ebuild
+++ b/kde-apps/kbreakout/kbreakout-9999.ebuild
@@ -3,30 +3,34 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Breakout-like game by KDE"
-HOMEPAGE="
-	https://kde.org/applications/games/kbreakout/
-	https://games.kde.org/game.php?game=kbreakout
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kbreakout
+https://games.kde.org/game.php?game=kbreakout"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kbruch/kbruch-9999.ebuild b/kde-apps/kbruch/kbruch-9999.ebuild
index 8b1f5adefa..abae0d4233 100644
--- a/kde-apps/kbruch/kbruch-9999.ebuild
+++ b/kde-apps/kbruch/kbruch-9999.ebuild
@@ -3,22 +3,28 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Educational application to learn calculating with fractions"
-HOMEPAGE="https://kde.org/applications/education/kbruch https://edu.kde.org/kbruch/"
+HOMEPAGE="https://kde.org/applications/education/org.kde.kbruch
+https://edu.kde.org/kbruch/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kcachegrind/kcachegrind-9999.ebuild b/kde-apps/kcachegrind/kcachegrind-9999.ebuild
index 5c9b673d8d..2afb092e84 100644
--- a/kde-apps/kcachegrind/kcachegrind-9999.ebuild
+++ b/kde-apps/kcachegrind/kcachegrind-9999.ebuild
@@ -3,32 +3,37 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Frontend for Cachegrind by KDE"
-HOMEPAGE="https://kde.org/applications/development/kcachegrind
+HOMEPAGE="https://kde.org/applications/development/org.kde.kcachegrind
 https://kcachegrind.github.io/html/Home.html"
+
+LICENSE="GPL-2"
+SLOT="5"
 KEYWORDS=""
 IUSE="nls"
 
 BDEPEND="
-	nls? ( $(add_qt_dep linguist-tools) )
+	nls? ( >=dev-qt/linguist-tools-${QTMIN}:5 )
 "
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	media-gfx/graphviz

diff --git a/kde-apps/kcalc/kcalc-9999.ebuild b/kde-apps/kcalc/kcalc-9999.ebuild
index a4b03b6f37..90dfc97619 100644
--- a/kde-apps/kcalc/kcalc-9999.ebuild
+++ b/kde-apps/kcalc/kcalc-9999.ebuild
@@ -3,13 +3,18 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="true"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE calculator"
-HOMEPAGE="https://kde.org/applications/utilities/kcalc
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kcalc
 https://utils.kde.org/projects/kcalc/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
@@ -17,19 +22,19 @@ BDEPEND="
 	sys-devel/gettext
 "
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kinit)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kinit-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	dev-libs/gmp:0=
 	dev-libs/mpfr:0=
 "

diff --git a/kde-apps/kcalutils/kcalutils-9999.ebuild b/kde-apps/kcalutils/kcalutils-9999.ebuild
index 671d0e84d0..a755070288 100644
--- a/kde-apps/kcalutils/kcalutils-9999.ebuild
+++ b/kde-apps/kcalutils/kcalutils-9999.ebuild
@@ -3,27 +3,33 @@
 
 EAPI=7
 
-KDE_TEST="true"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Library providing utility functions for the handling of calendar data"
+HOMEPAGE="https://api.kde.org/kdepim/kcalutils/html/index.html"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-libs/grantlee:5
 "
 RDEPEND="${DEPEND}
@@ -35,5 +41,5 @@ src_test() {
 	local myctestargs=(
 		-E "(kcalutils-testincidenceformatter)"
 	)
-	kde5_src_test
+	ecm_src_test
 }

diff --git a/kde-apps/kcharselect/kcharselect-9999.ebuild b/kde-apps/kcharselect/kcharselect-9999.ebuild
index 5f3f0a8209..dbcc05c21d 100644
--- a/kde-apps/kcharselect/kcharselect-9999.ebuild
+++ b/kde-apps/kcharselect/kcharselect-9999.ebuild
@@ -3,24 +3,29 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE character selection utility"
-HOMEPAGE="https://kde.org/applications/utilities/kcharselect
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kcharselect
 https://utils.kde.org/projects/kcharselect/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kcolorchooser/kcolorchooser-9999.ebuild b/kde-apps/kcolorchooser/kcolorchooser-9999.ebuild
index f256418998..ed4b6a1d9c 100644
--- a/kde-apps/kcolorchooser/kcolorchooser-9999.ebuild
+++ b/kde-apps/kcolorchooser/kcolorchooser-9999.ebuild
@@ -3,20 +3,23 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE color selector/editor"
-HOMEPAGE="https://kde.org/applications/graphics/kcolorchooser/"
+HOMEPAGE="https://kde.org/applications/graphics/org.kde.kcolorchooser"
 
 LICENSE="MIT"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kcron/kcron-9999.ebuild b/kde-apps/kcron/kcron-9999.ebuild
index c5e1b37e17..e3c89404d4 100644
--- a/kde-apps/kcron/kcron-9999.ebuild
+++ b/kde-apps/kcron/kcron-9999.ebuild
@@ -3,23 +3,29 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Task Scheduler"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kcron"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	virtual/cron

diff --git a/kde-apps/kdav/kdav-9999.ebuild b/kde-apps/kdav/kdav-9999.ebuild
index a3ea9a026b..1c15333855 100644
--- a/kde-apps/kdav/kdav-9999.ebuild
+++ b/kde-apps/kdav/kdav-9999.ebuild
@@ -3,21 +3,26 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional"
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="DAV protocol implemention with KJobs"
+HOMEPAGE="https://api.kde.org/kdepim/kdav/html/index.html"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kio)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtxml)
-	$(add_qt_dep qtxmlpatterns)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
+	>=dev-qt/qtxmlpatterns-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n
@@ -29,5 +34,5 @@ src_test() {
 	local myctestargs=(
 		-E "(kdav-davitemfetchjob|kdav-davitemslistjob)"
 	)
-	kde5_src_test
+	ecm_src_test
 }

diff --git a/kde-apps/kde-dev-scripts/kde-dev-scripts-9999.ebuild b/kde-apps/kde-dev-scripts/kde-dev-scripts-9999.ebuild
index 719b24ccaf..ce0a0850be 100644
--- a/kde-apps/kde-dev-scripts/kde-dev-scripts-9999.ebuild
+++ b/kde-apps/kde-dev-scripts/kde-dev-scripts-9999.ebuild
@@ -3,18 +3,22 @@
 
 EAPI=7
 
-KDE_HANDBOOK="true"
-inherit kde5
+ECM_HANDBOOK="true"
+KFMIN=5.63.0
+inherit ecm kde.org
 
 DESCRIPTION="KDE Development Scripts"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 # kdelibs4support - required for kdex.dtd
 # kdoctools - to use ECM instead of kdelibs4
 DEPEND="
-	$(add_frameworks_dep kdelibs4support)
-	$(add_frameworks_dep kdoctools)
+	>=kde-frameworks/kdelibs4support-${KFMIN}:5
+	>=kde-frameworks/kdoctools-${KFMIN}:5
 "
 RDEPEND="
 	app-arch/advancecomp
@@ -23,7 +27,7 @@ RDEPEND="
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 
 	# bug 275069
 	sed -e 's:colorsvn::' -i CMakeLists.txt || die

diff --git a/kde-apps/kde-dev-utils/kde-dev-utils-9999.ebuild b/kde-apps/kde-dev-utils/kde-dev-utils-9999.ebuild
index df9bd1b337..3e9c6bbc76 100644
--- a/kde-apps/kde-dev-utils/kde-dev-utils-9999.ebuild
+++ b/kde-apps/kde-dev-utils/kde-dev-utils-9999.ebuild
@@ -3,25 +3,29 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Development Utilities"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep designer)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/designer-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kdebugsettings/kdebugsettings-9999.ebuild b/kde-apps/kdebugsettings/kdebugsettings-9999.ebuild
index c7c2a49a2b..2fdce7c2d1 100644
--- a/kde-apps/kdebugsettings/kdebugsettings-9999.ebuild
+++ b/kde-apps/kdebugsettings/kdebugsettings-9999.ebuild
@@ -3,24 +3,30 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional"
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Application to enable/disable qCDebug"
+HOMEPAGE="https://kde.org/applications/development/org.kde.kdebugsettings"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"
 

diff --git a/kde-apps/kdegraphics-mobipocket/kdegraphics-mobipocket-9999.ebuild b/kde-apps/kdegraphics-mobipocket/kdegraphics-mobipocket-9999.ebuild
index a46eb3c13e..a0bc0424ce 100644
--- a/kde-apps/kdegraphics-mobipocket/kdegraphics-mobipocket-9999.ebuild
+++ b/kde-apps/kdegraphics-mobipocket/kdegraphics-mobipocket-9999.ebuild
@@ -3,15 +3,20 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library to support mobipocket ebooks"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="+thumbnail"
 
 DEPEND="
-	$(add_qt_dep qtgui)
-	thumbnail? ( $(add_frameworks_dep kio) )
+	>=dev-qt/qtgui-${QTMIN}:5
+	thumbnail? ( >=kde-frameworks/kio-${KFMIN}:5 )
 "
 RDEPEND="${DEPEND}"
 
@@ -20,5 +25,5 @@ src_configure() {
 		-DBUILD_thumbnailers=$(usex thumbnail)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kdemultimedia-meta/kdemultimedia-meta-9999.ebuild b/kde-apps/kdemultimedia-meta/kdemultimedia-meta-9999.ebuild
index b17c577b3e..964617dc6a 100644
--- a/kde-apps/kdemultimedia-meta/kdemultimedia-meta-9999.ebuild
+++ b/kde-apps/kdemultimedia-meta/kdemultimedia-meta-9999.ebuild
@@ -4,10 +4,8 @@
 EAPI=7
 
 DESCRIPTION="kdemultimedia - merge this to pull in all kdemultimedia-derived packages"
-HOMEPAGE="
-	https://kde.org/applications/multimedia/
-	https://multimedia.kde.org/
-"
+HOMEPAGE="https://kde.org/applications/multimedia/
+https://multimedia.kde.org/"
 
 LICENSE="metapackage"
 SLOT="5"

diff --git a/kde-apps/kdenetwork-filesharing/kdenetwork-filesharing-9999.ebuild b/kde-apps/kdenetwork-filesharing/kdenetwork-filesharing-9999.ebuild
index 2d11f40090..5455c72da3 100644
--- a/kde-apps/kdenetwork-filesharing/kdenetwork-filesharing-9999.ebuild
+++ b/kde-apps/kdenetwork-filesharing/kdenetwork-filesharing-9999.ebuild
@@ -3,20 +3,26 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="SMB filesharing config module for systemsettings"
+HOMEPAGE="https://kde.org/applications/system/org.kde.kdenetwork_filesharing"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"
 
@@ -25,5 +31,5 @@ src_configure() {
 		-DCMAKE_DISABLE_FIND_PACKAGE_PackageKitQt5=ON
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kdenlive/kdenlive-9999.ebuild b/kde-apps/kdenlive/kdenlive-9999.ebuild
index b3aef4577a..5180e200af 100644
--- a/kde-apps/kdenlive/kdenlive-9999.ebuild
+++ b/kde-apps/kdenlive/kdenlive-9999.ebuild
@@ -3,15 +3,18 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
-KDE_TEST="true"
+ECM_HANDBOOK="optional"
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Non-linear video editing suite by KDE"
-HOMEPAGE="https://www.kdenlive.org/"
+HOMEPAGE="https://kdenlive.org/en/"
 
 LICENSE="GPL-2"
+SLOT="5"
 KEYWORDS=""
 IUSE="freesound gles2 semantic-desktop share v4l"
 
@@ -19,47 +22,47 @@ BDEPEND="
 	sys-devel/gettext
 "
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep solid)
-	$(add_qt_dep qtconcurrent)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui 'gles2=')
-	$(add_qt_dep qtmultimedia)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/solid-${KFMIN}:5
+	>=dev-qt/qtconcurrent-${QTMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5[gles2=]
+	>=dev-qt/qtmultimedia-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	dev-cpp/rttr
 	>=media-libs/mlt-6.16.0[ffmpeg,frei0r,kdenlive,melt,qt5,sdl,xml]
 	freesound? ( >=dev-qt/qtwebkit-5.212.0_pre20180120:5 )
-	semantic-desktop? ( $(add_frameworks_dep kfilemetadata) )
-	share? ( $(add_frameworks_dep purpose) )
+	semantic-desktop? ( >=kde-frameworks/kfilemetadata-${KFMIN}:5 )
+	share? ( >=kde-frameworks/purpose-${KFMIN}:5 )
 	v4l? ( media-libs/libv4l )
 "
 RDEPEND="${DEPEND}
-	$(add_qt_dep qtquickcontrols)
+	>=dev-qt/qtquickcontrols-${QTMIN}:5
 	virtual/ffmpeg[encode,sdl,X]
 "
 
@@ -71,11 +74,11 @@ src_configure() {
 		$(cmake-utils_use_find_package v4l LibV4L2)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	# Gentoo bug 603168
 	if ! has_version "media-libs/mlt[fftw]" ; then

diff --git a/kde-apps/kdepim-addons/kdepim-addons-9999.ebuild b/kde-apps/kdepim-addons/kdepim-addons-9999.ebuild
index 62f46524fe..4b821ef555 100644
--- a/kde-apps/kdepim-addons/kdepim-addons-9999.ebuild
+++ b/kde-apps/kdepim-addons/kdepim-addons-9999.ebuild
@@ -3,61 +3,65 @@
 
 EAPI=7
 
-KDE_EXAMPLES="true"
-KDE_TEST="forceoptional-recursive"
+ECM_EXAMPLES="true"
+ECM_TEST="forceoptional-recursive"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Plugins for KDE Personal Information Management Suite"
-HOMEPAGE="https://kde.org/applications/office/kontact/"
+HOMEPAGE="https://kde.org/applications/office/org.kde.kontact"
 
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE="importwizard markdown"
 
 # drop qtwidgets subslot operator when QT_MINIMAL >= 5.14.0
 COMMON_DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep prison)
-	$(add_frameworks_dep syntax-highlighting)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-notes)
-	$(add_kdeapps_dep calendarsupport)
-	$(add_kdeapps_dep eventviews)
-	$(add_kdeapps_dep grantleetheme)
-	$(add_kdeapps_dep incidenceeditor)
-	$(add_kdeapps_dep kdepim-apps-libs)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kimap)
-	$(add_kdeapps_dep kitinerary)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep kontactinterface)
-	$(add_kdeapps_dep kpkpass)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep libkleo)
-	$(add_kdeapps_dep libksieve)
-	$(add_kdeapps_dep libktnef)
-	$(add_kdeapps_dep mailcommon)
-	$(add_kdeapps_dep messagelib)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets '' '' '5=')
-	$(add_qt_dep qtxml)
-	importwizard? ( $(add_kdeapps_dep akonadi-import-wizard) )
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/prison-${KFMIN}:5
+	>=kde-frameworks/syntax-highlighting-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-notes-${PVCUT}:5
+	>=kde-apps/calendarsupport-${PVCUT}:5
+	>=kde-apps/eventviews-${PVCUT}:5
+	>=kde-apps/grantleetheme-${PVCUT}:5
+	>=kde-apps/incidenceeditor-${PVCUT}:5
+	>=kde-apps/kdepim-apps-libs-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kimap-${PVCUT}:5
+	>=kde-apps/kitinerary-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/kontactinterface-${PVCUT}:5
+	>=kde-apps/kpkpass-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/libkleo-${PVCUT}:5
+	>=kde-apps/libksieve-${PVCUT}:5
+	>=kde-apps/libktnef-${PVCUT}:5
+	>=kde-apps/mailcommon-${PVCUT}:5
+	>=kde-apps/messagelib-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5=
+	>=dev-qt/qtxml-${QTMIN}:5
+	importwizard? ( >=kde-apps/akonadi-import-wizard-${PVCUT}:5 )
 	markdown? ( app-text/discount )
 "
 DEPEND="${COMMON_DEPEND}
@@ -78,11 +82,11 @@ src_configure() {
 		$(cmake-utils_use_find_package markdown Discount)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	if [[ ${KDE_BUILD_TYPE} = live ]] && ! has_version "kde-misc/kregexpeditor" ; then
 		elog "${PN} Sieve editor plugin can make use of kde-misc/kregexpeditor if installed."

diff --git a/kde-apps/kdepim-apps-libs/kdepim-apps-libs-9999.ebuild b/kde-apps/kdepim-apps-libs/kdepim-apps-libs-9999.ebuild
index 9b91eae1af..8eb2ef2d8c 100644
--- a/kde-apps/kdepim-apps-libs/kdepim-apps-libs-9999.ebuild
+++ b/kde-apps/kdepim-apps-libs/kdepim-apps-libs-9999.ebuild
@@ -3,33 +3,39 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Libraries for KDE PIM applications"
+HOMEPAGE="https://kde.org/applications/office/org.kde.kontact"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep prison)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep grantleetheme)
-	$(add_kdeapps_dep libkleo)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/prison-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/grantleetheme-${PVCUT}:5
+	>=kde-apps/libkleo-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	>=dev-libs/grantlee-5.1.0:5
 "
 RDEPEND="${DEPEND}

diff --git a/kde-apps/kdepim-meta/kdepim-meta-9999.ebuild b/kde-apps/kdepim-meta/kdepim-meta-9999.ebuild
index 3f60686af9..938a967af6 100644
--- a/kde-apps/kdepim-meta/kdepim-meta-9999.ebuild
+++ b/kde-apps/kdepim-meta/kdepim-meta-9999.ebuild
@@ -4,7 +4,7 @@
 EAPI=7
 
 DESCRIPTION="KDE PIM - merge this to pull in all kdepim-derived packages"
-HOMEPAGE="https://kde.org/applications/development"
+HOMEPAGE="https://kde.org/applications/office/org.kde.kontact"
 
 LICENSE="metapackage"
 SLOT="5"

diff --git a/kde-apps/kdepim-runtime/kdepim-runtime-9999.ebuild b/kde-apps/kdepim-runtime/kdepim-runtime-9999.ebuild
index 6a882de56e..a981f5e1fa 100644
--- a/kde-apps/kdepim-runtime/kdepim-runtime-9999.ebuild
+++ b/kde-apps/kdepim-runtime/kdepim-runtime-9999.ebuild
@@ -3,13 +3,19 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Runtime plugin collection to extend the functionality of KDE PIM"
+HOMEPAGE="https://kde.org/applications/office/org.kde.kontact"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
@@ -18,56 +24,56 @@ BDEPEND="
 	dev-libs/libxslt
 "
 COMMON_DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kholidays)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-calendar)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep akonadi-notes)
-	$(add_kdeapps_dep kalarmcal)
-	$(add_kdeapps_dep kcalutils)
-	$(add_kdeapps_dep kdav)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kimap)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep kmbox)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep libkgapi)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtnetworkauth)
-	$(add_qt_dep qtspeech)
-	$(add_qt_dep qtwebengine 'widgets')
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kholidays-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-calendar-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/akonadi-notes-${PVCUT}:5
+	>=kde-apps/kalarmcal-${PVCUT}:5
+	>=kde-apps/kcalutils-${PVCUT}:5
+	>=kde-apps/kdav-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kimap-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/kmbox-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/libkgapi-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtnetworkauth-${QTMIN}:5
+	>=dev-qt/qtspeech-${QTMIN}:5
+	>=dev-qt/qtwebengine-${QTMIN}:5[widgets]
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	dev-libs/cyrus-sasl:2
 	dev-libs/libical:=
 "
 DEPEND="${COMMON_DEPEND}
-	$(add_qt_dep qtxmlpatterns)
-	test? ( $(add_kdeapps_dep kimap 'test') )
+	>=dev-qt/qtxmlpatterns-${QTMIN}:5
+	test? ( >=kde-apps/kimap-${PVCUT}:5[test] )
 "
 RDEPEND="${COMMON_DEPEND}
 	!kde-apps/kdepim-l10n
@@ -80,5 +86,5 @@ src_configure() {
 	local mycmakeargs=(
 		-DCMAKE_DISABLE_FIND_PACKAGE_Libkolabxml=ON
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kdesdk-kioslaves/kdesdk-kioslaves-9999.ebuild b/kde-apps/kdesdk-kioslaves/kdesdk-kioslaves-9999.ebuild
index 3173f6269d..9d12b1a45f 100644
--- a/kde-apps/kdesdk-kioslaves/kdesdk-kioslaves-9999.ebuild
+++ b/kde-apps/kdesdk-kioslaves/kdesdk-kioslaves-9999.ebuild
@@ -3,16 +3,20 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+inherit ecm kde.org
 
 DESCRIPTION="kioslaves from kdesdk package"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
 	dev-lang/perl
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kdesdk-thumbnailers/kdesdk-thumbnailers-9999.ebuild b/kde-apps/kdesdk-thumbnailers/kdesdk-thumbnailers-9999.ebuild
index 7340ae5527..3efd309036 100644
--- a/kde-apps/kdesdk-thumbnailers/kdesdk-thumbnailers-9999.ebuild
+++ b/kde-apps/kdesdk-thumbnailers/kdesdk-thumbnailers-9999.ebuild
@@ -3,19 +3,24 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Thumbnail generator for PO files"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	sys-devel/gettext
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kdf/kdf-9999.ebuild b/kde-apps/kdf/kdf-9999.ebuild
index 131bcda828..cf30fca612 100644
--- a/kde-apps/kdf/kdf-9999.ebuild
+++ b/kde-apps/kdf/kdf-9999.ebuild
@@ -3,27 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE free disk space utility"
-HOMEPAGE="https://utils.kde.org/projects/kdf/"
+HOMEPAGE="https://kde.org/applications/system/org.kde.kdf
+https://utils.kde.org/projects/kdf/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kdialog/kdialog-9999.ebuild b/kde-apps/kdialog/kdialog-9999.ebuild
index 7980441849..4a65750a6f 100644
--- a/kde-apps/kdialog/kdialog-9999.ebuild
+++ b/kde-apps/kdialog/kdialog-9999.ebuild
@@ -3,27 +3,33 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Can be used to show nice dialog boxes from shell scripts"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kdialog"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="X"
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	X? ( x11-libs/libX11 )
 "
 RDEPEND="${DEPEND}"
@@ -32,5 +38,5 @@ src_configure() {
 	local mycmakeargs=(
 		$(cmake-utils_use_find_package X X11)
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kdiamond/kdiamond-9999.ebuild b/kde-apps/kdiamond/kdiamond-9999.ebuild
index 864a02efcb..3d640aa7bf 100644
--- a/kde-apps/kdiamond/kdiamond-9999.ebuild
+++ b/kde-apps/kdiamond/kdiamond-9999.ebuild
@@ -3,28 +3,34 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Single player three-in-a-row game"
-HOMEPAGE="https://kde.org/applications/games/kdiamond/
+HOMEPAGE="https://kde.org/applications/games/org.kde.kdiamond
 https://games.kde.org/game.php?game=kdiamond"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/keditbookmarks/keditbookmarks-9999.ebuild b/kde-apps/keditbookmarks/keditbookmarks-9999.ebuild
index 1761aa3937..055db6a25d 100644
--- a/kde-apps/keditbookmarks/keditbookmarks-9999.ebuild
+++ b/kde-apps/keditbookmarks/keditbookmarks-9999.ebuild
@@ -3,38 +3,43 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="true"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Bookmarks editor based on KDE Frameworks"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="+man"
 
 DEPEND="
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"
 
 src_prepare(){
-	kde5_src_prepare
+	ecm_src_prepare
 
 	if ! use man ; then
 		sed -i -e "/kdoctools_create_manpage/ s/^/#/" doc/CMakeLists.txt || die

diff --git a/kde-apps/kfind/kfind-9999.ebuild b/kde-apps/kfind/kfind-9999.ebuild
index 9f5dff36d7..8250672402 100644
--- a/kde-apps/kfind/kfind-9999.ebuild
+++ b/kde-apps/kfind/kfind-9999.ebuild
@@ -3,30 +3,35 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="File finder utility based on KDE Frameworks"
-HOMEPAGE="https://kde.org/applications/utilities/kfind/"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kfind"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 RDEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kfilemetadata)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kfilemetadata-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 DEPEND="${RDEPEND}
-	$(add_qt_dep qtconcurrent)
+	>=dev-qt/qtconcurrent-${QTMIN}:5
 "

diff --git a/kde-apps/kfloppy/kfloppy-9999.ebuild b/kde-apps/kfloppy/kfloppy-9999.ebuild
index 510c1f1cd4..688426f462 100644
--- a/kde-apps/kfloppy/kfloppy-9999.ebuild
+++ b/kde-apps/kfloppy/kfloppy-9999.ebuild
@@ -3,29 +3,31 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Straightforward graphical means to format 3.5\" and 5.25\" floppy disks"
-HOMEPAGE="
-	https://kde.org/applications/utilities/kfloppy/
-	https://utils.kde.org/projects/kfloppy/
-"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kfloppy
+https://utils.kde.org/projects/kfloppy/"
 
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kfourinline/kfourinline-9999.ebuild b/kde-apps/kfourinline/kfourinline-9999.ebuild
index bf51ef1f19..53de6fe691 100644
--- a/kde-apps/kfourinline/kfourinline-9999.ebuild
+++ b/kde-apps/kfourinline/kfourinline-9999.ebuild
@@ -3,27 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE four-in-a-row game"
-HOMEPAGE="https://kde.org/applications/games/kfourinline/
+HOMEPAGE="https://kde.org/applications/games/org.kde.kfourinline
 https://games.kde.org/game.php?game=kfourinline"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdnssd)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdnssd-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kgeography/kgeography-9999.ebuild b/kde-apps/kgeography/kgeography-9999.ebuild
index 5395c95ffb..627fe5b136 100644
--- a/kde-apps/kgeography/kgeography-9999.ebuild
+++ b/kde-apps/kgeography/kgeography-9999.ebuild
@@ -3,27 +3,31 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Geography learning tool"
-HOMEPAGE="https://edu.kde.org/applications/miscellaneous/kgeography
-https://edu.kde.org/applications/all/kgeography"
+HOMEPAGE="https://kde.org/applications/education/org.kde.kgeography"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kget/kget-9999.ebuild b/kde-apps/kget/kget-9999.ebuild
index 361ec315d5..dba2df3d49 100644
--- a/kde-apps/kget/kget-9999.ebuild
+++ b/kde-apps/kget/kget-9999.ebuild
@@ -3,47 +3,53 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+PLASMA_MINIMAL=5.16.5
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Advanced download manager by KDE"
-HOMEPAGE="https://kde.org/applications/internet/kget/"
+HOMEPAGE="https://kde.org/applications/internet/org.kde.kget"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="bittorrent gpg kde mms sqlite"
 
 RDEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdelibs4support)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep solid)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtsql)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdelibs4support-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/solid-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtsql-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	app-crypt/qca:2[qt5(+)]
 	bittorrent? ( net-libs/libktorrent:5 )
 	gpg? ( app-crypt/gpgme[qt5] )
-	kde? ( $(add_plasma_dep libkworkspace) )
+	kde? ( >=kde-plasma/libkworkspace-${PLASMA_MINIMAL}:5 )
 	mms? ( media-libs/libmms )
 	sqlite? ( dev-db/sqlite:3 )
 "
@@ -60,5 +66,5 @@ src_configure() {
 		$(cmake-utils_use_find_package sqlite Sqlite)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kgoldrunner/kgoldrunner-9999.ebuild b/kde-apps/kgoldrunner/kgoldrunner-9999.ebuild
index 08b7bf869d..9f984fa60b 100644
--- a/kde-apps/kgoldrunner/kgoldrunner-9999.ebuild
+++ b/kde-apps/kgoldrunner/kgoldrunner-9999.ebuild
@@ -3,32 +3,38 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Game of action and puzzle solving by KDE"
-HOMEPAGE="https://kde.org/applications/games/kgoldrunner/
+HOMEPAGE="https://kde.org/applications/games/org.kde.kgoldrunner
 https://games.kde.org/game.php?game=kgoldrunner"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-libs/libsndfile
 	media-libs/openal
 "
 RDEPEND="${DEPEND}
-	$(add_qt_dep qtsvg)
+	>=dev-qt/qtsvg-${QTMIN}:5
 "

diff --git a/kde-apps/kgpg/kgpg-9999.ebuild b/kde-apps/kgpg/kgpg-9999.ebuild
index 407f318461..60bf72ded9 100644
--- a/kde-apps/kgpg/kgpg-9999.ebuild
+++ b/kde-apps/kgpg/kgpg-9999.ebuild
@@ -3,42 +3,48 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="gpg"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Frontend for GnuPG, a powerful encryption utility by KDE"
-HOMEPAGE="https://kde.org/applications/utilities/kgpg
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kgpg
 https://utils.kde.org/projects/kgpg/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 COMMON_DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 DEPEND="${COMMON_DEPEND}
 	app-crypt/gpgme

diff --git a/kde-apps/khangman/khangman-9999.ebuild b/kde-apps/khangman/khangman-9999.ebuild
index 14191e2490..fa5eff98df 100644
--- a/kde-apps/khangman/khangman-9999.ebuild
+++ b/kde-apps/khangman/khangman-9999.ebuild
@@ -3,38 +3,44 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Classical hangman game by KDE"
-HOMEPAGE="https://kde.org/applications/education/khangman
+HOMEPAGE="https://kde.org/applications/education/org.kde.khangman
 https://edu.kde.org/khangman/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkeduvocdocument)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkeduvocdocument-${PVCUT}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	media-libs/phonon[qt5(+)]
 "
 RDEPEND="${DEPEND}
-	$(add_kdeapps_dep kdeedu-data)
-	$(add_qt_dep qtgraphicaleffects)
-	$(add_qt_dep qtmultimedia)
-	$(add_qt_dep qtquickcontrols)
+	>=kde-apps/kdeedu-data-${PVCUT}:5
+	>=dev-qt/qtgraphicaleffects-${QTMIN}:5
+	>=dev-qt/qtmultimedia-${QTMIN}:5
+	>=dev-qt/qtquickcontrols-${QTMIN}:5
 "

diff --git a/kde-apps/khelpcenter/khelpcenter-9999.ebuild b/kde-apps/khelpcenter/khelpcenter-9999.ebuild
index d3bb3569e8..83d7f053b9 100644
--- a/kde-apps/khelpcenter/khelpcenter-9999.ebuild
+++ b/kde-apps/khelpcenter/khelpcenter-9999.ebuild
@@ -3,45 +3,52 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+PLASMA_MINIMAL=5.16.5
+QTMIN=5.12.3
+inherit ecm kde.org
 
-DESCRIPTION="The KDE Help Center"
-HOMEPAGE+=" https://userbase.kde.org/KHelpCenter"
+DESCRIPTION="Application to read documentation for KDE Plasma, Applications, Utilities"
+HOMEPAGE="https://kde.org/applications/system/org.kde.Help
+https://userbase.kde.org/KHelpCenter"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdoctools)
-	$(add_frameworks_dep khtml)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kinit)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdoctools-${KFMIN}:5
+	>=kde-frameworks/khtml-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kinit-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	dev-libs/grantlee:5
 	dev-libs/libxml2
 	dev-libs/xapian:=
 "
 RDEPEND="${DEPEND}
-	$(add_plasma_dep kde-cli-tools)
+	>=kde-plasma/kde-cli-tools-${PLASMA_MINIMAL}:5
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 	sed -e "/^install.*kde4\/services/s/^/#DONT/" -i CMakeLists.txt || die
 }

diff --git a/kde-apps/kidentitymanagement/kidentitymanagement-9999.ebuild b/kde-apps/kidentitymanagement/kidentitymanagement-9999.ebuild
index 715a542429..2b98bb40a6 100644
--- a/kde-apps/kidentitymanagement/kidentitymanagement-9999.ebuild
+++ b/kde-apps/kidentitymanagement/kidentitymanagement-9999.ebuild
@@ -3,30 +3,35 @@
 
 EAPI=7
 
-KDE_TEST="true"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Library for managing identitites"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep kpimtextedit)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/kpimtextedit-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/kig/kig-9999.ebuild b/kde-apps/kig/kig-9999.ebuild
index f30ab8ea47..854a7ec127 100644
--- a/kde-apps/kig/kig-9999.ebuild
+++ b/kde-apps/kig/kig-9999.ebuild
@@ -3,52 +3,58 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="true"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
 PYTHON_COMPAT=( python2_7 )
-inherit python-single-r1 kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit python-single-r1 ecm kde.org
 
 DESCRIPTION="KDE Interactive Geometry tool"
-HOMEPAGE="https://kde.org/applications/education/kig https://edu.kde.org/kig/"
+HOMEPAGE="https://kde.org/applications/education/org.kde.kig
+https://edu.kde.org/kig/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="geogebra scripting"
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
 
 RDEPEND="${PYTHON_DEPS}
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
-	geogebra? ( $(add_qt_dep qtxmlpatterns) )
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
+	geogebra? ( >=dev-qt/qtxmlpatterns-${QTMIN}:5 )
 	scripting? ( >=dev-libs/boost-1.48:=[python,${PYTHON_USEDEP}] )
 "
 DEPEND="${RDEPEND}
-	$(add_frameworks_dep ktexteditor)
+	>=kde-frameworks/ktexteditor-${KFMIN}:5
 "
 
 PATCHES=( "${FILESDIR}/${PN}-4.12.0-boostpython.patch" )
 
 pkg_setup() {
 	python-single-r1_pkg_setup
-	kde5_pkg_setup
+	ecm_pkg_setup
 }
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 	python_fix_shebang .
 }
 
@@ -58,5 +64,5 @@ src_configure() {
 		$(cmake-utils_use_find_package scripting BoostPython)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kigo/kigo-9999.ebuild b/kde-apps/kigo/kigo-9999.ebuild
index 7b8eb6f2b3..5decb91545 100644
--- a/kde-apps/kigo/kigo-9999.ebuild
+++ b/kde-apps/kigo/kigo-9999.ebuild
@@ -3,31 +3,37 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Go game by KDE"
-HOMEPAGE="https://kde.org/applications/games/kigo/"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kigo"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	games-board/gnugo

diff --git a/kde-apps/killbots/killbots-9999.ebuild b/kde-apps/killbots/killbots-9999.ebuild
index 3753c6a9a2..24b3540a93 100644
--- a/kde-apps/killbots/killbots-9999.ebuild
+++ b/kde-apps/killbots/killbots-9999.ebuild
@@ -3,27 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Kill the bots or they kill you!"
-HOMEPAGE="https://kde.org/applications/games/killbots/"
+HOMEPAGE="https://kde.org/applications/games/org.kde.killbots"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"
 

diff --git a/kde-apps/kimagemapeditor/kimagemapeditor-9999.ebuild b/kde-apps/kimagemapeditor/kimagemapeditor-9999.ebuild
index 54b3780481..f434b205ed 100644
--- a/kde-apps/kimagemapeditor/kimagemapeditor-9999.ebuild
+++ b/kde-apps/kimagemapeditor/kimagemapeditor-9999.ebuild
@@ -3,28 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Generator of HTML image maps"
-HOMEPAGE="https://kde.org/applications/development/kimagemapeditor/"
+HOMEPAGE="https://kde.org/applications/development/org.kde.kimagemapeditor"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwebengine 'widgets')
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwebengine-${QTMIN}:5[widgets]
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kimap/kimap-9999.ebuild b/kde-apps/kimap/kimap-9999.ebuild
index fdd774fb4d..09fe1049cc 100644
--- a/kde-apps/kimap/kimap-9999.ebuild
+++ b/kde-apps/kimap/kimap-9999.ebuild
@@ -3,26 +3,32 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional"
-inherit kde5
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library for interacting with IMAP servers"
+HOMEPAGE="https://api.kde.org/kdepim/kimap/html/index.html"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_kdeapps_dep kmime)
-	$(add_qt_dep qtgui)
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
 	dev-libs/cyrus-sasl
 "
 # TODO: Convince upstream not to install stuff with tests
 DEPEND="${COMMON_DEPEND}
-	test? ( $(add_qt_dep qtnetwork) )
+	test? ( >=dev-qt/qtnetwork-${QTMIN}:5 )
 "
 RDEPEND="${COMMON_DEPEND}
 	!kde-apps/kdepim-l10n
@@ -33,5 +39,5 @@ src_test() {
 	local myctestargs=(
 		-j1
 	)
-	kde5_src_test
+	ecm_src_test
 }

diff --git a/kde-apps/kio-extras/kio-extras-9999.ebuild b/kde-apps/kio-extras/kio-extras-9999.ebuild
index 0961384575..48525bfbb4 100644
--- a/kde-apps/kio-extras/kio-extras-9999.ebuild
+++ b/kde-apps/kio-extras/kio-extras-9999.ebuild
@@ -3,13 +3,18 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="optional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="optional"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="KIO plugins present a filesystem-like view of arbitrary data"
 HOMEPAGE="https://cgit.kde.org/kio-extras.git"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="activities +man mtp openexr phonon samba +sftp taglib"
 
@@ -17,34 +22,34 @@ BDEPEND="
 	man? ( dev-util/gperf )
 "
 DEPEND="
-	$(add_frameworks_dep karchive 'bzip2,lzma')
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdnssd)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kpty)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep solid)
-	$(add_frameworks_dep syntax-highlighting)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5[bzip2,lzma]
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdnssd-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kpty-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/solid-${KFMIN}:5
+	>=kde-frameworks/syntax-highlighting-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	activities? (
-		$(add_frameworks_dep kactivities)
-		$(add_frameworks_dep kactivities-stats)
-		$(add_qt_dep qtsql)
+		>=kde-frameworks/kactivities-${KFMIN}:5
+		>=kde-frameworks/kactivities-stats-${KFMIN}:5
+		>=dev-qt/qtsql-${QTMIN}:5
 	)
 	mtp? ( >=media-libs/libmtp-1.1.16:= )
 	openexr? ( media-libs/openexr:= )
@@ -54,7 +59,7 @@ DEPEND="
 	taglib? ( >=media-libs/taglib-1.11.1 )
 "
 RDEPEND="${DEPEND}
-	$(add_frameworks_dep kded)
+	>=kde-frameworks/kded-${KFMIN}:5
 "
 
 # requires running kde environment
@@ -73,5 +78,5 @@ src_configure() {
 		$(cmake-utils_use_find_package taglib Taglib)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kipi-plugins/kipi-plugins-9999.ebuild b/kde-apps/kipi-plugins/kipi-plugins-9999.ebuild
index e5c7924836..6812f1b981 100644
--- a/kde-apps/kipi-plugins/kipi-plugins-9999.ebuild
+++ b/kde-apps/kipi-plugins/kipi-plugins-9999.ebuild
@@ -3,40 +3,44 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Plugins for the KDE Image Plugin Interface"
 HOMEPAGE="https://userbase.kde.org/KIPI https://cgit.kde.org/kipi-plugins.git/"
 
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE="flashexport mediawiki +remotestorage vkontakte"
 
 BDEPEND="sys-devel/gettext"
 RDEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkipi '' '' '5=')
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
-	$(add_qt_dep qtxmlpatterns)
-	flashexport? ( $(add_frameworks_dep karchive) )
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkipi-${PVCUT}:5=
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
+	>=dev-qt/qtxmlpatterns-${QTMIN}:5
+	flashexport? ( >=kde-frameworks/karchive-${KFMIN}:5 )
 	mediawiki? ( net-libs/libmediawiki:5 )
-	remotestorage? ( $(add_frameworks_dep kio) )
+	remotestorage? ( >=kde-frameworks/kio-${KFMIN}:5 )
 	vkontakte? ( net-libs/libkvkontakte:5 )
 "
 DEPEND="${RDEPEND}
-	$(add_qt_dep qtconcurrent)
+	>=dev-qt/qtconcurrent-${QTMIN}:5
 "
 
 src_configure() {
@@ -47,5 +51,5 @@ src_configure() {
 		$(cmake-utils_use_find_package vkontakte KF5Vkontakte)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kiriki/kiriki-9999.ebuild b/kde-apps/kiriki/kiriki-9999.ebuild
index 6be42493a0..193d34e3dc 100644
--- a/kde-apps/kiriki/kiriki-9999.ebuild
+++ b/kde-apps/kiriki/kiriki-9999.ebuild
@@ -3,28 +3,34 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="An addictive and fun dice game"
-HOMEPAGE="https://kde.org/applications/games/kiriki/
+HOMEPAGE="https://kde.org/applications/games/org.kde.kiriki
 https://games.kde.org/game.php?game=kiriki"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kiten/kiten-9999.ebuild b/kde-apps/kiten/kiten-9999.ebuild
index a0d1c11d40..58c7989165 100644
--- a/kde-apps/kiten/kiten-9999.ebuild
+++ b/kde-apps/kiten/kiten-9999.ebuild
@@ -3,37 +3,43 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Japanese dictionary and reference"
-HOMEPAGE="https://kde.org/applications/education/kiten https://edu.kde.org/kiten/"
+HOMEPAGE="https://kde.org/applications/education/org.kde.kiten
+https://edu.kde.org/kiten/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep khtml)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/khtml-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	media-fonts/kanjistrokeorders
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 	cmake_comment_add_subdirectory data/font
 }

diff --git a/kde-apps/kitinerary/kitinerary-9999.ebuild b/kde-apps/kitinerary/kitinerary-9999.ebuild
index 90274d01e5..3185bd81d2 100644
--- a/kde-apps/kitinerary/kitinerary-9999.ebuild
+++ b/kde-apps/kitinerary/kitinerary-9999.ebuild
@@ -3,26 +3,30 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Data Model and Extraction System for Travel Reservation information"
-HOMEPAGE="https://kde.org/applications/office/kontact/"
+HOMEPAGE="https://kde.org/applications/office/org.kde.kontact"
 
 LICENSE="LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE="+barcode pdf"
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep ki18n)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep kpkpass)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/kpkpass-${PVCUT}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
 	sys-libs/zlib
 	barcode? ( media-libs/zxing-cpp )
 	pdf? ( app-text/poppler:=[qt5] )
@@ -36,5 +40,5 @@ src_configure() {
 		$(cmake-utils_use_find_package barcode ZXing)
 		$(cmake-utils_use_find_package pdf Poppler)
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kjumpingcube/kjumpingcube-9999.ebuild b/kde-apps/kjumpingcube/kjumpingcube-9999.ebuild
index 53c19b00e8..5c6b09c53d 100644
--- a/kde-apps/kjumpingcube/kjumpingcube-9999.ebuild
+++ b/kde-apps/kjumpingcube/kjumpingcube-9999.ebuild
@@ -3,28 +3,34 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Tactical one or two player game"
-HOMEPAGE="https://kde.org/applications/games/kjumpingcube/
+HOMEPAGE="https://kde.org/applications/games/org.kde.kjumpingcube
 https://games.kde.org/game.php?game=kjumpingcube"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kldap/kldap-9999.ebuild b/kde-apps/kldap/kldap-9999.ebuild
index d539bba704..60a2e270a8 100644
--- a/kde-apps/kldap/kldap-9999.ebuild
+++ b/kde-apps/kldap/kldap-9999.ebuild
@@ -3,22 +3,27 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="true"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library for interacting with LDAP servers"
+HOMEPAGE="https://api.kde.org/kdepim/kldap/html/index.html"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-libs/cyrus-sasl
 	net-nds/openldap
 "
@@ -27,7 +32,7 @@ RDEPEND="${DEPEND}
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 
 	if ! use handbook ; then
 		sed -e "/add_subdirectory(doc)/I s/^/#DONOTCOMPILE /" \

diff --git a/kde-apps/kleopatra/kleopatra-9999.ebuild b/kde-apps/kleopatra/kleopatra-9999.ebuild
index 436021a16b..a875a18786 100644
--- a/kde-apps/kleopatra/kleopatra-9999.ebuild
+++ b/kde-apps/kleopatra/kleopatra-9999.ebuild
@@ -3,40 +3,44 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="optional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Certificate manager and GUI for OpenPGP and CMS cryptography"
-HOMEPAGE="https://kde.org/applications/utilities/kleopatra"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kleopatra"
 
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep libkleo)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/libkleo-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	>=app-crypt/gpgme-1.11.1[cxx,qt5]
 	dev-libs/boost:=
 	dev-libs/libassuan

diff --git a/kde-apps/klettres/klettres-9999.ebuild b/kde-apps/klettres/klettres-9999.ebuild
index 08cdcc077b..8768254ada 100644
--- a/kde-apps/klettres/klettres-9999.ebuild
+++ b/kde-apps/klettres/klettres-9999.ebuild
@@ -3,29 +3,34 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Alphabet learning application"
-HOMEPAGE="https://kde.org/applications/education/klettres
+HOMEPAGE="https://kde.org/applications/education/org.kde.klettres
 https://edu.kde.org/klettres/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	media-libs/phonon[qt5(+)]
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/klickety/klickety-9999.ebuild b/kde-apps/klickety/klickety-9999.ebuild
index 3bbaf2917b..84357d29f0 100644
--- a/kde-apps/klickety/klickety-9999.ebuild
+++ b/kde-apps/klickety/klickety-9999.ebuild
@@ -3,29 +3,37 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="An adaptation of the Clickomania game"
+HOMEPAGE="https://kde.org/applications/games/org.kde.klickety
+https://games.kde.org/game.php?game=klickety"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"
 

diff --git a/kde-apps/klines/klines-9999.ebuild b/kde-apps/klines/klines-9999.ebuild
index 121fc281c3..3ef7845f76 100644
--- a/kde-apps/klines/klines-9999.ebuild
+++ b/kde-apps/klines/klines-9999.ebuild
@@ -3,28 +3,34 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="A little KDE game about balls and how to get rid of them"
-HOMEPAGE="https://kde.org/applications/games/klines/
+HOMEPAGE="https://kde.org/applications/games/org.kde.klines
 https://games.kde.org/game.php?game=klines"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"
 

diff --git a/kde-apps/kmag/kmag-9999.ebuild b/kde-apps/kmag/kmag-9999.ebuild
index e288771a58..fc1429c3c4 100644
--- a/kde-apps/kmag/kmag-9999.ebuild
+++ b/kde-apps/kmag/kmag-9999.ebuild
@@ -3,25 +3,30 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE screen magnifier"
-HOMEPAGE="https://kde.org/applications/utilities/kmag/"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kmag"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="keyboardfocus"
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	keyboardfocus? ( >=media-libs/libqaccessibilityclient-0.4:5 )
 "
 RDEPEND="${DEPEND}"
@@ -31,5 +36,5 @@ src_configure() {
 		$(cmake-utils_use_find_package keyboardfocus QAccessibilityClient)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kmahjongg/kmahjongg-9999.ebuild b/kde-apps/kmahjongg/kmahjongg-9999.ebuild
index a94445cc05..5134e94e16 100644
--- a/kde-apps/kmahjongg/kmahjongg-9999.ebuild
+++ b/kde-apps/kmahjongg/kmahjongg-9999.ebuild
@@ -3,32 +3,38 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="A tile matching game for one or two players"
-HOMEPAGE="https://kde.org/applications/games/kmahjongg/
+HOMEPAGE="https://kde.org/applications/games/org.kde.kmahjongg
 https://games.kde.org/game.php?game=kmahjongg"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_kdeapps_dep libkmahjongg)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=kde-apps/libkmahjongg-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kmail-account-wizard/kmail-account-wizard-9999.ebuild b/kde-apps/kmail-account-wizard/kmail-account-wizard-9999.ebuild
index 788b1b6273..7f73ae1407 100644
--- a/kde-apps/kmail-account-wizard/kmail-account-wizard-9999.ebuild
+++ b/kde-apps/kmail-account-wizard/kmail-account-wizard-9999.ebuild
@@ -3,47 +3,52 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional" # FIXME: Check back for doc in release
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional" # FIXME: Check back for doc in release
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Assistant for KMail accounts configuration"
 HOMEPAGE+=" https://userbase.kde.org/Kmail/Account_Wizard"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kross)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktexteditor)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kldap)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep libkleo)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kross-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktexteditor-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kldap-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/libkleo-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-common-libs:4

diff --git a/kde-apps/kmail/kmail-9999.ebuild b/kde-apps/kmail/kmail-9999.ebuild
index 8e4bad7451..7c29baf1fd 100644
--- a/kde-apps/kmail/kmail-9999.ebuild
+++ b/kde-apps/kmail/kmail-9999.ebuild
@@ -3,91 +3,97 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Email client, supporting POP3 and IMAP mailboxes."
-HOMEPAGE="https://kde.org/applications/internet/kmail/"
+HOMEPAGE="https://kde.org/applications/office/org.kde.kmail2
+https://kontact.kde.org/components/kmail.html"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 # drop qtcore subslot operator when QT_MINIMAL >= 5.14.0
 BDEPEND="
 	dev-libs/libxslt
-	test? ( $(add_kdeapps_dep akonadi 'tools') )
+	test? ( >=kde-apps/akonadi-${PVCUT}:5[tools] )
 "
 COMMON_DEPEND="
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep sonnet)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep akonadi-search)
-	$(add_kdeapps_dep kdepim-apps-libs)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep kontactinterface)
-	$(add_kdeapps_dep kpimtextedit)
-	$(add_kdeapps_dep libgravatar)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep libkleo)
-	$(add_kdeapps_dep libksieve)
-	$(add_kdeapps_dep libktnef)
-	$(add_kdeapps_dep mailcommon)
-	$(add_kdeapps_dep messagelib)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtcore '' '' '5=')
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwebengine 'widgets')
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/sonnet-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/akonadi-search-${PVCUT}:5
+	>=kde-apps/kdepim-apps-libs-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/kontactinterface-${PVCUT}:5
+	>=kde-apps/kpimtextedit-${PVCUT}:5
+	>=kde-apps/libgravatar-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/libkleo-${PVCUT}:5
+	>=kde-apps/libksieve-${PVCUT}:5
+	>=kde-apps/libktnef-${PVCUT}:5
+	>=kde-apps/mailcommon-${PVCUT}:5
+	>=kde-apps/messagelib-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtcore-${QTMIN}:5=
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwebengine-${QTMIN}:5[widgets]
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	>=app-crypt/gpgme-1.11.1[cxx,qt5]
 "
 DEPEND="${COMMON_DEPEND}
-	$(add_kdeapps_dep kcalutils)
-	$(add_kdeapps_dep kldap)
-	test? ( $(add_kdeapps_dep akonadi 'sqlite') )
+	>=kde-apps/kcalutils-${PVCUT}:5
+	>=kde-apps/kldap-${PVCUT}:5
+	test? ( >=kde-apps/akonadi-${PVCUT}:5[sqlite] )
 "
 RDEPEND="${COMMON_DEPEND}
 	!kde-apps/kdepim-common-libs:4
 	!kde-apps/kdepim-l10n
-	$(add_kdeapps_dep kdepim-runtime)
-	$(add_kdeapps_dep kmail-account-wizard)
+	>=kde-apps/kdepim-runtime-${PVCUT}:5
+	>=kde-apps/kmail-account-wizard-${PVCUT}:5
 "
 
 RESTRICT+=" test" # bug 616878
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 
 	if ! use handbook; then
 		sed -i ktnef/CMakeLists.txt -e "/add_subdirectory(doc)/ s/^/#DONT/" || die
@@ -95,7 +101,7 @@ src_prepare() {
 }
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	pkg_is_installed() {
 		echo "${1} ($(has_version ${1} || echo "not ")installed)"

diff --git a/kde-apps/kmailtransport/kmailtransport-9999.ebuild b/kde-apps/kmailtransport/kmailtransport-9999.ebuild
index 804819896a..0ff3b66b73 100644
--- a/kde-apps/kmailtransport/kmailtransport-9999.ebuild
+++ b/kde-apps/kmailtransport/kmailtransport-9999.ebuild
@@ -3,36 +3,41 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Mail transport service"
+
 LICENSE="LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep ksmtp)
-	$(add_kdeapps_dep libkgapi)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/ksmtp-${PVCUT}:5
+	>=kde-apps/libkgapi-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 DEPEND="${COMMON_DEPEND}
-	test? ( $(add_frameworks_dep ktextwidgets) )
+	test? ( >=kde-frameworks/ktextwidgets-${KFMIN}:5 )
 "
 RDEPEND="${COMMON_DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/kmbox/kmbox-9999.ebuild b/kde-apps/kmbox/kmbox-9999.ebuild
index 19ef5ea4e3..747fd0812c 100644
--- a/kde-apps/kmbox/kmbox-9999.ebuild
+++ b/kde-apps/kmbox/kmbox-9999.ebuild
@@ -3,13 +3,16 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+inherit ecm kde.org
 
 DESCRIPTION="Library for accessing MBox format mail storages"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
-DEPEND="$(add_kdeapps_dep kmime)"
+DEPEND=">=kde-apps/kmime-${PVCUT}:5"
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kmime/kmime-9999.ebuild b/kde-apps/kmime/kmime-9999.ebuild
index 6749a48ca1..3ffde3934c 100644
--- a/kde-apps/kmime/kmime-9999.ebuild
+++ b/kde-apps/kmime/kmime-9999.ebuild
@@ -3,17 +3,20 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+KFMIN=5.63.0
+inherit ecm kde.org
 
 DESCRIPTION="Libary for handling mail messages and newsgroup articles"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep ki18n)
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/kmines/kmines-9999.ebuild b/kde-apps/kmines/kmines-9999.ebuild
index aa67a36cc7..6c4846cffb 100644
--- a/kde-apps/kmines/kmines-9999.ebuild
+++ b/kde-apps/kmines/kmines-9999.ebuild
@@ -3,28 +3,34 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Classic mine sweeper game"
-HOMEPAGE="https://kde.org/applications/games/kmines/
+HOMEPAGE="https://kde.org/applications/games/org.kde.kmines
 https://games.kde.org/game.php?game=kmines"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kmix/kmix-9999.ebuild b/kde-apps/kmix/kmix-9999.ebuild
index d53e31335a..15eda0a27c 100644
--- a/kde-apps/kmix/kmix-9999.ebuild
+++ b/kde-apps/kmix/kmix-9999.ebuild
@@ -3,33 +3,39 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="false"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="false"
+KFMIN=5.63.0
+PLASMA_MINIMAL=5.16.5
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Volume control gui based on KDE Frameworks"
-HOMEPAGE="https://kde.org/applications/multimedia/kmix/"
+HOMEPAGE="https://kde.org/applications/multimedia/org.kde.kmix"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="alsa plasma pulseaudio"
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kglobalaccel)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep solid)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kglobalaccel-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/solid-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	alsa? ( >=media-libs/alsa-lib-1.0.14a )
-	plasma? ( $(add_frameworks_dep plasma) )
+	plasma? ( >=kde-frameworks/plasma-${KFMIN}:5 )
 	pulseaudio? (
 		dev-libs/glib:2
 		media-libs/libcanberra
@@ -37,7 +43,7 @@ DEPEND="
 	)
 "
 RDEPEND="${DEPEND}
-	$(add_plasma_dep kde-cli-tools)
+	>=kde-plasma/kde-cli-tools-${PLASMA_MINIMAL}:5
 "
 
 src_configure() {
@@ -48,5 +54,5 @@ src_configure() {
 		$(cmake-utils_use_find_package pulseaudio PulseAudio)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kmousetool/kmousetool-9999.ebuild b/kde-apps/kmousetool/kmousetool-9999.ebuild
index 76d23305c3..7b4c67ba15 100644
--- a/kde-apps/kmousetool/kmousetool-9999.ebuild
+++ b/kde-apps/kmousetool/kmousetool-9999.ebuild
@@ -3,24 +3,29 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE program that clicks the mouse for you"
-HOMEPAGE="https://kde.org/applications/utilities/kmousetool/"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kmousetool"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 RDEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-libs/phonon[qt5(+)]
 	x11-libs/libX11
 	x11-libs/libXtst

diff --git a/kde-apps/kmouth/kmouth-9999.ebuild b/kde-apps/kmouth/kmouth-9999.ebuild
index 618b9d8938..36cb486149 100644
--- a/kde-apps/kmouth/kmouth-9999.ebuild
+++ b/kde-apps/kmouth/kmouth-9999.ebuild
@@ -3,28 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Text-to-speech synthesizer front end"
-HOMEPAGE="https://kde.org/applications/utilities/kmouth/"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kmouth"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtspeech)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtspeech-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kmplot/kmplot-9999.ebuild b/kde-apps/kmplot/kmplot-9999.ebuild
index dbea682ccf..0a44db1358 100644
--- a/kde-apps/kmplot/kmplot-9999.ebuild
+++ b/kde-apps/kmplot/kmplot-9999.ebuild
@@ -3,32 +3,38 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Mathematical function plotter"
-HOMEPAGE="https://kde.org/applications/education/kmplot https://edu.kde.org/kmplot/"
+HOMEPAGE="https://kde.org/applications/education/org.kde.kmplot
+https://edu.kde.org/kmplot/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/knavalbattle/knavalbattle-9999.ebuild b/kde-apps/knavalbattle/knavalbattle-9999.ebuild
index d6b20e9f56..7a874e1482 100644
--- a/kde-apps/knavalbattle/knavalbattle-9999.ebuild
+++ b/kde-apps/knavalbattle/knavalbattle-9999.ebuild
@@ -3,34 +3,38 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Battleship clone by KDE"
-HOMEPAGE="
-	https://kde.org/applications/games/org.kde.knavalbattle
-	https://games.kde.org/game.php?game=kbattleship
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.knavalbattle
+https://games.kde.org/game.php?game=kbattleship"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdnssd)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdnssd-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"
 

diff --git a/kde-apps/knetwalk/knetwalk-9999.ebuild b/kde-apps/knetwalk/knetwalk-9999.ebuild
index 72cab96d97..1e8b51cf55 100644
--- a/kde-apps/knetwalk/knetwalk-9999.ebuild
+++ b/kde-apps/knetwalk/knetwalk-9999.ebuild
@@ -3,32 +3,36 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="optional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="optional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="KDE version of the popular NetWalk game for system administrators"
-HOMEPAGE="
-	https://kde.org/applications/games/knetwalk/
-	https://games.kde.org/game.php?game=knetwalk
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.knetwalk
+https://games.kde.org/game.php?game=knetwalk"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/knights/knights-9999.ebuild b/kde-apps/knights/knights-9999.ebuild
index 7e5dadf4bf..c43e854cdb 100644
--- a/kde-apps/knights/knights-9999.ebuild
+++ b/kde-apps/knights/knights-9999.ebuild
@@ -3,40 +3,44 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Simple chess board based on KDE Frameworks"
-HOMEPAGE="https://kde.org/applications/games/knights/"
+HOMEPAGE="https://kde.org/applications/games/org.kde.knights"
 
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE="speech"
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kplotting)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep plasma)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtconcurrent)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	speech? ( $(add_qt_dep qtspeech) )
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kplotting-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/plasma-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtconcurrent-${QTMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	speech? ( >=dev-qt/qtspeech-${QTMIN}:5 )
 "
 RDEPEND="${DEPEND}
 	|| (

diff --git a/kde-apps/knotes/knotes-9999.ebuild b/kde-apps/knotes/knotes-9999.ebuild
index 0d258d1198..c1a7b6df41 100644
--- a/kde-apps/knotes/knotes-9999.ebuild
+++ b/kde-apps/knotes/knotes-9999.ebuild
@@ -3,62 +3,67 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Note taking application"
-HOMEPAGE="https://kde.org/"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.knotes
+https://kontact.kde.org/components/knotes.html"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
-
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdnssd)
-	$(add_frameworks_dep kglobalaccel)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-notes)
-	$(add_kdeapps_dep akonadi-search)
-	$(add_kdeapps_dep grantleetheme)
-	$(add_kdeapps_dep kcalutils)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep kontactinterface)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtx11extras)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdnssd-${KFMIN}:5
+	>=kde-frameworks/kglobalaccel-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-notes-${PVCUT}:5
+	>=kde-apps/akonadi-search-${PVCUT}:5
+	>=kde-apps/grantleetheme-${PVCUT}:5
+	>=kde-apps/kcalutils-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/kontactinterface-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtx11extras-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	dev-libs/grantlee:5
 	dev-libs/libxslt
 	x11-libs/libX11
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n
-	$(add_kdeapps_dep kdepim-runtime)
+	>=kde-apps/kdepim-runtime-${PVCUT}:5
 "
 
 src_configure() {
@@ -68,5 +73,5 @@ src_configure() {
 # 		$(cmake-utils_use_find_package X X11)
 # 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kolf/kolf-9999.ebuild b/kde-apps/kolf/kolf-9999.ebuild
index c4e0c14ee3..a6bccf4652 100644
--- a/kde-apps/kolf/kolf-9999.ebuild
+++ b/kde-apps/kolf/kolf-9999.ebuild
@@ -3,32 +3,36 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Minigolf game by KDE"
-HOMEPAGE="
-	https://kde.org/applications/games/kolf/
-	https://games.kde.org/game.php?game=kolf
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kolf
+https://games.kde.org/game.php?game=kolf"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kollision/kollision-9999.ebuild b/kde-apps/kollision/kollision-9999.ebuild
index 7b90cc9168..f1ebe6a41b 100644
--- a/kde-apps/kollision/kollision-9999.ebuild
+++ b/kde-apps/kollision/kollision-9999.ebuild
@@ -3,27 +3,31 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Simple ball dodging game"
-HOMEPAGE="
-	https://kde.org/applications/games/kollision/
-	https://games.kde.org/game.php?game=kollision
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kollision
+https://games.kde.org/game.php?game=kollision"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kolourpaint/kolourpaint-9999.ebuild b/kde-apps/kolourpaint/kolourpaint-9999.ebuild
index aa5cf4df5b..a274f27668 100644
--- a/kde-apps/kolourpaint/kolourpaint-9999.ebuild
+++ b/kde-apps/kolourpaint/kolourpaint-9999.ebuild
@@ -3,32 +3,37 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Paint Program by KDE"
-HOMEPAGE="https://kde.org/applications/graphics/kolourpaint/"
+HOMEPAGE="https://kde.org/applications/graphics/org.kde.kolourpaint"
+
 LICENSE="BSD-2 LGPL-2 LGPL-2+ || ( LGPL-2.1 LGPL-3 ) GPL-2 handbook? ( FDL-1.2 )"
+SLOT="5"
 KEYWORDS=""
 IUSE="scanner"
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdelibs4support)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
-	scanner? ( $(add_kdeapps_dep libksane) )
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdelibs4support-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	scanner? ( >=kde-apps/libksane-${PVCUT}:5 )
 "
 RDEPEND="${DEPEND}"
 
@@ -37,5 +42,5 @@ src_configure() {
 		$(cmake-utils_use_find_package scanner KF5Sane)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kompare/kompare-9999.ebuild b/kde-apps/kompare/kompare-9999.ebuild
index 8e0eb164ee..45622a2084 100644
--- a/kde-apps/kompare/kompare-9999.ebuild
+++ b/kde-apps/kompare/kompare-9999.ebuild
@@ -3,32 +3,38 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="A program to view the differences between files"
-HOMEPAGE="https://kde.org/applications/development/kompare"
+HOMEPAGE="https://kde.org/applications/development/org.kde.kompare"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktexteditor)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkomparediff2)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktexteditor-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkomparediff2-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/konqueror/konqueror-9999.ebuild b/kde-apps/konqueror/konqueror-9999.ebuild
index 51d823869a..3f5cd76081 100644
--- a/kde-apps/konqueror/konqueror-9999.ebuild
+++ b/kde-apps/konqueror/konqueror-9999.ebuild
@@ -3,63 +3,68 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional" # not optional until !kdelibs4support
-KDE_TEST="true"
+ECM_HANDBOOK="forceoptional" # not optional until !kdelibs4support
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+PLASMA_MINIMAL=5.16.5
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit flag-o-matic kde5
+inherit flag-o-matic ecm kde.org
 
 DESCRIPTION="Web browser and file manager based on KDE Frameworks"
-HOMEPAGE="
-	https://kde.org/applications/internet/konqueror/
-	https://konqueror.org/
-"
+HOMEPAGE="https://kde.org/applications/internet/org.kde.konqueror"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="activities speech tidy +webengine X"
+
 # 4 of 4 tests fail. Last checked for 4.0.3
 RESTRICT+=" test"
 
 COMMON_DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdelibs4support)
-	$(add_frameworks_dep kdesu)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep khtml)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdelibs4support-${KFMIN}:5
+	>=kde-frameworks/kdesu-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/khtml-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	sys-libs/zlib
-	speech? ( $(add_qt_dep qtspeech) )
+	speech? ( >=dev-qt/qtspeech-${QTMIN}:5 )
 	tidy? ( app-text/tidy-html5 )
-	webengine? ( $(add_qt_dep qtwebengine 'widgets') )
-	X? ( $(add_qt_dep qtx11extras) )
+	webengine? ( >=dev-qt/qtwebengine-${QTMIN}:5[widgets] )
+	X? ( >=dev-qt/qtx11extras-${QTMIN}:5 )
 "
 DEPEND="${COMMON_DEPEND}
-	activities? ( $(add_frameworks_dep kactivities) )
+	activities? ( >=kde-frameworks/kactivities-${KFMIN}:5 )
 "
 RDEPEND="${COMMON_DEPEND}
-	$(add_kdeapps_dep kfind)
-	$(add_plasma_dep kde-cli-tools)
+	>=kde-apps/kfind-${PVCUT}:5
+	>=kde-plasma/kde-cli-tools-${PLASMA_MINIMAL}:5
 	!webengine? ( kde-misc/kwebkitpart:5 )
 "
 
@@ -67,11 +72,11 @@ src_prepare() {
 	[[ ${CHOST} == *-solaris* ]] && append-ldflags -lmalloc
 
 	if ! use webengine; then
-		punt_bogus_dep Qt5 WebEngineWidgets
+		ecm_punt_bogus_dep Qt5 WebEngineWidgets
 		cmake_comment_add_subdirectory webenginepart
 	fi
 
-	kde5_src_prepare
+	ecm_src_prepare
 }
 
 src_configure() {
@@ -81,11 +86,11 @@ src_configure() {
 		$(cmake-utils_use_find_package tidy LibTidy)
 		$(cmake-utils_use_find_package X X11)
 	)
-	kde5_src_configure
+	ecm_src_configure
 }
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	if [[ -z "${REPLACING_VERSIONS}" ]]; then
 		if ! has_version kde-apps/keditbookmarks:${SLOT} ; then

diff --git a/kde-apps/konquest/konquest-9999.ebuild b/kde-apps/konquest/konquest-9999.ebuild
index b984edb396..eff3eacea3 100644
--- a/kde-apps/konquest/konquest-9999.ebuild
+++ b/kde-apps/konquest/konquest-9999.ebuild
@@ -3,30 +3,34 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Galactic Strategy KDE Game"
-HOMEPAGE="
-	https://kde.org/applications/games/konquest/
-	https://games.kde.org/game.php?game=konquest
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.konquest
+https://games.kde.org/game.php?game=konquest"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/konsole/konsole-9999.ebuild b/kde-apps/konsole/konsole-9999.ebuild
index 7f4d16f767..4784a5e8dd 100644
--- a/kde-apps/konsole/konsole-9999.ebuild
+++ b/kde-apps/konsole/konsole-9999.ebuild
@@ -3,47 +3,52 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
-KDE_TEST="true"
+ECM_HANDBOOK="optional"
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="KDE's terminal emulator"
-HOMEPAGE="https://kde.org/applications/system/konsole https://konsole.kde.org"
+HOMEPAGE="https://kde.org/applications/system/org.kde.konsole
+https://konsole.kde.org"
 
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="X"
 
 DEPEND="
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kinit)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kpty)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kinit-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kpty-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	X? ( x11-libs/libX11 )
 "
 RDEPEND="${DEPEND}"
@@ -53,5 +58,5 @@ src_configure() {
 		$(cmake-utils_use_find_package X X11)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/konsolekalendar/konsolekalendar-9999.ebuild b/kde-apps/konsolekalendar/konsolekalendar-9999.ebuild
index 594f120c40..8bf8208c0b 100644
--- a/kde-apps/konsolekalendar/konsolekalendar-9999.ebuild
+++ b/kde-apps/konsolekalendar/konsolekalendar-9999.ebuild
@@ -3,33 +3,36 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KMNAME="akonadi-calendar-tools"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KDE_ORG_NAME="akonadi-calendar-tools"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+inherit ecm kde.org
 
 DESCRIPTION="Command line interface to KDE calendars"
 HOMEPAGE+=" https://userbase.kde.org/KonsoleKalendar"
 
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-calendar)
-	$(add_kdeapps_dep calendarsupport)
-	$(add_kdeapps_dep kcalutils)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-calendar-${PVCUT}:5
+	>=kde-apps/calendarsupport-${PVCUT}:5
+	>=kde-apps/kcalutils-${PVCUT}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n
 "
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 
 	# delete colliding calendarjanitor translations
 	if [[ ${KDE_BUILD_TYPE} = release ]]; then

diff --git a/kde-apps/kontact/kontact-9999.ebuild b/kde-apps/kontact/kontact-9999.ebuild
index 1854ea7cfd..8a58ba118e 100644
--- a/kde-apps/kontact/kontact-9999.ebuild
+++ b/kde-apps/kontact/kontact-9999.ebuild
@@ -3,41 +3,47 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Container application to unify several major PIM applications within one"
+HOMEPAGE="https://kontact.kde.org/ https://kde.org/applications/office/org.kde.kontact"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep grantleetheme)
-	$(add_kdeapps_dep kdepim-apps-libs)
-	$(add_kdeapps_dep kontactinterface)
-	$(add_kdeapps_dep kpimtextedit)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep mailcommon)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwebengine 'widgets')
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/grantleetheme-${PVCUT}:5
+	>=kde-apps/kdepim-apps-libs-${PVCUT}:5
+	>=kde-apps/kontactinterface-${PVCUT}:5
+	>=kde-apps/kpimtextedit-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/mailcommon-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwebengine-${QTMIN}:5[widgets]
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/kontactinterface/kontactinterface-9999.ebuild b/kde-apps/kontactinterface/kontactinterface-9999.ebuild
index 8eb749ce8d..c198c4cc24 100644
--- a/kde-apps/kontactinterface/kontactinterface-9999.ebuild
+++ b/kde-apps/kontactinterface/kontactinterface-9999.ebuild
@@ -3,23 +3,28 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library for embedding KParts in a Kontact component"
+HOMEPAGE="https://api.kde.org/kdepim/kontactinterface/html/index.html"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/kopete/kopete-9999.ebuild b/kde-apps/kopete/kopete-9999.ebuild
index af324e5972..9120d5be6f 100644
--- a/kde-apps/kopete/kopete-9999.ebuild
+++ b/kde-apps/kopete/kopete-9999.ebuild
@@ -3,12 +3,19 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Multi-protocol IM client based on KDE Frameworks"
-HOMEPAGE="https://userbase.kde.org/Kopete https://kde.org/applications/internet/kopete"
+HOMEPAGE="https://kde.org/applications/internet/org.kde.kopete
+https://userbase.kde.org/Kopete"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="ssl v4l"
 
@@ -58,27 +65,27 @@ PROTOCOLS="gadu groupwise jingle meanwhile oscar testbed winpopup +xmpp zeroconf
 IUSE="${IUSE} ${PLUGINS} ${PROTOCOLS}"
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep khtml)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdelibs4support)
-	$(add_frameworks_dep kemoticons)
-	$(add_frameworks_dep khtml)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep ktexteditor)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep libkleo)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsql)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/khtml-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdelibs4support-${KFMIN}:5
+	>=kde-frameworks/kemoticons-${KFMIN}:5
+	>=kde-frameworks/khtml-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/ktexteditor-${KFMIN}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/libkleo-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsql-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	app-crypt/gpgme[cxx,qt5]
 	dev-libs/libpcre
 	media-libs/phonon[qt5(+)]
@@ -108,8 +115,8 @@ COMMON_DEPEND="
 		sys-libs/zlib:=
 	)
 	zeroconf? (
-		$(add_frameworks_dep kdnssd)
-		$(add_kdeapps_dep kidentitymanagement)
+		>=kde-frameworks/kdnssd-${KFMIN}:5
+		>=kde-apps/kidentitymanagement-${PVCUT}:5
 	)
 "
 RDEPEND="${COMMON_DEPEND}
@@ -161,11 +168,11 @@ src_configure() {
 		mycmakeargs+=( -DWITH_${x/+/}=$(usex ${x/+/}) )
 	done
 
-	kde5_src_configure
+	ecm_src_configure
 }
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	if ! use ssl; then
 		if use xmpp ; then

diff --git a/kde-apps/korganizer/korganizer-9999.ebuild b/kde-apps/korganizer/korganizer-9999.ebuild
index 8765dc85ed..7211ad5309 100644
--- a/kde-apps/korganizer/korganizer-9999.ebuild
+++ b/kde-apps/korganizer/korganizer-9999.ebuild
@@ -3,81 +3,86 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Organizational assistant, providing calendars and other similar functionality"
-HOMEPAGE="https://kde.org/applications/office/korganizer/"
+HOMEPAGE="https://kde.org/applications/office/org.kde.korganizer"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE="X"
 
 BDEPEND="
-	test? ( $(add_kdeapps_dep akonadi 'tools') )
+	test? ( >=kde-apps/akonadi-${PVCUT}:5[tools] )
 "
 COMMON_DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kholidays)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-calendar)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep akonadi-notes)
-	$(add_kdeapps_dep akonadi-search)
-	$(add_kdeapps_dep calendarsupport)
-	$(add_kdeapps_dep eventviews)
-	$(add_kdeapps_dep incidenceeditor)
-	$(add_kdeapps_dep kcalutils)
-	$(add_kdeapps_dep kdepim-apps-libs)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep kontactinterface)
-	$(add_kdeapps_dep kpimtextedit)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtmultimedia)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kholidays-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-calendar-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/akonadi-notes-${PVCUT}:5
+	>=kde-apps/akonadi-search-${PVCUT}:5
+	>=kde-apps/calendarsupport-${PVCUT}:5
+	>=kde-apps/eventviews-${PVCUT}:5
+	>=kde-apps/incidenceeditor-${PVCUT}:5
+	>=kde-apps/kcalutils-${PVCUT}:5
+	>=kde-apps/kdepim-apps-libs-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/kontactinterface-${PVCUT}:5
+	>=kde-apps/kpimtextedit-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtmultimedia-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	X? (
-		$(add_qt_dep qtx11extras)
+		>=dev-qt/qtx11extras-${QTMIN}:5
 		x11-libs/libX11
 	)
 "
 DEPEND="${COMMON_DEPEND}
-	$(add_kdeapps_dep kldap)
-	$(add_qt_dep designer)
-	test? ( $(add_kdeapps_dep akonadi 'sqlite') )
+	>=kde-apps/kldap-${PVCUT}:5
+	>=dev-qt/designer-${QTMIN}:5
+	test? ( >=kde-apps/akonadi-${PVCUT}:5[sqlite] )
 "
 RDEPEND="${COMMON_DEPEND}
 	!kde-apps/kdepim-common-libs:4
 	!kde-apps/kdepim-l10n
-	$(add_kdeapps_dep kdepim-runtime)
+	>=kde-apps/kdepim-runtime-${PVCUT}:5
 "
 
 # testkodaymatrix is broken, akonadi* tests need DBus, bug #665686
@@ -88,5 +93,5 @@ src_configure() {
 		$(cmake-utils_use_find_package X X11)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kpat/kpat-9999.ebuild b/kde-apps/kpat/kpat-9999.ebuild
index 5cc8dcc740..3a8b61a575 100644
--- a/kde-apps/kpat/kpat-9999.ebuild
+++ b/kde-apps/kpat/kpat-9999.ebuild
@@ -3,32 +3,39 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE patience game"
-HOMEPAGE="https://games.kde.org/game.php?game=kpat"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kpat
+https://games.kde.org/game.php?game=kpat"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-games/freecell-solver
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kpimtextedit/kpimtextedit-9999.ebuild b/kde-apps/kpimtextedit/kpimtextedit-9999.ebuild
index 0d56fb90ed..62a22cf826 100644
--- a/kde-apps/kpimtextedit/kpimtextedit-9999.ebuild
+++ b/kde-apps/kpimtextedit/kpimtextedit-9999.ebuild
@@ -4,35 +4,39 @@
 EAPI=7
 
 ECM_DESIGNERPLUGIN="true"
-KDE_TEST="true"
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="A textedit with PIM-specific features"
+
 LICENSE="LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep sonnet)
-	$(add_frameworks_dep syntax-highlighting)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtspeech)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/sonnet-${KFMIN}:5
+	>=kde-frameworks/syntax-highlighting-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtspeech-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-libs/grantlee:5
 "
 DEPEND="${COMMON_DEPEND}
-	test? ( $(add_frameworks_dep ktextwidgets) )
+	test? ( >=kde-frameworks/ktextwidgets-${KFMIN}:5 )
 "
 RDEPEND="${COMMON_DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/kpkpass/kpkpass-9999.ebuild b/kde-apps/kpkpass/kpkpass-9999.ebuild
index 787c4678e4..37cb19dbb2 100644
--- a/kde-apps/kpkpass/kpkpass-9999.ebuild
+++ b/kde-apps/kpkpass/kpkpass-9999.ebuild
@@ -3,20 +3,23 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional"
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Library to deal with Apple Wallet pass files"
 HOMEPAGE="https://kde.org/applications/office/kontact/"
 
 LICENSE="LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_qt_dep qtgui)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!<kde-apps/kdepim-addons-18.07.80

diff --git a/kde-apps/kqtquickcharts/kqtquickcharts-9999.ebuild b/kde-apps/kqtquickcharts/kqtquickcharts-9999.ebuild
index f01809112d..04defb25f4 100644
--- a/kde-apps/kqtquickcharts/kqtquickcharts-9999.ebuild
+++ b/kde-apps/kqtquickcharts/kqtquickcharts-9999.ebuild
@@ -3,14 +3,18 @@
 
 EAPI=7
 
-inherit kde5
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Qt Quick plugin for beautiful and interactive charts"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/krdc/krdc-9999.ebuild b/kde-apps/krdc/krdc-9999.ebuild
index 359e554beb..d71cda5a4b 100644
--- a/kde-apps/krdc/krdc-9999.ebuild
+++ b/kde-apps/krdc/krdc-9999.ebuild
@@ -3,35 +3,40 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
-inherit kde5
+ECM_HANDBOOK="optional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Remote desktop connection (RDP and VNC) client"
-HOMEPAGE="https://kde.org/applications/internet/krdc/"
+HOMEPAGE="https://kde.org/applications/internet/org.kde.krdc"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="+rdp vnc"
 
 #nx? ( >=net-misc/nxcl-0.9-r1 ) disabled upstream, last checked 2016-01-24
 DEPEND="
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdnssd)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdnssd-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	vnc? ( >=net-libs/libvncserver-0.9 )
 "
 RDEPEND="${DEPEND}
@@ -43,5 +48,5 @@ src_configure() {
 		$(cmake-utils_use_find_package vnc LibVNCServer)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kreversi/kreversi-9999.ebuild b/kde-apps/kreversi/kreversi-9999.ebuild
index 2b6b304b1f..6c30abe3d2 100644
--- a/kde-apps/kreversi/kreversi-9999.ebuild
+++ b/kde-apps/kreversi/kreversi-9999.ebuild
@@ -3,35 +3,39 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
+ECM_HANDBOOK="optional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Board game by KDE"
-HOMEPAGE="
-	https://kde.org/applications/games/kreversi/
-	https://games.kde.org/game.php?game=kreversi
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kreversi
+https://games.kde.org/game.php?game=kreversi"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/krfb/krfb-9999.ebuild b/kde-apps/krfb/krfb-9999.ebuild
index a3f44a2ea1..522ccb7b7a 100644
--- a/kde-apps/krfb/krfb-9999.ebuild
+++ b/kde-apps/krfb/krfb-9999.ebuild
@@ -3,33 +3,38 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="VNC-compatible server to share Plasma desktops"
-HOMEPAGE="https://kde.org/applications/system/krfb/"
+HOMEPAGE="https://kde.org/applications/internet/org.kde.krfb"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="wayland"
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdnssd)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtx11extras)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdnssd-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtx11extras-${QTMIN}:5
 	>=net-libs/libvncserver-0.9.9
 	x11-libs/libX11
 	x11-libs/libxcb
@@ -46,5 +51,5 @@ src_configure() {
 		$(cmake-utils_use_find_package wayland PipeWire)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kross-interpreters/kross-interpreters-9999.ebuild b/kde-apps/kross-interpreters/kross-interpreters-9999.ebuild
index d7338b9191..cf10d9eab3 100644
--- a/kde-apps/kross-interpreters/kross-interpreters-9999.ebuild
+++ b/kde-apps/kross-interpreters/kross-interpreters-9999.ebuild
@@ -5,18 +5,23 @@ EAPI=7
 
 PYTHON_COMPAT=( python2_7 )
 USE_RUBY="ruby25"
-inherit kde5 python-single-r1 ruby-single
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org python-single-r1 ruby-single
 
 DESCRIPTION="Kross interpreter plugins for programming languages"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="+python ruby"
 
 REQUIRED_USE="|| ( python ruby ) python? ( ${PYTHON_REQUIRED_USE} )"
 
 DEPEND="
-	$(add_frameworks_dep kross)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kross-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	python? ( ${PYTHON_DEPS} )
 	ruby? ( ${RUBY_DEPS} )
 "
@@ -24,7 +29,7 @@ RDEPEND="${DEPEND}"
 
 pkg_setup() {
 	use python && python-single-r1_pkg_setup
-	kde5_pkg_setup
+	ecm_pkg_setup
 }
 
 src_configure() {
@@ -33,5 +38,5 @@ src_configure() {
 		-DBUILD_ruby=$(usex ruby)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kruler/kruler-9999.ebuild b/kde-apps/kruler/kruler-9999.ebuild
index c327167f9d..d32d99857a 100644
--- a/kde-apps/kruler/kruler-9999.ebuild
+++ b/kde-apps/kruler/kruler-9999.ebuild
@@ -3,29 +3,32 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Screen ruler for Plasma"
-HOMEPAGE="https://kde.org/applications/graphics/kruler/"
+HOMEPAGE="https://kde.org/applications/graphics/org.kde.kruler"
 
 LICENSE="GPL-2+ handbook? ( FDL-1.2 )"
+SLOT="5"
 KEYWORDS=""
 IUSE="X"
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	X? (
-		$(add_qt_dep qtx11extras)
+		>=dev-qt/qtx11extras-${QTMIN}:5
 		x11-libs/libxcb
 	)
 "
@@ -36,5 +39,5 @@ src_configure() {
 		$(cmake-utils_use_find_package X X11)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kshisen/kshisen-9999.ebuild b/kde-apps/kshisen/kshisen-9999.ebuild
index aca3084480..5c709bbab5 100644
--- a/kde-apps/kshisen/kshisen-9999.ebuild
+++ b/kde-apps/kshisen/kshisen-9999.ebuild
@@ -3,30 +3,34 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
-DESCRIPTION="A KDE game similiar to Mahjongg"
-HOMEPAGE="
-	https://kde.org/applications/games/kshisen/
-	https://games.kde.org/game.php?game=kshisen
-"
+DESCRIPTION="Solitaire-like game played using the standard set of Mahjong tiles"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kshisen
+https://games.kde.org/game.php?game=kshisen"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_kdeapps_dep libkmahjongg)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=kde-apps/libkmahjongg-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/ksirk/ksirk-9999.ebuild b/kde-apps/ksirk/ksirk-9999.ebuild
index be5c0e4f08..bb9edcc05d 100644
--- a/kde-apps/ksirk/ksirk-9999.ebuild
+++ b/kde-apps/ksirk/ksirk-9999.ebuild
@@ -3,36 +3,40 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Port of the board game risk"
-HOMEPAGE="
-	https://kde.org/applications/games/ksirk/
-	https://games.kde.org/game.php?game=ksirk
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.ksirk
+https://games.kde.org/game.php?game=ksirk"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	app-crypt/qca:2[qt5(+)]
 	media-libs/phonon[qt5(+)]
 	sys-libs/zlib

diff --git a/kde-apps/ksmtp/ksmtp-9999.ebuild b/kde-apps/ksmtp/ksmtp-9999.ebuild
index 773a90cc59..856db91a2f 100644
--- a/kde-apps/ksmtp/ksmtp-9999.ebuild
+++ b/kde-apps/ksmtp/ksmtp-9999.ebuild
@@ -3,19 +3,24 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Job-based library to send email through an SMTP server"
+HOMEPAGE="https://api.kde.org/kdepim/ksmtp/html/index.html"
+
 LICENSE="LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_qt_dep qtnetwork)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
 	dev-libs/cyrus-sasl
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/ksnakeduel/ksnakeduel-9999.ebuild b/kde-apps/ksnakeduel/ksnakeduel-9999.ebuild
index 42ee8f942a..7ff5183034 100644
--- a/kde-apps/ksnakeduel/ksnakeduel-9999.ebuild
+++ b/kde-apps/ksnakeduel/ksnakeduel-9999.ebuild
@@ -3,29 +3,35 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
+ECM_HANDBOOK="optional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Tron game"
-HOMEPAGE="https://kde.org/applications/games/ksnakeduel/"
+HOMEPAGE="https://kde.org/applications/games/org.kde.ksnakeduel"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kspaceduel/kspaceduel-9999.ebuild b/kde-apps/kspaceduel/kspaceduel-9999.ebuild
index b658a6c6e7..c1dc7318c5 100644
--- a/kde-apps/kspaceduel/kspaceduel-9999.ebuild
+++ b/kde-apps/kspaceduel/kspaceduel-9999.ebuild
@@ -3,29 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Space Game by KDE"
-HOMEPAGE="
-	https://kde.org/applications/games/kspaceduel/
-	https://games.kde.org/game.php?game=kspaceduel
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kspaceduel
+https://games.kde.org/game.php?game=kspaceduel"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/ksquares/ksquares-9999.ebuild b/kde-apps/ksquares/ksquares-9999.ebuild
index 39237775a0..d83482d9c9 100644
--- a/kde-apps/ksquares/ksquares-9999.ebuild
+++ b/kde-apps/ksquares/ksquares-9999.ebuild
@@ -3,29 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE clone of the game squares"
-HOMEPAGE="
-	https://kde.org/applications/games/ksquares/
-	https://games.kde.org/game.php?game=ksquares
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.ksquares
+https://games.kde.org/game.php?game=ksquares"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/ksudoku/ksudoku-9999.ebuild b/kde-apps/ksudoku/ksudoku-9999.ebuild
index b68c98762c..394df68c81 100644
--- a/kde-apps/ksudoku/ksudoku-9999.ebuild
+++ b/kde-apps/ksudoku/ksudoku-9999.ebuild
@@ -3,38 +3,42 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Logic-based symbol placement puzzle by KDE"
-HOMEPAGE="
-	https://kde.org/applications/games/ksudoku/
-	https://games.kde.org/game.php?game=ksudoku
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.ksudoku
+https://games.kde.org/game.php?game=ksudoku"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="opengl"
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	opengl? (
-		$(add_qt_dep qtopengl)
+		>=dev-qt/qtopengl-${QTMIN}:5
 		virtual/glu
 	)
 "
@@ -45,5 +49,5 @@ src_configure() {
 		$(cmake-utils_use_find_package opengl OpenGL)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/ksystemlog/ksystemlog-9999.ebuild b/kde-apps/ksystemlog/ksystemlog-9999.ebuild
index 29f61df300..fa5a605a5c 100644
--- a/kde-apps/ksystemlog/ksystemlog-9999.ebuild
+++ b/kde-apps/ksystemlog/ksystemlog-9999.ebuild
@@ -3,13 +3,18 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="System log viewer by KDE"
-HOMEPAGE="https://kde.org/applications/system/ksystemlog/"
+HOMEPAGE="https://kde.org/applications/system/org.kde.ksystemlog"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="systemd"
 
@@ -17,28 +22,28 @@ IUSE="systemd"
 RESTRICT+=" test"
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	systemd? ( sys-apps/systemd )
 "
 RDEPEND="${DEPEND}"
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 
 	if use test; then
 		# beat this stupid test into shape: the test files contain no year, so
@@ -57,5 +62,5 @@ src_configure() {
 	local mycmakeargs=(
 		$(cmake-utils_use_find_package systemd Journald)
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kteatime/kteatime-9999.ebuild b/kde-apps/kteatime/kteatime-9999.ebuild
index cbade2583d..e359d480ee 100644
--- a/kde-apps/kteatime/kteatime-9999.ebuild
+++ b/kde-apps/kteatime/kteatime-9999.ebuild
@@ -3,26 +3,31 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE timer for making a fine cup of tea"
-HOMEPAGE="https://kde.org/applications/games/kteatime"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kteatime"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/ktimer/ktimer-9999.ebuild b/kde-apps/ktimer/ktimer-9999.ebuild
index 996fd92c24..9d3fa7dfb0 100644
--- a/kde-apps/ktimer/ktimer-9999.ebuild
+++ b/kde-apps/ktimer/ktimer-9999.ebuild
@@ -3,25 +3,30 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Little tool to execute programs after some time"
-HOMEPAGE="https://kde.org/applications/utilities/ktimer
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.ktimer
 https://utils.kde.org/projects/ktimer/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/ktouch/ktouch-9999.ebuild b/kde-apps/ktouch/ktouch-9999.ebuild
index 0096cef511..ef85d10986 100644
--- a/kde-apps/ktouch/ktouch-9999.ebuild
+++ b/kde-apps/ktouch/ktouch-9999.ebuild
@@ -3,37 +3,43 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Program that helps to learn and practice touch typing"
-HOMEPAGE="https://kde.org/applications/education/ktouch/"
+HOMEPAGE="https://kde.org/applications/education/org.kde.ktouch"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="X"
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtquickcontrols2)
-	$(add_qt_dep qtsql)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
-	$(add_qt_dep qtxmlpatterns)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtquickcontrols2-${QTMIN}:5
+	>=dev-qt/qtsql-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
+	>=dev-qt/qtxmlpatterns-${QTMIN}:5
 	X? (
-		$(add_qt_dep qtx11extras)
+		>=dev-qt/qtx11extras-${QTMIN}:5
 		x11-libs/libICE
 		x11-libs/libSM
 		x11-libs/libX11
@@ -42,11 +48,11 @@ COMMON_DEPEND="
 	)
 "
 DEPEND="${COMMON_DEPEND}
-	$(add_frameworks_dep kwindowsystem)
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
 "
 RDEPEND="${COMMON_DEPEND}
-	$(add_kdeapps_dep kqtquickcharts)
-	$(add_qt_dep qtgraphicaleffects)
+	>=kde-apps/kqtquickcharts-${PVCUT}:5
+	>=dev-qt/qtgraphicaleffects-${QTMIN}:5
 "
 
 src_configure() {
@@ -55,5 +61,5 @@ src_configure() {
 		$(cmake-utils_use_find_package X X11)
 		$(cmake-utils_use_find_package X Qt5X11Extras)
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/ktp-accounts-kcm/ktp-accounts-kcm-9999.ebuild b/kde-apps/ktp-accounts-kcm/ktp-accounts-kcm-9999.ebuild
index cad0ffebc4..9667780497 100644
--- a/kde-apps/ktp-accounts-kcm/ktp-accounts-kcm-9999.ebuild
+++ b/kde-apps/ktp-accounts-kcm/ktp-accounts-kcm-9999.ebuild
@@ -3,12 +3,16 @@
 
 EAPI=7
 
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Telepathy account management kcm"
-HOMEPAGE="https://community.kde.org/Real-Time_Communication_and_Collaboration"
+HOMEPAGE="https://community.kde.org/KTp"
 
 LICENSE="LGPL-2.1"
+SLOT="5"
 KEYWORDS=""
 IUSE="experimental"
 
@@ -16,32 +20,32 @@ BDEPEND="
 	dev-util/intltool
 "
 COMMON_DEPEND="
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_kdeapps_dep kaccounts-integration)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-apps/kaccounts-integration-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	net-libs/accounts-qt
 	net-libs/signond
 	net-libs/telepathy-qt[qt5(+)]
 "
 DEPEND="${COMMON_DEPEND}
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kio)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
 	net-libs/libaccounts-glib
 "
 RDEPEND="${COMMON_DEPEND}
-	$(add_kdeapps_dep kaccounts-providers)
+	>=kde-apps/kaccounts-providers-${PVCUT}:5
 	net-im/telepathy-connection-managers
 "
 
@@ -50,7 +54,7 @@ src_prepare() {
 		mv "${S}"/data/kaccounts/disabled/*.in "${S}"/data/kaccounts/ || \
 			die "couldn't enable experimental services"
 	fi
-	kde5_src_prepare
+	ecm_src_prepare
 }
 
 pkg_postinst() {
@@ -59,5 +63,5 @@ pkg_postinst() {
 		ewarn "Most of them aren't integrated nicely and may require additional steps for account creation."
 		ewarn "Use at your own risk!"
 	fi
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 }

diff --git a/kde-apps/ktp-approver/ktp-approver-9999.ebuild b/kde-apps/ktp-approver/ktp-approver-9999.ebuild
index 7a367317e7..8b7f131b40 100644
--- a/kde-apps/ktp-approver/ktp-approver-9999.ebuild
+++ b/kde-apps/ktp-approver/ktp-approver-9999.ebuild
@@ -3,27 +3,31 @@
 
 EAPI=7
 
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Telepathy notification handler"
-HOMEPAGE="https://community.kde.org/Real-Time_Communication_and_Collaboration"
+HOMEPAGE="https://community.kde.org/KTp"
 
 LICENSE="LGPL-2.1"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kservice)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	net-libs/telepathy-qt[qt5(+)]
 "
 RDEPEND="${DEPEND}
-	$(add_kdeapps_dep ktp-contact-list)
+	>=kde-apps/ktp-contact-list-${PVCUT}:5
 "

diff --git a/kde-apps/ktp-auth-handler/ktp-auth-handler-9999.ebuild b/kde-apps/ktp-auth-handler/ktp-auth-handler-9999.ebuild
index cd63435803..537de98a1d 100644
--- a/kde-apps/ktp-auth-handler/ktp-auth-handler-9999.ebuild
+++ b/kde-apps/ktp-auth-handler/ktp-auth-handler-9999.ebuild
@@ -3,28 +3,32 @@
 
 EAPI=7
 
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Telepathy authentication handler"
-HOMEPAGE="https://community.kde.org/Real-Time_Communication_and_Collaboration"
+HOMEPAGE="https://community.kde.org/KTp"
 
 LICENSE="LGPL-2.1"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_kdeapps_dep kaccounts-integration)
-	$(add_kdeapps_dep ktp-common-internals)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-apps/kaccounts-integration-${PVCUT}:5
+	>=kde-apps/ktp-common-internals-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	app-crypt/qca:2[qt5(+)]
 	net-libs/accounts-qt
 	net-libs/signond

diff --git a/kde-apps/ktp-call-ui/ktp-call-ui-9999.ebuild b/kde-apps/ktp-call-ui/ktp-call-ui-9999.ebuild
index d140fca04e..59389ac127 100644
--- a/kde-apps/ktp-call-ui/ktp-call-ui-9999.ebuild
+++ b/kde-apps/ktp-call-ui/ktp-call-ui-9999.ebuild
@@ -3,31 +3,35 @@
 
 EAPI=7
 
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
-DESCRIPTION="KDE Telepathy audio/video conferencing ui"
-HOMEPAGE="https://community.kde.org/Real-Time_Communication_and_Collaboration"
+DESCRIPTION="KDE Telepathy audio/video conferencing UI"
+HOMEPAGE="https://community.kde.org/KTp"
 
 LICENSE="GPL-2"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 RDEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep ktp-common-internals)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/ktp-common-internals-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	dev-libs/glib:2
 	media-libs/phonon[qt5(+)]
 	media-libs/qt-gstreamer[qt5(+)]
@@ -37,5 +41,5 @@ RDEPEND="
 "
 # TODO: dep leak suspect
 DEPEND="${RDEPEND}
-	$(add_frameworks_dep kcmutils)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
 "

diff --git a/kde-apps/ktp-common-internals/ktp-common-internals-9999.ebuild b/kde-apps/ktp-common-internals/ktp-common-internals-9999.ebuild
index 6112016fb4..f017b4998a 100644
--- a/kde-apps/ktp-common-internals/ktp-common-internals-9999.ebuild
+++ b/kde-apps/ktp-common-internals/ktp-common-internals-9999.ebuild
@@ -3,38 +3,42 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional"
-inherit kde5
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Telepathy common library"
-HOMEPAGE="https://community.kde.org/Real-Time_Communication_and_Collaboration"
+HOMEPAGE="https://community.kde.org/KTp"
 
 LICENSE="LGPL-2.1"
+SLOT="5"
 KEYWORDS=""
 IUSE="otr +sso"
 
 RDEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kpeople)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktexteditor)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsql)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kpeople-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktexteditor-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsql-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	>=net-libs/telepathy-logger-qt-17.08.0:5
 	>=net-libs/telepathy-qt-0.9.5[qt5(+)]
 	otr? (
@@ -42,14 +46,14 @@ RDEPEND="
 		>=net-libs/libotr-4.0.0
 	)
 	sso? (
-		$(add_kdeapps_dep kaccounts-integration)
+		>=kde-apps/kaccounts-integration-${PVCUT}:5
 		net-libs/accounts-qt
 		net-libs/telepathy-accounts-signon
 	)
 "
 DEPEND="${RDEPEND}
-	$(add_frameworks_dep kio)
-	$(add_qt_dep qtnetwork)
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
 "
 
 src_configure() {
@@ -60,5 +64,5 @@ src_configure() {
 		$(cmake-utils_use_find_package otr LibOTR)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/ktp-contact-list/ktp-contact-list-9999.ebuild b/kde-apps/ktp-contact-list/ktp-contact-list-9999.ebuild
index bdb277a322..41eca91974 100644
--- a/kde-apps/ktp-contact-list/ktp-contact-list-9999.ebuild
+++ b/kde-apps/ktp-contact-list/ktp-contact-list-9999.ebuild
@@ -3,38 +3,42 @@
 
 EAPI=7
 
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Telepathy contact list"
-HOMEPAGE="https://community.kde.org/Real-Time_Communication_and_Collaboration"
+HOMEPAGE="https://community.kde.org/KTp"
 
 LICENSE="GPL-2"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 RDEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kpeople)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep ktp-common-internals)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kpeople-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/ktp-common-internals-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	net-libs/telepathy-qt[qt5(+)]
 "
 DEPEND="${RDEPEND}
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "

diff --git a/kde-apps/ktp-contact-runner/ktp-contact-runner-9999.ebuild b/kde-apps/ktp-contact-runner/ktp-contact-runner-9999.ebuild
index 82444ad18d..62039e0519 100644
--- a/kde-apps/ktp-contact-runner/ktp-contact-runner-9999.ebuild
+++ b/kde-apps/ktp-contact-runner/ktp-contact-runner-9999.ebuild
@@ -3,25 +3,29 @@
 
 EAPI=7
 
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Telepathy krunner plugin"
-HOMEPAGE="https://community.kde.org/Real-Time_Communication_and_Collaboration"
+HOMEPAGE="https://community.kde.org/KTp"
 
 LICENSE="LGPL-2.1"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 RDEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep krunner)
-	$(add_kdeapps_dep ktp-common-internals)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/krunner-${KFMIN}:5
+	>=kde-apps/ktp-common-internals-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	net-libs/telepathy-qt[qt5(+)]
 "
 DEPEND="${RDEPEND}
-	$(add_frameworks_dep kservice)
+	>=kde-frameworks/kservice-${KFMIN}:5
 "

diff --git a/kde-apps/ktp-desktop-applets/ktp-desktop-applets-9999.ebuild b/kde-apps/ktp-desktop-applets/ktp-desktop-applets-9999.ebuild
index d38df8e94a..50b4fdd2c9 100644
--- a/kde-apps/ktp-desktop-applets/ktp-desktop-applets-9999.ebuild
+++ b/kde-apps/ktp-desktop-applets/ktp-desktop-applets-9999.ebuild
@@ -3,22 +3,25 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Telepathy contact, presence and chat Plasma applets"
-HOMEPAGE="https://community.kde.org/Real-Time_Communication_and_Collaboration"
+HOMEPAGE="https://community.kde.org/KTp"
 
 LICENSE="|| ( GPL-2 GPL-3 ) GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 RDEPEND="
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep plasma)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtdeclarative)
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/plasma-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
 "
 DEPEND="${RDEPEND}
-	$(add_frameworks_dep ki18n)
+	>=kde-frameworks/ki18n-${KFMIN}:5
 "

diff --git a/kde-apps/ktp-filetransfer-handler/ktp-filetransfer-handler-9999.ebuild b/kde-apps/ktp-filetransfer-handler/ktp-filetransfer-handler-9999.ebuild
index 3aa53e540d..eb1339a71d 100644
--- a/kde-apps/ktp-filetransfer-handler/ktp-filetransfer-handler-9999.ebuild
+++ b/kde-apps/ktp-filetransfer-handler/ktp-filetransfer-handler-9999.ebuild
@@ -3,24 +3,28 @@
 
 EAPI=7
 
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Telepathy file transfer handler"
-HOMEPAGE="https://community.kde.org/Real-Time_Communication_and_Collaboration"
+HOMEPAGE="https://community.kde.org/KTp"
 
 LICENSE="GPL-2+ LGPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_kdeapps_dep ktp-common-internals)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-apps/ktp-common-internals-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	net-libs/telepathy-qt[qt5(+)]
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/ktp-kded-module/ktp-kded-module-9999.ebuild b/kde-apps/ktp-kded-module/ktp-kded-module-9999.ebuild
index d87bd7ad95..e55d60cef0 100644
--- a/kde-apps/ktp-kded-module/ktp-kded-module-9999.ebuild
+++ b/kde-apps/ktp-kded-module/ktp-kded-module-9999.ebuild
@@ -3,37 +3,41 @@
 
 EAPI=7
 
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Telepathy workspace integration"
-HOMEPAGE="https://community.kde.org/Real-Time_Communication_and_Collaboration"
+HOMEPAGE="https://community.kde.org/KTp"
 
 LICENSE="LGPL-2.1"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kidletime)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knotifications)
-	$(add_kdeapps_dep ktp-common-internals)
-	$(add_qt_dep qtconcurrent)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtsql)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kidletime-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-apps/ktp-common-internals-${PVCUT}:5
+	>=dev-qt/qtconcurrent-${QTMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtsql-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	net-libs/telepathy-qt[qt5(+)]
 "
 DEPEND="${COMMON_DEPEND}
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kwidgetsaddons)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
 "
 RDEPEND="${COMMON_DEPEND}
-	$(add_kdeapps_dep signon-kwallet-extension)
+	>=kde-apps/signon-kwallet-extension-${PVCUT}:5
 "

diff --git a/kde-apps/ktp-send-file/ktp-send-file-9999.ebuild b/kde-apps/ktp-send-file/ktp-send-file-9999.ebuild
index ffb26e0a47..a9da020386 100644
--- a/kde-apps/ktp-send-file/ktp-send-file-9999.ebuild
+++ b/kde-apps/ktp-send-file/ktp-send-file-9999.ebuild
@@ -3,31 +3,35 @@
 
 EAPI=7
 
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Telepathy file manager plugin to send files to contacts"
-HOMEPAGE="https://community.kde.org/Real-Time_Communication_and_Collaboration"
+HOMEPAGE="https://community.kde.org/KTp"
 
 LICENSE="LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_kdeapps_dep ktp-common-internals)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-apps/ktp-common-internals-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	net-libs/telepathy-qt[qt5(+)]
 "
 DEPEND="${COMMON_DEPEND}
-	$(add_frameworks_dep kcmutils)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
 "
 RDEPEND="${COMMON_DEPEND}
-	$(add_kdeapps_dep ktp-contact-list)
-	$(add_kdeapps_dep ktp-filetransfer-handler)
+	>=kde-apps/ktp-contact-list-${PVCUT}:5
+	>=kde-apps/ktp-filetransfer-handler-${PVCUT}:5
 "

diff --git a/kde-apps/ktp-text-ui/ktp-text-ui-9999.ebuild b/kde-apps/ktp-text-ui/ktp-text-ui-9999.ebuild
index 7bb7f48236..c7cf69c63a 100644
--- a/kde-apps/ktp-text-ui/ktp-text-ui-9999.ebuild
+++ b/kde-apps/ktp-text-ui/ktp-text-ui-9999.ebuild
@@ -3,47 +3,51 @@
 
 EAPI=7
 
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE Telepathy text chat window"
-HOMEPAGE="https://community.kde.org/Real-Time_Communication_and_Collaboration"
+HOMEPAGE="https://community.kde.org/KTp"
 
 LICENSE="Apache-2.0 || ( AFL-2.1 BSD ) GPL-2+ LGPL-2.1+ MIT"
+SLOT="5"
 KEYWORDS=""
 IUSE="speech"
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kemoticons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kpeople)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep sonnet)
-	$(add_kdeapps_dep ktp-common-internals otr)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwebengine 'widgets')
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kemoticons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kpeople-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/sonnet-${KFMIN}:5
+	>=kde-apps/ktp-common-internals-${PVCUT}:5[otr]
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwebengine-${QTMIN}:5[widgets]
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	net-libs/telepathy-qt[qt5(+)]
-	speech? ( $(add_qt_dep qtspeech) )
+	speech? ( >=dev-qt/qtspeech-${QTMIN}:5 )
 "
 RDEPEND="${DEPEND}
-	$(add_kdeapps_dep ktp-contact-list)
+	>=kde-apps/ktp-contact-list-${PVCUT}:5
 "
 
 src_configure() {
@@ -51,5 +55,5 @@ src_configure() {
 		$(cmake-utils_use_find_package speech Qt5TextToSpeech)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/ktuberling/ktuberling-9999.ebuild b/kde-apps/ktuberling/ktuberling-9999.ebuild
index b05fa6bb09..fe8acab318 100644
--- a/kde-apps/ktuberling/ktuberling-9999.ebuild
+++ b/kde-apps/ktuberling/ktuberling-9999.ebuild
@@ -3,36 +3,40 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Potato game for kids by KDE"
-HOMEPAGE="
-	https://kde.org/applications/games/ktuberling/
-	https://games.kde.org/game.php?game=ktuberling
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.ktuberling
+https://games.kde.org/game.php?game=ktuberling"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtmultimedia)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtmultimedia-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	media-libs/phonon[qt5(+)]
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kturtle/kturtle-9999.ebuild b/kde-apps/kturtle/kturtle-9999.ebuild
index 8cc5fffc30..c96e6c800b 100644
--- a/kde-apps/kturtle/kturtle-9999.ebuild
+++ b/kde-apps/kturtle/kturtle-9999.ebuild
@@ -3,29 +3,35 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Educational programming environment using the Logo programming language"
-HOMEPAGE="https://kde.org/applications/education/kturtle https://edu.kde.org/kturtle/"
+HOMEPAGE="https://kde.org/applications/education/org.kde.kturtle
+https://edu.kde.org/kturtle/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kubrick/kubrick-9999.ebuild b/kde-apps/kubrick/kubrick-9999.ebuild
index ae343da466..0273cc4c31 100644
--- a/kde-apps/kubrick/kubrick-9999.ebuild
+++ b/kde-apps/kubrick/kubrick-9999.ebuild
@@ -3,27 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Game based on the \"Rubik's Cube\" puzzle by KDE"
-HOMEPAGE="https://kde.org/applications/games/kubrick/"
+HOMEPAGE="https://kde.org/applications/games/org.kde.kubrick"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtopengl)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtopengl-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	virtual/glu
 	virtual/opengl
 "

diff --git a/kde-apps/kwalletmanager/kwalletmanager-9999.ebuild b/kde-apps/kwalletmanager/kwalletmanager-9999.ebuild
index 013f62b731..f1b888e86f 100644
--- a/kde-apps/kwalletmanager/kwalletmanager-9999.ebuild
+++ b/kde-apps/kwalletmanager/kwalletmanager-9999.ebuild
@@ -3,40 +3,45 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
-DESCRIPTION="KDE Wallet management tool"
-HOMEAGE="https://kde.org/applications/system/kwalletmanager
+DESCRIPTION="Tool to manage the passwords on your system using KDE Wallet"
+HOMEAGE="https://kde.org/applications/system/org.kde.kwalletmanager5
 https://utils.kde.org/projects/kwalletmanager"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kauth)
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kauth-${KFMIN}:5
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/kwave/kwave-9999.ebuild b/kde-apps/kwave/kwave-9999.ebuild
index 434843dc84..f516b1822d 100644
--- a/kde-apps/kwave/kwave-9999.ebuild
+++ b/kde-apps/kwave/kwave-9999.ebuild
@@ -3,15 +3,17 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Sound editor built on KDE Frameworks 5 that can edit many types of audio files"
-HOMEPAGE="http://kwave.sourceforge.net/ https://kde.org/applications/multimedia/kwave/"
-LICENSE="CC-BY-SA-3.0 CC0-1.0 GPL-2+ LGPL-2+
-	handbook? ( FDL-1.2 )
-	opus? ( BSD-2 )
-"
+HOMEPAGE="https://kde.org/applications/multimedia/org.kde.kwave"
+
+LICENSE="CC-BY-SA-3.0 CC0-1.0 GPL-2+ LGPL-2+ handbook? ( FDL-1.2 ) opus? ( BSD-2 )"
+SLOT="5"
 KEYWORDS=""
 IUSE="alsa flac mp3 opus oss pulseaudio +qtmedia vorbis"
 
@@ -23,20 +25,20 @@ BDEPEND="
 	) )
 "
 RDEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-libs/audiofile:=
 	>=sci-libs/fftw-3
 	media-libs/libsamplerate
@@ -47,7 +49,7 @@ RDEPEND="
 		media-libs/libmad
 		|| ( media-sound/lame media-sound/toolame media-sound/twolame )
 	)
-	qtmedia? ( $(add_qt_dep qtmultimedia) )
+	qtmedia? ( >=dev-qt/qtmultimedia-${QTMIN}:5 )
 	opus? (
 		media-libs/libogg
 		media-libs/opus
@@ -59,8 +61,8 @@ RDEPEND="
 	)
 "
 DEPEND="${RDEPEND}
-	$(add_kdeapps_dep poxml)
-	$(add_qt_dep qtconcurrent)
+	>=kde-apps/poxml-${PVCUT}:5
+	>=dev-qt/qtconcurrent-${QTMIN}:5
 "
 
 DOCS=( AUTHORS CHANGES LICENSES README TODO )
@@ -79,5 +81,5 @@ src_configure() {
 		-DWITH_QT_AUDIO=$(usex qtmedia)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/kwordquiz/kwordquiz-9999.ebuild b/kde-apps/kwordquiz/kwordquiz-9999.ebuild
index 37e4b499b0..7feabdd3fa 100644
--- a/kde-apps/kwordquiz/kwordquiz-9999.ebuild
+++ b/kde-apps/kwordquiz/kwordquiz-9999.ebuild
@@ -3,34 +3,41 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Powerful flashcard and vocabulary learning program"
-HOMEPAGE="https://kde.org/applications/education/kwordquiz https://edu.kde.org/kwordquiz/"
+HOMEPAGE="https://kde.org/applications/education/org.kde.kwordquiz
+https://edu.kde.org/kwordquiz/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkeduvocdocument)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkeduvocdocument-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-libs/phonon[qt5(+)]
 "
 RDEPEND=${DEPEND}

diff --git a/kde-apps/kwrite/kwrite-9999.ebuild b/kde-apps/kwrite/kwrite-9999.ebuild
index 4bd07c5d54..415a72c179 100644
--- a/kde-apps/kwrite/kwrite-9999.ebuild
+++ b/kde-apps/kwrite/kwrite-9999.ebuild
@@ -3,37 +3,41 @@
 
 EAPI=7
 
-KMNAME="kate"
-KDE_HANDBOOK="optional"
-inherit kde5
+KDE_ORG_NAME="kate"
+ECM_HANDBOOK="optional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Simple text editor based on KDE Frameworks"
-HOMEPAGE="https://kde.org/applications/utilities/kwrite"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.kwrite"
 
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="activities"
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep ktexteditor)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	activities? ( $(add_frameworks_dep kactivities) )
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/ktexteditor-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	activities? ( >=kde-frameworks/kactivities-${KFMIN}:5 )
 "
 RDEPEND="${DEPEND}"
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 	# delete colliding kate translations
 	if [[ ${KDE_BUILD_TYPE} = release ]]; then
 		find po -type f -name "*po" -and -not -name "kwrite*" -delete || die
@@ -49,5 +53,5 @@ src_configure() {
 	)
 	use handbook && mycmakeargs+=( -DBUILD_katepart=FALSE )
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/libgravatar/libgravatar-9999.ebuild b/kde-apps/libgravatar/libgravatar-9999.ebuild
index 58f6ba07a2..59b423057c 100644
--- a/kde-apps/libgravatar/libgravatar-9999.ebuild
+++ b/kde-apps/libgravatar/libgravatar-9999.ebuild
@@ -3,25 +3,30 @@
 
 EAPI=7
 
-KDE_TEST="true"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Library for gravatar integration"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n
@@ -32,5 +37,5 @@ src_test() {
 	local myctestargs=(
 		-E "(gravatar-gravatarresolvurljobtest)"
 	)
-	kde5_src_test
+	ecm_src_test
 }

diff --git a/kde-apps/libkcddb/libkcddb-9999.ebuild b/kde-apps/libkcddb/libkcddb-9999.ebuild
index 18e01a9e3e..1b41affc38 100644
--- a/kde-apps/libkcddb/libkcddb-9999.ebuild
+++ b/kde-apps/libkcddb/libkcddb-9999.ebuild
@@ -3,26 +3,30 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="true"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE library for CDDB"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2 )"
+SLOT="5"
 KEYWORDS=""
 IUSE="musicbrainz"
 
 DEPEND="
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	musicbrainz? ( media-libs/musicbrainz:5 )
 "
 RDEPEND="${DEPEND}"
@@ -32,7 +36,7 @@ RDEPEND="${DEPEND}"
 RESTRICT+=" test"
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 
 	if ! use handbook ; then
 		pushd kcmcddb > /dev/null
@@ -46,5 +50,5 @@ src_configure() {
 		$(cmake-utils_use_find_package musicbrainz MusicBrainz5)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/libkcompactdisc/libkcompactdisc-9999.ebuild b/kde-apps/libkcompactdisc/libkcompactdisc-9999.ebuild
index 28b0c60495..de2b82eacf 100644
--- a/kde-apps/libkcompactdisc/libkcompactdisc-9999.ebuild
+++ b/kde-apps/libkcompactdisc/libkcompactdisc-9999.ebuild
@@ -3,18 +3,22 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library for playing & ripping CDs"
+
 LICENSE="GPL-2+ LGPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE="alsa"
 
 DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep solid)
-	$(add_qt_dep qtdbus)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/solid-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
 	media-libs/phonon[qt5(+)]
 	alsa? ( media-libs/alsa-lib )
 "
@@ -24,5 +28,5 @@ src_configure() {
 	local mycmakeargs=(
 		$(cmake-utils_use_find_package alsa ALSA)
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/libkdcraw/libkdcraw-9999.ebuild b/kde-apps/libkdcraw/libkdcraw-9999.ebuild
index 5606adcd6b..82ab6a2b57 100644
--- a/kde-apps/libkdcraw/libkdcraw-9999.ebuild
+++ b/kde-apps/libkdcraw/libkdcraw-9999.ebuild
@@ -3,15 +3,18 @@
 
 EAPI=7
 
-inherit kde5
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Digital camera raw image library wrapper"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_qt_dep qtgui)
+	>=dev-qt/qtgui-${QTMIN}:5
 	>=media-libs/libraw-0.16:=
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/libkdegames/libkdegames-9999.ebuild b/kde-apps/libkdegames/libkdegames-9999.ebuild
index f15102d6be..bb351b97cf 100644
--- a/kde-apps/libkdegames/libkdegames-9999.ebuild
+++ b/kde-apps/libkdegames/libkdegames-9999.ebuild
@@ -3,43 +3,48 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional-recursive"
+ECM_TEST="forceoptional-recursive"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Base library common to many KDE games"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep kdnssd)
-	$(add_frameworks_dep kglobalaccel)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdeclarative 'widgets')
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/kdnssd-${KFMIN}:5
+	>=kde-frameworks/kglobalaccel-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5[widgets]
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	media-libs/libsndfile
 	media-libs/openal
 "

diff --git a/kde-apps/libkdepim/libkdepim-9999.ebuild b/kde-apps/libkdepim/libkdepim-9999.ebuild
index d8a7214c75..07321cfb10 100644
--- a/kde-apps/libkdepim/libkdepim-9999.ebuild
+++ b/kde-apps/libkdepim/libkdepim-9999.ebuild
@@ -4,37 +4,42 @@
 EAPI=7
 
 ECM_DESIGNERPLUGIN="true"
-KDE_TEST="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Common PIM libraries"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-search)
-	$(add_kdeapps_dep kldap)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-search-${PVCUT}:5
+	>=kde-apps/kldap-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-common-libs:4

diff --git a/kde-apps/libkeduvocdocument/libkeduvocdocument-9999.ebuild b/kde-apps/libkeduvocdocument/libkeduvocdocument-9999.ebuild
index 15fd3a6278..0306294e98 100644
--- a/kde-apps/libkeduvocdocument/libkeduvocdocument-9999.ebuild
+++ b/kde-apps/libkeduvocdocument/libkeduvocdocument-9999.ebuild
@@ -3,24 +3,29 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library for reading/writing KVTML"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"
 
 src_prepare(){
-	kde5_src_prepare
+	ecm_src_prepare
 
 	if ! use test; then
 		sed -e "/add_subdirectory(autotests)/ s/^/#DONT/" \

diff --git a/kde-apps/libkexiv2/libkexiv2-9999.ebuild b/kde-apps/libkexiv2/libkexiv2-9999.ebuild
index 8fc3f0d9d3..85b8efc0aa 100644
--- a/kde-apps/libkexiv2/libkexiv2-9999.ebuild
+++ b/kde-apps/libkexiv2/libkexiv2-9999.ebuild
@@ -3,15 +3,18 @@
 
 EAPI=7
 
-inherit kde5
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Wrapper around exiv2 library"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE="+xmp"
 
 DEPEND="
-	$(add_qt_dep qtgui)
+	>=dev-qt/qtgui-${QTMIN}:5
 	>=media-gfx/exiv2-0.25:=[xmp=]
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/libkgapi/libkgapi-9999.ebuild b/kde-apps/libkgapi/libkgapi-9999.ebuild
index 6e4f148f5b..46340f37b2 100644
--- a/kde-apps/libkgapi/libkgapi-9999.ebuild
+++ b/kde-apps/libkgapi/libkgapi-9999.ebuild
@@ -3,30 +3,33 @@
 
 EAPI=7
 
-KDE_TEST="true"
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Library for accessing Google calendar and contact resources"
-HOMEPAGE="https://cgit.kde.org/libkgapi.git"
+HOMEPAGE="https://api.kde.org/kdepim/libkgapi/html/index.html"
 
 LICENSE="LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE="nls"
 
 BDEPEND="
-	nls? ( $(add_qt_dep linguist-tools) )
+	nls? ( >=dev-qt/linguist-tools-${QTMIN}:5 )
 "
 DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwebengine 'widgets')
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwebengine-${QTMIN}:5[widgets]
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	dev-libs/cyrus-sasl:2
 "
 RDEPEND="${DEPEND}

diff --git a/kde-apps/libkgeomap/libkgeomap-9999.ebuild b/kde-apps/libkgeomap/libkgeomap-9999.ebuild
index e525d91e68..1967eaed02 100644
--- a/kde-apps/libkgeomap/libkgeomap-9999.ebuild
+++ b/kde-apps/libkgeomap/libkgeomap-9999.ebuild
@@ -3,33 +3,37 @@
 
 EAPI=7
 
-KDE_TEST="true"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Wrapper library for world map components as marble, openstreetmap and googlemap"
 HOMEPAGE="https://www.digikam.org/"
 
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_kdeapps_dep marble 'kde' '' '5=')
-	$(add_qt_dep qtconcurrent)
-	$(add_qt_dep qtgui)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-apps/marble-${PVCUT}:5=[kde]
+	>=dev-qt/qtconcurrent-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
 	>=dev-qt/qtwebkit-5.212.0_pre20180120:5
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"
 
 src_configure() {
 	use test && local mycmakeargs=( -DCMAKE_DISABLE_FIND_PACKAGE_KF5KExiv2=true )
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/libkipi/libkipi-9999.ebuild b/kde-apps/libkipi/libkipi-9999.ebuild
index bd8785a1df..82d7ce59c7 100644
--- a/kde-apps/libkipi/libkipi-9999.ebuild
+++ b/kde-apps/libkipi/libkipi-9999.ebuild
@@ -3,21 +3,24 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="A library for image plugins accross KDE applications"
+
 LICENSE="GPL-2+"
 SLOT="5/32"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/libkleo/libkleo-9999.ebuild b/kde-apps/libkleo/libkleo-9999.ebuild
index 872aaef297..fcd8b3c01d 100644
--- a/kde-apps/libkleo/libkleo-9999.ebuild
+++ b/kde-apps/libkleo/libkleo-9999.ebuild
@@ -3,27 +3,32 @@
 
 EAPI=7
 
-KDE_TEST="false"
-inherit kde5
+ECM_TEST="false"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library for encryption handling"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE="+fancyviewer"
 
 COMMON_DEPEND="
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	>=app-crypt/gpgme-1.11.1[cxx,qt5]
-	fancyviewer? ( $(add_kdeapps_dep kpimtextedit) )
+	fancyviewer? ( >=kde-apps/kpimtextedit-${PVCUT}:5 )
 "
 DEPEND="${COMMON_DEPEND}
 	dev-libs/boost

diff --git a/kde-apps/libkmahjongg/libkmahjongg-9999.ebuild b/kde-apps/libkmahjongg/libkmahjongg-9999.ebuild
index 285ddad150..2b81a12543 100644
--- a/kde-apps/libkmahjongg/libkmahjongg-9999.ebuild
+++ b/kde-apps/libkmahjongg/libkmahjongg-9999.ebuild
@@ -3,21 +3,26 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Mahjongg library based on Qt/KDE Frameworks"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/libkomparediff2/libkomparediff2-9999.ebuild b/kde-apps/libkomparediff2/libkomparediff2-9999.ebuild
index ac96478261..bad27509ee 100644
--- a/kde-apps/libkomparediff2/libkomparediff2-9999.ebuild
+++ b/kde-apps/libkomparediff2/libkomparediff2-9999.ebuild
@@ -3,22 +3,27 @@
 
 EAPI=7
 
-KDE_TEST="true"
-inherit kde5
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE library to compare files and strings"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/libksane/libksane-9999.ebuild b/kde-apps/libksane/libksane-9999.ebuild
index d8e6ad3f54..8b3a013369 100644
--- a/kde-apps/libksane/libksane-9999.ebuild
+++ b/kde-apps/libksane/libksane-9999.ebuild
@@ -3,21 +3,25 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="SANE Library interface based on KDE Frameworks"
+
 LICENSE="|| ( LGPL-2.1 LGPL-3 )"
+SLOT="5"
 KEYWORDS=""
 IUSE="kwallet"
 
 DEPEND="
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-gfx/sane-backends
-	kwallet? ( $(add_frameworks_dep kwallet) )
+	kwallet? ( >=kde-frameworks/kwallet-${KFMIN}:5 )
 "
 RDEPEND="${DEPEND}"
 
@@ -25,5 +29,5 @@ src_configure() {
 	local mycmakeargs=(
 		$(cmake-utils_use_find_package kwallet KF5Wallet)
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/libksieve/libksieve-9999.ebuild b/kde-apps/libksieve/libksieve-9999.ebuild
index 753f76414f..dcca828bd7 100644
--- a/kde-apps/libksieve/libksieve-9999.ebuild
+++ b/kde-apps/libksieve/libksieve-9999.ebuild
@@ -3,45 +3,50 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="true"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Common PIM libraries"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 # drop qtwidgets subslot operator when QT_MINIMAL >= 5.14.0
 COMMON_DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep sonnet)
-	$(add_frameworks_dep syntax-highlighting)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep kpimtextedit)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwebengine 'widgets')
-	$(add_qt_dep qtwidgets '' '' '5=')
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/sonnet-${KFMIN}:5
+	>=kde-frameworks/syntax-highlighting-${KFMIN}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/kpimtextedit-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwebengine-${QTMIN}:5[widgets]
+	>=dev-qt/qtwidgets-${QTMIN}:5=
 	dev-libs/cyrus-sasl
 "
 DEPEND="${COMMON_DEPEND}
-	$(add_kdeapps_dep kimap)
-	$(add_kdeapps_dep kmailtransport)
+	>=kde-apps/kimap-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
 "
 RDEPEND="${COMMON_DEPEND}
 	!kde-apps/kdepim-l10n
@@ -50,7 +55,7 @@ RDEPEND="${COMMON_DEPEND}
 RESTRICT+=" test"
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 
 	if ! use handbook ; then
 		sed -e "/add_subdirectory(doc)/I s/^/#DONOTCOMPILE /" \

diff --git a/kde-apps/libktnef/libktnef-9999.ebuild b/kde-apps/libktnef/libktnef-9999.ebuild
index ac8e54fa30..ea84228f27 100644
--- a/kde-apps/libktnef/libktnef-9999.ebuild
+++ b/kde-apps/libktnef/libktnef-9999.ebuild
@@ -3,21 +3,26 @@
 
 EAPI=7
 
-KDE_TEST="true"
-KMNAME="ktnef"
-inherit kde5
+ECM_TEST="true"
+KDE_ORG_NAME="ktnef"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Library for handling TNEF data"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep ki18n)
-	$(add_kdeapps_dep kcalutils)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-apps/kcalutils-${PVCUT}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/lokalize/lokalize-9999.ebuild b/kde-apps/lokalize/lokalize-9999.ebuild
index dfe06c5411..8cbf7f3502 100644
--- a/kde-apps/lokalize/lokalize-9999.ebuild
+++ b/kde-apps/lokalize/lokalize-9999.ebuild
@@ -3,41 +3,46 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 PYTHON_COMPAT=( python3_{6,7} )
-inherit python-single-r1 kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit python-single-r1 ecm kde.org
 
 DESCRIPTION="KDE Applications 5 translation tool"
-HOMEPAGE="https://kde.org/applications/development/lokalize
+HOMEPAGE="https://kde.org/applications/office/org.kde.lokalize
 https://l10n.kde.org/tools/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 REQUIRED_USE="${PYTHON_REQUIRED_USE}"
 
 DEPEND="${PYTHON_DEPS}
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kross)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep sonnet)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtscript)
-	$(add_qt_dep qtsql 'sqlite')
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kross-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/sonnet-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtscript-${QTMIN}:5
+	>=dev-qt/qtsql-${QTMIN}:5[sqlite]
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	>=app-text/hunspell-1.2.8:=
 "
 RDEPEND="${DEPEND}
@@ -46,16 +51,16 @@ RDEPEND="${DEPEND}
 
 pkg_setup() {
 	python-single-r1_pkg_setup
-	kde5_pkg_setup
+	ecm_pkg_setup
 }
 
 src_install() {
-	kde5_src_install
+	ecm_src_install
 	python_fix_shebang "${ED}/usr/share/${PN}"
 }
 
 pkg_postinst() {
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	has_version dev-vcs/subversion || \
 		elog "To be able to autofetch KDE translations in new project wizard, install dev-vcs/subversion."

diff --git a/kde-apps/lskat/lskat-9999.ebuild b/kde-apps/lskat/lskat-9999.ebuild
index e9b7387d25..ffcd6d993c 100644
--- a/kde-apps/lskat/lskat-9999.ebuild
+++ b/kde-apps/lskat/lskat-9999.ebuild
@@ -3,29 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
+ECM_HANDBOOK="forceoptional"
 KDE_SELINUX_MODULE="games"
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Skat game by KDE"
-HOMEPAGE="
-	https://kde.org/applications/games/lskat/
-	https://games.kde.org/game.php?game=lskat
-"
+HOMEPAGE="https://kde.org/applications/games/org.kde.lskat
+https://games.kde.org/game.php?game=lskat"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kguiaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kguiaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/mailcommon/mailcommon-9999.ebuild b/kde-apps/mailcommon/mailcommon-9999.ebuild
index 4f461fb9ab..f1b183dfcc 100644
--- a/kde-apps/mailcommon/mailcommon-9999.ebuild
+++ b/kde-apps/mailcommon/mailcommon-9999.ebuild
@@ -4,12 +4,17 @@
 EAPI=7
 
 ECM_DESIGNERPLUGIN="true"
-KDE_TEST="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Common mail library"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
@@ -18,38 +23,38 @@ BDEPEND="
 	dev-libs/libxslt
 "
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep syntax-highlighting)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep kpimtextedit)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep mailimporter)
-	$(add_kdeapps_dep messagelib)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtmultimedia)
-	$(add_qt_dep qtwidgets '' '' '5=')
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/syntax-highlighting-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/kpimtextedit-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/mailimporter-${PVCUT}:5
+	>=kde-apps/messagelib-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtmultimedia-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5=
+	>=dev-qt/qtxml-${QTMIN}:5
 	>=media-libs/phonon-4.10.90
 "
 RDEPEND="${DEPEND}

diff --git a/kde-apps/mailimporter/mailimporter-9999.ebuild b/kde-apps/mailimporter/mailimporter-9999.ebuild
index b589dcc716..fede6b8bbe 100644
--- a/kde-apps/mailimporter/mailimporter-9999.ebuild
+++ b/kde-apps/mailimporter/mailimporter-9999.ebuild
@@ -3,27 +3,32 @@
 
 EAPI=7
 
-KDE_TEST="true"
+ECM_TEST="true"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Library to import mail from various sources"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep libkdepim)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/marble/marble-9999.ebuild b/kde-apps/marble/marble-9999.ebuild
index 4db7aa7256..0dfe132cb9 100644
--- a/kde-apps/marble/marble-9999.ebuild
+++ b/kde-apps/marble/marble-9999.ebuild
@@ -3,55 +3,58 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional" # see src/apps/marble-kde/CMakeLists.txt
-KDE_SUBSLOT="true"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="optional" # see src/apps/marble-kde/CMakeLists.txt
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Virtual Globe and World Atlas to learn more about Earth"
 HOMEPAGE="https://marble.kde.org/"
 
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5/$(ver_cut 1-2)"
 KEYWORDS=""
 IUSE="aprs +dbus designer gps +kde nls phonon +geolocation shapefile +webengine"
 
 # FIXME (new package): libwlocate, WLAN-based geolocation
 BDEPEND="
 	aprs? ( dev-lang/perl )
-	nls? ( $(add_qt_dep linguist-tools) )
+	nls? ( >=dev-qt/linguist-tools-${QTMIN}:5 )
 "
 DEPEND="
-	$(add_qt_dep qtconcurrent)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtsql)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=dev-qt/qtconcurrent-${QTMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtsql-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	sys-libs/zlib
-	aprs? ( $(add_qt_dep qtserialport) )
-	dbus? ( $(add_qt_dep qtdbus) )
-	designer? ( $(add_qt_dep designer) )
-	geolocation? ( $(add_qt_dep qtpositioning) )
+	aprs? ( >=dev-qt/qtserialport-${QTMIN}:5 )
+	dbus? ( >=dev-qt/qtdbus-${QTMIN}:5 )
+	designer? ( >=dev-qt/designer-${QTMIN}:5 )
+	geolocation? ( >=dev-qt/qtpositioning-${QTMIN}:5 )
 	gps? ( sci-geosciences/gpsd )
 	kde? (
-		$(add_frameworks_dep kconfig)
-		$(add_frameworks_dep kconfigwidgets)
-		$(add_frameworks_dep kcoreaddons)
-		$(add_frameworks_dep kcrash)
-		$(add_frameworks_dep ki18n)
-		$(add_frameworks_dep kio)
-		$(add_frameworks_dep knewstuff)
-		$(add_frameworks_dep kparts)
-		$(add_frameworks_dep krunner)
-		$(add_frameworks_dep kservice)
-		$(add_frameworks_dep kwallet)
+		>=kde-frameworks/kconfig-${KFMIN}:5
+		>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+		>=kde-frameworks/kcoreaddons-${KFMIN}:5
+		>=kde-frameworks/kcrash-${KFMIN}:5
+		>=kde-frameworks/ki18n-${KFMIN}:5
+		>=kde-frameworks/kio-${KFMIN}:5
+		>=kde-frameworks/knewstuff-${KFMIN}:5
+		>=kde-frameworks/kparts-${KFMIN}:5
+		>=kde-frameworks/krunner-${KFMIN}:5
+		>=kde-frameworks/kservice-${KFMIN}:5
+		>=kde-frameworks/kwallet-${KFMIN}:5
 	)
 	phonon? ( media-libs/phonon[qt5(+)] )
 	shapefile? ( sci-libs/shapelib:= )
-	webengine? ( $(add_qt_dep qtwebengine 'widgets') )
+	webengine? ( >=dev-qt/qtwebengine-${QTMIN}:5[widgets] )
 "
 RDEPEND="${DEPEND}"
 
@@ -59,7 +62,7 @@ RDEPEND="${DEPEND}"
 RESTRICT+=" test"
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 
 	rm -rf src/3rdparty/zlib || die "Failed to remove bundled libs"
 
@@ -86,7 +89,7 @@ src_configure() {
 		-DKDE_INSTALL_CONFDIR="/etc/xdg"
 	)
 	if use kde; then
-		kde5_src_configure
+		ecm_src_configure
 	else
 		cmake-utils_src_configure
 	fi

diff --git a/kde-apps/mbox-importer/mbox-importer-9999.ebuild b/kde-apps/mbox-importer/mbox-importer-9999.ebuild
index 229399ba86..b52d18d63b 100644
--- a/kde-apps/mbox-importer/mbox-importer-9999.ebuild
+++ b/kde-apps/mbox-importer/mbox-importer-9999.ebuild
@@ -3,28 +3,33 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional" # FIXME: Check back for doc in release
-inherit kde5
+ECM_HANDBOOK="forceoptional" # FIXME: Check back for doc in release
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Import mbox email archives from various sources into Akonadi"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep mailcommon)
-	$(add_kdeapps_dep mailimporter)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/mailcommon-${PVCUT}:5
+	>=kde-apps/mailimporter-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/messagelib/messagelib-9999.ebuild b/kde-apps/messagelib/messagelib-9999.ebuild
index e52e3d23e9..10eb16bb40 100644
--- a/kde-apps/messagelib/messagelib-9999.ebuild
+++ b/kde-apps/messagelib/messagelib-9999.ebuild
@@ -3,59 +3,64 @@
 
 EAPI=7
 
-KDE_TEST="forceoptional-recursive"
+ECM_TEST="forceoptional-recursive"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Libraries for messaging functions"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep sonnet)
-	$(add_frameworks_dep syntax-highlighting)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep grantleetheme)
-	$(add_kdeapps_dep incidenceeditor)
-	$(add_kdeapps_dep kdepim-apps-libs)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kldap)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep kmbox)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep kpimtextedit)
-	$(add_kdeapps_dep libgravatar)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep libkleo)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwebengine 'widgets')
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/sonnet-${KFMIN}:5
+	>=kde-frameworks/syntax-highlighting-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/grantleetheme-${PVCUT}:5
+	>=kde-apps/incidenceeditor-${PVCUT}:5
+	>=kde-apps/kdepim-apps-libs-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kldap-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/kmbox-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/kpimtextedit-${PVCUT}:5
+	>=kde-apps/libgravatar-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/libkleo-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwebengine-${QTMIN}:5[widgets]
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	>=app-crypt/gpgme-1.8.0-r1[cxx,qt5]
 	app-crypt/qca:2
 	>=dev-libs/grantlee-5.1.0:5

diff --git a/kde-apps/minuet/minuet-9999.ebuild b/kde-apps/minuet/minuet-9999.ebuild
index 93a012ff69..be0ecd408d 100644
--- a/kde-apps/minuet/minuet-9999.ebuild
+++ b/kde-apps/minuet/minuet-9999.ebuild
@@ -3,11 +3,16 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Music Education software by KDE"
 HOMEPAGE="https://minuet.kde.org/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
@@ -15,13 +20,13 @@ BDEPEND="
 	virtual/pkgconfig
 "
 DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtquickcontrols2)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtquickcontrols2-${QTMIN}:5
 	media-sound/fluidsynth:=
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/okular/okular-9999.ebuild b/kde-apps/okular/okular-9999.ebuild
index ff14595493..7e527dfd80 100644
--- a/kde-apps/okular/okular-9999.ebuild
+++ b/kde-apps/okular/okular-9999.ebuild
@@ -3,64 +3,70 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Universal document viewer based on KDE Frameworks"
-HOMEPAGE="https://okular.kde.org https://kde.org/applications/graphics/okular"
+HOMEPAGE="https://okular.kde.org https://kde.org/applications/office/org.kde.okular"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="chm crypt djvu epub +image-backend markdown mobi mobile +pdf plucker +postscript share speech +tiff"
 
 DEPEND="
-	$(add_frameworks_dep kactivities)
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjs)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kpty)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep threadweaver)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kactivities-${KFMIN}:5
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjs-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kpty-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/threadweaver-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	media-libs/freetype
 	media-libs/phonon[qt5(+)]
 	sys-libs/zlib
 	chm? (
-		$(add_frameworks_dep khtml)
+		>=kde-frameworks/khtml-${KFMIN}:5
 		dev-libs/chmlib
 	)
 	crypt? ( app-crypt/qca:2[qt5(+)] )
 	djvu? ( app-text/djvu )
 	epub? ( app-text/ebook-tools )
 	image-backend? (
-		$(add_kdeapps_dep libkexiv2)
-		$(add_qt_dep qtgui 'gif,jpeg,png')
+		>=kde-apps/libkexiv2-${PVCUT}:5
+		>=dev-qt/qtgui-${QTMIN}:5[gif,jpeg,png]
 	)
 	markdown? ( app-text/discount )
-	mobi? ( $(add_kdeapps_dep kdegraphics-mobipocket) )
+	mobi? ( >=kde-apps/kdegraphics-mobipocket-${PVCUT}:5 )
 	pdf? ( app-text/poppler[qt5] )
 	plucker? ( virtual/jpeg:0 )
 	postscript? ( app-text/libspectre )
-	share? ( $(add_frameworks_dep purpose) )
-	speech? ( $(add_qt_dep qtspeech) )
+	share? ( >=kde-frameworks/purpose-${KFMIN}:5 )
+	speech? ( >=dev-qt/qtspeech-${QTMIN}:5 )
 	tiff? ( media-libs/tiff:0 )
 "
 RDEPEND="${DEPEND}
-	image-backend? ( $(add_frameworks_dep kimageformats) )
+	image-backend? ( >=kde-frameworks/kimageformats-${KFMIN}:5 )
 	mobile? (
-		$(add_frameworks_dep kirigami)
-		$(add_qt_dep qtquickcontrols)
+		>=kde-frameworks/kirigami-${KFMIN}:5
+		>=dev-qt/qtquickcontrols-${QTMIN}:5
 	)
 "
 
@@ -70,7 +76,7 @@ PATCHES=(
 )
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 	use mobile || cmake_comment_add_subdirectory mobile
 	use test || cmake_comment_add_subdirectory conf/autotests
 }
@@ -92,7 +98,7 @@ src_configure() {
 		$(cmake-utils_use_find_package tiff TIFF)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }
 
 src_test() {
@@ -102,5 +108,5 @@ src_test() {
 		-E "(mainshelltest|chmgeneratortest|parttest)"
 	)
 
-	kde5_src_test
+	ecm_src_test
 }

diff --git a/kde-apps/palapeli/palapeli-9999.ebuild b/kde-apps/palapeli/palapeli-9999.ebuild
index fc40bb026a..067484fd1a 100644
--- a/kde-apps/palapeli/palapeli-9999.ebuild
+++ b/kde-apps/palapeli/palapeli-9999.ebuild
@@ -3,33 +3,39 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
-inherit kde5
+ECM_HANDBOOK="optional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Jigsaw puzzle game by KDE"
-HOMEPAGE="https://kde.org/applications/games/palapeli/"
+HOMEPAGE="https://kde.org/applications/games/org.kde.palapeli"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 RDEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 DEPEND="${RDEPEND}
-	$(add_qt_dep qtconcurrent)
+	>=dev-qt/qtconcurrent-${QTMIN}:5
 "

diff --git a/kde-apps/parley/parley-9999.ebuild b/kde-apps/parley/parley-9999.ebuild
index d29d96a396..1b04a66468 100644
--- a/kde-apps/parley/parley-9999.ebuild
+++ b/kde-apps/parley/parley-9999.ebuild
@@ -3,44 +3,49 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_DOC_DIR="docs"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_HANDBOOK_DIR="docs"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="A vocabulary trainer to help you memorize things"
-HOMEPAGE="https://kde.org/applications/education/parley
-https://edu.kde.org/applications/school/parley"
+HOMEPAGE="https://kde.org/applications/education/org.kde.parley"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kross)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep sonnet)
-	$(add_kdeapps_dep libkeduvocdocument)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtconcurrent)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtmultimedia)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtwebengine 'widgets')
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kross-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/sonnet-${KFMIN}:5
+	>=kde-apps/libkeduvocdocument-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtconcurrent-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtmultimedia-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtwebengine-${QTMIN}:5[widgets]
 	dev-libs/libxml2:2
 	dev-libs/libxslt
 "
 RDEPEND="${DEPEND}
-	$(add_kdeapps_dep kdeedu-data)
+	>=kde-apps/kdeedu-data-${PVCUT}:5
 "

diff --git a/kde-apps/picmi/picmi-9999.ebuild b/kde-apps/picmi/picmi-9999.ebuild
index 3c97c596a0..e59acb6dc5 100644
--- a/kde-apps/picmi/picmi-9999.ebuild
+++ b/kde-apps/picmi/picmi-9999.ebuild
@@ -3,32 +3,39 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Nonogram logic game by KDE"
-HOMEPAGE="https://games.kde.org/game.php?game=picmi"
+HOMEPAGE="https://kde.org/applications/games/org.kde.picmi
+https://games.kde.org/game.php?game=picmi"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep libkdegames)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/libkdegames-${PVCUT}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/pim-data-exporter/pim-data-exporter-9999.ebuild b/kde-apps/pim-data-exporter/pim-data-exporter-9999.ebuild
index 70cb7fac3e..722358bd47 100644
--- a/kde-apps/pim-data-exporter/pim-data-exporter-9999.ebuild
+++ b/kde-apps/pim-data-exporter/pim-data-exporter-9999.ebuild
@@ -3,41 +3,46 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Assistant to backup and archive PIM data and configuration"
 HOMEPAGE+=" https://userbase.kde.org/Kmail/Backup_Options"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep kidentitymanagement)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep kmime)
-	$(add_kdeapps_dep kpimtextedit)
-	$(add_kdeapps_dep libkdepim)
-	$(add_kdeapps_dep mailcommon)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/kidentitymanagement-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/kmime-${PVCUT}:5
+	>=kde-apps/kpimtextedit-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=kde-apps/mailcommon-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-l10n

diff --git a/kde-apps/pim-sieve-editor/pim-sieve-editor-9999.ebuild b/kde-apps/pim-sieve-editor/pim-sieve-editor-9999.ebuild
index f28612b52a..493594c426 100644
--- a/kde-apps/pim-sieve-editor/pim-sieve-editor-9999.ebuild
+++ b/kde-apps/pim-sieve-editor/pim-sieve-editor-9999.ebuild
@@ -3,40 +3,45 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Assistant for editing IMAP Sieve filters"
+
 LICENSE="GPL-2+ handbook? ( FDL-1.2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kcalendarcore)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kwallet)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep akonadi-mime)
-	$(add_kdeapps_dep calendarsupport)
-	$(add_kdeapps_dep kmailtransport)
-	$(add_kdeapps_dep libksieve)
-	$(add_kdeapps_dep pimcommon)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kcalendarcore-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kwallet-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/akonadi-mime-${PVCUT}:5
+	>=kde-apps/calendarsupport-${PVCUT}:5
+	>=kde-apps/kmailtransport-${PVCUT}:5
+	>=kde-apps/libksieve-${PVCUT}:5
+	>=kde-apps/pimcommon-${PVCUT}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}
 	!kde-apps/kdepim-common-libs:4

diff --git a/kde-apps/pimcommon/pimcommon-9999.ebuild b/kde-apps/pimcommon/pimcommon-9999.ebuild
index ef4db3dbb1..26c2da0e32 100644
--- a/kde-apps/pimcommon/pimcommon-9999.ebuild
+++ b/kde-apps/pimcommon/pimcommon-9999.ebuild
@@ -4,12 +4,17 @@
 EAPI=7
 
 ECM_DESIGNERPLUGIN="true"
-KDE_TEST="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="Common PIM libraries"
+
 LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
@@ -17,37 +22,37 @@ BDEPEND="
 	dev-libs/libxslt
 "
 COMMON_DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcodecs)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcontacts)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kitemmodels)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_frameworks_dep purpose)
-	$(add_kdeapps_dep akonadi)
-	$(add_kdeapps_dep akonadi-contacts)
-	$(add_kdeapps_dep kimap)
-	$(add_kdeapps_dep kpimtextedit)
-	$(add_kdeapps_dep libkdepim)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcodecs-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcontacts-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kitemmodels-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-frameworks/purpose-${KFMIN}:5
+	>=kde-apps/akonadi-${PVCUT}:5
+	>=kde-apps/akonadi-contacts-${PVCUT}:5
+	>=kde-apps/kimap-${PVCUT}:5
+	>=kde-apps/kpimtextedit-${PVCUT}:5
+	>=kde-apps/libkdepim-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 DEPEND="${COMMON_DEPEND}
-	test? ( $(add_kdeapps_dep kmime) )
+	test? ( >=kde-apps/kmime-${PVCUT}:5 )
 "
 RDEPEND="${COMMON_DEPEND}
 	!kde-apps/kdepim-common-libs:4
@@ -60,5 +65,5 @@ src_test() {
 		-E "(autocorrectiontest|pimcommon-translator-translatortest)"
 	)
 
-	kde5_src_test
+	ecm_src_test
 }

diff --git a/kde-apps/poxml/poxml-9999.ebuild b/kde-apps/poxml/poxml-9999.ebuild
index a610286469..758f06e910 100644
--- a/kde-apps/poxml/poxml-9999.ebuild
+++ b/kde-apps/poxml/poxml-9999.ebuild
@@ -3,15 +3,19 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="KDE utility to translate DocBook XML files using gettext po files"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_qt_dep qtxml)
+	>=dev-qt/qtxml-${QTMIN}:5
 	sys-devel/gettext
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/print-manager/print-manager-9999.ebuild b/kde-apps/print-manager/print-manager-9999.ebuild
index 14ee1edb1a..2ec66bbc13 100644
--- a/kde-apps/print-manager/print-manager-9999.ebuild
+++ b/kde-apps/print-manager/print-manager-9999.ebuild
@@ -3,40 +3,46 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+PLASMA_MINIMAL=5.16.5
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Manage print jobs and printers in Plasma"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="+gtk"
 
 DEPEND="
-	$(add_frameworks_dep kcmutils)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep plasma)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtdeclarative)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtnetwork)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kcmutils-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/plasma-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtnetwork-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 	net-print/cups
 "
 RDEPEND="${DEPEND}
-	$(add_plasma_dep kde-cli-tools)
+	>=kde-plasma/kde-cli-tools-${PLASMA_MINIMAL}:5
 	gtk? ( app-admin/system-config-printer )
 "
 
 pkg_postinst(){
-	kde5_pkg_postinst
+	ecm_pkg_postinst
 
 	if [[ -z "${REPLACING_VERSIONS}" ]] && ! use gtk ; then
 		ewarn "By switching off \"gtk\" USE flag, you have chosen to do without"

diff --git a/kde-apps/rocs/rocs-9999.ebuild b/kde-apps/rocs/rocs-9999.ebuild
index 4f7d585291..314e4253dd 100644
--- a/kde-apps/rocs/rocs-9999.ebuild
+++ b/kde-apps/rocs/rocs-9999.ebuild
@@ -3,39 +3,43 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
-KDE_TEST="true"
-inherit kde5
+ECM_HANDBOOK="optional"
+ECM_TEST="true"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Interface to work with Graph Theory"
-HOMEPAGE="https://kde.org/applications/education/rocs
-https://edu.kde.org/applications/mathematics/rocs"
+HOMEPAGE="https://kde.org/applications/education/org.kde.rocs"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 RDEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdeclarative)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kitemviews)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep ktexteditor)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtconcurrent)
-	$(add_qt_dep qtdeclarative 'widgets')
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtscript 'scripttools')
-	$(add_qt_dep qtsvg)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdeclarative-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kitemviews-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/ktexteditor-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtconcurrent-${QTMIN}:5
+	>=dev-qt/qtdeclarative-${QTMIN}:5[widgets]
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtscript-${QTMIN}:5[scripttools]
+	>=dev-qt/qtsvg-${QTMIN}:5
 	>=dev-qt/qtwebkit-5.212.0_pre20180120:5
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
-	$(add_qt_dep qtxmlpatterns)
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
+	>=dev-qt/qtxmlpatterns-${QTMIN}:5
 	dev-libs/grantlee:5
 "
 DEPEND="${RDEPEND}

diff --git a/kde-apps/signon-kwallet-extension/signon-kwallet-extension-9999.ebuild b/kde-apps/signon-kwallet-extension/signon-kwallet-extension-9999.ebuild
index 722c7e6418..1347248b23 100644
--- a/kde-apps/signon-kwallet-extension/signon-kwallet-extension-9999.ebuild
+++ b/kde-apps/signon-kwallet-extension/signon-kwallet-extension-9999.ebuild
@@ -3,15 +3,18 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+inherit ecm kde.org
 
 DESCRIPTION="KWallet extension for signond"
 HOMEPAGE="https://01.org/gsso/"
+
+SLOT="5"
 KEYWORDS=""
 LICENSE="GPL-2+"
 
 DEPEND="
-	$(add_frameworks_dep kwallet)
+	>=kde-frameworks/kwallet-${KFMIN}:5
 	net-libs/signond
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/spectacle/spectacle-9999.ebuild b/kde-apps/spectacle/spectacle-9999.ebuild
index 4247f098c3..2ea59172ac 100644
--- a/kde-apps/spectacle/spectacle-9999.ebuild
+++ b/kde-apps/spectacle/spectacle-9999.ebuild
@@ -3,44 +3,50 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Screenshot capture utility"
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.spectacle"
+
 LICENSE="LGPL-2+ handbook? ( FDL-1.3 ) kipi? ( GPL-2+ )"
+SLOT="5"
 KEYWORDS=""
 IUSE="kipi share"
 
 DEPEND="
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kglobalaccel)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwayland)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtx11extras)
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kglobalaccel-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwayland-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtx11extras-${QTMIN}:5
 	x11-libs/libxcb
 	x11-libs/xcb-util
 	x11-libs/xcb-util-cursor
 	x11-libs/xcb-util-image
-	kipi? ( $(add_kdeapps_dep libkipi '' '' '5=') )
-	share? ( $(add_frameworks_dep purpose) )
+	kipi? ( >=kde-apps/libkipi-${PVCUT}:5= )
+	share? ( >=kde-frameworks/purpose-${KFMIN}:5 )
 "
 RDEPEND="${DEPEND}
-	kipi? ( $(add_kdeapps_dep kipi-plugins) )
+	kipi? ( >=kde-apps/kipi-plugins-${PVCUT}:5 )
 "
 
 src_configure() {
@@ -48,5 +54,5 @@ src_configure() {
 		$(cmake-utils_use_find_package kipi KF5Kipi)
 		$(cmake-utils_use_find_package share KF5Purpose)
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/step/step-9999.ebuild b/kde-apps/step/step-9999.ebuild
index 170e5b1ff5..6157404f10 100644
--- a/kde-apps/step/step-9999.ebuild
+++ b/kde-apps/step/step-9999.ebuild
@@ -3,38 +3,44 @@
 
 EAPI=7
 
-KDE_HANDBOOK="optional"
-KDE_TEST="forceoptional"
-inherit kde5
+ECM_HANDBOOK="optional"
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Interactive physics simulator"
-HOMEPAGE="https://edu.kde.org/step/"
+HOMEPAGE="https://kde.org/applications/education/org.kde.step
+https://edu.kde.org/step/"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE="+gsl nls +qalculate"
 
 BDEPEND="
-	nls? ( $(add_qt_dep linguist-tools) )
+	nls? ( >=dev-qt/linguist-tools-${QTMIN}:5 )
 "
 DEPEND="
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kplotting)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtopengl)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kplotting-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtopengl-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	>=dev-cpp/eigen-3.2:3
 	sci-libs/cln
 	gsl? ( sci-libs/gsl:= )
@@ -43,7 +49,7 @@ DEPEND="
 RDEPEND="${DEPEND}"
 
 src_prepare() {
-	kde5_src_prepare
+	ecm_src_prepare
 
 	# FIXME: Drop duplicate upstream
 	sed -e '/find_package.*Xml Test/ s/^/#/' \
@@ -55,5 +61,5 @@ src_configure() {
 		$(cmake-utils_use_find_package gsl GSL)
 		$(cmake-utils_use_find_package qalculate Qalculate)
 	)
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/svgpart/svgpart-9999.ebuild b/kde-apps/svgpart/svgpart-9999.ebuild
index 9c5368429e..465c84856d 100644
--- a/kde-apps/svgpart/svgpart-9999.ebuild
+++ b/kde-apps/svgpart/svgpart-9999.ebuild
@@ -3,21 +3,25 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Kpart for viewing SVGs"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/sweeper/sweeper-9999.ebuild b/kde-apps/sweeper/sweeper-9999.ebuild
index bb676addab..6efcf693f5 100644
--- a/kde-apps/sweeper/sweeper-9999.ebuild
+++ b/kde-apps/sweeper/sweeper-9999.ebuild
@@ -3,31 +3,35 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-inherit kde5
+ECM_HANDBOOK="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Privacy settings widget to clean unwanted traces on the system"
-HOMEPAGE="https://kde.org/applications/utilities/sweeper
+HOMEPAGE="https://kde.org/applications/utilities/org.kde.sweeper
 https://utils.kde.org/projects/sweeper/"
 
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kactivities-stats)
-	$(add_frameworks_dep kbookmarks)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/kactivities-stats-${KFMIN}:5
+	>=kde-frameworks/kbookmarks-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"

diff --git a/kde-apps/thumbnailers/thumbnailers-9999.ebuild b/kde-apps/thumbnailers/thumbnailers-9999.ebuild
index b7b0603a88..c1d5178a35 100644
--- a/kde-apps/thumbnailers/thumbnailers-9999.ebuild
+++ b/kde-apps/thumbnailers/thumbnailers-9999.ebuild
@@ -3,21 +3,26 @@
 
 EAPI=7
 
-KMNAME="kdegraphics-thumbnailers"
-inherit kde5
+KDE_ORG_NAME="kdegraphics-thumbnailers"
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Thumbnail generators for PDF/PS and RAW files"
+
 LICENSE="GPL-2+"
+SLOT="5"
 KEYWORDS=""
 IUSE="raw"
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kio)
-	$(add_qt_dep qtgui)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
 	raw? (
-		$(add_kdeapps_dep libkdcraw)
-		$(add_kdeapps_dep libkexiv2)
+		>=kde-apps/libkdcraw-${PVCUT}:5
+		>=kde-apps/libkexiv2-${PVCUT}:5
 	)
 "
 RDEPEND="${DEPEND}"
@@ -28,5 +33,5 @@ src_configure() {
 		$(cmake-utils_use_find_package raw KF5KDcraw)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/umbrello/umbrello-9999.ebuild b/kde-apps/umbrello/umbrello-9999.ebuild
index a2c8047466..130c4fd50c 100644
--- a/kde-apps/umbrello/umbrello-9999.ebuild
+++ b/kde-apps/umbrello/umbrello-9999.ebuild
@@ -3,46 +3,49 @@
 
 EAPI=7
 
-KDE_HANDBOOK="forceoptional"
-KDE_TEST="forceoptional"
+ECM_HANDBOOK="forceoptional"
+ECM_TEST="forceoptional"
+KFMIN=5.63.0
+QTMIN=5.12.3
 VIRTUALX_REQUIRED="test"
-inherit kde5
+inherit ecm kde.org
 
 DESCRIPTION="KDE UML Modeller"
-HOMEPAGE="
-	https://kde.org/applications/development/umbrello
-	https://umbrello.kde.org
-"
+HOMEPAGE="https://kde.org/applications/development/org.kde.umbrello
+https://umbrello.kde.org"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 RDEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kcompletion)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep kjobwidgets)
-	$(add_frameworks_dep ktexteditor)
-	$(add_frameworks_dep ktextwidgets)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtprintsupport)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	$(add_qt_dep qtxml)
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kcompletion-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/kjobwidgets-${KFMIN}:5
+	>=kde-frameworks/ktexteditor-${KFMIN}:5
+	>=kde-frameworks/ktextwidgets-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtprintsupport-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	>=dev-qt/qtxml-${QTMIN}:5
 	dev-libs/libxml2
 	dev-libs/libxslt
 	>=dev-qt/qtwebkit-5.212.0_pre20180120:5
 "
 DEPEND="${RDEPEND}
-	$(add_frameworks_dep kdelibs4support)
+	>=kde-frameworks/kdelibs4support-${KFMIN}:5
 "
 
 src_configure() {
@@ -52,5 +55,5 @@ src_configure() {
 	)
 	use test && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_LLVM=ON )
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/yakuake/yakuake-9999.ebuild b/kde-apps/yakuake/yakuake-9999.ebuild
index 4116e31e93..0414236b93 100644
--- a/kde-apps/yakuake/yakuake-9999.ebuild
+++ b/kde-apps/yakuake/yakuake-9999.ebuild
@@ -3,42 +3,46 @@
 
 EAPI=7
 
-inherit kde5
+PVCUT=$(ver_cut 1-3)
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="Quake-style terminal emulator based on konsole"
 HOMEPAGE="https://kde.org/applications/system/org.kde.yakuake"
 
 LICENSE="GPL-2 LGPL-2"
+SLOT="5"
 KEYWORDS=""
 IUSE="absolute-position X"
 
 DEPEND="
-	$(add_frameworks_dep karchive)
-	$(add_frameworks_dep kconfig)
-	$(add_frameworks_dep kconfigwidgets)
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kcrash)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kglobalaccel)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kiconthemes)
-	$(add_frameworks_dep kio)
-	$(add_frameworks_dep knewstuff)
-	$(add_frameworks_dep knotifications)
-	$(add_frameworks_dep knotifyconfig)
-	$(add_frameworks_dep kparts)
-	$(add_frameworks_dep kservice)
-	$(add_frameworks_dep kwidgetsaddons)
-	$(add_frameworks_dep kwindowsystem)
-	$(add_frameworks_dep kxmlgui)
-	$(add_kdeapps_dep konsole)
-	$(add_qt_dep qtdbus)
-	$(add_qt_dep qtgui)
-	$(add_qt_dep qtsvg)
-	$(add_qt_dep qtwidgets)
-	absolute-position? ( $(add_frameworks_dep kwayland) )
+	>=kde-frameworks/karchive-${KFMIN}:5
+	>=kde-frameworks/kconfig-${KFMIN}:5
+	>=kde-frameworks/kconfigwidgets-${KFMIN}:5
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kcrash-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kglobalaccel-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kiconthemes-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=kde-frameworks/knewstuff-${KFMIN}:5
+	>=kde-frameworks/knotifications-${KFMIN}:5
+	>=kde-frameworks/knotifyconfig-${KFMIN}:5
+	>=kde-frameworks/kparts-${KFMIN}:5
+	>=kde-frameworks/kservice-${KFMIN}:5
+	>=kde-frameworks/kwidgetsaddons-${KFMIN}:5
+	>=kde-frameworks/kwindowsystem-${KFMIN}:5
+	>=kde-frameworks/kxmlgui-${KFMIN}:5
+	>=kde-apps/konsole-${PVCUT}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
+	>=dev-qt/qtgui-${QTMIN}:5
+	>=dev-qt/qtsvg-${QTMIN}:5
+	>=dev-qt/qtwidgets-${QTMIN}:5
+	absolute-position? ( >=kde-frameworks/kwayland-${KFMIN}:5 )
 	X? (
-		$(add_qt_dep qtx11extras)
+		>=dev-qt/qtx11extras-${QTMIN}:5
 		x11-libs/libX11
 	)
 "
@@ -50,5 +54,5 @@ src_configure() {
 		$(cmake-utils_use_find_package X X11)
 	)
 
-	kde5_src_configure
+	ecm_src_configure
 }

diff --git a/kde-apps/zeroconf-ioslave/zeroconf-ioslave-9999.ebuild b/kde-apps/zeroconf-ioslave/zeroconf-ioslave-9999.ebuild
index 8b9eae0f23..77c051263d 100644
--- a/kde-apps/zeroconf-ioslave/zeroconf-ioslave-9999.ebuild
+++ b/kde-apps/zeroconf-ioslave/zeroconf-ioslave-9999.ebuild
@@ -3,18 +3,23 @@
 
 EAPI=7
 
-inherit kde5
+KFMIN=5.63.0
+QTMIN=5.12.3
+inherit ecm kde.org
 
 DESCRIPTION="DNSSD (DNS Service Discovery - part of Rendezvous) ioslave and kded module"
+
+LICENSE="GPL-2" # TODO: CHECK
+SLOT="5"
 KEYWORDS=""
 IUSE=""
 
 DEPEND="
-	$(add_frameworks_dep kcoreaddons)
-	$(add_frameworks_dep kdbusaddons)
-	$(add_frameworks_dep kdnssd)
-	$(add_frameworks_dep ki18n)
-	$(add_frameworks_dep kio)
-	$(add_qt_dep qtdbus)
+	>=kde-frameworks/kcoreaddons-${KFMIN}:5
+	>=kde-frameworks/kdbusaddons-${KFMIN}:5
+	>=kde-frameworks/kdnssd-${KFMIN}:5
+	>=kde-frameworks/ki18n-${KFMIN}:5
+	>=kde-frameworks/kio-${KFMIN}:5
+	>=dev-qt/qtdbus-${QTMIN}:5
 "
 RDEPEND="${DEPEND}"


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2019-11-10 17:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-10 17:11 [gentoo-commits] proj/kde:master commit in: kde-apps/marble/, kde-apps/ksystemlog/, kde-apps/kreversi/, kde-apps/konsole/, Andreas Sturmlechner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox