diff --git a/aports/kde/attica-qt/APKBUILD b/aports/kde/attica-qt/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..34c4f57b6d920bcc24fba1550c9cd9d382af666d
--- /dev/null
+++ b/aports/kde/attica-qt/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=attica-qt
+pkgver=5.40.0
+pkgrel=0
+arch="all"
+pkgdesc='Qt5 library that implements the Open Collaboration Services API'
+url='https://community.kde.org/Frameworks'
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtbase-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/attica-${pkgver}.tar.xz"
+subpackages="$pkgname-dev $pkgname-doc"
+builddir="$srcdir/${pkgname/-qt/}-$pkgver"
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DKDE_INSTALL_LIBDIR=lib \
+		-DBUILD_QCH=ON
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="${pkgdir}" install
+}
+sha512sums="860a33820f3ad44b079bbd1c72a5dd751bb7b23ac26f729a72241dac5167fa63f43c9184c07494036ae2a0a39819afd24094c18c18fbc330e9b3679c1eaca5ff  attica-5.40.0.tar.xz"
diff --git a/aports/kde/attica-qt5/APKBUILD b/aports/kde/attica-qt5/APKBUILD
deleted file mode 100644
index 25c987384ac415fa1e11859a429cc6c34a0bf456..0000000000000000000000000000000000000000
--- a/aports/kde/attica-qt5/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-pkgname=attica-qt5
-pkgver=5.37.0
-pkgrel=1
-arch="all"
-pkgdesc='Qt5 library that implements the Open Collaboration Services API'
-url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtbase"
-makedepends="extra-cmake-modules doxygen qt5-qttools-dev"
-source="https://download.kde.org/stable/frameworks/${pkgver%.*}/attica-${pkgver}.tar.xz"
-subpackages="$pkgname-dev $pkgname-doc"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
-
-build() {
-	cd $srcdir/build
-	cmake $srcdir/${pkgname/-qt5/}-${pkgver} \
-		-DCMAKE_BUILD_TYPE=Release \
-		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
-		-DBUILD_QCH=ON
-	make
-}
-
-package() {
-	cd $srcdir/build
-	make DESTDIR="${pkgdir}" install
-}
-sha512sums="4b37a553ea224cd4f37bd12492bf05646527849dcb3a6b66430ea0f4978dd18c2481a0d8793a05c768e6849b11b00f0deea888591ecc8d3f51323d266257f80f  attica-5.37.0.tar.xz"
diff --git a/aports/kde/autoconf-archive/APKBUILD b/aports/kde/autoconf-archive/APKBUILD
deleted file mode 100644
index 96814dd3d05468cdc7e849c454d38beada0b9abd..0000000000000000000000000000000000000000
--- a/aports/kde/autoconf-archive/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-pkgname=autoconf-archive
-pkgver=2017.03.21
-pkgrel=1
-pkgdesc="A collection of freely re-usable Autoconf macros"
-arch="all"
-url="http://www.gnu.org/software/autoconf-archive/"
-license="GPL"
-depends="autoconf"
-source="http://ftpmirror.gnu.org/$pkgname/$pkgname-$pkgver.tar.xz"
-
-build() {
-	cd "$srcdir/$pkgname-$pkgver"
-	./configure --prefix=/usr
-	make
-}
-
-check() {
-	cd "$srcdir/$pkgname-$pkgver"
-	make check
-}
-
-package() {
-	cd "$srcdir/$pkgname-$pkgver"
-	make DESTDIR="$pkgdir/" install
-}
-sha512sums="826233fcdd0cb5a1fe18bd52477e3a8afcaf8719ea376b3be0864df6b481f0fef8fd8083485b1565a14c13ad64dbc0ae93149a62e16da9a4d24db8063120cc3a  autoconf-archive-2017.03.21.tar.xz"
diff --git a/aports/kde/baloo/APKBUILD b/aports/kde/baloo/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..a2fb988a95669371412e3d571dd45f0a3e3c473f
--- /dev/null
+++ b/aports/kde/baloo/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=baloo
+pkgver=5.40.0
+pkgrel=0
+pkgdesc='A framework for searching and managing metadata'
+arch="all"
+url='https://community.kde.org/Frameworks'
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev kcoreaddons-dev kconfig-dev kdbusaddons-dev
+	ki18n-dev kidletime-dev solid-dev kfilemetadata-dev kcrash-dev kio-dev kservice-dev
+	kbookmarks-dev kcompletion-dev kjobwidgets-dev lmdb-dev"
+makedepends="$depends_dev extra-cmake-modules"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
+subpackages="$pkgname-dev $pkgname-lang"
+options="!check" # fails for unknown reasons
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DKDE_INSTALL_LIBDIR=lib
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="${pkgdir}" install
+}
+sha512sums="5853246ac632ef6e528956d35e4b0a0321dd62e266e6e7f4f6c3be2ef1650191dacd248cfdc1b7cdc35f6d6eb0e4cb763a8336d5bde9329fbb27ca4f2a0b7e50  baloo-5.40.0.tar.xz"
diff --git a/aports/kde/breeze-icons/APKBUILD b/aports/kde/breeze-icons/APKBUILD
index 6556dea36cef8930d1e7b1cff88477331e3dcde5..713a1fdc017977cb3129e69e8695d9eb3816de81 100644
--- a/aports/kde/breeze-icons/APKBUILD
+++ b/aports/kde/breeze-icons/APKBUILD
@@ -1,29 +1,31 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=breeze-icons
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Breeze icon themes'
 arch="noarch"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-makedepends="extra-cmake-modules qt5-qtbase-dev"
+license="LGPL-3.0"
+depends_dev="qt5-qtbase-dev"
+makedepends="$depends_dev extra-cmake-modules"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DBINARY_ICONS_RESOURCE=ON \
-		-DBUILD_TESTING=OFF
+		-DBINARY_ICONS_RESOURCE=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E dupe
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="$pkgdir" install
 }
-sha512sums="f026bb2ae5626faf082d6f1220023551ca8b1e2665a29707cf26176d33449fd9be0954ee1b01248bc1618211541ea62e91b5423450dbc87eced847a7d8839861  breeze-icons-5.37.0.tar.xz"
+sha512sums="d24fe6eb77bbb4a37c128cc31a2a30c7257304ffa2fc48130fe4bfb5d117108f08510113b0328cc0b5edc5de9bb3fffd4f63431583bdc62513249c9096421263  breeze-icons-5.40.0.tar.xz"
diff --git a/aports/kde/breeze/APKBUILD b/aports/kde/breeze/APKBUILD
index 379220ed92adf581d57ac2d1e704eda1d610f2be..3d386b17f852aa47c50efde7f2ce70a75b03d215 100644
--- a/aports/kde/breeze/APKBUILD
+++ b/aports/kde/breeze/APKBUILD
@@ -1,35 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=breeze
-pkgver=5.10.4
-pkgrel=1
+pkgver=5.11.2
+pkgrel=0
 pkgdesc='Artwork, styles and assets for the Breeze visual style for the Plasma Desktop'
 arch="all"
 url='https://www.kde.org/workspaces/plasmadesktop/'
-license="LGPL"
-depends="frameworkintegration kdecoration kwayland"
-makedepends="extra-cmake-modules frameworkintegration-dev kcoreaddons-dev kguiaddons-dev
-             automoc4 kdecoration-dev plasma-framework-dev python kcmutils-dev breeze-icons 
-			 kconfigwidgets-dev kauth-dev kcodecs-dev kconfig-dev kwidgetsaddons-dev
-			 kwindowsystem-dev ki18n-dev qt5-x11extras-dev qt5-qtdeclarative-dev
-			 kpackage-dev kservice-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kcoreaddons-dev kguiaddons-dev kwayland-dev kservice-dev kdecoration-dev
+			plasma-framework-dev kcmutils-dev breeze-icons kconfigwidgets-dev kauth-dev
+			kcodecs-dev kconfig-dev kwidgetsaddons-dev kwindowsystem-dev ki18n-dev
+			qt5-x11extras-dev qt5-qtdeclarative-dev kpackage-dev"
+makedepends="$depends_dev extra-cmake-modules automoc4"
 source="https://download.kde.org/stable/plasma/${pkgver}/$pkgname-$pkgver.tar.xz"
 subpackages="$pkgname-dev $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF
+		-DKDE_INSTALL_LIBDIR=lib
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="$pkgdir" install
 }
-sha512sums="b309bdeecc5f40f9afe0222e6b81ae1a656c8fa31758551d55b61615f642b7e0972efac5aa0d63044acc27881e62dbc6a949faa51212eb53acf08d0699ef30b7  breeze-5.10.4.tar.xz"
+sha512sums="715353c69c1dd1def9b6fb0b04846a20cbbeb2f057d5935dbeaf55c1a03d92046f1f7ee017e5ee3d12bbba97a6319d36022b04acb6b93e839415733768cb8cf9  breeze-5.11.2.tar.xz"
diff --git a/aports/kde/elisa/APKBUILD b/aports/kde/elisa/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..38b0b029a4177cbfa41e17f19be829725bfad381
--- /dev/null
+++ b/aports/kde/elisa/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=elisa
+pkgver=0_git20171123
+pkgrel=0
+_commit="6804d87cb13e25d807ef8f1faa61337a6d847015"
+pkgdesc='Elisa Music Player'
+arch="all"
+url='https://github/com/kde/elisa'
+license="LGPL-3"
+depends=""
+makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtdeclarative-dev qt5-qtmultimedia-dev
+	qt5-qtsvg-dev ki18n-dev kdeclarative-dev baloo-dev kfilemetadata-dev kxmlgui-dev
+	kconfig-dev kcmutils-dev kpackage-dev"
+source="https://github.com/kde/$pkgname/archive/$_commit.tar.gz"
+options="!check" # Fails for unknown reasons
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DKDE_INSTALL_LIBDIR=lib
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="${pkgdir}" install
+}
+sha512sums="9454112364ae23933939196078555c4f21f5b1158fb9695b2a055061ba257ae203ee37743fd25481d65a6e0a56ecefc6e70f97a0c88bb269c02c0ab15df59ede  6804d87cb13e25d807ef8f1faa61337a6d847015.tar.gz"
diff --git a/aports/kde/extra-cmake-modules/APKBUILD b/aports/kde/extra-cmake-modules/APKBUILD
index e0176065016c48c9bc9f27777724cfe868757688..489eb32a58154260212cb24432bc1ff38191cef5 100644
--- a/aports/kde/extra-cmake-modules/APKBUILD
+++ b/aports/kde/extra-cmake-modules/APKBUILD
@@ -1,28 +1,30 @@
+# Contributor: k0r10n <k0r10n.dev@gmail.com>
+# Contributor: Ivan Tham <pickfire@riseup.net>
 pkgname=extra-cmake-modules
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc="Extra CMake modules"
 url="https://projects.kde.org/projects/kdesupport/extra-cmake-modules"
 arch="noarch"
 license="custom"
 depends="cmake"
-makedepends="cmake"
+makedepends="py-sphinx cmake"
 subpackages="${pkgname}-doc"
 source="http://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
 builddir="$srcdir"/${pkgname}-${pkgver}/build
 
 build() {
 	mkdir -p "$builddir" && cd "$builddir"
-	cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTING=OFF
-	make
+	cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTING=OFF || return 1
+	make || return 1
 }
 
 package() {
 	cd "$builddir"
-	make DESTDIR="$pkgdir" install/fast
+	make DESTDIR="$pkgdir" install/fast || return 1
 
 	install -Dm644 ../COPYING-CMAKE-SCRIPTS \
 		"$pkgdir"/usr/share/licenses/$pkgname/COPYING
 }
 
-sha512sums="eb064dcf03960913c41c61dcb02ed12fa1b83abe507f9b161770bae8fe32b74dee45a29b12af26e636e896b97b17221adf67ea8465fcc9ab319b4ee55ab4f8bf  extra-cmake-modules-5.37.0.tar.xz"
+sha512sums="5390edfde7acb4c89abd2f5abc4fb533f2f4b45061127796b3a2f9d7ab65d7b8ba5cc0aee0543a28886118af8f1c7aed4f5b51c33f20223d9948ca39944c399c  extra-cmake-modules-5.40.0.tar.xz"
diff --git a/aports/kde/frameworkintegration/APKBUILD b/aports/kde/frameworkintegration/APKBUILD
deleted file mode 100644
index 23c56e20eccbeefc1e8aa7f6d889f5516f465d80..0000000000000000000000000000000000000000
--- a/aports/kde/frameworkintegration/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-pkgname=frameworkintegration
-pkgver=5.37.0
-pkgrel=1
-pkgdesc='Framework providing components to allow applications to integrate with a KDE Workspace'
-arch="all"
-url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kpackage knewstuff"
-makedepends="extra-cmake-modules python kconfigwidgets-dev kiconthemes-dev knotifications-dev
-			 kpackage-dev knewstuff-dev qt5-x11extras-dev attica-qt5-dev kconfig-dev kauth-dev
-			 kcoreaddons-dev kcodecs-dev kwidgetsaddons-dev kxmlgui-dev kservice-dev ki18n-dev"
-source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
-subpackages="$pkgname-dev"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
-
-build() {
-	cd $srcdir/build
-	cmake $srcdir/${pkgname}-${pkgver} \
-		-DCMAKE_BUILD_TYPE=Release \
-		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DKDE_INSTALL_LIBDIR=lib \
-		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF
-	make
-}
-
-package() {
-	cd $srcdir/build
-	make DESTDIR="${pkgdir}" install
-}
-sha512sums="ecff45b2d7138621b19b9b276c4a2d7940c156ee81d85789d598178179e524ed6fef014c9d6615b91d2ea9c4c9a058d5009f44899834c541c36301f9ca581dd7  frameworkintegration-5.37.0.tar.xz"
diff --git a/aports/kde/gpgme/APKBUILD b/aports/kde/gpgme/APKBUILD
deleted file mode 100644
index bf82dd8054c807016857519bd8c563449b1c9f3f..0000000000000000000000000000000000000000
--- a/aports/kde/gpgme/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-pkgname=gpgme
-pkgver=1.9.0
-pkgrel=1
-pkgdesc="gnupg made easy"
-url="http://www.gnupg.org/related_software/gpgme/"
-arch="all"
-license="GPL"
-depends="gnupg"
-depends_dev="libgpg-error-dev libassuan-dev"
-makedepends="$depends_dev qt5-qtbase-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="ftp://ftp.gnupg.org/gcrypt/$pkgname/$pkgname-$pkgver.tar.bz2"
-builddir="$srcdir"/gpgme-$pkgver
-
-build() {
-	cd "$builddir"
-	./configure \
-		--build=$CBUILD \
-		--host=$CHOST \
-		--prefix=/usr \
-		--sysconfdir=/etc \
-		--mandir=/usr/share/man \
-		--infodir=/usr/share/info \
-		--localstatedir=/var
-	make
-}
-
-package() {
-	cd "$builddir"
-	make DESTDIR="$pkgdir" install
-}
-
-sha512sums="2a33343e907d9d70cc57dc1ef4e1c01995e1030bb0db937f44435643d6abfbb1bd55d52ba241701fa702783ebf035c09941131604fd8a811474b8bee41afccc8  gpgme-1.9.0.tar.bz2"
diff --git a/aports/kde/kactivities-stats/APKBUILD b/aports/kde/kactivities-stats/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..93abc5ae8364422348e59b56229a60c9afe478c8
--- /dev/null
+++ b/aports/kde/kactivities-stats/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+
+pkgname=kactivities-stats
+pkgver=5.40.0
+pkgrel=0
+arch="all"
+pkgdesc="A library for accessing the usage data collected by the activities system"
+url='https://community.kde.org/Frameworks'
+license='LGPL-2.1'
+depends=""
+depends_dev="boost-dev qt5-qtbase-dev kconfig-dev kactivities-dev
+			graphviz-dev qt5-qttools-dev qt5-qtdeclarative-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
+subpackages="$pkgname-dev $pkgname-doc"
+builddir="$srcdir/build"
+
+prepare() {
+	mkdir "$builddir"
+}
+
+build() {
+	cd "$builddir"
+
+	cmake "$srcdir"/$pkgname-$pkgver \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DKDE_INSTALL_LIBDIR=lib \
+		-DBUILD_QCH=ON
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="${pkgdir}" install
+}
+sha512sums="1c5285038247dd778579daef2b4bc4663b67a18364670ef953c52311931e0f1c5147bba2f699a316be52a41d641ee7b9db4fd78c6f96db47883c95a442ecd907  kactivities-stats-5.40.0.tar.xz"
diff --git a/aports/kde/kactivities/APKBUILD b/aports/kde/kactivities/APKBUILD
index d3cb3f5fcb7a33b6c1388c5060283245418e0202..06cbb7f53cd36fbfadbcd6f6691a84aa589f5461 100644
--- a/aports/kde/kactivities/APKBUILD
+++ b/aports/kde/kactivities/APKBUILD
@@ -1,34 +1,40 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kactivities
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 arch="all"
 pkgdesc="Core components for the KDE's Activities"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kcoreaddons kconfig kwindowsystem qt5-qtdeclarative kio"
-makedepends="extra-cmake-modules boost python doxygen qt5-qttools-dev kcoreaddons-dev kconfig-dev
-			 kwindowsystem-dev qt5-qtdeclarative-dev kio-dev boost-dev"
+license="GPL-2.0 LGPL-2.1"
+depends="qt5-qtbase-sqlite"
+depends_dev="kcoreaddons-dev kconfig-dev kwindowsystem-dev qt5-qtdeclarative-dev kio-dev"
+makedepends="$depends_dev extra-cmake-modules boost doxygen qt5-qttools-dev boost-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
-subpackages="$pkgname-dev $pkgname-doc"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc"
 
 prepare() {
-	mkdir -p $srcdir/build
+	mkdir -p "$srcdir"/build
 }
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/$pkgname-$pkgver \
+	cd "$srcdir"/build
+	cmake "$builddir" \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
 		-DQML_INSTALL_DIR=lib/qt/qml \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$srcdir"/build
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$srcdir"/build
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="c226d2d0027253f3507a8f9aa5c4b5755ddfe2d20e512658fe64b263cee1120355af19207db1cc6afef8b65a6b41439672bae7867539961b783742425baa8e45  kactivities-5.37.0.tar.xz"
+sha512sums="030c3678c2971c9d499c9cdb863363ae82e35295d88aec141149988aa1596996cf0a32863db6024ac2ed15879d8edc5feef4b72ee89d2efe5641b33690ecfbce  kactivities-5.40.0.tar.xz"
diff --git a/aports/kde/kactivitymanagerd/APKBUILD b/aports/kde/kactivitymanagerd/APKBUILD
index 9faf3c5601d7fa19f412c67f8506ece4fbeaefe8..f1a9d47f9e54d2a72f3ca5f01f631ce164b7c78f 100644
--- a/aports/kde/kactivitymanagerd/APKBUILD
+++ b/aports/kde/kactivitymanagerd/APKBUILD
@@ -1,35 +1,42 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kactivitymanagerd
-pkgver=5.10.4
-pkgrel=1
+pkgver=5.11.2
+pkgrel=0
 pkgdesc="System service to manage user's activities and track the usage patterns"
 arch="all"
 url='https://www.kde.org/workspaces/plasmadesktop/'
-license="LGPL"
-depends="kio"
-makedepends="extra-cmake-modules boost-dev python kio-dev kdbusaddons-dev ki18n-dev
-			 kconfig-dev kcoreaddons-dev kwindowsystem-dev kglobalaccel-dev kxmlgui-dev
-			 kconfigwidgets-dev kauth-dev kcodecs-dev kwidgetsaddons-dev kservice-dev
-			 kbookmarks-dev kcompletion-dev kitemviews-dev kjobwidgets-dev solid-dev
-			 qt5-qtbase-dev"
+license="GPL-2.0"
+depends=""
+depends_dev="kio-dev kdbusaddons-dev ki18n-dev
+			kconfig-dev kcoreaddons-dev kwindowsystem-dev kglobalaccel-dev kxmlgui-dev
+			kconfigwidgets-dev kauth-dev kcodecs-dev kwidgetsaddons-dev kservice-dev
+			kbookmarks-dev kcompletion-dev kitemviews-dev kjobwidgets-dev solid-dev
+			qt5-qtbase-dev"
+makedepends="$depends_dev extra-cmake-modules boost-dev"
 source="https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"
 subpackages="$pkgname-lang"
 
 prepare() {
-	mkdir -p $srcdir/build
+	mkdir "$srcdir"/build
 }
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/$pkgname-$pkgver \
+	cd "$srcdir"/build
+	cmake "$builddir" \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF
+		-DKDE_INSTALL_LIBDIR=lib
 	make
 }
 
+check() {
+	cd "$srcdir"/build
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$srcdir"/build
 	make DESTDIR="$pkgdir" install
 }
-sha512sums="37966071b703ee5fc98075fc78975388e1b8df5f5ce64dad54ee3ad9add50d1c87319467292fbdc5bbba5f7c8853d7dcfd8c6623d5c1bb162c75ae9499b3860f  kactivitymanagerd-5.10.4.tar.xz"
+sha512sums="e2c85a5b2d8470ae8740adfb1bc872e7a7eafd3a210a37cc2450a99941a29eb0edb454d627915f865831d298faade4793c95d78ec2ff748b7abd9a1802022a86  kactivitymanagerd-5.11.2.tar.xz"
diff --git a/aports/kde/karchive/APKBUILD b/aports/kde/karchive/APKBUILD
index 799b08dd49b0eab2a4b4337b886cced5d7fefee6..62ec83f0e29535581b473622fcaf47a6333381ce 100644
--- a/aports/kde/karchive/APKBUILD
+++ b/aports/kde/karchive/APKBUILD
@@ -1,31 +1,33 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=karchive
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Qt 5 addon providing access to numerous types of archives'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtbase"
+license="LGPL-2.1"
+depends=""
 makedepends="extra-cmake-modules doxygen qt5-qttools-dev"
-source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
 subpackages="$pkgname-dev"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # armhf problems
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF
+		-DKDE_INSTALL_LIBDIR=lib
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="50f9298a785e3e46e4f34bcc489e59704ca464da4efbcad6c1a27e115ace7343936a1b126f0723f9acf55512ace05bba2cd37df02b2d1f54ae87b2a72c590a76  karchive-5.37.0.tar.xz"
+sha512sums="edffe71f985b0d7c6cc84d6549447734c717de9f8be4685badee47d94464cf29373cfbfc3662d81c9e0071321c50c4459840c316c08144972e1fab1c295d8a22  karchive-5.40.0.tar.xz"
diff --git a/aports/kde/kauth/APKBUILD b/aports/kde/kauth/APKBUILD
index 95add7d5fc1869f69ee782073b3113f160deadfb..20c3161b98f85426ecfa29794cb13e8dde60e858 100644
--- a/aports/kde/kauth/APKBUILD
+++ b/aports/kde/kauth/APKBUILD
@@ -1,33 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kauth
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Abstraction to system policy and authentication features'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="polkit-qt5"
-makedepends="extra-cmake-modules qt5-qttools-dev clang py3-qt5 doxygen polkit-qt5-dev kcoreaddons-dev"
-source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
+license="LGPL-2.1"
+depends=""
+depends_dev="kcoreaddons-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen polkit-qt-dev polkit-qt"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
 		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E KAuthHelperTest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="b97956d8360035102c9ba489806720263a0abebc06dac0b9121377030bbc16deff96cbcdfacbd1d91a6d3bd4bc868dab068a5f833bd437669b929315450eb44a  kauth-5.37.0.tar.xz"
+sha512sums="912e45a18f98086a35caf7b65316e4fe0defbbcc80f334bcdfd146a398cfb40abe2aa6b358d2057d457a51ba9fb61b05b1319ca3ff00edea82014919f632116a  kauth-5.40.0.tar.xz"
diff --git a/aports/kde/kbookmarks/APKBUILD b/aports/kde/kbookmarks/APKBUILD
index 74c9749f3364bc600d893396ed7977d7d1715133..ce227315872ba8aa107df513b53b8be520403f92 100644
--- a/aports/kde/kbookmarks/APKBUILD
+++ b/aports/kde/kbookmarks/APKBUILD
@@ -1,33 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kbookmarks
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Support for bookmarks and the XBEL format'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kxmlgui"
-makedepends="extra-cmake-modules qt5-qttools-dev python doxygen kcodecs-dev kconfig-dev kconfigwidgets-dev
-			 kiconthemes-dev kxmlgui-dev kcoreaddons-dev kauth-dev kwidgetsaddons-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kcodecs-dev kconfig-dev kconfigwidgets-dev kiconthemes-dev kxmlgui-dev kcoreaddons-dev
+			kauth-dev kwidgetsaddons-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="cac12f6936c680f9018a162fa9b7bc2f7591fec6ae2c955473fe391941736ff21a60a24dd8d741681743dc864746081548c5311f4ba5f7a308154e573af28b67  kbookmarks-5.37.0.tar.xz"
+sha512sums="b9adaab77f3104ffb0f470ccae25db75b1e73f54bbf49a5b8bdb7bf1271911c8a296cf68d1dc17a0b3e44e9fccc11e44ef2c90d2f03bd504488e2b6a832c097d  kbookmarks-5.40.0.tar.xz"
diff --git a/aports/kde/kcmutils/APKBUILD b/aports/kde/kcmutils/APKBUILD
index 1d05da976a7dff512d59dfc6768007fbf1b4f0ea..c53ce1527d2b6d04b1f530a24589793c4696ac1b 100644
--- a/aports/kde/kcmutils/APKBUILD
+++ b/aports/kde/kcmutils/APKBUILD
@@ -1,35 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kcmutils
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Utilities for interacting with KCModules'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kdeclarative"
-makedepends="extra-cmake-modules python doxygen qt5-qttools-dev kdeclarative-dev kiconthemes-dev
-			 kpackage-dev qt5-qtdeclarative-dev kitemviews-dev kconfigwidgets-dev kauth-dev
-			 kcoreaddons-dev kcodecs-dev kconfig-dev kwidgetsaddons-dev ki18n-dev kservice-dev
-			 kxmlgui-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kdeclarative-dev kiconthemes-dev kxmlgui-dev kpackage-dev qt5-qtdeclarative-dev
+			kitemviews-dev kconfigwidgets-dev kauth-dev kcoreaddons-dev kcodecs-dev kconfig-dev
+			kwidgetsaddons-dev ki18n-dev kservice-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="8f882a6863f0632ea6ee84ac0bf4197430a11f17a6dae267ebecac49f6424b405bd3fbcdcafdb84afcd04b3b9bb47b6693f8ad07e702221c3f0c720f5ef32077  kcmutils-5.37.0.tar.xz"
+sha512sums="d59e225438d8c43d3c62ed15a3cb38fc08e05a2af4cdf6c1d0100347dd29a1e34906447eb96f9ef4c50bcb81c76e62d951df7d42e30a6214e9db5b3690880324  kcmutils-5.40.0.tar.xz"
diff --git a/aports/kde/kcodecs/APKBUILD b/aports/kde/kcodecs/APKBUILD
index fbdc22455421f328b3adb1508bf148cbf0792505..15690676a1a53e2e6b9a20b7e9bc7442069df857 100644
--- a/aports/kde/kcodecs/APKBUILD
+++ b/aports/kde/kcodecs/APKBUILD
@@ -1,32 +1,33 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kcodecs
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Provide a collection of methods to manipulate strings using various encodings'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtbase"
-makedepends="extra-cmake-modules qt5-qttools-dev clang py3-qt5 gperf doxygen"
+license="LGPL-2.1"
+depends=""
+makedepends="extra-cmake-modules qt5-qttools-dev gperf doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="eacf5414e903f8241b4dca7330defe041d4897ce55403b85e2792984bc314efa7f17ffbbdbabb9264ea17c8d7d69cde0037f9fdc72545c3cc40cd151684ddd40  kcodecs-5.37.0.tar.xz"
+sha512sums="575872407dcc0da771a7c43e9a751793bee8ac7b36bf262251c00ab7f8af1bcebba3010c3b0a62eddd678b0cea4c4bc58fbcbc7f9382264a06c6186004d96aa6  kcodecs-5.40.0.tar.xz"
diff --git a/aports/kde/kcompletion/APKBUILD b/aports/kde/kcompletion/APKBUILD
index 00396c34644a85d9f2c9e9cc66f8247d4d00dfdc..a7a9f76c5a7b01d06a3958019dc06fd36a30627e 100644
--- a/aports/kde/kcompletion/APKBUILD
+++ b/aports/kde/kcompletion/APKBUILD
@@ -1,32 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kcompletion
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Text completion helpers and widgets'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kwidgetsaddons kconfig"
-makedepends="extra-cmake-modules qt5-qttools-dev clang py3-qt5 doxygen kwidgetsaddons-dev kconfig-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kwidgetsaddons-dev kconfig-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="99cf1346f4048134d5219d451250122ca848d49c6ec26ab9e36562d2e654c18f3415ddd1b11e7a2459ce6b473c22cddb01135de9c773e8f0ae2f1c8d2f4d5ea4  kcompletion-5.37.0.tar.xz"
+sha512sums="ffd59f3a9803856f43e2c9e7c125f789fe4ef5d261daf05e02c4f95df121b5854a1ac57d1249e734180ee205b49a742a717aee9572f5a69eb104a11aaa839b64  kcompletion-5.40.0.tar.xz"
diff --git a/aports/kde/kconfig/APKBUILD b/aports/kde/kconfig/APKBUILD
index 53fbf18f63f7085b37d0e2c0e1b91b7b672fd6c9..85c3dbb9d327604174f42a4c9756b874134571d0 100644
--- a/aports/kde/kconfig/APKBUILD
+++ b/aports/kde/kconfig/APKBUILD
@@ -1,34 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kconfig
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Configuration system'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtbase"
-makedepends="extra-cmake-modules qt5-qttools-dev clang py3-qt5 doxygen"
+license="LGPL-2.1"
+depends=""
+makedepends="extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
 		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
 
-sha512sums="8d6c120f14f2c5d2c44173b142a8d175cdfb9a48f3a94a5798bf222ca5954a7420e6bbe6a467565032468cf5f8485ac73a48e8c0c8c825ef3573e9641cf60fa1  kconfig-5.37.0.tar.xz"
+sha512sums="c61f86144af8aba52341be2f2bd80dfa4a3a68fbf7daf65f49441c9ad00385080e161965bfbdd190e52cad023e8b7774bfb9e13546a9e909cc09de15c55fdfac  kconfig-5.40.0.tar.xz"
diff --git a/aports/kde/kconfigwidgets/APKBUILD b/aports/kde/kconfigwidgets/APKBUILD
index b5279eeb792e0251a5340f39a1538d6f81e3d2c4..559dc525d6442a0aa0eff624dd49d7beedf57e75 100644
--- a/aports/kde/kconfigwidgets/APKBUILD
+++ b/aports/kde/kconfigwidgets/APKBUILD
@@ -1,33 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kconfigwidgets
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Widgets for KConfig'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kauth kcodecs kguiaddons ki18n kwidgetsaddons"
-makedepends="extra-cmake-modules kdoctools python mesa-dev clang py3-qt5 doxygen qt5-qttools-dev
-			 kauth-dev kguiaddons-dev kwidgetsaddons-dev kcodecs-dev kconfig-dev ki18n-dev kcoreaddons-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kcoreaddons-dev kauth-dev kguiaddons-dev kwidgetsaddons-dev kcodecs-dev kconfig-dev 
+			ki18n-dev"
+makedepends="$depends_dev extra-cmake-modules kdoctools-dev doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="46c6fae07d42d5b7ef9882453b0224d9b0e30cc90d5fd8a9a23a50508b34485a7055d751cf6773f8e89897aa1e0a856a2aaa6f71a9a72194f8939c34ca6dabe5  kconfigwidgets-5.37.0.tar.xz"
+sha512sums="af8cb1aaddb69e21e6b0dcaff0caeb5f0e81d3b6db9b34216011f82872fe129cc5029b84fa90a54194d2c4270e35f868b24326e86a2a776e9e73b985fcdb09c3  kconfigwidgets-5.40.0.tar.xz"
diff --git a/aports/kde/kcoreaddons/APKBUILD b/aports/kde/kcoreaddons/APKBUILD
index d7c7c08aac76a435e8b70c8466e72b8745950a9b..8697aecf07e3544a1d5e96540919c7485db10f2e 100644
--- a/aports/kde/kcoreaddons/APKBUILD
+++ b/aports/kde/kcoreaddons/APKBUILD
@@ -1,32 +1,34 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kcoreaddons
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Addons to QtCore'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtbase shared-mime-info"
-makedepends="extra-cmake-modules qt5-qttools-dev clang py3-qt5 doxygen"
+license="LGPL-2.1"
+depends=""
+makedepends="extra-cmake-modules qt5-qttools-dev doxygen shared-mime-info"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p "$srcdir"/build
-}
+options="!check" # armhf problems
 
 build() {
-	cd "$srcdir"/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 		make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd "$srcdir"/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="533183a0302bba4ed78ab5ce5563007e45ab8788fa64b8e012d16bf072f4e5f9dce6172db927389111db56aea2c7b26e19a00628628178cffcf8c5ffd8b7271e  kcoreaddons-5.37.0.tar.xz"
+sha512sums="e003cd743db0b7843f0cd293e73f1868123549d8872149e46d8d8a9733370642da0f0ec89c3794b1bf372d52e103612893875accfc954e28400088d4f3400572  kcoreaddons-5.40.0.tar.xz"
diff --git a/aports/kde/kcrash/APKBUILD b/aports/kde/kcrash/APKBUILD
index add3e3fca7e0018ac37c013093de51a1012064b8..7ea18e91bbf05de185f9d2ec6463e749a674aa4f 100644
--- a/aports/kde/kcrash/APKBUILD
+++ b/aports/kde/kcrash/APKBUILD
@@ -1,34 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kcrash
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Support for application crash analysis and bug report from apps'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kcoreaddons kwindowsystem"
-makedepends="extra-cmake-modules mesa-dev doxygen qt5-qttools-dev kcoreaddons-dev kwindowsystem-dev
-			 qt5-x11extras-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kcoreaddons-dev kwindowsystem-dev qt5-x11extras-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc"
-
-prepare() {
-	mkdir $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
 		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="d7a312c820c3d4353bbf30313623d9931c8151206446bc3d59856bdf5824c5a82655a649ddaa94ff3a868151cd792fd03a274c8d87fbf052efff547c49963cbf  kcrash-5.37.0.tar.xz"
+sha512sums="2440b64e5ec6dd38682a9d7fa92e112faa41c6190faae42cb291df4fe8c77ef4013d06a333a997fa25fe15ca2f8dc1bed36973f7ef44d7bc2b59c3bb9427403a  kcrash-5.40.0.tar.xz"
diff --git a/aports/kde/kdbusaddons/APKBUILD b/aports/kde/kdbusaddons/APKBUILD
index 771884446b78a9fb6d145a7ed6a8eaa03f79dc39..ba62756466866cb7e36ef71f676c229cc6e18919 100644
--- a/aports/kde/kdbusaddons/APKBUILD
+++ b/aports/kde/kdbusaddons/APKBUILD
@@ -1,32 +1,34 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kdbusaddons
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Addons to QtDBus'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-x11extras"
-makedepends="extra-cmake-modules qt5-qttools-dev clang py3-qt5 doxygen"
+license="LGPL-2.1"
+depends=""
+makedepends="extra-cmake-modules qt5-qttools-dev clang doxygen shared-mime-info"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Requires running dbus-daemon
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="a581366eae4e8ceaa9bc544adf951d734a3feddc19287bf2cb5818cff71f46ed59976bc9fc1487b3578c896bd1ac3fdff57d08510951007596b3907116025f39  kdbusaddons-5.37.0.tar.xz"
+sha512sums="439c0baa9531ae93606e24dcdbc1fbda4a04032ccdcb2c218c0e12f97c34a0b9522bde377f0763d800f8b17ca41b6893f3854d7e8c494ad2809f493023368a7a  kdbusaddons-5.40.0.tar.xz"
diff --git a/aports/kde/kdeclarative/APKBUILD b/aports/kde/kdeclarative/APKBUILD
index 9a39fdd404c9fb9b15f8d271ff83cff324296213..88038d1c1ede7b7133436b4ec6540fe8c5be2664 100644
--- a/aports/kde/kdeclarative/APKBUILD
+++ b/aports/kde/kdeclarative/APKBUILD
@@ -1,36 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kdeclarative
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Provides integration of QML and KDE Frameworks'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kio kpackage libepoxy"
-makedepends="extra-cmake-modules python doxygen qt5-qttools-dev kpackage-dev kconfig-dev kiconthemes-dev
+license="LGPL-2.1"
+depends=""
+depends_dev="kpackage-dev kconfig-dev kiconthemes-dev kglobalaccel-dev kwindowsystem-dev
 			 kio-dev kguiaddons-dev qt5-qtdeclarative-dev ki18n-dev kcoreaddons-dev kservice-dev
 			 kbookmarks-dev kwidgetsaddons-dev kcompletion-dev kitemviews-dev kjobwidgets-dev
-			 solid-dev kxmlgui-dev kconfigwidgets-dev kauth-dev kcodecs-dev kwindowsystem-dev
-			 kglobalaccel-dev"
+			 solid-dev kxmlgui-dev kconfigwidgets-dev kauth-dev kcodecs-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="903df965d34ae3bcd0e4c84d1821843bb20ba7e90c276b4b10b47f3455fbace1b5dba31597124757fd93990baf95a5cf8fd7453eae9711545475ad1997dda06e  kdeclarative-5.37.0.tar.xz"
+sha512sums="b934a4404717d2c47a28282937ef04e724e0b492e6838974765ccb3cd1ba62ac2d598c5e55e4e6cdd7831f521ae95c67dfeaab04353b89fb46393d9610d65e66  kdeclarative-5.40.0.tar.xz"
diff --git a/aports/kde/kdecoration/APKBUILD b/aports/kde/kdecoration/APKBUILD
index fd2f2ddd1dacf865b6c71154159c399bbcf38b92..d938309069495122ae79bd7fb58b0818e6f1cb55 100644
--- a/aports/kde/kdecoration/APKBUILD
+++ b/aports/kde/kdecoration/APKBUILD
@@ -1,32 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kdecoration
-pkgver=5.10.4
-pkgrel=1
+pkgver=5.11.2
+pkgrel=0
 pkgdesc='Plugin based library to create window decorations'
 arch="all"
 url='https://www.kde.org/workspaces/plasmadesktop/'
-license="LGPL"
-depends="qt5-qtbase"
-makedepends="extra-cmake-modules qt5-qtbase-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtbase-dev"
+makedepends="$depends_dev extra-cmake-modules"
 source="https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"
 subpackages="$pkgname-dev"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/$pkgname-$pkgver \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DKDE_INSTALL_SYSCONFDIR=/etc \
-		-DBUILD_TESTING=OFF
+		-DKDE_INSTALL_SYSCONFDIR=/etc
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="$pkgdir" install
 }
-sha512sums="dc0c131d77279d443ce5515fee342e2f18fccd29fe0c7bc11fdfb5ed7ab10d3639bfea06b02a98efc5eee2456cf878e4b4579a0461df2397b5dfd4b0ef259d92  kdecoration-5.10.4.tar.xz"
+sha512sums="db0c3690f268fd2ee898d4be2ebebd11754ad473a9d057bdd37d5caa4ed1963fb1cf4b0d3f7ef3e6bfecafe9e7ec4c09fa87054427398f3c2ce579be4bbeb0fa  kdecoration-5.11.2.tar.xz"
diff --git a/aports/kde/kded/APKBUILD b/aports/kde/kded/APKBUILD
index d500571bcad5674afb263d7573c5e3ed1ccd4b26..ddf4cf9ef5193f5cd0fc13bd15afa244634a9a40 100644
--- a/aports/kde/kded/APKBUILD
+++ b/aports/kde/kded/APKBUILD
@@ -1,32 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kded
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Extensible deamon for providing system level services'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kinit"
-makedepends="extra-cmake-modules kdoctools-dev kinit-dev kcrash-dev kdbusaddons-dev kconfig-dev
-			 kcoreaddons-dev kservice-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kinit-dev kcrash-dev kdbusaddons-dev kcoreaddons-dev kservice-dev qt5-qtbase-dev
+			kconfig-dev"
+makedepends="$depends_dev extra-cmake-modules kdoctools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF
+		-DKDE_INSTALL_LIBDIR=lib
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="2a420cf97f55858ec6cac4a74bdf97f367b32fc07529714b494576f7828261ae52650972b9f8b80e5e12cd854f66e7bc4d2d2cd339d7ce8a71ab29ebd41e76fa  kded-5.37.0.tar.xz"
+sha512sums="559cc4bff3d18104326fdcdb35eca16e36b06c6a8547e77ac78833931f32f22c8497e4db08434bf889a7cdfaf72affaff342487e2387748705b49b6feb9e30a8  kded-5.40.0.tar.xz"
diff --git a/aports/kde/kdelibs4support/APKBUILD b/aports/kde/kdelibs4support/APKBUILD
index 35251cee60566089af59e881d05eafdd472be3bf..43847fe0a9dab64cd97b26d8d0157089ec4f91e3 100644
--- a/aports/kde/kdelibs4support/APKBUILD
+++ b/aports/kde/kdelibs4support/APKBUILD
@@ -1,45 +1,47 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kdelibs4support
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Porting aid from KDELibs4'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kunitconversion kitemmodels kemoticons kded kparts"
-makedepends="extra-cmake-modules kdoctools-dev qt5-qttools-dev networkmanager perl-uri
-			 python kdesignerplugin kunitconversion-dev kemoticons-dev kded-dev kparts-dev qt5-qtsvg-dev
-			 qt5-x11extras-dev kcompletion-dev kconfig-dev kconfigwidgets-dev kauth-dev kcodecs-dev kwidgetsaddons-dev
-			 kcrash-dev kglobalaccel-dev kservice-dev kguiaddons-dev ki18n-dev kiconthemes-dev kbookmarks-dev
-			 kitemviews-dev kjobwidgets-dev solid-dev kxmlgui-dev knotifications-dev ktextwidgets-dev sonnet-dev
-			 kwindowsystem-dev kdbusaddons-dev kdesignerplugin-dev kbookmarks-dev kcoreaddons-dev kio-dev
-			 kded"
-source="https://download.kde.org/stable/frameworks/${pkgver%.*}/portingAids/${pkgname}-${pkgver}.tar.xz"
+license="LGPL-2.1"
+depends="ca-certificates"
+depends_dev="kdesignerplugin kunitconversion-dev kemoticons-dev kded-dev kparts-dev qt5-qtsvg-dev qt5-x11extras-dev
+			kcompletion-dev kconfig-dev kconfigwidgets-dev kauth-dev kcodecs-dev kwidgetsaddons-dev kded
+			kcrash-dev kglobalaccel-dev kservice-dev kguiaddons-dev ki18n-dev kiconthemes-dev kbookmarks-dev
+			kitemviews-dev kjobwidgets-dev solid-dev kxmlgui-dev knotifications-dev ktextwidgets-dev sonnet-dev
+			kwindowsystem-dev kdbusaddons-dev kdesignerplugin-dev kbookmarks-dev kcoreaddons-dev kio-dev"
+makedepends="$depends_dev extra-cmake-modules kdoctools-dev qt5-qttools-dev networkmanager perl-uri ca-certificates"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/portingAids/${pkgname}-${pkgver}.tar.xz
+		D8672.patch"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="suid !check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF
+		-DKDE_INSTALL_LIBEXECDIR=lib
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 
 	# cert bundle seems to be hardcoded
 	# link it to the one from ca-certificates
 	rm -f "$pkgdir"/usr/share/kf5/kssl/ca-bundle.crt
 	ln -sf /etc/ssl/certs/ca-certificates.crt "${pkgdir}"/usr/share/kf5/kssl/ca-bundle.crt
-
-	chmod 0644 $pkgdir/usr/lib/kf5/fileshareset # remove suid bit as it's disallowed by Alpine standards due to being a security risk
 }
-sha512sums="c56d821d8f6cea31df7a1138ff050818fd38764fc7bd63de1c125921b86f00144eac7d569c40b2fe0dcd8fc4f006a0ba8af93fba2feab2d4a3fca1a8a1fa3ca7  kdelibs4support-5.37.0.tar.xz"
+sha512sums="ea6758a42d993af312f0231c75b77f00c0a4938dfd8efa82d443d60e553865ed59621413a651aef1443ec1d07bcc273532b11f1699382b66c0ea91e2bfdf94d1  kdelibs4support-5.40.0.tar.xz
+c0c9067cabd41e206ecc83a1d9156ba80b5ee05def2d205e37b4534d796d97973cc21c185ba4afd59c948490f59ec6a95fc30a19594ade184522c2357635bb82  D8672.patch"
diff --git a/aports/kde/kdelibs4support/D8672.patch b/aports/kde/kdelibs4support/D8672.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6775006f4f5d7e9561e79228259c4e6a95b6d546
--- /dev/null
+++ b/aports/kde/kdelibs4support/D8672.patch
@@ -0,0 +1,181 @@
+diff --git a/src/kssl/kopenssl.h b/src/kssl/kopenssl.h
+--- a/src/kssl/kopenssl.h
++++ b/src/kssl/kopenssl.h
+@@ -395,7 +395,7 @@
+     /*
+      *   CRYPTO_free - free up an internally allocated object
+      */
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     void CRYPTO_free(void *x);
+ #else
+     void CRYPTO_free(void *x, const char *file, int line);
+diff --git a/src/kssl/kopenssl.cpp b/src/kssl/kopenssl.cpp
+--- a/src/kssl/kopenssl.cpp
++++ b/src/kssl/kopenssl.cpp
+@@ -81,7 +81,7 @@
+     static void (*K_X509_LOOKUP_free)(X509_LOOKUP *) = nullptr;
+     static int (*K_X509_LOOKUP_ctrl)(X509_LOOKUP *, int, const char *, long, char **) = nullptr;
+     static void (*K_X509_STORE_CTX_init)(X509_STORE_CTX *, X509_STORE *, X509 *, STACK_OF(X509) *) = nullptr;
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     static void (*K_CRYPTO_free)(void *) = nullptr;
+ #else
+     static void (*K_CRYPTO_free)(void *, const char *, int) = nullptr;
+@@ -430,7 +430,7 @@
+         K_RAND_load_file = (int (*)(const char *, long)) d->cryptoLib->resolve("RAND_load_file");
+         K_RAND_file_name = (const char *(*)(char *, size_t)) d->cryptoLib->resolve("RAND_file_name");
+         K_RAND_write_file = (int (*)(const char *)) d->cryptoLib->resolve("RAND_write_file");
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+         K_CRYPTO_free = (void (*)(void *)) d->cryptoLib->resolve("CRYPTO_free");
+ #else
+         K_CRYPTO_free = (void (*)(void *, const char *, int)) d->cryptoLib->resolve("CRYPTO_free");
+@@ -485,7 +485,7 @@
+         K_X509_STORE_CTX_get_current_cert = (X509 * (*)(X509_STORE_CTX *)) d->cryptoLib->resolve("X509_STORE_CTX_get_current_cert");
+         K_X509_STORE_CTX_set_error = (void (*)(X509_STORE_CTX *, int)) d->cryptoLib->resolve("X509_STORE_CTX_set_error");
+         K_X509_STORE_CTX_get_error = (int (*)(X509_STORE_CTX *)) d->cryptoLib->resolve("X509_STORE_CTX_get_error");
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L || LIBRESSL_VERSION_NUMBER
+         K_OPENSSL_sk_free = (void (*)(STACK *)) d->cryptoLib->resolve("OPENSSL_sk_free");
+         K_OPENSSL_sk_num = (int (*)(STACK *)) d->cryptoLib->resolve("OPENSSL_sk_num");
+         K_OPENSSL_sk_pop = (char *(*)(STACK *)) d->cryptoLib->resolve("OPENSSL_sk_pop");
+@@ -979,7 +979,7 @@
+ 
+ void KOpenSSLProxy::X509_STORE_set_verify_cb(X509_STORE *store, int (*verify_cb)(int, X509_STORE_CTX *))
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     X509_STORE_set_verify_cb_func(store, verify_cb);
+ #else
+     if (K_X509_STORE_set_verify_cb) {
+@@ -1044,7 +1044,7 @@
+ 
+ void KOpenSSLProxy::X509_get0_signature(const ASN1_BIT_STRING **psig, const X509_ALGOR **algor, const X509 *x)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     if (psig) {
+         *psig = x->signature;
+     }
+@@ -1096,7 +1096,7 @@
+     }
+ }
+ 
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+ void KOpenSSLProxy::CRYPTO_free(void *x)
+ {
+     if (K_CRYPTO_free) {
+@@ -1122,7 +1122,7 @@
+ 
+ ASN1_TIME *KOpenSSLProxy::X509_getm_notBefore(const X509 *x)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     return X509_get_notBefore(x);
+ #else
+     if (K_X509_getm_notBefore) {
+@@ -1135,7 +1135,7 @@
+ 
+ ASN1_TIME *KOpenSSLProxy::X509_getm_notAfter(const X509 *x)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     return X509_get_notAfter(x);
+ #else
+     if (K_X509_getm_notAfter) {
+@@ -1413,7 +1413,7 @@
+ 
+ X509 *KOpenSSLProxy::X509_STORE_CTX_get_current_cert(X509_STORE_CTX *v)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     return v->current_cert;
+ #else
+     if (K_X509_STORE_CTX_get_current_cert) {
+@@ -1426,7 +1426,7 @@
+ 
+ void KOpenSSLProxy::X509_STORE_CTX_set_error(X509_STORE_CTX *v, int error)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     v->error = error;
+ #else
+     if (K_X509_STORE_CTX_set_error) {
+@@ -1437,7 +1437,7 @@
+ 
+ int KOpenSSLProxy::X509_STORE_CTX_get_error(X509_STORE_CTX *v)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     return v->error;
+ #else
+     if (K_X509_STORE_CTX_get_error) {
+@@ -1894,7 +1894,7 @@
+ 
+ int KOpenSSLProxy::EVP_PKEY_base_id(EVP_PKEY *pkey)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     return pkey->type;
+ #else
+     if (K_EVP_PKEY_base_id) {
+@@ -1907,7 +1907,7 @@
+ 
+ RSA *KOpenSSLProxy::EVP_PKEY_get0_RSA(EVP_PKEY *pkey)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     return pkey->pkey.rsa;
+ #else
+     if (K_EVP_PKEY_get0_RSA) {
+@@ -1920,7 +1920,7 @@
+ 
+ void KOpenSSLProxy::RSA_get0_key(RSA *rsa, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     if (n) {
+         *n = rsa->n;
+     }
+@@ -1939,7 +1939,7 @@
+ 
+ DSA *KOpenSSLProxy::EVP_PKEY_get0_DSA(EVP_PKEY *pkey)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     return pkey->pkey.dsa;
+ #else
+     if (K_EVP_PKEY_get0_DSA) {
+@@ -1952,7 +1952,7 @@
+ 
+ void KOpenSSLProxy::DSA_get0_pqg(DSA *dsa, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     if (p) {
+         *p = dsa->p;
+     }
+@@ -1971,7 +1971,7 @@
+ 
+ void KOpenSSLProxy::DSA_get0_key(DSA *dsa, const BIGNUM **pub_key, const BIGNUM **priv_key)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     if (pub_key) {
+         *pub_key = dsa->pub_key;
+     }
+diff --git a/src/kssl/ksslcertificate.cpp b/src/kssl/ksslcertificate.cpp
+--- a/src/kssl/ksslcertificate.cpp
++++ b/src/kssl/ksslcertificate.cpp
+@@ -1222,7 +1222,7 @@
+ {
+     QByteArray qba;
+      // no equivalent in OpenSSL 1.1.0 (?), so behave as if we had no OpenSSL at all
+-#if KSSL_HAVE_SSL && OPENSSL_VERSION_NUMBER < 0x10100000L
++#if KSSL_HAVE_SSL && OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+     NETSCAPE_X509 nx;
+     ASN1_OCTET_STRING hdr;
+     QTemporaryFile ktf;
+
diff --git a/aports/kde/kdesignerplugin/APKBUILD b/aports/kde/kdesignerplugin/APKBUILD
index 7a9b756f260a941b7e6234a37f95f1c104f767f9..3fa33d3a2220f020f1e64a0b9f64e570d07a9e62 100644
--- a/aports/kde/kdesignerplugin/APKBUILD
+++ b/aports/kde/kdesignerplugin/APKBUILD
@@ -1,34 +1,37 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kdesignerplugin
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Integration of Frameworks widgets in Qt Designer/Creator'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kio kplotting"
-makedepends="extra-cmake-modules qt5-qttools-dev python kdoctools-dev kio-dev kcoreaddons-dev
-			 kconfig-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kcoreaddons-dev kconfig-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev kdoctools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/$pkgname-$pkgver \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DKF5WebKit_FOUND=OFF
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="$pkgdir" install
 }
 
-sha512sums="e68ec94d9e7b52c90e4b7a8ba70e8b3dcdf95365f5237285e681c7b6ea2e763876a25be787fa3e154cf535f0dff8f28246376206b11f6cfa7670383800bd67cb  kdesignerplugin-5.37.0.tar.xz"
+sha512sums="e9874339ac1d694f249a20fe86504b776959b4e225b5377ba27df8cea14ffd35a42516308cb2daef0a9595c0f57ecb1328c35778d00fa05add19f7e5cce4dd99  kdesignerplugin-5.40.0.tar.xz"
diff --git a/aports/kde/kdesu/APKBUILD b/aports/kde/kdesu/APKBUILD
index 5b68992592ed4a1ccdd58378411a7b16a200100c..ee54caef8e5fa68962487675a8f807c4c10fc372 100644
--- a/aports/kde/kdesu/APKBUILD
+++ b/aports/kde/kdesu/APKBUILD
@@ -1,40 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kdesu
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Integration with su for elevated privileges'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kservice kpty"
-makedepends="extra-cmake-modules python qt5-qttools-dev kpty-dev kservice-dev kconfig-dev kcoreaddons-dev
-			 ki18n-dev doxygen"
-source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
+license="LGPL-2.1"
+depends=""
+depends_dev="kpty-dev kservice-dev kconfig-dev kcoreaddons-dev ki18n-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="suid"
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
 		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
-
-	chmod 0644 $pkgdir/usr/lib/kf5/kdesud # remove suid bit as it's disallowed by Alpine standards due to being a security risk
-
-	# See https://bugs.archlinux.org/task/44277
-	#chown :nobody "${pkgdir}"/usr/lib/kf5/kdesud
-	#chmod g+s "${pkgdir}"/usr/lib/kf5/kdesud
 }
-sha512sums="6b3b6c51637220a5f80115e81f82a551a596465916fefe707b7dad23b423d1198a760c5da8392f8da482ae59e05fb9d2bca360859bde7c20d4928c49eccb896d  kdesu-5.37.0.tar.xz"
+sha512sums="53ecfc0388a8246ec6b29de63ddb580071eaca33f7b1806e77b1200d79bbccb2bef38e4b482f0dd53e4767c873dc64d8cceb03d9ae75be41e8fe5a56ec90ebf1  kdesu-5.40.0.tar.xz"
diff --git a/aports/kde/kdoctools/APKBUILD b/aports/kde/kdoctools/APKBUILD
index 6bfb38b44c0590b448de189ab51b7a5ea4984d11..a6210702ea5b68fb08f4ff07ab82d8db09f35a49 100644
--- a/aports/kde/kdoctools/APKBUILD
+++ b/aports/kde/kdoctools/APKBUILD
@@ -1,33 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kdoctools
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Documentation generation from docbook'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="karchive docbook-xsl"
-makedepends="extra-cmake-modules ki18n-dev python perl-uri karchive-dev docbook-xsl libxslt-dev
-			 libxml2-dev qt5-qtbase-dev"
+license="LGPL-2.1"
+depends="docbook-xsl"
+depends_dev="qt5-qtbase-dev ki18n-dev karchive-dev libxslt-dev libxml2-dev libxml2-utils docbook-xml docbook-xsl"
+makedepends="$depends_dev extra-cmake-modules perl-uri"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+subpackages="$pkgname-dev $pkgname-doc"
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF
+		-DKDE_INSTALL_LIBDIR=lib
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
 
-sha512sums="2f3deb54e186eb1efe94b89886d9bd48b035a41754625309ba886b41c467ece6fdf5f3aaf7549df3bc36dae3f3aa1e1982c69342c019410ffa8a5aead0b277a0  kdoctools-5.37.0.tar.xz"
+sha512sums="7279a2bbb01c9b6e31e4c7c1b9b5b1a14d9ba8ec78e63d4bf635838fbf01bc90e88ea9eb0788886548cd6c031b6c7d270c667c13f2c14d4fda6a786bc94d641b  kdoctools-5.40.0.tar.xz"
diff --git a/aports/kde/kemoticons/APKBUILD b/aports/kde/kemoticons/APKBUILD
index 782be49c29a3beffa6c1418f8700c5c25db47d29..53ba6240edf53d80a8da1fbcdad66ecddddb82ab 100644
--- a/aports/kde/kemoticons/APKBUILD
+++ b/aports/kde/kemoticons/APKBUILD
@@ -1,33 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kemoticons
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Support for emoticons and emoticons themes'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="karchive kservice"
-makedepends="extra-cmake-modules python mesa-dev doxygen qt5-qttools-dev karchive-dev kconfig-dev
-			 kservice-dev kcoreaddons-dev"
+license="GPL-2.0"
+depends=""
+depends_dev="karchive-dev kconfig-dev kservice-dev kcoreaddons-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="1a506ef73bc6893f92f9c274403e8415818dfa2a8c9a4ea3c72b7cf95142a759fc86b49c7e25daf94689a5c214bd6ac15839ef88ebb54902e3df5756e7369756  kemoticons-5.37.0.tar.xz"
+sha512sums="47dc8f65f29d297a3229fba0a63d5f0eb959fe072e44dfc831f33b4a778cfae1f267abe6cbf264a69d3ea677a8cd2d94898ba9f7e0852bfcb7573b368cb1c289  kemoticons-5.40.0.tar.xz"
diff --git a/aports/kde/kfilemetadata/APKBUILD b/aports/kde/kfilemetadata/APKBUILD
index d5121fa6fe92f3ecb828fb3b93710aca42218855..70b78d8ee669cd8396f0337248e3de869a18f8d6 100644
--- a/aports/kde/kfilemetadata/APKBUILD
+++ b/aports/kde/kfilemetadata/APKBUILD
@@ -1,33 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kfilemetadata
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc="A library for extracting file metadata"
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="ki18n karchive exiv2 poppler-qt5 taglib ffmpeg"
-makedepends="extra-cmake-modules python qt5-qttools-dev attr-dev doxygen ki18n-dev"
+license="LGPL-3.0"
+depends=""
+depends_dev="ki18n-dev karchive-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev attr-dev doxygen ffmpeg-dev
+			exiv2-dev taglib-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir $srcdir/build
-}
+options="!check" # armhf problems
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
 
-sha512sums="78143c82b858f53e63e35e11e144ccb474574885bd772ff27131c0568d5033618f8ff75844b02e3e3acbffd5d8901300f26f5b4e9d5556f2400f3666183b2899  kfilemetadata-5.37.0.tar.xz"
+sha512sums="b3f632af0847dd3bed8bf0214e3786fe72ffbdc90454d7a2117e8b30023c43b594a27c5811a6e77d1e46a68261e950a5dc016b9ae6f80f3db539c29eaa53297d  kfilemetadata-5.40.0.tar.xz"
diff --git a/aports/kde/kglobalaccel/APKBUILD b/aports/kde/kglobalaccel/APKBUILD
index 710acf4cb9cdb9b2c009078cf7980cf2ba9ef1fc..17af4b1dd336b533c9c97267f8d886d488d9acec 100644
--- a/aports/kde/kglobalaccel/APKBUILD
+++ b/aports/kde/kglobalaccel/APKBUILD
@@ -1,33 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kglobalaccel
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Add support for global workspace shortcuts'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kdbusaddons kconfig kcrash"
-makedepends="extra-cmake-modules doxygen qt5-qttools-dev kconfig-dev kcoreaddons-dev kcrash-dev
-			 kdbusaddons-dev kwindowsystem-dev qt5-x11extras-dev xcb-util-keysyms-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kconfig-dev kcoreaddons-dev kcrash-dev kdbusaddons-dev kwindowsystem-dev qt5-x11extras-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev xcb-util-keysyms-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="115fb5359d7eccc12b9772d79c189bb8e46bf47b0aed46dda019b29a16f5db73ed9b1bc490648f44fa404385411b8471406c0288c275d18ce3ca8ed0156820dc  kglobalaccel-5.37.0.tar.xz"
+sha512sums="5b4a5d557338eb149257448cbabd7df9d7969ce2d977e13a4d104fe4c21d262b952f820614aad9012f6d4c2d28898f4d77daa4dadece39275383e35b6a84e9bb  kglobalaccel-5.40.0.tar.xz"
diff --git a/aports/kde/kguiaddons/APKBUILD b/aports/kde/kguiaddons/APKBUILD
index 09ed16f9a080da0e391bce3595d865ed5deca1ec..e5e061647ade356c89a8d70c3c5378b0ec98f122 100644
--- a/aports/kde/kguiaddons/APKBUILD
+++ b/aports/kde/kguiaddons/APKBUILD
@@ -1,33 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kguiaddons
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Addons to QtGui'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-x11extras"
-makedepends="extra-cmake-modules mesa-dev clang py3-qt5 doxygen qt5-qttools-dev"
+license="LGPL-2.1"
+depends=""
+makedepends="extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
 
-sha512sums="fd727372130de4fc14bff946586da2f71e6f475a10edce438f5bb6fc9d9e2d93b4440920234a33365617bd85e61a74429038bf0d7e79150c3cbe419c4c1b9320  kguiaddons-5.37.0.tar.xz"
+sha512sums="42543c4b29355d5998abd4bee14530a9e96b7d3f4378ea11952af67a157be23acf45b5c801e80909546e7903c73df3a650a05fa6ee8594a2cbe9e8ce66146976  kguiaddons-5.40.0.tar.xz"
diff --git a/aports/kde/khtml/APKBUILD b/aports/kde/khtml/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..2ee121a9ea994223b473e12384c821edbe30b095
--- /dev/null
+++ b/aports/kde/khtml/APKBUILD
@@ -0,0 +1,36 @@
+pkgname=khtml
+pkgver=5.40.0
+pkgrel=1
+pkgdesc='KHTML APIs'
+arch="all"
+url='https://community.kde.org/Frameworks'
+license="GPL-3.0"
+depends=""
+depends_dev="qt5-qtbase-dev karchive-dev kcodecs-dev kglobalaccel-dev ki18n-dev kiconthemes-dev kio-dev
+			kcoreaddons-dev kconfig-dev kservice-dev kbookmarks-dev kwidgetsaddons-dev kcompletion-dev
+			kitemviews-dev kjobwidgets-dev solid-dev kxmlgui-dev kconfigwidgets-dev kauth-dev kjs-dev kwallet-dev
+			knotifications-dev kparts-dev ktextwidgets-dev sonnet-dev kwindowsystem-dev qt5-x11extras-dev
+			phonon-qt5-dev giflib-dev libjpeg-turbo-dev"
+makedepends="$depends_dev extra-cmake-modules gperf"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/portingAids/${pkgname}-${pkgver}.tar.xz"
+subpackages="$pkgname-dev $pkgname-lang"
+options="!check" # Fails due to requiring running X11
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DKDE_INSTALL_LIBDIR=lib
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="${pkgdir}" install
+}
+sha512sums="e64cc9c32944c6cd1f45c745f4e653ca1b6023061ede3ed87886e3ed95e9d2d7a7753b396631d256b7f1a4c34b788e9a9b80253f151f73b3fdec3f862f8adcef  khtml-5.40.0.tar.xz"
diff --git a/aports/kde/ki18n/APKBUILD b/aports/kde/ki18n/APKBUILD
index 9dd48bf935414a4e50dbbffe9fc171c09f7387cf..ac93af7bd0e63f47c229c98f5206464b88c17207 100644
--- a/aports/kde/ki18n/APKBUILD
+++ b/aports/kde/ki18n/APKBUILD
@@ -1,32 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=ki18n
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Advanced internationalization framework'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
+license="LGPL-2.1"
 depends=""
-makedepends="extra-cmake-modules python qt5-qtdeclarative-dev py3-qt5 clang doxygen qt5-qttools-dev qt5-qtscript-dev"
+depends_dev="qt5-qtdeclarative-dev qt5-qtscript-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check"
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="b4e25b9e20cab9406087c859cd4a899ff29187820f507f8cc6b061af3bc51b958e915c9273241b9e0ac3e4344db73b67b3ace0d9ad127e119fe051e45700cb19  ki18n-5.37.0.tar.xz"
+sha512sums="cfdabb1c22d0ae275c274b4e0d40af94305364bf69a8152c6d9064dcc4d5b8d208eace8b2679c4eb97f095ce5af5582350fec1564ace049d2f63e852b4249bd3  ki18n-5.40.0.tar.xz"
diff --git a/aports/kde/kiconthemes/APKBUILD b/aports/kde/kiconthemes/APKBUILD
index 08b671d303c9be12cc9f9f90fafad53fe791b372..0aee731a8484e08a14dae30362e8aca73d5c542b 100644
--- a/aports/kde/kiconthemes/APKBUILD
+++ b/aports/kde/kiconthemes/APKBUILD
@@ -1,35 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kiconthemes
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Support for icon themes'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtsvg kconfigwidgets kitemviews karchive"
-makedepends="extra-cmake-modules python mesa-dev doxygen qt5-qttools-dev qt5-qtsvg-dev kitemviews-dev
-			 kconfigwidgets-dev karchive-dev ki18n-dev kcoreaddons-dev kauth-dev kcodecs-dev
-			 kconfig-dev kwidgetsaddons-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtsvg-dev kitemviews-dev kconfigwidgets-dev karchive-dev ki18n-dev kcoreaddons-dev
+			kauth-dev kcodecs-dev kconfig-dev kwidgetsaddons-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
 
-sha512sums="a5c19393d40055eafb5c7ed67c7a2b6563786a3191c3192c02d328004d14b33c7e9db936745e45a853b75264864d062d7697b1dc44b7c0056a2a350acae91204  kiconthemes-5.37.0.tar.xz"
+sha512sums="bed22e1e1173e5838a43cce8305b0df3b6c7f5f90d958feaf14a8a9612de2d81bdc57a2e6807ac9375cdd8a96a433672484a931ec30c6816ba58f752b2b8c2cb  kiconthemes-5.40.0.tar.xz"
diff --git a/aports/kde/kidletime/APKBUILD b/aports/kde/kidletime/APKBUILD
index 4da79ec6e77109d65882a25c37843a9c43e76327..e05faa1a49a98ab15a7679673825696a386743c7 100644
--- a/aports/kde/kidletime/APKBUILD
+++ b/aports/kde/kidletime/APKBUILD
@@ -1,32 +1,34 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kidletime
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Monitoring user activity'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-x11extras"
-makedepends="extra-cmake-modules mesa-dev doxygen qt5-qttools-dev qt5-x11extras-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-x11extras-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="444cfc25d162c4390ec0aa49b035bda1e5628972a634eb08c0cc9c48d513676669729470fc91cdf25ed98b9b6dd76b71159659bfecb4cbd61e029ad42398be27  kidletime-5.37.0.tar.xz"
+sha512sums="b8c8c1de1c2261ad52ba80a11388a90ffa18c80153b58b0063184e14fe1c744465c150ef4e9be6692ca81330c52230029b406e8ae240e6738300f8977411a6ba  kidletime-5.40.0.tar.xz"
diff --git a/aports/kde/kimageformats/APKBUILD b/aports/kde/kimageformats/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..b8800c0f0ae1240f7a331d8105b9abdc72bf3a07
--- /dev/null
+++ b/aports/kde/kimageformats/APKBUILD
@@ -0,0 +1,33 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=kimageformats
+pkgver=5.40.0
+pkgrel=0
+pkgdesc='Image format plugins for Qt5'
+arch="all"
+url='https://community.kde.org/Frameworks'
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtbase-dev karchive-dev"
+makedepends="$depends_dev extra-cmake-modules openexr-dev"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
+options="!check" # Fails due to requiring running X11
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DKDE_INSTALL_LIBDIR=lib
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="${pkgdir}" install
+}
+sha512sums="e971d02b34c1a63d9ccefb10e5c12b21e6a68330230ca06fd7e55b390fec6ef7937b5e404b446b9ec65e5b1f962a601c1ec03a7783d1e06f004ac5f6ff428ea4  kimageformats-5.40.0.tar.xz"
diff --git a/aports/kde/kinit/APKBUILD b/aports/kde/kinit/APKBUILD
index 25013d166b409efb4c4880c016968c7f65536320..53c9f0e5c107d5298536d567b11de8f87a3bf43e 100644
--- a/aports/kde/kinit/APKBUILD
+++ b/aports/kde/kinit/APKBUILD
@@ -1,43 +1,39 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kinit
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Process launcher to speed up launching KDE applications'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kio"
-makedepends="extra-cmake-modules kdoctools-dev python kio-dev kservice-dev kcrash-dev kbookmarks-dev
+license="LGPL-2.1"
+depends=""
+depends_dev="kio-dev kservice-dev kcrash-dev kbookmarks-dev qt5-qtbase-dev
 			 kcompletion-dev kitemviews-dev kjobwidgets-dev solid-dev kxmlgui-dev kconfig-dev
 			 kcoreaddons-dev kwidgetsaddons-dev kconfigwidgets-dev kauth-dev kcodecs-dev ki18n-dev
 			 kwindowsystem-dev"
-source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz
-		D6598.patch"
+makedepends="$depends_dev extra-cmake-modules kdoctools-dev"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-
-	cd "$srcdir"/$pkgname-$pkgver
-	patch -p1 < ../D6598.patch
-}
+options="suid"
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
 		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
-
-	chmod 0644 $pkgdir/usr/lib/kf5/start_kdeinit # remove suid bit as it's disallowed by Alpine standards due to being a security risk
 }
-sha512sums="c12157a88eb708b5838ba381f31460f21adf190a9f1ca58f2f32824c10901f5c716a251af7a24493e0715605c6c0fc480a361bf2fd656a6f38763f0de99dc576  kinit-5.37.0.tar.xz
-1a12deb6cebcedb2ee2ae5edfedc48473e7f464d5d8ba84c2130c567fb564d1f4ef87f6b0b7500104f893075348bb86f243b25e8710a286fc67828a50c44a628  D6598.patch"
+sha512sums="1bfa884726e4379d9e0246e283dd7867bb404416eb90226f644b46e06c4bc17c898470bddafaf9f6ba9fc6be5ea4d975cacb0e5fc5ea4d1038616e91e7ddcb07  kinit-5.40.0.tar.xz"
diff --git a/aports/kde/kinit/D6598.patch b/aports/kde/kinit/D6598.patch
deleted file mode 100644
index 4a7c0039a4483dfb06a8bda1ed85fc7387a8fa67..0000000000000000000000000000000000000000
--- a/aports/kde/kinit/D6598.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/src/start_kdeinit/start_kdeinit.c b/src/start_kdeinit/start_kdeinit.c
---- a/src/start_kdeinit/start_kdeinit.c
-+++ b/src/start_kdeinit/start_kdeinit.c
-@@ -19,6 +19,8 @@
- 
- #include <config-kdeinit.h>
- 
-+#define _POSIX_SOURCE /* kill(2) */
-+
- #include <errno.h>
- #include <fcntl.h>
- #include <signal.h>
-
-
diff --git a/aports/kde/kio/APKBUILD b/aports/kde/kio/APKBUILD
index 43657e3afa71743f7ca17765054234fcd742227e..aec2ca5a6475d7604abcc0c7d6cdc6be8d75ce04 100644
--- a/aports/kde/kio/APKBUILD
+++ b/aports/kde/kio/APKBUILD
@@ -1,37 +1,39 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kio
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Resource and network access abstraction'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="solid kjobwidgets libxslt desktop-file-utils knotifications"
-makedepends="extra-cmake-modules kdoctools python doxygen qt5-qttools-dev kconfig-dev kdbusaddons-dev
-			 kservice-dev solid-dev kbookmarks-dev kjobwidgets-dev knotifications-dev karchive-dev
-			 kcoreaddons-dev ki18n-dev kwidgetsaddons-dev kcompletion-dev kconfigwidgets-dev
-			 kauth-dev kcodecs-dev kiconthemes-dev kitemviews-dev kwindowsystem-dev qt5-x11extras-dev
-			 kxmlgui-dev ktextwidgets-dev sonnet-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kdoctools-dev kconfig-dev kdbusaddons-dev kservice-dev solid-dev kbookmarks-dev
+			kjobwidgets-dev knotifications-dev karchive-dev kcoreaddons-dev ki18n-dev kwidgetsaddons-dev 
+			kcompletion-dev kconfigwidgets-dev kauth-dev kcodecs-dev kiconthemes-dev kitemviews-dev
+			kwindowsystem-dev qt5-x11extras-dev kxmlgui-dev ktextwidgets-dev sonnet-dev qt5-qtscript-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev libxslt-dev libxml2-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p "$srcdir"/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd "$srcdir"/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
 		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd "$srcdir"/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="42b2cbf6cbc414a0b69fdb36984d13574b1aee033170761dc55835cace44abead82f387f8afb35d8a82ee93a1909854ef43cff29d45c5881c4b13ca8862d2a64  kio-5.37.0.tar.xz"
+sha512sums="e35a7fed3c38f91c056d5ac04b4839ebbf199e4509187e997d6d8a217175a9dc442c7beacccf333ec092c0d110f8f008144293364006888f25b570d697c10bed  kio-5.40.0.tar.xz"
diff --git a/aports/kde/kirigami2/APKBUILD b/aports/kde/kirigami2/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..0a152a6fd661f47e7fb4fa534987d909f8fc1077
--- /dev/null
+++ b/aports/kde/kirigami2/APKBUILD
@@ -0,0 +1,40 @@
+pkgname=kirigami2
+pkgver=5.40.0
+pkgrel=0
+pkgdesc='A QtQuick based components set'
+arch="all"
+url='https://community.kde.org/Frameworks'
+license="LGPL"
+depends="qt5-qtgraphicaleffects"
+depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev qt5-qtsvg-dev qt5-qtquickcontrols2-dev plasma-framework-dev
+			kpackage-dev kcoreaddons-dev kservice-dev kconfig-dev kwindowsystem-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-lang"
+options="!check"
+builddir="$srcdir/build"
+
+prepare() {
+	mkdir "$builddir"
+}
+
+build() {
+	cd "$builddir"
+	cmake "$srcdir"/$pkgname-$pkgver \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DKDE_INSTALL_LIBDIR=lib \
+		-DBUILD_EXAMPLES=ON
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="$pkgdir" install
+}
+sha512sums="689d91f23a1300afd9204173a40e2a100e83b0eb38d02962236ab1ff91fd4659dcc60d84c815766a38cacf38294488d82c5d0b9d540c1a0972489aa29e300974  kirigami2-5.40.0.tar.xz"
diff --git a/aports/kde/kitemmodels/APKBUILD b/aports/kde/kitemmodels/APKBUILD
index ba5ec77d62df34822b8c2d2750cbcc693e0918cf..9f706b35a683a8e977a8d3e7d6007868da2f5fa3 100644
--- a/aports/kde/kitemmodels/APKBUILD
+++ b/aports/kde/kitemmodels/APKBUILD
@@ -1,32 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kitemmodels
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Models for Qt Model/View system'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtbase"
-makedepends="extra-cmake-modules py3-qt5 clang qt5-qttools-dev doxygen"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtbase-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="09fce62011f4519b91d64c3b85428dd1ed8003cfa5c455fed813eb21e047985669b34b67885aaf95b4fa48d803f5ead479b77f4509863de8a0963c060e47ccb3  kitemmodels-5.37.0.tar.xz"
+sha512sums="17f78419b5860b6423a555d5ab529f68e7589e76b1f0c32f5ff0f581991a480cd9424d86d1384a85c221bb3037491a8fa4a0bf1e20ee7ed046d9be8c76e74446  kitemmodels-5.40.0.tar.xz"
diff --git a/aports/kde/kitemviews/APKBUILD b/aports/kde/kitemviews/APKBUILD
index 5e7038711b445615d3e44d4498656b8a20144ad0..c8d9f574d140545eb6110eb3631c58d69f7e8582 100644
--- a/aports/kde/kitemviews/APKBUILD
+++ b/aports/kde/kitemviews/APKBUILD
@@ -1,32 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kitemviews
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Widget addons for Qt Model/View'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtbase"
-makedepends="extra-cmake-modules qt5-qttools-dev clang py3-qt5 doxygen"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtbase-dev"
+makedepends="extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="bc9333da6bc5573978ff1f7b558de789a3b63d88ed8c3c1b5d26706b00d808c90e0ef878b309d0f4f6ad538954e21f455fe6290d246a546838e2130053508333  kitemviews-5.37.0.tar.xz"
+sha512sums="54e7f7fe422c0750a20b9cbf4a44c8865513574ae79afea8a2bac70637d293514b0f3a386567fcb6ad559da18ff9a6589d5b55bdf8411606ad24592c857a110c  kitemviews-5.40.0.tar.xz"
diff --git a/aports/kde/kjobwidgets/APKBUILD b/aports/kde/kjobwidgets/APKBUILD
index d45c6ba0fa9b3ac6dcf671c7b84432a25ecdd211..62f0ca416afa0bf48d985ed8350e702f15783dce 100644
--- a/aports/kde/kjobwidgets/APKBUILD
+++ b/aports/kde/kjobwidgets/APKBUILD
@@ -1,32 +1,34 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kjobwidgets
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Widgets for tracking KJob instances'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kcoreaddons kwidgetsaddons qt5-x11extras"
-makedepends="extra-cmake-modules qt5-qttools-dev clang py3-qt5 doxygen kcoreaddons-dev kwidgetsaddons-dev qt5-x11extras-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kcoreaddons-dev kwidgetsaddons-dev qt5-x11extras-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="81192034d3385b661f3c6b33a197a9c8e621839598623cf7ae43815b1d7733b22ae7ce86d65edd5d21437a9bfe0ec3fd0097a3947c234eb5016efc072e5e4063  kjobwidgets-5.37.0.tar.xz"
+sha512sums="ee0fe25fe1c8faedfa834f7a381e8e15dbde3adfb9c6aacef362c39b251a2a3ec84c966c9cfde7ef906a5bfa7bff71d3c5cf374e0d949fb4d18224afebd09c33  kjobwidgets-5.40.0.tar.xz"
diff --git a/aports/kde/kjs/APKBUILD b/aports/kde/kjs/APKBUILD
index 09317094b5d8fefed7ee340cc4ae2720cb9554ec..e9a580bb738fd88dea249e9bbd43373818dc6025 100644
--- a/aports/kde/kjs/APKBUILD
+++ b/aports/kde/kjs/APKBUILD
@@ -1,31 +1,33 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kjs
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Support for JS scripting in applications'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtbase"
-makedepends="extra-cmake-modules kdoctools-dev qt5-qtbase-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtbase-dev"
+makedepends="$depends_dev extra-cmake-modules kdoctools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/portingAids/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF
+		-DKDE_INSTALL_LIBDIR=lib
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="0cdaa4e8b2d239e3ff53da12220a60e48e11c1e04a777cda53012d1bb3784948aa846f96b81c3aa71b35a5549a549fbee6665b68439fa0f47dc4e47f527a9cf2  kjs-5.37.0.tar.xz"
+sha512sums="a9db958cb99f47d8fbc428ace36f050e191f47058ae1fc7f9f4f7bdb8d763e65870a79a1fac504706d26d1d5bbb1988543235519a1cefa46ca4e6e14323208b5  kjs-5.40.0.tar.xz"
diff --git a/aports/kde/kjsembed/APKBUILD b/aports/kde/kjsembed/APKBUILD
index 1fec5f058a3f3ede46b33d0c10a4f26850277ba5..c1517a575b0f20454ca85147e2e16b8ffee42bbf 100644
--- a/aports/kde/kjsembed/APKBUILD
+++ b/aports/kde/kjsembed/APKBUILD
@@ -1,31 +1,33 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kjsembed
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Embedded JS'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtsvg ki18n kjs"
-makedepends="extra-cmake-modules qt5-qttools-dev kdoctools-dev python qt5-qtsvg-dev kjs-dev ki18n-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtsvg-dev kjs-dev ki18n-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev kdoctools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/portingAids/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF
+		-DKDE_INSTALL_LIBDIR=lib
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="b2a46546a2a06e912634159c6c37a0a7fb617efbef592c94afa7d6c30b116cfdd8d419d42012bc7890a5f846ff3c4dee113687cb7877fbbb0aa599d3cfedba8b  kjsembed-5.37.0.tar.xz"
+sha512sums="4b14d85bf5d67f61eea08eba31e4c3891c418f9bd7af931c6c643672b765ad0714b39da23f8ec57e2d752cabcd04db5647cf1a088f8bdc06be5f606d93297078  kjsembed-5.40.0.tar.xz"
diff --git a/aports/kde/knewstuff/APKBUILD b/aports/kde/knewstuff/APKBUILD
index cf3ed7d6dbc5c0f5c342c7632e7eee24743ea1e6..21fde7878a34d8ef446cbe618ad5c84fa7e6621b 100644
--- a/aports/kde/knewstuff/APKBUILD
+++ b/aports/kde/knewstuff/APKBUILD
@@ -1,36 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=knewstuff
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Support for downloading application assets from the network'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kio"
-makedepends="extra-cmake-modules python doxygen qt5-qttools-dev attica-qt5 karchive-dev
-			 kio-dev kservice-dev kbookmarks-dev kjobwidgets-dev solid-dev kxmlgui-dev
-			 qt5-qtdeclarative-dev qt5-qtquickcontrols kcompletion-dev kcoreaddons-dev ki18n-dev
-			 kiconthemes-dev kitemviews-dev kconfigwidgets-dev kauth-dev kcodecs-dev ktextwidgets-dev
-			 sonnet-dev attica-qt5-dev kconfig-dev kwidgetsaddons-dev"
+license="LGPL-2.1"
+depends="qt5-qtquickcontrols2"
+depends_dev="karchive-dev kio-dev kservice-dev kbookmarks-dev kjobwidgets-dev solid-dev kxmlgui-dev
+			qt5-qtdeclarative-dev kcompletion-dev kcoreaddons-dev ki18n-dev kiconthemes-dev
+			kitemviews-dev kconfigwidgets-dev kauth-dev kcodecs-dev ktextwidgets-dev sonnet-dev
+			attica-qt-dev kconfig-dev kwidgetsaddons-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="e67084ed5b6e54345daf125bbdb45c1c82a9cd4450de9a9c98d1aa76410234f8fe0f0f284418c46c55f6dfab23ba7521c2390998479c3a94f827ba8104bffe03  knewstuff-5.37.0.tar.xz"
+sha512sums="496feafb526ee7ae835e5e590f691c86b22bffb2c446de151a6d582662c856f0df755bbbe91fec06c2e06bc5577181972bb95a3f1afcf9aabca1f055e56c42ff  knewstuff-5.40.0.tar.xz"
diff --git a/aports/kde/knotifications/APKBUILD b/aports/kde/knotifications/APKBUILD
index 1a12332ee67c6faa8603e2c116b101cf29cd7b3d..be2e8b6501fed5e2c72a44535de223d882722a67 100644
--- a/aports/kde/knotifications/APKBUILD
+++ b/aports/kde/knotifications/APKBUILD
@@ -1,33 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=knotifications
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Abstraction for system notifications'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
+license="LGPL-2.1"
 depends=""
-makedepends="extra-cmake-modules qt5-qttools-dev python doxygen phonon-dev dbus-libs qt5-x11extras-dev
-			 kwindowsystem-dev kconfig-dev kcodecs-dev kcoreaddons-dev"
+depends_dev="qt5-x11extras-dev kwindowsystem-dev kconfig-dev kcodecs-dev kcoreaddons-dev qt5-qtbase-dev phonon-qt5-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen dbus-libs"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running dbus-daemon
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="3b08faf67d705233e98ff5e6cacdb6983134942f1ea5bb8cac43ecfe7b15aac987702cf635dd8dc3e45047e5069bb3fcd39c9745ac4bf414bb33f69336013644  knotifications-5.37.0.tar.xz"
+sha512sums="7fbeff7ce781904ae9d3d57ef439c1d41880558f219465d5b593ee3099d3ce091124067494f5ce9da590ce68ab8f12ac2eda96c59be8d0a767b3edafeb251675  knotifications-5.40.0.tar.xz"
diff --git a/aports/kde/knotifyconfig/APKBUILD b/aports/kde/knotifyconfig/APKBUILD
index 2005814a056701e830b98f6a941b0c775246eae8..722dc738128df07dfe2f30b64d95769affa42b79 100644
--- a/aports/kde/knotifyconfig/APKBUILD
+++ b/aports/kde/knotifyconfig/APKBUILD
@@ -1,35 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=knotifyconfig
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Configuration system for KNotify'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kio"
-makedepends="extra-cmake-modules python qt5-qttools-dev kcompletion-dev ki18n-dev kio-dev
-			 kcoreaddons-dev kservice-dev kbookmarks-dev kitemviews-dev kjobwidgets-dev solid-dev
-			 kxmlgui-dev kconfigwidgets-dev kauth-dev kcodecs-dev kconfig-dev kwidgetsaddons-dev
-			 doxygen"
+license="LGPL-2.1"
+depends=""
+depends_dev="kcompletion-dev ki18n-dev kcoreaddons-dev kservice-dev kbookmarks-dev kitemviews-dev
+			kjobwidgets-dev solid-dev kxmlgui-dev kconfigwidgets-dev kauth-dev kcodecs-dev kconfig-dev 
+			kwidgetsaddons-dev kio-dev knotifications-dev phonon-qt5-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="29b8216415161980f21d6459c7877d42a4b489870eb70aee15f2d2ec7380c7cdb985f59b917ff34328b8a9128a440b785256b1044e285bd31c80cca5eb1474c7  knotifyconfig-5.37.0.tar.xz"
+sha512sums="0a368e63c5a4af2344293300e2acbf29ee3e07a101e318f883ffa97725b5f05d6bd563ed0f832b59d2052faa3f023be25235a473ad92b0b07456c65f2737536c  knotifyconfig-5.40.0.tar.xz"
diff --git a/aports/kde/konsole/APKBUILD b/aports/kde/konsole/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..189dff9da97217e3adc281000e20f2c0e964c582
--- /dev/null
+++ b/aports/kde/konsole/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=konsole
+pkgver=17.08.2
+pkgrel=1
+arch="all"
+url='https://kde.org/applications/system/konsole/'
+pkgdesc="KDE's terminal emulator"
+license="GPL-2.0"
+depends=""
+makedepends="extra-cmake-modules qt5-qtbase-dev kdoctools-dev kcompletion-dev kconfig-dev
+			kconfigwidgets-dev kcoreaddons-dev kcrash-dev kguiaddons-dev kdbusaddons-dev
+			ki18n-dev kiconthemes-dev kinit-dev kio-dev knotifications-dev knotifyconfig-dev
+			kparts-dev kpty-dev kservice-dev ktextwidgets-dev kwidgetsaddons-dev kwindowsystem-dev
+			kxmlgui-dev kdbusaddons-dev sonnet-dev"
+source="https://download.kde.org/stable/applications/$pkgver/src/$pkgname-$pkgver.tar.xz"
+subpackages="$pkgname-doc $pkgname-lang"
+options="!check" # Fails due to requiring running X11
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DCMAKE_INSTALL_LIBDIR=lib
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="$pkgdir" install
+}
+
+sha512sums="39e87e3aa31775b2999d05d719ffb506ff69adc958cb14a29fbe7edf056af179568b73ddb81fbc9bc75eabad50bb5c2fe2b7c025f3bf69f34b83607b7b5c6fe5  konsole-17.08.2.tar.xz"
diff --git a/aports/kde/kpackage/APKBUILD b/aports/kde/kpackage/APKBUILD
index e7ed129c5588dd295bddee7f795093297084f2b9..13744b4397d3de7093d610999a6bff782049e09b 100644
--- a/aports/kde/kpackage/APKBUILD
+++ b/aports/kde/kpackage/APKBUILD
@@ -1,35 +1,37 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kpackage
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Framework that lets applications manage user installable packages of non-binary assets'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="karchive ki18n"
-makedepends="extra-cmake-modules qt5-qttools-dev python kdoctools-dev kcoreaddons-dev karchive-dev
-			 ki18n-dev doxygen"
+license="LGPL-2.1"
+depends=""
+depends_dev="kcoreaddons-dev karchive-dev ki18n-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev kdoctools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring installed Plasma, which causes a circular dependency
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
 		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
 
-sha512sums="a96121acecf77b3c849415264baf382dcf8d9c518b92c5f8c70e909cefcc820c1c8d63b3e2203a95d1817322c785d327aec48f3a52ff2680c7407b5918c566b4  kpackage-5.37.0.tar.xz"
+sha512sums="969250d2bfeabbb9e69d940156adde87d3819182bd71a36f4b02a7145023e39442b18785dc3ac58f44bd5dd865cc8dad88b731afb7def38f0c6e333553452870  kpackage-5.40.0.tar.xz"
diff --git a/aports/kde/kparts/APKBUILD b/aports/kde/kparts/APKBUILD
index 515551f3d1436b157367dc4887957e4ff7e7602c..bf8a0ae6b007bb1b31711dfbea549ac55eb0815c 100644
--- a/aports/kde/kparts/APKBUILD
+++ b/aports/kde/kparts/APKBUILD
@@ -1,35 +1,37 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kparts
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Document centric plugin system'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kio"
-makedepends="extra-cmake-modules python qt5-qttools-dev kio-dev kiconthemes-dev ktextwidgets-dev
-			 sonnet-dev kbookmarks-dev kwidgetsaddons-dev kcompletion-dev kitemviews-dev kjobwidgets-dev
-			 solid-dev kxmlgui-dev kconfigwidgets-dev kauth-dev kcodecs-dev kconfig-dev kcoreaddons-dev
-			 ki18n-dev kservice-dev doxygen"
+license="LGPL-2.1"
+depends=""
+depends_dev="kio-dev kiconthemes-dev ktextwidgets-dev sonnet-dev kbookmarks-dev kwidgetsaddons-dev
+			kcompletion-dev kitemviews-dev kjobwidgets-dev solid-dev kxmlgui-dev kconfigwidgets-dev
+			kauth-dev kcodecs-dev kconfig-dev kcoreaddons-dev ki18n-dev kservice-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="4c1bf3f0a44e7149ee02331de527965a9b241d4e15631ee99d4d0c93beb399ab6a454991a2dfae4124e94db0f1ef06068bb68fc3bab7fdbcf9295aa41eb59b59  kparts-5.37.0.tar.xz"
+sha512sums="0ab9883b5583f0d4aae1a27eeadd11b6d3d9902a5672487691275123eec81dcbfbea4f0eebf57eecc01d0a57df828f4b8729165fcc7c74d148acc5fd0a8ed87b  kparts-5.40.0.tar.xz"
diff --git a/aports/kde/kpeople/APKBUILD b/aports/kde/kpeople/APKBUILD
index ffef0923fc61a03c86678c09a02ad16de75bc032..eeb5bb689c44f29af919f6a1ea35f199fdb5fe2d 100644
--- a/aports/kde/kpeople/APKBUILD
+++ b/aports/kde/kpeople/APKBUILD
@@ -1,33 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kpeople
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='A library that provides access to all contacts and the people who hold them'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license=LGPL
-depends="kservice kwidgetsaddons kitemviews qt5-qtdeclarative"
-makedepends="extra-cmake-modules python mesa-dev qt5-qttools-dev qt5-qtdeclarative-dev kcoreaddons-dev
-			 kwidgetsaddons-dev ki18n-dev kitemviews-dev kservice-dev kconfig-dev doxygen"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtdeclarative-dev kcoreaddons-dev kwidgetsaddons-dev ki18n-dev kitemviews-dev
+			kservice-dev kconfig-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Not sure
 
 build() { 
-	cd $srcdir/build
-	cmake "$srcdir"/$pkgname-$pkgver \
+	cmake \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="$pkgdir" install
 }
-sha512sums="9b39cb0b08a079a9d142875c73cbcb2ce990df69756d8d39648e1beea81e3c74b21db9ca579682e7e469feb51d0b1697a302286f79eba3a12127955511b68857  kpeople-5.37.0.tar.xz"
+sha512sums="18b57e846bc614371c65c63662238b806c7dfd999be97695eeff1d1b4e4edb92ec3b7363e5876ec1bb9f9ff9335f6d7e8bd0140cf488f180fa660db20baab665  kpeople-5.40.0.tar.xz"
diff --git a/aports/kde/kplotting/APKBUILD b/aports/kde/kplotting/APKBUILD
index bbb40748acb274eb3d39cac0b5cd40cecc0d7a09..bd65b0ff79c079ed3a5b53fdce7f8b30702a8acf 100644
--- a/aports/kde/kplotting/APKBUILD
+++ b/aports/kde/kplotting/APKBUILD
@@ -1,33 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kplotting
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Lightweight plotting framework'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtbase"
-makedepends="extra-cmake-modules mesa-dev doxygen qt5-qttools-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtbase-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
 	cmake "$srcdir"/${pkgname}-${pkgver} \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
 
-sha512sums="7556d20333834568298ce66b9ce9b6aa0f2a09650552cba1482e8c534e1fd8a591faba7d6cbe7159173bf986934a8f9d4f35d81e29e15477cec01bc2995bed99  kplotting-5.37.0.tar.xz"
+sha512sums="71a9ec3d041c3cc05f221230cb8727873eb354d8b6c55b12aeaf1f8b41de492d37a66d47baf860b1b222265211351245dc47ff5d08f2c5839cbcf24b5fb53b40  kplotting-5.40.0.tar.xz"
diff --git a/aports/kde/kpty/APKBUILD b/aports/kde/kpty/APKBUILD
index 2268ed53ebcf8a9690a7151309bf7ede3904868b..143ed4869faee8b8eda34cb900a8074610697b7e 100644
--- a/aports/kde/kpty/APKBUILD
+++ b/aports/kde/kpty/APKBUILD
@@ -1,32 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kpty
-pkgver=5.37.0
+pkgver=5.40.0
 pkgrel=1
 pkgdesc='Pty abstraction'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kcoreaddons ki18n"
-makedepends="extra-cmake-modules python qt5-qttools-dev kcoreaddons-dev ki18n-dev doxygen"
+license="LGPL-2.1"
+depends=""
+depends_dev="kcoreaddons-dev ki18n-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Not sure: "Can't open a pseudo teletype"
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="8bf1d12aafb319f952c7001fd59921d15cf248f0d09daa5b00990441a1959d873e1ce6aadb0cb175637290777381f6a4b8326637fbaae46db4030210072a1ec8  kpty-5.37.0.tar.xz"
+sha512sums="85092a0ef665f7bcb22573c8cb678a4bd0f62a22e02f321caaf3857998396c1fbaeb135a7a40abe519e5421a14932e348223c2a7956befdf7b06cea378f8cea2  kpty-5.40.0.tar.xz"
diff --git a/aports/kde/krunner/APKBUILD b/aports/kde/krunner/APKBUILD
index e46610d259361084d92c79fc0ba8b80d3e80e9cb..a1b0c60a0f06770e0f4ef34c0258613781dd48f1 100644
--- a/aports/kde/krunner/APKBUILD
+++ b/aports/kde/krunner/APKBUILD
@@ -1,36 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=krunner
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Framework for providing different actions given a string query'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="GPL"
-depends="plasma-framework threadweaver"
-makedepends="extra-cmake-modules kdoctools-dev python qt5-qttools-dev plasma-framework-dev threadweaver-dev
-			 kactivities-dev kbookmarks-dev kcompletion-dev kjobwidgets-dev solid-dev kxmlgui-dev
-			 kpackage-dev qt5-qtdeclarative-dev kconfig-dev kcoreaddons-dev ki18n-dev kservice-dev
-			 kwidgetsaddons-dev kitemviews-dev kconfigwidgets-dev kauth-dev kcodecs-dev kwindowsystem-dev
-			 kio-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="plasma-framework-dev threadweaver-dev kactivities-dev kbookmarks-dev kcompletion-dev
+			kjobwidgets-dev solid-dev kxmlgui-dev kpackage-dev qt5-qtdeclarative-dev kconfig-dev
+			kcoreaddons-dev ki18n-dev kservice-dev kwidgetsaddons-dev kitemviews-dev kconfigwidgets-dev
+			kauth-dev kcodecs-dev kwindowsystem-dev kio-dev"
+makedepends="$depends_dev extra-cmake-modules kdoctools-dev qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc"
-
-prepare() {
-	mkdir $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="68e046bd62258d8ea55598959d6a0e9aa8f3686f9e2e023cec1c848b7683a001d0f2c09bc88bd3f86283868ed90c2d984a000899ad86348f96c1dda7559677dc  krunner-5.37.0.tar.xz"
+sha512sums="fc634c01935096500614525f33c60497946b43d82f2656ab601ca49147c3d615288fa25645daf83c9fd6e734178b0abcd6c73f238ad8c5866ad1a47e83e60bb8  krunner-5.40.0.tar.xz"
diff --git a/aports/kde/kscreen/APKBUILD b/aports/kde/kscreen/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..7d3e67b756bb387124e32b86d68759f847237aad
--- /dev/null
+++ b/aports/kde/kscreen/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=kscreen
+pkgver=5.11.2
+pkgrel=0
+pkgdesc="KDE's screen management software"
+arch="all"
+url='https://www.kde.org/workspaces/plasmadesktop/'
+license="GPL-2.0"
+depends="hicolor-icon-theme"
+depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev libkscreen-dev kdbusaddons-dev
+			kconfig-dev kconfigwidgets-dev ki18n-dev kxmlgui-dev kauth-dev kcoreaddons-dev
+			kcodecs-dev kwidgetsaddons-dev kglobalaccel-dev"
+makedepends="$depends_dev extra-cmake-modules"
+source="https://download.kde.org/stable/plasma/$pkgver/kscreen-$pkgver.tar.xz"
+subpackages="$pkgname-lang"
+options="!check" # Fails due to requiring running X11
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DCMAKE_INSTALL_LIBDIR=lib
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="$pkgdir" install
+}
+
+sha512sums="0ea6cac748f137a7a2cfa65636c5f3c2a45f95ef2723c1990406e9f8ac188e263f101a3b9ff402fd097661b1d29fa3942223f2f18512489c3eeab6847bbb696c  kscreen-5.11.2.tar.xz"
diff --git a/aports/kde/kscreenlocker/APKBUILD b/aports/kde/kscreenlocker/APKBUILD
index 5f0d6b6bec5ab820e59487166e3d36b4f601f96c..06acee8cf7cabe2708997502d2695eaf234f5513 100644
--- a/aports/kde/kscreenlocker/APKBUILD
+++ b/aports/kde/kscreenlocker/APKBUILD
@@ -1,38 +1,48 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kscreenlocker
-pkgver=5.10.4
-pkgrel=1
+pkgver=5.11.2
+pkgrel=0
 pkgdesc='Library and components for secure lock screen architecture'
 arch="all"
 url='https://www.kde.org/workspaces/plasmadesktop/'
-license="LGPL"
-depends="kidletime kwayland kdeclarative"
-makedepends="extra-cmake-modules python kdoctools-dev kcmutils-dev libxcursor
-			 linux-pam-dev kidletime-dev kwayland-dev kdeclarative-dev qt5-qtdeclarative-dev
-			 kcrash-dev kdeclarative-dev kglobalaccel-dev ki18n-dev ktextwidgets-dev
-			 kwindowsystem-dev kxmlgui-dev kconfig-dev sonnet-dev kconfigwidgets-dev
-			 kauth-dev kcoreaddons-dev kcodecs-dev kwidgetsaddons-dev kservice-dev
-			 kpackage-dev knotifications-dev solid-dev xcb-util-keysyms-dev qt5-x11extras-dev"
-source="https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"
+license="GPL-2.0"
+depends="linux-pam"
+depends_dev="kcmutils-dev consolekit2-dev linux-pam-dev kidletime-dev kwayland-dev
+			kdeclarative-dev qt5-qtdeclarative-dev kcrash-dev kglobalaccel-dev
+			ki18n-dev ktextwidgets-dev qt5-x11extras-dev kwindowsystem-dev kxmlgui-dev
+			kconfig-dev sonnet-dev kconfigwidgets-dev kauth-dev kcoreaddons-dev
+			kcodecs-dev kwidgetsaddons-dev kservice-dev kpackage-dev knotifications-dev
+			solid-dev"
+makedepends="$depends_dev extra-cmake-modules kdoctools-dev libxcursor xcb-util-keysyms-dev"
+source="https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz
+		kde.pam
+		kde-np.pam"
 subpackages="$pkgname-dev $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="suid !check" # Fails due to requiring running X11 and loginctl
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/$pkgname-$pkgver \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DKDE_INSTALL_LIBEXECDIR=/usr/lib \
-		-DBUILD_TESTING=OFF
+		-DKDE_INSTALL_LIBEXECDIR=/usr/lib
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="$pkgdir" install
+
+	install -D -m644 "$srcdir"/kde.pam "$pkgdir"/etc/pam.d/kde
+	install -m644 "$srcdir"/kde-np.pam "$pkgdir"/etc/pam.d/kde-np
 }
 
-sha512sums="5fcae9f35c0f180e18861e8a60ca772d209c423a81bee09ac90e143d51fdab4b55025c007128a8353b9b4132616b04c2a4211df46525ab543fba1300adb6f5ee  kscreenlocker-5.10.4.tar.xz"
+sha512sums="ed51ff7ddad6ba84e1d5e685c30263a5209d96c6a9b6d979999c4222c32e822c567c9727cfec4de64ae2b910ed72fe9e1776d900ad7e8cffc147449b3ce287bc  kscreenlocker-5.11.2.tar.xz
+56e87d02d75c4a8cc4ed183faed416fb4972e7f223b8759959c0f5da32e11e657907a1df279d62a44a6a174f5aca8b2ac66a5f3325c5deb92011bcf71eed74c3  kde.pam
+565265485dd7466b77966d75a56766216b8bcc187c95a997e531e9481cf50ddbe576071eb0e334421202bcab19aa6de6b93e042447ca4797a24bf97e1d053ffd  kde-np.pam"
diff --git a/aports/kde/kscreenlocker/kde-np.pam b/aports/kde/kscreenlocker/kde-np.pam
new file mode 100644
index 0000000000000000000000000000000000000000..07b7861ed948b75264b8821a633b93bb4a0734e8
--- /dev/null
+++ b/aports/kde/kscreenlocker/kde-np.pam
@@ -0,0 +1,10 @@
+#%PAM-1.0
+
+auth       required     pam_nologin.so
+auth	   required     pam_permit.so
+
+account    include      base-account
+
+password   include      base-password
+
+session    include      base-session-noninteractive
diff --git a/aports/kde/kscreenlocker/kde.pam b/aports/kde/kscreenlocker/kde.pam
new file mode 100644
index 0000000000000000000000000000000000000000..1b9e446ce3ef9f82974a5ae3ab7c34cf2c77e036
--- /dev/null
+++ b/aports/kde/kscreenlocker/kde.pam
@@ -0,0 +1,11 @@
+#%PAM-1.0
+
+auth       required     pam_nologin.so
+
+auth       include      base-auth
+
+account    include      base-account
+
+password   include      base-password
+
+session    include      base-session-noninteractive
diff --git a/aports/kde/kservice/APKBUILD b/aports/kde/kservice/APKBUILD
index 0c5d1ec420d741b7d9445be8b86ab39efd742689..e2caf709e1715b245a2be6765114ce6e67b9bab7 100644
--- a/aports/kde/kservice/APKBUILD
+++ b/aports/kde/kservice/APKBUILD
@@ -1,34 +1,37 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kservice
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Advanced plugin and service introspection'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="ki18n kconfig kcrash kdbusaddons"
-makedepends="extra-cmake-modules kdoctools python doxygen qt5-qttools-dev kcrash-dev
-			 kconfig-dev kdbusaddons-dev ki18n-dev flex-dev bison kcoreaddons-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kcrash-dev kconfig-dev kdbusaddons-dev ki18n-dev kcoreaddons-dev"
+makedepends="$depends_dev extra-cmake-modules kdoctools-dev doxygen qt5-qttools-dev flex-dev bison"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to test suites not building
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
-		-DBUILD_QCH=ON
+		-DBUILD_QCH=ON \
+		-DBUILD_TESTING=OFF
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
 
-sha512sums="6833e7d08a63a9c6d8e81f65625751b4febcdeb8d1095426f8a639fd1a9ac31b2a86922b740430e40e3bf9a8c9e305db1b85e84d0ab994ef80bf53452f706001  kservice-5.37.0.tar.xz"
+sha512sums="362a81aedb24f0fb2c598329e8b4fb174435b756f9a13617935d96eed1e5d40be38a8f27c7aedb0bd0cf07e73b5e1d464d53266e34b426958876aff2540fe89c  kservice-5.40.0.tar.xz"
diff --git a/aports/kde/ksysguard/APKBUILD b/aports/kde/ksysguard/APKBUILD
index a1b0bcc0c4025ec117bcdb826bc319ac72bd7c2d..cf7eba819f117208c5ad16b8ceee05c256dd9585 100644
--- a/aports/kde/ksysguard/APKBUILD
+++ b/aports/kde/ksysguard/APKBUILD
@@ -1,31 +1,22 @@
 pkgname=ksysguard
-pkgver=5.10.4
+pkgver=5.11.2
 pkgrel=1
 pkgdesc='Track and control the processes running in your system'
 arch="all"
 url='https://userbase.kde.org/KSysGuard'
-license="LGPL"
-depends="lm_sensors hicolor-icon-theme"
-makedepends="extra-cmake-modules kdoctools-dev python libksysguard-dev attica-qt5-dev
-			 kinit-dev kxmlgui-dev kconfig-dev kcoreaddons-dev kdbusaddons-dev ki18n-dev
-			 kiconthemes-dev kitemviews-dev kio-dev knotifications-dev kservice-dev
-			 kio-dev kbookmarks-dev kwidgetsaddons-dev kcompletion-dev kjobwidgets-dev
-			 solid-dev kxmlgui-dev kconfigwidgets-dev kauth-dev kcodecs-dev kwindowsystem-dev
-			 knewstuff-dev"
-source="https://download.kde.org/stable/plasma/${pkgver}/$pkgname-$pkgver.tar.xz
-		 D6631.patch"
+license="GPL-2.0"
+depends=""
+depends_dev="libksysguard-dev attica-qt-dev kinit-dev kxmlgui-dev kconfig-dev kcoreaddons-dev
+			kdbusaddons-dev ki18n-dev kiconthemes-dev kitemviews-dev kio-dev knotifications-dev
+			kservice-dev kbookmarks-dev kwidgetsaddons-dev kcompletion-dev kjobwidgets-dev
+			qt5-qtbase-dev solid-dev kxmlgui-dev kconfigwidgets-dev kauth-dev kcodecs-dev
+			kwindowsystem-dev knewstuff-dev"
+makedepends="$depends_dev extra-cmake-modules kdoctools-dev"
+source="https://download.kde.org/stable/plasma/${pkgver}/$pkgname-$pkgver.tar.xz"
 subpackages="$pkgname-doc $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-	
-	cd "$srcdir"/$pkgname-$pkgver
-	patch -p1 < ../D6631.patch
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
@@ -33,9 +24,13 @@ build() {
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="3bcb4730ffca30cadf8838ef196b3ebc40e40460d86d1ba28b1778f7c4dc6bb72a875f9ddc28e4211fa232fbddbad90b6742d6ec88471e907dff8fd9e01a2bab  ksysguard-5.10.4.tar.xz
-9125d313335d82a6eaa206b1dcf053be380854978592e1f3cd9cf9977e4d78d105893d9c456d9f79665dd6922d8bd9801e593afe392c4629713949b342093153  D6631.patch"
+sha512sums="8288cbfe8fe86998a688ab4b874792561091e2774de48837de0fae8528705134302ba4dc3bfbbfcf57f5a6b36ec5fe438e59827b00fc82eaaf5a637704205ac7  ksysguard-5.11.2.tar.xz"
diff --git a/aports/kde/ksysguard/D6631.patch b/aports/kde/ksysguard/D6631.patch
deleted file mode 100644
index 3680b22ed68b670b397c35769ed344e0ddecad81..0000000000000000000000000000000000000000
--- a/aports/kde/ksysguard/D6631.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-diff --git a/ksysguardd/Command.c b/ksysguardd/Command.c
---- a/ksysguardd/Command.c
-+++ b/ksysguardd/Command.c
-@@ -19,6 +19,7 @@
- 
- */
- 
-+#define _POSIX_C_SOURCE /* sig.*set */
- #include <signal.h>
- #include <stdarg.h>
- #include <stdio.h>
-diff --git a/ksysguardd/Linux/ProcessList.c b/ksysguardd/Linux/ProcessList.c
---- a/ksysguardd/Linux/ProcessList.c
-+++ b/ksysguardd/Linux/ProcessList.c
-@@ -18,6 +18,9 @@
- 
- */
- 
-+#define _BSD_SOURCE /* kill, syscall */
-+#define _DEFAULT_SOURCE /* Eliminate warning from prev */
-+
- #include <ctype.h>
- #include <dirent.h>
- #include <errno.h>
-@@ -29,6 +32,7 @@
- #include <sys/resource.h>
- #include <time.h>
- #include <unistd.h>
-+#include <sys/syscall.h>
- #include <sys/ptrace.h>
- #include <asm/unistd.h>
- 
-diff --git a/ksysguardd/Linux/diskstat.c b/ksysguardd/Linux/diskstat.c
---- a/ksysguardd/Linux/diskstat.c
-+++ b/ksysguardd/Linux/diskstat.c
-@@ -20,6 +20,8 @@
- 
- #include <config-workspace.h>
- 
-+#define _XOPEN_SOURCE /* isascii */
-+
- #include <mntent.h>
- #include <stdio.h>
- #include <stdlib.h>
-@@ -63,8 +65,10 @@
-     memset( device, 0, sizeof( device ) );
-     sscanf( cmd, "partitions%1024s", device );
- 
--    ptr = (char*)rindex( device, '/' );
--    *ptr = '\0';
-+    ptr = strrchr( device, '/' );
-+    if( ptr ) {
-+        *ptr = '\0';
-+    }
- 
-     return (char*)device;
- }
-diff --git a/ksysguardd/Linux/netstat.c b/ksysguardd/Linux/netstat.c
---- a/ksysguardd/Linux/netstat.c
-+++ b/ksysguardd/Linux/netstat.c
-@@ -20,8 +20,11 @@
- 
- #include <config-workspace.h>
- 
-+#define _POSIX_SOURCE /* expose old gethostbyaddr(3) call */
- #include <arpa/inet.h>
- #include <netdb.h>
-+#include <sys/types.h>
-+#include <sys/socket.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -264,10 +267,10 @@
- {
- 	FILE *netstat;
- 	char buffer[1024];
--	uint local_addr, local_port;
--	uint remote_addr, remote_port;
-+	unsigned local_addr, local_port;
-+	unsigned remote_addr, remote_port;
- 	int uid;
--	uint state;
-+	unsigned state;
- 	SocketInfo *socket_info;
- 
- 	if (strstr(cmd, "tcp")) {
-diff --git a/ksysguardd/Linux/softraid.c b/ksysguardd/Linux/softraid.c
---- a/ksysguardd/Linux/softraid.c
-+++ b/ksysguardd/Linux/softraid.c
-@@ -21,6 +21,7 @@
- #include "ksysguardd.h"
- #include "softraid.h"
- 
-+#define _POSIX_C_SOURCE 200809L /* strndup */
- #include <string.h> /* for strlen, strcat and strcmp */
- #include <stdio.h> /* for sprintf */
- #include <sys/types.h> /* for open */
-diff --git a/ksysguardd/PWUIDCache.c b/ksysguardd/PWUIDCache.c
---- a/ksysguardd/PWUIDCache.c
-+++ b/ksysguardd/PWUIDCache.c
-@@ -18,6 +18,8 @@
- 
- */
- 
-+#define _POSIX_C_SOURCE 200809L /* strdup */
-+
- #include <pwd.h>
- #include <stdlib.h>
- #include <string.h>
-diff --git a/ksysguardd/conf.c b/ksysguardd/conf.c
---- a/ksysguardd/conf.c
-+++ b/ksysguardd/conf.c
-@@ -20,6 +20,7 @@
- 
- #include "config-ksysguardd.h"
- 
-+#define _POSIX_C_SOURCE 200809L /* strdup */
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-diff --git a/ksysguardd/ksysguardd.c b/ksysguardd/ksysguardd.c
---- a/ksysguardd/ksysguardd.c
-+++ b/ksysguardd/ksysguardd.c
-@@ -22,6 +22,9 @@
- 
- */
- 
-+/* strdup, fileno, fdopen */
-+#define _POSIX_C_SOURCE 200809L
-+
- #include <config-workspace.h>
- #include <ctype.h>
- #include <fcntl.h>
-
-
diff --git a/aports/kde/ktexteditor/APKBUILD b/aports/kde/ktexteditor/APKBUILD
index a2e31fdae021c5643694aff0b86221964479b268..745f08caf2ca63f72646ecf10792196fb8daf16c 100644
--- a/aports/kde/ktexteditor/APKBUILD
+++ b/aports/kde/ktexteditor/APKBUILD
@@ -1,34 +1,39 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=ktexteditor
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Advanced embeddable text editor'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="libgit2"
-makedepends="extra-cmake-modules python qt5-qttools-dev qt5-qtxmlpatterns-dev syntax-highlighting
-			 qt5-qtscript-dev kparts-dev karchive-dev kguiaddons-dev ktextwidgets-dev sonnet-dev
-			 syntax-highlighting-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtxmlpatterns-dev qt5-qtdeclarative-dev qt5-qtscript-dev kparts-dev karchive-dev
+			kguiaddons-dev ktextwidgets-dev sonnet-dev kconfig-dev ki18n-dev kio-dev kcoreaddons-dev
+			kservice-dev kbookmarks-dev kwidgetsaddons-dev kcompletion-dev kitemviews-dev
+			kjobwidgets-dev solid-dev kxmlgui-dev kconfigwidgets-dev kauth-dev kcodecs-dev kiconthemes-dev
+			syntax-highlighting-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="02b2ba273845deb11d9be69f4e212618d62319f30c5e5b999473d1392ee8c402d104aad0856a168b845abaf529d6d0a30e090f70e69d133bfa847ae3f6bb6b27  ktexteditor-5.37.0.tar.xz"
+sha512sums="933b1a65e3d4bcc5347f35b7ed5d67c07a4060dd8fb755275e2aeeb40b3107b09b361faf7d95fb33991a9c36ed49f4c5e08ea9887b98a6096dd8ae0dbf48b208  ktexteditor-5.40.0.tar.xz"
diff --git a/aports/kde/ktextwidgets/APKBUILD b/aports/kde/ktextwidgets/APKBUILD
index 6309de65177642eb5e3405301e55add13a08c30a..0b780a29ce992b40d458382b3aa5e6a683725f60 100644
--- a/aports/kde/ktextwidgets/APKBUILD
+++ b/aports/kde/ktextwidgets/APKBUILD
@@ -1,34 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=ktextwidgets
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Advanced text editing widgets'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kcompletion kservice kiconthemes sonnet"
-makedepends="extra-cmake-modules python doxygen qt5-qttools-dev kcompletion sonnet-dev kauth-dev
-			 kiconthemes-dev kservice-dev kcompletion-dev kconfig-dev kconfigwidgets-dev kcoreaddons-dev
-			 kcodecs-dev kwidgetsaddons-dev ki18n-dev kwindowsystem-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="sonnet-dev kauth-dev kiconthemes-dev kservice-dev kcompletion-dev kconfig-dev
+			kconfigwidgets-dev kcoreaddons-dev kcodecs-dev kwidgetsaddons-dev ki18n-dev kwindowsystem-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="f9004dc952705bd9e4f4859b1cbde3a9e64bea28f1578e93eda37c80e13b36c43473eb33e954365ab85b259486d929c406333c8cda59af5c3c8c119e70d0da7e  ktextwidgets-5.37.0.tar.xz"
+sha512sums="b24af586ff3832432d89106ce45d5b549958998a6be230f5ecce06e47a1ac55aa61c30f1d0a1f3ac1e51cb17bf4fea18990a9f33ed8ebb8f988d49bbc55023f3  ktextwidgets-5.40.0.tar.xz"
diff --git a/aports/kde/kunitconversion/APKBUILD b/aports/kde/kunitconversion/APKBUILD
index 7c32e8b01b23a5ee7f45526d5a769ce93472b6d4..a2db32dfeaa5595b3868b8dafc352490585348e8 100644
--- a/aports/kde/kunitconversion/APKBUILD
+++ b/aports/kde/kunitconversion/APKBUILD
@@ -1,33 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kunitconversion
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Support for unit conversion'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="ki18n"
-makedepends="extra-cmake-modules python qt5-qttools-dev ki18n-dev doxygen"
+license="LGPL-2.1"
+depends=""
+depends_dev="ki18n-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
 
-sha512sums="50a4c6efca7d8f218756b9b15f2655bc56fa320178d11291bd3bc4be84ba625a6e8dfa9f2e6320c0c6e8b9f80e80b1125b2e0d1d8e0c86b3e0a1fb9521a4ca5e  kunitconversion-5.37.0.tar.xz"
+sha512sums="a863956bf359b694cf3f2ffe7de2e79abfe379b6ed4c68ed73550da96c5d98f3ec562e7f790e97731abfb5b290dd874a459e91d38edd8918073d10c5b16c896d  kunitconversion-5.40.0.tar.xz"
diff --git a/aports/kde/kwallet/APKBUILD b/aports/kde/kwallet/APKBUILD
index 1a425a643b018c1107b79e0af86d7b44f78c9cc7..616457b8066afa937b369c58ad3b4719ea05428a 100644
--- a/aports/kde/kwallet/APKBUILD
+++ b/aports/kde/kwallet/APKBUILD
@@ -1,35 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kwallet
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Secure and unified container for user passwords'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="knotifications kiconthemes kservice gpgme"
-makedepends="extra-cmake-modules python kdoctools-dev boost doxygen qt5-qttools-dev gpgme-dev
-			 libgcrypt-dev kwindowsystem-dev kconfig-dev kconfigwidgets-dev kauth-dev kcodecs-dev
-			 kdbusaddons-dev kiconthemes-dev knotifications-dev kcoreaddons-dev ki18n-dev kwidgetsaddons-dev
-			 kservice-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kservice-dev kwindowsystem-dev kconfig-dev kconfigwidgets-dev kauth-dev kcodecs-dev
+			kdbusaddons-dev kiconthemes-dev knotifications-dev kcoreaddons-dev ki18n-dev kwidgetsaddons-dev"
+makedepends="$depends_dev extra-cmake-modules kdoctools-dev boost doxygen qt5-qttools-dev libgcrypt-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
 	cmake "$srcdir"/${pkgname}-${pkgver} \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="2b15caca7459e367f07d2aad98859db08f9e6bd337348ab63abd671dc45a434bf305e18e044b469a981c12661ce4dac2407af8b2dac7c3d0588a7b6f907548af  kwallet-5.37.0.tar.xz"
+sha512sums="a162d5ed1901fe3c8675f715ddb9a32640d7b563bf0755a7add885208a8f55465d9082d2abb9553d411018d3a5a4856b17efc94789dbd5993ac6f11a8a0c71c8  kwallet-5.40.0.tar.xz"
diff --git a/aports/kde/kwayland/APKBUILD b/aports/kde/kwayland/APKBUILD
index 270e9eb8957ded4382696dc1c87e23c950808dd3..7e766adfbb5b3ec471e6d61afcdcc6d3a3fb4bdd 100644
--- a/aports/kde/kwayland/APKBUILD
+++ b/aports/kde/kwayland/APKBUILD
@@ -1,34 +1,37 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kwayland
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Qt-style Client and Server library wrapper for the Wayland libraries'
 arch="all"
 url='https://www.kde.org'
-license="LGPL"
-depends="qt5-qtbase wayland"
-makedepends="extra-cmake-modules doxygen qt5-qttools-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtbase-dev wayland-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running Wayland compositor
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
 		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="$pkgdir" install
 }
 
-sha512sums="764ae59472b29a7a8066bb8bae87580a5d68b2aa8f29f284999d2e77e7b32f0c2d80d318fcb820a577138785d8b302c1c6d86b36b5b34a37a13ab80c628f6fa8  kwayland-5.37.0.tar.xz"
+sha512sums="3bbf49ee8a7cbf613d29fec59ac1444be1e89946792fc265a6c889fb32cb2ac93aca16ddd0e636daa8fda556ad01210e4bdd6b6ef4783ca95de5b0834baaa403  kwayland-5.40.0.tar.xz"
diff --git a/aports/kde/kwidgetsaddons/APKBUILD b/aports/kde/kwidgetsaddons/APKBUILD
index 467ca31df2b1674297ad48efedd026ca356fbc6f..297d2080cf405bee86898b3ba75d8dd7bbfffde8 100644
--- a/aports/kde/kwidgetsaddons/APKBUILD
+++ b/aports/kde/kwidgetsaddons/APKBUILD
@@ -1,33 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kwidgetsaddons
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Addons to QtWidgets'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtbase"
-makedepends="extra-cmake-modules qt5-qttools-dev clang py3-qt5 doxygen"
+license="GPL-2.0"
+depends=""
+depends_dev="qt5-qtbase-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
 
-sha512sums="69faac2b489a74f2bb4fea4a5c5961bd7fe6badea6777960589ba45d1eb3457ddcd3875d8a56c0f5d15dd88411ca2e730b54e38e3ec77687a01615e45d62acc0  kwidgetsaddons-5.37.0.tar.xz"
+sha512sums="885afe981ff9aee90b9ed98e6d2d0a458729133ff9b681597a9836fc68c022906ce0e0dc53f58e60a907e23d5e5914993ce6a4610d931b62613ad15a0ac011b2  kwidgetsaddons-5.40.0.tar.xz"
diff --git a/aports/kde/kwin/0001-fbdev-support-RGB32-framebuffer-with-BGR-order.patch b/aports/kde/kwin/0001-fbdev-support-RGB32-framebuffer-with-BGR-order.patch
new file mode 100644
index 0000000000000000000000000000000000000000..030fbed88bf01f0e7a7b084b0497d61f6d0477a8
--- /dev/null
+++ b/aports/kde/kwin/0001-fbdev-support-RGB32-framebuffer-with-BGR-order.patch
@@ -0,0 +1,33 @@
+From 1a65555608971fcee5de89ea35c51e726a5e9abb Mon Sep 17 00:00:00 2001
+From: Zhuowei Zhang <zhuoweizhang@yahoo.com>
+Date: Sun, 8 Oct 2017 01:56:22 -0400
+Subject: [PATCH] fbdev: support RGB32 framebuffer with BGR order
+
+---
+ plugins/platforms/fbdev/fb_backend.cpp | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/plugins/platforms/fbdev/fb_backend.cpp b/plugins/platforms/fbdev/fb_backend.cpp
+index 7955b36..ec09bb9 100644
+--- a/plugins/platforms/fbdev/fb_backend.cpp
++++ b/plugins/platforms/fbdev/fb_backend.cpp
+@@ -213,6 +213,16 @@ void FramebufferBackend::initImageFormat()
+             m_red.offset == 11) {
+         qCDebug(KWIN_FB) << "Framebuffer Format is RGB16";
+         m_imageFormat = QImage::Format_RGB16;
++    } else if (m_bitsPerPixel == 32 &&
++            m_red.length == 8 &&
++            m_green.length == 8 &&
++            m_blue.length == 8 &&
++            m_blue.offset == 16 &&
++            m_green.offset == 8 &&
++            m_red.offset == 0) {
++        qCDebug(KWIN_FB) << "Framebuffer format is RGB32 with BGR";
++        m_bgr = true;
++        m_imageFormat = QImage::Format_RGB32;
+     }
+     qCWarning(KWIN_FB) << "Framebuffer format is unknown";
+ }
+-- 
+1.9.1
+
diff --git a/aports/kde/kwin/APKBUILD b/aports/kde/kwin/APKBUILD
index 623ce2bd64c9ba0d79276c4ede8fec20d70ca930..d2d887eadef6026f5e8811210ea9255c2aa3e2ac 100644
--- a/aports/kde/kwin/APKBUILD
+++ b/aports/kde/kwin/APKBUILD
@@ -1,47 +1,46 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kwin
-pkgver=5.10.4
-pkgrel=1
+pkgver=5.11.2
+pkgrel=0
 pkgdesc='An easy to use, but flexible, composited Window Manager'
 arch="all"
 url='https://www.kde.org/workspaces/plasmadesktop/'
-license="LGPL"
-depends="xcb-util-cursor xcb-util-keysyms hicolor-icon-theme plasma-framework libinput
-		 consolekit2 xorg-server-xwayland breeze"
-makedepends="extra-cmake-modules qt5-qttools-dev kdoctools-dev kdecoration-dev kjobwidgets-dev
-			 libxkbcommon-dev libepoxy-dev libinput-dev kcmutils-dev kscreenlocker-dev
-			 breeze-dev xcb-util-cursor-dev qt5-qtdeclarative-dev qt5-qtscript-dev kcompletion-dev
-			 plasma-framework-dev kinit-dev kio-dev xcb-util-keysyms-dev qt5-x11extras-dev
-			 kcrash-dev kglobalaccel-dev knotifications-dev kiconthemes-dev kconfig-dev
-			 kconfigwidgets-dev kcoreaddons-dev ki18n-dev kpackage-dev kwidgetsaddons-dev
-			 kwindowsystem-dev kidletime-dev kauth-dev kcodecs-dev ktextwidgets-dev
-			 knewstuff-dev kservice-dev kxmlgui-dev kbookmarks-dev kwayland-dev attica-qt5-dev
-			 sonnet-dev kitemviews-dev solid-dev kdeclarative-dev"
+license="GPL-2.0"
+depends="xorg-server-xwayland qt5-qtmultimedia"
+depends_dev="kdecoration-dev kjobwidgets-dev kcmutils-dev kscreenlocker-dev breeze-dev
+			qt5-qtdeclarative-dev qt5-qtscript-dev kcompletion-dev plasma-framework-dev 
+			kinit-dev kio-dev xcb-util-keysyms-dev qt5-x11extras-dev kcrash-dev kglobalaccel-dev
+			knotifications-dev kiconthemes-dev kconfig-dev kconfigwidgets-dev kcoreaddons-dev
+			ki18n-dev kpackage-dev kwidgetsaddons-dev kwindowsystem-dev kidletime-dev
+			kauth-dev kcodecs-dev ktextwidgets-dev knewstuff-dev kservice-dev kxmlgui-dev
+			kbookmarks-dev kwayland-dev attica-qt-dev sonnet-dev kitemviews-dev solid-dev
+			kdeclarative-dev kactivities-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev kdoctools-dev libxkbcommon-dev
+			libepoxy-dev libinput-dev xcb-util-cursor-dev libdrm-dev eudev-dev xcb-util-wm-dev"
 source="https://download.kde.org/stable/plasma/${pkgver}/${pkgname}-${pkgver}.tar.xz
-		D6291.patch"
+		0001-fbdev-support-RGB32-framebuffer-with-BGR-order.patch"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-
-	cd $srcdir/$pkgname-$pkgver
-	patch -p1 < $srcdir/D6291.patch
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake $srcdir/$pkgname-$pkgver \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
 		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DLIBC_IS_GLIBC=0
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="$pkgdir" install
 }
-sha512sums="54f61e01a7e4dfd980440c0b80da54494d6f9d0f0180dedf82d7de923033d5aae11d8af35b78260b7c8977ed6b78dbdd32a40706e3c05420cdbcbe4277120d2b  kwin-5.10.4.tar.xz
-c693354311a0fe4064746633a30b205a22bf90f69cae648d1ed5eef98f55062c06e6821c3f646e227b589f4a291b4a23892f8943b2171e10e39ab7f84d24bafb  D6291.patch"
+sha512sums="2d92676268b2d16eb27e8a44e6ac7b3f2a9126e92f6ec714e6ff64ba25e5ae732f3af126e69c98657af07140de5eb8e499358b58b98cd47a0b730c2a8bca6394  kwin-5.11.2.tar.xz
+5c35ff9526eb5a239e384025d20840ef159ad1f82922a49bb92ebd251c61410361495da9b03a5e185a26c6ad587ece68a20bd7973cad05cbb4f6cd490a4cbf37  0001-fbdev-support-RGB32-framebuffer-with-BGR-order.patch"
diff --git a/aports/kde/kwin/D6291.patch b/aports/kde/kwin/D6291.patch
deleted file mode 100644
index 8d7d4a53afa5bda5338b42fd7be63c2a582194a8..0000000000000000000000000000000000000000
--- a/aports/kde/kwin/D6291.patch
+++ /dev/null
@@ -1,358 +0,0 @@
-diff --git a/logind.h b/logind.h
---- a/logind.h
-+++ b/logind.h
-@@ -78,6 +78,11 @@
-     explicit LogindIntegration(const QDBusConnection &connection, QObject *parent = nullptr);
-     void logindServiceRegistered();
-     void connectSessionPropertiesChanged();
-+    enum SessionController {
-+        SessionControllerLogind,
-+        SessionControllerConsoleKit,
-+    };
-+    void setupSessionController(SessionController controller);
-     void getSeat();
-     QDBusConnection m_bus;
-     QDBusServiceWatcher *m_logindServiceWatcher;
-@@ -87,6 +92,13 @@
-     bool m_sessionActive;
-     int m_vt = -1;
-     QString m_seatPath;
-+    QString m_sessionControllerName;
-+    QString m_sessionControllerService;
-+    QString m_sessionControllerPath;
-+    QString m_sessionControllerManagerInterface;
-+    QString m_sessionControllerSeatInterface;
-+    QString m_sessionControllerSessionInterface;
-+    QString m_sessionControllerActivateProperty;
-     KWIN_SINGLETON(LogindIntegration)
- };
- 
-diff --git a/logind.cpp b/logind.cpp
---- a/logind.cpp
-+++ b/logind.cpp
-@@ -58,12 +58,26 @@
- namespace KWin
- {
- 
-+const static QString s_login1Name = QStringLiteral("logind");
- const static QString s_login1Service = QStringLiteral("org.freedesktop.login1");
- const static QString s_login1Path = QStringLiteral("/org/freedesktop/login1");
- const static QString s_login1ManagerInterface = QStringLiteral("org.freedesktop.login1.Manager");
-+const static QString s_login1SeatInterface = QStringLiteral("org.freedesktop.login1.Seat");
- const static QString s_login1SessionInterface = QStringLiteral("org.freedesktop.login1.Session");
-+const static QString s_login1ActivateProperty = QStringLiteral("Activate");
-+
-+const static QString s_ck2Name = QStringLiteral("ConsoleKit");
-+const static QString s_ck2Service = QStringLiteral("org.freedesktop.ConsoleKit");
-+const static QString s_ck2Path = QStringLiteral("/org/freedesktop/ConsoleKit/Manager");
-+const static QString s_ck2ManagerInterface = QStringLiteral("org.freedesktop.ConsoleKit.Manager");
-+const static QString s_ck2SeatInterface = QStringLiteral("org.freedesktop.ConsoleKit.Seat");
-+const static QString s_ck2SessionInterface = QStringLiteral("org.freedesktop.ConsoleKit.Session");
-+const static QString s_ck2ActivateProperty = QStringLiteral("activate");
-+
- const static QString s_dbusPropertiesInterface = QStringLiteral("org.freedesktop.DBus.Properties");
- 
-+
-+
- LogindIntegration *LogindIntegration::s_self = nullptr;
- 
- LogindIntegration *LogindIntegration::create(QObject *parent)
-@@ -76,22 +90,10 @@
- LogindIntegration::LogindIntegration(const QDBusConnection &connection, QObject *parent)
-     : QObject(parent)
-     , m_bus(connection)
--    , m_logindServiceWatcher(new QDBusServiceWatcher(s_login1Service,
--                                                     m_bus,
--                                                     QDBusServiceWatcher::WatchForUnregistration | QDBusServiceWatcher::WatchForRegistration,
--                                                     this))
-     , m_connected(false)
-     , m_sessionControl(false)
-     , m_sessionActive(false)
- {
--    connect(m_logindServiceWatcher, &QDBusServiceWatcher::serviceRegistered, this, &LogindIntegration::logindServiceRegistered);
--    connect(m_logindServiceWatcher, &QDBusServiceWatcher::serviceUnregistered, this,
--        [this]() {
--            m_connected = false;
--            emit connectedChanged();
--        }
--    );
--
-     // check whether the logind service is registered
-     QDBusMessage message = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.DBus"),
-                                                           QStringLiteral("/"),
-@@ -107,8 +109,11 @@
-                 return;
-             }
-             if (reply.value().contains(s_login1Service)) {
--                logindServiceRegistered();
-+                setupSessionController(SessionControllerLogind);
-+            } else if (reply.value().contains(s_ck2Service)) {
-+                setupSessionController(SessionControllerConsoleKit);
-             }
-+
-         }
-     );
- }
-@@ -123,6 +128,53 @@
-     s_self = nullptr;
- }
- 
-+void LogindIntegration::setupSessionController(SessionController controller)
-+{
-+    if (controller == SessionControllerLogind) {
-+        // We have the logind serivce, set it up and use it
-+        m_sessionControllerName = s_login1Name;
-+        m_sessionControllerService = s_login1Service;
-+        m_sessionControllerPath = s_login1Path;
-+        m_sessionControllerManagerInterface = s_login1ManagerInterface;
-+        m_sessionControllerSeatInterface = s_login1SeatInterface;
-+        m_sessionControllerSessionInterface = s_login1SessionInterface;
-+        m_sessionControllerActivateProperty = s_login1ActivateProperty;
-+        m_logindServiceWatcher = new QDBusServiceWatcher(m_sessionControllerService,
-+                                                         m_bus,
-+                                                         QDBusServiceWatcher::WatchForUnregistration | QDBusServiceWatcher::WatchForRegistration,
-+                                                         this);
-+        connect(m_logindServiceWatcher, &QDBusServiceWatcher::serviceRegistered, this, &LogindIntegration::logindServiceRegistered);
-+        connect(m_logindServiceWatcher, &QDBusServiceWatcher::serviceUnregistered, this,
-+                [this]() {
-+                    m_connected = false;
-+                    emit connectedChanged();
-+                }
-+        );
-+        logindServiceRegistered();
-+    } else if (controller == SessionControllerConsoleKit) {
-+        // We have the ConsoleKit serivce, set it up and use it
-+        m_sessionControllerName = s_ck2Name;
-+        m_sessionControllerService = s_ck2Service;
-+        m_sessionControllerPath = s_ck2Path;
-+        m_sessionControllerManagerInterface = s_ck2ManagerInterface;
-+        m_sessionControllerSeatInterface = s_ck2SeatInterface;
-+        m_sessionControllerSessionInterface = s_ck2SessionInterface;
-+        m_sessionControllerActivateProperty = s_ck2ActivateProperty;
-+        m_logindServiceWatcher = new QDBusServiceWatcher(m_sessionControllerService,
-+                                                         m_bus,
-+                                                         QDBusServiceWatcher::WatchForUnregistration | QDBusServiceWatcher::WatchForRegistration,
-+                                                         this);
-+        connect(m_logindServiceWatcher, &QDBusServiceWatcher::serviceRegistered, this, &LogindIntegration::logindServiceRegistered);
-+        connect(m_logindServiceWatcher, &QDBusServiceWatcher::serviceUnregistered, this,
-+                [this]() {
-+                    m_connected = false;
-+                    emit connectedChanged();
-+                }
-+        );
-+        logindServiceRegistered();
-+    }
-+}
-+
- void LogindIntegration::logindServiceRegistered()
- {
-     const QByteArray sessionId = qgetenv("XDG_SESSION_ID");
-@@ -136,9 +188,9 @@
-         args << QString::fromLocal8Bit(sessionId);
-     }
-     // get the current session
--    QDBusMessage message = QDBusMessage::createMethodCall(s_login1Service,
--                                                          s_login1Path,
--                                                          s_login1ManagerInterface,
-+    QDBusMessage message = QDBusMessage::createMethodCall(m_sessionControllerService,
-+                                                          m_sessionControllerPath,
-+                                                          m_sessionControllerManagerInterface,
-                                                           methodName);
-     message.setArguments(args);
-     QDBusPendingReply<QDBusObjectPath> session = m_bus.asyncCall(message);
-@@ -151,17 +203,17 @@
-                 return;
-             }
-             if (!reply.isValid()) {
--                qCDebug(KWIN_CORE) << "The session is not registered with logind" << reply.error().message();
-+                qCDebug(KWIN_CORE) << "The session is not registered with " << m_sessionControllerName << " " << reply.error().message();
-                 return;
-             }
-             m_sessionPath = reply.value().path();
-             qCDebug(KWIN_CORE) << "Session path:" << m_sessionPath;
-             m_connected = true;
-             connectSessionPropertiesChanged();
-             // activate the session, in case we are not on it
--            QDBusMessage message = QDBusMessage::createMethodCall(s_login1Service,
-+            QDBusMessage message = QDBusMessage::createMethodCall(m_sessionControllerService,
-                                                                 m_sessionPath,
--                                                                s_login1SessionInterface,
-+                                                                m_sessionControllerSessionInterface,
-                                                                 QStringLiteral("Activate"));
-             // blocking on purpose
-             m_bus.call(message);
-@@ -176,13 +228,13 @@
- 
- void LogindIntegration::connectSessionPropertiesChanged()
- {
--    m_bus.connect(s_login1Service,
-+    m_bus.connect(m_sessionControllerService,
-                   m_sessionPath,
-                   s_dbusPropertiesInterface,
-                   QStringLiteral("PropertiesChanged"),
-                   this,
-                   SLOT(getSessionActive()));
--    m_bus.connect(s_login1Service,
-+    m_bus.connect(m_sessionControllerService,
-                   m_sessionPath,
-                   s_dbusPropertiesInterface,
-                   QStringLiteral("PropertiesChanged"),
-@@ -195,19 +247,19 @@
-     if (!m_connected || m_sessionPath.isEmpty()) {
-         return;
-     }
--    QDBusMessage message = QDBusMessage::createMethodCall(s_login1Service,
-+    QDBusMessage message = QDBusMessage::createMethodCall(m_sessionControllerService,
-                                                           m_sessionPath,
-                                                           s_dbusPropertiesInterface,
-                                                           QStringLiteral("Get"));
--    message.setArguments(QVariantList({s_login1SessionInterface, QStringLiteral("Active")}));
-+    message.setArguments(QVariantList({m_sessionControllerSessionInterface, m_sessionControllerActivateProperty}));
-     QDBusPendingReply<QVariant> reply = m_bus.asyncCall(message);
-     QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
-     connect(watcher, &QDBusPendingCallWatcher::finished, this,
-         [this](QDBusPendingCallWatcher *self) {
-             QDBusPendingReply<QVariant> reply = *self;
-             self->deleteLater();
-             if (!reply.isValid()) {
--                qCDebug(KWIN_CORE) << "Failed to get Active Property of logind session:" << reply.error().message();
-+                qCDebug(KWIN_CORE) << "Failed to get Active Property of " << m_sessionControllerName << " session:" << reply.error().message();
-                 return;
-             }
-             const bool active = reply.value().toBool();
-@@ -224,19 +276,19 @@
-     if (!m_connected || m_sessionPath.isEmpty()) {
-         return;
-     }
--    QDBusMessage message = QDBusMessage::createMethodCall(s_login1Service,
-+    QDBusMessage message = QDBusMessage::createMethodCall(m_sessionControllerService,
-                                                           m_sessionPath,
-                                                           s_dbusPropertiesInterface,
-                                                           QStringLiteral("Get"));
--    message.setArguments(QVariantList({s_login1SessionInterface, QStringLiteral("VTNr")}));
-+    message.setArguments(QVariantList({m_sessionControllerSessionInterface, QStringLiteral("VTNr")}));
-     QDBusPendingReply<QVariant> reply = m_bus.asyncCall(message);
-     QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
-     connect(watcher, &QDBusPendingCallWatcher::finished, this,
-         [this](QDBusPendingCallWatcher *self) {
-             QDBusPendingReply<QVariant> reply = *self;
-             self->deleteLater();
-             if (!reply.isValid()) {
--                qCDebug(KWIN_CORE) << "Failed to get VTNr Property of logind session:" << reply.error().message();
-+                qCDebug(KWIN_CORE) << "Failed to get VTNr Property of " << m_sessionControllerName << " session:" << reply.error().message();
-                 return;
-             }
-             const int vt = reply.value().toUInt();
-@@ -259,9 +311,9 @@
-     }
-     s_recursionCheck = true;
- 
--    QDBusMessage message = QDBusMessage::createMethodCall(s_login1Service,
-+    QDBusMessage message = QDBusMessage::createMethodCall(m_sessionControllerService,
-                                                           m_sessionPath,
--                                                          s_login1SessionInterface,
-+                                                          m_sessionControllerSessionInterface,
-                                                           QStringLiteral("TakeControl"));
-     message.setArguments(QVariantList({QVariant(false)}));
-     QDBusPendingReply<void> session = m_bus.asyncCall(message);
-@@ -279,8 +331,8 @@
-             qCDebug(KWIN_CORE) << "Gained session control";
-             m_sessionControl = true;
-             emit hasSessionControlChanged(true);
--            m_bus.connect(s_login1Service, m_sessionPath,
--                          s_login1SessionInterface, QStringLiteral("PauseDevice"),
-+            m_bus.connect(m_sessionControllerService, m_sessionPath,
-+                          m_sessionControllerSessionInterface, QStringLiteral("PauseDevice"),
-                           this, SLOT(pauseDevice(uint,uint,QString)));
-         }
-     );
-@@ -292,9 +344,9 @@
-         return;
-     }
- 
--    QDBusMessage message = QDBusMessage::createMethodCall(s_login1Service,
-+    QDBusMessage message = QDBusMessage::createMethodCall(m_sessionControllerService,
-                                                           m_sessionPath,
--                                                          s_login1SessionInterface,
-+                                                          m_sessionControllerSessionInterface,
-                                                           QStringLiteral("ReleaseControl"));
-     m_bus.asyncCall(message);
-     m_sessionControl = false;
-@@ -308,9 +360,9 @@
-         qCDebug(KWIN_CORE) << "Could not stat the path";
-         return -1;
-     }
--    QDBusMessage message = QDBusMessage::createMethodCall(s_login1Service,
-+    QDBusMessage message = QDBusMessage::createMethodCall(m_sessionControllerService,
-                                                           m_sessionPath,
--                                                          s_login1SessionInterface,
-+                                                          m_sessionControllerSessionInterface,
-                                                           QStringLiteral("TakeDevice"));
-     message.setArguments(QVariantList({QVariant(major(st.st_rdev)), QVariant(minor(st.st_rdev))}));
-     // intended to be a blocking call
-@@ -329,9 +381,9 @@
-         qCDebug(KWIN_CORE) << "Could not stat the file descriptor";
-         return;
-     }
--    QDBusMessage message = QDBusMessage::createMethodCall(s_login1Service,
-+    QDBusMessage message = QDBusMessage::createMethodCall(m_sessionControllerService,
-                                                           m_sessionPath,
--                                                          s_login1SessionInterface,
-+                                                          m_sessionControllerSessionInterface,
-                                                           QStringLiteral("ReleaseDevice"));
-     message.setArguments(QVariantList({QVariant(major(st.st_rdev)), QVariant(minor(st.st_rdev))}));
-     m_bus.asyncCall(message);
-@@ -341,7 +393,7 @@
- {
-     if (QString::compare(type, QStringLiteral("pause"), Qt::CaseInsensitive) == 0) {
-         // unconditionally call complete
--        QDBusMessage message = QDBusMessage::createMethodCall(s_login1Service, m_sessionPath, s_login1SessionInterface, QStringLiteral("PauseDeviceComplete"));
-+        QDBusMessage message = QDBusMessage::createMethodCall(m_sessionControllerService, m_sessionPath, m_sessionControllerSessionInterface, QStringLiteral("PauseDeviceComplete"));
-         message.setArguments(QVariantList({QVariant(devMajor), QVariant(devMinor)}));
-         m_bus.asyncCall(message);
-     }
-@@ -353,24 +405,26 @@
-         return;
-     }
-     qDBusRegisterMetaType<DBusLogindSeat>();
--    QDBusMessage message = QDBusMessage::createMethodCall(s_login1Service,
-+    QDBusMessage message = QDBusMessage::createMethodCall(m_sessionControllerService,
-                                                           m_sessionPath,
-                                                           s_dbusPropertiesInterface,
-                                                           QStringLiteral("Get"));
--    message.setArguments(QVariantList({s_login1SessionInterface, QStringLiteral("Seat")}));
-+    message.setArguments(QVariantList({m_sessionControllerSessionInterface, QStringLiteral("Seat")}));
-+    message.setArguments(QVariantList({m_sessionControllerSessionInterface, QStringLiteral("Seat")}));
-     QDBusPendingReply<QVariant> reply = m_bus.asyncCall(message);
-     QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
-     connect(watcher, &QDBusPendingCallWatcher::finished, this,
-         [this](QDBusPendingCallWatcher *self) {
-             QDBusPendingReply<QVariant> reply = *self;
-             self->deleteLater();
-             if (!reply.isValid()) {
--                qCDebug(KWIN_CORE) << "Failed to get Seat Property of logind session:" << reply.error().message();
-+                qCDebug(KWIN_CORE) << "Failed to get Seat Property of " << m_sessionControllerName << " session:" << reply.error().message();
-                 return;
-             }
-             DBusLogindSeat seat = qdbus_cast<DBusLogindSeat>(reply.value().value<QDBusArgument>());
-             const QString seatPath = seat.path.path();
--            qCDebug(KWIN_CORE) << "Logind seat:" << seat.name << "/" << seatPath;
-+            qCDebug(KWIN_CORE) << m_sessionControllerName << " seat:" << seat.name << "/" << seatPath;
-+            qCDebug(KWIN_CORE) << m_sessionControllerName << " seat:" << seat.name << "/" << seatPath;
-             if (m_seatPath != seatPath) {
-                 m_seatPath = seatPath;
-             }
-@@ -383,9 +437,9 @@
-     if (!m_connected || m_seatPath.isEmpty()) {
-         return;
-     }
--    QDBusMessage message = QDBusMessage::createMethodCall(s_login1Service,
-+    QDBusMessage message = QDBusMessage::createMethodCall(m_sessionControllerService,
-                                                           m_seatPath,
--                                                          QStringLiteral("org.freedesktop.login1.Seat"),
-+                                                          m_sessionControllerSeatInterface,
-                                                           QStringLiteral("SwitchTo"));
-     message.setArguments(QVariantList{vtNr});
-     m_bus.asyncCall(message);
-
-
diff --git a/aports/kde/kwindowsystem/APKBUILD b/aports/kde/kwindowsystem/APKBUILD
index dc9354f130e1fc0cc1dcd7a84aa3d6c0b6fcb664..79b06fdf3841a52c935b8ff8b487357bc03c5d05 100644
--- a/aports/kde/kwindowsystem/APKBUILD
+++ b/aports/kde/kwindowsystem/APKBUILD
@@ -1,34 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kwindowsystem
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Access to the windowing system'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-x11extras libxfixes"
-makedepends="extra-cmake-modules qt5-qttools-dev doxygen qt5-x11extras-dev libxrender-dev xcb-util-keysyms-dev"
-groups="kf5"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-x11extras-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen libxrender-dev xcb-util-keysyms-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {  
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
 
-sha512sums="136b772820e8f8b7cd4e0e5e04b4f61495fe6adb56fc5e025efd60dc0293c88632ece19fcdcda4cffcb8c04e3515aca5fbcc80309e6f01d727e56a45c81dc744  kwindowsystem-5.37.0.tar.xz"
+sha512sums="e07531098de25d96168efb2820b209b47cc5fd0ea5a9a38e3c7c86b079619427e1e597e7b07fd92ea1a64ad6f031afe037ccc73c64bc59e3e5143ab54fff530a  kwindowsystem-5.40.0.tar.xz"
diff --git a/aports/kde/kxmlgui/APKBUILD b/aports/kde/kxmlgui/APKBUILD
index bff8a0d115f89c006fb43c5d1813e30af8c530e6..8cac1ed7a1b4378d06f5212f61e1cf72587a6cd4 100644
--- a/aports/kde/kxmlgui/APKBUILD
+++ b/aports/kde/kxmlgui/APKBUILD
@@ -1,36 +1,38 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kxmlgui
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='User configurable main windows'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="kglobalaccel ktextwidgets"
-makedepends="extra-cmake-modules python mesa-dev doxygen qt5-qttools-dev ktextwidgets-dev
-			 kglobalaccel-dev attica-qt5-dev kcoreaddons-dev kitemviews-dev kconfig-dev
-			 kconfigwidgets-dev kauth-dev kcodecs-dev kwidgetsaddons-dev ki18n-dev kiconthemes-dev
-			 sonnet-dev kwindowsystem-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="ktextwidgets-dev kglobalaccel-dev attica-qt-dev kcoreaddons-dev kitemviews-dev
+			kconfig-dev kconfigwidgets-dev kauth-dev kcodecs-dev kwidgetsaddons-dev ki18n-dev
+			kiconthemes-dev sonnet-dev kwindowsystem-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
 	cmake "$srcdir"/${pkgname}-${pkgver} \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
 		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="71eff51eb697674e7e9554a8912fda0fe2068cd6beea05ab5bd6f44b2b5ff87f07b8443daad6732cb8d268128cb3fdb8614939ae469d1d7cec7948d62c414f53  kxmlgui-5.37.0.tar.xz"
+sha512sums="fc29a88395a9fb1979fa56d6e98e789da2831745358b71c2845e8f180b42ad76f1880fc22d13fb3e830dadcd945dd3225c1aa3fd008b14eaf7201d6f05355177  kxmlgui-5.40.0.tar.xz"
diff --git a/aports/kde/kxmlrpcclient/APKBUILD b/aports/kde/kxmlrpcclient/APKBUILD
index 9599212802ed7eef3ffe9764af93b02af60ddb2d..557d16f3842e5c064b75ca3b746ac3cd2e1e1491 100644
--- a/aports/kde/kxmlrpcclient/APKBUILD
+++ b/aports/kde/kxmlrpcclient/APKBUILD
@@ -1,35 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=kxmlrpcclient
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc="XML-RPC client library for KDE"
 arch="all"
 url="https://projects.kde.org/projects/kde/pim/kxmlrpcclient"
-license="LGPL"
-depends="kio"
-makedepends="extra-cmake-modules python qt5-qttools-dev kio-dev kservice-dev kbookmarks-dev
-			 kwidgetsaddons-dev kcompletion-dev kitemviews-dev kjobwidgets-dev solid-dev kconfig-dev
-			 kxmlgui-dev kconfigwidgets-dev kauth-dev kcodecs-dev ki18n-dev kcoreaddons-dev
-			 doxygen"
+license="BSD-2"
+depends=""
+depends_dev="kio-dev kservice-dev kbookmarks-dev kwidgetsaddons-dev kcompletion-dev kitemviews-dev
+			kjobwidgets-dev solid-dev kconfig-dev kxmlgui-dev kconfigwidgets-dev kauth-dev
+			kcodecs-dev ki18n-dev kcoreaddons-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/$pkgname-$pkgver \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DCMAKE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="$pkgdir" install
 }
-sha512sums="5bf9569a1bad444898c8616171ef2b0c72cebbd43ec758ff8f705b0b16cafbd0993c76f79baa772c57338139ddc89193b250d9f83a4914a69507bbbfae800bd5  kxmlrpcclient-5.37.0.tar.xz"
+sha512sums="e35410b53dc39940b5487bae385167d86f8b2cb82248953aca246cdb8bf21db65749f3179940156e302d43aac03756a2085217cf66716718dfd6765caafc7294  kxmlrpcclient-5.40.0.tar.xz"
diff --git a/aports/kde/libdmtx/APKBUILD b/aports/kde/libdmtx/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..ec07f2ddccaf82acd33a86999dd47be212e496f4
--- /dev/null
+++ b/aports/kde/libdmtx/APKBUILD
@@ -0,0 +1,23 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=libdmtx
+pkgver=0.7.4
+pkgrel=6
+pkgdesc="A software for reading and writing Data Matrix 2D barcodes"
+url="https://libdmtx.sourceforge.net/"
+arch="all"
+license="BSD-2"
+source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc"
+
+build() {
+	./configure --prefix=/usr
+	make
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="$pkgdir" install
+}
+
+sha512sums="13066ecefb3da3746c6f1e872ae7493bb3902fb891ef6d96f65a90ca444107662fcad4a7fae3463ab2f6503f0962d248a5dcd754a6eb0b5c624ae68100b9c056  libdmtx-0.7.4.tar.bz2"
diff --git a/aports/kde/libkscreen/APKBUILD b/aports/kde/libkscreen/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..3b513e01824479f1abd2c1b2750affd229041731
--- /dev/null
+++ b/aports/kde/libkscreen/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=libkscreen
+pkgver=5.11.2
+pkgrel=0
+pkgdesc='KDE screen management software'
+arch="all"
+url='https://www.kde.org/workspaces/plasmadesktop/'
+license="GPL-2.0"
+depends=""
+depends_dev="qt5-qtbase-dev qt5-x11extras-dev kwayland-dev"
+makedepends="$depends_dev extra-cmake-modules"
+source="https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"
+subpackages="$pkgname-dev"
+options="!check" # Fails due to requiring dbus-x11 and it running
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DCMAKE_INSTALL_LIBDIR=lib \
+		-DCMAKE_INSTALL_LIBEXECDIR=lib
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="$pkgdir" install
+}
+sha512sums="29f8488e8b5b40ea5bca00ee3a6a9fb59295be1a964ca389205e669b0b2143823920eeb80e2eba03356d657a50ee2a0ce06a6d6628afdd11f1dfd77d9755b1b5  libkscreen-5.11.2.tar.xz"
diff --git a/aports/kde/libksysguard/APKBUILD b/aports/kde/libksysguard/APKBUILD
index ab9fe812bb28f289ef145c8a511d06f79fa9f1ed..30052f994c8024426d5af275858b32643e1185a3 100644
--- a/aports/kde/libksysguard/APKBUILD
+++ b/aports/kde/libksysguard/APKBUILD
@@ -1,34 +1,37 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=libksysguard
-pkgver=5.10.4
-pkgrel=1
+pkgver=5.11.2
+pkgrel=0
 pkgdesc='Libksysguard'
 arch="all"
 url='https://www.kde.org/workspaces/plasmadesktop/'
-license="LGPL"
-depends="libxres kwindowsystem kconfigwidgets"
-makedepends="extra-cmake-modules kdoctools kwindowsystem-dev python plasma-framework-dev
-			 qt5-qtscript-dev qt5-x11extras-dev kcoreaddons-dev kconfig-dev ki18n-dev
-			 kcompletion-dev kauth-dev kwidgetsaddons-dev kiconthemes-dev kconfigwidgets-dev
-			 kservice-dev kcodecs-dev plasma-framework kpackage-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="kwindowsystem-dev plasma-framework-dev qt5-qtscript-dev qt5-x11extras-dev
+			kcoreaddons-dev kconfig-dev ki18n-dev kcompletion-dev kauth-dev kwidgetsaddons-dev
+			kiconthemes-dev kconfigwidgets-dev kservice-dev kcodecs-dev plasma-framework
+			kpackage-dev"
+makedepends="$depends_dev extra-cmake-modules kdoctools"
 source="https://download.kde.org/stable/plasma/${pkgver}/$pkgname-$pkgver.tar.xz"
 subpackages="$pkgname-dev $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF
+		-DKDE_INSTALL_LIBDIR=lib
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="ca59f1d72deebe9e65500e6d5ee61efb66370999c93dce18497389627c7ba773b4c0a418714345409320abb4660539da2cd372e80ba3466b5380a617ce9f9714  libksysguard-5.10.4.tar.xz"
+sha512sums="256de172b8b6c860b631bb1390b9901fc3a78862a005893b228b035e89044ca09161f9573ad786e6e12801e84f231281f14917c039d396c6919ff33caf668747  libksysguard-5.11.2.tar.xz"
diff --git a/aports/kde/milou/APKBUILD b/aports/kde/milou/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..b5282ea8c61468014473cdab3f755a3d0142d417
--- /dev/null
+++ b/aports/kde/milou/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=milou
+pkgver=5.11.2
+pkgrel=0
+pkgdesc="A dedicated search application built on top of Baloo"
+arch="all"
+url='https://www.kde.org/workspaces/plasmadesktop/'
+license="GPL-2.0"
+depends="krunner"
+depends_dev="qt5-qtbase-dev qt5-qtscript-dev qt5-qtdeclarative-dev kcoreaddons-dev
+		ki18n-dev kdeclarative-dev kservice-dev krunner-dev kpackage-dev plasma-framework-dev
+		kconfig-dev kwindowsystem-dev"
+makedepends="$depends_dev extra-cmake-modules kdoctools-dev"
+source="https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"
+subpackages="$pkgname-lang"
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DKDE_INSTALL_LIBDIR=lib
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="${pkgdir}" install
+}
+sha512sums="e113825a7761e05141d36f67004d9fea67f940b82f0a6c6970d71a69d6904cd66bd65c67bd5e7decd0ed1f9837b08f679a840c6b5cbda96e6782348ba5bc9d18  milou-5.11.2.tar.xz"
diff --git a/aports/kde/phonon-qt5/APKBUILD b/aports/kde/phonon-qt5/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..b1a36a84ae10066c14f6d8f6e54b0bcf989f6fa6
--- /dev/null
+++ b/aports/kde/phonon-qt5/APKBUILD
@@ -0,0 +1,32 @@
+pkgname=phonon-qt5
+pkgver=4.9.1
+pkgrel=0
+pkgdesc="KDE multimedia backend"
+url="http://phonon.kde.org/"
+arch="all"
+license="LGPL"
+depends=
+depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev glib-dev"
+makedepends="$depends_dev extra-cmake-modules cmake automoc4"
+install=""
+subpackages="$pkgname-dev"
+source="http://download.kde.org/stable/phonon/$pkgver/${pkgname/-qt5/}-$pkgver.tar.xz"
+builddir="$srcdir/${pkgname/-qt5/}-$pkgver"
+
+build() {
+	cmake \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_LIBDIR=lib \
+		-DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT=FALSE \
+		-DPHONON_BUILD_PHONON4QT5=ON \
+		-DDBUS_INTERFACES_INSTALL_DIR=/usr/share/dbus-1/interfaces
+	make
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="$pkgdir" install
+}
+
+sha512sums="a1741765071a625d9b9073d9ad1571b91cf5bfce2223bd1b034828d02dc52624587a6ec5352f3702df79f6e4201007596843fbcb9f15c9b489a858200787d728  phonon-4.9.1.tar.xz"
diff --git a/aports/kde/phonon/APKBUILD b/aports/kde/phonon/APKBUILD
deleted file mode 100644
index 982b9f6d9f4c727ced13f71acd5eb84c251c0fe0..0000000000000000000000000000000000000000
--- a/aports/kde/phonon/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-pkgname=phonon
-pkgver=4.9.1
-pkgrel=2
-pkgdesc="KDE multimedia backend"
-url="http://phonon.kde.org/"
-arch="all"
-license="LGPL"
-depends_dev="qt5-qtbase-dev glib-dev"
-makedepends="$depends_dev extra-cmake-modules cmake automoc4"
-source="http://download.kde.org/stable/phonon/${pkgver}/phonon-$pkgver.tar.xz"
-subpackages="$pkgname-dev"
-
-builddir="$srcdir"/$pkgname-$pkgver
-prepare() {
-	local i
-	cd "$builddir"
-	for i in $source; do
-		case $i in
-		*.patch) msg $i; patch -p1 -i "$srcdir"/$i ;;
-		esac
-	done
-	mkdir -p "$builddir"/build
-}
-
-build() {
-	cd "$builddir"/build
-	cmake -DCMAKE_INSTALL_PREFIX=/usr \
-	      -DCMAKE_BUILD_TYPE=Release \
-	      -DCMAKE_INSTALL_LIBDIR=lib \
-	      -DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT=FALSE \
-		  -DPHONON_BUILD_PHONON4QT5=ON \
-	      -DDBUS_INTERFACES_INSTALL_DIR=/usr/share/dbus-1/interfaces \
-	      -Wno-dev \
-	      "$builddir"
-	make
-}
-
-package() {
-	cd "$builddir"/build
-	make DESTDIR="$pkgdir" install
-}
-
-sha512sums="a1741765071a625d9b9073d9ad1571b91cf5bfce2223bd1b034828d02dc52624587a6ec5352f3702df79f6e4201007596843fbcb9f15c9b489a858200787d728  phonon-4.9.1.tar.xz"
diff --git a/aports/kde/plasma-camera/APKBUILD b/aports/kde/plasma-camera/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..df2ff359d914d92b5ec0405e6361a30002f5c0cf
--- /dev/null
+++ b/aports/kde/plasma-camera/APKBUILD
@@ -0,0 +1,37 @@
+pkgname=plasma-camera
+pkgver=0_git20150717
+pkgrel=0
+_commit=0a68cd2b1954cca245f857a7dc72aef577b37fdb
+pkgdesc="Simple camera application for mobile devices"
+arch="all"
+url="https://community.kde.org/Plasma/Mobile"
+license="GPL-2.0"
+depends=""
+makedepends="extra-cmake-modules qt5-qtbase-dev kpackage-dev kcoreaddons-dev"
+source="https://github.com/kde/$pkgname/archive/$_commit.tar.gz"
+builddir="$srcdir/build"
+
+prepare() {
+	mkdir "$builddir"
+}
+
+build() {
+	cd "$builddir"
+	cmake "$srcdir"/$pkgname-$_commit \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DKDE_INSTALL_LIBDIR=lib \
+		-DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
+		-DCMAKE_BUILD_TYPE=Release
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="$pkgdir/" install
+}
+sha512sums="f3a6b362fb2fff50c36bfaf5f939a8a80964d1132524c43e1e5cc12143a5a3ef3f4c04cb19ad18a8039c704f793c326865f02b082eaa9dc48499b0ce69059880  0a68cd2b1954cca245f857a7dc72aef577b37fdb.tar.gz"
diff --git a/aports/kde/plasma-framework/APKBUILD b/aports/kde/plasma-framework/APKBUILD
index 5b335aac2fdfc0c9081089f2470c17efb4ac2594..6b84ccca315eae7cc289181218c8b5a7c7e8d834 100644
--- a/aports/kde/plasma-framework/APKBUILD
+++ b/aports/kde/plasma-framework/APKBUILD
@@ -1,38 +1,40 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=plasma-framework
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Plasma library and runtime components based upon KF5 and Qt5'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtquickcontrols"
-makedepends="extra-cmake-modules qt5-qttools-dev doxygen kdoctools-dev python kactivities-dev
+license="GPL-2.0"
+depends=""
+depends_dev="kdoctools-dev kactivities-dev kwindowsystem-dev ki18n-dev kiconthemes-dev kpackage-dev
 			 kdeclarative-dev knotifications-dev qt5-qtdeclarative-dev qt5-qtsvg-dev kio-dev
 			 kwayland-dev kdbusaddons-dev qt5-x11extras-dev karchive-dev kguiaddons-dev
 			 kservice-dev kbookmarks-dev kcompletion-dev kitemviews-dev kjobwidgets-dev
 			 solid-dev kxmlgui-dev kglobalaccel-dev kconfig-dev kconfigwidgets-dev kauth-dev
-			 kcoreaddons-dev kcodecs-dev kwidgetsaddons-dev kpackage-dev ki18n-dev kiconthemes-dev
-			 kwindowsystem-dev"
+			 kcoreaddons-dev kcodecs-dev kwidgetsaddons-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="35210f11a06b12ae45ec80d11b251883c1fd993c5a7bd8604f115a3d8ca8d13c269a88c37d0336b79baab402d070017286efa1e918c6768dcc7c9e7831a366cc  plasma-framework-5.37.0.tar.xz"
+sha512sums="0718ff2fa45d6e793aec947ea42c7264ec379014a6286606eb7bc2577a64f236621f67f20b5223794c1d9b65989a2ebaa6f77f2c11f48fafd0f992dc03e01189  plasma-framework-5.40.0.tar.xz"
diff --git a/aports/kde/plasma-mobile/APKBUILD b/aports/kde/plasma-mobile/APKBUILD
deleted file mode 100644
index 0bbda50174338ceb5b2dd32320c620e62b28557e..0000000000000000000000000000000000000000
--- a/aports/kde/plasma-mobile/APKBUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-pkgname=plasma-mobile
-pkgver=5845.8005327e
-pkgrel=2
-pkgdesc="Plasma Mobile"
-arch="all"
-url="https://community.kde.org/Plasma/Mobile"
-license="GPL3"
-depends="plasma-workspace kio"
-makedepends="extra-cmake-modules kdoctools-dev plasma-workspace-dev qt5-qtdeclarative-dev
-			 kio-dev kdelibs4support-dev kwindowsystem-dev kwayland-dev karchive-dev sonnet-dev
-			 knotifications-dev kiconthemes-dev plasma-framework-dev kpackage-dev kdeclarative-dev
-			 kactivities-dev kcodecs-dev kcoreaddons-dev solid-dev kconfig-dev kauth-dev
-			 kdbusaddons-dev ki18n-dev kservice-dev kcompletion-dev kbookmarks-dev kwidgetsaddons-dev
-			 kitemviews-dev kjobwidgets-dev kxmlgui-dev kconfigwidgets-dev"
-install="$pkgname.post-install
-		 $pkgname.post-upgrade
-		 $pkgname.post-deinstall"
-source="$pkgname-$pkgver.tar.gz::https://github.com/KDE/$pkgname/archive/master.tar.gz
-		$install"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
-
-build() {
-	cd $srcdir/build
-	cmake $srcdir/$pkgname-master \
-		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DBUILD_TESTING=OFF \
-		-DLIB_INSTALL_DIR=lib \
-		-DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
-		-DCMAKE_BUILD_TYPE=Release
-	make
-}
-
-package() {
-	cd $srcdir/build
-	make DESTDIR="$pkgdir/" install
-}
-sha512sums="dc0ea3172e2bcdec972bf4d7a74e1e4a97de5e6d32adc6f4e36c3de57cf44529ea866ba9ee1c3014f2aaffee1e7b41c229358f6c997bcecf7f9262c95b0fa1b9  plasma-mobile-5845.8005327e.tar.gz
-48ab9fb5279fe9dde44ef92f990eba98adc16180a3832c11e17c091ad719962d3b703fa746bb20048dd18f98e087cdbce930148e5f2b2de085eebe2fd64164a0  plasma-mobile.post-install
-48ab9fb5279fe9dde44ef92f990eba98adc16180a3832c11e17c091ad719962d3b703fa746bb20048dd18f98e087cdbce930148e5f2b2de085eebe2fd64164a0  plasma-mobile.post-upgrade
-48ab9fb5279fe9dde44ef92f990eba98adc16180a3832c11e17c091ad719962d3b703fa746bb20048dd18f98e087cdbce930148e5f2b2de085eebe2fd64164a0  plasma-mobile.post-deinstall"
diff --git a/aports/kde/plasma-mobile/plasma-mobile.install b/aports/kde/plasma-mobile/plasma-mobile.install
deleted file mode 100644
index a7e4261b6e49642812836bc5133408ad4a97ae32..0000000000000000000000000000000000000000
--- a/aports/kde/plasma-mobile/plasma-mobile.install
+++ /dev/null
@@ -1,7 +0,0 @@
-post_upgrade() {
-    post_install
-}
-
-post_remove() {
-    post_install
-}
diff --git a/aports/kde/plasma-mobile/plasma-mobile.post-deinstall b/aports/kde/plasma-mobile/plasma-mobile.post-deinstall
deleted file mode 100644
index b7022803171d454c0c19cb8f2b0f348882f44c4a..0000000000000000000000000000000000000000
--- a/aports/kde/plasma-mobile/plasma-mobile.post-deinstall
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-xdg-icon-resource forceupdate --theme hicolor &> /dev/null
-update-desktop-database -q
diff --git a/aports/kde/plasma-mobile/plasma-mobile.post-install b/aports/kde/plasma-mobile/plasma-mobile.post-install
deleted file mode 100644
index b7022803171d454c0c19cb8f2b0f348882f44c4a..0000000000000000000000000000000000000000
--- a/aports/kde/plasma-mobile/plasma-mobile.post-install
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-xdg-icon-resource forceupdate --theme hicolor &> /dev/null
-update-desktop-database -q
diff --git a/aports/kde/plasma-mobile/plasma-mobile.post-upgrade b/aports/kde/plasma-mobile/plasma-mobile.post-upgrade
deleted file mode 100644
index b7022803171d454c0c19cb8f2b0f348882f44c4a..0000000000000000000000000000000000000000
--- a/aports/kde/plasma-mobile/plasma-mobile.post-upgrade
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-xdg-icon-resource forceupdate --theme hicolor &> /dev/null
-update-desktop-database -q
diff --git a/aports/kde/plasma-phone-components/APKBUILD b/aports/kde/plasma-phone-components/APKBUILD
index 156c94d500c464a82aebc95c9ac392d9a74dfe80..87b6ca721d6b454aadce0e760824029da0c7d3ce 100644
--- a/aports/kde/plasma-phone-components/APKBUILD
+++ b/aports/kde/plasma-phone-components/APKBUILD
@@ -1,12 +1,13 @@
 pkgname=plasma-phone-components
-pkgver=682.b79bb13
-pkgrel=2
+pkgver=0_git20171123
+pkgrel=0
+_commit=15c3acdc61ac6f3ff37b3ed75ec2d73ccea0fdb4
 pkgdesc="Modules providing phone functionality for Plasma"
 arch="all"
 url="https://community.kde.org/Plasma/Mobile"
 license="GPL3"
-depends="plasma-workspace qt5-qtgraphicaleffects"
-makedepends="extra-cmake-modules kpeople-dev telepathy-qt5-dev qt5-qtdeclarative-dev kpeople-dev
+depends="desktop-file-utils qt5-qtgraphicaleffects kactivities qt5-qtquickcontrols2 qt5-qtquickcontrols"
+makedepends="extra-cmake-modules kpeople-dev qt5-qtdeclarative-dev kactivities-dev
 			 plasma-framework-dev kservice-dev kdeclarative-dev ki18n-dev kio-dev kcoreaddons-dev
 			 kconfig-dev kbookmarks-dev kwidgetsaddons-dev kcompletion-dev kitemviews-dev
 			 kjobwidgets-dev solid-dev kxmlgui-dev kconfigwidgets-dev kauth-dev kcodecs-dev
@@ -14,18 +15,13 @@ makedepends="extra-cmake-modules kpeople-dev telepathy-qt5-dev qt5-qtdeclarative
 install="$pkgname.post-install
 		 $pkgname.post-upgrade
 		 $pkgname.post-deinstall"
-source="$pkgname-$pkgver.tar.gz::https://github.com/KDE/$pkgname/archive/master.tar.gz
-		$install"
-
-prepare() {
-	mkdir -p "$srcdir"/build
-}
+source="$pkgname-$pkgver.tar.gz::https://github.com/kde/$pkgname/archive/$_commit.tar.gz
+		unset-telepathy-dep.patch"
+builddir="$srcdir/$pkgname-$_commit"
 
 build() {
-	cd "$srcdir"/build
-	cmake "$srcdir"/$pkgname-master \
+	cmake \
 		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DBUILD_TESTING=OFF \
 		-DLIB_INSTALL_DIR=lib \
 		-DLIBEXEC_INSTALL_DIR=lib \
 		-DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
@@ -33,11 +29,15 @@ build() {
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd "$srcdir"/build
+	cd "$builddir"
 	make DESTDIR="$pkgdir/" install
 }
-sha512sums="d130760c9acc4dfeae1f75d9a8a2ed0b11efe13c8850ecf779b11592023d7af4a9d903e79607b18ba2412984d1bafef2e26e4129d6f1f8cd3ada05ab6081d8cc  plasma-phone-components-682.b79bb13.tar.gz
-43046f7a0526986ca8453929c88bd1f05dfd255ba809d339a395935c7fb65ef562531a1770d3a0d7c07d6f3b9a3bbf9ea7791d12581f64d4b3dd0ccb83c945b5  plasma-phone-components.post-install
-43046f7a0526986ca8453929c88bd1f05dfd255ba809d339a395935c7fb65ef562531a1770d3a0d7c07d6f3b9a3bbf9ea7791d12581f64d4b3dd0ccb83c945b5  plasma-phone-components.post-upgrade
-43046f7a0526986ca8453929c88bd1f05dfd255ba809d339a395935c7fb65ef562531a1770d3a0d7c07d6f3b9a3bbf9ea7791d12581f64d4b3dd0ccb83c945b5  plasma-phone-components.post-deinstall"
+
+sha512sums="8d295cf3727bea6e5f31b09e15516dccd8e31b8c5055ce42400458142be12e5c61a1397ff1cecf7b548b89fb7049b35d3d557265b75c86f82e80ea862f4e6626  plasma-phone-components-0_git20171123.tar.gz
+deba478c29403c04e44a3007e64927fedaaf21e9207b834cd4c8574714d86f2e4f4bce0e6694d74eb151f11c4a8164b9a2e21c864aa823394a026395582dbccf  unset-telepathy-dep.patch"
diff --git a/aports/kde/plasma-phone-components/unset-telepathy-dep.patch b/aports/kde/plasma-phone-components/unset-telepathy-dep.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d748e35dcec9c8eb7fdb6b4771b580bcd9ab22a5
--- /dev/null
+++ b/aports/kde/plasma-phone-components/unset-telepathy-dep.patch
@@ -0,0 +1,19 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 609ccac..a0ba2b3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -27,7 +27,6 @@ find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED Core Gui Widgets Qml Quick Te
+ 
+ find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Plasma Service Declarative I18n KIO People)
+ find_package(KF5 REQUIRED COMPONENTS PlasmaQuick DBusAddons Notifications)
+-find_package(TelepathyQt5 REQUIRED)
+ find_package(KF5Wayland CONFIG)
+ set_package_properties(KF5Wayland PROPERTIES
+                        TYPE REQUIRED
+@@ -55,6 +54,5 @@ add_subdirectory(bin)
+ add_subdirectory(applets)
+ add_subdirectory(containments)
+  add_subdirectory(components)
+-add_subdirectory(dialer)
+ add_subdirectory(sounds)
+ add_subdirectory(touchscreentest)
diff --git a/aports/kde/plasma-settings/APKBUILD b/aports/kde/plasma-settings/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..a0603e82e748d8ace3e4bddb0ecda9f2ea4adb32
--- /dev/null
+++ b/aports/kde/plasma-settings/APKBUILD
@@ -0,0 +1,42 @@
+pkgname=plasma-settings
+pkgver=0_git20171031
+pkgrel=0
+_commit=79d8f48a5ad8be41ebd7183a3c740cff4db7d501
+pkgdesc="Plasma Settings"
+arch="all"
+url="https://community.kde.org/Plasma/Mobile"
+license="GPL-2.0"
+depends="kirigami2 kded"
+makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtdeclarative-dev kwindowsystem-dev kcoreaddons-dev
+	solid-dev kconfig-dev kauth-dev kdbusaddons-dev ki18n-dev kdeclarative-dev
+	kio-dev kdelibs4support-dev karchive-dev kservice-dev kpackage-dev kconfigwidgets-dev
+	kbookmarks-dev kcrash-dev kcompletion-dev kdesignerplugin-dev kdesignerplugin
+	kjobwidgets-dev kdoctools-dev kemoticons-dev kguiaddons-dev kitemmodels-dev
+	kinit-dev knotifications-dev kparts-dev kunitconversion-dev plasma-framework-dev"
+source="https://github.com/kde/$pkgname/archive/$_commit.tar.gz"
+builddir="$srcdir/build"
+
+prepare() {
+	mkdir "$builddir"
+}
+
+build() {
+	cd "$builddir"
+	cmake "$srcdir"/$pkgname-$_commit \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DKDE_INSTALL_LIBDIR=lib \
+		-DKDE_INSTALL_USE_QT_SYS_PATHS=ON \
+		-DCMAKE_BUILD_TYPE=Release
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="$pkgdir/" install
+}
+sha512sums="bb45b3c1f0cc851e68b7fceab2d58d95c0ed75287a61fdaa3605f2248e6d20e0585ed2ee398364cb1c4a15fedcdd764e2e2839702763c53116fdf3e61c2cc0a7  79d8f48a5ad8be41ebd7183a3c740cff4db7d501.tar.gz"
diff --git a/aports/kde/plasma-workspace/APKBUILD b/aports/kde/plasma-workspace/APKBUILD
index d524e3d4d9829db144859525028ee6f1281409fa..b4c1bd313365f677f1d987710a57eacc186871a6 100644
--- a/aports/kde/plasma-workspace/APKBUILD
+++ b/aports/kde/plasma-workspace/APKBUILD
@@ -1,52 +1,50 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=plasma-workspace
-pkgver=5.10.4
+pkgver=5.11.2
 pkgrel=0
 pkgdesc='KDE Plasma Workspace'
 arch="all"
 url='https://www.kde.org/workspaces/plasmadesktop/'
-license="LGPL"
-depends="kjsembed knotifyconfig libxdamage qt5-qttools xrdb xsetroot
-		 kactivitymanagerd xprop kwin kdelibs4support kxmlgui
-		 kdesu iso-codes qt5-qtwayland"
-makedepends="extra-cmake-modules kdoctools-dev gpsd krunner-dev kdesignerplugin kdesignerplugin-dev
-			 kxmlrpcclient-dev kdelibs4support-dev plasma-framework-dev knotifyconfig-dev
-			 libxtst-dev kcmutils-dev kdesu-dev kwallet-dev ksysguard kwin-dev kguiaddons-dev
-			 qt5-qtwayland kjsembed-dev knewstuff-dev libxrender-dev qt5-x11extras-dev
-			 kwallet-dev attica-qt5-dev kitemmodels-dev kscreenlocker-dev libksysguard-dev
-			 xcb-util-image-dev qt5-qtscript-dev karchive-dev kcrash-dev kpackage-dev
-			 kdeclarative-dev kpty-dev kjs-dev ktextwidgets-dev sonnet-dev kauth-dev
-			 kconfigwidgets-dev ki18n-dev kcodecs-dev kwidgetsaddons-dev kservice-dev
-			 kxmlgui-dev kwindowsystem-dev kcoreaddons-dev kconfig-dev kemoticons-dev
-			 kiconthemes-dev kinit-dev knotifications-dev kio-dev kbookmarks-dev kparts-dev
-			 kcompletion-dev kitemviews-dev kjobwidgets-dev solid-dev kunitconversion-dev
-			 kdbusaddons-dev kidletime-dev kglobalaccel-dev phonon-dev kwayland-dev kactivities-dev"
-source="https://download.kde.org/stable/plasma/${pkgver}/${pkgname}-${pkgver}.tar.xz
-		kde.pam"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+license="GPL-2.0"
+depends="kwin iso-codes qt5-qtwayland kactivitymanagerd kinit milou consolekit2"
+depends_dev="krunner-dev kdesignerplugin-dev kdesignerplugin qt5-qtwayland-dev qt5-qtdeclarative-dev
+			kxmlrpcclient-dev kdelibs4support-dev plasma-framework-dev knotifyconfig-dev
+			kcmutils-dev kdesu-dev kwallet-dev ksysguard kwin-dev kguiaddons-dev
+			kjsembed-dev knewstuff-dev qt5-x11extras-dev ktexteditor-dev libksysguard-dev
+			kwallet-dev attica-qt-dev kitemmodels-dev kscreenlocker-dev
+			qt5-qtscript-dev karchive-dev kcrash-dev kpackage-dev kactivities-dev
+			kdeclarative-dev kpty-dev kjs-dev ktextwidgets-dev sonnet-dev kauth-dev
+			kconfigwidgets-dev ki18n-dev kcodecs-dev kwidgetsaddons-dev kservice-dev
+			kxmlgui-dev kwindowsystem-dev kcoreaddons-dev kconfig-dev kemoticons-dev
+			kiconthemes-dev kinit-dev knotifications-dev kio-dev kbookmarks-dev kparts-dev
+			kcompletion-dev kitemviews-dev kjobwidgets-dev solid-dev kunitconversion-dev
+			kdbusaddons-dev kidletime-dev kglobalaccel-dev phonon-qt5-dev kwayland-dev
+			baloo-dev prison-dev"
+makedepends="$depends_dev extra-cmake-modules kdoctools-dev gpsd iso-codes-dev libxtst-dev
+			xcb-util-image-dev libxrender-dev"
+source="https://download.kde.org/stable/plasma/${pkgver}/$pkgname-$pkgver.tar.xz"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc $pkgname-lang"
+options="!check" # Fails due to requiring running X11
 
 build() {
-	cd $srcdir/build
-
-	cmake $srcdir/$pkgname-$pkgver \
+	cmake \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DKDE_INSTALL_LIBEXECDIR=lib \
-		-DBUILD_TESTING=OFF
+		-DKDE_INSTALL_LIBEXECDIR=lib
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="$pkgdir" install
 
-	install -Dm644 "$srcdir"/kde.pam "$pkgdir"/etc/pam.d/kde
-
 	install -Dm644 plasmawayland.desktop "$pkgdir"/usr/share/wayland-sessions/plasmawayland.desktop
 }
-sha512sums="4bfcb18f73c4df0b4342e00b94ca375cc0ec1968e0f30ca8e14366dae5723ba9491fd073fc4408a9ae64c2efa52e72efd7e474e15b0cc4c65e1d42f1fe57170a  plasma-workspace-5.10.4.tar.xz
-39c114084b224131d80a77742865c448b54ac1877426ec5591e58f142bbe77fe85d1717c82fe7c8d09b1aa77f7833664e406fbae04254b4e974f09a32486fa31  kde.pam"
+sha512sums="0538b18e0991e7aad4a3713e5fc0559e75b2929b8d2c2f3a44ea9ed5c236362956f4ec0ce2697ea337ca7cea29af0030d6b5c0dbd01771253b38dde7d81f6c35  plasma-workspace-5.11.2.tar.xz"
diff --git a/aports/kde/plasma-workspace/kde.pam b/aports/kde/plasma-workspace/kde.pam
deleted file mode 100644
index 40e2964f34149a8e7fec78fc78b20d1debf09fbb..0000000000000000000000000000000000000000
--- a/aports/kde/plasma-workspace/kde.pam
+++ /dev/null
@@ -1,10 +0,0 @@
-#%PAM-1.0
-
-auth            include         system-login
-
-account         include         system-login
-
-password        include         system-login
-
-session         include         system-login
-
diff --git a/aports/kde/polkit-kde-agent/APKBUILD b/aports/kde/polkit-kde-agent/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..5d2aa9cd43b6a0a7fe68dd34c5d3d45dd5043244
--- /dev/null
+++ b/aports/kde/polkit-kde-agent/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=polkit-kde-agent
+pkgver=5.11.2
+pkgrel=0
+pkgdesc='Daemon providing a polkit authentication UI for KDE'
+arch="all"
+url='https://www.kde.org/workspaces/plasmadesktop/'
+license="GPL-2.0"
+depends=""
+depends_dev="qt5-qtbase-dev kiconthemes-dev kdbusaddons-dev kcrash-dev polkit-qt-dev
+			ki18n-dev kwindowsystem-dev kwidgetsaddons-dev kcoreaddons-dev"
+makedepends="$depends_dev extra-cmake-modules"
+source="https://download.kde.org/stable/plasma/$pkgver/$pkgname-1-$pkgver.tar.xz"
+subpackages="$pkgname-lang"
+builddir="$srcdir/$pkgname-1-$pkgver"
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DCMAKE_INSTALL_LIBDIR=lib \
+		-DCMAKE_INSTALL_LIBEXECDIR=lib
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="$pkgdir" install
+}
+
+sha512sums="388dd3fb993166e202f00a0a118b7f27a0890dadcbeec30029f35dddcb4eef0be9ef22ebe9e53c33f39dc36559bf64170f745ef1760371bc0604281da27b8ca5  polkit-kde-agent-1-5.11.2.tar.xz"
diff --git a/aports/kde/polkit-qt/APKBUILD b/aports/kde/polkit-qt/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..dd11552fddb2843dbe9a6623f4cab5458ca4bb10
--- /dev/null
+++ b/aports/kde/polkit-qt/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=polkit-qt
+pkgver=0.112.0_git20160416
+pkgrel=0
+_commit="50624e06e88aabd7ae123ad6a4495630f81cd706"
+pkgdesc="A library that allows developers to access PolicyKit API with a nice Qt-style API"
+arch="all"
+url="https://www.kde.org"
+license="LGPL-2.1"
+depends="polkit"
+depends_dev="qt5-qtbase-dev"
+makedepends="$depends_dev cmake automoc4 polkit-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/kde/$pkgname-1/archive/$_commit.tar.gz"
+subpackages="$pkgname-dev $pkgname-dev"
+builddir="$srcdir/$pkgname-1-$_commit"
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DLIB_DESTINATION=/usr/lib
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="${pkgdir}" install
+}
+sha512sums="254e2086492eda93e85a30713681a1cee3eda0889750d854c9cbd920dcc1c0a94933ad230dab3e2bb9bcdbc2f4236844a6dbdf0ad6cd8a90f99e24f0d13639ef  polkit-qt-0.112.0_git20160416.tar.gz"
diff --git a/aports/kde/polkit-qt5/APKBUILD b/aports/kde/polkit-qt5/APKBUILD
deleted file mode 100644
index 9beeecdbc6f4cf657fe0831d2d0c2c340c51df85..0000000000000000000000000000000000000000
--- a/aports/kde/polkit-qt5/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-pkgname="polkit-qt5"
-pkgver=0.112.0
-pkgrel=0
-pkgdesc='A library that allows developers to access PolicyKit API with a nice Qt-style API'
-arch="all"
-url='https://www.kde.org/'
-license="LGPL"
-depends="polkit"
-makedepends="cmake automoc4 polkit-dev qt5-qtbase-dev"
-source="$pkgname-$pkgver.tar.gz"
-subpackages="$pkgname-dev $pkgname-dev"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
-
-build() {
-	cd $srcdir/build
-
-	cmake "$srcdir"/$pkgname \
-		-DCMAKE_BUILD_TYPE=Release \
-		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DLIB_DESTINATION=/usr/lib
-	make
-}
-package() {
-	cd $srcdir/build
-	make DESTDIR="${pkgdir}" install
-}
-sha512sums="09c3b4788decfde30f19f650997473b5455e70d5d20abc48380c72a7134a5e214ac9aa9083d2ae92b5741fd07feae6a49d933bfb997a9cfc59eb9390397b2c9b  polkit-qt5-0.112.0.tar.gz"
diff --git a/aports/kde/polkit-qt5/polkit-qt5-0.112.0.tar.gz b/aports/kde/polkit-qt5/polkit-qt5-0.112.0.tar.gz
deleted file mode 100644
index 12f4bf1959e03a522a5ccf7cb17e5b47425fac6d..0000000000000000000000000000000000000000
Binary files a/aports/kde/polkit-qt5/polkit-qt5-0.112.0.tar.gz and /dev/null differ
diff --git a/aports/kde/poppler-qt5/APKBUILD b/aports/kde/poppler-qt5/APKBUILD
deleted file mode 100644
index b86fecae2c4ea1fcf0721d0368ca84a0d3603ea6..0000000000000000000000000000000000000000
--- a/aports/kde/poppler-qt5/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-pkgname=poppler-qt5
-pkgdesc="Poppler Qt5 bindings"
-pkgver=0.57.0
-pkgrel=2
-arch="all"
-license="GPL"
-depends="poppler"
-makedepends="libjpeg-turbo-dev cairo-dev libxml2-dev
-			fontconfig-dev lcms2-dev gobject-introspection-dev
-			openjpeg-dev qt5-qtbase-dev poppler-dev cairo-dev glib-dev"
-url="https://poppler.freedesktop.org/"
-source="https://poppler.freedesktop.org/poppler-${pkgver}.tar.xz"
-
-build() {
-	cd "$srcdir"/${pkgname/-qt5/}-${pkgver}
-	./configure \
-		--build=$CBUILD \
-		--host=$CHOST \
-		--prefix=/usr \
-		--sysconfdir=/etc \
-		--localstatedir=/var \
-		--disable-static \
-		--enable-cairo-output \
-		--enable-xpdf-headers \
-		--enable-libjpeg \
-		--enable-zlib \
-		--enable-poppler-glib \
-		--disable-poppler-qt4 \
-		--enable-poppler-qt5
-
-	sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' libtool
-
-	make
-}
-
-package() {
-	cd "$srcdir/${pkgname/-qt5/}-${pkgver}"
-	make -C poppler DESTDIR="${pkgdir}" install-libLTLIBRARIES
-	make -C qt5 DESTDIR="${pkgdir}" install
-	install -m755 -d "${pkgdir}/usr/lib/pkgconfig"
-	install -m644 poppler-qt5.pc "${pkgdir}/usr/lib/pkgconfig/"
-	rm -f "${pkgdir}"/usr/lib/libpoppler.*
-}
-sha512sums="197a0bf51e7fd607db83144d771904e48f266ab9e1252c688f9e7700a5bdd239670cf0363e9d77137bafa9c08fb6ddb9d066cc78a74dac7dfd717662b25cac5f  poppler-0.57.0.tar.xz"
diff --git a/aports/kde/powerdevil/APKBUILD b/aports/kde/powerdevil/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..185ce80467aba4f2c0e6ef856cfbf47dcaec9aad
--- /dev/null
+++ b/aports/kde/powerdevil/APKBUILD
@@ -0,0 +1,43 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=powerdevil
+pkgver=5.11.2
+pkgrel=0
+pkgdesc='Manages the power consumption settings of a Plasma Shell'
+arch="all"
+url='https://www.kde.org/workspaces/plasmadesktop/'
+license="GPL-2.0"
+depends="plasma-workspace"
+depends_dev="qt5-qtbase-dev qt5-x11extras-dev kdesignerplugin-dev kdesignerplugin
+			kactivities-dev kauth-dev kidletime-dev kconfig-dev kdbusaddons-dev
+			solid-dev ki18n-dev kglobalaccel-dev kio-dev knotifyconfig-dev kwayland-dev
+			kcoreaddons-dev kdelibs4support-dev karchive-dev kconfigwidgets-dev
+			kcodecs-dev kwidgetsaddons-dev kcrash-dev kservice-dev kbookmarks-dev
+			kcompletion-dev kitemviews-dev kjobwidgets-dev kxmlgui-dev kdoctools-dev
+			kemoticons-dev kguiaddons-dev kiconthemes-dev kitemmodels-dev kinit-dev
+			knotifications-dev kparts-dev ktextwidgets-dev sonnet-dev kunitconversion-dev
+			kwindowsystem-dev libkscreen-dev plasma-workspace-dev"
+makedepends="$depends_dev extra-cmake-modules eudev-dev"
+source="https://download.kde.org/stable/plasma/$pkgver/$pkgname-$pkgver.tar.xz"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc $pkgname-lang"
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DCMAKE_INSTALL_LIBDIR=lib \
+		-DCMAKE_INSTALL_LIBEXECDIR=lib
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="$pkgdir" install
+}
+
+sha512sums="1253d87d8e5c88a58f6bd0244bc230d4310fcb7cdbc01b6cec2818227d0f9b0fbac9277d02f90a79bf5a36280ba2637ed44b6212a3a3913093941d03c6df4d4c  powerdevil-5.11.2.tar.xz"
diff --git a/aports/kde/prison/APKBUILD b/aports/kde/prison/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..69fb05a61822409730154866cdc1bd807d03826d
--- /dev/null
+++ b/aports/kde/prison/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=prison
+pkgver=5.40.0
+pkgrel=1
+pkgdesc="A barcode API to produce QRCode barcodes and DataMatrix barcodes"
+arch="all"
+url='https://community.kde.org/Frameworks'
+license="MIT"
+depends=""
+depends_dev="qt5-qtbase-dev"
+makedepends="$depends_dev extra-cmake-modules doxygen qt5-qttools-dev libqrencode-dev libdmtx-dev"
+source="https://download.kde.org/stable/frameworks/${pkgver%.*}/$pkgname-$pkgver.tar.xz"
+subpackages="$pkgname-dev $pkgname-doc"
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DKDE_INSTALL_LIBDIR=lib \
+		-DBUILD_QCH=ON
+	make
+}
+
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="$pkgdir" install
+}
+sha512sums="a4cbc5c8200b280c802f1fe2314d464b68ada11a1e3ad45d4a851a324e691c6b24bace569118405c10cbc97e01cd7f233b19da31887e86b54d1b260d73fc0e48  prison-5.40.0.tar.xz"
diff --git a/aports/kde/qmltermwidget/APKBUILD b/aports/kde/qmltermwidget/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..0665cd1119bba7d1efbd87135efa9778c0bd28f5
--- /dev/null
+++ b/aports/kde/qmltermwidget/APKBUILD
@@ -0,0 +1,29 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=qmltermwidget
+pkgver=0.1.0_git20170914
+pkgrel=0
+_commit=fb525b7185acf3b91ba58051c337ae33294a7da7
+arch="all"
+url='https://github.com/notmart/qmltermwidget'
+license="GPL-2.0"
+pkgdesc='QML port of qtermwidget'
+depends=""
+makedepends="extra-cmake-modules qt5-qtbase-dev qt5-qtdeclarative-dev qt5-qtquickcontrols2-dev"
+source="https://github.com/notmart/$pkgname/archive/$_commit.tar.gz"
+options="!check"
+builddir="$srcdir/$pkgname-$_commit"
+
+build() {
+	cmake \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DBUILD_QCH=ON
+	make
+}
+
+package() {
+	cd "$builddir"
+	make DESTDIR="${pkgdir}" install
+}
+sha512sums="08c0c344cd1d6354cd51fd272a400a28e0b447f12a588d534ec85ea25db74cff585570bbc8cacdfb460bec7c8eba0649f7813a3d8edc9cb6d69e3307aaefafce  fb525b7185acf3b91ba58051c337ae33294a7da7.tar.gz"
diff --git a/aports/kde/solid/APKBUILD b/aports/kde/solid/APKBUILD
index c03cb1a49e921d58ef7095346ab1adc0abd9933e..b240bcf08e3711f1b567759ebe884762fdd5229f 100644
--- a/aports/kde/solid/APKBUILD
+++ b/aports/kde/solid/APKBUILD
@@ -1,32 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=solid
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Hardware integration and detection'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtdeclarative upower eudev"
-makedepends="extra-cmake-modules qt5-qttools-dev doxygen eudev-dev flex-dev bison"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtdeclarative-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen eudev-dev flex-dev bison upower-dev
+			udisks2-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-
-prepare() {
-	mkdir -p "$srcdir"/build
-}
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc $pkgname-lang"
 
 build() {
-	cd "$srcdir"/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd "$srcdir"/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="11cebe83b19f488804fc2608c1dd5c8a3da8ba63f10ccfe445f3c9ca19de2252857791c520f55d08edc87dfc9459d340ea81fc598b10fea2b1080cb03a24d18d  solid-5.37.0.tar.xz"
+sha512sums="83a63f08569b385ef21e3401aabe61c04cc7a727e0788b126a9c23f659fb24186f8810223b8b64da605033f46775b5b3ce6e8b2f1b2886b2b533afbcf2691bb9  solid-5.40.0.tar.xz"
diff --git a/aports/kde/solid/D6596.patch b/aports/kde/solid/D6596.patch
deleted file mode 100644
index b7a38ea2bf7e5c526593f44faafb3dae97d4cb0d..0000000000000000000000000000000000000000
--- a/aports/kde/solid/D6596.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/src/solid/devices/backends/udisks2/udisksblock.h b/src/solid/devices/backends/udisks2/udisksblock.h
---- a/src/solid/devices/backends/udisks2/udisksblock.h
-+++ b/src/solid/devices/backends/udisks2/udisksblock.h
-@@ -24,9 +24,7 @@
- #include <solid/devices/ifaces/block.h>
- #include "udisksdeviceinterface.h"
- 
--#ifdef Q_OS_FREEBSD
--#include <sys/types.h>
--#endif
-+#include <sys/types.h> // dev_t
- 
- namespace Solid
- {
-
diff --git a/aports/kde/sonnet/APKBUILD b/aports/kde/sonnet/APKBUILD
index 7e8f8afea0dd2699c90f9ee8750e4e66398069c1..7c9a026a5068b7e825f670f8db2387b9674be698 100644
--- a/aports/kde/sonnet/APKBUILD
+++ b/aports/kde/sonnet/APKBUILD
@@ -1,32 +1,34 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=sonnet
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Spelling framework for Qt5'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtbase"
-makedepends="extra-cmake-modules qt5-qttools-dev doxygen"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtbase"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen hunspell-dev"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
-sha512sums="bd22671f2c9edff553df80db050393dfb88b14dd6bc869957bfbe70dd30c9ee17e90ac9d88d45e700ffc014708b7703ef8cfacbff6bcdc51ecffa7e45e83aa3d  sonnet-5.37.0.tar.xz"
+sha512sums="bf304b06607a1c98467621018445638e6e7fe96198c296452b853d5f593da406b247bc812616b354d114d83a5156df7794fa041e0a41ebd6f3d9e322a7a47d0e  sonnet-5.40.0.tar.xz"
diff --git a/aports/kde/syntax-highlighting/APKBUILD b/aports/kde/syntax-highlighting/APKBUILD
index 43d0912415982f7c90023c0bd8a6d5d11d233958..06f450cd766d2f66b62270942716ad89853af16a 100644
--- a/aports/kde/syntax-highlighting/APKBUILD
+++ b/aports/kde/syntax-highlighting/APKBUILD
@@ -1,41 +1,37 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=syntax-highlighting
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='Syntax highlighting engine for structured text and code'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="GPL2"
-depends="qt5-qtbase"
-makedepends="extra-cmake-modules qt5-qttools-dev doxygen"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtbase-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz
-        apkbuild-syntax-highlight.patch
-		remove-broken-regex.patch"
+        apkbuild-syntax-highlight.patch"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
 
-prepare() {
-	mkdir -p $srcdir/build
-
-	# Add APKBUILD syntax highlighting
-	cd "$srcdir"/$pkgname-$pkgver
-	patch -p1 -i ../apkbuild-syntax-highlight.patch
-	patch -p1 -i ../remove-broken-regex.patch
-}
 
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/$pkgname-$pkgver \
+	cmake \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="$pkgdir" install
 }
-sha512sums="d49f62934283c07c1b6e8fad11b9fa469b21bb55f35ddbc6c28ab29bd79b7cba67a93d0b46abb8b3d86ee7ba7a90ea50a98553aac7bdfe396bc2b010611c24c2  syntax-highlighting-5.37.0.tar.xz
-0722d3c44c52f70eae5636c7f912e8e53491a728c96968705c14621fb38749583d855ffdf07ea84cecfcfce0e6c295fe500a06190f7bc82082d67986d879f66e  apkbuild-syntax-highlight.patch
-8a94d1c88736d8b3783588637e255a6ec81064fd9d6716eb5ace63161e29b986d58829f83c08816c652aa0a34974ad83f3a91c6cadb7974c6e19e160734e8052  remove-broken-regex.patch"
+sha512sums="4e7868ae64e18b7734d7d5b778187951ae01fdd2d2dfaa1a78f8d9c0b9d5c435e30f4bc333dac3ed18f864f3458991144e870bd6a2c5b17c8ee49b61a82c0ccb  syntax-highlighting-5.40.0.tar.xz
+0722d3c44c52f70eae5636c7f912e8e53491a728c96968705c14621fb38749583d855ffdf07ea84cecfcfce0e6c295fe500a06190f7bc82082d67986d879f66e  apkbuild-syntax-highlight.patch"
diff --git a/aports/kde/syntax-highlighting/remove-broken-regex.patch b/aports/kde/syntax-highlighting/remove-broken-regex.patch
deleted file mode 100644
index 2265e105438d5556299be7abef4cc7bfcefaa8f3..0000000000000000000000000000000000000000
--- a/aports/kde/syntax-highlighting/remove-broken-regex.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git a/data/syntax/rest.xml b/data/syntax/rest.xml
-index 1363965..f0f65a6 100644
---- a/data/syntax/rest.xml
-+++ b/data/syntax/rest.xml
-@@ -24,11 +24,9 @@
-         <RegExpr attribute="Citation" context="#stay" String="^\s*\.\. \[[&SimpleReferenceNameChars;]+\]\s" minimal="true" column="0"/>
-         <RegExpr attribute="HyperlinkTarget" context="#stay" String="^\s*(\.\. (__:|_[&SimpleReferenceNameChars; ]+:(\s|$))|__ )" minimal="true" column="0"/>
-         <RegExpr attribute="Code" String="^\s*\.\. code-block::" context="CodeBlock" column="0"/>
--        <RegExpr attribute="Directive" context="#stay" String="^\s*\.\. [\w-_\.]+::(\s|$)" minimal="true" column="0"/>
-         <RegExpr attribute="Code" String="::$" context="CodeBlock" />
-         <RegExpr attribute="SubstitutionDefinition" context="#stay" String="^\s*\.\. \|[&SimpleReferenceNameChars; ]+\|\s+[&SimpleReferenceNameChars;]+::\s" minimal="true" column="0"/>
-         <RegExpr attribute="Field" String=":(?=([^:]*\\:)*[^:]*:(\s|$))" context="Field" firstNonSpace="true"/>
--        <RegExpr attribute="Comment" context="Comment" String="^(\s*)\.\.\s(?![\w-_\.]+::(\s|$))" column="0"/>
-       </context>
- 
-       <context name="InlineMarkup" attribute="Normal" lineEndContext="#stay">
-@@ -38,8 +36,6 @@
-         <RegExpr attribute="FootnoteReference" context="#stay" String="&inlinestart;\[[&SimpleReferenceNameChars;]+\]_&inlineend;" minimal="true"/>
-         <RegExpr attribute="HyperlinkReference" context="#stay" String="&inlinestart;`[^\s].*`_&inlineend;" minimal="true"/>
-         <RegExpr attribute="HyperlinkReference" context="#stay" String="&inlinestart;\w+_&inlineend;" minimal="true"/>
--        <RegExpr attribute="InterpretedText" context="TrailingRole" String="&inlinestart;`[^\s].*`(?=:[\w-_\.\+]+:)" minimal="true"/>
--        <RegExpr attribute="Role" String=":[\w-_\.\+]+:(?=`)" context="Role"/>
-       </context>
- 
-       <context name="Field" attribute="Field" lineEndContext="#stay">
-@@ -55,9 +51,6 @@
-       <context name="Role" attribute="Role" lineEndContext="#pop">
-         <DetectChar attribute="InterpretedText" char="`" context="#pop!InterpretedText" />
-       </context>
--      <context name="TrailingRole" attribute="Role" lineEndContext="#pop">
--        <RegExpr attribute="Role" String=":[\w-_\.\+]+:" context="#pop"/>
--      </context>
-       <context name="Comment" attribute="Comment" lineEndContext="#stay" dynamic="true">
-         <RegExpr attribute="Code" String="^%1   " context="#stay" column="0" dynamic="true"/>
-         <RegExpr attribute="Normal" String="^(.|$)" lookAhead="true" column="0" context="#pop"/>
diff --git a/aports/kde/telepathy-farstream/APKBUILD b/aports/kde/telepathy-farstream/APKBUILD
deleted file mode 100644
index a3f9a47c93164eced7361c2ce19219fffa57b3fe..0000000000000000000000000000000000000000
--- a/aports/kde/telepathy-farstream/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-pkgname=telepathy-farstream
-pkgver=0.6.2
-pkgrel=4
-pkgdesc="Telepathy GLib-based client library that uses Farstream to handle Call channels"
-arch="all"
-url="https://telepathy.freedesktop.org/components/telepathy-farstream/"
-license="LGPL2.1"
-depends="telepathy-glib farstream"
-makedepends="dbus-glib-dev file python2 telepathy-glib-dev farstream-dev farstream gtk-doc
-			 autoconf automake libtool gobject-introspection-dev"
-source="https://github.com/TelepathyIM/$pkgname/archive/$pkgname-$pkgver.tar.gz"
-subpackages="$pkgname-dev $pkgname-doc"
-
-
-prepare() {
-	cd "$srcdir"/$pkgname-$pkgname-$pkgver # why would somebody use this naming scheme?!
-	NOCONFIGURE=1 ./autogen.sh
-}
-
-build() {
-	cd "$srcdir"/$pkgname-$pkgname-$pkgver
-	NOCONFIGURE=1 ./autogen.sh
-	./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib/telepathy \
-		--disable-static --enable-gtk-doc
-	sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
-	make
-}
-
-package() {
-	cd "$srcdir/$pkgname-$pkgname-$pkgver"
-	make DESTDIR="$pkgdir" install
-}
-sha512sums="85554e4443cff96b0c202a3c8ff88dbe45c562bfc2b49c5504efefc2dd0aa7fa3603d06faeaa3c45813f8c555ed5e388a7d4fe24949ae7ee96a5d68b1ff97495  telepathy-farstream-0.6.2.tar.gz"
diff --git a/aports/kde/telepathy-glib/APKBUILD b/aports/kde/telepathy-glib/APKBUILD
deleted file mode 100644
index d55222af4248d71a361f61ccb187856f643f3221..0000000000000000000000000000000000000000
--- a/aports/kde/telepathy-glib/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-pkgname=telepathy-glib
-pkgver=0.24.1
-pkgrel=1
-pkgdesc="GLib bindings for the Telepathy D-Bus protocol"
-arch="all"
-url="http://telepathy.freedesktop.org"
-license="LGPL2.1"
-depends="dbus-glib"
-makedepends="libxslt python2 diffutils dbus-glib-dev"
-source="https://telepathy.freedesktop.org/releases/$pkgname/$pkgname-$pkgver.tar.gz"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-
-build() {
-	cd $srcdir/$pkgname-$pkgver
-	PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
-		--libexecdir=/usr/lib/telepathy \
-		--enable-static=no
-	make
-}
-
-package() {
-	cd $srcdir/$pkgname-$pkgver
-	make DESTDIR="$pkgdir" install
-}
-sha512sums="2fed94f76a19d6069f671cdd45d2fd8a4b4ad27c4601aff66041ca205456be397c76a86f92cc9bf20fa4eb6d4c15a67ed8196644c143c37e945f382229a63335  telepathy-glib-0.24.1.tar.gz"
diff --git a/aports/kde/telepathy-qt5/APKBUILD b/aports/kde/telepathy-qt5/APKBUILD
deleted file mode 100644
index a2e9474e04a5973d709a6099b09526741de05bb8..0000000000000000000000000000000000000000
--- a/aports/kde/telepathy-qt5/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-pkgname=telepathy-qt5
-pkgver=0.9.7
-pkgrel=1
-arch="all"
-url="http://telepathy.freedesktop.org/wiki/"
-license="LGPL"
-pkgdesc="A library for Qt-based Telepathy clients"
-depends="qt5-qtbase telepathy-farstream"
-makedepends="cmake doxygen python2 qt5-qttools-dev telepathy-farstream-dev dbus-glib-dev"
-source="https://telepathy.freedesktop.org/releases/${pkgname/qt5/qt}/${pkgname/qt5/qt}-$pkgver.tar.gz"
-subpackages="$pkgname-dev"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
-
-build() {
-	cd $srcdir/build
-	cmake $srcdir/${pkgname/qt5/qt}-$pkgver \
-		-DCMAKE_BUILD_TYPE=Release \
-		-DCMAKE_INSTALL_PREFIX=/usr \
-		-DPYTHON_EXECUTABLE=/usr/bin/python2 \
-		-DDESIRED_QT_VERSION=5 \
-		-DENABLE_EXAMPLES=OFF \
-		-DENABLE_TESTS=OFF
-	make
-}
-
-package() {
-	cd $srcdir/build
-	make DESTDIR="$pkgdir" install
-}
-
-sha512sums="081daecb2509ea690079014bcc88eacbf2b3e4f4ac42aaf1b0cb264c01b801bc499a041482571d383f258cb3d3e2c6ffa5682fbe417fe807fcc25a06d2ead877  telepathy-qt-0.9.7.tar.gz"
diff --git a/aports/kde/threadweaver/APKBUILD b/aports/kde/threadweaver/APKBUILD
index fce71764434fc9224a78e75ac8c01995bad770a8..042228cb6689a2158b906d9fb9b8bd50f96397f2 100644
--- a/aports/kde/threadweaver/APKBUILD
+++ b/aports/kde/threadweaver/APKBUILD
@@ -1,33 +1,35 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=threadweaver
-pkgver=5.37.0
-pkgrel=1
+pkgver=5.40.0
+pkgrel=0
 pkgdesc='High-level multithreading framework'
 arch="all"
 url='https://community.kde.org/Frameworks'
-license="LGPL"
-depends="qt5-qtbase"
-makedepends="extra-cmake-modules mesa-dev qt5-qttools-dev doxygen qt5-qtdeclarative-dev"
+license="LGPL-2.1"
+depends=""
+depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev"
+makedepends="$depends_dev extra-cmake-modules qt5-qttools-dev doxygen"
 source="https://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz"
 subpackages="$pkgname-dev $pkgname-doc"
 
-prepare() {
-	mkdir -p $srcdir/build
-}
-
 build() {
-	cd $srcdir/build
-	cmake "$srcdir"/${pkgname}-${pkgver} \
+	cmake \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_INSTALL_PREFIX=/usr \
 		-DKDE_INSTALL_LIBDIR=lib \
-		-DBUILD_TESTING=OFF \
 		-DBUILD_QCH=ON
 	make
 }
 
+check() {
+	cd "$builddir"
+	CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
 package() {
-	cd $srcdir/build
+	cd "$builddir"
 	make DESTDIR="${pkgdir}" install
 }
 
-sha512sums="8679a65b59a787884c3aed01d7fb06dbb9e91a6f60ff4db952e1cba50022db430f3bb3f3411d7ecdf0f47b469be0d2d32b4d4a7879a976c96ac4c0efe688efd7  threadweaver-5.37.0.tar.xz"
+sha512sums="7ea45517957a0970370a57f3f2e50fb39b8e4723546d5f0784db14df310ef5ad1820e682da36e109c13a1215992235a9bb878ac2b592f03e31a516976404765b  threadweaver-5.40.0.tar.xz"
diff --git a/aports/kde/dbus-nox11/APKBUILD b/aports/main/dbus-nox11/APKBUILD
similarity index 100%
rename from aports/kde/dbus-nox11/APKBUILD
rename to aports/main/dbus-nox11/APKBUILD
diff --git a/aports/kde/dbus-nox11/dbus-nox11.post-install b/aports/main/dbus-nox11/dbus-nox11.post-install
similarity index 100%
rename from aports/kde/dbus-nox11/dbus-nox11.post-install
rename to aports/main/dbus-nox11/dbus-nox11.post-install
diff --git a/aports/kde/dbus-nox11/dbus-nox11.pre-install b/aports/main/dbus-nox11/dbus-nox11.pre-install
similarity index 100%
rename from aports/kde/dbus-nox11/dbus-nox11.pre-install
rename to aports/main/dbus-nox11/dbus-nox11.pre-install
diff --git a/aports/kde/dbus-nox11/dbus-nox11.trigger b/aports/main/dbus-nox11/dbus-nox11.trigger
similarity index 100%
rename from aports/kde/dbus-nox11/dbus-nox11.trigger
rename to aports/main/dbus-nox11/dbus-nox11.trigger
diff --git a/aports/kde/dbus-nox11/dbus.initd b/aports/main/dbus-nox11/dbus.initd
similarity index 100%
rename from aports/kde/dbus-nox11/dbus.initd
rename to aports/main/dbus-nox11/dbus.initd
diff --git a/aports/kde/dbus-nox11/fix-int64-print.patch b/aports/main/dbus-nox11/fix-int64-print.patch
similarity index 100%
rename from aports/kde/dbus-nox11/fix-int64-print.patch
rename to aports/main/dbus-nox11/fix-int64-print.patch
diff --git a/aports/main/postmarketos-ui-plasma-mobile/APKBUILD b/aports/main/postmarketos-ui-plasma-mobile/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..10c4f6254ef3435244d85c67ad0ed971d0cf5ca7
--- /dev/null
+++ b/aports/main/postmarketos-ui-plasma-mobile/APKBUILD
@@ -0,0 +1,21 @@
+pkgname=postmarketos-ui-plasma-mobile
+pkgver=1
+pkgrel=3
+pkgdesc="(Wayland) Mobile variant of KDE Plasma, optimized for touchscreen (COMPILING TAKES FOREVER)"
+url="https://wiki.postmarketos.org/wiki/Plasma_Mobile"
+arch="noarch"
+license="GPL3+"
+depends="plasma-phone-components dbus-nox11 qmltermwidget plasma-settings
+	breeze-icons postmarketos-demos kscreen qt5-qtvirtualkeyboard
+	plasma-camera elisa pulseaudio pulseaudio-utils"
+makedepends=""
+install="$pkgname.post-install"
+subpackages=""
+source="start_plasma.sh"
+options="!check"
+
+package() {
+	install -D -m644 "$srcdir"/start_plasma.sh \
+		"$pkgdir"/etc/profile.d/start_plasma.sh
+}
+sha512sums="c8fc4dbd6e237a17d8b3d5bcad989d2ece0360c9cbbe58776a24f3100cb7981780db1cb25da8ef3733bc4e0c1bb5a0b610b90b74641709d0f404bc26d6faafa0  start_plasma.sh"
diff --git a/aports/main/postmarketos-ui-plasma-mobile/postmarketos-ui-plasma-mobile.post-install b/aports/main/postmarketos-ui-plasma-mobile/postmarketos-ui-plasma-mobile.post-install
new file mode 100644
index 0000000000000000000000000000000000000000..dff2ea9847b9300444c75956df702e398bbafe20
--- /dev/null
+++ b/aports/main/postmarketos-ui-plasma-mobile/postmarketos-ui-plasma-mobile.post-install
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+. /etc/deviceinfo
+
+# Autologin on tty1, let busybox autoconfigure 2-6
+autologin="$(getent passwd 1000 | cut -d ":" -f 1)"
+for i in 1 2 3 4 5 6; do
+	old="^tty$i::respawn:/sbin/getty 38400 tty$i"
+	new="# tty$i::respawn:/sbin/getty 38400 tty$i"
+	[ "$i" == "1" ] && new="tty1::respawn:/bin/login -f $autologin"
+	sed -i -e "s.$old.$new.g" /etc/inittab
+done
diff --git a/aports/main/postmarketos-ui-plasma-mobile/start_plasma.sh b/aports/main/postmarketos-ui-plasma-mobile/start_plasma.sh
new file mode 100644
index 0000000000000000000000000000000000000000..d77d7ea97745465f2c74c5ee3d04632caeea62a7
--- /dev/null
+++ b/aports/main/postmarketos-ui-plasma-mobile/start_plasma.sh
@@ -0,0 +1,18 @@
+if test -z "${XDG_RUNTIME_DIR}"; then
+	export XDG_RUNTIME_DIR=/tmp/$(id -u)-runtime-dir
+	if ! test -d "${XDG_RUNTIME_DIR}"; then
+		mkdir "${XDG_RUNTIME_DIR}"
+		chmod 0700 "${XDG_RUNTIME_DIR}"
+	fi
+
+	if [ $(tty) = "/dev/tty1" ]; then
+		udevadm trigger
+		udevadm settle
+	
+		console-kit-daemon
+		dbus-launch
+
+		sleep 2
+		ck-launch-session kwin_wayland --drm --xwayland -- plasma-phone 2>&1 | logger -t "$(whoami):plasma-mobile"
+	fi
+fi
diff --git a/aports/main/qt5-qtquickcontrols2/APKBUILD b/aports/main/qt5-qtquickcontrols2/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..9bbaa47d8ede4b73fe122a25090ce2391b09f76b
--- /dev/null
+++ b/aports/main/qt5-qtquickcontrols2/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=qt5-qtquickcontrols2
+pkgver=5.9.2
+pkgrel=0
+arch="all"
+url='http://qt-project.org/'
+license="GPL-3.0 GPL-2.0 LGPL-3.0"
+pkgdesc='Next generation user interface controls based on Qt Quick'
+depends=""
+depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev"
+makedepends="$depends_dev"
+source="http://download.qt.io/official_releases/qt/${pkgver%.*}/$pkgver/submodules/qtquickcontrols2-opensource-src-$pkgver.tar.xz"
+subpackages="$pkgname-dev $pkgname-doc"
+builddir="$srcdir/qtquickcontrols2-opensource-src-$pkgver"
+options="!check"
+
+build() {
+	qmake-qt5
+	make
+}
+
+package() {
+	cd "$builddir"
+	make INSTALL_ROOT="$pkgdir" install
+
+	install -d "$pkgdir"/usr/share/licenses
+	ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/$pkgname
+}
+sha512sums="e283320aabbaa153067c909804cb34bbcbf6fcb7246bb214957b6092ceb0f01c4fae2efd9d7a6cb011274deafff4aaf0a45dbda06a3fdce1154622e48740048c  qtquickcontrols2-opensource-src-5.9.2.tar.xz"
diff --git a/aports/main/qt5-qtvirtualkeyboard/0001-include-sys-time.h-for-timeval.patch b/aports/main/qt5-qtvirtualkeyboard/0001-include-sys-time.h-for-timeval.patch
new file mode 100644
index 0000000000000000000000000000000000000000..03dc611762d972a585083fb0c26f6de9a5af05e0
--- /dev/null
+++ b/aports/main/qt5-qtvirtualkeyboard/0001-include-sys-time.h-for-timeval.patch
@@ -0,0 +1,12 @@
+diff --git a/src/virtualkeyboard/3rdparty/pinyin/include/userdict.h b/src/virtualkeyboard/3rdparty/pinyin/include/userdict.h
+index 1b9673f..924be7b 100644
+--- a/src/virtualkeyboard/3rdparty/pinyin/include/userdict.h
++++ b/src/virtualkeyboard/3rdparty/pinyin/include/userdict.h
+@@ -24,6 +24,7 @@
+ // Debug performance for operations
+ // #define ___DEBUG_PERF___
+ 
++#include <sys/time.h>
+ #ifdef _WIN32
+ #include <winsock.h> // timeval
+ #else
diff --git a/aports/main/qt5-qtvirtualkeyboard/APKBUILD b/aports/main/qt5-qtvirtualkeyboard/APKBUILD
new file mode 100644
index 0000000000000000000000000000000000000000..5b3f202f3236ed98c4986c842c94b7f116cb50cb
--- /dev/null
+++ b/aports/main/qt5-qtvirtualkeyboard/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=qt5-qtvirtualkeyboard
+pkgver=5.9.2
+pkgrel=0
+arch="all"
+url='http://qt-project.org/'
+license="GPL-3.0 GPL-2.0 LGPL-3.0"
+pkgdesc='Virtual keyboard framework'
+depends=""
+depends_dev="qt5-qtbase-dev qt5-qtdeclarative-dev qt5-qtsvg-dev"
+makedepends="$depends_dev hunspell-dev"
+source="http://download.qt.io/official_releases/qt/${pkgver%.*}/$pkgver/submodules/${pkgname/qt5-/}-opensource-src-$pkgver.tar.xz
+	0001-include-sys-time.h-for-timeval.patch"
+subpackages="$pkgname-dev"
+builddir="$srcdir/${pkgname/qt5-/}-opensource-src-$pkgver"
+options="!check"
+
+build() {
+	qmake-qt5 CONFIG+="lang-all handwriting"
+	make
+}
+
+package() {
+	cd "$builddir"
+	make INSTALL_ROOT="$pkgdir" install
+
+	# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
+	find "$pkgdir/usr/lib" -type f -name '*.prl' \
+		-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
+
+	install -d "$pkgdir"/usr/share/licenses
+	ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/$pkgname
+}
+sha512sums="f8c39b789e877e60389ee9aab4a5c17e6018093f72fc57f526ce2584183135206306d4d5a7c7551a6de45969aa6f55444bb39f4ea3324cdf10611533f0bc2b22  qtvirtualkeyboard-opensource-src-5.9.2.tar.xz
+e801336b9aaf0facdcf7347fa8cf7223362312c92ea5725c5260d777045cc9da9a6de514dc4c17904aab77ae799bdd154c4615b8f2a39d92ce55ca10ad218efb  0001-include-sys-time.h-for-timeval.patch"
diff --git a/aports/kde/qt5-qtwayland/APKBUILD b/aports/main/qt5-qtwayland/APKBUILD
similarity index 52%
rename from aports/kde/qt5-qtwayland/APKBUILD
rename to aports/main/qt5-qtwayland/APKBUILD
index 13749174ade108a0bee27e4b58f1fe5132dc3b22..b66a4e2a8ab06a807e55b0a95f741d6d21942b81 100644
--- a/aports/kde/qt5-qtwayland/APKBUILD
+++ b/aports/main/qt5-qtwayland/APKBUILD
@@ -1,28 +1,27 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
 pkgname=qt5-qtwayland
-pkgver=5.9.1
-pkgrel=1
+pkgver=5.9.2
+pkgrel=0
 arch="all"
 url='http://qt-project.org/'
-license="GPL3 LGPL3 FDL custom"
+license="GPL-3.0 GPL-2.0 LGPL-3.0"
 pkgdesc='Provides APIs for Wayland'
 depends="qt5-qtdeclarative libxcomposite wayland"
-makedepends="qt5-qtbase-dev libxkbcommon-dev"
+depends_dev="qt5-qtbase-dev"
+makedepends="$depends_dev libxkbcommon-dev"
 source="http://download.qt.io/official_releases/qt/${pkgver%.*}/${pkgver}/submodules/${pkgname/qt5-/}-opensource-src-$pkgver.tar.xz"
-
-prepare() {
-	mkdir -p $srcdir/build
-}
+subpackages="$pkgname-dev $pkgname-doc"
+builddir="$srcdir/${pkgname/qt5-/}-opensource-src-$pkgver"
+options="!check"
 
 build() {
-	cd $srcdir/build
-
-	qmake-qt5 $srcdir/${pkgname/qt5-/}-opensource-src-$pkgver
+	qmake-qt5
 	make
 }
 
 package() {
-	cd $srcdir/build
-
+	cd "$builddir"
 	make INSTALL_ROOT="$pkgdir" install
 
 	# Drop QMAKE_PRL_BUILD_DIR because reference the build dir
@@ -30,6 +29,6 @@ package() {
 		-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
 
 	install -d "$pkgdir"/usr/share/licenses
-	ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
+	ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/$pkgname
 }
-sha512sums="619025f6db1234e2e85e8790ca152765696b3019414e4de1a7630ef3cb5a11fa3d0f3955f1e2e9e82f05a90a6da3a0a355c3c4de4dc0006cb91f122428031df3  qtwayland-opensource-src-5.9.1.tar.xz"
+sha512sums="28b6f77be5289cb9eba0e3e6b220d2c99d2ab4dbae8e02caecd7651b5ae33c09f117545664b01649ca52b27025cc15853806ece8dc10713c3d90832416c7def6  qtwayland-opensource-src-5.9.2.tar.xz"