Bug#174226: patch: DebianSessionTypes
package kdebase
tags 174226 +patch
thanks
Hi,
This patch fixes the problem by making kdm also read in a list called
"DebianSessionTypes". kdm-update-menu now leaves the real
SessionTypes alone, and messes only with DebianSessionTypes, which are
marked as "Don't Edit !".
Warning: untested.
cheers
domi
diff -u -Nur kdebase-3.1.4/debian/patches/07_kdm_debian_session_types.diff kdebase-3.1.4.mod/debian/patches/07_kdm_debian_session_types.diff
--- kdebase-3.1.4/debian/patches/07_kdm_debian_session_types.diff 1970-01-01 01:00:00.000000000 +0100
+++ kdebase-3.1.4.mod/debian/patches/07_kdm_debian_session_types.diff 2004-01-06 14:31:37.000000000 +0100
@@ -0,0 +1,52 @@
+diff -u -ur kdebase-3.1.4/kdm/kfrontend/genkdmconf.c kdebase-3.1.4.mod/kdm/kfrontend/genkdmconf.c
+--- kdebase-3.1.4/kdm/kfrontend/genkdmconf.c 2004-01-06 14:06:18.000000000 +0100
++++ kdebase-3.1.4.mod/kdm/kfrontend/genkdmconf.c 2004-01-06 14:09:33.000000000 +0100
+@@ -1901,6 +1901,8 @@
+ "# Session types the users can select. It is advisable to have \"default\" and\n"
+ "# \"failsafe\" listed herein, which is also the default.\n"
+ "# Note, that the meaning of this value is entirely up to your Session program.\n" },
++{ "DebianSessionTypes", 0, 0,
++ "# Session types automatically added by the Debian packages. Do not edit.\n" },
+ { "GUIStyle", 0, upd_guistyle,
+ "# Widget style of the greeter. \"\" means the built-in default which currently\n"
+ "# is \"Keramik\". Default is \"\"\n" },
+@@ -2146,6 +2148,7 @@
+
+ static DEnt dEntsAnyGreeter[] = {
+ { "SessionTypes", "default,kde3,failsafe", 1 },
++{ "DebianSessionTypes", "", 1 },
+ { "GUIStyle", "Windows", 0 },
+ { "ColorScheme", "Pumpkin", 0 },
+ { "LogoArea", "Clock", 1 },
+diff -u -ur kdebase-3.1.4/kdm/kfrontend/kdm_config.c kdebase-3.1.4.mod/kdm/kfrontend/kdm_config.c
+--- kdebase-3.1.4/kdm/kfrontend/kdm_config.c 2003-09-04 18:34:37.000000000 +0200
++++ kdebase-3.1.4.mod/kdm/kfrontend/kdm_config.c 2004-01-06 14:06:38.000000000 +0100
+@@ -529,6 +529,7 @@
+
+ Ent entsGreeter[] = {
+ { "SessionTypes", C_SessionTypes, 0, "default,failsafe" },
++{ "DebianSessionTypes", C_DebianSessionTypes, 0, "" },
+ { "GUIStyle", C_GUIStyle, 0, "" },
+ { "ColorScheme", C_ColorScheme, 0, "" },
+ { "LogoArea", C_LogoArea | C_ENUM, logoarea, "Logo" },
+diff -u -ur kdebase-3.1.4/kdm/kfrontend/kdmconfig.cpp kdebase-3.1.4.mod/kdm/kfrontend/kdmconfig.cpp
+--- kdebase-3.1.4/kdm/kfrontend/kdmconfig.cpp 2003-08-26 15:03:25.000000000 +0200
++++ kdebase-3.1.4.mod/kdm/kfrontend/kdmconfig.cpp 2004-01-06 14:06:38.000000000 +0100
+@@ -160,6 +160,7 @@
+ _faceSource = GetCfgInt (C_FaceSource);
+
+ _sessionTypes = GetCfgQStrList (C_SessionTypes);
++ _sessionTypes += GetCfgQStrList( C_DebianSessionTypes );
+
+ _echoMode = GetCfgInt (C_EchoMode);
+
+diff -u -ur kdebase-3.1.4/kdm/kfrontend/kdm_config.h kdebase-3.1.4.mod/kdm/kfrontend/kdm_config.h
+--- kdebase-3.1.4/kdm/kfrontend/kdm_config.h 2003-08-26 15:03:25.000000000 +0200
++++ kdebase-3.1.4.mod/kdm/kfrontend/kdm_config.h 2004-01-06 14:06:38.000000000 +0100
+@@ -82,5 +82,6 @@
+ # define FACE_USER_ONLY 3
+ #define C_ColorScheme (C_TYPE_STR | 0x102c)
+ #define C_ForgingSeed (C_TYPE_INT | 0x102d)
++#define C_DebianSessionTypes (C_TYPE_ARGV| 0x102e)
+
+ #endif /* _KDM_CONFIG_H_ */
diff -u -Nur kdebase-3.1.4/debian/patches/kdm/kdm-update-menu.sh kdebase-3.1.4.mod/debian/patches/kdm/kdm-update-menu.sh
--- kdebase-3.1.4/debian/patches/kdm/kdm-update-menu.sh 2003-03-08 08:07:47.000000000 +0100
+++ kdebase-3.1.4.mod/debian/patches/kdm/kdm-update-menu.sh 2004-01-06 14:40:40.000000000 +0100
@@ -1,17 +1,19 @@
#!/bin/sh
+# This script updates KDM's sessiontypes from the list of
+# window-manager alternatives in Debian.
+
# Don't regenerate the SessionTypes list if the admin doesn't want them
# generated
+if ! grep -qs ^generate-sessiontypes /etc/kde3/debian/kdm.options; then exit 0; fi
-if grep -qs ^generate-sessiontypes /etc/kde3/debian/kdm.options; then
- WMS=$(cat /var/lib/dpkg/alternatives/x-window-manager | grep bin | grep -v x-window-manager | sed -e 's#/usr/bin/##' | sed -e 's#/usr/X11R6/bin/##' | sed -e 's#X11/##' | tr '\n' ',')
- WMS1=$(cat /var/lib/dpkg/alternatives/x-session-manager | grep bin | grep -v x-session-manager | sed -e 's#/usr/bin/##' | sed -e 's#/usr/X11R6/bin/##' | sed -e 's#X11/##' | tr '\n' ',')
+WMS=$(cat /var/lib/dpkg/alternatives/x-window-manager | grep bin | grep -v x-window-manager | sed -e 's#/usr/bin/##' | sed -e 's#/usr/X11R6/bin/##' | sed -e 's#X11/##' | tr '\n' ',')
+WMS1=$(cat /var/lib/dpkg/alternatives/x-session-manager | grep bin | grep -v x-session-manager | sed -e 's#/usr/bin/##' | sed -e 's#/usr/X11R6/bin/##' | sed -e 's#X11/##' | tr '\n' ',')
- if grep -qs ^SessionTypes /etc/kde3/kdm/kdmrc; then
- cp /etc/kde3/kdm/kdmrc /etc/kde3/kdm/kdmrc.backup
- sed -e "s#SessionTypes=.*\$#SessionTypes=default,${WMS}${WMS1}failsafe#" < /etc/kde3/kdm/kdmrc >/etc/kde3/kdm/kdmrc.new
- if grep -qs ^SessionTypes /etc/kde3/kdm/kdmrc.new; then
- mv /etc/kde3/kdm/kdmrc.new /etc/kde3/kdm/kdmrc
- fi
+if grep -qs ^SessionTypes /etc/kde3/kdm/kdmrc; then
+ cp /etc/kde3/kdm/kdmrc /etc/kde3/kdm/kdmrc.backup
+ sed -e "s#DebianSessionTypes=.*\$#DebianSessionTypes=${WMS}${WMS1}#" < /etc/kde3/kdm/kdmrc >/etc/kde3/kdm/kdmrc.new
+ if grep -qs ^DebianSessionTypes /etc/kde3/kdm/kdmrc.new; then
+ mv /etc/kde3/kdm/kdmrc.new /etc/kde3/kdm/kdmrc
fi
fi
Reply to: