SOURCES: kde4-kdebase-workspace-kdmconfig.patch - no backup

arekm arekm at pld-linux.org
Mon Mar 2 09:42:41 CET 2009


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 <ossi at kde.org>
-+
-+
-+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



More information about the pld-cvs-commit mailing list