[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#754314: systemd support for kdm



On Mon, Jul 14, 2014 at 06:34:40PM +0200, Moritz Mühlenhoff wrote:
> On Wed, Jul 09, 2014 at 10:16:07PM +0200, Moritz Muehlenhoff wrote:
> > Source: kde-workspace
> > Severity: wishlist
> > Tags: patch
> > 
> > activation of the service
> > -------------------------
> > 
> > After installation of the updated package the service isn't enabled
> > by default. You'll need to run "systemctl enable kdm.service" for
> > that. I'm not sure how the default display manager is handled if
> > several systemd units are installed, so it's probably for the best 
> > right now.
> 
> Michael Stapelberg explained to me that the unit file needs an additional
> WantedBy=multi-user.target which would resolve this.

This doesn't seem to be sufficient, I still need to enable the service manually
ATM.

Attached, updated patch keeps consolekit on non-Linux.
 
Cheers,
        Moritz
diff -Naur kde-workspace-4.11.9.orig/debian/control kde-workspace-4.11.9/debian/control
--- kde-workspace-4.11.9.orig/debian/control	2014-05-14 19:17:33.000000000 +0200
+++ kde-workspace-4.11.9/debian/control	2014-07-08 22:08:44.848239782 +0200
@@ -16,7 +16,7 @@
                kdepimlibs5-dev (>= 4:4.11),
                libakonadi-dev (>= 1.1.95),
                libboost-dev (>= 1.34),
-               libck-connector-dev,
+               libck-connector-dev [!linux-any],
                libdbus-1-dev,
                libdbusmenu-qt-dev (>= 0.6.0),
                libdevstat-dev [kfreebsd-any],
@@ -27,6 +27,7 @@
                libglu1-mesa-dev,
                libgps-dev (>= 2.90),
                libjpeg-dev,
+               dh-systemd,
                libkactivities-dev (>= 4:4.11),
                libnm-util-dev (>= 0.9) [linux-any],
                libpam0g-dev,
@@ -349,11 +350,11 @@
 Section: x11
 Architecture: any
 Depends: adduser,
-         consolekit,
          debconf | debconf-2.0,
          kde-wallpapers-default,
          kde-workspace-kgreet-plugins (= ${binary:Version}),
          lsb-base (>= 3.2-14),
+         libpam-systemd [linux-any], consolekit [!linux-any],
          ${misc:Depends},
          ${shlibs:Depends}
 Recommends: kde-workspace | x-session-manager | x-window-manager,
diff -Naur kde-workspace-4.11.9.orig/debian/kdm-debian-setup-config kde-workspace-4.11.9/debian/kdm-debian-setup-config
--- kde-workspace-4.11.9.orig/debian/kdm-debian-setup-config	1970-01-01 01:00:00.000000000 +0100
+++ kde-workspace-4.11.9/debian/kdm-debian-setup-config	2014-07-08 22:05:45.072565352 +0200
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+# parameters to support kdm customization
+KDMRC=/etc/kde4/kdm/kdmrc
+BACKGROUNDRC=/etc/kde4/kdm/backgroundrc
+
+# if configuration is changed by kdmtheme or other tools, don't do magick
+if grep -q "^[[:space:]]*Theme=@@@ToBeReplacedByDesktopBase@@@" ${KDMRC}; then
+
+  KDMOVERRIDEDIR=/etc/default/kdm.d
+  KDMCFGDIR=/var/run/kdm
+  KDMCFG=$KDMCFGDIR/kdmrc
+  BACKGROUNDCFG=$KDMCFGDIR/backgroundrc
+  DEFAULT_KDM_THEME=/usr/share/kde4/apps/kdm/themes/elarun
+
+  # we use an alternative kdm master configuration file
+  ARG="$ARG -config $KDMCFG"
+
+  # we generate kdm configuration files
+  genkdmconf --in $KDMCFGDIR 1> /dev/null
+
+  # we source overrides. run-parts sorts the list in a predictable order
+  if [ -d "$KDMOVERRIDEDIR" ]; then
+    for part in $(run-parts --list "$KDMOVERRIDEDIR" 2>/dev/null || true); do
+      . "$part"
+    done
+  fi
+
+  # we update kdm configuration files (only overridden values)
+  [ -n "$USEBACKGROUND" ] && sed -i "s|^#\?UseBackground=.*|UseBackground=$USEBACKGROUND|" $KDMCFG
+  [ -n "$BACKGROUNDCFG" ] && sed -i "s|^#\?BackgroundCfg=.*|BackgroundCfg=$BACKGROUNDCFG|" $KDMCFG
+  [ -n "$USETHEME" ] && sed -i "s|^#\?UseTheme=.*|UseTheme=$USETHEME|" $KDMCFG
+  [ -n "$THEME" ] && [ -e "$THEME" ] && sed -i "s|^#\?Theme=.*|Theme=$THEME|" $KDMCFG
+  [ -n "$LANGUAGE" ] && sed -i "s|^#\?Language=.*|Language=$LANGUAGE|" $KDMCFG
+
+  if grep -q "^[[:space:]]*Wallpaper=stripes.png" ${BACKGROUNDRC}; then
+    [ -n "$WALLPAPER" ] && [ -e "$WALLPAPER" ] && sed -i "s|^#\?Wallpaper=.*|Wallpaper=`readlink -f $WALLPAPER`|" $BACKGROUNDCFG
+  fi
+
+  # usetheme is now on "by default" so we need to be sure Theme is not invalid ...
+  sed -i "s|@@@ToBeReplacedByDesktopBase@@@|$DEFAULT_KDM_THEME|" ${KDMCFG}
+
+  # autologin overrides are useful for live debian environment
+  if [ -n "$AUTOLOGINUSER" ]; then
+    sed -i "s|^#\?AutoLoginEnable=.*|AutoLoginEnable=true|" $KDMCFG
+    sed -i "s|^#\?AutoLoginUser=.*|AutoLoginUser=$AUTOLOGINUSER|" $KDMCFG
+  fi
+  [ -n "$AUTOLOGINDELAY" ] && sed -i "s|^#\?AutoLoginDelay=.*|AutoLoginDelay=$AUTOLOGINDELAY|" $KDMCFG
+  [ -n "$AUTOLOGINAGAIN" ] && sed -i "s|^#\?AutoLoginAgain=.*|AutoLoginAgain=$AUTOLOGINAGAIN|" $KDMCFG
+  [ -n "$AUTOLOGINLOCKED" ] && sed -i "s|^#\?AutoLoginLocked=.*|AutoLoginLocked=$AUTOLOGINLOCKED|" $KDMCFG
+fi
+
+exit 0
diff -Naur kde-workspace-4.11.9.orig/debian/kdm.install kde-workspace-4.11.9/debian/kdm.install
--- kde-workspace-4.11.9.orig/debian/kdm.install	2014-05-14 19:17:33.000000000 +0200
+++ kde-workspace-4.11.9/debian/kdm.install	2014-07-08 22:05:45.072565352 +0200
@@ -171,3 +171,4 @@
 usr/share/kde4/config/kdm.knsrc
 usr/share/kde4/services/kdm.desktop
 usr/share/polkit-1/actions/org.kde.kcontrol.kcmkdm.policy
+debian/kdm-debian-setup-config /usr/sbin
\ Kein Zeilenumbruch am Dateiende.
diff -Naur kde-workspace-4.11.9.orig/debian/kdm.service kde-workspace-4.11.9/debian/kdm.service
--- kde-workspace-4.11.9.orig/debian/kdm.service	1970-01-01 01:00:00.000000000 +0100
+++ kde-workspace-4.11.9/debian/kdm.service	2014-07-08 22:11:36.252121714 +0200
@@ -0,0 +1,14 @@
+[Unit]
+Description=KDM Display Manager
+Conflicts=getty@tty1.service
+After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
+
+[Service]
+ExecStartPre=/usr/sbin/kdm-debian-setup-config
+ExecStart=/usr/bin/kdm -nodaemon -config /var/run/kdm/kdmrc
+Restart=always
+IgnoreSIGPIPE=no
+
+[Install]
+Alias=display-manager.service
+WantedBy=multi-user.target
diff -Naur kde-workspace-4.11.9.orig/debian/rules kde-workspace-4.11.9/debian/rules
--- kde-workspace-4.11.9.orig/debian/rules	2014-05-14 19:17:33.000000000 +0200
+++ kde-workspace-4.11.9/debian/rules	2014-07-08 22:05:45.072565352 +0200
@@ -1,6 +1,6 @@
 #!/usr/bin/make -f
 
-dh = --with=python2
+dh = --with=python2,systemd
 
 include /usr/share/pkg-kde-tools/qt-kde-team/2/debian-qt-kde.mk
 libpkgs_addsubst_allLibraries = kde-workspace-dev

Reply to: