The X11R2 distribution wasn't included with 4.3BSD-tahoe due to space considerations. It is available from MIT by anonymous ftp from expo.lcs.mit.edu or on tape distribution. Minimal changes are required to compile it under this release. The X11R2 code was compiled on a VAX, and servers for Digital Equipment Corp. display hardware QDSS and QVSS were built (see QDSS.README for details). The following is a list of changes that are necessary to compile X11R2 servers for QDSS and QVSS. 1) Apply patches 1 through 33 to the stock MIT X11R2 distribution. (patches available from expo.lcs.mit.edu via anonymous FTP) 2) In X11R2/server/ddx/dec/qdss/Ultrix2.0inc.h, comment out the reference to "". 3) Due to changes in preparation for ANSI C, the ioctl macros have changed. In X11R2/server/ddx/dec/qdss/libtl/tl.h add single quotes around the letters in the ioctl declarations. ------- tl.h ------- *** /tmp/d16813 Tue Jun 14 15:53:44 1988 --- tl.h Fri May 27 17:42:41 1988 *************** *** 186,196 **** extern char * Cur; extern struct color_buf * Co[2]; ! #define SG_MAPDEVICE _IOR(g, 9, struct sgmap) /* map device to user */ ! #define SG_VIDEOON _IO(g,23) /* turn on the video */ ! #define SG_VIDEOOFF _IO(g,24) /* turn off the video */ ! #define SG_CURSORON _IO(g,25) /* turn on the cursor */ ! #define SG_CURSOROFF _IO(g,26) /* turn off the cursor */ #define ADDRESS_COUNTER 0 #define REQUEST_ENABLE 1 #define STATUS 3 --- 186,196 ---- extern char * Cur; extern struct color_buf * Co[2]; ! #define SG_MAPDEVICE _IOR('g', 9, struct sgmap) /* map device to user */ ! #define SG_VIDEOON _IO('g',23) /* turn on the video */ ! #define SG_VIDEOOFF _IO('g',24) /* turn off the video */ ! #define SG_CURSORON _IO('g',25) /* turn on the cursor */ ! #define SG_CURSOROFF _IO('g',26) /* turn off the cursor */ #define ADDRESS_COUNTER 0 #define REQUEST_ENABLE 1 #define STATUS 3 ------------------------------------------------ 4) In X11R2/server/ddx/dec/qdss/qdpushpxl.c there is a null storage declaration which the Ultrix compiler doesn't mind, but the 4.3BSD-tahoe compiler does. Move the null storage declaration inside the "#ifdef notdef" section of code. ------- qdpushpxl.c ------- *** /tmp/d16864 Tue Jun 14 15:56:21 1988 --- qdpushpxl.c Fri May 27 18:07:04 1988 *************** *** 247,255 **** int x1, y1, x2, y2; /* clipping rectangle in pixmap coords*/ int xOrg, yOrg; /* origin of bitmap within pixmap */ { - int mask[]; #ifdef undef register int chmask = 0xff << (ch*8); u_char * destorig = ((QDPixPtr)pPixmap->devPrivate)->data [ nch * pPixmap->width * pPixmap->height]; --- 247,255 ---- int x1, y1, x2, y2; /* clipping rectangle in pixmap coords*/ int xOrg, yOrg; /* origin of bitmap within pixmap */ { #ifdef undef + int mask[]; register int chmask = 0xff << (ch*8); u_char * destorig = ((QDPixPtr)pPixmap->devPrivate)->data [ nch * pPixmap->width * pPixmap->height]; --------------------------------- 5) X11R2/server/os/4.2bsd/connection.c has a bug which causes the unix domain socket to have the wrong permission, and clients can't connect to it. Add a umask(0) before the bind(). *** connection.c-r1.1 Tue Jun 14 15:44:43 1988 --- connection.c-r1.2 Tue Jun 14 15:44:44 1988 *************** *** 219,226 **** --- 219,228 ---- } else { + oldUmask = umask (0); if(bind(request,(struct sockaddr *)&unsock, strlen(unsock.sun_path)+2)) Error ("Binding Unix socket"); + (void)umask(oldUmask); if (listen (request, 5)) Error ("Unix Listening"); WellKnownConnections |= (1 << request); } -----------------------------------