X Window System, Version 11
                         Release 4
                       Release Notes


                         Jim Fulton

                        X Consortium
            MIT Laboratory for Computer Science


                          ABSTRACT
                          --------

          The X Window System is a  portable,  network-
     transparent  window system originally developed at
     MIT.  It can be used on a wide variety  of  raster
     display  devices,  ranging  from from simple mono-
     chrome frame buffers to deep, true color  graphics
     processors.   This  document describes contents of
     the fourth public release of X,  Version  11  from
     MIT and how it has changed from previous releases.



1.  Overview
-   --------

This is the fourth release of the X Window  System,  Version
11 from MIT.  Substantial progress has been made in optimiz-
ing the  sample  server,  window  manager,  and  programming
libraries.   In  addition,  major  improvements  to the user
interface of several of the key applications (in particular,
xmh,  twm,  xman,  and  xterm) should make release noticably
---   ---   ----        -----
nicer to use.  Sample implementations  of  the  various  new
Consortium  Standards  are  included  as  well  as prototype
implementations of several efforts currently under  develop-
ment.   No incompatible changes have been made to either the
core Protocol or to the Xlib programming  library.   The  Xt
                        ----                              --
Intrinsics  should  be  source  compatible with the previous
----------
release.  Changes have been made to the Xaw widget set,  but
                                        ---
a configuration option for providing backwards compatibility
interfaces is available.

Several new sets of fonts have been added: a new fixed width
family  of  fonts,  a Kanji and Kana font, the Lucida family
from Bigelow & Holmes and Sun Microsystems, a terminal  emu-
lator  font  from  Digital  Equipment  Corporation,  and 100
dots-per-inch (dpi) versions of all 75dpi fonts.

-------------------------
X Window System is a trademark of MIT.
- ------ ------
          c
Copyright   1989  by  the  Massachusetts  Institute  of



X Window System Release Notes       X, Version 11, Release 4





                           - 2 -


This release contains two types of software:  that which  is
supported  by  the staff of the X Consortium and which forms
the core of the X Window System, and  that  which  has  been
contributed  by the user community and is provided as a pub-
lic service without support from MIT.  The core distribution
also  contains  public  implementations  of certain software
management utilities that may not be available on all  plat-
forms (such as patch and a cpp that can handle large numbers
               -----       ---
of symbols) as well as the tools that are used  to  build  X
software.

The servers, libraries, and applications  provided  in  this
release  are  sample  rather than reference implementations.
              ------              ---------
The X Consortium standardizes specifications, not particular
instances  of  code.   In  particular, the document X Window
                                                    - ------
System Protocol, Version 11 is the final authority  on  what
------ --------  ------- --
is  and  is  not  part of the core X Window System protocol.
For additional information,  see  the  XStandards(1)  manual
                                       ---------- -
page.

Since the last release, the X Consortium has  made  signifi-
cant     additions     to    the    Xlib    standard    (see
mit/doc/Xlib/R4Xlib.tbl.ms) and to the X Toolkit  Intrinsics
--- --- ---- ------ --- --
standard,  and  has approved the following specifications as
new standards:

     Inter-Client Communications Conventions Manual
     ----- ------ -------------- ----------- ------
          The Inter-Client Communications Conventions Manual
          (ICCCM,   whose  specification  may  be  found  in
          mit/doc/ICCCM/icccm.tbl.ms) establishes a  set  of
          --- --- ----- ----- --- --
          conventions that allow clients to cooperate in the
          areas of selections, cut buffers,  window  manage-
          ment, session management, and resources.  Program-
          ming interfaces have been added to both  Xlib  and
                                                   ----
-------------------------
Technology.

Permission to use, copy, modify, distribute,  and  sell
this  software and its documentation for any purpose is
hereby granted without fee,  provided  that  the  above
copyright  notice  appear  in  all copies and that both
that copyright notice and this permission notice appear
in  supporting  documentation,  and  that  the  name of
M.I.T.  not  be  used  in  advertising   or   publicity
pertaining  to  distribution  of  the  software without
specific, written prior permission.   M.I.T.  makes  no
representations  about the suitability of this software
for any  purpose.   It  is  provided  "as  is"  without
express or implied warranty.

This software is not subject  to  any  license  of  the
American  Telephone  and  Telegraph  Company  or of the
Regents of the University of California.




X Window System Release Notes       X, Version 11, Release 4





                           - 3 -


          the Xt Intrinsics to simplify the task of  writing
              -- ----------
          compliant   applications.   The  core  twm  window
                                                 ---
          manager, as  well  as  the  user-contributed  gwm,
                                                        ---
          olwm, and tekwm window managers, is intended to be
          ----      -----
          be compliant.

     X11 Non-rectangular Window Shape Extension
     --- --- ----------- ------ ----- ---------
          The SHAPE extension (whose  specification  may  be
          found   in  mit/doc/extensions/shape.ms)  provides
                      --- --- ---------- ----- --
          non-rectangular, disjoint windows.  Samples of its
          use  may  be  found in the Xaw Command and Mailbox
                                     ---
          widgets, in the twm window  manager,  and  in  the
                          ---
          oclock and xeyes clients.
          ------     -----

     X Display Manager Control Protocol
     - ------- ------- ------- --------
          The X Display  Manager  Control  Protocol  (XDMCP)
          (whose    specification    may    be    found   in
          mit/doc/XDMCP/xdmcp.ms) is a datagram-based proto-
          --- --- ----- ----- --
          col  for  managing remote displays (particularly X
          terminals) in a network.  Implementations  of  the
          various  elements  of the protocol are provided in
          the sample server and the xdm display manager.
                                    ---

     Compound Text Encoding
     -------- ---- --------
          Compound Text (whose specification may be found in
          mit/doc/CTEXT/ctext.tbl.ms) is an interchange for-
          --- --- ----- ----- --- --
          mat  for  multiple  character  set  data  such  as
          multi-lingual  text.  It is based on ISO standards
          for  encoding  and  combining  characters  and  is
          intended  to  be  used  in the following contexts:
          inter-client communication using selections,  win-
          dow properties, and resources.  Routines for pars-
          ing   Compound    Text    may    be    found    in
          mit/lib/Xmu/Xct.c.
          --- --- --- --- -

     X Logical Font Description Conventions
     - ------- ---- ----------- -----------
          The X Logical Font Description Conventions  (XLFD,
          whose    specification    may    be    found    in
          mit/doc/XLFD/xlfd.tbl.ms) are a set of  guidelines
          --- --- ---- ---- --- --
          for  naming  fonts  and  font properties such that
          fonts can be uniquely named and queried in a  con-
          sistent  manner  by applications.  All of the text
          fonts in the core  distribution  follow  the  XLFD
          conventions.   In  addition, the new xfontsel pro-
                                               --------
          gram can be used to view  and  select  fonts  that
          have XLFD names.

This release been built on the following operating  systems:
Ultrix  3.1  (both  VAX  and  RISC), SunOS 4.0.3, HP-UX 6.5,
Domain/OS 10.1, A/UX 1.1, AIX RT-2.2 and PS/2-1.1,  AOS-4.3,
UTEK  4.0,  NEWS-OS  3.2,  UNICOS  5.0.1, and UNIX System V,
Release 3.2 (AT&T 6386 WGS).  It should work  correctly,  or
with  a  minor amount of work, on a variety of other systems
as well.  Before building the release, see the README  files
                                               ------



X Window System Release Notes       X, Version 11, Release 4





                           - 4 -


in   mit/config/  and  mit/server/ddx/*/,  for  any  special
     --- ------        --- ------ ---
instructions.

2.  Building the Release
-   -------- --- -------

The software in this release is divided into  two  distribu-
tions:  one  for  the core software that is supported by the
                      ----
staff of the X Consortium (located  in  the  directory  tree
./mit/),  and  one  for user-contributed software containing
  ---                   ---- -----------
everything else (located in the directory tree  ./contrib/).
                                                  -------
Great  pains  have  been taken to make the core distribution
easy to reconfigure, build and install on a  wide  range  of
platforms.   The user-contributed distribution, on the other
hand, has not been compiled or tested by the staff of the  X
Consortium  and  will  require  building  by hand.  With the
addition of function prototypes in the Xlib  include  files,
it is virtually certain that some user-contributed will fail
to compile under picky compilers (such as hc).
                                          --

Almost all Makefiles in  the  core  software  are  generated
           ---------
automatically  by  a utility called imake.  The program com-
                                    -----
bines machine-independent descriptions  (called  Imakefiles)
                                                 ----------
of targets to be built with machine-dependent sets of param-
eters.   Initial  versions  of  all  of  the  Makefiles  are
                                              ---------
included  for  those  sites that cannot use imake (they will
                                            -----
undoubtedly require patching for specific  machines).   How-
ever,  on  many  systems, X should build correctly right off
the tape.  For the user-contributed  distribution,  and  for
your own applications, the xmkmf script in mit/util/scripts/
                           -----           --- ---- -------
can be used to build a Makefile from an Imakefile  once  the
                       --------         ---------
core has been built and installed.


2.1.  Installation Summary
- -   ------------ -------

To load and install this release of the X Window System, you




-------------------------
| Ultrix and VAX are trademarks  of  Digital  Equipment
Corporation;  SunOS is a trademark of Sun Microsystems,
Inc.; HP-UX and Domain are trademarks of  the  Hewlett-
Packard  Company;  PostScript  is  a trademark of Adobe
Systems, Inc.; A/UX is a trademark of  Apple  Computer;
UNICOS is a trademark of Cray Research; AIX and AOS are
trademarks of the IBM Corporation; UNIX is a registered
trademark  of  AT&T  Bell  Laboratories; OPEN LOOK is a
trademark of AT&T; Times, Helvetica,  and  New  Century
Schoolbook   are  registered  trademarks  of  Linotype;
Lucida is a registered trademark of Bigelow  &  Holmes;
and  Charter  is  a  registered trademark of Bitstream,
Inc.




X Window System Release Notes       X, Version 11, Release 4





                           - 5 -


will need to:

1.   Finish reading these Release Notes.

2.   Create a directory into which you will read the distri-
     bution    tapes    (usually    named   something   like
     /usr/local/src/X or /src/R4/).  You will  need  roughly
      --- ----- --- -     --- --
     50  megabytes  to  hold  the core software and up to 90
     megabytes for the user-contributed software.  Note that
     compiling  will  require  anywhere from 50 to 110% more
     disk space, depending on your machine  (e.g.  RISC  vs.
     CISC and whether or not you have shared libraries).

3.   Unload the core tape into the directory created in step
     #2.   Since the user-contributed software must be built
     by hand, you may wait and load it in  later.   Each  of
     the  tapes  contains  one  (very  large)  UNIX tar file
                                                    ---
     stored at 1600 bits per inch.

4.   Read the file mit/config/README for instructions on how
                   --- ------ ------
     to configure the build for your particular site.  Also,
     make sure that you  follow  the  directions  in  README
                                                      ------
     files in mit/server/ddx/ directories for which you plan
              --- ------ ---
     to build servers.  In particular, you  must  make  sure
     that  the  OSMajorVersion and OSMinorVersion configura-
                --------------     --------------
     tion parameters, as well as those indicated at the  top
     of  mit/config/site.def,  are appropriate for your sys-
         --- ------ ---- ---
     tem.

5.   If you plan to compile the release  on  more  than  one
     machine  and  have  a  distributed file system, you may
     wish to use  the  script  mit/util/scripts/lndir.sh  to
                               --- ---- ------- ----- --
     create  symbolic  link  trees  on  each  of  the target
     machines.  This allows all of the  platforms  on  which
     you wish to run X to share a single set of sources.  In
     either case, the phrase build  tree  will  be  used  to
                             -----  ----
     refer  to the directory tree in which you are compiling
     (to distinguish it from the source tree which  contains
                                 ------ ----
     the actual files).

6.   If you are building on a Macintosh II,  make  sure  you
     read  the  file  mit/server/ddx/macII/README and follow
                      --- ------ --- ----- ------
     the directions for running the  X11R4  script  in  that
                                     -----
     directory.   If  you  are using GNUC on the Mac (highly
     recommended; sources are available  for  anonymous  ftp
     from  the  machine  apple.com), you will need to remove
                         ----- ---
     the "-s" flag on the egrep command in the  GNUC  fixin-
           -              -----                       ------
     cludes  script.   Otherwise, you will have to build and
     ------
     install the C preprocessor in mit/util/cpp/.
                                   --- ---- ---

7.   If you are running on a VAX  or  680x0  processor,  you
     should consider using the GNU C compiler (available via
     anonymous ftp from the machine prep.ai.mit.edu) to com-
                                    ---- -- --- ---
     pile  the server.  It can result in up to a factor of 2



X Window System Release Notes       X, Version 11, Release 4





                           - 6 -


     improvement in performance.  See the  HasGcc  parameter
                                           ------
     in  the files sun.cf, ultrix.cf, macII.cf, and site.def
                   --- --  ------ --  ----- --      ---- ---
     in mit/config/
        --- ------

8.   Check   the   imake   configuration    parameters    in
                   -----
     mit/config/imakemdep.h and mit/config/Imake.tmpl.
     --- ------ --------- -     --- ------ ----- ----

9.   Once you are satisfied with the configuration, you  are
     ready  to build the core distribution.  Look at the .cf
                                                          --
     file for your system.  There may be a line in  it  that
     sets  an  make  variable named BootstrapCFlags.  If you
               ----                 ---------------
     don't find such a variable, you can use  the  following
     command to start the build:

             %  make World >& make.world &

     If you do find the variable,  you  should  append  that
     definition to the command line, using the make variable
                                               ----
     BOOTSTRAPCFLAGS.  This is used by imake to set particu-
                                       -----
     lar cpp symbols for all compiles (if you are porting to
         ---
     a different platform, see  mit/util/imake/imakemdep.h).
                                --- ---- ----- --------- -
     Special  BOOTSTRAPCFLAGS  are required on the following
     systems for which .cf files are supplied:  MacII,  AT&T
                        --
     6386,  IBM workstations, and the Tektronix 4310 series.
     For example:

             %  make BOOTSTRAPCFLAGS=-DmacII  World  >& make.world &

     Do not call the output file make.log as the make  clean
                                 ---- ---        ----  -----
     done  by  make  World  removes  all files of this name.
               ----  -----
     This will rebuild all of the Makefiles  and  execute  a
                                  ---------
     make -k all to compile everything in the core distribu-
     ----  - ---
     tion.  This will take anywhere from 15  minutes  (on  a
     Cray Y-MP) to 12 hours, depending on your machine.

10.  When the make is done, check the log file for any prob-
              ----
     lems.   There  should  be  no serious errors.  A/UX pcc
                                                         ---
     users can ignore compiler  warnings  about  enumeration
     type  clashes,  and  Apollo  and  IBM  users can ignore
     optimizer warnings.  Most  optimizers  will  also  give
     warnings  about the C code that is generated by lex and
                                                     ---
     yacc in mit/clients/twm; these may be safely ignored.
     ----    --- ------- ---

11.  If  you  are  satisfied  that  everything   has   built
     correctly, test the various critical programs (servers,
     xterm, xinit, etc.) by hand.  You may need to  be  root
     -----  -----
     to  run  the  server or xterm.  A second workstation or
                             -----
     terminal will be particularly useful if  you  run  into
     problems.

12.  Make  backup  copies  of  your  old  X  header   files,
     binaries, fonts, libraries, etc.

13.  Go to the top of the build tree and type



X Window System Release Notes       X, Version 11, Release 4





                           - 7 -



             #  make install  >& make.install

     You will either have to do this as root, or have  write
     access    to    the    appropriate   directories   (see
     DIRS TO BUILD  in   the   top   level   Imakefile   and
         -  -                                ---------
     mit/config/Imake.tmpl).   The  xterm  program should be
     --- ------ ----- ----          -----
     installed setuid to root on most systems and the  xload
                                                       -----
     program  should  be installed setgid to whichever group
     the file /dev/kmem belongs to (it is  installed  setuid
               --- ----
     to root by default).

14.  If you would like to install the manual pages, type the
     following at the top of the build tree:

             #  make install.man


15.  If you would like to create and install lint libraries,
     type the following at the top of the build tree:

             %  make install.ln


If you are installing X for the first  time,  you  may  also
need  to do some of the steps listed below.  Check the vari-
ous README files in the mit/server/ddx directories for addi-
                        --- ------ ---
tional instructions.

16.  Add device drivers or reconfigure your kernel.

17.  Create additional pseudoterminals.  See your  operating
     system  script  /dev/MAKEDEV and site administrator for
                      --- -------
     details.

18.  Read the manual page for the Display  Manager  xdm  and
                                                    ---
     configure  it  for  your site.  This program provides a
     portable way of running X automatically  and  has  many
     hooks  for  creating a nice interface for novice users.
     Warning: the -L flag is no longer supported  by  xterm.
     If  you  are running xterm from /etc/init you will have
     to convert to xdm or else save your old binary.

19.  Make  sure  that  all  X11  users  have  the  directory
     /usr/bin/X11 in their search paths.
      --- --- ---

20.  Give it a try!

Release 4 of Version 11 of the X Window System should now be
ready to use.







X Window System Release Notes       X, Version 11, Release 4





                           - 8 -


2.2.  Operating System Requirements
- -   --------- ------ ------------

One of the reasons why X is so popular is that it  does  not
require  very  much operating system support.  Although this
distribution only contains sample  implementations  for  BSD
and  UNIX  derivative platforms, support for other operating
systems is available from a wide variety  of  vendors.   The
servers  in  this  release  have been built on the following
systems:

               Ultrix 3.1 (both VAX and RISC)
                        SunOS 4.0.3
                         HP-UX 6.5
                       Domain/OS 10.1
                          A/UX 1.1
                  AIX RT-2.2 and PS/2-1.1
                        IBM AOS-4.3
                          UTEK 4.0

The client libraries and applications have been built on all
of the above systems, plus:

                        NEWS-OS 3.2
                        UNICOS 5.0.1
         UNIX System V, Release 3.2 (AT&T 6386 WGS)

If you are using versions prior to these, you may  well  run
into trouble.  In particular, the server will not run on IBM
4.2A release 2 and there is no  longer  support  for  Apollo
SR9.7.   The  README  files  in  the various mit/server/ddx/
              ------                         --- ------ ---
describe  particular   requirements   such   as   compilers,
libraries, preprocessors, etc.  As was noted above, A/UX 1.0
users will need to build a new version of the  C  preproces-
sor.

You should verify that your networking and interprocess com-
munication  facilities are working properly before trying to
use X.  If programs such as talk and rlogin  don't  work,  X
                            ----     ------
probably won't either.


2.3.  Reading in the Release Tapes
- -   ------- -- --- ------- -----

This release may be obtained electronically from the  Inter-
net,  the UUNET Project, several consulting firms, and vari-
ous UUCP archive sites.  In addition, a set  of  2400  foot,
1600  BPI  magnetic  tapes  (MIT does not distribute on car-
tridge tapes or floppy disks) and printed  documentation  is
available  from the MIT Software Center; call (617) 258-8330
for details.

Each tape from MIT  contains  one  large  tar  archive  with
                                          ---
software  and documentation for part of the release.  If you
have a limited amount of disk space, you  should  load  tape



X Window System Release Notes       X, Version 11, Release 4





                           - 9 -


#1,  prune out any servers that you don't need, and generate
listings of the user-contributed tapes for later  retrieval.
In particular, you will probably want to extract the mit/doc
                                                     --- ---
directory from tape #2.  All filenames are given as relative
paths  (i.e.  beginning with a period instead of a slash) so
that the release may be placed anywhere in your file system.

Before reading in the tapes, make sure that you have  enough
disk  space.   Each  of  the tapes contains roughly 35 mega-
bytes, split as follows:


    Tape #   Contents                        Status
    ----     --------                        ------

      1      core software for make World    required
                               ---- -----
      2      core docs and contrib clients   recommended
      3      contrib libs and toolkits       optional
      4      contrib Andrew and games        optional


The compiled versions of the programs will occupy yet  again
as  much  disk  space (particularly on RISC machines without
shared libraries), so plan accordingly.

Create a directory into  which  you  will  put  all  of  the
sources.  In this directory, execute the appropriate operat-
ing system commands to read in the core tapes.  If your site
is  set up so that tar uses a 1600bpi tape drive by default,
                   ---
you will probably type something like:


        %  mkdir /usr/local/src/X
        %  cd /usr/local/src/X
        %  tar xv


See your system administrator for help.


2.4.  Using Symbolic Links
- -   ----- -------- -----

This release uses links (symbolic, on machines that  support
them)  in  several  places  to  avoid duplication of certain
files (mostly  header  files).  If  you  are  building  this
release  on  a system for which configuration files have not
been supplied, you should check the LN configuration parame-
ter  in  the  appropriate  mit/config/*.cf  file.   If  your
                           --- ------   --
operating system does not support soft links, LN  should  be
set either to create hard links or to copy the source file.

If you need to move the release to another machine after  it
has  been  built,  use  tar instead of cp or rcp so that you
                        ---            --    ---
preserve dates and links.  This is usually done with a  com-
mand of the form:



X Window System Release Notes       X, Version 11, Release 4





                           - 10 -



        %  (chdir /usr/local/src/X; tar cf - .) | rsh othermachine "(chdir /moredisk/X; tar xpBf -)"


See your system administrator for help.


2.5.  Configuring the Release
- -   ----------- --- -------

This release makes extensive use of a utility  called  imake
                                                       -----
to   generate   machine-specific   Makefiles  from  machine-
                                   ---------
independent Imakefiles.  Another utility, called makedepend,
            ----------                           ----------
is  used  to  generate  Makefile dependencies for C language
                        --------
files. Sample  Makefiles  are  provided,  although  you  are
               ---------
strongly  urged  to  use  imake  and makedepend so that your
                          -----      ----------
software works across releases.

The configuration files for imake are located in the  direc-
                            -----
tory  mit/config/.   Makefiles  are  created from a template
      --- ------     ---------
file named Imake.tmpl, a machine-specific .cf  file,  and  a
           ----- ----                      --
site-specific  site.def  file.   With only a few exceptions,
               ---- ---
configuration parameters are cpp symbols that may be defined
                             ---
on  a  per-server  basis or for all servers in a given site.
The template file should not be modified.
                         ---

The file  mit/config/README  describes  each  of  the  build
          --- ------ ------
parameters.   The defaults have been chosen to work properly
on a wide range of machines and to be easy to maintain.   An
overview  of  the  configuration  system may be found in the
file mit/doc/config/usenixws/paper.ms.  Site-specific confi-
     --- --- ------ -------- ----- --
gurations should be described in the file site.def using the
                                          ---- ---
following syntax:

        #ifndef BuildParameter
                --------------
        #define BuildParameter site-specific-value
                -------------- ---- -------- -----
        #endif



2.6.  Compiling the Release
- -   --------- --- -------

Once the configuration parameters are  set,  you  should  be
able  to  type the following command at the top of the build
tree to compile the core software:

        %  make World  >& make.world  &

Remember to set BOOTSTRAPCFLAGS if  your  system  needs  it.
Don't  redirect  the  output  to make.log as this particular
                                 ---- ---
file is deleted as part of the  build  process.   This  will
take anywhere up to 24 hours, depending on the machine used,
and should complete without any significant errors  on  most
machines.




X Window System Release Notes       X, Version 11, Release 4





                           - 11 -


If you need to restart the build after all of the  Makefiles
                                                   ---------
and  dependencies have been created, type the following com-
mand at the top of the build tree:

        %  make -k >& make.out &

If you later decide  to  change  any  of  the  configuration
parameters, you'll need to do another full make World.
                                           ---- -----


2.7.  Installing the Release
- -   ---------- --- -------

If everything compiles successfully,  you  may  install  the
software by typing the following as root from the top of the
build tree:

        #  make install

If you would rather not do the installation  as  root,  make
the necessary directories writable by you and do the install
from your account.  Then, check the  ownership  and  protec-
tions  on  xterm  and xload in the BINDIR directory (usually
           -----      -----
/usr/bin/X11/): on most  systems  xterm  must  be  installed
 --- --- ---                      -----
setuid to root so that it can set the ownership of its pseu-
doterminal and update  /etc/utmp,  and  xload  needs  to  be
                        --- ----        -----
setuid  to  root  or  setgid  to  the  group owning the file
/dev/kmem so that it can get the system load average.
 --- ----

If your /etc/termcap and /usr/lib/terminfo  databases  don't
         --- -------      --- --- --------
have  entries  for xterm, sample entries are provided in the
                   -----
directory mit/clients/xterm/.  System V users  may  need  to
          --- ------- -----
compile and install the terminfo entry with the tic utility.
                        --------                ---

If you plan to use the xinit program to run  X,  you  should
                       -----
create  a  link  named  X pointing to the appropriate server
                        -
program (usually named something like Xmachine in the direc-
                                      --------
tory  /usr/bin/X11/).   However,  xinit  is not intended for
       --- --- ---                -----
most users; instead, site  administrators  are  expected  to
either configure xdm or provide user-friendly interfaces.
                 ---

If you would like to have manual pages installed, check  the
ManDirectoryRoot, ManDir and LibManDir configuration parame-
----------------  ------     ---------
ters in mit/config/ and type the following at the top of the
        --- ------
build tree:

        #  make install.man


If you  would  like  to  have  lint  libraries  created  and
installed, type the following at the top of the build tree:

        #  make install.ln





X Window System Release Notes       X, Version 11, Release 4





                           - 12 -


Finally, make sure that all users have the  BINDIR  (usually
/usr/bin/X11/) in their PATH environment variable.
 --- --- ---


2.8.  Notes on Kernels and Special Files
- -   ----- -- ------- --- ------- -----

On some machines, it may be necessary to rebuild the  kernel
with a new device driver, or to at least reconfigure it.  If
you have never run X before  and  are  using  a  system  not
listed  in  these  notes, you might need verify that the CSR
addresses in  your  kernel  configuration  file  match  your
hardware.  In addition, you should make sure that the kernel
autoconfigures the display when booting.

You may need to create special  devices  for  your  display,
mouse, or keyboard.  For example,


  #  MAKEDEV cgfour            # for Sun 3/60
  #  MAKEDEV displays          # for displays on the RT/PC


The protection modes on the display device files  should  be
set so that only the server can open them.  If the server is
started  by  /etc/init,  the   protections   can   be   root
              --- ----
read/write,  everyone  else  no access; otherwise, they will
have to be read/write for everyone or else your server  will
have to be setuid to root.

On a Digital QVSS (VAXStation II) under  older  versions  of
Ultrix, you may need to use adb to make sure that the kernel
                            ---
variable qv def scrn is set to 2 so that the full  width  of
         -----------
the  VR-260  monitor  is  used  (otherwise  there will be an
unused black strip down the right edge of the screen).  This
can be done by changing the value either in /vmunix directly
                                             ------
or in /sys/vaxuba/qv.o and relinking  and  reinstalling  the
       --- ------ -- -
kernel.   You  will need to reboot for the new value to take
effect.

For more information, see the appropriate README  files  and
                                          ------
manual pages in the mit/server/ddx/ directories.
                    --- ------ ---


2.9.  Testing the Release
- -   ------- --- -------

Even if you plan on using xdm to run X  all  the  time,  you
                          ---
should  first  run it by hand from another terminal to check
that everything is installed and  working  properly.   Error
messages  from  the X server will then appear on your termi-
nal, rather than being  written  to  the  xdm-errors  or  to
                                          --- ------
/usr/adm/X?msgs (where ? is the number of the display).
 --- --- - ----

The easiest way to test the server is to go to  /usr/bin/X11
                                                 --- --- ---
(or wherever you have installed the various X programs), and



X Window System Release Notes       X, Version 11, Release 4





                           - 13 -


run xinit as follows:
    -----


        %  cd /usr/bin/X11
        %  xinit


If all is well, you should see a gray stipple pattern cover-
ing  the  screen,  a cursor shaped like an ``X'' that tracks
the pointer, and a  terminal  emulator  window.   Otherwise,
check the following:

1.   If the gray background doesn't appear at all, check the
     permissions on any special device files (usually stored
     in /dev/) described in the README  in  the  appropriate
         ---                    ------
     mit/server/ddx/ subdirectories.
     --- ------ ---

2.   If the background appears, but the cursor  is  a  white
     square  that  doesn't  change, make sure that the fonts
     have been installed  (in  particular,  the  font  named
     cursor.snf  in  the directory /usr/lib/X11/fonts/misc/;
     ------ ---                     --- --- --- ----- ----
     see the configuration parameter DefaultFontPath).  Also
                                     ---------------
     make  sure that there is a file named fonts.dir in each
                                           ----- ---
     font directory.  This file is created by the  mkfontdir
                                                   ---------
     program  and  is  used by the server to find fonts in a
     directory.

3.   If the cursor appears but doesn't  track  the  pointer,
     make  sure  that  any special device files (often named
     something  like  /dev/mouse)  are  installed  (see  the
                       --- -----
     server's README file).
              ------

4.   If the server starts up  and  then  goes  black  a  few
     seconds  later,  the  initial  client (usually xterm or
                                                    -----
     xdm) is dying.   Make  sure  that  xterm  is  installed
     ---                                -----
     setuid  to  root and that you have created enough pseu-
     doterminals.  If you are running  xinit,   and  have  a
                                       -----
     file  named  .xinitrc in your home directory, make sure
                   -------
     that it is executable and that the last program that it
     starts  is run in the foreground (i.e. that there is no
     ampersand at the end  of  the  line).   Otherwise,  the
     .xinitrc  will  finish immediately, which xinit assumes
      -------                                  -----
     means that you are through.

Once you have the initial window working properly, try  run-
ning  some other programs from the xterm.  To position a new
                                   -----
window with the twm window manager, press  Button1  (usually
                ---
the  left-most button on the pointer) when the flashing rec-
tangle appears:








X Window System Release Notes       X, Version 11, Release 4





                           - 14 -



        %  xclock -g 200x200-0+0 &
        %  twm &
        %  xlogo &
        %  xeyes &
        ...


X should now be ready to use.  Read the manual pages for the
new programs, look at the new fonts, and have fun.


2.10.  Creating Extra Pseudoterminals
- --   -------- ----- ---------------

Since each xterm will need a  separate  pseudoterminal,  you
           -----
should create a large number of them (you probably will want
at least 32 on a small, multiuser system).  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'' lines configured (do
an ``ls /dev''), you should have your  system  administrator
add  them.  This is often done by running the MAKEDEV script
in /dev:
    ---

        #  cd /dev
        #  ./MAKEDEV pty0
        #  ./MAKEDEV pty1



2.11.  Starting X from /etc/rc
- --   -------- - ----  --- --

The X Display Manager is used to run the X server  and  ini-
tial  login  window.  It is normally started from the system
startup file /etc/rc, and is designed to be easily  tailored
              --- --
to the needs of each specific site.  Xdm takes care of keep-
                                     ---
ing the server running, prompting for username and  password
and  managing  the user's session.  The sample configuration
currently uses shell scripts  to  provide  a  fairly  simple
environment.   This  will  be  an area of continuing work in
future releases.

The key  to  xdm's  flexibility  is  its  extensive  use  of
             ---
resources,  allowing  site  administrators  to  quickly  and
easily test alternative setups.   When  xdm  starts  up,  it
                                        ---
reads    a    configuration    file    (the    default    is
/usr/lib/X11/xdm/xdm-config but can be  specified  with  the
 --- --- --- --- --- ------
-config  command line flag) listing the names of the various
 ------
datafiles, default parameters, and startup and shutdown pro-
grams  to  be  run.   Because it uses the standard X Toolkit
resource file format, any parameters that may be set in  the
xdm-config  file  may  also be specified on the command line
--- ------
using the standard -xrm option.
                    ---




X Window System Release Notes       X, Version 11, Release 4





                           - 15 -


The default configuration contains the following lines:


DisplayManager.servers:                /usr/lib/X11/xdm/Xservers
DisplayManager.errorLogFile:           /usr/lib/X11/xdm/xdm-errors
DisplayManager*resources:              /usr/lib/X11/xdm/Xresources
DisplayManager*startup:                /usr/lib/X11/xdm/Xstartup
DisplayManager*session:                /usr/lib/X11/xdm/Xsession
DisplayManager*reset:                  /usr/lib/X11/xdm/Xreset


The mit/servers file contains the list of servers to  start.
    --- -------
The  errorLogFile  is  where  output from xdm is redirected.
     ------------                         ---
The resources file contains default resources  for  the  xdm
    ---------                                            ---
login  window.   In  particular,  this  is where special key
sequences can be specified (in the xlogin*login.translations
                                   ------ ----- ------------
resource).   The startup file should be a program or execut-
                 -------
able script that is run after the user has provided a  valid
password.   It is a hook for doing site-specific initializa-
tion, logging, etc.  The session entry is the name of a ses-
                         -------
sion  manager  program  or  executable script that is run to
start up the user's environment.  A simple version has  been
supplied  that  provides  an  xterm  window  and  twm window
                              -----               ---
manager if the user does not have  an  executable  .xsession
                                                    --------
file  in his or her home directory.  Finally, the reset pro-
                                                  -----
gram or executable script is run after the  user  logs  out.
It is a hook for cleaning up after the startup program.
                                       -------

To run xdm using the default configuration, add the  follow-
       ---
ing  line to your system boot file (usually named /etc/rc or
                                                   --- --
/etc/rc.local):
 --- -- -----

        /usr/bin/X11/xdm

Most sites will undoubtedly want to build their  own  confi-
gurations.   We  recommend  that you place any site-specific
xdm-config and other xdm files in a different  directory  so
--- ------           ---
that  they  are not overwritten if somebody ever does a make
                                                        ----
install.    If   you   were   to   store   the   files    in
-------
/usr/local/lib/xdm,  the  following command could be used to
 --- ----- --- ---
start xdm:
      ---

        /usr/bin/X11/xdm -config /usr/local/lib/xdm/xdm-config


Many servers set the keyboard to do non-blocking  I/O  under
the assumption that they are the only programs attempting to
read from the keyboard.   Unfortunately,  some  versions  of
/etc/getty  (A/UX's  in  particular)  will immediately see a
 --- -----
continuous stream of zero-length reads which they  interpret
as  end-of-file indicators.  Eventually, /etc/init will dis-
                                          --- ----
able logins on that line until somebody types the  following
as root:




X Window System Release Notes       X, Version 11, Release 4





                           - 16 -



        #  kill -HUP 1

Under A/UX, one alternative is to disable logins on the con-
sole  and  always  run xdm from /etc/inittab.  However, make
                       ---       --- -------
sure that you save a copy of the old  /etc/inittab  in  case
                                       --- -------
something  goes  wrong  and  you have to restore logins from
over the network or from single-user mode.

Another less drastic approach is to set up an account  whose
shell  is  the  xdmshell  program found in mit/clients/xdm/.
                --------                   --- ------- ---
This program is  not  installed  by  default  so  that  site
administrators  will  examine  it  to  see if it meets their
needs.  The xdmshell utility makes sure that it is being run
            --------
from the appropriate type of terminal, starts xdm, waits for
                                              ---
it to finish, and then resets the console if necessary.   If
the     xdm     resources    file    (specified    by    the
        ---
DisplayManager*resources entry in the xdm-config file)  con-
-------------- ---------              --- ------
tains  a  binding to the abort-display action similar to the
                         ----- -------
following

        xlogin*login.translations: #override  Ctrl<Key>R: abort-display()

the console can then by restored by pressing  the  indicated
key  (Control-R  in the above example) in the xdm login win-
                                              ---
dow.

The xdmshell program is usually installed setuid to root but
    --------
executable  only by members of a special group, of which the
account which has xdmshell as its shell is the only member:
                  --------

        %  grep xdm /etc/passwd
        x:aB9i7vhDVa82z:101:51:Account for starting up X:/tmp:/etc/xdmshell
        %  grep 51 /etc/group
        xdmgrp:*:51:
        %  ls -lg /etc/xdmshell
        -rws--x---   1 root     xdmgrp     20338 Nov  1 01:32 /etc/xdmshell


If the xdm resources have not been configured to have a  key
       ---
bound  to  the  abort-display() action, there will be no way
                ----- -------
for general users to login to the console directly.  Whether
or not this is desirable depends on the particular site.

3.  How to Report Bugs or Request Enhancements
-   --- -- ------ ---- -- ------- ------------

If you find a reproducible bug in the core distribution sup-
              ------------
ported  by  MIT (i.e. not in contrib/) or would like to sug-
                             -------
gest an enhancement (preferably with  sample  code),  please
fill  in  a  copy  of  the form located in mit/doc/bugs/bug-
                                           --- --- ---- ---
report and mail it to:
------

                   xbugs@expo.lcs.mit.edu
                   ----- ---- --- --- ---




X Window System Release Notes       X, Version 11, Release 4





                           - 17 -


Please fill in all sections (even if the bug appears on  all
systems)  and  please include any test cases; a small sample
program  is  almost  always  the  best  information  we  can
receive.   Sites that do not have access to the various net-
works may send printed copies of bug reports and tests cases
to:

                           X Bugs
                        X Consortium
            MIT Laboratory for Computer Science
                       room NE43-218
                   545 Technology Square
                    Cambridge, MA  02139

Bug reports that are not sent in electronic form  cannot  be
guaranteed  a  response.   Also,  any  media  containing bug
reports, contributions, etc. will not be returned.

Bugs in user-contributed software  should  be  sent  to  the
author  of the particular program, not to the address listed
above.  The X Consortium will not track or forward  bugs  in
code located in contrib/.
                -------


4.  What's New in this Release
-   ---- - --- -- ---- -------

The primary focus of this release has been  optimization  of
the server and improvements in the key applications.

4.1.  Changes to the core distribution
- -   ------- -- --- ---- ------------

The following additions, deletions, and  modifications  have
been  made to the software in the core distribution.  Widget
writers should read the new X Toolkit Intrinsics  specifica-
tion.   Application developers who use the Athena Widget Set
should   read   the   list   of   changes   in   the    file
mit/lib/Xaw/CHANGES     and    the    conversion    document
--- --- --- -------
mit/doc/Xaw/ConvertToR4, and read the new Athena Widget  Set
--- --- --- -----------                   ------ ------  ---
documentation.

many, many bugs fixed
     A large number of bugs have been fixed in  the  server,
     the libraries, and the clients.  Servers are now robust
     enough that they have been known to run for more than 3
     months  without  experiencing any problems.  The server
     is now much stricter about disallowing extraneous  bits
     in masks (particularly the do not propagate mask window
                                ---------------------
     attribute), causing some improperly coded  applications
     to  generate  protocol  errors.   A  new,  non-standard
     extension  is  provided  (see  xset   bc)   to   enable
                                    ----   --
     backwards-compatibility for broken clients.

server optimized, data space reduced
     A substantial  number  of  optimizations  to  both  the



X Window System Release Notes       X, Version 11, Release 4





                           - 18 -


     device-independent  (dix)  and  device-dependent  (ddx)
     code.  The  monochrome  (mfb)  and  color  (cfb)  frame
     buffer  code is now capable of driving many displays at
     memory speeds.  In addition, the amount of heap  memory
     that  is used by the server has been reduced by roughly
     two-thirds since the last release.

SHAPE extension
     Non-rectangular windows are now supported  by  the  new
     SHAPE  extension.   Round  windows such as round clocks
     (see oclock), oval buttons (see  xmh  and  xcalc),  and
          ------                      ---       -----
     shaped  desktop  icons  (see  xbiff)  are now possible.
                                   -----
     This extension is a Consortium standard.

prototype extensions
     Prototypes of two extensions that are  currently  under
     development  are  provided in this release.  The Multi-
                                                      -----
     Buffering extension provides the ability to  do  simple
     ---------
     animation  (see ico -dbl), and the XInputExtension pro-
                     ---  ---           ---------------
     vides access to alternate input devices.  These  exten-
     sions are draft Consortium standards and are subject to
     change.

build configuration moved and simplified
     The configuration files have been moved to  mit/config/
                                                 --- ------
     and  have  been rewritten to make better use of prepro-
     cessor symbols and macros.  Support for System  V  with
     and  without  the  STREAMS  transport  layers  has been
     added.

new servers
     New support has been added to the sample server for the
     following   platforms:  Sun  cgthree  and  cgsix  frame
                                  -------       -----
     buffers, Digital DECstation  frame  buffers,  Tektronix
     4319  frame buffer, and all HP framebuffers.  Reorgani-
     zations within the  machine-independent  (mi)  graphics
     code  make porting to new platforms even easier than it
     was before.

security hooks
     Programming hooks in Xlib and the server  are  provided
                          ----
     for  passing  authorization  information  at connection
     setup  time.   A  sample  implementation  (called  MIT-
     MAGIC-COOKIE-1)  based  on secret tokens is used by xdm
                                                         ---
     and the server to provide  greater  security  than  the
     host-based mechanism.

new fonts
     Adobe Systems and Digital  Equipment  Corporation  have
     jointly donated 100dpi versions of the 75dpi fonts that
     they provided in the last release.  In addition,  Digi-
     tal  has  donated  a  set  of  terminal emulator fonts.
     Bigelow & Holmes  and  Sun  Microsystems  have  jointly
     donated  a  collection of fonts from the Lucida family.
                                              ------



X Window System Release Notes       X, Version 11, Release 4





                           - 19 -


     Sun has also donated a set of OPEN  LOOK  glyph  fonts.
     Sony  has  donated  a  set of Kanji and Kana fonts, and
     several individuals have donated additional fixed-width
     fonts.

ICCCM support
     Xlib,  the  X  Toolkit  Intrinsics,  twm,  and  various
     ----        -  -------  ----------   ---
     clients  are now hoped to be ICCCM-compliant.  The fol-
     lowing  window  managers  in  contrib/windowmgrs/  also
                                   ------- ----------
     claim to be compliant: gwm, olwm, and tekwm.
                            ---  ----      -----

new rgb color database
     A new color database containing many new  colors,  gray
     scales,  and color spectra tuned for some of the common
     monitors is included.

function prototypes
     ANSI C function prototypes have been added to the  Xlib
                                                        ----
     and  Xt header files; the include files should now also
          --
     be usable from C++ without modification.  The Xlib pro-
                                                   ----
     totypes are enabled by default (on systems that support
     them), while the Xt prototypes are disabled (they  were
                      --
     added  too late in our release cycle).  Picky compilers
     (such as hc) will now catch  many  type  incompatibili-
              --
     ties.

shared libraries
     Support for SunOS-style shared libraries has been added
     to  Xlib, Xt, Xaw, and Xmu.  This substantially reduces
         ----  --  ---      ---
     the amount of disk spaced used for executable programs.

new Xt Intrinsics
     The  X  Toolkit  Intrinsics  now   provide   windowless
          -  -------  ----------
     objects,  varargs-style  interfaces,  better caching of
     resources, fallback resources, locale-driven finding of
     data files.

Athena widget enhancements
     Most of the Xaw library has been rewritten to  substan-
                 ---
     tially  improve  functionality, robustness, and perfor-
     mance.  New SimpleMenu and MenuButton  widgets  support
     pop-up  and  pull-down menus.  The Text widget has been
     rewritten and is now quite usable for general  editing.
     The  VPaned widget has been generalized to include hor-
     izontal paning (and is now called  Paned).   The  Label
     widget  now  supports  multi-line labels.  A new Toggle
     widget  has  been  provided  for  implementing   radio-
     buttons.  Finally, the Command widget has been enhanced
     to use the SHAPE extension to provide true  round  but-
     tons.

standard colormap routines
     A new set of routines for manipulating standard  color-
     maps  (see  the XStandardColormap structure in the Xlib
                     -----------------                  ----



X Window System Release Notes       X, Version 11, Release 4





                           - 20 -


     documentation) has been added to the Xmu library.   The
                                          ---
     xstdcmap  client uses these routines to create standard
     --------
     colormaps.

additional converters
     A variety of new converters have been added to Xmu.  In
                                                    ---
     addition,  multi-display programs should now be able to
     use these converters (and might find the utilities  for
     managing the multiple display data structures useful).

new window manager
     The uwm window manager has been  moved  from  the  core
         ---
     distribution  to  the user-contributed distribution.  A
     substantially  rewritten  version  of  the  twm  window
                                                 ---
     manager is now supported.

improvements in xdm
     The xdm display manager has been  rewritten  to  reduce
         ---
     the number of processes it requires and to make it much
     more robust.  This is now the only supported means  for
     starting  the  server at boot time (the -L command line
                                              -
     option has been removed from xterm).
                                  -----

new utilities
     Several  new  utility  programs  have  been   provided:
     appres  for determining which resources are loaded into
     ------
     particular  applications,  listres  for  printing   the
                                -------
     resource  hierarchy for a widget, oclock for people who
                                       ------
     like truly round clocks, xauth for manipulating author-
                              -----
     ization  files,  xditview for previewing ditroff files,
                      --------                -------
     xfontsel for interactively  selecting  fonts,  xlsatoms
     --------                                       --------
     for  determining the value of various atoms, xlsclients
                                                  ----------
     for listing  the  clients  currenting  being  run,  and
     xstdcmap for manipulating standard colormaps.
     --------

new demos
     A new demo of how various GC  attributes  (xgc)  affect
                                                ---
     what is displayed on the screen is provided.

new features in xterm
                -----
     The following features have been added to xterm:  8-bit
                                               -----
     input  and  output,  on-the-fly changing of the current
     font through escape  sequences  and  a  new  menu,  new
     resources  for controlling whether or not synthetic key
     events are ignored, increased portability, and improved
     menus using the new Athena SimpleMenu widget.

new CLX and documentation
     A substantially improved version  of  CLX,  the  Common
     Lisp   interface  to  X,  is  provided.   In  addition,
     comprehensive documentation of  the  CLX  interface  is
     provided, courtesy of Texas Instruments.

sample copyright notice in mit/COPYRIGHTS
                           --- ----------



X Window System Release Notes       X, Version 11, Release 4





                           - 21 -


     The file mit/COPYRIGHTS in the top level directory con-
              --- ----------
     tains  a sample copyright notice recommended for people
     who are interested in contributing software to the pub-
     lic releases.

X Standards in mit/Standards.man
               --- --------- ---
     The XStandards(1) manual page contains a description of
         ---------- -
     what is and is not an MIT X Consortium standard for the
     X Window System.  For further information about  the  X
     Consortium, see the manual page XConsortium(1).
                                     ----------- -

4.2.  Highlights of the User-Contributed Distribution
- -   ---------- -- --- ---- ----------- ------------

The user-contributed distribution is set up in a  tree  very
similar to that used by the core distribution.  New versions
of several packages are available,  and  a  variety  of  new
donations  have been received.  Since this is not a superset
of the previous user-contributed tape, sites are  encouraged
to  save  any  R3  user-contributed  software that they use.
Note that this distribution is of no relation to  the  /con-
                                                        ----
trib    directory    available    for   anonymous   ftp   on
----
expo.lcs.mit.edu.
---- --- --- ---

XView and olwm
     The XView toolkit and an ICCCM-compliant OPEN LOOK win-
         -----
     dow  manager  from  Sun Microsystems have been added to
     this release.  This toolkit implements  the  OPEN  LOOK
     graphical  user  interface  guidelines  and the SunView
     application programming interface.

Gwm
     The Generic Window Manager from Groupe  Bull  has  been
         ------- ------ -------
     added.   Unlike  other  window managers, gwm provides a
                                              ---
     programming language for tailoring its user  interface.
     It is believed to be ICCCM-compliant.

Tektronix Window Manager
     The Tektronix Window Manager, derived from the awm win-
         --------- ------ -------                   ---
     dow  manager  in  the  previous release, is also new to
     this release.  Like gwm and olwm, tekwm is believed  to
                         ---     ----  -----
     be ICCCM-compliant.

Sigma toolkit and window manager
     The Sigma Project has donated its Sigma User  Interface
     Toolkit (SUIT) and window manager (m swm).
                                        -----

toolkits updated
     New versions of InterViews, Xw, andrew,  and  clue  are
                     ----------  --  ------        ----
     included.  New toolkits include: xgks and Xcu.
                                      ----     ---

Serpent UIMS
     The  Serpent  user  interface  management   system   is
          -------
     included in this release.




X Window System Release Notes       X, Version 11, Release 4





                           - 22 -


new libraries
     Several libraries for doing Japanese input (see XJ  and
                                                     --
     Wnn),  multi-language  input (see mlx and im), and com-
     ---                               ---     --
     pose processing (see XCompose) are provided.
                          --------

new programming examples
     The examples from the O'Reilly and Associates books  on
     Xlib and Xt have been provided.
     ----     --

new demos
     A variety of eye-catching demos have been added.

new clients
     A number of useful  packages  have  been  added:  image
     analysis  (see  NCSA and img), multi-language libraries
                     ----     ---
     and utilities (see kinput, kterm, and mlxterm), a  user
                        ------  -----      -------
     interface   prototyping   system  (see  winterp),  plus
                                             -------
     improved versions of xfed, xcolors, xpic, xplaces, xtek
                          ----  -------  ----  -------  ----
     (formerly texx), xtroff, and xwebster.
               ----   ------      --------

games
     A variety of new games have been contributed since  the
     new release.

5.  Writing Portable X Software
-   ------- -------- - --------

A favorite saying around here goes:  There's no  such  thing
as  portable  software,  only software that has been ported.
However, there are few rules of thumb that  go  a  long  way
towards  making  programs written for X easy to getting run-
ning on a wide variety of machines:

1.   Keep all source filenames to  12  characters  or  less.
     This  is  the  maximum  number of characters that older
     System V file systems allow when using  a  source  code
     control system.

2.   Use Imakefiles.  They are  the  only  way  to  generate
         ----------
     correct   Makefiles.    The   xmkmf   shell  script  in
               ---------           -----
     mit/util/scripts/ makes  it  trivial  create  Makefiles
     --- ---- -------                              ---------
     outside  of  the  core source tree.  The easiest way to
     construct an Imakefile is to start with one  that  does
                  ---------
     something  similar  and  modify it.  The various macros
     that   are   used   are    defined    in    the    file
     mit/config/Imake.rules.
     --- ------ ----- -----

3.   If  you  absolutely  must  use  Makefiles  instead   of
                                     ---------
     Imakefiles,  link against -lX11 instead of -lX.  If you
     ----------                 ----             --
     are using imake,  use  the  symbolic  names  $(XAWLIB),
               -----
     $(XMULIB),  $(XTOOLLIB),  $(EXTENSIONLIB), and $(XLIB).
     Xaw clients may use the symbol XawClientLibs  to  refer
     ---                            -------------
     to the appropriate libraries.

4.   Include header  files  using  the  syntax  <X11/file.h>
                                                 --- ---- -



X Window System Release Notes       X, Version 11, Release 4





                           - 23 -


     instead of "X11/file.h", <X/file.h>, or "X/file.h".
                 --- ---- -    - ---- -       - ---- -

5.   Include <X11/Xos.h> if you need  types.h,  string.h  or
              --- --- -               ----- -   ------ -
     strings.h  (then  use  the  routines  index  and rindex
     ------- -                             -----      ------
     instead of strchr  and  strrchr),  file.h,  time.h,  or
                ------       -------    ---- -   ---- -
     unistd.h.
     ------ -

6.   If you need to put in System V  vs.  BSD  dependencies,
     use #ifdef SYSV.  If you need SVR3 vs. SVR2, use #ifdef
          ----- ----                                   -----
     USG.
     ---

7.   Do not assume that the root window's  Visual  (returned
     by  the DefaultVisual macro) is the only one available.
             -------------
     Some color screens may use a black and white window for
     the  root or could provide StaticColor as well as Pseu-
     doColor visuals.  Unfortunately, most libraries do  not
     have  adequate support for locating visuals to use.  In
     the mean time, use XGetVisualInfo().
                        --------------

8.   Use -display displayname to specify  the  X  server  to
          ------- -----------
     contact.   Do  not simply assume that if a command line
     argument has a colon in it that it  is  a  displayname.
                                                -----------
     If  you  accept  command  line abbreviations, make sure
     that you also accept the full -display.
                                    -------

9.   Use -geometry geomspec to specify window geometry.   Do
          -------- --------
     not  simply  assume  that  if  a  command line argument
     begins with an equal sign that it is a window geometry.
     If  you  accept  command  line abbreviations, make sure
     that you also accept the full -geometry.
                                    --------

10.  Use the .man suffix for program manual page sources.
              ---

11.  If you are interested in contributing software  to  the
     MIT  public release, please use a copyright notice that
     is no more restrictive than the one shown in the  files
     ./COPYRIGHTS and contrib/COPYRIGHTS.
       ----------     ------- ----------

We hope you enjoy Release 4.


















X Window System Release Notes       X, Version 11, Release 4