From 403b00d9b6bd0b6bd8259160b0077aa9162ce552 Mon Sep 17 00:00:00 2001
From: Clayton Craft <clayton@craftyguy.net>
Date: Sat, 27 Apr 2024 14:28:30 -0700
Subject: [PATCH] systemd/gnome-shell: fork to enable systemd support (MR 5115)

fixes #2767

[ci:skip-vercheck]
---
 extra-repos/systemd/gnome-shell/APKBUILD  | 125 ++++++++++++++++++++++
 extra-repos/systemd/gnome-shell/gsh.patch |  26 +++++
 2 files changed, 151 insertions(+)
 create mode 100644 extra-repos/systemd/gnome-shell/APKBUILD
 create mode 100644 extra-repos/systemd/gnome-shell/gsh.patch

diff --git a/extra-repos/systemd/gnome-shell/APKBUILD b/extra-repos/systemd/gnome-shell/APKBUILD
new file mode 100644
index 00000000000..2bfd4a50a4c
--- /dev/null
+++ b/extra-repos/systemd/gnome-shell/APKBUILD
@@ -0,0 +1,125 @@
+# Forked from Alpine to add systemd!
+
+pkgname=gnome-shell
+pkgver=99946.1
+_pkgver=46.1
+pkgrel=0
+pkgdesc="GNOME shell"
+url="https://gitlab.gnome.org/GNOME/gnome-shell"
+# gjs -> mozjs
+arch="all !armhf !s390x"
+license="GPL-2.0-or-later"
+depends="
+	accountsservice
+	adwaita-icon-theme
+	desktop-file-utils
+	font-adobe-source-code-pro
+	font-cantarell
+	gnome-bluetooth
+	gnome-control-center
+	gnome-shell-schemas
+	gsettings-desktop-schemas>=46
+	gst-plugin-pipewire
+	gst-plugins-good
+	gstreamer
+	ibus
+	librsvg
+	networkmanager-common
+	systemd
+	tecla
+	unzip
+	upower
+	"
+makedepends="
+	asciidoc
+	evolution-data-server-dev evolution-dev
+	gcr4-dev
+	gjs-dev>=1.78.0
+	gnome-autoar-dev
+	gnome-bluetooth-dev
+	gnome-control-center-dev
+	gnome-desktop-dev>=44.0
+	gobject-introspection-dev
+	gstreamer-dev
+	ibus-dev
+	libcanberra-dev
+	libnma-dev
+	libxml2-dev
+	libxml2-utils
+	meson
+	mutter-dev>=46
+	networkmanager-dev
+	pipewire-dev
+	polkit-dev
+	pulseaudio-dev
+	py3-setuptools
+	python3
+	sassc
+	startup-notification-dev
+	systemd-dev
+	tecla-dev
+	"
+checkdepends="
+	mesa-dri-gallium
+	xvfb-run
+	"
+	# gdm is also needed but introduces circular dep
+subpackages="
+	$pkgname-dbg
+	$pkgname-doc
+	$pkgname-lang
+	$pkgname-schemas::noarch
+	gnome-extensions-app:extensions_app:noarch
+	"
+source="https://download.gnome.org/sources/gnome-shell/${_pkgver%.*}/gnome-shell-$_pkgver.tar.xz
+	gsh.patch
+	"
+options="!check" # Tests have circular dependency 'gnome-shell <-> gdm'
+builddir="$srcdir/$pkgname-$_pkgver"
+
+# secfixes:
+#   0:
+#     - CVE-2019-3820
+
+build() {
+	abuild-meson \
+		-Db_lto=true \
+		-Dsystemd=false \
+		-Dtests=false \
+		. output
+	meson compile -C output
+}
+
+check() {
+	xvfb-run meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+	DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+extensions_app() {
+	pkgdesc="Manage GNOME Shell extensions"
+	depends="gnome-shell libadwaita"
+	replaces="gnome-shell"
+
+	amove usr/bin/gnome-extensions-app
+	amove usr/share/applications/org.gnome.Extensions.desktop
+	amove usr/share/gnome-shell/org.gnome.Extensions
+	amove usr/share/gnome-shell/org.gnome.Extensions.data.gresource
+	amove usr/share/gnome-shell/org.gnome.Extensions.src.gresource
+}
+
+schemas() {
+	pkgdesc="GNOME Shell gsetting schemas"
+	depends=""
+	replaces="gnome-shell"
+
+	amove usr/share/glib-2.0/schemas
+	amove usr/share/gnome-control-center/keybindings
+}
+
+sha512sums="
+2700b4187e5f6cc52d8a04704fb68aa7847bc70d5200819c4462729d2d15fd8b4f1fe67bfc83e643b8edf247511e40cf20a6561ff5a901c998a95d935ce4217c  gnome-shell-46.1.tar.xz
+ae4ac679bacd35948b44068e5a70407f473bd96986ee126abb1bdf066db5cbc2087a3ffae0b390286689cacbe8325870fd43663ba39f4f7543216e02bf083934  gsh.patch
+"
diff --git a/extra-repos/systemd/gnome-shell/gsh.patch b/extra-repos/systemd/gnome-shell/gsh.patch
new file mode 100644
index 00000000000..4b631055c19
--- /dev/null
+++ b/extra-repos/systemd/gnome-shell/gsh.patch
@@ -0,0 +1,26 @@
+Patch-Source: https://github.com/chimera-linux/cports/blob/793dbd2807070fd0fd4f7ba37fd73d4c5ff47584/main/gnome-shell/patches/no-exe-introspection.patch
+commit 1d1e96c094570c3a822f835abbff0a5bca4ca10e
+Author: Daniel Kolesa <daniel@octaforge.org>
+Date:   Sun Mar 19 19:11:00 2023 +0100
+
+    Disable 9bc89b821cf09195418f20225bbec39c0567d263
+    
+    Even if we manually define _DYNAMIC, it does not work (segfaults
+    somewhere in musl, coming from g_strsplit) and is pretty useless
+    for our case anyway.
+
+diff --git a/src/main.c b/src/main.c
+index 8cccc0a..ef6408f 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -19,6 +19,10 @@
+ #include <atk-bridge.h>
+ #include <link.h>
+ 
++#ifdef HAVE_EXE_INTROSPECTION
++#undef HAVE_EXE_INTROSPECTION
++#endif
++
+ #ifdef HAVE_EXE_INTROSPECTION
+ #include <elf.h>
+ #endif
-- 
GitLab