Author: arekm                        Date: Mon Mar  2 08:42:41 2009 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- no backup

---- Files affected:
SOURCES:
   kde4-kdebase-workspace-kdmconfig.patch (1.8 -> 1.9) 

---- Diffs:

================================================================
Index: SOURCES/kde4-kdebase-workspace-kdmconfig.patch
diff -u SOURCES/kde4-kdebase-workspace-kdmconfig.patch:1.8 
SOURCES/kde4-kdebase-workspace-kdmconfig.patch:1.9
--- SOURCES/kde4-kdebase-workspace-kdmconfig.patch:1.8  Mon Mar  2 09:40:57 2009
+++ SOURCES/kde4-kdebase-workspace-kdmconfig.patch      Mon Mar  2 09:42:35 2009
@@ -187,3175 +187,6 @@
        for (fp = aflist; fp; fp = fp->next)
                fprintf( f, "- %s\n", fp->str );
        if (use_destdir && !no_in_notice)
-diff -urN kdebase-workspace-4.2.1.org/kdm/kfrontend/genkdmconf.c~ 
kdebase-workspace-4.2.1/kdm/kfrontend/genkdmconf.c~
---- kdebase-workspace-4.2.1.org/kdm/kfrontend/genkdmconf.c~    1970-01-01 
01:00:00.000000000 +0100
-+++ kdebase-workspace-4.2.1/kdm/kfrontend/genkdmconf.c~        2008-12-04 
09:34:57.000000000 +0100
-@@ -0,0 +1,3165 @@
-+/*
-+
-+Create a suitable configuration for kdm taking previous xdm/kdm
-+installations into account
-+
-+Copyright (C) 2001-2005 Oswald Buddenhagen <[email protected]>
-+
-+
-+This program is free software; you can redistribute it and/or modify
-+it under the terms of the GNU General Public License as published by
-+the Free Software Foundation; either version 2 of the License, or
-+(at your option) any later version.
-+
-+This program is distributed in the hope that it will be useful,
-+but WITHOUT ANY WARRANTY; without even the implied warranty of
-+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+GNU General Public License for more details.
-+
-+You should have received a copy of the GNU General Public License
-+along with this program; if not, write to the Free Software
-+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
USA.
-+
-+*/
-+
-+#include <greet.h>
-+
-+#include <X11/Xlib.h>
-+#include <X11/Xresource.h>
-+
-+#include <sys/types.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <string.h>
-+#include <ctype.h>
-+#include <stdarg.h>
-+#include <sys/stat.h>
-+#include <fcntl.h>
-+#include <utime.h>
-+#include <dirent.h>
-+#include <errno.h>
-+#include <pwd.h>
-+#include <time.h>
-+#include <limits.h>
-+#include <sys/stat.h>
-+#include <sys/param.h>
-+#ifdef BSD
-+# include <utmp.h>
-+#endif
-+
-+#define WANT_CONF_GEN
-+#include <config.ci>
-+
-+#define RCVERSTR stringify(RCVERMAJOR) "." stringify(RCVERMINOR)
-+
-+static int old_scripts, no_old_scripts, old_confs, no_old,
-+      no_backup, no_in_notice, use_destdir, mixed_scripts;
-+static const char *newdir = KDMCONF, *facesrc = KDMDATA "/pics/users",
-+      *oldxdm, *oldkde, *oldkdepfx;
-+
-+static int oldver;
-+
-+
-+typedef struct StrList {
-+      struct StrList *next;
-+      const char *str;
-+} StrList;
-+
-+typedef struct StrMap {
-+      struct StrMap *next;
-+      const char *key, *value;
-+} StrMap;
-+
-+
-+static void *
-+mmalloc( size_t sz )
-+{
-+      void *ptr;
-+
-+      if (!(ptr = malloc( sz ))) {
-+              fprintf( stderr, "Out of memory\n" );
-+              exit( 1 );
-+      }
-+      return ptr;
-+}
-+
-+static void *
-+mcalloc( size_t sz )
-+{
-+      void *ptr;
-+
-+      if (!(ptr = calloc( 1, sz ))) {
-+              fprintf( stderr, "Out of memory\n" );
-+              exit( 1 );
-+      }
-+      return ptr;
-+}
-+
-+static void *
-+mrealloc( void *optr, size_t sz )
-+{
-+      void *ptr;
-+
-+      if (!(ptr = realloc( optr, sz ))) {
-+              fprintf( stderr, "Out of memory\n" );
-+              exit( 1 );
-+      }
-+      return ptr;
-+}
-+
-+static char *
-+mstrdup( const char *optr )
-+{
-+      char *ptr;
-+
-+      if (!optr)
-+              return 0;
-+      if (!(ptr = strdup( optr ))) {
-+              fprintf( stderr, "Out of memory\n" );
-+              exit( 1 );
-+      }
-+      return ptr;
-+}
-+
-+
-+#define NO_LOGGER
-+#define STATIC static
-+#include <printf.c>
-+
-+typedef struct {
-+      char *buf;
-+      int clen, blen, tlen;
-+} OCABuf;
-+
-+static void
-+outCh_OCA( void *bp, char c )
-+{
-+      OCABuf *ocabp = (OCABuf *)bp;
-+
-+      ocabp->tlen++;
-+      if (ocabp->clen >= ocabp->blen) {
-+              ocabp->blen = ocabp->blen * 3 / 2 + 100;
-+              ocabp->buf = mrealloc( ocabp->buf, ocabp->blen );
-+      }
-+      ocabp->buf[ocabp->clen++] = c;
-+}
-+
-+static int
-+VASPrintf( char **strp, const char *fmt, va_list args )
-+{
-+      OCABuf ocab = { 0, 0, 0, -1 };
-+
-+      doPrint( outCh_OCA, &ocab, fmt, args );
-+      outCh_OCA( &ocab, 0 );
-+      *strp = realloc( ocab.buf, ocab.clen );
-+      if (!*strp)
-+              *strp = ocab.buf;
-+      return ocab.tlen;
-+}
-+
-+static int
-+ASPrintf( char **strp, const char *fmt, ... )
-+{
-+      va_list args;
-+      int len;
-+
-+      va_start( args, fmt );
-+      len = VASPrintf( strp, fmt, args );
-+      va_end( args );
-+      return len;
-+}
-+
-+static void
-+strCat( char **strp, const char *fmt, ... )
-+{
-+      char *str, *tstr;
-+      va_list args;
-+      int el;
-+
-+      va_start( args, fmt );
-+      el = VASPrintf( &str, fmt, args );
-+      va_end( args );
-+      if (*strp) {
-+              int ol = strlen( *strp );
-+              tstr = mmalloc( el + ol + 1 );
-+              memcpy( tstr, *strp, ol );
-+              memcpy( tstr + ol, str, el + 1 );
-+              free( *strp );
-+              free( str );
-+              *strp = tstr;
-+      } else
-+              *strp = str;
-+}
-+
-+
-+#define WANT_CLOSE 1
-+
-+typedef struct File {
-+      char *buf, *eof, *cur;
-+#if defined(HAVE_MMAP) && defined(WANT_CLOSE)
-+      int ismapped;
-+#endif
-+} File;
-+
-+static int
-+readFile( File *file, const char *fn )
-+{
-+      off_t flen;
-+      int fd;
-+
-+      if ((fd = open( fn, O_RDONLY )) < 0)
-+              return False;
-+
-+      flen = lseek( fd, 0, SEEK_END );
-+#ifdef HAVE_MMAP
-+# ifdef WANT_CLOSE
-+      file->ismapped = False;
-+# endif
-+      file->buf = mmap( 0, flen + 1, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 
0 );
-+# ifdef WANT_CLOSE
-+      if (file->buf)
-+              file->ismapped = True;
-+      else
-+# else
-+      if (!file->buf)
-+# endif
-+#endif
-+      {
-+              file->buf = mmalloc( flen + 1 );
-+              lseek( fd, 0, SEEK_SET );
-+              if (read( fd, file->buf, flen ) != flen) {
-+                      free( file->buf );
-+                      close( fd );
-+                      fprintf( stderr, "Cannot read file\n" );
-+                      return False; /* maybe better abort? */
-+              }
-+      }
-+      file->eof = file->buf + flen;
-+      close( fd );
-+      return True;
-+}
-+
-+#ifdef WANT_CLOSE
-+static void
-+freeBuf( File *file )
-+{
-+# ifdef HAVE_MMAP
-+      if (file->ismapped)
-+              munmap( file->buf, file->eof - file->buf );
-+      else
-+# endif
-+              free( file->buf );
-+}
-+#endif
-+
-+static int
-+isTrue( const char *val )
-+{
-+      return !strcmp( val, "true" ) ||
-+             !strcmp( val, "yes" ) ||
-+             !strcmp( val, "on" ) ||
-+             atoi( val );
-+}
-+
-+
-+static int
-+mkpdirs( const char *name, const char *what )
-+{
-+      char *mfname = mstrdup( name );
-+      int i;
-+      struct stat st;
-+
-+      for (i = 1; mfname[i]; i++)
-+              if (mfname[i] == '/') {
-+                      mfname[i] = 0;
-+                      if (stat( mfname, &st )) {
-+                              if (mkdir( mfname, 0755 )) {
-+                                      fprintf( stderr, "Cannot create parent 
%s of %s directory %s: %s\n",
-+                                               mfname, what, name, strerror( 
errno ) );
-+                                      free( mfname );
-+                                      return False;
-+                              }
-+                              chmod( mfname, 0755 );
-+                      }
-+                      mfname[i] = '/';
-+              }
-+      free( mfname );
-+      return True;
-+}
-+
-+static int
-+mkdirp( const char *name, int mode, const char *what, int existok )
-+{
-+      struct stat st;
-+
-+      if (stat( name, &st )) {
-+              mkpdirs( name, what );
-+              if (mkdir( name, mode )) {
-+                      fprintf( stderr, "Cannot create %s directory %s: %s\n",
-+                               what, name, strerror( errno ) );
-+                      return False;
-+              }
-+              chmod( name, mode );
-+              return True;
-+      }
-+      return existok;
-+}
-+
-+
-+static void
-+displace( const char *fn )
-+{
-+      if (!no_backup) {
-+              char bn[PATH_MAX + 4];
-+              sprintf( bn, "%s.bak", fn ); /* won't overflow if only existing 
paths are passed */
-+              rename( fn, bn );
-+      } else
-+              unlink( fn );
-+}
-+
-+
-+static char *
-+locate( const char *exe )
-+{
-+      int len;
-+      char *path, *pathe, *name, *thenam, nambuf[PATH_MAX+1];
-+
-+      if (!(path = getenv( "PATH" )))
-+              return 0;
-+      len = strlen( exe );
-+      name = nambuf + PATH_MAX - len;
-+      memcpy( name, exe, len + 1 );
-+      *--name = '/';
-+      do {
-+              if (!(pathe = strchr( path, ':' )))
-+                      pathe = path + strlen( path );
-+              len = pathe - path;
-+              if (len && !(len == 1 && *path == '.')) {
-+                      thenam = name - len;
-+                      if (thenam >= nambuf) {
-+                              memcpy( thenam, path, len );
-+                              if (!access( thenam, X_OK ))
-+                                      return mstrdup( thenam );
-+                      }
-+              }
-+              path = pathe;
-+      } while (*path++ != '\0');
-+      return 0;
-+}
-+
-+
-+/*
-+ * target data to be written to kdmrc
-+ */
-+
-+typedef struct Entry {
-+      struct Entry *next;
-+      struct Ent *spec;
-+      const char *value;
-+      int active:1;
-+      int written:1;
-+} Entry;
-+
-+typedef struct Section {
-+      struct Section *next;
-+      struct Sect *spec;
-+      const char *name;
-+      const char *comment;
-+      Entry *ents;
-+} Section;
-+
-+static Section *config; /* the kdmrc data to be written */
-+
-+/*
-+ * Specification of the (currently possible) kdmrc entries
-+ */
-+
-+typedef struct Ent {
-+      const char *key;
-+      int prio;
-+      void (*func)( Entry *ce, Section *cs );
-+      const char *comment;
-+} Ent;
-+
-+typedef struct Sect {
-+      const char *name;
-+      Ent *ents;
-+      int nents;
-+} Sect;
-+
-+static Sect *findSect( const char *name );
-+static Ent *findEnt( Sect *sect, const char *key );
-+
-+/*
-+ * Functions to manipulate the current kdmrc data
-+ */
-+
-+static const char *
-+getFqVal( const char *sect, const char *key, const char *defval )
-+{
-+      Section *cs;
-+      Entry *ce;
-+
-+      for (cs = config; cs; cs = cs->next)
-+              if (!strcmp( cs->name, sect )) {
-+                      for (ce = cs->ents; ce; ce = ce->next)
-+                              if (!strcmp( ce->spec->key, key )) {
-+                                      if (ce->active && ce->written)
-+                                              return ce->value;
-+                                      break;
-+                              }
-+                      break;
-+              }
-+      return defval;
-+}
-+
-+static void
-+putFqVal( const char *sect, const char *key, const char *value )
-+{
-+      Section *cs, **csp;
-+      Entry *ce, **cep;
-+
-+      if (!value)
-+              return;
-+
-+      for (csp = &config; (cs = *csp); csp = &(cs->next))
-+              if (!strcmp( sect, cs->name ))
-+                      goto havesec;
-+      cs = mcalloc( sizeof(*cs) );
-+      ASPrintf( (char **)&cs->name, "%s", sect );
-+      cs->spec = findSect( sect );
-+      *csp = cs;
-+  havesec:
-+
-+      for (cep = &(cs->ents); (ce = *cep); cep = &(ce->next))
-+              if (!strcmp( key, ce->spec->key ))
-+                      goto haveent;
-+      ce = mcalloc( sizeof(*ce) );
-+      ce->spec = findEnt( cs->spec, key );
-+      *cep = ce;
-+  haveent:
-+      ASPrintf( (char **)&ce->value, "%s", value );
-+      ce->written = ce->active = True;
-+}
-+
-+static const char *csect;
-+
-+#define setSect(se) csect = se
-+
-+static void
-+putVal( const char *key, const char *value )
-+{
-+      putFqVal( csect, key, value );
-+}
-+
-+
-+static void
-+writeKdmrc( FILE *f )
-+{
-+      Section *cs;
-+      Entry *ce;
-+      StrList *sl = 0, *sp;
-+      const char *cmt;
-+
-+      putFqVal( "General", "ConfigVersion", RCVERSTR );
-+      for (cs = config; cs; cs = cs->next) {
-+              fprintf( f, "%s[%s]\n",
-+                       cs->comment ? cs->comment : "\n", cs->name );
-+              for (ce = cs->ents; ce; ce = ce->next) {
-+                      if (ce->spec->comment) {
-+                              cmt = ce->spec->comment;
-+                              for (sp = sl; sp; sp = sp->next)
-+                                      if (sp->str == cmt) {
-+                                              cmt = "# See above\n";
-+                                              goto havit;
-+                                      }
-+                              if (!(sp = malloc( sizeof(*sp) )))
-+                                      fprintf( stderr, "Warning: Out of 
memory\n" );
-+                              else {
-+                                      sp->str = cmt;
-+                                      sp->next = sl; sl = sp;
-+                              }
-+                      } else
-+                              cmt = "";
-+                havit:
-+                      fprintf( f, "%s%s%s=%s\n",
-+                               cmt, ce->active ? "" : "#", ce->spec->key, 
ce->value );
-+              }
-+      }
-+}
-+
-+
-+/*
-+ * defaults
-+ */
-+#ifdef XDMCP
-+static const char def_xaccess[] =
-+"# Xaccess - Access control file for XDMCP connections\n"
-+"#\n"
-+"# To control Direct and Broadcast access:\n"
-+"#\n"
-+"#    pattern\n"
-+"#\n"
-+"# To control Indirect queries:\n"
-+"#\n"
-+"#    pattern         list of hostnames and/or macros ...\n"
-+"#\n"
-+"# To use the chooser:\n"
-+"#\n"
-+"#    pattern         CHOOSER BROADCAST\n"
-+"#\n"
-+"# or\n"
-+"#\n"
-+"#    pattern         CHOOSER list of hostnames and/or macros ...\n"
-+"#\n"
-+"# To define macros:\n"
-+"#\n"
-+"#    %name           list of hosts ...\n"
-+"#\n"
-+"# The first form tells xdm which displays to respond to itself.\n"
-+"# The second form tells xdm to forward indirect queries from hosts 
matching\n"
-+"# the specified pattern to the indicated list of hosts.\n"
-+"# The third form tells xdm to handle indirect queries using the chooser;\n"
-+"# the chooser is directed to send its own queries out via the broadcast\n"
-+"# address and display the results on the terminal.\n"
-+"# The fourth form is similar to the third, except instead of using the\n"
-+"# broadcast address, it sends DirectQuerys to each of the hosts in the 
list\n"
-+"#\n"
-+"# In all cases, xdm uses the first entry which matches the terminal;\n"
-+"# for IndirectQuery messages only entries with right hand sides can\n"
-+"# match, for Direct and Broadcast Query messages, only entries without\n"
-+"# right hand sides can match.\n"
-+"#\n"
-+"\n"
-+"*                                    #any host can get a login window\n"
-+"\n"
-+"#\n"
-+"# To hardwire a specific terminal to a specific host, you can\n"
-+"# leave the terminal sending indirect queries to this host, and\n"
-+"# use an entry of the form:\n"
-+"#\n"
-+"\n"
-+"#terminal-a  host-a\n"
-+"\n"
-+"\n"
-+"#\n"
-+"# The nicest way to run the chooser is to just ask it to broadcast\n"
-+"# requests to the network - that way new hosts show up automatically.\n"
-+"# Sometimes, however, the chooser cannot figure out how to broadcast,\n"
-+"# so this may not work in all environments.\n"
-+"#\n"
-+"\n"
-+"*            CHOOSER BROADCAST       #any indirect host can get a chooser\n"
-+"\n"
-+"#\n"
-+"# If you would prefer to configure the set of hosts each terminal sees,\n"
-+"# then just uncomment these lines (and comment the CHOOSER line above)\n"
-+"# and edit the %hostlist line as appropriate\n"
-+"#\n"
-+"\n"
-+"#%hostlist   host-a host-b\n"
-+"\n"
-+"#*           CHOOSER %hostlist       #\n";
-+#endif
-+
-+#ifdef XDMCP
-+static const char def_willing[] =
-+"#! /bin/sh\n"
-+"# The output of this script is displayed in the chooser window\n"
-+"# (instead of \"Willing to manage\").\n"
-+"\n"
-+"load=`uptime|sed -e 's/^.*load[^0-9]*//'`\n"
-+"nrusers=`who|cut -c 1-8|sort -u|wc -l|sed 's/^[ \t]*//'`\n"
-+"s=\"\"; [ \"$nrusers\" != 1 ] && s=s\n"
-+"\n"
-+"echo \"${nrusers} user${s}, load: ${load}\"\n";
-+#endif
-+
-+static const char def_setup[] =
-+"#! /bin/sh\n"
-+"# Xsetup - run as root before the login dialog appears\n"
-+"\n"
-+"#xconsole -geometry 480x130-0-0 -notify -verbose -fn fixed -exitOnFail -file 
/dev/xconsole &\n";
-+
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/kde4-kdebase-workspace-kdmconfig.patch?r1=1.8&r2=1.9&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to