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

Bug#781743: unblock (pre-approval): kde-workspace/4:4.11.13-2.1



Package: release.debian.org
Severity: normal
Tags: patch
User: release.debian.org@packages.debian.org
Usertags: unblock

Dear Release Team!

I know it's a bit unlucky to ask for an unblock so late in the
release progress, however, I thought I would give it a try anyway.

My proposed NMU to kde-workspace adds systemd support for the kdm
display manager which is built from this package. kdm currently
does not have native systemd support in the form of a unit
file (see #755359 [1]).

My reasoning behind adding systemd support to kdm is the fact that
kdm is currently the only display manager we have on Linux that
is really usable for corporate environments, all other display
managers have deficits in this regard.

For example, gdm uses AccountsService which stores session and
language settings locally, meaning that whenever a user switches
their machine on a network with shared NFS home directory, they
have to choose their favourite session and language anew [2].
This might be fixed for gdm in the future when AccountService
becomes capable of networking, however, this is currently
not the case. Additionally, gdm has this very annoying screen
shield inspired by Windows 8.x which cannot easily disabled
globally. The screen shield might look nice but it often leads
to confusion to users in corporate environments when they expect
to see a login screen instead.

As an alternative, lightdm uses the AccountService mechanism
as well since version 1.0.0, more or less successfully though
as lightdm currently seems to be completely broken in this
regard. It does not remember the last session and language
per user at all, but simply sets session and language to the
values which were set by the last user who logged in [3]. The
same applies to LXDM, unfortunately.

I also tested sddm which is currently in NEW [4]. While sddm
allows to set session and language, it cannot remember these
settings per user but just saves the last selected session
and language - regardless of the user - in /var/lib/sddm/state.conf.
The sddm developers have promised to provide a solution [5] for
this in the future, but this is still on the TODO list and
won't find its way into Jessie either way.

To conclude, kdm is currently the only usable display manager
on Linux and Debian and we have therefore chosen it as our
default display manager at the faculty. And since Debian Jessie
defaults to systemd, I think it's very sensible to have systemd
support added to kdm which allows to configure the kdm service
more flexibly and reliably with the tools provided by systemd
avoiding issues like #755359 [1].

I am attaching the full debdiff which is rather small and should
be easy for review. However, please feel free to reject this
change at your own preference. Consider this unblock request
merely a suggestion.

CC'ing debian-qt-kde@lists.debian.org.

Cheers,
Adrian

> [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755359
> [2] https://bugzilla.redhat.com/show_bug.cgi?id=617465
> [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=683662#17
> [4] https://ftp-master.debian.org/new/sddm_0.11.0-1.html
> [5] https://github.com/sddm/sddm/issues/346

unblock kde-workspace/4:4.11.13-2.1

-- System Information:
Debian Release: 8.0
  APT prefers testing
  APT policy: (500, 'testing'), (99, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru kde-workspace-4.11.13/debian/changelog kde-workspace-4.11.13/debian/changelog
--- kde-workspace-4.11.13/debian/changelog	2014-11-07 10:11:29.000000000 +0100
+++ kde-workspace-4.11.13/debian/changelog	2015-04-02 11:17:10.000000000 +0200
@@ -1,3 +1,16 @@
+kde-workspace (4:4.11.13-2.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Add systemd support: (Closes: #755359)
+    - debian/control:
+      + Add dh_systemd (>= 1.14) to Build-Depends.
+    - debian/kdm.postinst:
+      + Create symbolic link to systemd service file of default display manager.
+    - debian/rules:
+      + Install kdm systemd service file using dh_system_start.
+
+ -- John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>  Thu, 02 Apr 2015 11:16:43 +0200
+
 kde-workspace (4:4.11.13-2) unstable; urgency=medium
 
   * New patch: upstream_do_not_pass_ntpUtility_as_an_argument.patch fix
diff -Nru kde-workspace-4.11.13/debian/control kde-workspace-4.11.13/debian/control
--- kde-workspace-4.11.13/debian/control	2014-11-07 10:11:29.000000000 +0100
+++ kde-workspace-4.11.13/debian/control	2015-04-02 11:08:32.000000000 +0200
@@ -75,7 +75,8 @@
                python-dev (>= 2.6.6-3~),
                shared-desktop-ontologies (>= 0.8),
                udev [linux-any],
-               zlib1g-dev
+               zlib1g-dev,
+	       dh-systemd (>= 1.14)
 Standards-Version: 3.9.5
 X-Python-Version: >= 2.5
 XS-Testsuite: autopkgtest
diff -Nru kde-workspace-4.11.13/debian/kdm.postinst kde-workspace-4.11.13/debian/kdm.postinst
--- kde-workspace-4.11.13/debian/kdm.postinst	2014-11-07 10:11:29.000000000 +0100
+++ kde-workspace-4.11.13/debian/kdm.postinst	2015-04-02 11:10:01.000000000 +0200
@@ -78,6 +78,15 @@
     if [ -d /var/lib/kdm ]; then
       chown -R kdm /var/lib/kdm
     fi
+    # set default-display-manager systemd service link according to our config
+    if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" -a -d /etc/systemd/system/ ]; then
+	SERVICE=/lib/systemd/system/$(basename $(cat "$DEFAULT_DISPLAY_MANAGER_FILE")).service
+	if [ -e "$SERVICE" ]; then
+	    ln -sf "$SERVICE" /etc/systemd/system/display-manager.service
+	else
+	    echo "ERROR: $SERVICE is the selected default display manager but does not exist" >&2
+	fi
+    fi
   ;;
 
   abort-upgrade|abort-remove|abort-deconfigure)
diff -Nru kde-workspace-4.11.13/debian/kdm.service kde-workspace-4.11.13/debian/kdm.service
--- kde-workspace-4.11.13/debian/kdm.service	1970-01-01 01:00:00.000000000 +0100
+++ kde-workspace-4.11.13/debian/kdm.service	2015-04-02 11:10:27.000000000 +0200
@@ -0,0 +1,10 @@
+[Unit]
+Description=KDE Display Manager
+Documentation=man:kdm(1)
+After=systemd-user-sessions.service
+
+[Service]
+ExecStartPre=/bin/sh -c '[ "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/bin/kdm" ]'
+ExecStart=/usr/bin/kdm
+Restart=always
+IgnoreSIGPIPE=no
diff -Nru kde-workspace-4.11.13/debian/rules kde-workspace-4.11.13/debian/rules
--- kde-workspace-4.11.13/debian/rules	2014-11-07 10:11:29.000000000 +0100
+++ kde-workspace-4.11.13/debian/rules	2015-04-02 11:07:34.000000000 +0200
@@ -1,6 +1,6 @@
 #!/usr/bin/make -f
 
-dh = --with=python2
+dh = --with=python2 --with=systemd
 
 include /usr/share/pkg-kde-tools/qt-kde-team/2/debian-qt-kde.mk
 libpkgs_addsubst_allLibraries = kde-workspace-dev
@@ -39,6 +39,9 @@
 	$(overridden_command) -pkdm --noscripts
 	$(overridden_command) --remaining-packages
 
+override_dh_systemd_start:
+	$(overriden_command) -pkdm --no-start -r kdm.service
+
 pkgs_with_install_linux = $(patsubst debian/%.install.linux,%,$(wildcard debian/*.install.linux))
 override_dh_install:
 	$(overridden_command)

Reply to: