diff options
Diffstat (limited to 'opensuse/core/tdebase/kdm-sysconfig-values.diff')
-rw-r--r-- | opensuse/core/tdebase/kdm-sysconfig-values.diff | 737 |
1 files changed, 737 insertions, 0 deletions
diff --git a/opensuse/core/tdebase/kdm-sysconfig-values.diff b/opensuse/core/tdebase/kdm-sysconfig-values.diff new file mode 100644 index 000000000..c3b9f8af9 --- /dev/null +++ b/opensuse/core/tdebase/kdm-sysconfig-values.diff @@ -0,0 +1,737 @@ +Index: kdm/config.def +=================================================================== +--- kdm/config.def.orig ++++ kdm/config.def +@@ -792,6 +792,21 @@ Description: + <emphasis>Do not</emphasis> change it, you may interfere with future + upgrades and this could result in &kdm; failing to run. + ++Key: SUSEConfigVersion ++Type: string ++Default: "" ++CDefault: - ++User: dummy ++# will be overwritten ++Instance: ++Comment: ++ This option exists solely for the purpose of a clean automatic upgrade. ++ Do not even think about changing it! ++Description: ++ This option exists solely for the purpose of clean automatic upgrades. ++ <emphasis>Do not</emphasis> change it, you may interfere with future ++ upgrades and this could result in &kdm; failing to run. ++ + Key: PAMService + If: defined(USE_PAM) + Type: string +@@ -874,10 +889,10 @@ Description: + + Key: PidFile + Type: string +-Default: "" ++Default: "/var/run/kdm.pid" + User: core +-Instance: "/var/run/kdm.pid" +-Merge: xdm ++Instance: "" ++Update: reset_sec_0_1 + Comment: + Where &kdm; should store its PID (do not store if empty). + Description: +@@ -901,10 +916,10 @@ Description: + Key: AuthDir + Type: path + # differs from XDM +-Default: "/var/run/xauth" ++Default: "/var/lib/xdm/authdir/authfiles" + User: core +-Instance: #"/tmp" +-Merge: xdm(P_authDir) ++Instance: #"" ++Update: reset_sec_0_1 + Comment: + Where to store authorization files. + Description: +@@ -930,7 +945,7 @@ Description: + + Key: ExportList + Type: list +-Default: "" ++Default: "LANG,XCURSOR_THEME" + User: core + Instance: #"LD_LIBRARY_PATH,ANOTHER_IMPORTANT_VAR" + Merge: xdm(P_List) +@@ -1063,9 +1078,10 @@ Description: + + Key: Enable + Type: bool +-Default: true ++Default: false + User: dep(xdmcpEnable) + Instance: false ++Update: reset_sec_0_1 + Comment: & + Description: + Whether &kdm; should listen to incoming &XDMCP; requests. +@@ -1102,11 +1118,10 @@ Description: + Key: Xaccess + Type: string + # differs from xdm +-Default: *KDMCONF "/Xaccess" ++Default: *"/etc/X11/xdm/Xaccess" + User: config(Xaccess) +-Instance: #"" +-Update: mk_xaccess +-Merge: xdm:accessFile ++Instance: # ++Update: reset_sec_0_1 + Comment: + &XDMCP; access control file in the usual XDM-Xaccess format. + Description: +@@ -1164,13 +1179,11 @@ Description: + + Key: Willing + Type: string +-Default: "" ++Default: "/etc/X11/xdm/Xwilling" + User: core + # will be overwritten + Instance: # +-Update: mk_willing +-Merge: xdm +-Merge: kdm:Xwilling ++Update: reset_sec_0_1 + Comment: + The program which is invoked to dynamically generate replies to &XDMCP; + DirectQuery or BroadcastQuery requests. +@@ -1244,7 +1257,7 @@ Type: enum + None/BO_NONE: no boot manager + Grub/BO_GRUB: Grub boot manager + Lilo/BO_LILO: Lilo boot manager (Linux on i386 & x86-64 only) +-Default: None ++Default: Grub + User: core + User: greeter + Instance: #Grub +@@ -1347,6 +1360,7 @@ Default: DEF_SERVER_CMD + DDefault: - + User: core + Instance: :*/DEF_SERVER_CMD ++Update: reset_sec_0_1 + Comment: + The command line to start the &X-Server;, without display number and VT spec. + This string is subject to word splitting. +@@ -1355,7 +1369,7 @@ Description: + This string is subject to word splitting. + </para><para> + The default is something reasonable for the system on which &kdm; was built, +- like <command>/usr/X11R6/bin/X</command>. ++ like <command>/usr/bin/X</command>. + + Key: ServerArgsLocal + Type: string +@@ -1549,11 +1563,10 @@ Description: + Key: Resources + # XXX strictly speaking this is supposed to be a string list, i think. + Type: string +-Default: "" ++Default: "/etx/X11/xdm/Xresources" + User: core + Instance: #*/"" +-Update: cp_resources +-Merge: xdm ++Update: reset_sec_0_1 + Comment: + Specify a file with X-resources for the greeter, chooser and background. + The KDE frontend does not use this file, so you do not need it unless you +@@ -1581,12 +1594,11 @@ Description: + + Key: Setup + Type: string +-Default: "" ++Default: "/etc/X11/xdm/Xsetup" + User: core + # will be overwritten + Instance: #*/"" +-Update: mk_setup +-Merge: xdm ++Update: reset_sec_0_1 + Comment: + A program to run before the greeter is shown. Can be used to start an + xconsole or an alternative background generator. Subject to word splitting. +@@ -1602,12 +1614,11 @@ Description: + + Key: Startup + Type: string +-Default: "" ++Default: "/etc/X11/xdm/Xstartup" + User: core + # will be overwritten + Instance: #*/"" +-Update: mk_startup +-Merge: xdm ++Update: reset_sec_0_1 + Comment: + A program to run before a user session starts. Subject to word splitting. + Description: +@@ -1620,12 +1631,11 @@ Description: + + Key: Reset + Type: string +-Default: "" ++Default: "/etc/X11/xdm/Xreset" + User: core + # will be overwritten + Instance: #*/"" +-Update: mk_reset +-Merge: xdm ++Update: reset_sec_0_1 + Comment: + A program to run after a user session exits. Subject to word splitting. + Description: +@@ -1638,12 +1648,12 @@ Description: + + Key: Session + Type: string +-Default: XBINDIR "/xterm -ls -T" ++Default: "/etc/X11/xdm/Xsession" + #Merge: xdm - incompatible! + User: core + # will be overwritten + Instance: #*/"" +-Update: mk_session ++Update: reset_sec_0_1 + Comment: + The program which is run as the user which logs in. It is supposed to + interpret the session argument (see SessionsDirs) and start an appropriate +@@ -1746,10 +1756,11 @@ Description: + + Key: AllowRootLogin + Type: bool +-Default: true ++Default: false + User: core + User: greeter(showRoot) +-Instance: */false ++Instance: #*/false ++Update: reset_sec_1_2 + Merge: xdm + Comment: + Allow root logins? +@@ -1764,6 +1775,7 @@ User: core + # sensible? + Instance: */false + Instance: :*/true ++Update: reset_sec_0_1 + Merge: xdm + Comment: + Allow to log in, when user has set an empty password? +@@ -1775,12 +1787,13 @@ Type: enum + None/SHUT_NONE: no <guilabel>Shutdown...</guilabel> menu entry is shown at all + Root/SHUT_ROOT: the <systemitem class="username">root</systemitem> password must be entered to shut down + All/SHUT_ALL: everybody can shut down the machine +-Default: All ++Default: Root + User: core + User: greeter + Instance: */Root +-Instance: :*/All +-Merge: kdm:-Greeter/ ++Instance: #:*/All ++Update: reset_sec_0_1 ++#Merge: kdm:-Greeter/ + Comment: & + Description: + Who is allowed to shut down the system. This applies both to the +@@ -1866,6 +1879,7 @@ Type: bool + Default: false + User: dep + Instance: #:0/true ++Update: reset_sec_0_1 + Comment: & + Description: + Enable automatic login. <emphasis>Use with extreme care!</emphasis> +@@ -1899,7 +1913,7 @@ Default: "" + PostProc: PautoLoginX + User: core(autoUser) + User: greeter +-Instance: #:0/"fred" ++Instance: #:0/"" + Merge: xdm:autoUser(P_autoUser) + Comment: & + Description: +@@ -1930,10 +1944,10 @@ Description: + + Key: SessionsDirs + Type: list +-Default: KDMDATA "/sessions" ++Default: "/etc/X11/sessions," KDMDATA "/sessions,/usr/share/xsessions" + User: core + User: greeter-c +-Instance: #*/"/etc/X11/sessions,/usr/share/xsessions" ++Instance: #*/"" + Comment: + The directories containing session type definitions in .desktop format. + Description: +@@ -2008,7 +2022,8 @@ Type: enum + Clock/LOGO_CLOCK: a neat analog clock + Default: Clock + User: greeter +-Instance: */Logo ++Instance: */Clock ++Update: reset_sec_0_1 + Comment: + What should be shown in the greeter's logo are: + Description: +@@ -2223,7 +2238,7 @@ Description: + + Key: HiddenUsers + Type: list +-Default: "" ++Default: "root" + User: greeter-c(noUsers) + Instance: #*/"root" + # depends on {Min,Max}ShowUID +@@ -2363,13 +2378,14 @@ Type: enum + Default: OneStar + User: greeter + Instance: #*/NoEcho ++Update: reset_sec_0_1 + Comment: & + Description: + The password input fields cloak the typed in text. Specify, how to do it: + + Key: UseBackground + Type: bool +-Default: true ++Default: false + User: greeter + Instance: #*/! + Comment: +@@ -2507,6 +2523,7 @@ Type: bool + Default: false + User: greeter + Instance: :0/true ++Update: reset_sec_0_1 + Comment: + Enable &kdm;'s built-in xconsole. Note that this can be enabled for only + one display at a time. +@@ -2595,9 +2612,10 @@ Description: + + Key: Preloader + Type: string +-Default: "" ++Default: KDE_BINDIR "/preloadkde" + User: greeter-c +-Instance: */KDE_BINDIR "/preloadkde" ++Instance: */"" ++Update: reset_sec_0_1 + Comment: & + Description: + A program to run while the greeter is visible. It is supposed to preload +@@ -2606,7 +2624,7 @@ Description: + + Key: UseTheme + Type: bool +-Default: false ++Default: true + User: greeter + Instance: #*/true + Comment: & +@@ -2615,9 +2633,10 @@ Description: + + Key: Theme + Type: string +-Default: "" ++Default: KDMDATA "/themes/SUSE" + User: greeter +-Instance: */KDMDATA "/themes/circles" ++Instance: */"" ++Update: reset_sec_0_1 + Comment: & + Description: + The theme to use for the greeter. Can point to either a directory or an XML +Index: kdm/kfrontend/read_sysconfig.sh +=================================================================== +--- /dev/null ++++ kdm/kfrontend/read_sysconfig.sh +@@ -0,0 +1,147 @@ ++#!/bin/bash ++# ++# Copyright (c) 2006 SUSE Linux Products GmbH Nuernberg, Germany. ++# ++# Author: Stephan Kulow <coolo@suse.de> ++# ++ ++# ++# check if we are started as root ++# only one of UID and USER must be set correctly ++# ++if test "$UID" != 0 -a "$USER" != root; then ++ echo "You must be root to start $0." ++ exit 1 ++fi ++ ++# ++# check for sysconfig/displaymanager or rc.config ++# ++test -f /etc/sysconfig/displaymanager && source /etc/sysconfig/displaymanager ++test -f /etc/sysconfig/security && source /etc/sysconfig/security ++test -f /etc/sysconfig/language && source /etc/sysconfig/language ++ ++# ++# source /etc/profile to get $kdedir ++# ++kdedir="/opt/kde3" ++kdmdir="/var/adm/kdm" ++ ++# check for write permissions ++[ -w ${kdmdir} ] || mkdir -p ${kdmdir} ++[ -w ${kdmdir} ] || exit ++ ++# ++# Set Style of Shutdown ++# ++ECHO_MODE="OneStar" ++ALLOW_ROOT_LOGIN="true" ++case "$DISPLAYMANAGER_SHUTDOWN" in ++ all|ALL|All) ++ DISPLAYMANAGER_SHUTDOWN=All;; ++ none|NONE|None) ++ DISPLAYMANAGER_SHUTDOWN=None;; ++ auto|Auto|AUTO) ++ case "$PERMISSION_SECURITY" in ++ *easy*) ++ DISPLAYMANAGER_SHUTDOWN=All ++ ;; ++ *paranoid*) ++ ECHO_MODE="NoEcho" ++ ALLOW_ROOT_LOGIN="false" ++ DISPLAYMANAGER_SHUTDOWN=Root ++ ;; ++ *) ++ DISPLAYMANAGER_SHUTDOWN=Root ++ ;; ++ esac ++ ;; ++ * ) ++ DISPLAYMANAGER_SHUTDOWN=Root;; ++esac ++ ++( ++echo "[X-*-Greeter]" ++if [ -n "$KDM_USERS" ]; then ++ echo "ShowUsers=Selected" ++ echo -n "SelectedUsers=" ++ echo ${KDM_USERS}|sed -e 's@ [ ]*@ @g' -e 's@ @,@g' ++else ++ echo "ShowUsers=NotHidden" ++fi ++if [ "$DISPLAYMANAGER_AD_INTEGRATION" = "yes" ]; then ++ echo "PluginsLogin=winbind" ++fi ++if [ -n "$DISPLAYMANAGER_KDM_THEME" -a -d "/opt/kde3/share/apps/kdm/themes/$DISPLAYMANAGER_KDM_THEME" ]; then ++ echo "Theme=/opt/kde3/share/apps/kdm/themes/$DISPLAYMANAGER_KDM_THEME" ++ echo "UseTheme=true" ++ echo "UseBackground=false" ++else ++ echo "UseTheme=false" ++ echo "UseBackground=true" ++fi ++# kdm has en_US as default instead of simply reading LC_LANG :( ++echo "Language=" ++ ++echo "[Xdmcp]" ++if [ "$DISPLAYMANAGER_REMOTE_ACCESS" = "yes" ]; then ++ echo "Enable=true" ++else ++ echo "Enable=false" ++fi ++ ++echo "[X-:0-Core]" ++if [ "$DISPLAYMANAGER_AUTOLOGIN" ]; then ++ echo "AutoLoginEnable=true" ++ echo "AutoLoginUser=${DISPLAYMANAGER_AUTOLOGIN}" ++else ++ echo "AutoLoginEnable=false" ++fi ++if [ "$DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN" = "yes" ]; then ++ echo "ServerArgsLocal=" ++else ++ echo "ServerArgsLocal=-nolisten tcp" ++fi ++if [ "$DISPLAYMANAGER_PASSWORD_LESS_LOGIN" = "yes" ]; then ++ echo "NoPassEnable=true" ++ echo "NoPassAllUsers=true" ++else ++ echo "NoPassEnable=false" ++ echo "NoPassAllUsers=false" ++fi ++ ++echo "[X-:*-Core]" ++echo "AllowShutdown=${DISPLAYMANAGER_SHUTDOWN}" ++echo "AllowRootLogin=${ALLOW_ROOT_LOGIN}" ++echo "AllowNullPasswd=${ALLOW_ROOT_LOGIN}" ++ ++echo "[X-*-Core]" ++ ++if test "$DISPLAYMANAGER_ROOT_LOGIN_REMOTE" = "yes"; then ++ echo "AllowRootLogin=true" ++else ++ echo "AllowRootLogin=false" ++fi ++ ++case "$DISPLAYMANAGER_XSERVER" in ++ Xgl) ++ xgl=`type -p Xgl` ++ echo "ServerCmd=$xgl $DISPLAYMANAGER_XGL_OPTS -br" ++ echo "ServerTimeout=50" ++ ;; ++ Xorg) ++ xorg=`type -p Xorg` ++ echo "ServerCmd=$xorg -br" ++ ;; ++ *) ++ echo "#Unknown X server - leaving X" ++ ;; ++esac ++ ++echo "[General]" ++if [ "$DISPLAYMANAGER_STARTS_XSERVER" != "yes" ]; then ++ echo "StaticServers=" ++fi ++ ++) > ${kdmdir}/kdmrc.sysconfig ++ +Index: kdm/kfrontend/kdm_config.c +=================================================================== +--- kdm/kfrontend/kdm_config.c.orig ++++ kdm/kfrontend/kdm_config.c +@@ -386,7 +386,7 @@ static const char *kdmrc = KDMCONF "/kdm + static Section *rootsec; + + static void +-ReadConf() ++ReadConfFile(const char *rcfile) + { + const char *nstr, *dstr, *cstr, *dhost, *dnum, *dclass; + char *s, *e, *st, *en, *ek, *sl, *pt; +@@ -396,14 +396,9 @@ ReadConf() + int nlen, dlen, clen, dhostl, dnuml, dclassl; + int i, line, sectmoan, restl; + File file; +- static int confread; + +- if (confread) +- return; +- confread = 1; +- +- Debug( "reading config %s ...\n", kdmrc ); +- if (!readFile( &file, kdmrc, "master configuration" )) ++ Debug( "reading config %s ...\n", rcfile ); ++ if (!readFile( &file, rcfile, "master configuration" )) + return; + + for (s = file.buf, line = 0, cursec = 0, sectmoan = 1; s < file.eof; s++) { +@@ -429,7 +424,7 @@ ReadConf() + e--; + if (*e != ']') { + cursec = 0; +- LogError( "Invalid section header at %s:%d\n", kdmrc, line ); ++ LogError( "Invalid section header at %s:%d\n", rcfile, line ); + continue; + } + nstr = sl + 1; +@@ -438,8 +433,8 @@ ReadConf() + if (nlen == cursec->nlen && + !memcmp( nstr, cursec->name, nlen )) + { +- LogInfo( "Multiple occurrences of section [%.*s] in %s. " +- "Consider merging them.\n", nlen, nstr, kdmrc ); ++ Debug( "Multiple occurrences of section [%.*s] in %s. " ++ "Consider merging them.\n", nlen, nstr, rcfile ); + goto secfnd; + } + if (nstr[0] == 'X' && nstr[1] == '-') { +@@ -495,7 +490,7 @@ ReadConf() + illsec: + cursec = 0; + LogError( "Unrecognized section name [%.*s] at %s:%d\n", +- nlen, nstr, kdmrc, line ); ++ nlen, nstr, rcfile, line ); + continue; + newsec: + if (!(cursec = Malloc( sizeof(*cursec) ))) +@@ -523,7 +518,7 @@ ReadConf() + if (!cursec) { + if (sectmoan) { + sectmoan = 0; +- LogError( "Entry outside any section at %s:%d", kdmrc, line ); ++ LogError( "Entry outside any section at %s:%d", rcfile, line ); + } + goto sktoeol; + } +@@ -531,13 +526,13 @@ ReadConf() + for (; (s < file.eof) && (*s != '\n'); s++) + if (*s == '=') + goto haveeq; +- LogError( "Invalid entry (missing '=') at %s:%d\n", kdmrc, line ); ++ LogError( "Invalid entry (missing '=') at %s:%d\n", rcfile, line ); + continue; + + haveeq: + for (ek = s - 1; ; ek--) { + if (ek < sl) { +- LogError( "Invalid entry (empty key) at %s:%d\n", kdmrc, line ); ++ LogError( "Invalid entry (empty key) at %s:%d\n", rcfile, line ); + goto sktoeol; + } + if (!isspace( *ek )) +@@ -551,7 +546,7 @@ ReadConf() + if (*s == '\\') { + s++; + if (s >= file.eof || *s == '\n') { +- LogError( "Trailing backslash at %s:%d\n", kdmrc, line ); ++ LogError( "Trailing backslash at %s:%d\n", rcfile, line ); + break; + } + switch (*s) { +@@ -580,29 +575,42 @@ ReadConf() + goto keyok; + } + LogError( "Unrecognized key '%.*s' in section [%.*s] at %s:%d\n", +- nlen, nstr, cursec->nlen, cursec->name, kdmrc, line ); ++ nlen, nstr, cursec->nlen, cursec->name, rcfile, line ); + continue; + keyok: + for (curent = cursec->entries; curent; curent = curent->next) + if (ce == curent->ent) { + LogError( "Multiple occurrences of key '%s' in section [%.*s]" + " of %s\n", +- ce->name, cursec->nlen, cursec->name, kdmrc ); ++ ce->name, cursec->nlen, cursec->name, rcfile ); + goto keyfnd; + } + if (!(curent = Malloc( sizeof(*curent) ))) + return; ++ curent->next = cursec->entries; ++ cursec->entries = curent; ++ keyfnd: + curent->ent = ce; + curent->line = line; + curent->val = st; + curent->vallen = en - st; +- curent->next = cursec->entries; +- cursec->entries = curent; +- keyfnd: + continue; + } + } + ++static void ReadConf() ++{ ++ static int confread = 0; ++ ++ if (confread) ++ return; ++ confread++; ++ ++ system("/opt/kde3/share/apps/kdm/read_sysconfig.sh"); ++ ReadConfFile("/var/adm/kdm/kdmrc.sysconfig"); ++ ReadConfFile(kdmrc); ++} ++ + static Entry * + FindGEnt( int id ) + { +Index: kdm/kfrontend/genkdmconf.c +=================================================================== +--- kdm/kfrontend/genkdmconf.c.orig ++++ kdm/kfrontend/genkdmconf.c +@@ -66,6 +66,7 @@ Foundation, Inc., 51 Franklin Street, Fi + #define stringify(x) __stringify(x) + + #define RCVERSTR stringify(RCVERMAJOR) "." stringify(RCVERMINOR) ++#define SUSERCVERSTR "2" + + static int old_scripts, no_old_scripts, old_confs, no_old, + no_backup, no_in_notice, use_destdir, mixed_scripts; +@@ -73,7 +74,7 @@ static const char *newdir = KDMCONF, *fa + *oldxdm, *oldkde; + + static int oldver; +- ++static int oldsusever; + + typedef struct StrList { + struct StrList *next; +@@ -462,6 +463,7 @@ wrconf( FILE *f ) + const char *cmt; + + putfqval( "General", "ConfigVersion", RCVERSTR ); ++ putfqval( "General", "SUSEConfigVersion", SUSERCVERSTR ); + for (cs = config; cs; cs = cs->next) { + fprintf( f, "%s[%s]\n", + cs->comment ? cs->comment : "\n", cs->name ); +@@ -1363,6 +1365,26 @@ upd_consolettys( Entry *ce, Section *cs + } + #endif + ++static void ++reset_sec_0_1( Entry *ce, Section *cs ATTR_UNUSED ) ++{ ++ if (oldsusever < 1 || !ce->written ) ++ { ++ ce->active = 0; ++ } ++ return; ++} ++ ++static void ++reset_sec_1_2( Entry *ce, Section *cs ATTR_UNUSED ) ++{ ++ if (oldsusever < 2 || !ce->written ) ++ { ++ ce->active = 0; ++ } ++ return; ++} ++ + #ifdef XDMCP + static void + cp_keyfile( Entry *ce, Section *cs ATTR_UNUSED ) +@@ -2228,7 +2250,7 @@ static int + mergeKdmRcNewer( const char *path ) + { + char *p; +- const char *cp, *sec, *key; ++ const char *cp, *sec, *key, *susever; + RSection *rootsect, *cs; + REntry *ce; + int i, j; +@@ -2291,8 +2313,12 @@ mergeKdmRcNewer( const char *path ) + } + + #ifdef XDMCP +- applydefs( kdmdefs_all, as(kdmdefs_all), path ); ++ /* applydefs( kdmdefs_all, as(kdmdefs_all), path ); */ + #endif ++ susever = getfqval( "General", "SUSEConfigVersion", "" ); ++ if (sscanf( susever, "%u", &oldsusever ) != 1) ++ oldsusever = 0; ++ + if (!*(cp = getfqval( "General", "ConfigVersion", "" ))) { /* < 3.1 */ + mod_usebg = 1; + if (is22conf( path )) { +Index: kdm/kfrontend/Makefile.am +=================================================================== +--- kdm/kfrontend/Makefile.am.orig ++++ kdm/kfrontend/Makefile.am +@@ -64,3 +64,7 @@ kdm_greet_COMPILE_FIRST = ../config.ci + kdm_config_COMPILE_FIRST = ../config.ci + genkdmconf_COMPILE_FIRST = ../config.ci + ++ ++appsdir = $(kde_datadir)/kdm ++apps_SCRIPTS = read_sysconfig.sh ++ |