From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id 27F9B8C17; Wed, 30 Jul 2025 08:10:21 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 993) id 661148BE6; Wed, 30 Jul 2025 08:10:19 +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=3.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-b6-smtp.messagingengine.com (fhigh-b6-smtp.messagingengine.com [202.12.124.157]) by atuin.qyliss.net (Postfix) with ESMTPS id 87AE48B75 for ; Wed, 30 Jul 2025 08:10:18 +0000 (UTC) Received: from phl-compute-05.internal (phl-compute-05.phl.internal [10.202.2.45]) by mailfhigh.stl.internal (Postfix) with ESMTP id 749D97A2398; Wed, 30 Jul 2025 04:10:17 -0400 (EDT) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-05.internal (MEProxy); Wed, 30 Jul 2025 04:10:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alyssa.is; h=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=fm2; t=1753863017; x=1753949417; bh=CbX3lzx1MQ ZCL+/qqMvaVNuXdZE9GgWNMOunPydVyz0=; b=gqESABe5CNrgc0G11nbFhcUuZJ GV5sbBjuOxAQEdmRmjggHZ/w0w+WtEBnp72Z8MLB51S+yVPtngoMiKcXSqovHybU F1C/weQrpkfFG2SHkgvOYTxzZDTct6ZGEwyo0kbtrlkjPvB6f/BOJz9nGxiRAdBg gCTLPaTouY/GRq7uDWOcs9cSsRaHqqPcK2qNE4Y/2LL6N9ZaQdpsSQNGhPIJt/0n th8a1WhZXuZOX5hIXOFoPGRRmwtZfbrke/xk0FGO7OdDnwkWaDNtQMsx1Mv+TAcW Bs2ydTvHZMqVrqoBFxkwIFcRKbQoyvHhKRH2Kg279HroAZm0eu5yshzaEsYA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=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=fm3; t= 1753863017; x=1753949417; bh=CbX3lzx1MQZCL+/qqMvaVNuXdZE9GgWNMOu nPydVyz0=; b=kRH50VgSanzxLNG5TdUOEU/3Ph8X2xBO8nY63KgKTRCCk6J2uRO rIyhlGBCx6bmzgyO4Pl7zzIcE8rwS2Mwqa6IoYZJqvaUny+yFwlnH3KIQQAlyYUP 2EZ+xOnQrizJkmC4qqAKKInteg4q2XX34pb0DaiRIfGzPs1MwdNFUsP+H/T1XlvB vvd6jcLO2E6sXE+WpCHL7h/v54XxVpq5E6nc6t4Bic1OCY5NRKEnIlExgvkd+lOE lYgee1hVraZKMHlv25RRmr76cChPAJJijNFYflV6KNgt6FHZY8zNWpqkfZO/kt+I amHRmSQ5n268Jp6wPEdloRyaOCSvywTozpA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdefgdeljeegvdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpefhvffujghffffkgggtsehgtderredttdejnecuhfhrohhmpeetlhihshhsrgcutfho shhsuceohhhisegrlhihshhsrgdrihhsqeenucggtffrrghtthgvrhhnpeffudduffeuff egheeigeejtdekhfduheehfeduheelffettdekiedtgeefgfelheenucevlhhushhtvghr ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehhihesrghlhihsshgrrdhish dpnhgspghrtghpthhtohepvddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepuggv mhhiohgsvghnohhurhesghhmrghilhdrtghomhdprhgtphhtthhopeguvghvvghlsehsph gvtghtrhhumhdqohhsrdhorhhg X-ME-Proxy: Feedback-ID: i12284293:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 30 Jul 2025 04:10:16 -0400 (EDT) Received: by sf.qyliss.net (Postfix, from userid 1000) id B35692E31198C; Wed, 30 Jul 2025 10:10:05 +0200 (CEST) From: Alyssa Ross To: Demi Marie Obenour , Spectrum OS Development Subject: Re: [PATCH v9 2/2] img/app: Run PipeWire and WirePlumber in the VMs In-Reply-To: References: <20250728231303.2416-1-demiobenour@gmail.com> <1139f3559979e28a38e99a0e9486d79dabb3d8a3.1753748336.git.demiobenour@gmail.com> <875xfbdu13.fsf@alyssa.is> Date: Wed, 30 Jul 2025 10:10:03 +0200 Message-ID: <87bjp2cd5w.fsf@alyssa.is> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Message-ID-Hash: 6BIZIFOA4AJO57GSZ5LF5COPIXSNQ6CC X-Message-ID-Hash: 6BIZIFOA4AJO57GSZ5LF5COPIXSNQ6CC X-MailFrom: hi@alyssa.is X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-devel.spectrum-os.org-0; header-match-devel.spectrum-os.org-1; header-match-devel.spectrum-os.org-2; header-match-devel.spectrum-os.org-3; header-match-devel.spectrum-os.org-4; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.9 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Demi Marie Obenour writes: > On 7/29/25 09:08, Alyssa Ross wrote: >> Demi Marie Obenour writes: >>=20 >>> create mode 100644 img/app/etc/pipewire/pipewire.conf >>> create mode 100644 img/app/etc/s6-rc/app/dependencies.d/wireplumber >>> create mode 100644 img/app/etc/s6-rc/pipewire/dependencies.d/dbus >>> create mode 100644 img/app/etc/s6-rc/pipewire/notification-fd >>> create mode 100644 img/app/etc/s6-rc/pipewire/notification-fd.license >>> 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/pipewire/type.license >>> create mode 100644 img/app/etc/s6-rc/wireplumber/dependencies.d/dbus >>> create mode 100644 img/app/etc/s6-rc/wireplumber/dependencies.d/pipewi= re >>> create mode 100644 img/app/etc/s6-rc/wireplumber/run >>> create mode 100644 img/app/etc/s6-rc/wireplumber/type >>> create mode 100644 img/app/etc/s6-rc/wireplumber/type.license >>> create mode 100644 img/app/etc/wireplumber/wireplumber.conf.d/99_spect= rum.conf >>=20 >> We have app depending on wireplumber, but no notification-fd for >> wireplumber. What's actually required here? Does Wireplumber actually >> need to be running (for whatever definition thereof) by the time an >> application starts, or does it just need to start at some reasonable >> point? > > The latter. In systemd terms, this is WantedBy=3D. I will fix this by > having ok-all depend on WirePlumber, while the app no longer does. Yep, that's the right fix. >>> + # PipeWire chooses the node with the highest priority.driver value= as >>> + # graph driver, which is the node that decides when the processing= graph >>> + # is going to run. If both the capture node and playback node are= in >>> + # the same graph, the capture node should be chosen as the driver.= This >>> + # is because the driver gets to choose the rate of the graph and s= o is >>> + # much less likely to xrun. Since capture xruns result in corrupt= ed >>> + # audio recordings, while playback xruns just result in a glitch, = it >>> + # is more important to avoid capture xruns. >>> + # >>> + # When there are multiple sources or sinks that could be used, >>> + # WirePlumber links application nodes to the one with the highest >>> + # priority.session value. In the configuration created here, >>> + # there are two valid audio sources: the virtio sound card's >>> + # capture stream and the monitor of its playback stream. The >>> + # capture stream is the correct choice, so its priority.session >>> + # should be higher. >>> + # >>> + # The recommendation to give the capture device higher values >>> + # for priority.driver and priority.session comes from George >>> + # Kiagiadakis of Collabora, who also provided the values >>> + # used (2000 and 1000) and why they must be different. >>> + # The explanation for why it is more important to avoid >>> + # capture xruns than playback xruns comes from past discussions >>> + # that I (Demi Marie Obenour) had with Wim Taymans. >>=20 >> Just checking: they're okay with being credited, right? (Important for >> me to be confident before mentioning anybody in an immutable log.) > > That's actually not something I had checked. I asked both if they are > okay with this. Should I sent V10 without these, or should I wait > for a response from them? Send a new version without it, and then we can add it in later if you get a response. If the discussion was public, an alternative would be to just link to the discussion. >>> diff --git a/img/app/etc/wireplumber/wireplumber.conf.d/99_spectrum.con= f b/img/app/etc/wireplumber/wireplumber.conf.d/99_spectrum.conf >>> new file mode 100644 >>> index 0000000000000000000000000000000000000000..277e6019c46582afba12af9= b1a27bb16ddd9e804 >>> --- /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 =C2=A9 2019-2021 Collabora Ltd. >>=20 >> Once again I'm surprised any of this is =C2=A9 Collabora=E2=80=A6 > > It's out of an abundance of caution. All of this is taken from > the wireplumber.conf files in Arch and Nixpkgs, which I believe > are just the upstream ones. I suspect you are correct, but > it's much better to keep a copyright notice that is not needed > than to remove one that actually *is* needed. Well, keeping it can also cause problems in the event of relicensing, etc. In a marginal case, I'd keep the notice too, but I just think there's no way there's anything copyrightable remaining in this case. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRV/neXydHjZma5XLJbRZGEIw/wogUCaInTXAAKCRBbRZGEIw/w ohCYAPsH7fW+JLZLQE8irWsrqYGBVu1ZXJ03LQhVW9Z/Aq76bwD+OV2DlZdWtwb1 VI37yU+2ufLaFeX8EfdrG2WzOiliGQo= =9RY6 -----END PGP SIGNATURE----- --=-=-=--