diff --git a/PKGBUILD b/PKGBUILD
index b51dc81ebba7dbe61f22d18a05abbe18273d475a..484c364d8581a3696db8cec6f0eb312052fcc25b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,18 +2,17 @@
 # Contributor: Jan de Groot <jgc@archlinux.org>
 
 pkgname=gnome-system-monitor
-pkgver=3.28.2
+pkgver=3.30.0
 pkgrel=1
 pkgdesc="View current processes and monitor system state"
 url="https://wiki.gnome.org/Apps/SystemMonitor"
 arch=(x86_64)
 license=(GPL)
 depends=(libgtop gtkmm3 librsvg systemd)
-makedepends=(itstool docbook-xsl intltool desktop-file-utils appdata-tools gnome-common git)
-options=(!emptydirs)
+makedepends=(meson yelp-tools git)
 groups=(gnome)
-_commit=37c313130900d570e04c1c839c72594e1b30582f  # tags/3.28.2^0
-source=("git+https://git.gnome.org/browse/gnome-system-monitor#commit=$_commit")
+_commit=878b3e0ef10c5625c0b7124821b734f21433b6e0  # tags/3.30.0^0
+source=("git+https://gitlab.gnome.org/GNOME/gnome-system-monitor.git#commit=$_commit")
 sha256sums=('SKIP')
 
 pkgver() {
@@ -23,17 +22,17 @@ pkgver() {
 
 prepare() {
   cd $pkgname
-  NOCONFIGURE=1 ./autogen.sh
 }
 
 build() {
-  cd $pkgname
-  ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
-    --libexecdir=/usr/lib/$pkgname --enable-systemd
-  make
+  arch-meson $pkgname build
+  ninja -C build
+}
+
+check() {
+  meson test -C build
 }
 
 package() {
-  cd $pkgname
-  make DESTDIR="$pkgdir" install
+  DESTDIR="$pkgdir" meson install -C build
 }