From 1304ad52da72f399e6a688dacac0c2302e4bf4c3 Mon Sep 17 00:00:00 2001
From: Clayton Craft <clayton@craftyguy.net>
Date: Mon, 6 May 2024 16:39:59 -0700
Subject: [PATCH] systemd/mutter: fork to enable systemd support (MR 5115)

---
 extra-repos/systemd/mutter/APKBUILD          | 105 +++++++++++++++++++
 extra-repos/systemd/mutter/fixudev-req.patch |  16 +++
 extra-repos/systemd/mutter/pcversion.patch   |  14 +++
 3 files changed, 135 insertions(+)
 create mode 100644 extra-repos/systemd/mutter/APKBUILD
 create mode 100644 extra-repos/systemd/mutter/fixudev-req.patch
 create mode 100644 extra-repos/systemd/mutter/pcversion.patch

diff --git a/extra-repos/systemd/mutter/APKBUILD b/extra-repos/systemd/mutter/APKBUILD
new file mode 100644
index 00000000000..bb165fd2208
--- /dev/null
+++ b/extra-repos/systemd/mutter/APKBUILD
@@ -0,0 +1,105 @@
+# Forked from Alpine to add systemd!
+
+pkgname=mutter
+pkgver=999946.1
+_pkgver=46.1
+pkgrel=0
+pkgdesc="clutter-based window manager and compositor"
+url="https://wiki.gnome.org/Projects/Mutter/"
+arch="all !s390x" # no libei-dev for s390x
+license="GPL-2.0-or-later"
+depends="
+	gnome-settings-daemon
+	gsettings-desktop-schemas
+	mutter-schemas
+	xkeyboard-config
+	"
+makedepends="
+	at-spi2-core-dev
+	cairo-dev
+	dbus-dev
+	eudev-dev
+	fribidi-dev
+	gdk-pixbuf-dev
+	glib-dev
+	gnome-desktop-dev
+	gnome-settings-daemon-dev
+	gobject-introspection-dev
+	graphene-dev
+	gtk4.0-dev
+	json-glib-dev
+	lcms2-dev
+	libcanberra-dev
+	libdrm-dev
+	libei-dev
+	libgudev-dev
+	libice-dev
+	libinput-dev
+	libsm-dev
+	libwacom-dev
+	libx11-dev
+	libxau-dev
+	libxcb-dev
+	libxcomposite-dev
+	libxcursor-dev
+	libxdamage-dev
+	libxext-dev
+	libxfixes-dev
+	libxi-dev
+	libxinerama-dev
+	libxkbcommon-dev
+	libxkbfile-dev
+	libxrandr-dev
+	libxrender-dev
+	libxtst-dev
+	mesa-dev
+	meson
+	pango-dev
+	pipewire-dev
+	startup-notification-dev
+	systemd-dev
+	wayland-dev
+	wayland-protocols
+	xkeyboard-config-dev
+	xwayland-dev
+	"
+options="!check" # Can't be run with release builds
+subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-lang $pkgname-schemas::noarch"
+source="https://download.gnome.org/sources/mutter/${_pkgver%.*}/mutter-$_pkgver.tar.xz
+	fixudev-req.patch
+	pcversion.patch
+	"
+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 \
+		. output
+	meson compile -C output
+}
+
+schemas() {
+	pkgdesc="Mutter schemas related files"
+	depends=""
+
+	amove usr/share/glib-2.0/schemas
+	amove usr/share/GConf/gsettings
+	amove usr/share/gnome-control-center/keybindings
+}
+
+package() {
+	DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+sha512sums="
+bb360db020c31e71ae9e247d871130dd737b180a0a48eebcafee6a3b4b5e704fe9828e12caec13e81a03d6b61bfac389c5865e747786cf154ff363ab108a003f  mutter-46.1.tar.xz
+3e5dd59f2f2fd80edde13f64d70d52a023dec303fd8dbfa3ded0d77faf7643179f2ad74d4acd3450decb67deaf6ac85a7af5146fa96f33917b4363f884413af9  fixudev-req.patch
+670927a5528f9fec4801b7dab8a377b7280c239acb1f7a9077647deef71119738deb958a94d4ce0a99d39b29eeab3b2505698f7d19b880bbcec9f5260202d3a6  pcversion.patch
+"
diff --git a/extra-repos/systemd/mutter/fixudev-req.patch b/extra-repos/systemd/mutter/fixudev-req.patch
new file mode 100644
index 00000000000..33553cf98aa
--- /dev/null
+++ b/extra-repos/systemd/mutter/fixudev-req.patch
@@ -0,0 +1,16 @@
+Apparently the version limit is only required for systemd udev, it works
+just fine with our version of eudev.
+
+diff --git a/meson.build b/meson.build
+index 2605a65..3550496 100644
+--- a/meson.build
++++ b/meson.build
+@@ -218,7 +218,7 @@ endif
+ 
+ have_libgudev = get_option('udev')
+ if have_libgudev
+-  libudev_dep = dependency('libudev', version: udev_req)
++  libudev_dep = dependency('libudev')
+   gudev_dep = dependency('gudev-1.0', version: gudev_req)
+   udev_dep = dependency('udev')
+ 
diff --git a/extra-repos/systemd/mutter/pcversion.patch b/extra-repos/systemd/mutter/pcversion.patch
new file mode 100644
index 00000000000..f948f80e966
--- /dev/null
+++ b/extra-repos/systemd/mutter/pcversion.patch
@@ -0,0 +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
+--- a/meson.build
++++ b/meson.build
+@@ -26,7 +26,7 @@
+ cairo_req = '>= 1.10.0'
+ pangocairo_req = '>= 1.20'
+ pixman_req = '>= 0.42'
+-gsettings_desktop_schemas_req = '>= 40.alpha'
++gsettings_desktop_schemas_req = '>= 40'
+ x11_req = '>= 1.7.0'
+ xcomposite_req = '>= 0.4'
+ xkbcommon_req = '>= 0.4.3'
-- 
GitLab