diff --git a/extra-repos/systemd/gdm/0001-DOWNSTREAM-use-bin-touch-instead-of-usr-bin-touch.patch b/extra-repos/systemd/gdm/0001-DOWNSTREAM-use-bin-touch-instead-of-usr-bin-touch.patch
index 3959f48083b1a86e6def854847b6596484663549..4e900e28fe914dd504807492fac08abc2484ef87 100644
--- a/extra-repos/systemd/gdm/0001-DOWNSTREAM-use-bin-touch-instead-of-usr-bin-touch.patch
+++ b/extra-repos/systemd/gdm/0001-DOWNSTREAM-use-bin-touch-instead-of-usr-bin-touch.patch
@@ -1,3 +1,5 @@
+TODO: remove me when usr-bin-merge happened
+---
 From a12b01f4f71d7ca1ed528ea11f99520c10b0d93c Mon Sep 17 00:00:00 2001
 From: Newbyte <newbie13xd@gmail.com>
 Date: Tue, 14 Mar 2023 19:37:17 +0100
@@ -48,15 +50,6 @@ index a4f841bdf..481c5b4dd 100644
  
  # Check if suspend/resume services necessary for working wayland support is available
  TEST{0711}!="/usr/bin/nvidia-sleep.sh", GOTO="gdm_disable_wayland"
-@@ -68,7 +68,7 @@ LABEL="gdm_nvidia_end"
- KERNEL!="card[0-9]-eDP-*", GOTO="gdm_laptop_check_end"
- SUBSYSTEM!="drm", GOTO="gdm_laptop_check_end"
- ACTION!="add", GOTO="gdm_laptop_check_end"
--RUN+="/usr/bin/touch /run/udev/gdm-machine-is-laptop"
-+RUN+="/bin/touch /run/udev/gdm-machine-is-laptop"
- GOTO="gdm_hybrid_nvidia_laptop_check"
- LABEL="gdm_laptop_check_end"
- 
 @@ -79,7 +79,7 @@ SUBSYSTEM!="drm", GOTO="gdm_hybrid_graphics_check_end"
  ACTION!="add", GOTO="gdm_hybrid_graphics_check_end"
  IMPORT{program}="/bin/sh -c \"echo GDM_NUMBER_OF_GRAPHICS_CARDS=`ls -1d /sys/class/drm/card[0-9] | wc -l`\""
diff --git a/extra-repos/systemd/gdm/APKBUILD b/extra-repos/systemd/gdm/APKBUILD
index b5d8f38c4f5b9ce1f44c086e8c08020e7388e565..32691420938e85fdcebc504c17b59bd1aa697b53 100644
--- a/extra-repos/systemd/gdm/APKBUILD
+++ b/extra-repos/systemd/gdm/APKBUILD
@@ -1,9 +1,9 @@
 # Forked from Alpine for systemd support
 
 pkgname=gdm
-pkgver=99946.2
-_pkgver=46.2
-pkgrel=1
+pkgver=99947.0
+_pkgver=47.0
+pkgrel=0
 pkgdesc="GNOME display manager"
 url="https://wiki.gnome.org/Projects/GDM"
 # blocked by gnome-shell
@@ -82,8 +82,8 @@ systemd() {
 }
 
 sha512sums="
-29cb00b42b64313f63cbf33a0caf9ecaf43f38699983017966fba951b867742129ef150cd927d02add5f7c1c20049ba1301e5ee094caa54835dc12cf29c86210  gdm-46.2.tar.xz
-70b2bb6d6711c17a14c6e6a48b7b29f1b22cf858953f16723ba3e00570dce0416bcb72e4b3d3d4ef608eed32e1f7efa617f94f0a3327c7f5ceeb6b7232e4be84  0001-DOWNSTREAM-use-bin-touch-instead-of-usr-bin-touch.patch
+5578b2839ec78ef0b155a6ef6b82384495ef0f3ceb49f4bc7c656bf9dafa95b260148c7fc9b8295b71d4a2d33f6fe6c4a47485cd9eba5c0929f0492ba06e0893  gdm-47.0.tar.xz
+c5c57ee93f5a33db154632f0f81fa2e62a48635cfa5e51ada9cc969478df0ce15878446c639c8647c53d439f2eb4173e7fca0069eae31fbdcec541cc5f28cd28  0001-DOWNSTREAM-use-bin-touch-instead-of-usr-bin-touch.patch
 66611d49fc4c9578415a7e554834edcb9de99396bd0ca511dcfd4fb256e8a1cd1fd5f10464f4668ffe04799d919bc22ddb58e8bf272017edba69a7951522e63d  0003-DOWNSTREAM-pam-rename-common-to-base.patch
 f836cf0acdf148f2ae09ac28251b5126ce597f08254c43b1ec77596f75e1a3229926116c13f98554625be763e8d28415b27bd679b0a5de9f86bdca7857054c82  Xsession
 "
diff --git a/extra-repos/systemd/gnome-desktop/APKBUILD b/extra-repos/systemd/gnome-desktop/APKBUILD
index 73045097024a73ad9c59bebbd03e0b58054aadf7..fc59e8b30f14b2ae65a08ebe6ab888e037ca44cc 100644
--- a/extra-repos/systemd/gnome-desktop/APKBUILD
+++ b/extra-repos/systemd/gnome-desktop/APKBUILD
@@ -1,9 +1,9 @@
 # Forked from Alpine to add systemd!
 
 pkgname=gnome-desktop
-pkgver=99944.0
-_pkgver=44.0
-pkgrel=2
+pkgver=99944.1
+_pkgver=44.1
+pkgrel=0
 pkgdesc="GNOME desktop core libraries"
 url="https://gitlab.gnome.org/GNOME/gnome-desktop"
 arch="all"
@@ -37,9 +37,7 @@ subpackages="
 	libgnome-desktop-4:four
 	libgnome-rr-4:rr_four
 	"
-# Patch: https://gitlab.gnome.org/GNOME/gnome-desktop/-/merge_requests/158
 source="https://download.gnome.org/sources/gnome-desktop/${_pkgver%.*}/gnome-desktop-$_pkgver.tar.xz
-	utf8-explicit.patch
 	"
 builddir="$srcdir/$pkgname-$_pkgver"
 
@@ -95,6 +93,5 @@ debug() {
 }
 
 sha512sums="
-707e96ffe1bbe27c448dd007b5a005e06ea3bba945c1c6708c61b8cec204cef6f5ed540f8ba0f5e566c2fdbc825fc6f9f0440706e0aea132490ca6d48823e180  gnome-desktop-44.0.tar.xz
-b50843e018121df5c426916cce919aae65570e373a26bb49cd53549963b41eeddf6bd439050f307646883e0777d8a5d8a266c3792c0c688ab02e892031b05f8e  utf8-explicit.patch
+a939793a6870693f132cabb6dd5f06d0f2744cf97a9dc4b7a2b04c9a5aa09aa56f2f6d7630199a42d0d4e539ae724b54b91d4f9fe9ea2f785d854c58b2d8dd5f  gnome-desktop-44.1.tar.xz
 "
diff --git a/extra-repos/systemd/gnome-desktop/utf8-explicit.patch b/extra-repos/systemd/gnome-desktop/utf8-explicit.patch
deleted file mode 100644
index fdbdf044a08061df69ce41741d38889086e33c73..0000000000000000000000000000000000000000
--- a/extra-repos/systemd/gnome-desktop/utf8-explicit.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git i/libgnome-desktop/gnome-languages.c w/libgnome-desktop/gnome-languages.c
-index adfc4eee..275b3182 100644
---- i/libgnome-desktop/gnome-languages.c
-+++ w/libgnome-desktop/gnome-languages.c
-@@ -364,7 +364,10 @@ add_locale (const char *language_name,
-         language_name_get_codeset_details (language_name, NULL, &is_utf8);
- 
-         if (is_utf8) {
--                name = g_strdup (language_name);
-+                if (strchr (language_name, '.') == NULL)
-+                        name = g_strdup_printf ("%s.UTF-8", language_name);
-+                else
-+                        name = g_strdup (language_name);
-         } else if (utf8_only) {
- 
-                 if (strchr (language_name, '.'))
diff --git a/extra-repos/systemd/gnome-keyring/APKBUILD b/extra-repos/systemd/gnome-keyring/APKBUILD
index 0513ad98f5211d6d8ec6543426c0f264e804acb1..7593dba2b802435183fe8b4aaa09ade00b49c2c2 100644
--- a/extra-repos/systemd/gnome-keyring/APKBUILD
+++ b/extra-repos/systemd/gnome-keyring/APKBUILD
@@ -2,9 +2,9 @@
 # systemd unit activation
 
 pkgname=gnome-keyring
-pkgver=99946.1
-_pkgver=46.1
-pkgrel=2
+pkgver=99946.2
+_pkgver=46.2
+pkgrel=0
 pkgdesc="GNOME keyring"
 url="https://wiki.gnome.org//Projects/GnomeKeyring"
 arch="all"
@@ -73,6 +73,6 @@ systemd() {
 }
 
 sha512sums="
-82d9685a87b43c6aa1f377114af389675836df4b5c26d43d6843f1dfac6ae0eb771a4ac67f71e5a2f5b88cbdbb5300d63bfcfd8087ee60463a9579d242c6b884  gnome-keyring-46.1.tar.xz
+4229ca0606bdd1b84a3c737288df7f1fc1f8715734e3001964babd882201c3d818deabb3a7662dbf9b67316f03b234de84da3128fb991a500ef8305c2f962ba2  gnome-keyring-46.2.tar.xz
 53e04eade3579fe5d65d11d6cde6c5fdffc9f73a3a7f372b1f4dbc7437212e753123c12854d3a5a7a22f3beb1b00604eec0371615ceb0f7024cb38cf35e33065  0001-build-Use-p11_module_configs-as-default-pkcs11-confi.patch
 "
diff --git a/extra-repos/systemd/gnome-session/APKBUILD b/extra-repos/systemd/gnome-session/APKBUILD
index 6f01a19c078b0ef39ef8aa0aec63d1f38a1c190f..2f5d08febb2a25a2bb91cbadb8dc6de4045eaef5 100644
--- a/extra-repos/systemd/gnome-session/APKBUILD
+++ b/extra-repos/systemd/gnome-session/APKBUILD
@@ -1,9 +1,9 @@
 # Forked from Alpine for systemd
 
 pkgname=gnome-session
-pkgver=99946.0
-_pkgver=46.0
-pkgrel=1
+pkgver=99947.0.1
+_pkgver=47.0.1
+pkgrel=0
 pkgdesc="GNOME session manager"
 url="https://gitlab.gnome.org/GNOME/gnome-session"
 arch="all"
@@ -50,5 +50,5 @@ package() {
 	DESTDIR="$pkgdir" meson install --no-rebuild -C output
 }
 sha512sums="
-2187b8ae4ac4ec728283c5dc03edba6472864a704f6c6cd7a3e962515a3925d3a8438f7f89855dd082d2c013868da81e16da280c70b0e07537c8e431301b4bd8  gnome-session-46.0.tar.xz
+83268ab2531f1a98f1bb483ca8337cac97542445a1d83d6e8a478ebb3361eb4454e111278dc428a139a6de63741367bdbc3443e53183fd187ca1a768e5df67a3  gnome-session-47.0.1.tar.xz
 "
diff --git a/extra-repos/systemd/gnome-settings-daemon/APKBUILD b/extra-repos/systemd/gnome-settings-daemon/APKBUILD
index c23d5cff45c8bac6f378cc75e6b7f323d916ff4d..7aecac5af080b646a730739ad0ffabeaa631fc06 100644
--- a/extra-repos/systemd/gnome-settings-daemon/APKBUILD
+++ b/extra-repos/systemd/gnome-settings-daemon/APKBUILD
@@ -1,9 +1,9 @@
 # Forked from Alpine for systemd support
 
 pkgname=gnome-settings-daemon
-pkgver=99946.0
-_pkgver=46.0
-pkgrel=1
+pkgver=99947.1
+_pkgver=47.1
+pkgrel=0
 pkgdesc="GNOME settings daemon"
 url="https://gitlab.gnome.org/GNOME/gnome-settings-daemon"
 arch="all"
@@ -73,5 +73,5 @@ package() {
 }
 
 sha512sums="
-445e9ee4709af7a67ded55733d4041357995fe9746bcf00fa81f52f6dddc2071e7114e9bf836bcf464bc0f04da3b3c08be04c1942963c1910d1a14b4434f6633  gnome-settings-daemon-46.0.tar.xz
+39de5d67d51f751717b9c7dae4742981a7215a780e13e75ba5321351bcf129e265be12f60b01522d29301ef14049e88d217bdf1e800f16b4493566b927da35e4  gnome-settings-daemon-47.1.tar.xz
 "
diff --git a/extra-repos/systemd/gnome-shell/APKBUILD b/extra-repos/systemd/gnome-shell/APKBUILD
index aa89aae8479bc701c42aafe614de82e848385f6c..99e37f3b0d1166c5f77d4235526738d172fec6ce 100644
--- a/extra-repos/systemd/gnome-shell/APKBUILD
+++ b/extra-repos/systemd/gnome-shell/APKBUILD
@@ -1,9 +1,9 @@
 # Forked from Alpine to add systemd!
 
 pkgname=gnome-shell
-pkgver=99946.2
-_pkgver=46.2
-pkgrel=1
+pkgver=99947.1
+_pkgver=47.1
+pkgrel=0
 pkgdesc="GNOME shell"
 url="https://gitlab.gnome.org/GNOME/gnome-shell"
 # gjs -> mozjs
@@ -46,11 +46,12 @@ makedepends="
 	libxml2-dev
 	libxml2-utils
 	meson
-	mutter-dev>=46
+	mutter-dev>=99947
 	networkmanager-dev
 	pipewire-dev
 	polkit-dev
 	pulseaudio-dev
+	py3-docutils
 	py3-setuptools
 	python3
 	sassc
@@ -72,6 +73,7 @@ subpackages="
 	"
 source="https://download.gnome.org/sources/gnome-shell/${_pkgver%.*}/gnome-shell-$_pkgver.tar.xz
 	gsh.patch
+	schemas_req.patch
 	"
 # TODO: crossdirect disabled due to armv7 crosscompile failure on x86_64, see
 # https://gitlab.com/postmarketOS/pmaports/-/merge_requests/5115#note_1899890119
@@ -120,6 +122,7 @@ schemas() {
 }
 
 sha512sums="
-9b23a23a8a9224a618ab159c653b0b0889e5097a62265210f5e71c15658f4a85fbaca8be9646da768e8acfc38eb7eecd35313f3b82d6fbfc3b45f7754479e3a8  gnome-shell-46.2.tar.xz
+451b5609f4a9a3f6acb729bb0137f1d7db7da4de956e13576402fd22c3dd7d0ba5b7cc634bf0d0923fbf0624812fb4646164bb4c0c29535acb09f30c904fd05f  gnome-shell-47.1.tar.xz
 ae4ac679bacd35948b44068e5a70407f473bd96986ee126abb1bdf066db5cbc2087a3ffae0b390286689cacbe8325870fd43663ba39f4f7543216e02bf083934  gsh.patch
+3fab1a0e141ae7c972e827935c6e4c52d927faf69dd25a5c72bbcdaa1b763d1bb58ea5cb074686145b29c3391f557b01920a8d3613bb83d15f073d661a447426  schemas_req.patch
 "
diff --git a/extra-repos/systemd/gnome-shell/schemas_req.patch b/extra-repos/systemd/gnome-shell/schemas_req.patch
new file mode 100644
index 0000000000000000000000000000000000000000..42c974f85dea0159ade14c225a58261ca69663c9
--- /dev/null
+++ b/extra-repos/systemd/gnome-shell/schemas_req.patch
@@ -0,0 +1,13 @@
+diff --git a/meson.build b/meson.build
+index ec385b1..e0addb3 100644
+--- a/meson.build
++++ b/meson.build
+@@ -28,7 +28,7 @@ gjs_req = '>= 1.73.1'
+ gtk_req = '>= 4.0'
+ mutter_req = '>= 47.0'
+ polkit_req = '>= 0.100'
+-schemas_req = '>= 47.alpha'
++schemas_req = '>= 47'
+ systemd_req = '>= 246'
+ ibus_req = '>= 1.5.19'
+ gnome_desktop_req = '>= 40'
diff --git a/extra-repos/systemd/mutter/APKBUILD b/extra-repos/systemd/mutter/APKBUILD
index 94c03a167678f3e495decc177f43cdd83684f3bd..0762e2ecb90db008d9be29f0cd2bc6e93ffffcc7 100644
--- a/extra-repos/systemd/mutter/APKBUILD
+++ b/extra-repos/systemd/mutter/APKBUILD
@@ -1,8 +1,8 @@
 # Forked from Alpine to add systemd!
 
 pkgname=mutter
-pkgver=99946.2
-_pkgver=46.2
+pkgver=99947.1
+_pkgver=47.1
 pkgrel=0
 pkgdesc="clutter-based window manager and compositor"
 url="https://wiki.gnome.org/Projects/Mutter/"
@@ -18,7 +18,6 @@ makedepends="
 	at-spi2-core-dev
 	cairo-dev
 	dbus-dev
-	eudev-dev
 	fribidi-dev
 	gdk-pixbuf-dev
 	glib-dev
@@ -30,6 +29,7 @@ makedepends="
 	json-glib-dev
 	lcms2-dev
 	libcanberra-dev
+	libdisplay-info-dev
 	libdrm-dev
 	libei-dev
 	libgudev-dev
@@ -57,11 +57,12 @@ makedepends="
 	pango-dev
 	pipewire-dev
 	startup-notification-dev
-	systemd-dev
 	wayland-dev
 	wayland-protocols
 	xkeyboard-config-dev
 	xwayland-dev
+
+	systemd-dev
 	"
 # TODO: crossdirect disabled due to armv7 crosscompile failure on x86_64, see
 # https://gitlab.com/postmarketOS/pmaports/-/merge_requests/5115#note_1899890119
@@ -76,13 +77,12 @@ builddir="$srcdir/$pkgname-$_pkgver"
 build() {
 	abuild-meson \
 		-Db_lto=true \
-		-Degl_device=true \
 		-Dudev=true \
 		-Dnative_backend=true \
 		-Dintrospection=true \
 		-Dremote_desktop=true \
 		-Dprofiler=false \
-		-Dtests=false \
+		-Dtests=disabled \
 		. output
 	meson compile -C output
 }
@@ -101,7 +101,7 @@ package() {
 }
 
 sha512sums="
-7d8fd3ed38266e993691ee47d9a4e314e439e3269d6b0ed73fb192efa3c29d64edc2c45c178fa99c6807c8f31aca1a3524ccf3986b3a36c5e7cc66ad89b94e53  mutter-46.2.tar.xz
+3255e5c63ac91309f0fa1b5312a4a5db07215cb9fdcfff4aacf99e8f29682c614fcf551d6a04ab3818808627d76ef7397aa7f89085356f81a4c0535ddf84aa88  mutter-47.1.tar.xz
 3e5dd59f2f2fd80edde13f64d70d52a023dec303fd8dbfa3ded0d77faf7643179f2ad74d4acd3450decb67deaf6ac85a7af5146fa96f33917b4363f884413af9  fixudev-req.patch
-670927a5528f9fec4801b7dab8a377b7280c239acb1f7a9077647deef71119738deb958a94d4ce0a99d39b29eeab3b2505698f7d19b880bbcec9f5260202d3a6  pcversion.patch
+ec94fdecb7a3213903d013c1e6f48e02f8a1972ded16c3604627984cfce0936a0276d284c20e746eb91bf97249785bcf827f6fa55f1629e5290e19423d554e4d  pcversion.patch
 "
diff --git a/extra-repos/systemd/mutter/pcversion.patch b/extra-repos/systemd/mutter/pcversion.patch
index f948f80e966354dd01a929c2343fa60d7f5615d2..e43881c4106b129920036bb243bd74e3eddb3baf 100644
--- a/extra-repos/systemd/mutter/pcversion.patch
+++ b/extra-repos/systemd/mutter/pcversion.patch
@@ -1,14 +1,14 @@
 apk-tools 2.12.10 fails with this in a .pc depends file
 diff --git a/meson.build b/meson.build
-index 3550496..15b9e7d 100644
+index 2541192..1c9ab7f 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -26,7 +26,7 @@
+@@ -26,7 +26,7 @@ pango_req = '>= 1.46.0'
  cairo_req = '>= 1.10.0'
  pangocairo_req = '>= 1.20'
  pixman_req = '>= 0.42'
--gsettings_desktop_schemas_req = '>= 40.alpha'
-+gsettings_desktop_schemas_req = '>= 40'
+-gsettings_desktop_schemas_req = '>= 47.beta'
++gsettings_desktop_schemas_req = '>= 47'
  x11_req = '>= 1.7.0'
  xcomposite_req = '>= 0.4'
  xkbcommon_req = '>= 0.4.3'