These instructions are for installing kdrive-based X Servers on your system. This does not apply to X.Org at all.

If you're looking for an X server with transparency support, you might consider X.Org since its transparency support is rapidly stabilizing.

If you have some other reason for using the kdrive based server covered here, I'm looking for a replacement maintainer for this page....

It is surprisingly difficult to follow this type of instruction set. You'll have to concentrate and double-check yourself constantly. Good luck!

Unless you're planning to contribute code, you'll usually be better off using packages from your distribution if it has any. Some do. If yours is one of them, feel free and note it here or report it to me (see address at bottom of page.)

These instructions only go as far as the X server and xcompmgr (the eye-candy maker) and the things they require.

Before You Build

                 * `autoconf --version` must report 2.59 or later 
                 * `automake --version` must report 1.9.x 
                 * `libtool --version` must report 1.5 (available from <a href="http://ftp.gnu.org/gnu/libtool/">http://ftp.gnu.org/gnu/libtool/</a> if your distribution doesn't have it) 
                 * `pkg-config --version` must report 0.9.0 or later 

Troubleshooting

If you're getting errors mentioning automake, check that your automake install is recent enough using the commands above.

If you're getting errors mentioning PKG_CHECK_MODULES(), install pkgconfig.

You might also try XserverBuildScript which contains all these instructions in a runnable form.

The KDrive xserver isn't supported in FreeBSD. Anyone interested in porting it is welcome to do so, though.

Note that xcompmgr and window borders don't mix. Most window managers disable window borders but twm users may find that BorderWidth 0 in ~/.twmrc helps.

In case you get an error while compiling such as this:

checking for pkg-config... /opt/gnome2/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for XDMCP... yes
checking for XdmcpWrap in -lXdmcp... yes
checking for XEPHYR... yes
checking for XSERVER... configure: error: Package requirements (randrproto renderproto fixesproto damageproto xextproto xfont xproto xtrans xau compositeproto resourceproto recordproto xdmcp xdmcp) were not met.
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively you may set the XSERVER_CFLAGS and XSERVER_LIBS environment variables
to avoid the need to call pkg-config.  See the pkg-config man page for
more details.
*** error during stage configure of xserver: could not configure module *** [32/38]

You might want to try this workaround:

cd /opt/fdo/lib/pkgconfig
ln -s randr.pc randrproto.pc
ln -s render.pc renderproto.pc
ln -s fixesext.pc fixesproto.pc
ln -s damageext.pc damageproto.pc
ln -s xext.pc xextproto.pc
ln -s compositeext.pc compositeproto.pc
ln -s resourceext.pc resourceproto.pc
ln -s recordext.pc recordproto.pc

And rerun the build. It helped here, but it's just a workaround, the real problem is somewhere else. If anyone knows better please fix the real problem instead.

Build Commands

Script version of these commands: XserverBuildScript

cvs login is no longer required when using cvs.freedesktop.org.

if [ -z "$PKG_CONFIG_PATH" ]; then
export PKG_CONFIG_PATH=/opt/fdo/lib/pkgconfig
else
export PKG_CONFIG_PATH="/opt/fdo/lib/pkgconfig:$PKG_CONFIG_PATH"
fi

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xproto
pushd Xproto
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xdmcp
pushd Xdmcp
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co XExtensions
pushd XExtensions
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co xtrans
pushd xtrans
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xau
pushd Xau
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co X11
pushd X11
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xext
pushd Xext
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Randr
pushd Randr
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Render
pushd Render
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xrender
pushd Xrender
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xrandr
pushd Xrandr
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co FixesExt
pushd FixesExt
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co DamageExt
pushd DamageExt
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xfont
pushd Xfont
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co ResourceExt
pushd ResourceExt
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co RecordExt
pushd RecordExt
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co CompositeExt
pushd CompositeExt
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co xkbfile
pushd xkbfile
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xserver co xserver
pushd xserver
./autogen.sh --prefix=/opt/fdo --enable-composite
make
sudo install -d /opt/fdo/bin
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xfixes
pushd Xfixes
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xcomposite
pushd Xcomposite
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xdamage
pushd Xdamage
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

# http://cvs.freedesktop.org/xapps/
wget http://www.freedesktop.org/xapps/release/xcompmgr-1.1.tar.gz
tar zxf xcompmgr-1.1.tar.gz
pushd xcompmgr-1.1
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

# to start server, try something like...
sudo /opt/fdo/bin/Xvesa :1 & xterm -display :1

# in xterm...
export LD_LIBRARY_PATH="/opt/fdo/lib:$LD_LIBRARY_PATH"
/opt/fdo/bin/xcompmgr

I use pushd/popd instead of cd/cd .. because it protects against bugs in those install instructions that require directory changes. Fortunately, these are well behaved packages with simple installs.

Interesting XServer Options

                 * `-mouse /dev/psaux,5` enables the scroll wheel 
                 * `-mouse /dev/input/mice,5` for a usb mouse with scroll wheel 
                 * `-nolisten tcp` if you're getting xtrans errors about inet6 or other socket setup things. 
                 * `-ac -nolisten tcp` if you're getting access denied errors when trying to start xterm. Beware this is a security risk, even with `-nolisten tcp`, so don't do it on a multi-user machine. I've heard some mention that you won't need this if your machine's hostname is set up correctly. 
                 * `-listmodes` lists modes the VESA driver supports 
                 * `-help` lists all these and more 
                 * Don't forget the man pages `:)` 

Contacting the Author

This page was originally written by SethKlein on 12-NOV-2003. He no longer uses kdrive and so as of 29-DEC-2004 this page is unmaintained. Please feel free to take up maintainership if you find it useful.

Updated by ?DiegoEscalante on 10-FEB-2006 while trying to get Xgl working.