122 lines
4.6 KiB
Bash
Executable File
122 lines
4.6 KiB
Bash
Executable File
#!/bin/sh
|
|
# Copyright © 2003 Colin Walters <walters@debian.org>
|
|
# Copyright © 2006 Sjoerd Simons <sjoerd@debian.org>
|
|
|
|
set -e
|
|
|
|
MESSAGEUSER=messagebus
|
|
MESSAGEHOME=/var/run/dbus
|
|
LAUNCHER=/usr/lib/dbus-1.0/dbus-daemon-launch-helper
|
|
|
|
# This is what the init script would do, but it's simpler (and less
|
|
# dependent on sysvinit vs. Upstart vs. etc.) if we do it directly.
|
|
reload_dbus_config() {
|
|
[ -S /var/run/dbus/system_bus_socket ] || return 0
|
|
|
|
dbus-send --print-reply --system --type=method_call \
|
|
--dest=org.freedesktop.DBus \
|
|
/ org.freedesktop.DBus.ReloadConfig > /dev/null || true
|
|
}
|
|
|
|
if [ "$1" = triggered ]; then
|
|
reload_dbus_config
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$1" = configure ]; then
|
|
adduser --system \
|
|
--quiet \
|
|
--home /nonexistent \
|
|
--no-create-home \
|
|
--disabled-password \
|
|
--group "$MESSAGEUSER"
|
|
|
|
if ! dpkg-statoverride --list "$LAUNCHER" >/dev/null; then
|
|
dpkg-statoverride --update --add root "$MESSAGEUSER" 4754 "$LAUNCHER"
|
|
fi
|
|
|
|
# This is idempotent, so it's OK to do every time. The system bus' init
|
|
# script does this anyway, but you also have to do this before a session
|
|
# bus will work, so we do this here for the benefit of people starting
|
|
# a temporary session bus in a chroot
|
|
dbus-uuidgen --ensure
|
|
fi
|
|
|
|
if [ "$1" = configure ] && [ -n "$2" ]; then
|
|
# On upgrades, we only reload config, and don't restart (restarting the
|
|
# system bus is not supported by upstream). The code added by
|
|
# dh_installinit -r creates a start action, below.
|
|
|
|
# Recommend a reboot if there is a dbus-daemon running in the same root
|
|
# as us. Deliberately not using anything init-related here, to be
|
|
# init-agnostic: if we get a false positive (at least one dbus-daemon
|
|
# is running but it isn't the system bus) that isn't the end of the
|
|
# world, because it's probably a session bus, so the user needs to
|
|
# log out and back in anyway.
|
|
#
|
|
# Debian has /usr/bin/dbus-daemon, Ubuntu has /bin/dbus-daemon.
|
|
# Look for both.
|
|
if pidof -c /bin/dbus-daemon /usr/bin/dbus-daemon >/dev/null; then
|
|
echo "A reboot is required to replace the running dbus-daemon." >&2
|
|
echo "Please reboot the system when convenient." >&2
|
|
|
|
# trigger an update notification that recommends a reboot
|
|
# (used by unattended-upgrades etc.)
|
|
touch /var/run/reboot-required || true
|
|
|
|
if ! grep -Fqsx dbus /run/reboot-required.pkgs; then
|
|
echo dbus >> /run/reboot-required.pkgs || true
|
|
fi
|
|
|
|
# same thing for the older update-notifier interface
|
|
[ -x /usr/share/update-notifier/notify-reboot-required ] && \
|
|
/usr/share/update-notifier/notify-reboot-required || true
|
|
fi
|
|
|
|
# Clean up old compatibility symlinks that were used to upgrade from
|
|
# Debian 8 to Debian 9. This can be dropped after Debian 10 is released.
|
|
for bus in system session; do
|
|
conf="/etc/dbus-1/${bus}.conf"
|
|
exp_target="/usr/share/dbus-1/${bus}.conf"
|
|
target="$(readlink -f "${conf}")" || continue
|
|
|
|
if [ -h "${conf}" ] && [ "_${target}" = "_${exp_target}" ]; then
|
|
rm -f "${conf}"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# Automatically added by dh_installsystemd/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# In case this system is running systemd, we need to ensure that all
|
|
# necessary tmpfiles (if any) are created before starting.
|
|
if [ -z "${DPKG_ROOT:-}" ] && [ -d /run/systemd/system ] ; then
|
|
systemd-tmpfiles --create dbus.conf >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_installdeb/13.6ubuntu1
|
|
dpkg-maintscript-helper rm_conffile /etc/dbus-1/session.conf 1.10.0-4\~ dbus -- "$@"
|
|
dpkg-maintscript-helper rm_conffile /etc/dbus-1/system.conf 1.10.0-4\~ dbus -- "$@"
|
|
# End automatically added section
|
|
# Automatically added by dh_installinit/13.6ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
if [ -x "/etc/init.d/dbus" ]; then
|
|
update-rc.d dbus defaults >/dev/null || exit 1
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
|
|
|
|
# Do this after the debhelper-generated bits so that dpkg-maintscript-helper
|
|
# will have finished moving configuration files around. We only need to do
|
|
# this for upgrades, not new installations.
|
|
if [ "$1" = configure ] && [ -n "$2" ]; then
|
|
reload_dbus_config
|
|
fi
|
|
|
|
# We don't start dbus.service in postinst, so ensure dbus.socket is running
|
|
if [ "$1" = configure ] && [ -d /run/systemd/system ]; then
|
|
systemctl try-restart sockets.target || true
|
|
fi
|