From 3ff8cfa528e1b944b6ef204fa4e198b0df40a0a2 Mon Sep 17 00:00:00 2001 From: Anjandev Momi Date: Sat, 10 Dec 2022 12:30:57 -0800 Subject: [PATCH] temp/sxmo-utils: patch to support pulseaudio (MR 3711) This package is just forked from alpine upstream and patched to support pulseaudio. This patch should be upstreamed to sxmo but posting here so that others can help me figure out why audio calls with poco f1 and Sxmo are broken: https://gitlab.com/postmarketOS/pmaports/-/issues/1821 --- temp/sxmo-utils/APKBUILD | 53 +++++++++++++++++ temp/sxmo-utils/pulse.patch | 57 +++++++++++++++++++ ...tfs-etc-NetworkManager-conf.d-00-sxmo.conf | 14 +++++ .../rootfs-etc-polkit-1-rules.d-00-sxmo.rules | 7 +++ ....d-50-org.freedesktop.NetworkManager.rules | 5 ++ 5 files changed, 136 insertions(+) create mode 100644 temp/sxmo-utils/APKBUILD create mode 100644 temp/sxmo-utils/pulse.patch create mode 100644 temp/sxmo-utils/rootfs-etc-NetworkManager-conf.d-00-sxmo.conf create mode 100644 temp/sxmo-utils/rootfs-etc-polkit-1-rules.d-00-sxmo.rules create mode 100644 temp/sxmo-utils/rootfs-etc-polkit-1-rules.d-50-org.freedesktop.NetworkManager.rules diff --git a/temp/sxmo-utils/APKBUILD b/temp/sxmo-utils/APKBUILD new file mode 100644 index 000000000..ce694c2f2 --- /dev/null +++ b/temp/sxmo-utils/APKBUILD @@ -0,0 +1,53 @@ +# Maintainer: Anjandev Momi +# Contributor: Maarten van Gompel +pkgname=sxmo-utils +pkgver=1.12.0 +pkgrel=1 +pkgdesc="Utility scripts, programs, and configs that hold the Sxmo UI environment together" +url="https://git.sr.ht/~mil/sxmo-utils" +arch="all !ppc64le" # limited by codemadness-frontends +license="AGPL-3.0-only" +makedepends="libx11-dev xproto linux-headers" +depends=" + coreutils + gawk + curl + doas + gojq +" + +options="!check" # has no tests +subpackages="$pkgname-openrc" +source=" + $pkgname-$pkgver.tar.gz::https://git.sr.ht/~mil/sxmo-utils/archive/$pkgver.tar.gz + rootfs-etc-NetworkManager-conf.d-00-sxmo.conf + rootfs-etc-polkit-1-rules.d-00-sxmo.rules + rootfs-etc-polkit-1-rules.d-50-org.freedesktop.NetworkManager.rules + pulse.patch + " + +package() { + mkdir -p "$pkgdir/etc/modules-load.d/" + printf %b "snd-aloop" > "$pkgdir/etc/modules-load.d/sxmo.conf" + mkdir -p "$pkgdir/etc/modprobe.d/" + printf %b "options snd slots=,snd-aloop" > "$pkgdir/etc/modprobe.d/sxmo.conf" + + make -C "$builddir" DESTDIR=$pkgdir install + + install -Dm644 "$srcdir/rootfs-etc-NetworkManager-conf.d-00-sxmo.conf" \ + "$pkgdir/etc/NetworkManager/conf.d/00-sxmo.conf" + + install -Dm755 "$srcdir/rootfs-etc-polkit-1-rules.d-00-sxmo.rules" \ + "$pkgdir/etc/polkit-1/rules.d/00-sxmo.rules" + + install -Dm755 "$srcdir/rootfs-etc-polkit-1-rules.d-50-org.freedesktop.NetworkManager.rules" \ + "$pkgdir/etc/polkit-1/rules.d/50-org.freedesktop.NetworkManager.rules" +} + +sha512sums=" +4fb3102f2ca94d6a44eb830b4f29f3cca98854d6dc48b319ed136403366fe324232303f2ac3593425cea8037548c9bffb209a9824cdedbe3e655c2916d221dc1 sxmo-utils-1.12.0.tar.gz +67a031f309a3232ac1e8abc3fedeaee912c035f9c81b4f709248895905a27ab5844ec92c65e55b79af3894450ba3883549d4004f11efebb47114d41f730e4a5f rootfs-etc-NetworkManager-conf.d-00-sxmo.conf +6dbfebe1335e4ed979240868cc339bf446bba41b8f357c11ef73179acc670b831de91327da4ab6ebe8ebd06ba7205e81b505ef1800246e30fc7ccf9e3df9c5e9 rootfs-etc-polkit-1-rules.d-00-sxmo.rules +db670992a5cf95b317ee458bbcc24c64cc0ed978e922a4a034cb94a453479dd50d75d718ecc01267a018e6674e66015122ab0965f96e21062206dc03406b2f7f rootfs-etc-polkit-1-rules.d-50-org.freedesktop.NetworkManager.rules +743d3e38315f1a82ca21354ce026ca9783e006afd3096a5fe2be304c744b6bf30af897bfffc3c6a487b461d104d95abfdf39a75f3e16af33db902c41a597aca2 pulse.patch +" diff --git a/temp/sxmo-utils/pulse.patch b/temp/sxmo-utils/pulse.patch new file mode 100644 index 000000000..02cbe91d2 --- /dev/null +++ b/temp/sxmo-utils/pulse.patch @@ -0,0 +1,57 @@ +commit 67e7b0bf41b6f2cafd3078542c29612f34565fd7 +Author: Anjandev Momi +Date: Sat Dec 10 12:22:25 2022 -0800 + + support pulseaudio if installed + + SDM845 devices need pulseaudio over pipewire for calls to work. + + https://gitlab.com/postmarketOS/pmaports/-/issues/1821 + +diff --git a/configs/default_hooks/sxmo_hook_start.sh b/configs/default_hooks/sxmo_hook_start.sh +index 94255f9..4287886 100755 +--- a/configs/default_hooks/sxmo_hook_start.sh ++++ b/configs/default_hooks/sxmo_hook_start.sh +@@ -21,9 +21,14 @@ while ! superctl status > /dev/null 2>&1; do + done + + # Load our sound daemons +-# pipewire-pulse will start pipewire +-superctl start pipewire-pulse +-superctl start wireplumber ++ ++if [ "$(command -v pulseaudio)" ]; then ++ superctl start pulseaudio ++elif [ "$(command -v pipewire)" ]; then ++ # pipewire-pulse will start pipewire ++ superctl start pipewire-pulse ++ superctl start wireplumber ++fi + + # mako/dunst are required for warnings. + # load some other little things here too. +diff --git a/configs/superd/services/pulseaudio.service b/configs/superd/services/pulseaudio.service +new file mode 100644 +index 0000000..6f65feb +--- /dev/null ++++ b/configs/superd/services/pulseaudio.service +@@ -0,0 +1,7 @@ ++[Unit] ++Description=general purpose sound server intended to run as a middleware between your applications and your hardware devices ++ ++[Service] ++Type=simple ++Restart=always ++ExecStart=/usr/bin/pulseaudio +diff --git a/scripts/core/sxmo_version.sh b/scripts/core/sxmo_version.sh +index 90a28e9..77640e1 100755 +--- a/scripts/core/sxmo_version.sh ++++ b/scripts/core/sxmo_version.sh +@@ -28,6 +28,7 @@ esac + + printf "superd " + /usr/bin/superctl --version ++pactl info + "$KEYBOARD" -v + /usr/bin/mmcli --version | head -n 1 + uname -m diff --git a/temp/sxmo-utils/rootfs-etc-NetworkManager-conf.d-00-sxmo.conf b/temp/sxmo-utils/rootfs-etc-NetworkManager-conf.d-00-sxmo.conf new file mode 100644 index 000000000..264c97b5d --- /dev/null +++ b/temp/sxmo-utils/rootfs-etc-NetworkManager-conf.d-00-sxmo.conf @@ -0,0 +1,14 @@ +[main] +plugins+=ifupdown + +[ifupdown] +managed=true + +[logging] +level=INFO + +[device-mac-randomization] +wifi.scan-rand-mac-address=no + +[keyfile] +unmanaged-devices=interface-name:p2p0 diff --git a/temp/sxmo-utils/rootfs-etc-polkit-1-rules.d-00-sxmo.rules b/temp/sxmo-utils/rootfs-etc-polkit-1-rules.d-00-sxmo.rules new file mode 100644 index 000000000..c825aaf4c --- /dev/null +++ b/temp/sxmo-utils/rootfs-etc-polkit-1-rules.d-00-sxmo.rules @@ -0,0 +1,7 @@ +polkit.addRule(function(action, subject) { + if (action.id.indexOf("org.freedesktop.ModemManager1.") == 0 && + subject.isInGroup("plugdev")) { + + return polkit.Result.YES; + } +}); diff --git a/temp/sxmo-utils/rootfs-etc-polkit-1-rules.d-50-org.freedesktop.NetworkManager.rules b/temp/sxmo-utils/rootfs-etc-polkit-1-rules.d-50-org.freedesktop.NetworkManager.rules new file mode 100644 index 000000000..8e9465c4f --- /dev/null +++ b/temp/sxmo-utils/rootfs-etc-polkit-1-rules.d-50-org.freedesktop.NetworkManager.rules @@ -0,0 +1,5 @@ +polkit.addRule(function(action, subject) { + if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("netdev")) { + return polkit.Result.YES; + } +});