X-Git-Url: https://git.sesse.net/?p=rdpsrv;a=blobdiff_plain;f=Xserver%2FINSTALL.TXT;fp=Xserver%2FINSTALL.TXT;h=0000000000000000000000000000000000000000;hp=786c88dc29e822277342a4bb0bd8e66071857915;hb=ce66b81460e5353db09d45c02339d4583fbda255;hpb=7772d71ffd742cfc9b7ff214659d16c5bb56a391 diff --git a/Xserver/INSTALL.TXT b/Xserver/INSTALL.TXT deleted file mode 100644 index 786c88d..0000000 --- a/Xserver/INSTALL.TXT +++ /dev/null @@ -1,749 +0,0 @@ - - - - - - - - - - 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". - -