diff --git a/dbus-kill-process-with-session b/dbus-kill-process-with-session index c60199fe182f57291727996d616d0655fa59cad8..f89156832acfd62b9b44ee8c582ade6b5e10ce80 100644 --- a/dbus-kill-process-with-session +++ b/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/dbus-systemd-sysusers.conf b/dbus-systemd-sysusers.conf new file mode 100644 index 0000000000000000000000000000000000000000..c98ae40de202aebf94c764ebb4762793099a32c9 --- /dev/null +++ b/dbus-systemd-sysusers.conf @@ -0,0 +1,2 @@ +#Type Name ID GECOS Home directory Shell +u dbus 81 "System Message Bus" - - diff --git a/dbus.spec b/dbus.spec index 7ca550b1a1217001b1f954be4be712214cab2048..909b4c957d1c56a4f5d245777f1fdc61274fa55b 100644 --- a/dbus.spec +++ b/dbus.spec @@ -1,4 +1,4 @@ -%define anolis_release .0.2 +%define anolis_release .0.1 %global _hardened_build 1 %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} @@ -21,7 +21,7 @@ Name: dbus Epoch: 1 Version: 1.12.8 -Release: 18%{anolis_release}%{?dist}.1 +Release: 23%{anolis_release}%{?dist} Summary: D-BUS message bus Group: System Environment/Libraries @@ -35,6 +35,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 @@ -229,10 +230,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 @@ -434,16 +438,26 @@ popd %doc AUTHORS ChangeLog HACKING NEWS README %changelog -* Fri Nov 04 2022 Zhao Hang - 1.12.8-18.0.2.1 -- Update requires - -* Thu Sep 22 2022 Zhao Hang - 1.12.8-18.0.1.1 +* Tue Jan 03 2023 Zhao Hang - 1.12.8-23.0.1 - Add doc sub package, requires and provides -* 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 diff --git a/dist b/dist new file mode 100644 index 0000000000000000000000000000000000000000..9c0e36ec42a2d9bfefacb21ac6354c9ddd910533 --- /dev/null +++ b/dist @@ -0,0 +1 @@ +an8