3.2. Install XFree86

Installation of the software packages requires root login, which can be obtained easily via the superuser/setuser command: su - (see, man su).

The following explains the installation of XFree86 from source in only the most basic terms. Make sure to read all the XFree86 documentation to learn about special options.

If you have a version of XFree86 installed already, you may want to move it or delete it. However, installing over an existing X is generally OK and preserves any programs or libraries you might have installed into the X directories (not that you should really do that):

	cd /usr
	mv X11R6 X11R6-old
	cd /etc
	mv X11 X11-old

	# you may have an X directory in /var also
	cd /var
	mv X11R6 X11R6-old

If these locations are not correct for your distribution of Linux, you will have to look around your filesystem a bit - try looking in /var

	cd /usr/src
	mkdir release
	cd release
	tar -xvzf X420src-1.tgz
	tar -xvzf X420src-2.tgz
	tar -xvzf X420src-3.tgz
	tar -xvzf doctools-1.3.tar.gz


If you are using an old version of XFree86 for some reason, you may want to use the man page packages. XFree 4.2.0 and later has all these man pages already. Skip using the man page packages if you don't need them. Check in /usr/src/release/xc/doc/man to see what all is included with your XFree86.

	# unpack the man pages if they are missing.
	cd /usr/src
	tar -xvzf mangl.tar.Z
	tar -xvzf manglu.tar.Z

A file has to be edited to allow these man pages to compile/install with the rest of the distribution:

	cd /usr/src/release/xc/doc/man/GL
	# Edit the file: Imakefile
	#	SUBDIRS = glx gl glu

When you unpacked the man*.tar.Z files above, two new directories where added: gl glu

	cd /usr/src/release
	cd doctools

	# Having this variable set confuses the sgml docs build.
	# With it unset, the build uses the proper defaults.

	make install

	# Note: doctools installs the perl program sgmlfmt to
	# /usr/local/bin.  It looks for the perl executable
	# at /usr/local/bin/perl.  If perl is installed
	# on your system at /usr/bin/perl, then it will not
	# find perl and the sgml docs build will fail!
	# Make a symlink if needed (or edit the script):
	cd /usr/local/bin
	ln -s /usr/bin/perl perl

	cd /usr/src/release
	cd xc/config/cf
	vi host.def
	# add the following three lines to host.def:
	#	#define HasSgmlFmt YES
	#	#define BuildAllDocs YES
	#	#define HasZlib YES
	# See the README file in doctools and xc/config/cf.
	# HasZlib YES instructs XFree86 not to build and install
	# it's own old zlib.  If you do not have zlib installed
	# (check /usr/lib/libz*), then omit the HasZlib line or
	# go download it and install it first:
	#       http://www.info-zip.org/pub/infozip/zlib/
	# A common zlib conflict occurs when a system already
	# has zlib installed and XFree86 installs it's also.
	# In this case, deleting /usr/X11R6/lib/libz.a fixes
	# the problem.

	cd /usr/src/release/xc
	make World
	# before installing, make sure you have moved
	# or deleted prior installation of X
	# unless you are sure you want to just overwrite
	make install
	make install.man

        # make symlinks
        cd /usr/include
        ln -s ../X11R6/include/DPS DPS
        ln -s ../X11R6/include/GL GL
        ln -s ../X11R6/include/X11 X11
        ln -s ../X11R6/include/bitmaps bitmaps
        cd ..
        ln -s X11R6 X11

Add /usr/X11R6/lib to your /etc/ld.so.conf file, then run the command ldconfig to update /etc/ld.so.cache so the libraries will be visible.

The GL/GLX/GLU HTML documentation is located at /usr/src/release/xc/doc/hardcopy/GL. This directory can be copied as follows:

                cd /usr/src/release/xc/doc/hardcopy
                cp -r GL /usr/X11R6/lib/X11/doc/html
The index.html file in the docs might point to manindex5x.html, but the filename may actually be manindex5.html. Just make a symlink to fix it if needed:

		cd /usr/X11R6/lib/X11/doc/html
		ln -s manindex5.html manindex5x.html

When X is up and running (later), try using the xman program to see that the gl,glx,glu and glut man pages are in section 3. If you have KDE2, khelpcenter allows man-page browsing.