summaryrefslogtreecommitdiff
path: root/X11R3.mdwn
blob: 5f3d0bea3ec18ee9a84be7633715929d473d396e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
<div itemscope itemtype="http://schema.org/SoftwareApplication">

# <span itemprop="name">X Window System</span>, <span itemprop="version">Version 11, Release 3</span>

<span itemprop="description">
X11R3 was the third release of the X Window System, Version 11 from MIT.
</span>
It was released in
<span itemprop="datePublished" content="1988-10-28">October 1988</span>,
with the following changes excerpted from the release notes.
The sources are available for download for historical reference from
<a href="http://www.x.org/releases/X11R3/" itemprop="downloadUrl">http://www.x.org/releases/X11R3/</a>.

[[!toc levels=4 startlevel=2]]

## Overview

Substantial progress has been made in improving the robustness and general
usability of the sample server, libraries, and applications.
Many bugs have been fixed, support for
several new platforms has been added, and backing store and save-unders have
been implemented.  No incompatible changes have been made to either the
core Protocol or to the *Xlib* programming library.

Several changes have been made to the X Toolkit Intrinsics that will
require minor additions to widget class records.  Professionally designed
font families from Adobe Systems, Inc. and Digital Equipment Corporation,
and from Bitstream, Inc. have replaced the chaotic collection that was
shipped in the previous releases.

This may require some minor adjustments of user preferences files.
Fonts are no longer named according to the files in which they
are stored; instead, the server reads a table out of each directory that
specifies in which file to look for each font.  In addition, support for
wildcarding and aliasing font names has been added.

Since the last release, the X Consortium has added the following specifications
to the X standard:

 * *X Toolkit Intrinsics*

    The X Toolkit Intrinsics as specified in the document
    <i>X Toolkit Intrinsics - C Language Interface</i> have been adopted as
    a non-exclusive, required standard for toolkit development.  Any vendor
    that ships *Xlib* is now expected to provide *Xt* as well.
    Vendors are free to develop and ship alternative toolkits, but they if
    they ship *Xlib*, they should also ship *Xt*.  Applications
    developers should note that this specification does not include a widget
    set.

 * *BDF Font File Format*

    The Bitmap Distribution Format (BDF) as specified in the document
    <i>Bitmap Distribution Format Format 2.1</i> has been adopted as a
    non-exclusive, required standard for font file interchange.  Any
    vendor that ships an X Window System server is expected to provide a
    way of translating BDF fonts into the appropriate server-specific format.


To avoid conflict with Version 10 applications, all C language source code is
expected to use the prefix `X11/` when including header files as well as
use the library name `libX11.a` or the loader option `-lX11` when
linking.

In addition, UNIX programs are expected to use the command line options
`-display host:dpy` and `-geometry geometryspec` in place of the
obsolete `host:dpy` or `=geometryspec` formats.
Applications that ignore these guidelines will no longer
function properly with this release.

Font support in the sample server has been improved in several ways:

 * *font names different from file names*

   A font's name is now determined by the contents of the property named FONT
   rather than the name of the file in which it is stored.  A new utility named
   *mkfontdir* is used to scan the fonts in a directory and build a database
   listing each font name and the file in which it is stored.  The server then
   uses this database when looking for fonts in a given directory.

 * *new font naming scheme*

   A new convention for uniquely naming fonts of any style, resolution, and
   size is now used for all of the new core fonts.

 * *wildcarding in font names*

   The sample server now supports wildcard characters in font names (such as
   would be given on a command line or in a resource database).  This makes
   specifying fonts which use the new naming scheme much easier.  This behavior
   is allowed by the Protocol but is not guarranteed in other servers.

 * *font name aliasing*

   Font directories may now contain a list of font name synonyms which may be
   used as alternate names for existing fonts.  This list is stored in the
   file `fonts.alias` and is read whenever the font database is scanned by the
   server.

 * *new fonts*

   Adobe Systems, Inc. and Digital Equipment Corporation have jointly donated 5
   families of fonts (*Courier*, *Times*, *Helvetica*, *New Century Schoolbook*,
   and *Symbol*) in a variety of sizes, styles and weights.  Bitstream, Inc.
   has donated its *Charter* font family in the same sizes, styles and weights.
   Most of the fonts that were shipped in previous releases have been moved to
   the user-contributed distribution, and all core clients have been converted
   to use the new fonts.  Applications developers and general users are very
   strongly urged to use the new fonts.


This release should build and install on machines running
the following operating systems:
<span itemprop="operatingSystem">
4.3+tahoe, Ultrix, SunOS, HP-UX, Domain/IX, A/UX, and UNICOS, and AOS 4.3.
</span>
See any `README` files in the appropriate `server/ddx/` directories or
`*.macros` files in `util/imake.includes/` for details.

## What's New in this Release

The primary focus of this release has been to fix bugs in the server and in
the base programming libraries.  In addition, several key features have been
added so that this release can provide a clean, sturdy foundation for
developing applications.

### Changes to the core distribution

The following additions, deletions, and modifications have been made to the
software in the core distribution.  Users of the old fonts will need to edit
their resources files.  Widget writers will need to following the instructions
in the document <i>Converting Widgets from X11 Release 2 to X11 Release 3</i>.

 * many, many bugs fixed

   A large number of bugs have been fixed in the server, the libraries, and the
   clients.  Many parts of the sample server that were broken in the previous
   release have been fixed.  In particular, ink metrics in fonts have been
   fixed; client errors in computing character sizes will now be easy to spot.

 * build configuration simplified

   The configuration templates in `util/imake.includes` have been restructured
   to make per-server and per-site changes easier to make.  A `README` file in
   that directory now describes each of the parameters that may be set and
   site-specific changes have been isolated in a new file named `site.def`.
   The template file `Imake.tmpl` should never need to be modified.

 * new servers

   New support has been added to the sample server for the following platforms:
   Parallax video graphics processor for Suns and Vaxes, and
   Apple Macintosh II under A/UX.

 * new fonts

   Adobe Systems, Inc. and Digital Equipment Corporation have jointly donated
   BDF font files for the *Courier*, *Times*, *Helvetica*,
   *New Century Schoolbook*, and *Symbol* families at 8, 10, 12, 14, 18, and
   24 point sizes, Roman and Italic or Oblique styles, medium and bold weights,
   for 75 dot per inch monitors.

   Bitstream, Inc. has donated BDF font files for its *Charter* family at the
   same sizes, styles, and weights for both 75 and 100 dpi monitors.
   Both donations use the ISO Latin-1 character set.

   All of the core clients have been changed to use the new fonts.  The fonts
   that were shipped with previous releases have been moved to the
   user-contributed distribution (except for 6x10, 6x12, 6x13, 8x13, 8x13bold,
   and 9x15).

 * font name wildcarding

   The sample server now accepts the same wildcard characters in the *OpenFont*
   request as in the *ListFonts* request.  This is very useful for refering to
   fonts with very long names, such as those in the new font sets.  Users are
   encouraged to carefully select wildcarded names so that they will work
   properly on monitors with different resolutions (for example, when specifying
   a size, use a wild card for the pixel size, but specify the point size).
   Note that this behavior is allowed by the Protocol, but is not required of
   other servers.

 * font names separated from file names

   Font names are no longer tied to the names of the files in which they are
   stored.  Instead, the name of the font is taken from the FONT property in the
   font data.  A script for generating the appropriate font name from the other
   properties in a font file may be found in `util/scripts/fontname.sh`.  The
   sample server no longer scans font directories, but rather looks in a
   database created by the *mkfontdir* program.

 * font name aliases support

   The sample server now supports multiple names for a single font.  These are
   stored in a file named `fonts.alias` in each font directory and may refer to
   any font.  This is very useful for providing collections of symbolic names
   for fonts.

 * BDF font format now a standard

   The X Consortium has adopted the BDF font format as a non-exclusive standard.
   Server vendors are now expected to provide a program for converting BDF files
   to whatever format is used by their server.  The sample server font compiler
   has been renamed *bdftosnf* and has been fixed to properly generate ink
   metrics for terminal emulator fonts.

 * *bdftosnf* and *showsnf* installed

   The *bdftosnf* and *showsnf* utilities are now installed for public use.

 * definition of wide arcs changed

   The definition of wide arcs has been fixed to be a brush centered on and
   normal to the path described by the arc.  The old definition used to draw
   arcs of non-uniform width.

 * backing store and save-unders supported

   The sample server now supports backing store and save-unders.  The backing
   store hooks which were unused in the previous release have changed; server
   developers should study the new interfaces.

 * X Toolkit Intrinsics Standard Adopted

   The X Toolkit Intrinsics (frequently refered to as *Xt*) have been reviewed
   by the X Consortium and are now part of the X standard.  Any vendor that
   ships *Xlib* is expected to ship *Xt*.  Some interface and widget class
   record changes have been made since the previous release.  Sources for the
   document <i>Converting Widgets from X11 Release 2 to X11 Release 3</i> may be
   found in `doc/tutorials/r3widgets.ms`.  Applications that used the proper
   interfaces and data types should simply recompile and work.  However,
   application writers should also read the conversion tutorial as certain
   programming errors that might not have been visible in previous releases
   will become noticable in this release.  Note that the *Xt* standard does
   not include a widget set.

 * Athena widget enhancements

   A new List widget has been added the Athena widget set.  A prototype menu
   widget that will eventually be added to this set is available in the
   user-contributed distribution in the directory `contrib/widgets/MenuBox/`.
   The Athena VendorShell widget now supports specifying icon pixmaps as
   resources. The text widget now supports selections.

 * new Miscellaneous Utilities library

   A library named *Xmu* containing miscellaneous utilities to support the MIT
   clients has been added.  It currently has a variety of X Toolkit converters
   as well as routines for displaying *Xlib*-like XError messages, drawing
   rounded rectangles, converting ISO Latin-1 strings to lower case, and reading
   bitmap files.  It is not part of the X standard and is expected to be a
   repository for generally useful routines.  It only uses external interfaces
   to the standard libraries and should be portable to vendor-supplied
   platforms.

 * *Xlib* support for 64bit architectures

   The internals of *Xlib* have been reworked to support 64 bit machine
   architectures and Cray supercomputers running UNICOS in particular.
   Extension writers should look at the new internal interfaces for sending and
   receiving data.

 * *Xlib* Property packing semantics clarified

   The `XGetWindowProperty` and `XChangeProperty` now take care of converting
   between host data objects (e.g. unsigned char, unsigned short, and unsigned
   long) and network data objects (e.g. CARD8, CARD16, and CARD32).
   Applications which store data in or retreive data from properties should
   also use arrays of host data objects instead of structures.

 * new routines in *Xlib*

   The following routines have been added to *Xlib* for accessing data
   from opaque structures:  `XMaxRequestSize`, `XResourceManagerString`,
   `XDisplayMotionBufferSize`, `XDisplayKeycodes`, and `XVisualIDFromVisual`.

 * new Display Manager *xdm*

   A new, portable system for running X and starting user sessions has been
   added to this release.  This Display Manager, called *xdm*, provides a
   convenient way for sites to run X automatically.  Site administrators may
   easily tailor it provide an wide variety of environments.  This new utility
   superceeds *xterm -L* as well as many uses of *xinit*.  Future releases will
   concentrate on providing even nicer user interfaces.

 * new utilities

   Several new utility programs have been provided: *xdpyinfo* for printing out
   information about a particular display, *xev* for printing out the contents
   of various events, *xlswins* for listing the windows on a display, *xkill*
   for getting rid of unwanted windows, *xmag* for enlarging parts of the
   screen, *xclipboard* for collecting text selections, and *xcutsel* for
   converting between cut buffers and selections.

 * xman now supported

   The *xman* program is now part of the core distribution.  Many of the bugs
   which causes poor performance on some servers have been fixed, making this
   program one of the prettier demonstrations of the new fonts.

 * new demos

   Two new demos have been added:  *xeyes* and *maze*.

 * new features in *xterm*

   The os-specific portion of *xterm* has been substantially rewritten and now
   works properly on both BSD and System V derived versions of UNIX.  The full
   translation manager rebinding facilities are supported for both keyboard and
   VT102-mode pointer input.  This includes arbitrary binding of strings to keys
   (including keys that bind other keys!), making, inserting, and transmitting
   selections, and popping up of menus.  Reverse video has been substantially
   improved.  Several bugs in Tektronix graphics input mode have been fixed.
   Function keys can now be set to generate Sun keyboard escape sequences
   instead of ANSI escape sequences.  Default settings for various terminal
   modes are now supported.

 * rewrite of *x10tox11*

   The *x10tox11* protocol translator for running X10 binary programs on X11
   displays has been completely rewritten.  It should be substantially faster
   and give better results for a larger number of programs.

 * font path support in *xset*

   The *xset* utility now supports adding to and deleting from the
   font directory list.  A new keyword *rehash* has been added to the *fp*
   option to force the server to reread any changed font directories (this
   is useful after running *mkfontdir* in a directory).

 * pointer map support in *xmodmap*

   The *xmodmap* utility has been enhanced to support changing and displaying
   the pointer map.  A new option for displaying the keyboard map has replaced
   the old *xprkbd* program.

 * new coversion utilities for bitmap files

   Two new programs, *bmtoa* and *atobm*, have been provided for converting
   *bitmap* to and from plain text.  They are very useful for generating
   pictures for including in documents and for creating bitmaps from arbitrary
   arrays of characters.  The *pbm* package in the user-contributed distribution
   contains a much wider range of tools.

 * BSD *compress* sources supplied

   The sources for the BSD *compress* program are now included for those sites
   that do not already have this program.  Starting with this release, some
   documentation and bitmap images in the user-contributed distribution have
   been compressed to save space.

 * public domain *cpp* supplied

   The sources for a C preprocessor based on Martin Minow's public domain
   DECUS *cpp* are now included for sites whose native *cpp* cannot
   handle the server and the X Toolkit.  This *cpp* must be built and
   installed by A/UX 1.0 users.

 * substitute *soelim*

   A version of the *soelim* utility for removing `.so filename` directives
   from troff sources has been provided for systems that do not have one.

 * sample copyright notice `./COPYRIGHTS`

   The file `COPYRIGHTS` in the top level directory contains a sample
   copyright notice recommended for people who are interested in contributing
   software to the public releases.

 * X Standards `./STANDARDS`

   The file `STANDARDS` in the top level directory contains a description
   of what is and is not part of the X Consortium's standard for the X Window
   System.

### Changes to the user-contributed distribution

The user-contributed distribution is now arranged in a hierarchy similar to
the core distribution.  Generally useful programs are in `clients`,
visually interesting programs are in `demos`, amusements are in
`games`, server and client extensions are in `extensions`,
server code that has not been integrated into the sample server is in
`server`, font conversion utilities and BDF files are in `fonts`,
native libraries for building applications are in `toolkits`, X Toolkit
widget sets are in `widgets`, and several popular window managers are in
`windowmgr`.

 * old XMenu library removed

   The old *XMenu* library has been removed from this release.  Applications
   in need of menus should use a toolkit.  A prototype X Toolkit menu widget
   is available in the `contrib/widgets/MenuBox/` directory.

 * new clients

   A variety of new programs have been added to the `clients` subdirectory:
   * a plotting package (*splot*),
   * a magnifying application (*spy*),
   * more previewers (*xdvi*, *xpic*, and *xtroff*),
   * programs for querying the user (*alteryorngs*, *xmessage*, and *xstring*),
   * a utility for looking up words from the SRI-NIC dictionary server (*xwebster*),
   * versions of *xpr* for other devices (*hpxpr* and *xipr*),
   * several programs for configuring your session (*x11startup*, *xbgsun*, *xdvorak*, *xplaces*, *xpref*, and *xtools*),
   * several tools for displaying images (*pbm* and *xim*),
   * and a drawing package (*xfig*).

 * new demos

   Several striking programs have been added to the `demos` directory:
   * a multi-screen version of *ico* (*psycho*),
   * a utility for creating interstellar backgrounds (*spaceout*),
   * a random slither program (*worm*),
   * a program for displaying the phase of the moon (*xphoon*), and
   * a nasty program for demonstrating what ``going technicolor'' really
   means (*xrotmap*).

 * fonts

   A random collection of public domain fonts from the Berkeley Mac Users Group
   and the INFO-MAC archives have been contributed.  BDF versions of
   many of the X10 fonts have been included as well as the old X11 fonts.

 * games

   Several games have been contributed since the last release:  the ancient and
   honorable *mazewar*, the ubiquitous tower of *xhanoi*, two cards games
   (*xmille* and *xsol*), yet another *xpuzzle*, a version of the video arcade
   game *qix*, and the infamous *xtrek*.

 * toolkits

   New versions of *InterViews*, *Xr11*, and *andrew* along with a
   prototype implementation of *CLUE Common Lisp User Interface Environment*
   are available in the `toolkits` directory.

 * widgets

   The *HP* and *Sony* widget sets, along with a collection of random,
   interesting widgets may be found in the *widgets* subdirectory.
   Since the HP and Sony widgets are temporarily based on the R2 Intrinsics,
   a version of *Xt* compatible with the previous release is provided in the
   `contrib/widgets/Xhp/Xt/` subdirectory.

 * windowmgrs

   Relatively recent versions of the *awm*, *rtl*, *twm* and *wm*
   window managers are available in the `windowmgrs` subdirectory.
   Their interoperability with R3 core clients has not been tested.

*We hope you enjoy Release 3.*

<div style="font-size: small; border-top: 1px solid black;">
<p>
Copyright &copy; <span itemprop="copyrightYear">1988</span> by the
<span itemprop="copyrightHolder"
 itemscope itemtype="http://www.schema.org/Organization">
<span itemprop="name">Massachusetts Institute of Technology</span>
</span>.
</p><p>
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, 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.
</p>
<p>
Ultrix and Ultrix-32 are trademarks of Digital Equipment Corporation;
SunOS is a trademark of Sun Microsystems, Inc.; HP-UX is a trademark of the
Hewlett-Packard Company; Domain is a trademark of Apollo Computer;
PostScript is a
trademark of Adobe Systems, Inc.; A/UX is a trademark of Apple Computer;
UNICOS is a trademark of Cray Research;
AOS is a trademark of the IBM Corporation;
UNIX is a registered trademark of AT&T Bell Laboratories;
Times, Helvetica, and New Century Schoolbook are registered trademarks of
Linotype; and Charter is a registered trademark of Bitstream, Inc.
</p>
</div>
</div>