From 6b333009458240568ab2e569ee2b323e58a16b3f Mon Sep 17 00:00:00 2001
From: Caleb Connolly <caleb@postmarketos.org>
Date: Wed, 6 Mar 2024 23:27:29 +0000
Subject: [PATCH] systemd/dbus: new aport

Fork dbus and rebuild it with systemd support.

Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
---
 systemd/dbus/APKBUILD          | 109 +++++++++++++++++++++++++++++++++
 systemd/dbus/dbus.post-install |   4 ++
 systemd/dbus/dbus.pre-install  |   6 ++
 systemd/dbus/dbus.trigger      |   4 ++
 4 files changed, 123 insertions(+)
 create mode 100644 systemd/dbus/APKBUILD
 create mode 100644 systemd/dbus/dbus.post-install
 create mode 100644 systemd/dbus/dbus.pre-install
 create mode 100644 systemd/dbus/dbus.trigger

diff --git a/systemd/dbus/APKBUILD b/systemd/dbus/APKBUILD
new file mode 100644
index 00000000000..d3f783a6681
--- /dev/null
+++ b/systemd/dbus/APKBUILD
@@ -0,0 +1,109 @@
+# Forked from Alpine to enable systemd
+
+pkgname=dbus
+pkgver=9991.14.10
+_pkgver=1.14.10
+pkgrel=1
+pkgdesc="Freedesktop.org message bus system"
+url="https://www.freedesktop.org/Software/dbus"
+arch="all"
+license="AFL-2.1 OR GPL-2.0-or-later"
+depends_dev="util-linux-dev"
+makedepends="
+	$depends_dev
+	expat-dev
+	glib-dev
+	libsm-dev
+	libx11-dev
+	meson
+	systemd-dev
+	xmlto
+	libcap-getcap
+	"
+pkggroups="messagebus"
+provider_priority=1
+install="$pkgname.pre-install $pkgname.post-install"
+triggers="$pkgname.trigger=/usr/share/dbus-1/system.d"
+options="!check" # Borked in pmbootstrap...
+subpackages="
+	$pkgname-daemon-launch-helper:launchhelper
+	$pkgname-dev
+	$pkgname-doc
+	$pkgname-libs
+	$pkgname-x11
+	$pkgname-service
+	"
+source="https://dbus.freedesktop.org/releases/dbus/dbus-$_pkgver.tar.xz"
+builddir="$srcdir/dbus-$_pkgver"
+
+# secfixes:
+#   1.14.4-r0:
+#     - CVE-2022-42010
+#     - CVE-2022-42011
+#     - CVE-2022-42012
+#   1.12.18-r0:
+#     - CVE-2020-12049
+#   1.12.16-r0:
+#     - CVE-2019-12749
+
+build() {
+	CFLAGS="$CFLAGS -flto=auto" \
+	./configure \
+		--build=$CBUILD \
+		--host=$CHOST \
+		--prefix=/usr \
+		--localstatedir=/var \
+		--sysconfdir=/etc \
+		--with-system-pid-file=/run/dbus/dbus.pid \
+		--enable-checks \
+		--disable-assertions \
+		--enable-systemd \
+		--enable-inotify \
+		--enable-libaudit \
+		--enable-user-session \
+		--disable-static
+
+	make
+}
+
+check() {
+	make check
+}
+
+package() {
+	depends="$pkgname-libs=$pkgver-r$pkgrel"
+
+	make DESTDIR="$pkgdir" install
+
+	# can't  install tmpfs
+	rm -r "$pkgdir"/var/run
+}
+
+libs() {
+	pkgdesc="D-BUS access libraries"
+	depends="systemd-libs"
+
+	amove usr/lib/lib*.so.*
+}
+
+x11() {
+	pkgdesc="X11 add-ons for D-BUS"
+	depends="$pkgname=$pkgver-r$pkgrel"
+
+	amove usr/bin/dbus-launch
+}
+
+launchhelper() {
+	pkgdesc="DBus SUID launch helper for autospawning"
+	install_if="$pkgname=$pkgver-r$pkgrel"
+
+	amove usr/libexec/dbus-daemon-launch-helper
+}
+
+dev() {
+	default_dev
+}
+
+sha512sums="
+775b708326059692937acb69d4ce1a89e69878501166655b5d1b1628ac31b50dd53d979d93c84e57f95e90b15e25aa33893e51a7421d3537e9c2f02b1b91bfae  dbus-1.14.10.tar.xz
+"
diff --git a/systemd/dbus/dbus.post-install b/systemd/dbus/dbus.post-install
new file mode 100644
index 00000000000..57f25927d2d
--- /dev/null
+++ b/systemd/dbus/dbus.post-install
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Don't populate this, we want systemd-firstboot to do it instead.
+exec dbus-uuidgen --ensure=/etc/machine-id
diff --git a/systemd/dbus/dbus.pre-install b/systemd/dbus/dbus.pre-install
new file mode 100644
index 00000000000..2623d00c565
--- /dev/null
+++ b/systemd/dbus/dbus.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S messagebus 2>/dev/null
+adduser -S -D -H -h /dev/null -s /sbin/nologin -G messagebus -g messagebus messagebus 2>/dev/null
+
+exit 0
diff --git a/systemd/dbus/dbus.trigger b/systemd/dbus/dbus.trigger
new file mode 100644
index 00000000000..a537bd8dfcc
--- /dev/null
+++ b/systemd/dbus/dbus.trigger
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+dbus-send --system --type=method_call --dest=org.freedesktop.DBus / \
+	org.freedesktop.DBUS.ReloadConfig >/dev/null 2>&1 || :
-- 
GitLab