]> git.sesse.net Git - rdpsrv/blobdiff - Xserver/INSTALL.TXT
Import X server from vnc-3.3.7.
[rdpsrv] / Xserver / INSTALL.TXT
diff --git a/Xserver/INSTALL.TXT b/Xserver/INSTALL.TXT
new file mode 100644 (file)
index 0000000..786c88d
--- /dev/null
@@ -0,0 +1,749 @@
+
+
+
+
+
+
+
+
+
+             Building and Installing the X Window System
+
+
+
+
+
+
+
+
+                            Stephen Gildea
+
+                             X Consortium
+
+
+
+
+
+
+                            March 5, 1996
+
+                       Updated For Release 6.3
+
+
+
+
+
+
+
+
+
+
+Copyright c 1995, 1996 X Consortium
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of        this software and associated documentation files (the
+"Software"), to        deal in the Software without restriction, including
+without        limitation the rights to use, copy, modify, merge, publish, dis-
+tribute, sublicense, and/or sell copies        of the Software, and to permit
+persons        to whom the Software is furnished to do so, subject to the fol-
+lowing conditions:
+
+The above copyright notice and this permission notice shall be included
+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 MERCHANTABIL-
+ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT
+SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM,        DAMAGES OR OTHER LIABIL-
+ITY, 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 X Consortium 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 X Consortium.
+
+X Window System        is a trademark of X Consortium, Inc.
+
+
+1.  Easy Build Instructions
+
+This quick summary is no substitute for        reading the full build instruc-
+tions later in this document.
+
+Edit xc/config/cf/site.def for local preferences.  If you want to build
+with gcc uncomment the HasGcc2 line.  If you want to install somewhere
+other than /usr/X11R6.3, change        ProjectRoot.  (Do not use DESTDIR.)
+
+If any fixes have been released        by the X Consortium, stop here and fol-
+low the        instructions at the top of each patch, but don't do any of the
+make commands suggested        in the patches.  Then continue here.
+
+Check the appropriate vendor-specific .cf file in xc/config/cf/        to make
+sure that OSMajorVersion and OSMinorVersion are        set correctly for your
+system.         Override them in site.def if necessary.
+
+See if there is        a BootstrapCFlags mentioned in the comments in the
+vendor-specific        .cf file.  If there isn't one, cd to the xc directory
+and type:
+
+       % make World >& world.log
+
+
+If there is a BootstrapCFlags, take its        value and type:
+
+       % make World BOOTSTRAPCFLAGS="value" >& world.log
+
+
+Do not call the        output file "make.log" when doing "make World".  After a
+successful build, you can install with:
+
+       % make install >& install.log
+
+
+You can        install manual pages with:
+
+       % make install.man >& man.log
+
+
+While the system is building (or if things fail), read the rest        of these
+installation instructions.
+
+
+
+2.  Building X
+
+
+This document gives detailed instructions for building Release 6:  get-
+ting it        off the distribution medium, configuring, compiling, installing,
+running, and updating.
+
+Release        Notes are in xc/RELNOTES.* (various formats) in the distribu-
+tion.
+
+More recent information        about newly-discovered problems may be found in
+the Frequently Asked Questions posting appearing monthly on the
+comp.windows.x newsgroup and xpert mailing list.  It is        also available
+via anonymous FTP on ftp.x.org in the file contrib/faqs/FAQ.Z, or on
+your local X mirror site.
+
+
+2.1.  Preparing        the Site
+
+
+If you are unpacking tar files,        you will need about 130 Mb to hold the
+xc/ part.  To install requires 30-50 Mb        assuming you have shared
+libraries (80-100 Mb without). You will need an equivalent amount of
+extra space to build, since you        also need room for all the object files.
+
+Distributed as tar files, Release 6.3 core is divided into parts as fol-
+lows:
+
+
+       xc-1.tar       contains everything in xc/ that isn't in the other tar files
+       xc-2.tar       contains xc/fonts, xc/doc/specs, xc/util
+       xc-3.tar       contains xc/doc/hardcopy
+
+
+If you define BuildFonts to NO,        you only need to unpack xc-1.tar to
+build. If you build fonts, then you will also need xc-2.tar to build.
+
+
+2.2.  Unpacking        the Distribution
+
+
+The distribution normally comes        as multiple tar files, either on tape or
+across a network, or as        a CD-ROM.
+
+
+2.2.1. Unpacking a Compressed FTP Distribution
+
+
+If you have obtained compressed        tar files over the network, create a
+directory to hold the sources and cd into it:
+
+       mkdir sourcedir
+       cd sourcedir
+
+Then for each tar file xc-*.tar.Z, execute this:
+
+       zcat ftp-dir/xc-N.tar.Z | tar xf -
+
+
+
+2.2.2. Unpacking a gzipped FTP Distribution
+
+
+If you have obtained gzipped tar files over the        network, create a direc-
+tory to        hold the sources and cd into it:
+
+       mkdir sourcedir
+       cd sourcedir
+
+Then for each tar file xc-*.tar.gz, execute this:
+
+       gunzip -c ftp-dir/xc-N.tar.gz | tar xf -
+
+
+
+2.2.3. Unpacking a Split Compressed FTP Distribution
+
+
+If you have obtained compressed        and split tar files over the network,
+create a directory to hold the sources:
+
+       mkdir sourcedir
+
+Then for each directory        xc-*:
+
+       cd ftp-dir/xc-N
+       cat xc-N.?? | uncompress | (cd sourcedir; tar xf -)
+
+
+
+2.2.4. Unpacking the Tape Distribution
+
+
+If you have obtained a tape, create a directory        to hold the sources and
+untar everything into that directory:
+
+       mkdir sourcedir
+       cd sourcedir
+       tar xf tape-device
+
+
+
+2.2.5. Using the CD-ROM
+
+
+If you have obtained a CD-ROM, you don't have to do anything to        unpack
+it.  However, you will have to create a        symbolic link tree to build X.
+See the        next section.
+
+To mount the CD-ROM, see the mount(8) manual page on your system or the
+liner notes that came with the CD-ROM. Some systems, e.g., Solaris 2,
+can automatically mount        the CD-ROM for you.
+
+
+2.3.  Apply Patches
+
+
+If there are fixes released that are more recent than your distribution,
+apply them now.         Follow the instructions at the top of each patch, but
+don't do any make commands.  See the section "Public Patches" later in
+this document. Then continue here.
+
+
+2.4.  Symbolic Link Trees
+
+
+If you expect to build the distribution        on more than one machine using a
+shared source tree, or you are building        from CD-ROM, or you just want to
+keep the source        tree pure, you may want to use the program
+xc/config/util/lndir.c to create a symbolic link tree on each build
+machine.  The links may        use an additional 10 megabytes, but it is
+cheaper        than having multiple copies of the source tree.
+
+It may be tricky to compile lndir before the distribution is built.  If
+you have a copy        from a previous release, use that.  Makefile.ini can be
+used for building lndir        the first time.  You may have to specify
+OSFLAGS=-Dsomething to get it to compile.  What        you would pass as
+BOOTSTRAPCFLAGS        might work.  The command line looks something like this:
+
+       make -f Makefile.ini OSFLAGS=-Dflag
+
+
+To use a symbolic link tree, create a directory        for the build, cd to it,
+and type this:
+
+       lndir sourcedir
+
+
+where sourcedir        is the pathname of the directory where you stored the
+sources.  All of the build instructions        given below should then be done
+in the build directory on each machine,        rather than in the source direc-
+tory.
+
+xc/config/util/mkshadow/ contains mkshadow, an alternative program to
+lndir.
+
+
+2.5.  Configuration Parameters
+
+
+Build information for each source directory is in files        called
+Imakefile.  An Imakefile, along        with local configuration information in
+xc/config/cf/, is used by the program imake to generate        a Makefile.
+
+Most of        the configuration work prior to building the release is to set
+parameters so that imake will generate correct files.  Most of those
+parameters are set in xc/config/cf/site.def.  You will also need to
+check the appropriate vendor-specific .cf file in xc/config/cf/        to make
+sure that OSMajorVersion, OSMinorVersion, and OsTeenyVersion are set
+correctly for your system.  Override them in site.def if necessary.
+
+The site.def file has two parts, one protected with "#ifdef BeforeVen-
+dorCF" and one with "#ifdef AfterVendorCF".  The file is actually pro-
+cessed twice, once before the .cf file and once        after.  About the only
+thing you need to set in the "before" section is HasGcc2; just about
+everything else        can be set in the "after" section.
+
+The sample site.def also has commented out support to include another
+file, host.def.         This scheme may be useful if you want to set most
+parameters site-wide, but some parameters vary from machine to machine.
+If you use a symbolic link tree, you can share site.def        across all
+machines, and give each        machine its own copy of host.def.
+
+The config parameters are listed in xc/config/cf/README, but here are
+some of        the more common parameters that you may wish to set in site.def.
+
+ProjectRoot
+     The destination where X will be installed.         This variable needs to
+     be        set before you build, as some programs that read files at run-
+     time have the installation        directory compiled in to them.  Assuming
+     you have set the variable to some value /path, files will be
+     installed into /path/bin, /path/include/X11, /path/lib, and
+     /path/man.
+
+HasGccSet to YES to build with gcc version 1.
+
+HasGcc2
+     Set to YES        to build with gcc version 2.  Both this option and
+     HasGcc look for a compiler        named gcc, but HasGcc2 will cause the
+     build to use more features        of gcc 2, such as the ability to compile
+     shared libraries.
+
+BuildXInputExt
+     Set to YES        to build the X Input Extension.  This extension requires
+     device-dependent support in the X server, which exists only in Xhp
+     in        our implementation.
+
+BuildPexExt
+     Set to NO to not build the        PEX server extension and fonts.
+
+DefaultUsrBin
+     This is a directory where programs        will be found even if PATH is
+     not set in        the environment.  It is independent of ProjectRoot and
+     defaults to /usr/bin.  It is used,        for example, when connecting
+     from a remote system via rsh.  The        rstart program installs its
+     server in this directory.
+
+InstallServerSetUID
+     Some systems require the X        server to run as root to access the dev-
+     ices it needs.  If        you are on such a system and will not be using
+     xdm, you can set this variable to YES to install the X server
+     setuid to root.  Note that        the X server has not been analyzed by
+     the X Consortium for security in such an installation; talk to your
+     system manager before setting this        variable.
+
+InstallXdmConfig
+     By        default set to NO, which suppresses installing xdm config files
+     over existing ones.  Leave        it set to NO if your site has customized
+     the files in /usr/X11R6.3/lib/X11/xdm, as many sites do.  If you
+     don't install the new files, merge        any changes present in the new
+     files.
+
+MotifBC
+     Causes Xlib and Xt        to work around some bugs in older versions of
+     Motif.  Set to YES        only if you will be linking with Motif version
+     1.1.1, 1.1.2, or 1.1.3.
+
+GetValuesBC
+     Setting this variable to YES allows illegal XtGetValues requests
+     with NULL ArgVal to usually succeed, as R5        did.  Some applications
+     erroneously rely on this behavior.         Support for this will be
+     removed in        a future release.
+
+The following vendor-specific .cf files        are in the release but have not
+been tested recently and hence probably        need changes to work:
+apollo.cf, bsd.cf, convex.cf, DGUX.cf, luna.cf,        macII.cf, Mips.cf,
+moto.cf, Oki.cf, pegasus.cf, x386.cf.  Amoeba.cf is known to require
+additional patches.
+
+The file xc/lib/Xdmcp/Wraphelp.c, for XDM-AUTHORIZATION-1, is not
+included in this release.
+
+
+2.6.  System Build Notes
+
+
+This section contains hints on building        X with specific compilers and
+operating systems.
+
+If the build isn't finding things right, make sure you are using a com-
+piler for your operating system.  For example, a pre-compiled gcc for a
+different OS will not have right symbols defined, so imake will        not work
+correctly.
+
+
+2.6.1. gcc
+
+gcc version 2 is in regular use        at the X Consortium on Sparc platforms.
+Set the        variable HasGcc2.  X will not compile on some systems with gcc
+version        2.5, 2.5.1, or 2.5.2 because of an incorrect declaration of mem-
+move() in a gcc        include file.
+
+If you are using a gcc version older than 2.7 on Solaris x86, you need
+to specify BOOTSTRAPCFLAGS="-Dsun" in the "make        World" command.
+
+
+2.6.2. Other GNU tools
+
+Use of the GNU assembler, as, or linker, ld, is        not supported.  GNU make
+is not supported.
+
+
+2.6.3. SparcWorks 2.0
+
+
+If you have a non-threaded program and want to debug it        with the old
+SparcWorks 2.0 dbx, you        will need to use the thread stubs library in
+xc/util/misc/thr_stubs.c.  Compile it as follows:
+
+       cc -c thr_stubs.c
+       ar cq libthr_stubs.a thr_stubs.o
+       ranlib libthr_stubs.a
+
+Install        libthr_stubs.a in the same directory with your X libraries
+(e.g., /usr/X11R6.3/lib/libthr_stubs.a).  Add the following line to
+site.def:
+
+       #define ExtraLibraries -lsocket -lnsl $(CDEBUGFLAGS:-g=-lthr_stubs)
+
+This example uses a make macro substitution; not all make implementa-
+tions support this feature.
+
+
+2.6.4. CenterLine C under Solaris 2
+
+
+If you are using the CenterLine        C compiler to compile the distribution
+under Solaris 2, place the following line in your site.def:
+
+       #define HasCenterLineC YES
+
+If clcc        is not in your default search path, add this line to site.def:
+
+       #define CcCmd /path/to/your/clcc
+
+
+If you are using CodeCenter 4.0.4 or earlier, the following files
+trigger        bugs in the clcc optimizer:
+
+       xc/programs/Xserver/cfb16/cfbgetsp.c
+       xc/programs/Xserver/cfb16/cfbfillsp.c
+       xc/programs/Xserver/cfb/cfbgetsp.c
+
+
+Thus to        build the server, you will have to compile these files by hand
+with the -g flag:
+
+       % cd xc/programs/Xserver/cfb16
+       % make CDEBUGFLAGS="-g" cfbgetsp.o cfbfillsp.o
+       % cd ../cfb
+       % make CDEBUGFLAGS="-g" cfbgetsp.o
+
+This optimizer bug appears to be fixed in CodeCenter 4.0.6.
+
+
+2.6.5. IBM AIX 4.1.4
+
+
+On AIX 4.1.4, the file lib/font/Type1/objects.c        must be compiled without
+optimization (-O) else the X server will exit when Type        1 fonts are
+used.
+
+
+2.6.6. SunOS 4
+
+
+SunOS 4.0 and earlier need BOOTSTRAPCFLAGS=-DNOSTDHDRS because they do
+not have unistd.h nor stdlib.h.         Do not supply a BOOTSTRAPCFLAGS when
+building any SunOS 4.1 version.
+
+
+2.6.7. Microsoft Windows NT
+
+
+All of the base        libraries are supported, including multi-threading in
+Xlib and Xt, but some of the more complicated applications, specifically
+xterm and xdm, are not supported.
+
+There are also some other rough        edges in the implementation, such as
+lack of        support for non-socket file descriptors as Xt alternate inputs
+and not        using the registry for configurable parameters like the system
+filenames and search paths.
+
+The Xnest server has been made to run on NT.  It requires a real X
+server for output still.
+
+
+2.6.8. Omron Luna
+
+
+The Omron Luna platform        is no longer supported.  The Luna version of the
+make program doesn't define the        standard macro MAKE, so you must run it
+as "make MAKE=make" at top level, e.g.,        "make MAKE=make World".
+
+
+2.7.  The Build
+
+
+On NT, type
+
+       nmake World.Win32 > world.log
+
+On other systems, find the BootstrapCFlags line, if any, in the        vendor-
+specific .cf file.  If there isn't one,        type
+
+       % make World >& world.log
+
+otherwise type
+
+       % make World BOOTSTRAPCFLAGS="value" >& world.log
+
+
+You can        call the output file something other than "world.log", but do
+not call it "make.log" because files with this name are        automatically
+deleted        during the "cleaning" stage of the build.
+
+Because        the build can take several hours to complete, you will probably
+want to        run it in the background and keep a watch on the output.  For
+example:
+
+       % make World >& world.log &
+       % tail -f world.log
+
+
+If something goes wrong, the easiest thing is to just start over (typing
+"make World" again) once you have corrected the        problem.
+
+
+2.8.  Installing X
+
+
+If everything is built successfully, you can install the software by
+typing the following as        root:
+
+       % make install >& install.log
+
+
+Again, you might want to run this in the background and        use tail to
+watch the progress.
+
+You can        install the manual pages by typing the following as root:
+
+       % make install.man >& man.log
+
+
+
+2.8.1. System Installation Notes
+
+
+This section contains hints on installing and using X with specific com-
+pilers and operating systems.
+
+
+2.8.1.1.  The X        Server on AIX 4
+
+
+For IBM's AIX 4, you need to make sure the LFT device is associated with
+the correct graphics adapter.  It's a one-time setup that does not hap-
+pen automatically, even        if there's only one graphics adapter in the sys-
+tem.  To configure the LFT device properly, become root        and start SMIT.
+Go to the "Devices" category, choose "LFT", then "Displays", then "Move
+the LFT        to Another Display".
+
+Select "Both" for when the change should take effect, then select the
+display        adapter where you want to run the X server.  Confirm the changes
+and exit SMIT; from now        on, you should be able to run the server just
+fine.
+
+To run Xibm from xdm, you must provide the "-force" flag on the        server
+command        line in the Xservers file.
+
+
+2.9.  Shared Libraries
+
+
+The version number of some of the the shared libraries has been        changed.
+On SunOS 4, which supports minor version numbers for shared libraries,
+programs linked        with the R6 libraries will use the new libraries with no
+special        action required.  On other platforms you have the following
+choices:
+
+1.   Keep the old versions of the libraries around.
+
+2.   Relink all        applications with the new libraries.
+
+3.   Create a link from        the old name to the new name.
+
+     For example, to have programs that        were linked against
+     libX11.so.6.0 use libX11.so.6.3, make this        link:
+
+            ln -s libX11.so.6.3 libX11.so.6.0
+
+
+
+2.10.  Setting Up xterm
+
+
+If your        /etc/termcap and /usr/lib/terminfo databases do not have correct
+entries        for xterm, use the sample entries provided in the directory
+xc/programs/xterm/.  System V users may        need to compile and install the
+terminfo entry with the        tic utility.
+
+Since each xterm will need a separate pseudoterminal, you need a reason-
+able number of them for        normal execution.  You probably will want at
+least 32 on a small, multiuser system. On most systems, each pty has
+two devices, a master and a slave, which are usually named
+/dev/tty[pqrstu][0-f] and /dev/pty[pqrstu][0-f].  If you don't have at
+least the "p" and "q" sets configured (try typing "ls /dev/?ty??"), you
+should have your system        administrator add them.  This is commonly done
+by running the MAKEDEV script in the /dev directory with appropriate ar-
+guments.
+
+
+2.11.  Starting        Servers at System Boot
+
+
+The xfs        and xdm programs are designed to be run automatically at system
+startup.  Please read the manual pages for details on setting up confi-
+guration files;        reasonable sample files are in xc/programs/xdm/config/
+and xc/programs/xfs/.
+
+
+2.11.1.         On BSD-based systems using /etc/rc
+
+
+If your        system uses an /etc/rc file at boot time, you can usually enable
+these programs by placing the following        at or near the end of the file:
+
+       if [ -f /usr/X11R6.3/bin/xfs ]; then
+               /usr/X11R6.3/bin/xfs & echo -n ' xfs'
+       fi
+
+       if [ -f /usr/X11R6.3/bin/xdm ]; then
+               /usr/X11R6.3/bin/xdm; echo -n ' xdm'
+       fi
+
+
+Since xfs can serve fonts over the network, you        do not need to run a
+font server on every machine with an X display.         You should start xfs
+before xdm, since xdm may start        an X server which is a client of the
+font server.
+
+The examples here use /usr/X11R6.3/bin,        but if you have installed into a
+different directory by setting (or unsetting) ProjectRoot then you need
+to substitute the correct directory.
+
+If you are unsure about        how system boot works, or if your system does
+not use        /etc/rc, consult your system administrator for help.
+
+
+2.11.2.         On SystemV-based systems
+
+
+There are two ways you can get On systems with a /etc/inittab file, you
+can edit this file to add the lines
+
+       xfs:3:once:/usr/X11R6.3/bin/xfs
+       xdm:3:once:/usr/X11R6.3/bin/xdm
+
+
+On some        systems, you can edit a file in /etc/init.d to run the X Consor-
+tium xdm instead of the        vendor's product xdm.  On Sony this file is
+/etc/init.d/consxdm.  On IRIX edit /etc/init.d/xdm.
+
+
+2.12.  Using OPEN LOOK applications
+
+
+You can        use the X11R6 Xsun server with OPEN LOOK applications, but you
+must pass the -swapLkeys flag to the server on startup,        or the OPEN LOOK
+Undo, Copy, Paste, Find, and Cut keys may not work correctly.  For exam-
+ple, to        run Sun's OpenWindows 3.3 desktop environment with an X11R6
+server,        use the command:
+
+       % openwin -server /usr/X11R6.3/bin/Xsun -swapLkeys
+
+
+The keysyms reported by        keys on the numeric keypad have also changed
+since X11R5; if        you find that OpenWindows applications do not respond to
+keypad keys and        cursor control keys when using the R6 server, you can
+remap the keypad to generate R5        style keysyms using the following xmod-
+map commands:
+
+       keysym Pause = F21
+       keysym Print = F22
+       keysym Break = F23
+       keysym KP_Equal = F24
+       keysym KP_Divide = F25
+       keysym KP_Multiply = F26
+       keysym KP_Home = F27
+       keysym KP_Up = Up
+       keysym KP_Prior = F29
+       keysym KP_Left = Left
+       keycode 100 = F31
+       keysym KP_Right = Right
+       keysym KP_End = F33
+       keysym KP_Down = Down
+       keysym KP_Next = F35
+       keysym KP_Insert = Insert
+       keysym KP_Delete = Delete
+
+
+
+2.13.  Rebuilding after        Patches
+
+
+You shouldn't need this        right away, but eventually you are probably go-
+ing to make changes to the sources, for        example by applying any public
+patches        that may be released.
+
+Each patch comes with explicit instructions at the top of it saying what
+to do. Thus the procedure here is only an overview of the types of com-
+mands that might be necessary to rebuild X after changing it.
+
+If you are building from CD-ROM, apply the patches to the symbolic link
+tree.  The links to changed files will be replaced with        local files con-
+taining        the new contents.
+
+If only        source files are changed, you should be able to rebuild just by
+going to the xc        directory in your build tree and typing:
+
+       % make >& make.log
+
+
+If configuration files are changed, the        safest thing to do is type:
+
+       % make Everything >& every.log
+
+
+"Everything" is        similar to "World" in that it rebuilds every Makefile,
+but unlike "World" it does not delete the existing objects, libraries,
+and executables, and only rebuilds what        is out of date.
+
+
+2.14.  Formatting the Documentation
+
+
+The PostScript files in        xc/doc/hardcopy can be generated from the
+sources        in xc/doc/specs.  Most of the documentation is in troff using
+the -ms        macros.  The easiest way to format it is to use the Imakefiles
+provided.
+
+Set the        name of your local troff program by setting the variable
+TroffCmd in xc/config/cf/site.def.  Then build the Makefiles:
+
+       cd xc/doc
+       make SUBDIRS=specs Makefiles
+
+
+Finally, go to the directory you are interested        in and type "make"
+there. This command will generate .PS files.  You can also generate
+text files by specifying the document name with        a .txt extension as a
+make target, e.g., "make icccm.txt".
+
+