-diff -urN XFree86-4.0.1.orig/xc/config/cf/Server.tmpl XFree86-4.0.1/xc/config/cf/Server.tmpl
---- XFree86-4.0.1.orig/xc/config/cf/Server.tmpl Fri Feb 18 17:23:07 2000
-+++ XFree86-4.0.1/xc/config/cf/Server.tmpl Mon Jul 10 04:01:04 2000
-@@ -31,8 +31,14 @@
- #ifndef MakeDllModules
- #define MakeDllModules NO
+diff -urN xc.orig/config/cf/Server.tmpl xc/config/cf/Server.tmpl
+--- xc.orig/config/cf/Server.tmpl Mon Dec 30 15:52:30 2002
++++ xc/config/cf/Server.tmpl Mon Dec 30 17:31:51 2002
+@@ -25,8 +25,14 @@
+ #ifndef DoThreadedServer
+ #define DoThreadedServer NO
#endif
+#ifndef XserverNeedsSetUID
+#define XserverNeedsSetUID NO
+#define InstallServerSetUID (XserverNeedsSetUID && !UseXserverWrapper)
#endif
- /*
-diff -urN XFree86-4.0.1.orig/xc/config/cf/xf86site.def XFree86-4.0.1/xc/config/cf/xf86site.def
---- XFree86-4.0.1.orig/xc/config/cf/xf86site.def Mon Jul 10 03:59:05 2000
-+++ XFree86-4.0.1/xc/config/cf/xf86site.def Mon Jul 10 04:01:04 2000
-@@ -305,13 +305,15 @@
+ #ifdef CrossCompileDir
+diff -urN xc.orig/config/cf/xf86site.def xc/config/cf/xf86site.def
+--- xc.orig/config/cf/xf86site.def Mon Dec 30 15:52:31 2002
++++ xc/config/cf/xf86site.def Mon Dec 30 17:37:06 2002
+@@ -69,14 +69,15 @@
*/
/*
- * If you only run the X server under xdm the X servers don't need to be
- * installed SetUID, and you may comment out the lines below. If you run
- * the servers by hand (with xinit or startx), then they do need to be
-- * installed SetUID on most OSs.
-- * Consult your system administrator before making the X server setuid.
+- * installed SetUID on most platforms.
+ * The X servers need to run as root on most OSs. We're now using a
+ * wrapper in that case, but we still need to make it known that the
+ * servers need SetUID. When only using xdm, this (and the wrapper)
+ * are not required. Disabling this automatically disables use of the
+ * wrapper.
*
--#define InstallXserverSetUID NO
+- * Consult your system administrator before making the X server setuid.
+ * If you're only starting the Xservers with xdm set this to NO
-+ *
-+#define XserverNeedsSetUID NO
+ *
+-#define InstallXserverSetUID NO
++#define XserverNeedsSetUID NO
*/
- /*
-diff -urN XFree86-4.0.1.orig/xc/config/cf/xfree86.cf XFree86-4.0.1/xc/config/cf/xfree86.cf
---- XFree86-4.0.1.orig/xc/config/cf/xfree86.cf Mon Jul 10 03:59:05 2000
-+++ XFree86-4.0.1/xc/config/cf/xfree86.cf Mon Jul 10 04:01:04 2000
-@@ -550,12 +550,15 @@
+
+diff -urN xc.orig/config/cf/xfree86.cf xc/config/cf/xfree86.cf
+--- xc.orig/config/cf/xfree86.cf Mon Dec 30 15:52:31 2002
++++ xc/config/cf/xfree86.cf Mon Dec 30 17:31:51 2002
+@@ -1104,12 +1104,15 @@
#endif
/*
# endif
#endif
-diff -urN XFree86-4.0.1.orig/xc/programs/Xserver/Imakefile XFree86-4.0.1/xc/programs/Xserver/Imakefile
---- XFree86-4.0.1.orig/xc/programs/Xserver/Imakefile Sat Jun 17 20:42:16 2000
-+++ XFree86-4.0.1/xc/programs/Xserver/Imakefile Mon Jul 10 04:01:33 2000
+diff -urN xc.orig/programs/Xserver/Imakefile xc/programs/Xserver/Imakefile
+--- xc.orig/programs/Xserver/Imakefile Mon Dec 30 15:53:22 2002
++++ xc/programs/Xserver/Imakefile Mon Dec 30 17:31:51 2002
@@ -4,11 +4,6 @@
*/
- XCOMM $XFree86: xc/programs/Xserver/Imakefile,v 3.184 2000/06/17 00:03:10 martin Exp $
+ XCOMM $XFree86: xc/programs/Xserver/Imakefile,v 3.275 2002/12/21 00:19:11 torrey Exp $
-#ifndef InstallXserverSetUID
-#define InstallXserverSetUID NO
#include <Server.tmpl>
#ifdef XFree86Version
-@@ -257,6 +252,7 @@
- SYSLIBS = $(ZLIB) MathLibrary Krb5Libraries DBMLibrary $(USB) \
- $(EXTRASYSLIBS)
- #endif
-+ PAMLIBS = -lpam -lpam_misc -ldl
- CBRT = mi/LibraryTargetName(cbrt)
- STDDIRS = include dix os mi $(XPDDXDIR) $(EXTDIRS)
+@@ -1146,6 +1141,12 @@
+ #endif /* XnestServer */
-@@ -1012,6 +1008,11 @@
- $(XVFBLIBS) $(LOADABLEEXTS) $(LIBCWRAPPER),$(XVFBSYSLIBS))
- #endif /* XVirtualFramebufferServer */
-+
+#if UseXserverWrapper
++all:: Xwrapper
+SetUIDProgramTarget(Xwrapper,os/wrapper.o,NullParameter,$(PAMLIBS),NullParameter)
+InstallProgramWithFlags(Xwrapper,$(BINDIR),$(INSTUIDFLAGS))
+#endif
-
- CFBDIRS = $(CFB8DIR) $(CFB16DIR) $(CFB24DIR) $(CFB32DIR)
- IPLANDIRS = $(IPLAN2P2DIR) $(IPLAN2P4DIR) $(IPLAN2P8DIR)
-diff -urN XFree86-4.0.1.orig/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c
---- XFree86-4.0.1.orig/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c Fri Feb 25 19:28:11 2000
-+++ XFree86-4.0.1/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c Mon Jul 10 04:01:04 2000
-@@ -65,7 +65,10 @@
++
+ #if defined(XnonServer) && XnonServer
+ XCOMM
+ XCOMM non server, just compile sources for build test
+diff -urN xc.orig/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c
+--- xc.orig/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c Mon Dec 30 15:53:52 2002
++++ xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c Mon Dec 30 17:31:51 2002
+@@ -66,7 +66,10 @@
/* check if we're run with euid==0 */
if (geteuid() != 0)
{
}
/*
-diff -urN XFree86-4.0.1.orig/xc/programs/Xserver/os/Imakefile XFree86-4.0.1/xc/programs/Xserver/os/Imakefile
---- XFree86-4.0.1.orig/xc/programs/Xserver/os/Imakefile Fri May 5 19:47:29 2000
-+++ XFree86-4.0.1/xc/programs/Xserver/os/Imakefile Mon Jul 10 04:01:33 2000
-@@ -110,6 +110,7 @@
- ERROR_DEFINES = ServerErrorDefines
- DEFINES = -DXSERV_t -DTRANS_SERVER $(CONNECTION_FLAGS) $(MEM_DEFINES) $(XDMAUTHDEFS) $(RPCDEFS) $(SIGNAL_DEFINES) $(OS_DEFINES) $(KRB5_DEFINES) $(RGB_DEFINES)
- INCLUDES = -I. -I../include -I$(XINCLUDESRC) -I$(EXTINCSRC) -I$(TOP)/lib/Xau -I../lbx Krb5Includes
-+ EXTRA_DEFINES = -DUSE_PAM
- DEPEND_DEFINES = $(DBM_DEFINES) $(XDMCP_DEFINES) $(EXT_DEFINES) $(TRANS_INCLUDES) $(CONNECTION_FLAGS)
+--- xc/programs/Xserver/os/Imakefile.orig 2006-02-19 16:51:31.000000000 +0100
++++ xc/programs/Xserver/os/Imakefile 2006-07-19 21:30:56.576028250 +0200
+@@ -193,6 +193,7 @@
+ -I$(SERVERSRC)/Xext -I$(SERVERSRC)/render \
+ -I$(SERVERSRC)/lbx -I$(SERVERSRC)/Xprint \
+ -I$(TOP)/lib/Xau Krb5Includes
++ EXTRA_DEFINES = -DUSE_PAM
+ DEPEND_DEFINES = $(DBM_DEFINES) $(XDMCP_DEFINES) \
+ $(TRANS_INCLUDES) $(CONNECTION_FLAGS) DependDefines
LINTLIBS = ../dix/llib-ldix.ln
-
-@@ -153,6 +154,14 @@
- cc -c $(DBM_DEFINES) $(CDEBUGFLAGS) $(ALLDEFINES) $*.c
- #else
+@@ -239,6 +240,14 @@
SpecialCObjectRule(oscolor,$(ICONFIGFILES),$(DBM_DEFINES))
-+#endif
-+
-+#if UseXserverWrapper
+ #endif
+
++#if UseXserverWrapper && XF86Server
+AllTarget(wrapper.o)
+
+ WRAPPER_DEFINES = -DXSERVER_PATH=\"/etc/X11/X\"
+
+SpecialCObjectRule(wrapper,NullParameter,$(WRAPPER_DEFINES))
- #endif
-
++#endif
++
#if HasKrb5
-diff -urN XFree86-4.0.1.orig/xc/programs/Xserver/os/wrapper.c XFree86-4.0.1/xc/programs/Xserver/os/wrapper.c
---- XFree86-4.0.1.orig/xc/programs/Xserver/os/wrapper.c Thu Jan 1 01:00:00 1970
-+++ XFree86-4.0.1/xc/programs/Xserver/os/wrapper.c Mon Jul 10 04:01:33 2000
+ LinkSourceFile(k5encode.c,$(XAUTHSRC))
+ #endif
+diff -urN xc.orig/programs/Xserver/os/wrapper.c xc/programs/Xserver/os/wrapper.c
+--- xc.orig/programs/Xserver/os/wrapper.c Thu Jan 1 01:00:00 1970
++++ xc/programs/Xserver/os/wrapper.c Mon Dec 30 17:31:52 2002
@@ -0,0 +1,304 @@
+/*
+ * X server wrapper.
+ exit(1);
+}
+
-diff -urN XFree86-4.0.1.orig/xc/programs/xinit/xinit.c XFree86-4.0.1/xc/programs/xinit/xinit.c
---- XFree86-4.0.1.orig/xc/programs/xinit/xinit.c Wed Apr 5 20:14:08 2000
-+++ XFree86-4.0.1/xc/programs/xinit/xinit.c Mon Jul 10 04:01:04 2000
-@@ -143,6 +143,7 @@
+diff -urN xc.orig/programs/xinit/startx.cpp xc/programs/xinit/startx.cpp
+--- xc.orig/programs/xinit/startx.cpp Mon Dec 30 15:54:10 2002
++++ xc/programs/xinit/startx.cpp Mon Dec 30 17:31:52 2002
+@@ -53,7 +53,7 @@
+ sysclientrc=XINITDIR/xinitrc
+ sysserverrc=XINITDIR/xserverrc
+ defaultclient=BINDIR/xterm
+-defaultserver=BINDIR/X
++defaultserver=BINDIR/Xwrapper
+ defaultclientargs=""
+ defaultserverargs=""
+ clientargs=""
+diff -urN xc.orig/programs/xinit/xinit.c xc/programs/xinit/xinit.c
+--- xc.orig/programs/xinit/xinit.c Mon Dec 30 15:54:10 2002
++++ xc/programs/xinit/xinit.c Mon Dec 30 17:31:52 2002
+@@ -146,6 +146,7 @@
#define OK_EXIT 0
#define ERR_EXIT 1
+char *default_wrapper = BINDIR "/Xwrapper";
char *default_server = "X";
char *default_display = ":0"; /* choose most efficient */
- #ifndef __EMX__
-@@ -312,7 +313,10 @@
+ char *default_client[] = {"xterm", "-geometry", "+1+1", "-n", "login", NULL};
+@@ -332,7 +333,10 @@
if (argc == 0 ||
- #ifndef __EMX__
+ #ifndef __UNIXOS2__
(**argv != '/' && **argv != '.')) {
- *sptr++ = default_server;
+ if (access(default_wrapper, X_OK) == 0)