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

Re: Bug#754293: Systemd support for kdm



Control: reassign -1 kdm

On Mi, 09 iul 14, 18:06:22, Moritz Muehlenhoff wrote:
> Source: kdm
> Severity: wishlist
> Tags: patch
> 
> Hi KDE maintainers,
> the attached patch adds systemd support to KDM. It's working well for
> me, but some things are still up for discussion/need work. 
> 
> Some notes:
> 
> consolekit:
> -----------
> This patch disables consolekit support (this part of the change
> can be avoid by removing the hunks which remove the dep on
> consolekit and the build-dep on libck-connector-dev. I'm not
> sure on the usability of KDE on kfreebsd/hurd. These deps should
> likely be kept for kfreebsd-any and hurd. There was a discussion
> on debian-devel which stated that the systemd maintainers have
> come up with a plan to ensure systemd is pid 1 for updated
> and newly installed Linux systems. Unless that comes up it additionally
> needs a dependency on systemd-sysv.
> 
> Why did I disable consolekit? First of all, kdm with systemd/pid1
> as currently in the archive has been quite unrealiable for me
> with the KDM login failing with error messages like
> 
>   service 'org.freedesktop.ConsoleKit': timed out
>   Jun 27 18:26:59 chartreuse kdm: :0[1362]: Cannot open ConsoleKit
>   session: Unable to open session: Did not receive a reply. Possible
>   causes include: the remote application did not send a reply, the
>   message bus security policy blocked the reply, the reply timeout
>   expired, or the network connection was broken.
> 
>   Or the following error messages from the consolekit service:
> 
>   console-kit-daemon.service - Console Manager
>      Loaded: loaded (/lib/systemd/system/console-kit-daemon.service;
>      enabled)
>      Active: failed (Result: timeout) since Di 2014-06-10 18:01:25 CEST;
>      2min 44s ago
>    Main PID: 792
>      CGroup: name=systemd:/system/console-kit-daemon.service
> 
>   Jun 10 18:00:30 chartreuse console-kit-daemon[792]: (process:995):
>   GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0'
>   failed
>   Jun 10 18:00:30 chartreuse console-kit-daemon[792]: missing action
>   Jun 10 18:00:54 chartreuse console-kit-daemon[792]: WARNING:
>   polkit_authority_get: Error getting authority: Error initializing
>   authority: Error calling StartServiceByName for
>   org.freedesktop.PolicyKit1:
>   GDBus.Error:org.freedesktop.DBus.Error.TimedOut: Activation of
>   org.freedesktop.PolicyKit1 timed out
>   Jun 10 18:00:54 chartreuse console-kit-daemon[792]:
>   console-kit-daemon[792]: WARNING: polkit_authority_get: Error getting
>   authority: Error initializing authority: Error calling
>   StartServiceByName for org.freedesktop.PolicyKit1:
>   GDBus.Error:org.freedesktop.DBus.Error.TimedOut: Activation of
>   org.freedesktop.PolicyKit1 timed out
>   Jun 10 18:01:25 chartreuse systemd[1]: console-kit-daemon.service
>   operation timed out. Terminating.
>   Jun 10 18:01:25 chartreuse systemd[1]: Failed to start Console
>   Manager.
>   Jun 10 18:01:25 chartreuse systemd[1]: Unit console-kit-daemon.service
>   entered failed state.
> 
> Without consolekit enabled everything works fine for me.
> 
> I found upstream discussion started by one of the Kubuntu people (who
> have also disabled consolekit) which also recommends to disable it:
> http://article.gmane.org/gmane.comp.kde.devel.core/82597
> http://article.gmane.org/gmane.comp.kde.devel.core/82598
> http://article.gmane.org/gmane.comp.kde.devel.core/82601
> http://article.gmane.org/gmane.comp.kde.devel.core/82610
> https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/1281036
> 
> 
> conffile customisation
> ----------------------
> 
> The sysvinit script has customisation code which generates the
> kdmrc at runtime based on /etc/kde4/kdm/kdmrc. I've moved this
> code to a separate binary, the init.d script should be adapted
> to share the same script.
> 
> 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 are installed, so it's probably for the best right now.
> 
> 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-07 18:57:44.128546659 +0200
> @@ -16,7 +16,6 @@
>                 kdepimlibs5-dev (>= 4:4.11),
>                 libakonadi-dev (>= 1.1.95),
>                 libboost-dev (>= 1.34),
> -               libck-connector-dev,
>                 libdbus-1-dev,
>                 libdbusmenu-qt-dev (>= 0.6.0),
>                 libdevstat-dev [kfreebsd-any],
> @@ -27,6 +26,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,7 +349,6 @@
>  Section: x11
>  Architecture: any
>  Depends: adduser,
> -         consolekit,
>           debconf | debconf-2.0,
>           kde-wallpapers-default,
>           kde-workspace-kgreet-plugins (= ${binary:Version}),
> 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-07 19:12:08.856834615 +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-07 19:13:28.365228876 +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-07 18:58:25.216750405 +0200
> @@ -0,0 +1,13 @@
> +[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
> 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-07 18:57:44.136546699 +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


-- 
http://wiki.debian.org/FAQsFromDebianUser
Offtopic discussions among Debian users and developers:
http://lists.alioth.debian.org/mailman/listinfo/d-community-offtopic
http://nuvreauspam.ro/gpg-transition.txt

Attachment: signature.asc
Description: Digital signature


Reply to: