X Strike Force SVN commit: rev 531 - branches/4.3.0/sid/debian/patches
Author: branden
Date: 2003-09-15 16:28:39 -0500 (Mon, 15 Sep 2003)
New Revision: 531
Added:
branches/4.3.0/sid/debian/patches/066_xdm_do_not_read_from_dev_mem.diff
Modified:
branches/4.3.0/sid/debian/patches/002_xdm_fixes.diff
branches/4.3.0/sid/debian/patches/905_debian_xdm.diff
Log:
Really resync all patches to xdm with the trunk. Move one snippet of the
"do not read from /dev/mem" patch from 002 to 066.
Modified: branches/4.3.0/sid/debian/patches/002_xdm_fixes.diff
===================================================================
--- branches/4.3.0/sid/debian/patches/002_xdm_fixes.diff 2003-09-15 20:06:51 UTC (rev 530)
+++ branches/4.3.0/sid/debian/patches/002_xdm_fixes.diff 2003-09-15 21:28:39 UTC (rev 531)
@@ -6,9 +6,6 @@
Not submitted upstream yet.
-* Imakefile:
- Use /dev/random as the default random number generator on
- Linux, Hurd, and GNU/FreeBSD.
* auth.c:
- Add a couple of comments to assuage some of the fears of security
auditors, and people who follow up on the GNU linker's ritual
@@ -124,19 +121,6 @@
_SysErrorMsg because it is a standalone program that doesn't include
server.c.)
---- xc/programs/xdm/Imakefile~ 2003-09-15 14:31:57.000000000 -0500
-+++ xc/programs/xdm/Imakefile 2003-09-15 14:34:28.000000000 -0500
-@@ -137,6 +137,10 @@
- RANDOM_DEFINES = -DDEV_RANDOM=\"/dev/urandom\"
- #endif
-
-+#if defined(LinuxArchitecture) || defined(GNUMachArchitecture) || defined(GNUFreeBSDArchitecture)
-+ RANDOM_DEFINES = -DDEV_RANDOM -DDEF_RANDOM_FILE="\"/dev/random\""
-+#endif
-+
- #ifdef OpenBSDArchitecture
- RANDOM_DEFINES = -DARC4_RANDOM
- #endif
diff -urN xc/programs/xdm~/auth.c xc/programs/xdm/auth.c
--- xc/programs/xdm~/auth.c 2003-08-19 01:01:30.000000000 -0500
+++ xc/programs/xdm/auth.c 2003-08-19 01:04:55.000000000 -0500
Copied: branches/4.3.0/sid/debian/patches/066_xdm_do_not_read_from_dev_mem.diff (from rev 530, trunk/debian/patches/091_xdm_do_not_read_from_dev_mem.diff)
===================================================================
--- trunk/debian/patches/091_xdm_do_not_read_from_dev_mem.diff 2003-09-15 20:06:51 UTC (rev 530)
+++ branches/4.3.0/sid/debian/patches/066_xdm_do_not_read_from_dev_mem.diff 2003-09-15 21:28:39 UTC (rev 531)
@@ -0,0 +1,512 @@
+$Id$
+
+This patch by Branden Robinson.
+
+Historically, if HASXDMAUTH was defined but neither ARC4_RANDOM nor
+DEV_RANDOM were defined, xdm provided a function called sumFile() that
+would read straight from /dev/mem and use that as an entropy source.
+However, that's a bad idea because A) it's not very entropic and B) some
+OSes have hardware registers mapped into /dev/mem, and even just reading
+from them can cause machine checks. It's a Bad Thing to do.
+
+* Remove no longer needed "FRAGILE_DEV_MEM" define.
+* Revert meaning of DEV_RANDOM define to a simple on/off. DEF_RANDOM_FILE
+ is already used in resource.c for the same purpose that the old
+ (NetBSD-based?) code was using it.
+* Have NetBSD use /dev/urandom as its DEF_RANDOM_FILE.
+* Define DEV_RANDOM for Linux and the Hurd, and have both use /dev/random
+ for their DEF_RANDOM_FILE.
+* Rewrite genauth.c to drop the sumFile() function and throw a preprocessor
+ error if HASXDMAUTH is defined but neither ARC4_RANDOM nor DEV_RANDOM are.
+* Have genauth.c log an error, using _SysErrorMsg(), if it cannot open the
+ specified randomFile.
+* Change semantics of randomFile resource to refer to the device to be
+ opened for platforms that use DEV_RANDOM, instead of the device to be
+ checksummed with the now-nonexistent sumFile() function.
+* Update manpage to reflect above change in meaning of randomFile resource,
+ and document when it's not used.
+* Whitespace and stylistic cleanups to genauth.c.
+* Cleaned up whitespace and indented pre-processor conditionals in
+ resource.c.
+
+Not submitted upstream yet.
+
+diff -u xc/programs/xdm~/Imakefile xc/programs/xdm/Imakefile
+--- xc/programs/xdm~/Imakefile 2003-02-23 18:13:56.000000000 -0500
++++ xc/programs/xdm/Imakefile 2003-02-23 18:16:45.000000000 -0500
+@@ -127,14 +127,14 @@
+ SOCK_DEFINES = -DBSD44SOCKETS
+ #endif
+
+-#if defined(i386Architecture) || defined(AmigaArchitecture)
+-FRAGILE_DEFINES = -DFRAGILE_DEV_MEM
+-#endif
+-
+ #if defined(NetBSDArchitecture) && \
+ ((OSMajorVersion > 1) || \
+ (OSMajorVersion == 1 && OSMinorVersion > 3))
+-RANDOM_DEFINES = -DDEV_RANDOM=\"/dev/urandom\"
++RANDOM_DEFINES = -DDEV_RANDOM -DDEF_RANDOM_FILE="\"/dev/urandom\""
++#endif
++
++#if defined(LinuxArchitecture) || defined(GNUMachArchitecture) || defined(GNUFreeBSDArchitecture)
++RANDOM_DEFINES = -DDEV_RANDOM -DDEF_RANDOM_FILE="\"/dev/random\""
+ #endif
+
+ #ifdef OpenBSDArchitecture
+@@ -230,7 +230,7 @@
+ $(SIGNAL_DEFINES) $(CRYPT_DEFINES) $(BSDAUTH_DEFINES) \
+ $(XDMAUTH_DEFINES) $(RPC_DEFINES) $(KRB5_DEFINES) \
+ $(PWD_DEFINES) $(PAM_DEFINES) $(CONN_DEFINES) \
+- $(GREET_DEFINES) $(FRAGILE_DEFINES) $(RANDOM_DEFINES) \
++ $(GREET_DEFINES) $(RANDOM_DEFINES) \
+ -DOSMAJORVERSION=$(OSMAJORVERSION) \
+ -DOSMINORVERSION=$(OSMINORVERSION) \
+ $(XKB_CLIENT_DEFINES) $(USER_CONTEXT_DEFINES) \
+Common subdirectories: xc/programs/xdm~/config and xc/programs/xdm/config
+diff -u xc/programs/xdm~/genauth.c xc/programs/xdm/genauth.c
+--- xc/programs/xdm~/genauth.c 2003-02-23 18:13:57.000000000 -0500
++++ xc/programs/xdm/genauth.c 2003-02-23 18:16:45.000000000 -0500
+@@ -33,15 +33,16 @@
+ * Author: Keith Packard, MIT X Consortium
+ */
+
+-# include <X11/Xauth.h>
+-# include <X11/Xos.h>
++#include <X11/Xauth.h>
++#include <X11/Xos.h>
+
+-# include "dm.h"
+-# include "dm_auth.h"
+-# include "dm_error.h"
++#include "dm.h"
++#include "dm_auth.h"
++#include "dm_error.h"
+
+ #include <errno.h>
+ #include <fcntl.h>
++#include <string.h>
+
+ #include <time.h>
+ #define Time_t time_t
+@@ -61,52 +62,27 @@
+
+ #endif
+
+-# define FILE_LIMIT 1024 /* no more than this many buffers */
++#define FILE_LIMIT 1024 /* no more than this many buffers */
+
+-#if !defined(ARC4_RANDOM) && !defined(DEV_RANDOM)
+-static int
+-sumFile (char *name, long sum[2])
+-{
+- long buf[1024*2];
+- int cnt;
+- int fd;
+- int loops;
+- int reads;
+- int i;
+- int ret_status = 0;
+-
+- fd = open (name, O_RDONLY);
+- if (fd < 0) {
+- LogError("Cannot open randomFile \"%s\", errno = %d\n", name, errno);
+- return 0;
+- }
+-#ifdef FRAGILE_DEV_MEM
+- if (strcmp(name, "/dev/mem") == 0) lseek (fd, (off_t) 0x100000, SEEK_SET);
+-#endif
+- reads = FILE_LIMIT;
+- sum[0] = 0;
+- sum[1] = 0;
+- while ((cnt = read (fd, (char *) buf, sizeof (buf))) > 0 && --reads > 0) {
+- loops = cnt / (2 * sizeof (long));
+- for (i = 0; i < loops; i+= 2) {
+- sum[0] += buf[i];
+- sum[1] += buf[i+1];
+- ret_status = 1;
+- }
+- }
+- if (cnt < 0)
+- LogError("Cannot read randomFile \"%s\", errno = %d\n", name, errno);
+- close (fd);
+- return ret_status;
+-}
++/*
++ * Historically, if HASXDMAUTH was defined but neither ARC4_RANDOM nor
++ * DEV_RANDOM were defined, xdm provided a function called sumFile() that
++ * would read straight from /dev/mem and use that as an entropy source.
++ * However, that's a bad idea because A) it's not very entropic and B) some
++ * OSes have hardware registers mapped into /dev/mem, and even just reading
++ * from them can cause machine checks. It's a Bad Thing to do.
++ */
++#ifdef HASXDMAUTH
++# if !defined(ARC4_RANDOM) && !defined(DEV_RANDOM)
++# error neither ARC4_RANDOM nor DEV_RANDOM defined; no entropy collection mechanism available
++# endif
+ #endif
+
+ #ifdef HASXDMAUTH
+ static void
+ InitXdmcpWrapper (void)
+ {
+-
+-#ifdef ARC4_RANDOM
++# ifdef ARC4_RANDOM
+ u_int32_t sum[2];
+
+ sum[0] = arc4random();
+@@ -114,42 +90,30 @@
+ *(u_char *)sum = 0;
+
+ _XdmcpWrapperToOddParity(sum, key);
+-
+-#elif defined(DEV_RANDOM)
++# elif defined(DEV_RANDOM)
+ int fd;
+ unsigned char tmpkey[8];
+-
+- if ((fd = open(DEV_RANDOM, O_RDONLY)) >= 0) {
++
++ if ((fd = open(randomFile, O_RDONLY)) >= 0) {
+ if (read(fd, tmpkey, 8) == 8) {
+ tmpkey[0] = 0;
+ _XdmcpWrapperToOddParity(tmpkey, key);
+ close(fd);
+- return;
++ return;
+ } else {
+ close(fd);
+ }
++ } else {
++ LogError("cannot open random device \"%s\": %s\n", randomFile,
++ _SysErrorMsg (errno));
+ }
+-#else
+- long sum[2];
+- unsigned char tmpkey[8];
+-
+- if (!sumFile (randomFile, sum)) {
+- sum[0] = time ((Time_t *) 0);
+- sum[1] = time ((Time_t *) 0);
+- }
+- longtochars (sum[0], tmpkey+0);
+- longtochars (sum[1], tmpkey+4);
+- tmpkey[0] = 0;
+- _XdmcpWrapperToOddParity (tmpkey, key);
+-#endif
++# endif /* ARC4_RANDOM, DEV_RANDOM */
+ }
+-
+-#endif
+-
+-#ifndef HASXDMAUTH
+-/* A random number generator that is more unpredictable
+- than that shipped with some systems.
+- This code is taken from the C standard. */
++#else
++/*
++ * This is a random number generator that is more unpredictable than that
++ * shipped with some systems. This code is taken from the C standard.
++ */
+
+ static unsigned long int next = 1;
+
+@@ -165,12 +129,12 @@
+ {
+ next = seed;
+ }
+-#endif /* no HASXDMAUTH */
++#endif /* HASXDMAUTH */
+
+ void
+ GenerateAuthData (char *auth, int len)
+ {
+- long ldata[2];
++ long ldata[2];
+
+ #ifdef ITIMER_REAL
+ {
+@@ -182,53 +146,53 @@
+ }
+ #else
+ {
+-#ifndef __UNIXOS2__
+- long time ();
+-#endif
++# ifndef __UNIXOS2__
++ long time ();
++# endif
+
+ ldata[0] = time ((long *) 0);
+ ldata[1] = getpid ();
+ }
+-#endif
++#endif /* ITIMER_REAL */
++
+ #ifdef HASXDMAUTH
+ {
+- int bit;
+- int i;
+- auth_wrapper_schedule schedule;
+- unsigned char data[8];
+- static int xdmcpAuthInited;
+-
++ int bit;
++ int i;
++ auth_wrapper_schedule schedule;
++ unsigned char data[8];
++ static int xdmcpAuthInited;
++
+ longtochars (ldata[0], data+0);
+ longtochars (ldata[1], data+4);
+- if (!xdmcpAuthInited)
+- {
++ if (!xdmcpAuthInited) {
+ InitXdmcpWrapper ();
+ xdmcpAuthInited = 1;
+ }
+ _XdmcpAuthSetup (key, schedule);
+- for (i = 0; i < len; i++) {
++ for (i = 0; i < len; i++) {
+ auth[i] = 0;
+ for (bit = 1; bit < 256; bit <<= 1) {
+ _XdmcpAuthDoIt (data, data, schedule, 1);
+ if ((data[0] + data[1]) & 0x4)
+ auth[i] |= bit;
+ }
+- }
++ }
+ }
+ #else
+ {
+- int seed;
+- int value;
+- int i;
++ int seed;
++ int value;
++ int i;
+ static long localkey[2] = {0,0};
+-
++
+ if ( (localkey[0] == 0) && (localkey[1] == 0) ) {
+-#ifdef ARC4_RANDOM
++# ifdef ARC4_RANDOM
+ localkey[0] = arc4random();
+ localkey[1] = arc4random();
+-#elif defined(DEV_RANDOM)
++# elif defined(DEV_RANDOM)
+ int fd;
+-
++
+ if ((fd = open(DEV_RANDOM, O_RDONLY)) >= 0) {
+ if (read(fd, (char *)localkey, 8) != 8) {
+ localkey[0] = 1;
+@@ -237,24 +201,19 @@
+ } else {
+ localkey[0] = 1;
+ }
+-#else
+- if (!sumFile (randomFile, localkey)) {
+- localkey[0] = 1; /* To keep from continually calling sumFile() */
+- }
+-#endif
++# endif /* ARC4_RANDOM, DEV_RANDOM */
+ }
+
+- seed = (ldata[0]+localkey[0]) + ((ldata[1]+localkey[1]) << 16);
+- xdm_srand (seed);
+- for (i = 0; i < len; i++)
+- {
++ seed = (ldata[0]+localkey[0]) + ((ldata[1]+localkey[1]) << 16);
++ xdm_srand (seed);
++ for (i = 0; i < len; i++) {
+ value = xdm_rand ();
+ auth[i] = (value & 0xff00) >> 8;
+- }
++ }
+ value = len;
+ if (value > sizeof (key))
+ value = sizeof (key);
+- memmove( (char *) key, auth, value);
++ memmove( (char *) key, auth, value);
+ }
+-#endif
++#endif /* HASXDMAUTH */
+ }
+Common subdirectories: xc/programs/xdm~/greeter and xc/programs/xdm/greeter
+diff -u xc/programs/xdm~/resource.c xc/programs/xdm/resource.c
+--- xc/programs/xdm~/resource.c 2003-02-23 18:13:56.000000000 -0500
++++ xc/programs/xdm/resource.c 2003-02-23 18:21:43.000000000 -0500
+@@ -35,11 +35,11 @@
+ * resource.c
+ */
+
+-# include "dm.h"
+-# include "dm_error.h"
++#include "dm.h"
++#include "dm_error.h"
+
+-# include <X11/Intrinsic.h>
+-# include <X11/Xmu/CharSet.h>
++#include <X11/Intrinsic.h>
++#include <X11/Xmu/CharSet.h>
+
+ char *config;
+
+@@ -62,74 +62,74 @@
+ char *willing;
+ int choiceTimeout; /* chooser choice timeout */
+
+-# define DM_STRING 0
+-# define DM_INT 1
+-# define DM_BOOL 2
+-# define DM_ARGV 3
++#define DM_STRING 0
++#define DM_INT 1
++#define DM_BOOL 2
++#define DM_ARGV 3
+
+ /*
+ * the following constants are supposed to be set in the makefile from
+ * parameters set util/imake.includes/site.def (or *.macros in that directory
+ * if it is server-specific). DO NOT CHANGE THESE DEFINITIONS!
+ */
+-#ifndef DEF_SERVER_LINE
+-#define DEF_SERVER_LINE ":0 local /usr/bin/X11/X :0"
++#ifndef DEF_SERVER_LINE
++# define DEF_SERVER_LINE ":0 local /usr/bin/X11/X :0"
+ #endif
+ #ifndef XRDB_PROGRAM
+-#define XRDB_PROGRAM "/usr/bin/X11/xrdb"
++# define XRDB_PROGRAM "/usr/bin/X11/xrdb"
+ #endif
+ #ifndef DEF_SESSION
+-#define DEF_SESSION "/usr/bin/X11/xterm -ls"
++# define DEF_SESSION "/usr/bin/X11/xterm -ls"
+ #endif
+ #ifndef DEF_USER_PATH
+-#define DEF_USER_PATH ":/bin:/usr/bin:/usr/bin/X11:/usr/ucb"
++# define DEF_USER_PATH ":/bin:/usr/bin:/usr/bin/X11:/usr/ucb"
+ #endif
+ #ifndef DEF_SYSTEM_PATH
+-#define DEF_SYSTEM_PATH "/etc:/bin:/usr/bin:/usr/bin/X11:/usr/ucb"
++# define DEF_SYSTEM_PATH "/etc:/bin:/usr/bin:/usr/bin/X11:/usr/ucb"
+ #endif
+ #ifndef DEF_SYSTEM_SHELL
+-#define DEF_SYSTEM_SHELL "/bin/sh"
++# define DEF_SYSTEM_SHELL "/bin/sh"
+ #endif
+ #ifndef DEF_FAILSAFE_CLIENT
+-#define DEF_FAILSAFE_CLIENT "/usr/bin/X11/xterm"
++# define DEF_FAILSAFE_CLIENT "/usr/bin/X11/xterm"
+ #endif
+ #ifndef DEF_XDM_CONFIG
+-#define DEF_XDM_CONFIG "/usr/lib/X11/xdm/xdm-config"
++# define DEF_XDM_CONFIG "/usr/lib/X11/xdm/xdm-config"
+ #endif
+ #ifndef DEF_CHOOSER
+-#define DEF_CHOOSER "/usr/lib/X11/xdm/chooser"
++# define DEF_CHOOSER "/usr/lib/X11/xdm/chooser"
+ #endif
+ #ifndef DEF_AUTH_NAME
+ #ifdef HASXDMAUTH
+-#define DEF_AUTH_NAME "XDM-AUTHORIZATION-1 MIT-MAGIC-COOKIE-1"
++# define DEF_AUTH_NAME "XDM-AUTHORIZATION-1 MIT-MAGIC-COOKIE-1"
+ #else
+-#define DEF_AUTH_NAME "MIT-MAGIC-COOKIE-1"
++# define DEF_AUTH_NAME "MIT-MAGIC-COOKIE-1"
+ #endif
+ #endif
+ #ifndef DEF_AUTH_DIR
+-#define DEF_AUTH_DIR "/usr/lib/X11/xdm"
++# define DEF_AUTH_DIR "/usr/lib/X11/xdm"
+ #endif
+ #ifndef DEF_USER_AUTH_DIR
+-#define DEF_USER_AUTH_DIR "/tmp"
++# define DEF_USER_AUTH_DIR "/tmp"
+ #endif
+ #ifndef DEF_KEY_FILE
+-#define DEF_KEY_FILE ""
++# define DEF_KEY_FILE ""
+ #endif
+ #ifndef DEF_ACCESS_FILE
+-#define DEF_ACCESS_FILE ""
++# define DEF_ACCESS_FILE ""
+ #endif
+ #ifndef DEF_RANDOM_FILE
+ # ifdef linux
+-# define DEF_RANDOM_FILE "/dev/urandom"
++# define DEF_RANDOM_FILE "/dev/urandom"
+ # else
+-# define DEF_RANDOM_FILE "/dev/mem"
++# define DEF_RANDOM_FILE "/dev/mem"
+ # endif
+ #endif
+ #ifndef DEF_GREETER_LIB
+-#define DEF_GREETER_LIB "/usr/lib/X11/xdm/libXdmGreet.so"
++# define DEF_GREETER_LIB "/usr/lib/X11/xdm/libXdmGreet.so"
+ #endif
+
+-#define DEF_UDP_PORT "177" /* registered XDMCP port, dont change */
++#define DEF_UDP_PORT "177" /* registered XDMCP port, do not change */
+
+ struct dmResources {
+ char *name, *class;
+@@ -175,9 +175,9 @@
+ ""} ,
+ };
+
+-# define NUM_DM_RESOURCES (sizeof DmResources / sizeof DmResources[0])
++#define NUM_DM_RESOURCES (sizeof DmResources / sizeof DmResources[0])
+
+-# define boffset(f) XtOffsetOf(struct display, f)
++#define boffset(f) XtOffsetOf(struct display, f)
+
+ struct displayResource {
+ char *name, *class;
+@@ -225,7 +225,7 @@
+ "" },
+ };
+
+-# define NUM_SERVER_RESOURCES (sizeof serverResources/\
++#define NUM_SERVER_RESOURCES (sizeof serverResources/\
+ sizeof serverResources[0])
+
+ /* resources which control the session behaviour */
+@@ -257,7 +257,7 @@
+ DEF_CHOOSER },
+ };
+
+-# define NUM_SESSION_RESOURCES (sizeof sessionResources/\
++#define NUM_SESSION_RESOURCES (sizeof sessionResources / \
+ sizeof sessionResources[0])
+
+ XrmDatabase DmResourceDB;
+@@ -463,7 +463,7 @@
+ CleanUpName (d->name, dpyName, sizeof (dpyName));
+ CleanUpName (d->class ? d->class : d->name, dpyClass, sizeof (dpyClass));
+ for (i = 0; i < numResources; i++) {
+- snprintf (name, sizeof(name), "DisplayManager.%s.%s",
++ snprintf (name, sizeof(name), "DisplayManager.%s.%s",
+ dpyName, resources[i].name);
+ snprintf (class, sizeof(class), "DisplayManager.%s.%s",
+ dpyClass, resources[i].class);
+diff -u xc/programs/xdm~/xdm.man xc/programs/xdm/xdm.man
+--- xc/programs/xdm~/xdm.man 2003-02-23 18:13:57.000000000 -0500
++++ xc/programs/xdm/xdm.man 2003-02-23 18:16:45.000000000 -0500
+@@ -348,9 +348,11 @@
+ to pass on to the \fIXsetup\fP,
+ \fIXstartup\fP, \fIXsession\fP, and \fIXreset\fP programs.
+ .IP \fBDisplayManager.randomFile\fP
+-A file to checksum to generate the seed of authorization keys.
+-This should be a file that changes frequently.
+-The default is \fI/dev/mem\fP.
++A file from which to gather entropy for the generation of authorization
++keys. This resource is only used if
++.B xdm
++was compiled with support for the XDM-AUTHORIZATION-1 protocol and the
++\(oqrandom\(cq device. The default is \fI/dev/random\fP.
+ .IP \fBDisplayManager.greeterLib\fP
+ On systems that support a dynamically-loadable greeter library, the
+ name of the library. The default is
Property changes on: branches/4.3.0/sid/debian/patches/066_xdm_do_not_read_from_dev_mem.diff
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: branches/4.3.0/sid/debian/patches/905_debian_xdm.diff
===================================================================
--- branches/4.3.0/sid/debian/patches/905_debian_xdm.diff 2003-09-15 20:06:51 UTC (rev 530)
+++ branches/4.3.0/sid/debian/patches/905_debian_xdm.diff 2003-09-15 21:28:39 UTC (rev 531)
@@ -1,8 +1,82 @@
-Change xdm to announce that we're on Debian, to have a sane local setup,
-and to invoke the global Xsession. This patch by Branden Robinson.
+$Id: 905_debian_xdm.diff 491 2003-09-10 08:31:58Z branden $
---- xc/programs/xdm/config/Xres.cpp.deb Mon Aug 21 12:57:35 2000
-+++ xc/programs/xdm/config/Xres.cpp Mon Aug 21 12:57:58 2000
+* Imakefile:
+ Use different paths for the chooser, auth directory, and greeter
+ library. This is just an effort to move in the direction of the
+ FHS. I think I've submitted this before and it's been rejected.
+ Maybe we need a UseFHS imake directive? :)
+* config/Imakefile:
+ - Set the default VT to vt7 if we're on a Debian system.
+ - Use the Debian logo as the xdm greeter pixmap if we're on a Debian
+ system.
+* config/Xres.cpp: report OS name in greeter widget
+* config/Xserv.ws.cpp:
+ - add comments to help local admins
+ - run local server on default VT, with DPI setting forced to 100, and
+ TCP listening turned off for security
+* config/Xsession: replace guts with simple call to Debian's Xsession
+ script
+* config/xdm-conf.cpp:
+ - Changes to correspond with the xdm/Imakefile changes, above.
+ - Supply a simpler default configuration, so that no matter what X
+ server number is used, people get the same results.
+ - Define a default userPath and systemPath. Again, this smacks of
+ the FHS.
+
+diff -urN xc/programs/xdm~/Imakefile xc/programs/xdm/Imakefile
+--- xc/programs/xdm~/Imakefile 2003-02-23 18:28:23.000000000 -0500
++++ xc/programs/xdm/Imakefile 2003-02-23 18:33:59.000000000 -0500
+@@ -256,9 +256,9 @@
+ '-DDEF_SYSTEM_SHELL="$(BOURNE_SHELL)"' \
+ '-DDEF_FAILSAFE_CLIENT="$(BINDIR)/xterm"' \
+ '-DDEF_XDM_CONFIG="$(XDMDIR)/xdm-config"' \
+- '-DDEF_CHOOSER="$(XDMDIR)/chooser"' \
+- '-DDEF_AUTH_DIR="$(XDMDIR)"' \
+- '-DDEF_GREETER_LIB="$(XDMDIR)/libXdmGreet.so"'
++ '-DDEF_CHOOSER="$(BINDIR)/chooser"' \
++ '-DDEF_AUTH_DIR="$(XDMVARDIR)"' \
++ '-DDEF_GREETER_LIB="$(USRLIBDIR)/libXdmGreet.so"'
+
+ ComplexProgramTarget_1(xdm,$(LOCAL_LIBRARIES),NullParameter)
+ LinkConfDirectory(xdm,.,xdm,.)
+@@ -277,7 +277,7 @@
+ #if BuildChooser
+ SpecialCObjectRule(chooser, $(ICONFIGFILES), $(SOCK_DEFINES))
+ NormalProgramTarget(chooser,$(OBJS3),$(DEPLIBS3),$(LIBS3),NullParameter)
+-InstallProgram(chooser,$(XDMDIR))
++InstallProgram(chooser,$(BINDIR))
+ InstallAppDefaults(Chooser)
+ #endif
+ #if BuildBoth
+diff -urN xc/programs/xdm~/config/Imakefile xc/programs/xdm/config/Imakefile
+--- xc/programs/xdm~/config/Imakefile 2003-02-23 18:28:15.000000000 -0500
++++ xc/programs/xdm/config/Imakefile 2003-02-23 18:29:33.000000000 -0500
+@@ -17,13 +17,22 @@
+ DEFAULTVT=vt7
+ #endif
+
++#if LinuxDistribution && (LinuxDistribution == LinuxDebian)
++DEFAULTVT=vt7
++#endif
++
+ #ifndef XdmPixmap
+ # define XdmPixmap XFree86.xpm
+ # define XdmbwPixmap XFree86bw.xpm
+ #endif
+
++#if LinuxDistribution && (LinuxDistribution == LinuxDebian)
++XPM_DEFINES=-DXPM -DBITMAPDIR=$(XDMDIR)/pixmaps -DXDM_PIXMAP=debian.xpm\ @@\
++ -DXDM_BWPIXMAP=debianbw.xpm
++#else
+ XPM_DEFINES=-DXPM -DBITMAPDIR=$(XDMDIR)/pixmaps -DXDM_PIXMAP=XdmPixmap\ @@\
+ -DXDM_BWPIXMAP=XdmbwPixmap
++#endif
+
+ XDMLOGDIR = $(LOGDIRECTORY)
+ #ifdef VarRunDirectory
+diff -urN xc/programs/xdm~/config/Xres.cpp xc/programs/xdm/config/Xres.cpp
+--- xc/programs/xdm~/config/Xres.cpp 2003-02-23 18:28:15.000000000 -0500
++++ xc/programs/xdm/config/Xres.cpp 2003-02-23 18:29:33.000000000 -0500
@@ -20,10 +20,10 @@
Ctrl<Key>Return: set-session-argument(failsafe) finish-field()NLBS
<Key>Return: set-session-argument() finish-field()
@@ -16,8 +90,9 @@
xlogin*namePrompt: \040\040\040\040\040\040\040Login:
#endif /* XPM */
xlogin*fail: Login incorrect
---- xc/programs/xdm/config/Xserv.ws.cpp.orig Wed Aug 23 18:22:01 2000
-+++ xc/programs/xdm/config/Xserv.ws.cpp Wed Aug 23 18:24:15 2000
+diff -urN xc/programs/xdm~/config/Xserv.ws.cpp xc/programs/xdm/config/Xserv.ws.cpp
+--- xc/programs/xdm~/config/Xserv.ws.cpp 2001-01-17 18:45:24.000000000 -0500
++++ xc/programs/xdm/config/Xserv.ws.cpp 2003-02-23 18:29:33.000000000 -0500
@@ -10,4 +10,16 @@
XCOMM look like:
XCOMM XTerminalName:0 foreign
@@ -36,8 +111,9 @@
+XCOMM :0 local BINDIR/X :0 vt9 -bpp 16
+XCOMM :1 local BINDIR/X :1 vt10 -bpp 8
+:0 local BINDIR/X DEFAULTVT -dpi 100 -nolisten tcp
---- xc/programs/xdm/config/Xsession.orig 2001-01-17 18:45:24.000000000 -0500
-+++ xc/programs/xdm/config/Xsession 2002-09-07 03:43:35.000000000 -0500
+diff -urN xc/programs/xdm~/config/Xsession xc/programs/xdm/config/Xsession
+--- xc/programs/xdm~/config/Xsession 2001-01-17 18:45:24.000000000 -0500
++++ xc/programs/xdm/config/Xsession 2003-02-23 18:29:33.000000000 -0500
@@ -7,40 +7,5 @@
#
# $XFree86: xc/programs/xdm/config/Xsession,v 1.3 2001/01/17 23:45:24 dawes Exp $
@@ -81,3 +157,35 @@
-fi
+# invoke global X session script
+. /etc/X11/Xsession
+diff -urN xc/programs/xdm~/config/xdm-conf.cpp xc/programs/xdm/config/xdm-conf.cpp
+--- xc/programs/xdm~/config/xdm-conf.cpp 2003-02-23 18:28:15.000000000 -0500
++++ xc/programs/xdm/config/xdm-conf.cpp 2003-02-23 18:36:41.000000000 -0500
+@@ -10,19 +10,21 @@
+ DisplayManager.keyFile: XDMDIR/xdm-keys
+ DisplayManager.servers: XDMDIR/Xservers
+ DisplayManager.accessFile: XDMDIR/Xaccess
++DisplayManager.authDir: XDMVARDIR
+ DisplayManager.willing: SU nobody -c XDMDIR/Xwilling
+-! All displays should use authorization, but we cannot be sure
+-! X terminals may not be configured that way, so they will require
++! All displays should use authorization, but we cannot be sure X terminals
++! will be configured to support it, so those that do not will require
+ ! individual resource settings.
+ DisplayManager*authorize: true
+-! The following three resources set up display :0 as the console.
+-DisplayManager._0.setup: XDMDIR/Xsetup_0
+-DisplayManager._0.startup: XDMDIR/GiveConsole
+-DisplayManager._0.reset: XDMDIR/TakeConsole
+-!
++! Scripts to start the server, start the user session, and reset the server
++DisplayManager*setup: XDMDIR/Xsetup
++DisplayManager*startup: XDMDIR/Xstartup
++DisplayManager*reset: XDMDIR/Xreset
+ DisplayManager*resources: XDMDIR/Xresources
+ DisplayManager*session: XDMDIR/Xsession
+ DisplayManager*authComplain: true
++DisplayManager*userPath: /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
++DisplayManager*systemPath: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
+ #ifdef XPM
+ DisplayManager*loginmoveInterval: 10
+ #endif /* XPM */
Reply to: