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

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: