Here is an updated version of the patch (ensuring we echo a warning if systemctl enable fails) after discussing with Laurent.

There seems to be one case failing due to the autogenerated gdm3 service script from the LSB version which is making systemctl enable --force gdm3 failing, investigating.

Cheers,
Didier
diff -Nru gdm3-3.14.1/debian/changelog gdm3-3.14.1/debian/changelog
--- gdm3-3.14.1/debian/changelog        2014-11-09 18:16:03.000000000 +0100
+++ gdm3-3.14.1/debian/changelog        2014-11-20 09:44:14.000000000 +0100
@@ -1,3 +1,11 @@
+gdm3 (3.14.1-4) UNRELEASED; urgency=medium
+
+  * debian/patches/92_systemd_unit.patch, debian/gdm3.postinst:
+    - Using Alias and systemctl to handle systemd unit alternatives.
+      Closes: #764607
+
+ -- Didier Roche <didro...@ubuntu.com>  Thu, 20 Nov 2014 09:40:25 +0100
+
 gdm3 (3.14.1-3) unstable; urgency=medium
 
   * 18_all_displays_transient.patch: fix autologin for the initial 
diff -Nru gdm3-3.14.1/debian/gdm3.postinst gdm3-3.14.1/debian/gdm3.postinst
--- gdm3-3.14.1/debian/gdm3.postinst    2014-04-27 15:07:16.000000000 +0200
+++ gdm3-3.14.1/debian/gdm3.postinst    2014-11-20 09:45:01.000000000 +0100
@@ -40,21 +40,17 @@
   fi
 fi
 
-DEFAULT_SERVICE=/etc/systemd/system/display-manager.service
+DEFAULT_SERVICE=display-manager.service
+SERVICE=$(basename $(cat "$DEFAULT_DISPLAY_MANAGER_FILE")).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
+if [ "$1" = configure ] && [ -x /bin/systemctl ]; then
+  if [ $(systemctl is-enabled "$DEFAULT_SERVICE") = masked ]; then
+    echo "Display manager service is masked" >&2
   else
-    rm -f "$DEFAULT_SERVICE"
+    [ -d /run/systemd/system ] && systemctl daemon-reload
+    if [ ! `systemctl enable --force $SERVICE 2>/dev/null` ]; then
+      echo "WARNING: $SERVICE is the selected default display manager but does 
not have a systemd service" >&2
+    fi
   fi
 fi
 
diff -Nru gdm3-3.14.1/debian/patches/92_systemd_unit.patch 
gdm3-3.14.1/debian/patches/92_systemd_unit.patch
--- gdm3-3.14.1/debian/patches/92_systemd_unit.patch    2014-04-27 
14:44:32.000000000 +0200
+++ gdm3-3.14.1/debian/patches/92_systemd_unit.patch    2014-11-20 
09:43:34.000000000 +0100
@@ -1,8 +1,8 @@
-Index: gdm3-3.12.1/data/gdm.service.in
+Index: gdm3-3.14.1/data/gdm.service.in
 ===================================================================
---- gdm3-3.12.1.orig/data/gdm.service.in       2014-04-27 14:40:14.210580120 
+0200
-+++ gdm3-3.12.1/data/gdm.service.in    2014-04-27 14:43:22.350149176 +0200
-@@ -4,12 +4,15 @@ Conflicts=getty@tty@GDM_INITIAL_VT@.serv
+--- gdm3-3.14.1.orig/data/gdm.service.in
++++ gdm3-3.14.1/data/gdm.service.in
+@@ -4,10 +4,16 @@ Conflicts=getty@tty@GDM_INITIAL_VT@.serv
  After=systemd-user-sessions.service getty@tty@GDM_INITIAL_VT@.service 
plymouth-quit.service
  
  [Service]
@@ -20,6 +20,4 @@
 +#BusName=org.gnome.DisplayManager
  StandardOutput=syslog
  StandardError=inherit
--
--[Install]
--Alias=display-manager.service
+ 
_______________________________________________
Pkg-systemd-maintainers mailing list
Pkg-systemd-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-systemd-maintainers

Reply via email to