diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 14:30:15 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 14:30:15 +0000 |
commit | 2a6094fa353e2f347967efc1a52bb3c7c6a2f62f (patch) | |
tree | 89fbd8df24d08609dee3f34ff1c3caedf1d26a68 /debian/gdm3.postinst | |
parent | Adding upstream version 3.38.2.1. (diff) | |
download | gdm3-debian.tar.xz gdm3-debian.zip |
Adding debian version 3.38.2.1-1.debian/3.38.2.1-1debian
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/gdm3.postinst')
-rw-r--r-- | debian/gdm3.postinst | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/debian/gdm3.postinst b/debian/gdm3.postinst new file mode 100644 index 0000000..bcf8366 --- /dev/null +++ b/debian/gdm3.postinst @@ -0,0 +1,74 @@ +#!/bin/sh + +set -e + +. /usr/share/debconf/confmodule + +THIS_PACKAGE=gdm3 +DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager + +# creating Debian-gdm group if it isn't already there +if ! getent group Debian-gdm >/dev/null; then + addgroup --system --force-badname --quiet Debian-gdm +fi + +# creating Debian-gdm user if it isn't already there +if ! getent passwd Debian-gdm >/dev/null; then + adduser --system --force-badname --quiet \ + --ingroup Debian-gdm \ + --home /var/lib/gdm3 --no-create-home \ + --shell /bin/false \ + Debian-gdm + usermod -c "Gnome Display Manager" Debian-gdm +fi + +# debconf is not a registry, so we only fiddle with the default file if +# the configure script requested an update +if [ -e $DEFAULT_DISPLAY_MANAGER_FILE.debconf-update ]; then + rm -f $DEFAULT_DISPLAY_MANAGER_FILE.debconf-update + if db_get shared/default-x-display-manager; then + # workaround debconf passthru bug (#379198) + if [ -z "$RET" ]; then + RET="$THIS_PACKAGE" + fi + if [ "$THIS_PACKAGE" != "$RET" ]; then + echo "Please be sure to run \"dpkg --configure $RET\"." + fi + if db_get "$RET"/daemon_name; then + echo "$RET" > $DEFAULT_DISPLAY_MANAGER_FILE + fi + fi +fi + +DEFAULT_SERVICE=/etc/systemd/system/display-manager.service +# set default-display-manager systemd service link according to our config +if [ "$1" = configure ] && [ -d /etc/systemd/system/ ]; then + if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ]; then + SERVICE=/lib/systemd/system/$(basename $(cat "$DEFAULT_DISPLAY_MANAGER_FILE")).service + if [ -h "$DEFAULT_SERVICE" ] && [ $(readlink "$DEFAULT_SERVICE") = /dev/null ]; then + echo "Display manager service is masked" >&2 + elif [ -e "$SERVICE" ]; then + ln -sf "$SERVICE" "$DEFAULT_SERVICE" + else + echo "WARNING: $SERVICE is the selected default display manager but does not exist" >&2 + rm -f "$DEFAULT_SERVICE" + fi + else + rm -f "$DEFAULT_SERVICE" + fi +fi + +ucf --debconf-ok --three-way /usr/share/gdm/greeter.dconf-defaults /etc/gdm3/greeter.dconf-defaults +ucfr gdm3 /etc/gdm3/greeter.dconf-defaults + +# debconf hangs if gdm3 gets started below without this +db_stop || true + +chown -R Debian-gdm:Debian-gdm /var/lib/gdm3 + +#DEBHELPER# + +if [ -x /etc/init.d/gdm3 ]; then + update-rc.d gdm3 defaults >/dev/null 2>&1 + invoke-rc.d gdm3 reload || true +fi |