-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
main: Update D-Bus activation environment also on non-systemd systems #1038
main: Update D-Bus activation environment also on non-systemd systems #1038
Conversation
On systems without systemd, use zbus to update D-Bus activation environment with `WAYLAND_DISPLAY` and `DISPLAY` variables. Fixes pop-os#1037
if let state::BackendData::Kms(_) = &self.backend { | ||
#[cfg(feature = "systemd")] | ||
systemd::ready(&self.common); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking about replacing the systemd::ready
entirely with dbus::ready
, I think that should work as well. What's good about the dbus solution is not calling external binaries. For now I didn't remove systemd::ready
in case you consider that too intrusive. I would love to hear your thoughts here.
What I can confirm is that this patch fixes flatpak Steam on my Gentoo+openrc installation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The systemd environment is still something separate from the dbus environment, the dbus-broker just happens to import it on systems with systemd.
Just updating the dbus activation environment would this break e.g. systemd user services. I think this is a sensible solution. If calling external binaries would really be a problem, we could also trigger the systemd interface via dbus, but given this is a one time startup thing, I wouldn't bother.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense, thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks!
if let state::BackendData::Kms(_) = &self.backend { | ||
#[cfg(feature = "systemd")] | ||
systemd::ready(&self.common); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The systemd environment is still something separate from the dbus environment, the dbus-broker just happens to import it on systems with systemd.
Just updating the dbus activation environment would this break e.g. systemd user services. I think this is a sensible solution. If calling external binaries would really be a problem, we could also trigger the systemd interface via dbus, but given this is a one time startup thing, I wouldn't bother.
On systems without systemd, use zbus to update D-Bus activation environment with
WAYLAND_DISPLAY
andDISPLAY
variables.Fixes #1037