<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [
<!ENTITY % defs SYSTEM "X11/defs.ent"> %defs;
]>

<Article>

<!-- TitleS information -->

<articleinfo>

<Title>Information for SCO OpenServer Users</Title>
<AUTHOR><firstname>J. Kean</firstname><surname>Johnston (jkj@sco.com)</surname></AUTHOR>
<PubDate>1 November 2005</PubDate>

</articleinfo>

<!-- Table of contents -->

<!-- Begin the document -->

<Sect1>
<Title>Requirements</Title>

<Para>
Before you can either compile or execute a binary distribution of
X11R&relvers;, the following conditions must be met:

<ItemizedList>
<ListItem>

<Para>
Ensure that you are running Release 5.0.4 or later. This is required
because OSS646 is only supported on those platforms. There are no plans
to support X11R&relvers; on earlier releases of OpenServer.
</Para>
</ListItem>
<ListItem>

<Para>
Ensure that OSS646, the ``Execution Environment Update'' package is
installed, if appropriate.  Check the release notes for that update
to see whether or not your current operating system requires this
update.  At least version OSS646B is required.  If you are running
SCO OpenServer Release 5.0.7, you must have Maintenance Pack 4 installed.
</Para>
</ListItem>
<ListItem>

<Para>
Ensure that the "Graphics, Web and X11 Libraries" package is
installed.  At least version 2.1.0Ba is required.  You should always
install the latest possible version of this supplement that is valid
for your operating system release.  From time to time this release is
bundled with Maintenance Packs, so if you are running 5.0.7 or later,
the latest version may be in the latest Maintenance Pack.  Always check
the release notes for GWXLIBS to see if your platform requires the
update.  The latest version can always be found at the
<ULink
URL="ftp://ftp.sco.com/pub/openserver5/opensrc"
>SCO FTP site</ULink
>.
</Para>
</ListItem>
<ListItem>

<Para>
To compile X11R&relvers;, you must use the SCO-supported version of
the GNU C Compiler.  It is possible that Skunkware versions of the
compiler will work too, but this has not been tested.  The ``GNU
Development System'' is available for all releases from (and including)
SCO OpenServer Release 5.0.5.  It is provided with the operating system
in all versions from Release 5.0.7, although you need to run ``custom''
to install it from the media.  You can always download the latest
latest version of the GNU Development System from the
<ULink
URL="ftp://ftp.sco.com/pub/openserver5/opensrc"
>SCO FTP site</ULink
>.
</Para>
</ListItem>
<ListItem>

<Para>
If you are not using OSR 5.0.7 or later, you need to get an updated
console driver.  See <ULink
URL="http://www.sco.com"
>&#65533;</ULink
> for details on
OpenServer supplements.  If you can't or don't want to upgrade your
console driver, X11R&relvers; will still compile, but you may run into
problems with some cards such as the Riva TNT and ATI Rage cards.
The problem with the console driver in 5.0.6A and earlier is that
when the X server sets graphics mode, the driver does not set a
status bit, so any text that is sent directly to <Literal remap="tt">/dev/console</Literal>,
such as kernel warning or notice messages when you access tape drives
or NFS notices, will be sent to the console video memory.  This just
happens to be slap bang in the middle of palette data for the Riva
TNT, so you get color map corruption.  The updated console driver
also has an improved mechanism for allocating video memory that
X11R&relvers; detects at compile time, and it will use it if it exists.
It is STRONGLY recommended that you get the console driver update.

</Para>
</ListItem>

</ItemizedList>

</Para>

</Sect1>

<Sect1>
<Title>Compiling X11R&relvers;</Title>

<Para>
Using the GNU Development System, compiling the distribution should be fairly
straightforward.  Before attempting to compile the system though, you
should make sure that you have met all of the requirements above.
To actually start the compilation, perform the following steps:
</Para>

<Para>

<ItemizedList>
<ListItem>

<Para>
Copy the unmodified <Literal remap="tt">xorgsite.def</Literal> in <Literal remap="tt">xc/config/cf</Literal>
to <Literal remap="tt">host.def</Literal>. Edit <Literal remap="tt">host.def</Literal> and make any changes you
think you need. The most useful options to change are <Literal remap="tt">HasTcl</Literal>,
<Literal remap="tt">HasTk</Literal>, <Literal remap="tt">HasXdmAuth</Literal> if you have the file
<Literal remap="tt">WrapHelp.c</Literal> and <Literal remap="tt">GccWarningOptions</Literal>. Due to the nature
of OpenServer's header files, the default options for this last setting
are a bit aggressive, and I recommend you set this option to
<Literal remap="tt">-Wpointer-arith</Literal>.

</Para>
</ListItem>
<ListItem>

<Para>
Make sure that the official version of the GNU Development System
is first in your <Literal remap="tt">PATH</Literal>.  The official version lives in
<Literal remap="tt">/usr/gnu/bin</Literal>, and the Skunkware version (if any) lives in
<Literal remap="tt">/usr/local/bin</Literal>. You must ensure that <Literal remap="tt">/usr/gnu/bin</Literal>
appears first in your <Literal remap="tt">PATH</Literal>.

</Para>
</ListItem>
<ListItem>

<Para>
Go to the top level of the source tree and execute the command
<Literal remap="tt">CC=gcc make World BOOTSTRAPCFLAGS=-DSCO5 2&gt;&amp;1 &verbar; tee world.log</Literal>.
This will do a full build, and send all of the build results to the
file <Literal remap="tt">world.log</Literal>.
    
</Para>
</ListItem>
<ListItem>

<Para>
If the build succeeded, install the new server by executing the
command <Literal remap="tt">make install 2&gt;&amp;1 &verbar; tee install.log</Literal> as root.
This will send the install results to the file <Literal remap="tt">install.log</Literal>.

</Para>
</ListItem>
<ListItem>

<Para>
If you want to install the manual pages, execute the command
<Literal remap="tt">make install.man 2&gt;&amp;1 &verbar; tee -a install.log</Literal> as root.
</Para>
</ListItem>

</ItemizedList>

</Para>

</Sect1>

<Sect1>
<Title>Before Running X11R&relvers;</Title>

<Para>
<Anchor id="sec-runxorg">
</Para>

<Para>
The SCO <Literal remap="tt">xterm</Literal> terminfo description is not compatible with the <Literal remap="tt">xterm</Literal>
in the R5 distribution.
</Para>

<Para>
To use a Bus/Keyboard or PS2 mouse you should configure the mouse drivers
using '<Literal remap="tt">mkdev mouse</Literal>'.  You may then use the 
<Literal remap="tt">OsMouse</Literal> option in your <Literal remap="tt">xorg.conf</Literal> to specify that X
should use the SCO mouse drivers.  To do this, set the <Literal remap="tt">Protocol</Literal> to
"<Literal remap="tt">OsMouse</Literal>" in the <Literal remap="tt">Pointer</Literal> section of your
<Literal remap="tt">xorg.conf</Literal> file.  You can also use "<Literal remap="tt">OsMouse</Literal>" for your 
serial mouse, especially if you are having trouble getting your mouse to
work using the X mouse drivers.
</Para>

</Sect1>

<Sect1>
<Title>Switching Consoles</Title>

<Para>
X11R&relvers; uses similar console switching keys as the SCO R4 and R5
servers.  That is, <Literal remap="tt">Ctrl-PrntScr</Literal> takes you to the next console along
from the one X is running on.  If this is the last console it will take
you to console 1. <Literal remap="tt">Ctrl-Alt-FXX</Literal>, where <Literal remap="tt">XX</Literal> is a function
key between <Literal remap="tt">F1</Literal> and <Literal remap="tt">F12</Literal> will switch you to the console
number assigned to that function key. <Literal remap="tt">F1</Literal> corresponds to
<Literal remap="tt">tty01</Literal> (or console 1), <Literal remap="tt">F2</Literal> corresponds to <Literal remap="tt">tty02</Literal>
(or console 2) etc.
</Para>

<Para>
Unlike the SCO X server, the "kill me now" key is <Literal remap="tt">Alt+Ctrl+Backspace</Literal>.
This does not ask for confirmation, it simply kills the X server as
immediately as possible.  Use with extreme caution.  This may cause
applications to terminate in an unpredictable way.  You can set the
<Literal remap="tt">DontZap</Literal> option in the <Literal remap="tt">ServerFlags</Literal> section of your
<Literal remap="tt">XF86Config</Literal> file to disable this.
</Para>

</Sect1>

<Sect1>
<Title>Setting up Man Pages</Title>

<Para>
After compiling the tree, or after installing the binary distribution you
can get <Literal remap="tt">man</Literal> to recognise the Xorg man pages by adding 
<Literal remap="tt">/usr/X11R6/man</Literal> to
the <Literal remap="tt">MANPATH</Literal> in <Literal remap="tt">/etc/default/man</Literal>. The line should 
look similar to:

<Screen>
    MANPATH=/usr/man:/usr/gnu/man:/usr/X11R6/man:/usr/local/man
</Screen>

This allows all users to view the X man pages.  You may change your own
<Literal remap="tt">MANPATH</Literal> environment variable if you do not want everyone to access the
man pages.
</Para>

<Para>
By default the man pages are compressed using ``<Literal remap="tt">compress</Literal>'' to
conserve space.  If you do not want to compress the man pages change
<Literal remap="tt">CompressManPages</Literal> to <Literal remap="tt">NO</Literal> in your ``<Literal remap="tt">host.def</Literal>''
file.  Those using the binary distribution can use ``<Literal remap="tt">uncompress</Literal>''
to uncompress the man pages.  Binary distributions contain pre-formatted
versions of all man pages.  If you are compiling the server yourself, you
need to have the GNU Tools package installed to get groff, the GNU
nroff replacement, to format the man pages.  Use the <Literal remap="tt">manroff</Literal>
script to format the manual pages yourself.
</Para>

</Sect1>

<Sect1>
<Title>Using SCO binaries/servers.</Title>

<Para>
X11R&relvers; will accept connections from SCO binaries (R3 upwards) and the
SCO R5 server will also accept connections from X11R&relvers; binaries. This
means you may mix and match the two if you have ODT.  For example you may
still use the Panning Motif window manager (pmwm) if you prefer.
</Para>

</Sect1>

</Article>
