From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by atuin.qyliss.net (Postfix, from userid 993) id BA7749EC3; Thu, 26 Jun 2025 08:36:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DMARC_MISSING,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 Received: from fhigh-b8-smtp.messagingengine.com (fhigh-b8-smtp.messagingengine.com [202.12.124.159]) by atuin.qyliss.net (Postfix) with ESMTP id 635489EC1 for ; Thu, 26 Jun 2025 08:36:31 +0000 (UTC) Received: from phl-compute-03.internal (phl-compute-03.phl.internal [10.202.2.43]) by mailfhigh.stl.internal (Postfix) with ESMTP id B1A3D7A0253; Thu, 26 Jun 2025 04:36:29 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Thu, 26 Jun 2025 04:36:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alyssa.is; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1750926989; x=1751013389; bh=OmD4F3gM9a CQFOpKqDbxL4ouSF/US/RHLVTtQ0V1ZCk=; b=Rq5fku/FFXNeF1msgsPoL1BedV oLmKt31Sx8wgJKKSdfcWOoP54zAK2ZV8Wc4am//Akw82hShK0aYgLotDk0qkXiw2 6Vo3IZPThQZ5IrjEVfm6rMm/gxNyvIa9f7hDpW2g29xAzl1dW8//z9FZwBmErX83 Ps9gf+3SxJHTxumkJZZDSt3Jr27MF+puCoGGFAnxeRutvGG/yJjICZKS5HMMFFgo dZ5uGcH99TU8jf89iicLWeWgKNVRaUGctZqQuWedAXepQ0yP/mXKE7TYuaTqs+6u JiL41PTVwqdY3Pu7p91SfdzLyMJbVMIWukstN0yDLWxUNlonMMR+fvgg6nqg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1750926989; x=1751013389; bh=OmD4F3gM9aCQFOpKqDbxL4ouSF/US/RHLVT tQ0V1ZCk=; b=dUMjIOOwJBPoAD8+Nx9oWAL+GzAgy2x5QQnP6bSZIS2J1FI10Mt kHyUhp/cYAcT6pfUyS23pgXL+8Mq4uNtvdWuKDGj5KXSagtpUNc5wnVNsSWkBKSi daZ+TgICkeca8BS6fIWUrnAm5BLZ3O9adGl3mPAcfCpPYbNZNVtjUtf7kYMPAh2q DI1o6iJHAd/opqpci0Z8IG4D+geZWlRMRnwjgyho3oq72FhjW9PzdedoD0fTz56h SPAgXB/Z/BAjRF9iGwV6gleR7pGgiwyB6wZFnaZlJ13sGpt7qk+OHfvHhySBOEHy 7m4C5tcIxuq8kOk+jVpU7ApB0dgTZgucviA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddvgddvhedukecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpefhvfevufgjfhffkfggtgesghdtreertddttdenucfhrhhomheptehlhihsshgrucft ohhsshcuoehhihesrghlhihsshgrrdhisheqnecuggftrfgrthhtvghrnhepieduffeuie elgfetgfdttddtkeekheekgfehkedufeevteegfeeiffetvdetueevnecuvehluhhsthgv rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhephhhisegrlhihshhsrgdrih hspdhnsggprhgtphhtthhopedvpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopegu vghmihhosggvnhhouhhrsehgmhgrihhlrdgtohhmpdhrtghpthhtohepuggvvhgvlhessh hpvggtthhruhhmqdhoshdrohhrgh X-ME-Proxy: Feedback-ID: i12284293:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 26 Jun 2025 04:36:28 -0400 (EDT) Received: by sf.qyliss.net (Postfix, from userid 1000) id 50FCB25BE3616; Thu, 26 Jun 2025 10:36:27 +0200 (CEST) From: Alyssa Ross To: Demi Marie Obenour Cc: Spectrum OS Development Subject: Re: [RFC PATCH] Run PipeWire and WirePlumber in the VMs In-Reply-To: <2ff17d00-6603-46ae-9eb0-d4fa179db86c@gmail.com> References: <2ff17d00-6603-46ae-9eb0-d4fa179db86c@gmail.com> Date: Thu, 26 Jun 2025 10:35:49 +0200 Message-ID: <87sejmlx22.fsf@alyssa.is> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" List-Id: --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Demi Marie Obenour writes: > WirePlumber is completely overkill as a session manager here, and > ideally a trivial session manager would be used instead. Also, this > code has seen absolutely no testing beyond "it builds", not least > because there is no way to add a virtio-sound device to Cloud Hypervisor > yet and I haven't tried using QEMU TCG. > > Signed-off-by: Demi Marie Obenour We indeed can't test sound works, but doat least try running the VM and make sure that it works like it did before! With this applied, the application no longer starts, because the new files weren't added to the Makefile. Well done for figuring out s6 though. :) > --- > img/app/default.nix | 5 ++++- > img/app/etc/fstab | 5 +++-- > .../etc/s6-rc/app/dependencies.d/wireplumber | 0 > img/app/etc/s6-rc/directories/type | 1 + > img/app/etc/s6-rc/directories/up | 11 ++++++++++ > .../s6-rc/pipewire/dependencies.d/directories | 0 > img/app/etc/s6-rc/pipewire/notification-fd | 1 + > img/app/etc/s6-rc/pipewire/run | 20 +++++++++++++++++++ > img/app/etc/s6-rc/pipewire/type | 1 + > .../dependencies.d/directories | 0 > img/app/etc/s6-rc/wayland-proxy-virtwl/run | 11 ---------- > .../etc/s6-rc/wireplumber/dependencies.d/dbus | 0 > .../s6-rc/wireplumber/dependencies.d/pipewire | 0 > img/app/etc/s6-rc/wireplumber/run | 16 +++++++++++++++ > img/app/etc/s6-rc/wireplumber/type | 1 + > 15 files changed, 58 insertions(+), 14 deletions(-) > create mode 100644 img/app/etc/s6-rc/app/dependencies.d/wireplumber > create mode 100644 img/app/etc/s6-rc/directories/type > create mode 100644 img/app/etc/s6-rc/directories/up > create mode 100644 img/app/etc/s6-rc/pipewire/dependencies.d/directories > create mode 100644 img/app/etc/s6-rc/pipewire/notification-fd > create mode 100644 img/app/etc/s6-rc/pipewire/run > create mode 100644 img/app/etc/s6-rc/pipewire/type > create mode 100644 img/app/etc/s6-rc/wayland-proxy-virtwl/dependencies.d= /directories > create mode 100644 img/app/etc/s6-rc/wireplumber/dependencies.d/dbus > create mode 100644 img/app/etc/s6-rc/wireplumber/dependencies.d/pipewire > create mode 100644 img/app/etc/s6-rc/wireplumber/run > create mode 100644 img/app/etc/s6-rc/wireplumber/type Files that can't include comments need to have .license files next to them for "reuse lint" to pass. (This is one of the checks included if you do a full release build by building release.nix.) > diff --git a/img/app/default.nix b/img/app/default.nix > index a196205..32ddb67 100644 > --- a/img/app/default.nix > +++ b/img/app/default.nix > @@ -8,7 +8,7 @@ pkgsStatic.callPackage ( > { lib, stdenvNoCC, runCommand, writeClosure > , erofs-utils, jq, s6-rc, util-linux > , busybox, cacert, dejavu_fonts, execline, kmod, linux_latest, mdevd, s6 > -, s6-linux-init, xdg-desktop-portal-spectrum, > +, s6-linux-init, xdg-desktop-portal-spectrum > }: >=20=20 > let > @@ -48,6 +48,9 @@ let > pkgs.xwayland > pkgs.xdg-desktop-portal > pkgs.xdg-desktop-portal-gtk > + # Depends on pulseaudio libs > + pkgs.pipewire > + pkgs.wireplumber > ]; > })).fhsenv; > in > diff --git a/img/app/etc/fstab b/img/app/etc/fstab > index a95088b..40aa3bd 100644 > --- a/img/app/etc/fstab > +++ b/img/app/etc/fstab > @@ -1,7 +1,8 @@ > # SPDX-License-Identifier: CC0-1.0 > # SPDX-FileCopyrightText: 2020-2022 Alyssa Ross > proc /proc proc defaults 0 0 > -devpts /dev/pts devpts defaults,gid=3D4,mode=3D620 0 0 > +devpts /dev/pts devpts defaults,gid=3D4,mode=3D620 0 0 > tmpfs /dev/shm tmpfs defaults 0 0 > sysfs /sys sysfs defaults 0 0 > -tmpfs /tmp tmpfs defaults 0 0 > +tmpfs /tmp tmpfs defaults,mode=3D1755 0 0 Want to send the permissions changes from this patch separately? We probably need to check the permissions for all mountpoints across hosts and guests. > +tmpfs /run tmpfs defaults 0 0 We already have /run from s6-linux-init. > diff --git a/img/app/etc/s6-rc/pipewire/notification-fd b/img/app/etc/s6-= rc/pipewire/notification-fd > new file mode 100644 > index 0000000..7ed6ff8 > --- /dev/null > +++ b/img/app/etc/s6-rc/pipewire/notification-fd > @@ -0,0 +1 @@ > +5 > diff --git a/img/app/etc/s6-rc/pipewire/run b/img/app/etc/s6-rc/pipewire/= run > new file mode 100644 This needs to be executable. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRV/neXydHjZma5XLJbRZGEIw/wogUCaF0GZQAKCRBbRZGEIw/w ouQxAQD45kyhso8tNb0xcEmTEvQPPN1SwY+WzYetJnbtHFWxrQD+IO43izn5kWgf wO1LgllVvuzoHxk1zeRtH3iuiwm05Qg= =qQM9 -----END PGP SIGNATURE----- --=-=-=--