diff --git a/testing/accountsservice/APKBUILD b/testing/accountsservice/APKBUILD
index 4e1003c10c3cd383be9263e5c022d821798cc4df..8caa8a11b040445b136d0cb0296a1587706e6097 100644
--- a/testing/accountsservice/APKBUILD
+++ b/testing/accountsservice/APKBUILD
@@ -1,46 +1,35 @@
 # Contributor: Carlo Landmeter <clandmeter@gmail.com>
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
 pkgname=accountsservice
-pkgver=0.6.50
+pkgver=0.6.54
 pkgrel=1
 pkgdesc="D-Bus interface for user account query and manipulation"
 url="https://www.freedesktop.org/software/accountsservice/"
 arch="all"
 license="GPL-3.0-or-later"
-depends=""
 depends_dev="glib-dev gobject-introspection-dev polkit-dev"
-makedepends="$depends_dev intltool gnome-doc-utils"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
+makedepends="$depends_dev meson py3-setuptools"
+subpackages="$pkgname-dev $pkgname-lang"
 source="https://www.freedesktop.org/software/accountsservice/accountsservice-$pkgver.tar.xz
 	musl-fgetspent_r.patch
-	"
+	musl-wtmp.patch"
 builddir="$srcdir"/$pkgname-$pkgver
 build() {
 	cd "$builddir"
-	# Hack to check for /var/log/wtmp instead of /var/log/utx.log
-	sed -i configure -e "s;utx\.log;wtmp;g"
-	ac_cv_file__var_log_utx_log=yes ./configure \
-		--build=$CBUILD \
-		--host=$CHOST \
-		--prefix=/usr \
-		--sysconfdir=/etc \
-		--mandir=/usr/share/man \
-		--infodir=/usr/share/info \
-		--localstatedir=/var \
-		--disable-systemd \
-		--enable-introspection=yes
-	make
+	meson --prefix=/usr -Dsystemdsystemunitdir=no . output
+	ninja -C output
 }
 
 check() {
 	cd "$builddir"
-	make check
+	ninja -C output test
 }
 
 package() {
 	cd "$builddir"
-	make DESTDIR="$pkgdir" install
+	DESTDIR="$pkgdir" ninja -C output install
 }
 
-sha512sums="6e07cd318452b1cbedeacd729f0ebb200525caf1b09981abb2bac16fd90756a790ebec08aca0a0cea016f14ab27c159a68fe1332ef4bc636c5863b8c61040f64  accountsservice-0.6.50.tar.xz
-469392beca8f5941eafaa193c4fcb0472770ee4183ce520416a1b5d6abafe0e201990eb74d06bfbd9e20af08e55aff5f0031f267083f6c6879f0fe4e5028103c  musl-fgetspent_r.patch"
+sha512sums="5fbcccc286dba60efba905aa79b1b51a5478fe52bf2e256d40d9fc2d7a311aea4ce397365045659a4ef2ecb2cc079130fb1d0107749c3c906c394517056ac1c0  accountsservice-0.6.54.tar.xz
+469392beca8f5941eafaa193c4fcb0472770ee4183ce520416a1b5d6abafe0e201990eb74d06bfbd9e20af08e55aff5f0031f267083f6c6879f0fe4e5028103c  musl-fgetspent_r.patch
+e454b66026030577de635b4752c16a51dfa61188d91acb76da7497f61f11b4c773953c08947b2aac902926f847c01b1f289757ed042989a6db9c51b58dfcc2b3  musl-wtmp.patch"
diff --git a/testing/accountsservice/musl-wtmp.patch b/testing/accountsservice/musl-wtmp.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1d01e317331193d324d322130e67a53e96f64c0f
--- /dev/null
+++ b/testing/accountsservice/musl-wtmp.patch
@@ -0,0 +1,15 @@
+Reason: fix build on musl
+Tidy up and send upstream soon...
+--- a/meson.build
++++ b/meson.build
+@@ -82,8 +82,7 @@ if cc.has_header_symbol('utmpx.h', 'WTMPX_FILENAME', prefix: '#define _GNU_SOURC
+ elif cc.has_header_symbol('paths.h', '_PATH_WTMPX')
+   config_h.set('PATH_WTMP', '_PATH_WTMPX')
+ else
+-  assert(run_command('test', '-e', '/var/log/utx.log').returncode() == 0, 'Do not know which filename to watch for wtmp changes')
+-  config_h.set_quoted('PATH_WTMP', '/var/log/utx.log')
++  config_h.set_quoted('PATH_WTMP', '/var/log/wtmp')
+ endif
+ 
+ # compiler flags
+