summaryrefslogtreecommitdiffstats
path: root/debian/systemd.postinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/systemd.postinst')
-rw-r--r--debian/systemd.postinst87
1 files changed, 87 insertions, 0 deletions
diff --git a/debian/systemd.postinst b/debian/systemd.postinst
new file mode 100644
index 0000000..26d8f07
--- /dev/null
+++ b/debian/systemd.postinst
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+set -e
+
+_systemctl() {
+ if [ -z "$DPKG_ROOT" ] && [ -d /run/systemd/system ]; then
+ systemctl "$@"
+ fi
+}
+
+_update_catalog() {
+ journalctl ${DPKG_ROOT:+--root="$DPKG_ROOT"} --update-catalog || true
+}
+
+_update_binfmt() {
+ # If binfmt-support is installed and active do not restart
+ # systemd-binfmt.service. It will unregister all currently registered
+ # binary formats in ExecStop and not all packages with a binfmt-support
+ # configuration ship a corresponding binfmt.d snippet yet.
+ # Once this is the case, this additional safety check can be removed.
+ if ! _systemctl -q is-active binfmt-support.service; then
+ _systemctl try-restart systemd-binfmt.service || true
+ fi
+}
+
+# Update Message Catalogs database and binfmt registrations in response to dpkg triggers
+if [ "$1" = "triggered" ]; then
+ shift
+ for trigger in $@; do
+ case $trigger in
+ /usr/lib/systemd/catalog)
+ _update_catalog
+ ;;
+ /usr/lib/binfmt.d)
+ _update_binfmt
+ ;;
+ esac
+ done
+ exit 0
+fi
+
+# Enable getty and remote-fs.target by default on new installs
+if [ -z "$2" ]; then
+ systemctl ${DPKG_ROOT:+--root="$DPKG_ROOT"} enable getty@tty1.service || true
+ systemctl ${DPKG_ROOT:+--root="$DPKG_ROOT"} enable remote-fs.target || true
+fi
+
+# Enable systemd-pstore by default on new installs and upgrades, see #952767
+if dpkg --compare-versions "$2" lt "245.4-4~"; then
+ systemctl ${DPKG_ROOT:+--root="$DPKG_ROOT"} enable systemd-pstore.service || true
+fi
+
+# Create /etc/machine-id
+systemd-machine-id-setup ${DPKG_ROOT:+--root="$DPKG_ROOT"}
+
+# Enable persistent journal, in auto-mode, by default on new installs and upgrades
+if dpkg --compare-versions "$2" lt "244.1-2~"; then
+ mkdir -p "$DPKG_ROOT/var/log/journal"
+fi
+
+# Initial update of the Message Catalogs database
+_update_catalog
+
+if dpkg --compare-versions "$2" lt-nl "245.4-4~"; then
+ # systemd-pstore.service is now enabled via sysinit.target
+ rm -f /etc/systemd/system/systemd-remount-fs.service.wants/systemd-pstore.service
+ rmdir --ignore-fail-on-non-empty /etc/systemd/system/systemd-remount-fs.service.wants 2> /dev/null || true
+fi
+
+if dpkg --compare-versions "$2" lt-nl "245.4-5~"; then
+ # Clean up removed ondemand service
+ rm -f /etc/systemd/system/multi-user.target.wants/ondemand.service
+fi
+
+#DEBHELPER#
+
+if [ -n "$2" ]; then
+ _systemctl daemon-reexec || true
+ # do not restart logind
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919509
+ if dpkg --compare-versions "$2" lt-nl "246.2-2~"; then
+ # the socket configuration changed
+ _systemctl stop systemd-networkd.socket || true
+ fi
+ _systemctl try-restart systemd-networkd.service || true
+ _systemctl try-restart systemd-journald.service || true
+fi