Demi Marie Obenour writes: > WirePlumber is completely overkill as a session manager here, and > ideally a trivial session manager would be used instead. PipeWire is > configured to listen on the PulseAudio socket, so PulseAudio > compatibility works. pw-record and pw-play both work, and if PulseAudio > is installed paplay and parecord also work. This does install a lot of > unnecessary files into the VMs, which will hopefully be removed > later as part of a debloating effort. > > Only run-qemu has had a virtio-sound device added, as crosvm and Cloud > Hypervisor require a virtio-user sound device and that is more complex > to set up. > > PipeWire and WirePlumber require that "$XDG_RUNTIME_DIR" exist, so > create it in rc.init. Having a separate service to create a single > directory is not worthwhile. > > Signed-off-by: Demi Marie Obenour > --- This looks good to me now, with the exception of a couple of copyright fixes. > diff --git a/img/app/etc/pipewire/pipewire.conf b/img/app/etc/pipewire/pipewire.conf > new file mode 100644 > index 0000000000000000000000000000000000000000..5f1e34145e9dcb1497f7aa7bb0461f0f13931b1a > --- /dev/null > +++ b/img/app/etc/pipewire/pipewire.conf > @@ -0,0 +1,227 @@ > +# SPDX-License-Identifier: MIT > + > +# Copyright © 2018 Wim Taymans > +# Copyright © 2025 Demi Marie Obenour We should keep our own copyright notices in the SPDX-FileCopyrightText format. (It's fine to leave third party ones as they are though.) > diff --git a/img/app/etc/wireplumber/wireplumber.conf.d/99_spectrum.conf b/img/app/etc/wireplumber/wireplumber.conf.d/99_spectrum.conf > new file mode 100644 > index 0000000000000000000000000000000000000000..277e6019c46582afba12af9b1a27bb16ddd9e804 > --- /dev/null > +++ b/img/app/etc/wireplumber/wireplumber.conf.d/99_spectrum.conf > @@ -0,0 +1,42 @@ > +# SPDX-License-Identifier: MIT > +# SPDX-FileCopyrightText: 2019-2021 Collabora Ltd. > +# SPDX-FileCopyrightText: 2025 Demi Marie Obenour > + > +# Copyright © 2019-2021 Collabora Ltd. > +# > +# Permission is hereby granted, free of charge, to any person obtaining a > +# copy of this software and associated documentation files (the "Software"), > +# to deal in the Software without restriction, including without limitation > +# the rights to use, copy, modify, merge, publish, distribute, sublicense, > +# and/or sell copies of the Software, and to permit persons to whom the > +# Software is furnished to do so, subject to the following conditions: > +# > +# The above copyright notice and this permission notice (including the next > +# paragraph) shall be included in all copies or substantial portions of the > +# Software. > +# > +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > +# DEALINGS IN THE SOFTWARE. > + > +wireplumber.profiles = { > + spectrum = { > + # Spectrum VMs are essentially embedded systems, in that they are > + # not at all general-purpose. > + inherits = [ main-embedded ] > + # Disable video and Bluetooth > + hardware.video-capture = disabled > + hardware.bluetooth = disabled > + # Media Session is definitely not running > + check.no-media-session = disabled > + } > +} > + > +wireplumber.settings = { > + # Default to 100% sink volume. The host will adjust this as needed. > + device.routes.default-sink-volume = 1.0 > +} There is no way there is anything left in this file that is non-trivial creative expression owned by Collabora. It should be licensed CC0 like other configuration files in Spectrum, and the Collabora copyright should be dropped.