From: Demi Marie Obenour <demiobenour@gmail.com>
To: Alyssa Ross <hi@alyssa.is>, devel@spectrum-os.org
Subject: Re: [PATCH 2/3] img/app: dbus: don't listen on VSOCK
Date: Thu, 13 Nov 2025 12:46:20 -0500 [thread overview]
Message-ID: <c54e63ea-73fa-4251-b8c2-6b86916bef74@gmail.com> (raw)
In-Reply-To: <20251113111038.39098-2-hi@alyssa.is>
[-- Attachment #1.1.1: Type: text/plain, Size: 6922 bytes --]
On 11/13/25 06:10, Alyssa Ross wrote:
> After working on it for a while, I decided that it complicated the
> D-Bus security model too much to upstream VSOCK support for the bus.
> Proxying D-Bus with socat will allow us to drop the D-Bus VSOCK
> patches.
>
> The new dbus-vsock service starts before dbus-daemon to ensure that
> VSOCK connections can be received as soon as
> org.freedesktop.impl.portal.desktop.spectrum is started. When a
> connection is received (which should only be after the bus is up and
> has started org.freedesktop.impl.portal.desktop.spectrum), it will be
> relayed to the bus.
>
> Sadly we do still need to allow ANONYMOUS authentication for now[1].
Could this be worked around with a proxy?
> Signed-off-by: Alyssa Ross <hi@alyssa.is>
> Link: https://github.com/z-galaxy/zbus/issues/1003#issuecomment-3523214990 [1]
> ---
> img/app/default.nix | 4 +-
> img/app/file-list.mk | 5 +++
> img/app/image/etc/dbus-1/session.conf | 1 -
> .../XDG_DESKTOP_PORTAL_SPECTRUM_GUEST_PORT | 1 +
> ...DESKTOP_PORTAL_SPECTRUM_GUEST_PORT.license | 2 +
> .../etc/s6-rc/dbus-vsock/notification-fd | 1 +
> .../s6-rc/dbus-vsock/notification-fd.license | 2 +
> img/app/image/etc/s6-rc/dbus-vsock/run | 17 +++++++
> img/app/image/etc/s6-rc/dbus-vsock/type | 1 +
> .../image/etc/s6-rc/dbus-vsock/type.license | 2 +
> .../etc/s6-rc/dbus/dependencies.d/dbus-vsock | 0
> img/app/image/etc/s6-rc/dbus/run | 2 -
> tools/default.nix | 5 +--
> tools/xdg-desktop-portal-spectrum/meson.build | 3 --
> .../xdg-desktop-portal-spectrum.c | 45 ++++++-------------
> 15 files changed, 49 insertions(+), 42 deletions(-)
> create mode 100644 img/app/image/etc/s6-linux-init/env/XDG_DESKTOP_PORTAL_SPECTRUM_GUEST_PORT
> create mode 100644 img/app/image/etc/s6-linux-init/env/XDG_DESKTOP_PORTAL_SPECTRUM_GUEST_PORT.license
> create mode 100644 img/app/image/etc/s6-rc/dbus-vsock/notification-fd
> create mode 100644 img/app/image/etc/s6-rc/dbus-vsock/notification-fd.license
> create mode 100755 img/app/image/etc/s6-rc/dbus-vsock/run
> create mode 100644 img/app/image/etc/s6-rc/dbus-vsock/type
> create mode 100644 img/app/image/etc/s6-rc/dbus-vsock/type.license
> create mode 100644 img/app/image/etc/s6-rc/dbus/dependencies.d/dbus-vsock
>
> diff --git a/img/app/default.nix b/img/app/default.nix
> index 08cb2cd..6490ac2 100644
> --- a/img/app/default.nix
> +++ b/img/app/default.nix
> @@ -71,6 +71,8 @@ let
> pkgs.s6
> pkgs.s6-linux-init
> pkgs.s6-rc
> + pkgs.socat
> + pkgs.systemd
> pkgs.wayland-proxy-virtwl
> pkgs.wireplumber
> pkgs.xdg-desktop-portal
> @@ -88,7 +90,7 @@ let
> } ''
> mkdir $out
> lndir -ignorelinks -silent ${appimageFhsenv} $out
> - rm $out/etc/dbus-1/session.conf
> + rm $out/etc/dbus-1/session.conf $out/usr/bin/init
> '';
> in
>
> diff --git a/img/app/file-list.mk b/img/app/file-list.mk
> index 0b4d3d1..6934975 100644
> --- a/img/app/file-list.mk
> +++ b/img/app/file-list.mk
> @@ -17,6 +17,7 @@ FILES = \
> image/etc/s6-linux-init/env/GTK_USE_PORTAL \
> image/etc/s6-linux-init/env/NIX_XDG_DESKTOP_PORTAL_DIR \
> image/etc/s6-linux-init/env/WAYLAND_DISPLAY \
> + image/etc/s6-linux-init/env/XDG_DESKTOP_PORTAL_SPECTRUM_GUEST_PORT \
> image/etc/s6-linux-init/env/XDG_RUNTIME_DIR \
> image/etc/s6-linux-init/run-image/service/getty-hvc0/run \
> image/etc/s6-linux-init/run-image/service/s6-linux-init-shutdownd/notification-fd \
> @@ -39,6 +40,10 @@ S6_RC_FILES = \
> image/etc/s6-rc/app/dependencies.d/wayland-proxy-virtwl \
> image/etc/s6-rc/app/run \
> image/etc/s6-rc/app/type \
> + image/etc/s6-rc/dbus-vsock/notification-fd \
> + image/etc/s6-rc/dbus-vsock/run \
> + image/etc/s6-rc/dbus-vsock/type \
> + image/etc/s6-rc/dbus/dependencies.d/dbus-vsock \
> image/etc/s6-rc/dbus/notification-fd \
> image/etc/s6-rc/dbus/run \
> image/etc/s6-rc/dbus/type \
> diff --git a/img/app/image/etc/dbus-1/session.conf b/img/app/image/etc/dbus-1/session.conf
> index 751a788..d31f4b9 100644
> --- a/img/app/image/etc/dbus-1/session.conf
> +++ b/img/app/image/etc/dbus-1/session.conf
> @@ -19,7 +19,6 @@
> default config file with an address override on the command
> line, because command line address can only be given once.
> So that's why we need a whole custom session.conf. -->
> - <listen>vsock:</listen>
> <listen>unix:path=/run/session-bus</listen>
>
> <auth>EXTERNAL</auth>
> diff --git a/img/app/image/etc/s6-linux-init/env/XDG_DESKTOP_PORTAL_SPECTRUM_GUEST_PORT b/img/app/image/etc/s6-linux-init/env/XDG_DESKTOP_PORTAL_SPECTRUM_GUEST_PORT
> new file mode 100644
> index 0000000..037ba97
> --- /dev/null
> +++ b/img/app/image/etc/s6-linux-init/env/XDG_DESKTOP_PORTAL_SPECTRUM_GUEST_PORT
> @@ -0,0 +1 @@
> +219
> diff --git a/img/app/image/etc/s6-linux-init/env/XDG_DESKTOP_PORTAL_SPECTRUM_GUEST_PORT.license b/img/app/image/etc/s6-linux-init/env/XDG_DESKTOP_PORTAL_SPECTRUM_GUEST_PORT.license
> new file mode 100644
> index 0000000..0d3d47c
> --- /dev/null
> +++ b/img/app/image/etc/s6-linux-init/env/XDG_DESKTOP_PORTAL_SPECTRUM_GUEST_PORT.license
> @@ -0,0 +1,2 @@
> +SPDX-License-Identifier: CC0-1.0
> +SPDX-FileCopyrightText: 2025 Alyssa Ross <hi@alyssa.is>
> diff --git a/img/app/image/etc/s6-rc/dbus-vsock/notification-fd b/img/app/image/etc/s6-rc/dbus-vsock/notification-fd
> new file mode 100644
> index 0000000..00750ed
> --- /dev/null
> +++ b/img/app/image/etc/s6-rc/dbus-vsock/notification-fd
> @@ -0,0 +1 @@
> +3
> diff --git a/img/app/image/etc/s6-rc/dbus-vsock/notification-fd.license b/img/app/image/etc/s6-rc/dbus-vsock/notification-fd.license
> new file mode 100644
> index 0000000..0d3d47c
> --- /dev/null
> +++ b/img/app/image/etc/s6-rc/dbus-vsock/notification-fd.license
> @@ -0,0 +1,2 @@
> +SPDX-License-Identifier: CC0-1.0
> +SPDX-FileCopyrightText: 2025 Alyssa Ross <hi@alyssa.is>
> diff --git a/img/app/image/etc/s6-rc/dbus-vsock/run b/img/app/image/etc/s6-rc/dbus-vsock/run
> new file mode 100755
> index 0000000..37fae7d
> --- /dev/null
> +++ b/img/app/image/etc/s6-rc/dbus-vsock/run
> @@ -0,0 +1,17 @@
> +#!/bin/execlineb -P
> +# SPDX-License-Identifier: EUPL-1.2+
> +# SPDX-FileCopyrightText: 2025 Alyssa Ross <hi@alyssa.is>
> +
> +if { modprobe vsock }
> +
> +export LISTEN_FDS 1
> +getpid LISTEN_PID
> +export SYSTEMD_LOG_LEVEL notice
> +
> +systemd-socket-activate -l vsock::219 --now
> +
> +# Notify readiness.
> +if { fdmove 1 3 echo }
> +fdclose 3
> +
> +socat ACCEPT-FD:4,fork UNIX-CONNECT:/run/session-bus
I'd prefer to use NOTIFY_SOCKET here.
--
Sincerely,
Demi Marie Obenour (she/her/hers)
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 7253 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2025-11-13 17:46 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-13 11:10 [PATCH 1/3] img/app: move init to /usr/bin Alyssa Ross
2025-11-13 11:10 ` [PATCH 2/3] img/app: dbus: don't listen on VSOCK Alyssa Ross
2025-11-13 17:46 ` Demi Marie Obenour [this message]
2025-11-13 17:56 ` Alyssa Ross
2025-11-13 19:32 ` Demi Marie Obenour
2025-11-14 11:45 ` Alyssa Ross
2025-11-14 22:15 ` Demi Marie Obenour
2025-11-17 22:08 ` Demi Marie Obenour
2025-11-17 22:19 ` Demi Marie Obenour
2025-11-18 15:03 ` Alyssa Ross
2025-11-13 11:10 ` [PATCH 3/3] pkgs: remove dbus overlay Alyssa Ross
2025-11-17 22:13 ` Demi Marie Obenour
2025-11-18 15:03 ` Alyssa Ross
2025-11-17 22:07 ` [PATCH 1/3] img/app: move init to /usr/bin Demi Marie Obenour
2025-11-18 15:03 ` Alyssa Ross
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c54e63ea-73fa-4251-b8c2-6b86916bef74@gmail.com \
--to=demiobenour@gmail.com \
--cc=devel@spectrum-os.org \
--cc=hi@alyssa.is \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://spectrum-os.org/git/crosvm
https://spectrum-os.org/git/doc
https://spectrum-os.org/git/mktuntap
https://spectrum-os.org/git/nixpkgs
https://spectrum-os.org/git/spectrum
https://spectrum-os.org/git/ucspi-vsock
https://spectrum-os.org/git/www
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).