diff --git a/SOURCES/dbus-kill-process-with-session b/SOURCES/dbus-kill-process-with-session index c60199f..f891568 100644 --- a/SOURCES/dbus-kill-process-with-session +++ b/SOURCES/dbus-kill-process-with-session @@ -6,11 +6,22 @@ exec >& /dev/null -trap 'kill -TERM $1 $(jobs -p)' EXIT +MONITOR_READY_FILE=$(mktemp dbus-session-monitor.XXXXXX --tmpdir) + +trap 'rm -f "${MONITOR_READY_FILE}"; kill -TERM $1; kill -HUP $(jobs -p)' EXIT export GVFS_DISABLE_FUSE=1 -coproc SESSION_MONITOR (gio monitor -f "/run/systemd/sessions/${XDG_SESSION_ID}") +coproc SESSION_MONITOR (gio monitor -f "/run/systemd/sessions/${XDG_SESSION_ID}" "${MONITOR_READY_FILE}") + +# Poll until the gio monitor command is actively monitoring +until + touch "${MONITOR_READY_FILE}" + read -t 0.5 -u ${SESSION_MONITOR[0]} +do + continue +done +# Block until the session is closed while grep -q ^State=active <(loginctl show-session $XDG_SESSION_ID) do read -u ${SESSION_MONITOR[0]} diff --git a/SOURCES/dbus-systemd-sysusers.conf b/SOURCES/dbus-systemd-sysusers.conf new file mode 100644 index 0000000..c98ae40 --- /dev/null +++ b/SOURCES/dbus-systemd-sysusers.conf @@ -0,0 +1,2 @@ +#Type Name ID GECOS Home directory Shell +u dbus 81 "System Message Bus" - - diff --git a/SPECS/dbus.spec b/SPECS/dbus.spec index 4c45f53..9735497 100644 --- a/SPECS/dbus.spec +++ b/SPECS/dbus.spec @@ -19,7 +19,7 @@ Name: dbus Epoch: 1 Version: 1.12.8 -Release: 18%{?dist}.1 +Release: 23%{?dist} Summary: D-BUS message bus Group: System Environment/Libraries @@ -33,6 +33,7 @@ Source1: 00-start-message-bus.sh Source2: ssh-x-forwarding.csh Source3: ssh-x-forwarding.sh Source4: dbus-kill-process-with-session +Source5: dbus-systemd-sysusers.conf Patch0: 0001-tools-Use-Python3-for-GetAllMatchRules.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1725570 Patch1: dbus-1.12.8-fix-CVE-2019-12749.patch @@ -208,10 +209,13 @@ find %{buildroot} -name '*.la' -type f -delete rm -rf %{buildroot}%{_libdir}/cmake %endif +rm -f %{buildroot}%{_sysusersdir}/dbus.conf + install -Dp -m755 %{SOURCE1} %{buildroot}%{_sysconfdir}/X11/xinit/xinitrc.d/00-start-message-bus.sh install -Dp -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/profile.d/ssh-x-forwarding.csh install -p -m644 %{SOURCE3} %{buildroot}%{_sysconfdir}/profile.d/ install -Dp -m755 %{SOURCE4} %{buildroot}%{_libexecdir}/dbus-1/dbus-kill-process-with-session +install -Dp -m644 %{SOURCE5} %{buildroot}%{_sysusersdir}/dbus.conf # Obsolete, but still widely used, for drop-in configuration snippets. install --directory %{buildroot}%{_sysconfdir}/dbus-1/session.d @@ -411,10 +415,23 @@ popd %{_includedir}/* %changelog -* Thu Jun 16 2022 Ray Strode - 1:1.12.8-18.1 +* Tue Sep 06 2022 Ray Strode - 1:1.12.8-23 +- Address race for very short running sessions in SSH + session monitoring script. + Related: #2089362 + +* Tue Aug 09 2022 Ray Strode - 1:1.12.8-22 +- Use hangup signal instead of termination signal to + kill sesssion monitoring script to appeach tcsh. + Related: #2089362 + +* Mon Aug 08 2022 David King - 1:1.12.8-20 +- Override sysusers configuration (#2090397) + +* Thu Jun 16 2022 Ray Strode - 1:1.12.8-19 - Ensure SSH session monitoring script is cleaned up when the session exits. - Resolves: #2097784 + Resolves: #2089362 * Mon Dec 06 2021 Ray Strode - 1.12.8-18 - Ensure session bus started for SSH sessions gets used by those