[Xprint] Re: Newer version of the combined video+print server from?

Roland Mainz roland.mainz at nrubsig.org
Sat Mar 5 21:28:16 EST 2005


Roland Mainz wrote:
> > Roland - had you time to continue your work on the combined
> > ('unified') video+print server patch yet?
> 
> Unfortunately no (except the integration of the fixes you send me) ...
> almost every minute of my spare free time was consumed by my duties as
> release manager of the X11R6.8.2 release (and then I was at the
> XDevconf+LinuxWorld in Boston) ...

Attached is a new version of the patch for testing. It deals with most
of the problems of the previous version except that there is no switch
to define a server mode yet (e.g. "video", "print", "unified").

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 7950090
 (;O/ \/ \O;)
-------------- next part --------------
Index: xc/config/cf/Imake.rules
===================================================================
RCS file: /cvs/xorg/xc/config/cf/Imake.rules,v
retrieving revision 1.8
diff -u -2 -0 -r1.8 Imake.rules
--- xc/config/cf/Imake.rules	1 Feb 2005 22:27:00 -0000	1.8
+++ xc/config/cf/Imake.rules	5 Mar 2005 20:12:50 -0000
@@ -3529,40 +3529,66 @@
 #ifndef InstallDynamicModule
 #define InstallDynamicModule(module,dest,subdir)			@@\
 AllTarget(module)							@@\
 	LinkBuildModule(module,subdir)					@@\
 									@@\
 install:: module							@@\
 	MakeDir($(DESTDIR)dest/subdir)					@@\
 	$(INSTALL) -c $(INSTDATFLAGS) module $(DESTDIR)dest/subdir
 #endif
 
 #ifndef InstallDynamicNamedModule
 #define InstallDynamicNamedModule(module,instname,dest,subdir)		@@\
 AllTarget(module)							@@\
 	LinkBuildNamedModule(module,instname,subdir)			@@\
 									@@\
 install:: module							@@\
 	MakeDir($(DESTDIR)dest/subdir)					@@\
 	$(INSTALL) -c $(INSTDATFLAGS) module $(DESTDIR)dest/subdir/instname
 #endif
 
+/* Shortcuts for installing driver module, one per class */
+#ifndef InstallVideoObjectModule
+#define InstallVideoObjectModule(module,dest)				@@\
+InstallObjectModule(module,dest,video)
+#endif
+#ifndef InstallPrintObjectModule
+#define InstallPrintObjectModule(module,dest)				@@\
+InstallObjectModule(module,dest,print)
+#endif
+#ifndef InstallInputObjectModule
+#define InstallInputObjectModule(module,dest)				@@\
+InstallObjectModule(module,dest,input)
+#endif
+#ifndef InstallExtensionsObjectModule
+#define InstallExtensionsObjectModule(module,dest)			@@\
+InstallObjectModule(module,dest,extensions)
+#endif
+#ifndef InstallFontsObjectModule
+#define InstallFontsObjectModule(module,dest)				@@\
+InstallObjectModule(module,dest,fonts)
+#endif
+#ifndef InstallMultimediaObjectModule
+#define InstallMultimediaObjectModule(module,dest)			@@\
+InstallObjectModule(module,dest,multimedia)
+#endif
+
 #ifndef InstallObjectModule
 #if !DoLoadableServer
 #define InstallObjectModule(module,dest,subdir)	/**/
 #else
 #if MakeDllModules
 #define InstallObjectModule(module,dest,subdir)				@@\
 InstallDynamicModule(Concat(module,_drv.so),dest,subdir)
 #else
 #define InstallObjectModule(module,dest,subdir)				@@\
 InstallDynamicModule(Concat(module,_drv.o),dest,subdir)
 #endif
 #endif
 #endif
 
 #ifndef InstallLibraryModule
 #if !DoLoadableServer
 #define InstallLibraryModule(module,dest,subdir)	/**/
 #else
 #if MakeDllModules
 #define InstallLibraryModule(module,dest,subdir)			@@\
Index: xc/programs/Xserver/Imakefile
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/Imakefile,v
retrieving revision 1.28
diff -u -2 -0 -r1.28 Imakefile
--- xc/programs/Xserver/Imakefile	2 Feb 2005 14:26:24 -0000	1.28
+++ xc/programs/Xserver/Imakefile	5 Mar 2005 20:12:59 -0000
@@ -821,83 +821,82 @@
 SetUIDServerTarget(Xorg,$(XF86SERVERSUBDIRS),$(XF86SERVEROBJS) $(SERVERDEFFILE), \
 	$(XF86SERVERLIBS),$(XF86SERVERSYSLIBS))
 #if DoLoadableServer
 ServerDriverSDKTarget(Xorg)
 #endif
 #ifndef ServerToInstall
 #define ServerToInstall Xorg
 #endif
 #endif        /* XorgServer */
 
 #if defined(XprtServer) && XprtServer
 XCOMM
 XCOMM Print Server
 XCOMM
 MFBSUBDIR  = mfb
 CFB8SUBDIR = cfb
 CFB32SUBDIR = cfb32
 MIDAMAGEDIR = miext/damage
 XPSUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB32DIR) $(DEPDIRS) \
 	    $(MIDAMAGEDIR)
+XPOBJS = Xprint/ddxInit.o Xprint/dpmsstubs.o Xprint/miinitext.o
 #if PrintOnlyServer
-#if BuildDPMS
-XPDPMSSTUBOBJS = Xprint/dpmsstubs.o
-#endif
-XPOBJS = Xprint/ddxInit.o Xprint/miinitext.o $(XPDPMSSTUBOBJS)
 XPLIBS = PreFbLibs $(XPDDXLIBS) $(XPDDXFBLIBS) PostFbLibs
 #else
-XPOBJS = Xprint/ddxInit.o
 XPLIBS = PreFbLibs PostFbLibs
 #endif
 #if (defined(SunArchitecture) || defined(SparcArchitecture)) && \
     defined(SVR4Architecture)
 XPSYSLIBS = $(FONTLIBS) $(CBRT) $(SYSLIBS) -lw
 #else
 XPSYSLIBS = $(FONTLIBS) $(CBRT) $(SYSLIBS)
 #endif
 #if HasParallelMake
 MakeMutex($(XPSUBDIRS) $(XPOBJS) $(XPLIBS) $(XPSYSLIBS))
 #endif
 #if ForceServerRemake
 $(XPOBJS) $(XPLIBS) $(XPSYSLIBS):: $(XPSUBDIRS)
 	@if [ -f $@ ]; then touch $@ >/dev/null 2>&1 || exit 0; fi
 #endif
 ServerTarget(Xprt,$(XPSUBDIRS),$(XPOBJS), \
 	$(LIBCWRAPPER) $(XPLIBS) $(LOADABLEEXTS),$(XPSYSLIBS))
 #endif	/* XprtServer */
 
 #if defined(XnestServer) && XnestServer
 XCOMM
 XCOMM Server with Xlib-based ddx
 XCOMM
 #ifndef Win32Architecture
 XNESTDDXDIR = hw/xnest
 #else
 XNESTDDXDIR = hw
 #endif
+#if BuildDPMS
+XNESTDPMSSTUBOBJS = $(XNESTDDXDIR)/dpmsstubs.o
+#endif
 XNESTDIRS = $(STDDIRS) $(XNESTDDXDIR) $(DEPDIRS)
 #if !defined(LynxOSArchitecture) && \
     !defined(Win32Architecture) && \
     !defined(QNX4Architecture)
-XNESTOBJS = hw/xnest/miinitext.o
+XNESTOBJS = hw/xnest/miinitext.o $(XNESTDPMSSTUBOBJS)
 #else
-XNESTOBJS = hw/xnest/miinitext.o dix/main.o
+XNESTOBJS = hw/xnest/miinitext.o dix/main.o $(XNESTDPMSSTUBOBJS)
 #endif
 XNEST = hw/xnest/LibraryTargetName(xnest)
 XNESTLIBS = PreFbLibs $(XNEST) NoMfbPostFbLibs $(XNEST)
 XNESTSYSLIBS = $(FONTLIBS) $(LDPRELIBS) $(XLIB) $(SYSLIBS)
 #if HasParallelMake
 MakeMutex($(XNESTDIRS) $(XNESTOBJS) $(XNESTLIBS) $(XNESTSYSLIBS))
 #endif
 #if ForceServerRemake
 $(XNESTOBJS) $(XNESTLIBS) $(XNESTSYSLIBS):: $(XNESTDIRS)
 	@if [ -f $@ ]; then touch $@ >/dev/null 2>&1 || exit 0; fi
 #endif
 ServerTarget(Xnest,$(XNESTDIRS),$(XNESTOBJS) $(XNESTDEFFILE), \
 	$(LIBCWRAPPER) $(XNESTLIBS) $(LOADABLEEXTS),$(XNESTSYSLIBS))
 #endif /* XnestServer */
 
 
 #if defined(XnonServer) && XnonServer
 XCOMM
 XCOMM non server, just compile sources for build test
 XCOMM
Index: xc/programs/Xserver/Xprint/Imakefile
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/Xprint/Imakefile,v
retrieving revision 1.5
diff -u -2 -0 -r1.5 Imakefile
--- xc/programs/Xserver/Xprint/Imakefile	26 Nov 2004 09:00:08 -0000	1.5
+++ xc/programs/Xserver/Xprint/Imakefile	5 Mar 2005 20:12:59 -0000
@@ -13,52 +13,53 @@
 #ifndef XpPostScriptDDX
 #define XpPostScriptDDX YES
 #endif
 
 SRCS1 =	Init.c Quarks.c spooler.c attributes.c Util.c mediaSizes.c \
 	Oid.c AttrValid.c
 
 OBJS1 = Init.o Quarks.o spooler.o attributes.o Util.o mediaSizes.o \
 	Oid.o AttrValid.o
 
 #ifdef OS2Architecture
 SRCS_OS2 = os2_stubs.c
 OBJS_OS2 = os2_stubs.o
 #endif
 
 #if XprtServer
 #if PrintOnlyServer || defined(PrintServerExtensions)
 #if PrintOnlyServer
 PO_DEFINES = -DPRINT_ONLY_SERVER
 #endif
+#endif
 #ifdef PrintServerExtensions
 XPEXT_DEFINES = PrintServerExtensions
 #else
 XPEXT_DEFINES = $(EXT_DEFINES)
 #endif
-SRCS3 = miinitext.c dpmsstubs.c
-OBJS3 = miinitext.o dpmsstubs.o
-#endif
 SRCS2 = ddxInit.c
 OBJS2 = ddxInit.o
 #endif
 
+SRCS3 = miinitext.c dpmsstubs.c
+OBJS3 = miinitext.o dpmsstubs.o
+
 SRCS = $(SRCS1) $(SRCS2) $(SRCS3) $(SRCS_OS2)
 
 OBJS = $(OBJS1) $(OBJS_OS2)
 
 #if XpRasterDDX
 RASTDIR = raster
 RASTDEF = -DXPRASTERDDX
 #endif
 #if XpColorPclDDX
 PCLDIR = pcl
 PCLDEF = -DXPPCLDDX
 #endif
 #if XpMonoPclDDX
 MPCLDIR = pcl-mono
 MPCLDEF = -DXPMONOPCLDDX
 #endif
 #if XpPostScriptDDX
 PSDIR = ps
 PSDEF = -DXPPSDDX
 #endif
@@ -79,56 +80,54 @@
              -I$(EXTINCSRC) -I$(FONTINCSRC) -I$(XLIBSRC)
 
 
    LINTLIBS = $(TOP)/server/dix/llib-ldix.ln $(TOP)/server/os/llib-los.ln \
 	      $(TOP)/server/ddx/mfb/llib-lmfb.ln \
 	      $(TOP)/server/ddx/mi/llib-lmi.ln \
 	      $(TOP)/server/ddx/cfb/llib-lcfb.ln
 
 DEFINES = -DXPRINTDIR=\"$(XPRINTDIR)\" $(RASTDEF) $(PCLDEF) $(MPCLDEF) \
          $(PSDEF) $(MKTMP_DEFINES) -UXFree86LOADER -D_XP_PRINT_SERVER_
 
 /* Go ahead:  Call me paranoid ... */
 Makefiles::
 	RemoveFiles(Quark.c Xlcint.h Xresource.h Xrm.c XrmI.h)
 
 LinkSourceFile(Quarks.c,$(XLIBSRC))
 
 NormalLibraryObjectRule()
 
 #if XprtServer
-all:: $(OBJS2) $(OBJS3) $(OBJS_OS2)
+all:: $(OBJS2) $(OBJS_OS2) $(OBJS3)
 #endif
 
 NormalLibraryTarget(printer,$(OBJS))
 NormalLintTarget($(SRCS))
 
 SpecialCObjectRule(ddxInit,$(ICONFIGFILES),$(PO_DEFINES) $(OS_DEFINES) $(EXT_DEFINES))
-#if XprtServer && (PrintOnlyServer || defined(PrintServerExtensions))
+#if XprtServer
 LinkSourceFile(miinitext.c,$(SERVERSRC)/mi)
-SpecialCObjectRule(miinitext,$(ICONFIGFILES),$(PO_DEFINES) $(OS_DEFINES) $(XPEXT_DEFINES) -DXPRINT)
-#if PrintOnlyServer
+SpecialCObjectRule(miinitext,$(ICONFIGFILES), -DPRINT_ONLY_SERVER $(OS_DEFINES) $(XPEXT_DEFINES) -DXPRINT)
 LinkSourceFile(dpmsstubs.c,$(SERVERSRC)/Xext)
 LinkSourceFile(dpmsproc.h,$(SERVERSRC)/Xext)
 SpecialCObjectRule(dpmsstubs,$(ICONFIGFILES),$(PO_DEFINES) $(OS_DEFINES) $(XPEXT_DEFINES) -DXPRINT)
 #endif
-#endif
 
 #ifdef OS2Architecture
 LinkSourceFile(os2_stubs.c,../hw/xfree86/os-support/os2)
 SpecialCObjectRule(os2_stubs,$(ICONFIGFILES),-DOS2NULLSELECT)
 #endif
 
 #ifdef IHaveSubdirs
 MakeSubdirs($(SUBDIRS))
 DependSubdirs($(SUBDIRS))
 MakeLintLibSubdirs($(SUBDIRS))
 #endif
 
 DependTarget()
 
 InstallManPage(Xprt,$(MANDIR))
 
 #ifdef HasDocBookTools
 all:: Xprt.man Xprt.html
 
 ConvertDocBookToManPage(Xprt.sgml, Xprt.man)
Index: xc/programs/Xserver/Xprint/Init.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/Xprint/Init.c,v
retrieving revision 1.9
diff -u -2 -0 -r1.9 Init.c
--- xc/programs/Xserver/Xprint/Init.c	4 Dec 2004 00:42:50 -0000	1.9
+++ xc/programs/Xserver/Xprint/Init.c	5 Mar 2005 20:12:59 -0000
@@ -285,40 +285,52 @@
 static int printScreenPrivIndex,
 	   printWindowPrivIndex,
 	   printGCPrivIndex;
 static unsigned long printGeneration = 0;
 static char *configFileName = (char *)NULL;
 static Bool freeDefaultFontPath = FALSE;
 static char *origFontPath = (char *)NULL;
 
 static Bool xprintInitGlobalsCalled = FALSE;
 /*
  * This function is responsible for doing initalisation of any global
  * variables at an very early point of server startup (even before
  * |ProcessCommandLine()|. 
  */
 void XprintInitGlobals(void)
 {
     extern char dispatchExceptionAtReset; /* defined in Xserver/dix/dispatch.c */
 
     xprintInitGlobalsCalled = TRUE;
 
+#ifdef DAMAGE
+    /* Disable DAMAGE extension for now as it does not work with
+     * the Postscript DDX yet (see
+     * https://bugs.freedesktop.org/show_bug.cgi?id=1660) ...
+     * (you can enable the DAMAGE extension explicitly via
+     * % X +extension DAMAGE ... #) ;-( */
+    {
+      extern Bool noDamageExtension;
+      noDamageExtension = TRUE;
+    }
+#endif /* DAMAGE */
+
 #ifdef SMART_SCHEDULE
     /* Somehow the XF86 "smart scheduler" completely kills the Xprint DDX 
      * (see http://xprint.freedesktop.org/cgi-bin/bugzilla/show_bug.cgi?id=467
      * ("Xfree86's "smart scheduler" breaks Xprt") */
     SmartScheduleDisable = TRUE;
 #endif /* SMART_SCHEDULE */
 
     /* Disable internal screensaver for Xprint (workaround for
      * http://pdx.freedesktop.org/cgi-bin/bugzilla/show_bug.cgi?id=567 ("Xorg
      * Xprt starts to consume 100% CPU when being idle for some time")) */
     defaultScreenSaverTime = 0;
     
     /* Ensure that the maximum request size for the BIGREQUESTS extension
      * is at least 8MB (see 
      * http://xprint.freedesktop.org/cgi-bin/bugzilla/show_bug.cgi?id=622 - "RFE:
      * Xprt's default BIGREQUESTS extension buffer size should be 8MB")
      */
     maxBigRequestSize = (8*1048576)-1;
     
     /* Xprt should not reset by default when the last client exists
Index: xc/programs/Xserver/Xprint/ddxInit.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/Xprint/ddxInit.c,v
retrieving revision 1.4
diff -u -2 -0 -r1.4 ddxInit.c
--- xc/programs/Xserver/Xprint/ddxInit.c	27 Jul 2004 20:26:47 -0000	1.4
+++ xc/programs/Xserver/Xprint/ddxInit.c	5 Mar 2005 20:12:59 -0000
@@ -64,43 +64,40 @@
  *
  *-----------------------------------------------------------------------
  */
 
 void 
 InitOutput(
     ScreenInfo   *pScreenInfo,
     int          argc,
     char         **argv)
 
 {
     int i;
 
     pScreenInfo->imageByteOrder = IMAGE_BYTE_ORDER;
     pScreenInfo->bitmapScanlineUnit = BITMAP_SCANLINE_UNIT;
     pScreenInfo->bitmapScanlinePad = BITMAP_SCANLINE_PAD;
     pScreenInfo->bitmapBitOrder = BITMAP_BIT_ORDER;
 
     pScreenInfo->numPixmapFormats = 0; /* get them in PrinterInitOutput */
     screenInfo.numVideoScreens = 0;
-#ifdef PRINT_ONLY_SERVER
-    PrinterInitOutput(pScreenInfo, argc, argv);
-#endif
 }
 
 static void
 BellProc(
     int volume,
     DeviceIntPtr pDev)
 {
     return;
 }
 
 static void
 KeyControlProc(
     DeviceIntPtr pDev,
     KeybdCtrl *ctrl)
 {
     return;
 }
 
 static KeySym printKeyMap[256];
 static CARD8 printModMap[256];
@@ -248,66 +245,57 @@
     X_GETTIMEOFDAY(&tp);
     return(tp.tv_sec * 1000) + (tp.tv_usec / 1000);
 }
 #endif
 
 /* ddxInitGlobals - called by |InitGlobals| from os/util.c */
 void ddxInitGlobals(void)
 {
     XprintInitGlobals();
 }
 
 /****************************************
 * ddxUseMsg()
 *
 * Called my usemsg from os/utils/c
 *
 *****************************************/
 
 void ddxUseMsg(void)
 {
-/* Enable |XprintUseMsg()| only if |XprintOptions()| is called
- * by |ddxProcessArgument|, too (see below...) */
-#ifdef PRINT_ONLY_SERVER
-    XprintUseMsg();
-#endif /* PRINT_ONLY_SERVER */
 }
 
 void AbortDDX (void)
 {
 }
 
 void ddxGiveUp(void)	/* Called by GiveUp() */
 {
 }
 
 int
 ddxProcessArgument (
     int argc,
     char *argv[],
     int i)
 {
-#ifdef PRINT_ONLY_SERVER
-    return XprintOptions(argc, argv, i) - i;
-#else
     return(0);
-#endif
 }
 
 #ifdef XINPUT
 
 #include "XI.h"
 #include "XIproto.h"
 #include "XIstubs.h"
 
 extern  int     BadDevice;
 
 int
 ChangePointerDevice (
     DeviceIntPtr       old_dev,
     DeviceIntPtr       new_dev,
     unsigned char      x,
     unsigned char      y)
 {
         return (BadDevice);
 }
 
Index: xc/programs/Xserver/dix/Imakefile
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/dix/Imakefile,v
retrieving revision 1.4
diff -u -2 -0 -r1.4 Imakefile
--- xc/programs/Xserver/dix/Imakefile	30 Oct 2004 01:41:45 -0000	1.4
+++ xc/programs/Xserver/dix/Imakefile	5 Mar 2005 20:12:59 -0000
@@ -10,41 +10,41 @@
 #if PrintOnlyServer
 XPSRC = xpstubs.c
 XPOBJ = xpstubs.o
 #endif
 
 #if !HasFfs
 FFS_SRC = ffs.c
 FFS_OBJ = ffs.o
 #endif
 
 SRCS = atom.c colormap.c cursor.c devices.c dispatch.c dixutils.c events.c \
 	extension.c gc.c globals.c glyphcurs.c grabs.c \
 	main.c property.c resource.c swaprep.c swapreq.c \
 	tables.c window.c initatoms.c dixfonts.c privates.c pixmap.c $(FFS_SRC)
 OBJS = atom.o colormap.o cursor.o devices.o dispatch.o dixutils.o events.o \
 	extension.o gc.o globals.o glyphcurs.o grabs.o \
 	main.o property.o resource.o swaprep.o swapreq.o \
 	tables.o window.o initatoms.o dixfonts.o privates.o pixmap.o $(FFS_OBJ)
 
     INCLUDES = -I../include -I$(XINCLUDESRC) -I$(FONTINCSRC) -I$(EXTINCSRC) \
-	       -I$(SERVERSRC)/Xext -I$(SERVERSRC)/lbx
+	       -I$(SERVERSRC)/Xext -I$(SERVERSRC)/lbx -I../Xprint
     LINTLIBS = ../os/llib-los.ln
 
 /*
  * The following configuration parameters may be set in the appropriate
  * .macros files or site.def in the directory util/imake.includes/:
  *
  *     DefaultFontPath                COMPILEDDEFAULTFONTPATH
  *     DefaultRGBDatabase             RGB_DB
  *
  * The sample util/imake.includes/Imake.tmpl will provide generic defaults.
  * The values in site.h are simply a last line of defense and should not be
  * changed.
  */
 
 #ifdef DefaultFontPath
 DEFAULTFONTPATH = DefaultFontPath
 SITE_FONT_PATH = -DCOMPILEDDEFAULTFONTPATH=\"$(DEFAULTFONTPATH)\"
 #endif
 
 #ifdef DefaultRGBDatabase
Index: xc/programs/Xserver/dix/main.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/dix/main.c,v
retrieving revision 1.4
diff -u -2 -0 -r1.4 main.c
--- xc/programs/Xserver/dix/main.c	18 Sep 2004 23:18:35 -0000	1.4
+++ xc/programs/Xserver/dix/main.c	5 Mar 2005 20:13:00 -0000
@@ -235,40 +235,41 @@
 	~0, ~0, ~0, ~0,
 	~0, ~0, ~0, ~0,
 	~0, ~0, ~0, ~0,
 	 3		/* 64 bits per scanline pad unit */
 };
 
 #ifndef MIN
 #define MIN(a,b) (((a) < (b)) ? (a) : (b))
 #endif
 
 int
 main(int argc, char *argv[], char *envp[])
 {
     int		i, j, k, error;
     char	*xauthfile;
     HWEventQueueType	alwaysCheckForInput[2];
 
     display = "0";
 
     InitGlobals();
+    XprintInitGlobals();
 
     /* Quartz support on Mac OS X requires that the Cocoa event loop be in
      * the main thread. This allows the X server main to be called again
      * from another thread. */
 #if defined(__DARWIN__) && defined(DARWIN_WITH_QUARTZ)
     DarwinHandleGUI(argc, argv, envp);
 #endif
 
     /* Notice if we're restarted.  Probably this is because we jumped through
      * an uninitialized pointer */
     if (restart)
 	FatalError("server restarted. Jumped through uninitialized pointer?\n");
     else
 	restart = 1;
 
     CheckUserParameters(argc, argv, envp);
 
     CheckUserAuthorization();
 
 #ifdef COMMANDLINE_CHALLENGED_OPERATING_SYSTEMS
@@ -346,47 +347,46 @@
 	PixmapWidthPaddingInfo[1].padPixelsLog2 = answer[j][k];
  	j = indexForBitsPerPixel[8]; /* bits per byte */
  	PixmapWidthPaddingInfo[1].padBytesLog2 = answer[j][k];
 	PixmapWidthPaddingInfo[1].bitsPerPixel = 1;
 
 	InitAtoms();
 	InitEvents();
 	InitGlyphCaching();
 	ResetClientPrivates();
 	ResetScreenPrivates();
 	ResetWindowPrivates();
 	ResetGCPrivates();
 #ifdef PIXPRIV
 	ResetPixmapPrivates();
 #endif
 	ResetColormapPrivates();
 	ResetFontPrivateIndex();
 	InitCallbackManager();
 	InitVisualWrap();
 	InitOutput(&screenInfo, argc, argv);
+	PrinterInitOutput(&screenInfo, argc, argv);
+
 	if (screenInfo.numScreens < 1)
 	    FatalError("no screens found");
 	if (screenInfo.numVideoScreens < 0)
 	    screenInfo.numVideoScreens = screenInfo.numScreens;
-#ifdef XPRINT
-	PrinterInitOutput(&screenInfo, argc, argv);
-#endif
 	InitExtensions(argc, argv);
 	if (!InitClientPrivates(serverClient))
 	    FatalError("failed to allocate serverClient devprivates");
 	for (i = 0; i < screenInfo.numScreens; i++)
 	{
 	    ScreenPtr pScreen = screenInfo.screens[i];
 	    if (!CreateScratchPixmapsForScreen(i))
 		FatalError("failed to create scratch pixmaps");
 	    if (pScreen->CreateScreenResources &&
 		!(*pScreen->CreateScreenResources)(pScreen))
 		FatalError("failed to create screen resources");
 	    if (!CreateGCperDepth(i))
 		FatalError("failed to create scratch GCs");
 	    if (!CreateDefaultStipple(i))
 		FatalError("failed to create default stipple");
 	    if (!CreateRootWindow(pScreen))
 		FatalError("failed to create root window");
 	}
 	InitInput(argc, argv);
 	if (InitAndStartDevices() != Success)
Index: xc/programs/Xserver/dix/xpstubs.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/dix/xpstubs.c,v
retrieving revision 1.2
diff -u -2 -0 -r1.2 xpstubs.c
--- xc/programs/Xserver/dix/xpstubs.c	23 Apr 2004 19:04:44 -0000	1.2
+++ xc/programs/Xserver/dix/xpstubs.c	5 Mar 2005 20:13:00 -0000
@@ -12,43 +12,59 @@
 in all copies or substantial portions of the Software.
 
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
 OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 OTHER DEALINGS IN THE SOFTWARE.
 
 Except as contained in this notice, the name of The Open Group shall
 not be used in advertising or otherwise to promote the sale, use or
 other dealings in this Software without prior written authorization
 from The Open Group.
 */
 
 /* $Xorg: xpstubs.c,v 1.5 2001/03/08 17:52:08 pookie Exp $ */
 
 #include "misc.h"
 #include "font.h"
+#include "DiPrint.h"
 
 Bool
 XpClientIsBitmapClient(
     ClientPtr client)
 {
     return TRUE;
 }
 
 Bool
 XpClientIsPrintClient(
     ClientPtr client,
     FontPathElementPtr fpe)
 {
     return FALSE;
 }
 int
 XprintOptions(
     int argc,
     char **argv,
     int i)
 {
     return i;
 }
+void
+PrinterInitOutput(
+     ScreenInfo *pScreenInfo,
+     int argc,
+     char **argv)
+{
+}
+void XprintUseMsg(void)
+{
+}
+void XprintInitGlobals(void)
+{
+}
+
+
Index: xc/programs/Xserver/hw/xfree86/Imakefile
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/Imakefile,v
retrieving revision 1.4
diff -u -2 -0 -r1.4 Imakefile
--- xc/programs/Xserver/hw/xfree86/Imakefile	17 Sep 2004 03:04:50 -0000	1.4
+++ xc/programs/Xserver/hw/xfree86/Imakefile	5 Mar 2005 20:13:03 -0000
@@ -204,22 +204,33 @@
     -DNETBSDNEWMOUSEDEV=$(NETBSDNEWMOUSEDEV) \
     -DLINUXMOUSEDEV=$(LINUXMOUSEDEV) \
     -DMANPAGE=$(MANPAGE) '-DMODULEPATH="$(MODULEDIR)"', \
     $(ICONFIGFILES))
 
 InstallDriverSDKNonExecFile($(XORGCONFIG),$(DRIVERSDKDIR))
 InstallDriverSDKNonExecFile($(XF98CONFIG),$(DRIVERSDKDIR))
 
 EXTRAMANDEFS=-D__logdir__=$(LOGDIRECTORY)
 InstallManPage(Xorg,$(MANDIR))
 InstallGenManPage(xorg.conf,$(FILEMANDIR),$(FILEMANSUFFIX))
 
 #if 0
 InstallNamedNonExec($(XORGCONFIG),XF86Config.eg,$(LIBDIR))
 InstallNamedNonExec($(XF98CONFIG),XF86Config.98,$(LIBDIR))
 #endif
 InstallNamedNonExec(Options,Options,$(LIBDIR))
 
 InstallDriverSDKNamedNonExec($(XORGCONFIG),XF86Config.eg,$(DRIVERSDKDIR))
 
+XCOMM make sure all neccesary module dirs exist to avoid breaking
+XCOMM the installation process on some platforms
+InstallDirectory($(DESTDIR)$(MODULEDIR)/video)
+InstallDirectory($(DESTDIR)$(MODULEDIR)/print)
+InstallCreateLink($(MODULEDIR),video,drivers)
+InstallDirectory($(DESTDIR)$(MODULEDIR)/input)
+InstallDirectory($(DESTDIR)$(MODULEDIR)/multimedia)
+InstallDirectory($(DESTDIR)$(MODULEDIR)/extensions)
+InstallDirectory($(DESTDIR)$(MODULEDIR)/fonts)
+InstallDirectory($(DESTDIR)$(MODULEDIR)/internal)
+
 MakeSubdirs($(SUBDIRS))
 DependSubdirs($(SUBDIRS))
Index: xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile,v
retrieving revision 1.3
diff -u -2 -0 -r1.3 Imakefile
--- xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile	24 Sep 2004 00:07:46 -0000	1.3
+++ xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile	5 Mar 2005 20:13:03 -0000
@@ -17,41 +17,41 @@
 INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
            -I$(XF86SRC)/vgafb -I$(XF86SRC)/vgahw -I$(SERVERSRC)/include \
 	   -I$(SERVERSRC)/mi -I$(SERVERSRC)/fb -I$(SERVERSRC)/mfb \
 	   -I$(SERVERSRC)/miext/shadow \
 	   -I$(XINCLUDESRC) -I$(XF86SRC)/xaa -I$(FONTINCSRC) \
 	   -I$(XF86SRC)/ramdac -I$(XF86SRC)/rac	-I$(XF86SRC)/ddc \
            -I$(XF86SRC)/i2c -I$(XF86SRC)/shadowfb \
 	   -I$(SERVERSRC)/Xext  -I$(EXTINCSRC) \
 	   -I$(XF86SRC)/int10 -I$(XF86SRC)/vbe -I$(SERVERSRC)/render
 #endif
 
 #if MakeHasPosixVariableSubstitutions
 SubdirLibraryRule($(OBJS))
 #endif
 
 
 ModuleObjectRule()
 
 ObjectModuleTarget(neomagic,$(OBJS))
 
-InstallObjectModule(neomagic,$(MODULEDIR),drivers)
+InstallVideoObjectModule(neomagic,$(MODULEDIR))
 
 #if !defined(XF86DriverSDK)
 InstallModuleManPage(neomagic)
 #endif
 
 DependTarget()
 
 InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/neomagic)
 InstallDriverSDKNonExecFile(neo.h,$(DRIVERSDKDIR)/drivers/neomagic)
 InstallDriverSDKNonExecFile(neo_2070.c,$(DRIVERSDKDIR)/drivers/neomagic)
 InstallDriverSDKNonExecFile(neo_2090.c,$(DRIVERSDKDIR)/drivers/neomagic)
 InstallDriverSDKNonExecFile(neo_2097.c,$(DRIVERSDKDIR)/drivers/neomagic)
 InstallDriverSDKNonExecFile(neo_2200.c,$(DRIVERSDKDIR)/drivers/neomagic)
 InstallDriverSDKNonExecFile(neo_bank.c,$(DRIVERSDKDIR)/drivers/neomagic)
 InstallDriverSDKNonExecFile(neo_cursor.c,$(DRIVERSDKDIR)/drivers/neomagic)
 InstallDriverSDKNonExecFile(neo_dga.c,$(DRIVERSDKDIR)/drivers/neomagic)
 InstallDriverSDKNonExecFile(neo_driver.c,$(DRIVERSDKDIR)/drivers/neomagic)
 InstallDriverSDKNonExecFile(neo_i2c.c,$(DRIVERSDKDIR)/drivers/neomagic)
 InstallDriverSDKNonExecFile(neo_shadow.c,$(DRIVERSDKDIR)/drivers/neomagic)
 InstallDriverSDKNonExecFile(neo_macros.h,$(DRIVERSDKDIR)/drivers/neomagic)
Index: xc/programs/Xserver/hw/xfree86/loader/loadmod.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/loader/loadmod.c,v
retrieving revision 1.2
diff -u -2 -0 -r1.2 loadmod.c
--- xc/programs/Xserver/hw/xfree86/loader/loadmod.c	23 Apr 2004 19:54:06 -0000	1.2
+++ xc/programs/Xserver/hw/xfree86/loader/loadmod.c	5 Mar 2005 20:13:04 -0000
@@ -187,41 +187,43 @@
 }
 
 static void
 FreePathList(char **pathlist)
 {
     if (pathlist && pathlist != defaultPathList)
 	FreeStringList(pathlist);
 }
 
 void
 LoaderSetPath(const char *path)
 {
     if (!path)
 	return;
 
     defaultPathList = InitPathList(path);
 }
 
 /* Standard set of module subdirectories to search, in order of preference */
 static const char *stdSubdirs[] = {
-    "drivers/",
+    "video/",
+    "print/",
+    "drivers/",    /* depreciated, use "video/" or "print/" instead */
     "input/",
     "multimedia/",
     "extensions/",
     "fonts/",
     "internal/",
     "",
     NULL
 };
 
 /*
  * Standard set of module name patterns to check, in order of preference
  * These are regular expressions (suitable for use with POSIX regex(3)).
  */
 static PatternRec stdPatterns[] = {
     {"^lib(.*)\\.so$",},
     {"^lib(.*)\\.a$",},
     {"(.*)_drv\\.so$",},
     {"(.*)_drv\\.o$",},
     {"(.*)\\.so$",},
     {"(.*)\\.a$",},
Index: xc/programs/Xserver/hw/xnest/Imakefile
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xnest/Imakefile,v
retrieving revision 1.2
diff -u -2 -0 -r1.2 Imakefile
--- xc/programs/Xserver/hw/xnest/Imakefile	23 Apr 2004 19:54:21 -0000	1.2
+++ xc/programs/Xserver/hw/xnest/Imakefile	5 Mar 2005 20:13:04 -0000
@@ -1,29 +1,34 @@
 XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:53:28 cpqbld Exp $
 
 
 
 
 XCOMM $XFree86: xc/programs/Xserver/hw/xnest/Imakefile,v 3.28 2003/10/02 13:30:08 eich Exp $
 
 #include <Server.tmpl>
 
+#if BuildDPMS
+DPMSSRC  = dpmsstubs.c
+DPMSOBJS = dpmsstubs.o
+#endif
+
 #ifdef OS2Architecture
 SRCS1 = os2Stub.c
 OBJS1 = os2Stub.o
 #endif
 
 SRCS =	Args.c \
 	Color.c \
 	Cursor.c \
 	Display.c \
 	Events.c \
 	Font.c \
 	GC.c \
 	GCOps.c \
 	GetTime.c \
 	Handlers.c \
 	Init.c \
 	Keyboard.c \
 	Pixmap.c \
 	Pointer.c \
 	Screen.c \
@@ -47,34 +52,39 @@
 	Keyboard.o \
 	Pixmap.o \
 	Pointer.o \
 	Screen.o \
 	TestExt.o \
 	Visual.o \
 	Window.o \
 	stubs.o \
 	miinitext.o $(OBJS1)
 
 
 INCLUDES = -I. -I$(XBUILDINCDIR) -I$(FONTINCSRC) \
 	   -I../../mi -I../../include -I../../os \
            -I$(EXTINCSRC) -I$(XINCLUDESRC) -I$(LIBSRC) -I$(SERVERSRC)/Xext
 
 DEFINES = $(OS_DEFINES) $(EXT_DEFINES) -DNO_HW_ONLY_EXTS \
 	  -UXFree86LOADER  -UMITSHM $(XKBDEFRULESDEFS)
 
 XKB_DEFINES = -DXKB_BASE_DIRECTORY=\"$(LIBDIR)/xkb/\"
 
-all:: $(OBJS)
+all:: $(OBJS) $(DPMSOBJS)
 
 LinkSourceFile(stubs.c,$(SERVERSRC)/Xi)
 SpecialCObjectRule(Init,$(ICONFIGFILES),$(_NOOP_))
 LinkSourceFile(miinitext.c,$(SERVERSRC)/mi)
 SpecialCObjectRule(miinitext,$(ICONFIGFILES),-UDPMSExtension)
 SpecialCObjectRule(Keyboard,$(ICONFIGFILES),$(XKB_DEFINES))
+#if BuildDPMS
+LinkSourceFile(dpmsstubs.c,$(SERVERSRC)/Xext)
+SpecialCObjectRule(dpmsstubs,$(ICONFIGFILES),$(EXT_DEFINES))
+#endif
+
 
 NormalLibraryObjectRule()
 NormalLibraryTarget(xnest,$(OBJS))
 
 InstallManPage(Xnest,$(MANDIR))
 
 DependTarget()
Index: xc/programs/Xserver/hw/xnest/Init.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xnest/Init.c,v
retrieving revision 1.3
diff -u -2 -0 -r1.3 Init.c
--- xc/programs/Xserver/hw/xnest/Init.c	21 Jun 2004 13:40:25 -0000	1.3
+++ xc/programs/Xserver/hw/xnest/Init.c	5 Mar 2005 20:13:04 -0000
@@ -143,45 +143,20 @@
 void OsVendorInit()
 {
     return;
 }
 
 void OsVendorFatalError()
 {
     return;
 }
 
 void ddxBeforeReset(void)
 {
     return;
 }
 
 /* this is just to get the server to link on AIX */
 #ifdef AIXV3
 int SelectWaitTime = 10000; /* usec */
 #endif
 
-#ifdef DPMSExtension
-/**************************************************************
- * DPMSSet(), DPMSGet(), DPMSSupported()
- *
- * stubs
- *
- ***************************************************************/
-
-void
-DPMSSet(int level)
-{
-}
-
-int
-DPMSGet(int *level)
-{
-    return -1;
-}
-
-Bool
-DPMSSupported()
-{
-    return FALSE;
-}
-#endif
Index: xc/programs/Xserver/os/utils.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/os/utils.c,v
retrieving revision 1.11
diff -u -2 -0 -r1.11 utils.c
--- xc/programs/Xserver/os/utils.c	25 Nov 2004 12:48:21 -0000	1.11
+++ xc/programs/Xserver/os/utils.c	5 Mar 2005 20:13:05 -0000
@@ -636,40 +636,43 @@
 #endif
 #ifndef NOLOGOHACK
     ErrorF("-logo                  enable logo in screen saver\n");
     ErrorF("nologo                 disable logo in screen saver\n");
 #endif
     ErrorF("-nolisten string       don't listen on protocol\n");
     ErrorF("-noreset               don't reset after last client exists\n");
     ErrorF("-reset                 reset after last client exists\n");
     ErrorF("-p #                   screen-saver pattern duration (minutes)\n");
     ErrorF("-pn                    accept failure to listen on all ports\n");
     ErrorF("-nopn                  reject failure to listen on all ports\n");
     ErrorF("-r                     turns off auto-repeat\n");
     ErrorF("r                      turns on auto-repeat \n");
 #ifdef RENDER
     ErrorF("-render [default|mono|gray|color] set render color alloc policy\n");
 #endif
     ErrorF("-s #                   screen-saver timeout (minutes)\n");
 #ifdef XCSECURITY
     ErrorF("-sp file               security policy file\n");
 #endif
+#ifdef XPRINT
+    XprintUseMsg();
+#endif
     ErrorF("-su                    disable any save under support\n");
     ErrorF("-t #                   mouse threshold (pixels)\n");
     ErrorF("-terminate             terminate at server reset\n");
     ErrorF("-to #                  connection time out\n");
     ErrorF("-tst                   disable testing extensions\n");
     ErrorF("ttyxx                  server started from init on /dev/ttyxx\n");
     ErrorF("v                      video blanking for screen-saver\n");
     ErrorF("-v                     screen-saver without video blanking\n");
     ErrorF("-wm                    WhenMapped default backing-store\n");
     ErrorF("-x string              loads named extension at init time \n");
     ErrorF("-maxbigreqsize         set maximal bigrequest size \n");
 #ifdef PANORAMIX
     ErrorF("+xinerama              Enable XINERAMA extension\n");
     ErrorF("-xinerama              Disable XINERAMA extension\n");
 #endif
 #ifdef SMART_SCHEDULE
     ErrorF("-dumbSched             Disable smart scheduling, enable old behavior\n");
     ErrorF("-schedInterval int     Set scheduler interval in msec\n");
 #endif
     ErrorF("+extension name        Enable extension\n");


More information about the Xprint mailing list