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 via email to