-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL.TXT
749 lines (447 loc) · 22.7 KB
/
INSTALL.TXT
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
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
Building and Installing the X Window System
Stephen Gildea
X Consortium
March 5, 1996
Updated For Release 6.3
Copyright (C) 1995, 1996 X Consortium
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Soft-
ware"), to deal in the Software without restriction, including without
limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to
whom the Software is furnished to do so, subject to the following condi-
tions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABIL-
ITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
Except as contained in this notice, the name of the X Consortium shall
not be used in advertising or otherwise to promote the sale, use or
other dealings in this Software without prior written authorization from
the X Consortium.
X Window System is a trademark of X Consortium, Inc.
1. Easy Build Instructions
This quick summary is no substitute for reading the full build instruc-
tions later in this document.
When building an XFree86 release, see also the BUILD document located in
xc/programs/Xserver/hw/xfree86/doc for important XFree86-specific build
instructions.
Edit xc/config/cf/site.def for local preferences. If you want to build
with gcc uncomment the HasGcc2 line. If you want to install somewhere
other than /usr/X11R6.3, change ProjectRoot. (Do not use DESTDIR.)
If any fixes have been released by the X Consortium, stop here and fol-
low the instructions at the top of each patch, but don't do any of the
make commands suggested in the patches. Then continue here.
Check the appropriate vendor-specific .cf file in xc/config/cf/ to make
sure that OSMajorVersion and OSMinorVersion are set correctly for your
system. Override them in site.def if necessary.
See if there is a BootstrapCFlags mentioned in the comments in the ven-
dor-specific .cf file. If there isn't one, cd to the xc directory and
type:
% make World >& world.log
If there is a BootstrapCFlags, take its value and type:
% make World BOOTSTRAPCFLAGS="value" >& world.log
Do not call the output file "make.log" when doing "make World". After a
successful build, you can install with:
% make install >& install.log
You can install manual pages with:
% make install.man >& man.log
While the system is building (or if things fail), read the rest of these
installation instructions.
2. Building X
This document gives detailed instructions for building Release 6: get-
ting it off the distribution medium, configuring, compiling, installing,
running, and updating.
Release Notes are in xc/RELNOTES.* (various formats) in the distribu-
tion.
More recent information about newly-discovered problems may be found in
the Frequently Asked Questions posting appearing monthly on the
comp.windows.x newsgroup and xpert mailing list. It is also available
via anonymous FTP on ftp.x.org in the file contrib/faqs/FAQ.Z, or on
your local X mirror site.
2.1. Preparing the Site
If you are unpacking tar files, you will need about 130 Mb to hold the
xc/ part. To install requires 30-50 Mb assuming you have shared
libraries (80-100 Mb without). You will need an equivalent amount of
extra space to build, since you also need room for all the object files.
Distributed as tar files, Release 6.3 core is divided into parts as fol-
lows:
xc-1.tar contains everything in xc/ that isn't in the other tar files
xc-2.tar contains xc/fonts, xc/doc/specs, xc/util
xc-3.tar contains xc/doc/hardcopy
If you define BuildFonts to NO, you only need to unpack xc-1.tar to
build. If you build fonts, then you will also need xc-2.tar to build.
2.2. Unpacking the Distribution
The distribution normally comes as multiple tar files, either on tape or
across a network, or as a CD-ROM.
2.2.1. Unpacking a Compressed FTP Distribution
If you have obtained compressed tar files over the network, create a
directory to hold the sources and cd into it:
mkdir sourcedir
cd sourcedir
Then for each tar file xc-*.tar.Z, execute this:
zcat ftp-dir/xc-N.tar.Z | tar xf -
2.2.2. Unpacking a gzipped FTP Distribution
If you have obtained gzipped tar files over the network, create a direc-
tory to hold the sources and cd into it:
mkdir sourcedir
cd sourcedir
Then for each tar file xc-*.tar.gz, execute this:
gunzip -c ftp-dir/xc-N.tar.gz | tar xf -
2.2.3. Unpacking a Split Compressed FTP Distribution
If you have obtained compressed and split tar files over the network,
create a directory to hold the sources:
mkdir sourcedir
Then for each directory xc-*:
cd ftp-dir/xc-N
cat xc-N.?? | uncompress | (cd sourcedir; tar xf -)
2.2.4. Unpacking the Tape Distribution
If you have obtained a tape, create a directory to hold the sources and
untar everything into that directory:
mkdir sourcedir
cd sourcedir
tar xf tape-device
2.2.5. Using the CD-ROM
If you have obtained a CD-ROM, you don't have to do anything to unpack
it. However, you will have to create a symbolic link tree to build X.
See the next section.
To mount the CD-ROM, see the mount(8) manual page on your system or the
liner notes that came with the CD-ROM. Some systems, e.g., Solaris 2,
can automatically mount the CD-ROM for you.
2.3. Apply Patches
If there are fixes released that are more recent than your distribution,
apply them now. Follow the instructions at the top of each patch, but
don't do any make commands. See the section "Public Patches" later in
this document. Then continue here.
2.4. Symbolic Link Trees
If you expect to build the distribution on more than one machine using a
shared source tree, or you are building from CD-ROM, or you just want to
keep the source tree pure, you may want to use the program xc/con-
fig/util/lndir.c to create a symbolic link tree on each build machine.
The links may use an additional 10 megabytes, but it is cheaper than
having multiple copies of the source tree.
It may be tricky to compile lndir before the distribution is built. If
you have a copy from a previous release, use that. Makefile.ini can be
used for building lndir the first time. You may have to specify
OSFLAGS=-Dsomething to get it to compile. What you would pass as BOOT-
STRAPCFLAGS might work. The command line looks something like this:
make -f Makefile.ini OSFLAGS=-Dflag
To use a symbolic link tree, create a directory for the build, cd to it,
and type this:
lndir sourcedir
where sourcedir is the pathname of the directory where you stored the
sources. All of the build instructions given below should then be done
in the build directory on each machine, rather than in the source direc-
tory.
xc/config/util/mkshadow/ contains mkshadow, an alternative program to
lndir.
2.5. Configuration Parameters
Build information for each source directory is in files called Imake-
file. An Imakefile, along with local configuration information in
xc/config/cf/, is used by the program imake to generate a Makefile.
Most of the configuration work prior to building the release is to set
parameters so that imake will generate correct files. Most of those
parameters are set in xc/config/cf/site.def. You will also need to
check the appropriate vendor-specific .cf file in xc/config/cf/ to make
sure that OSMajorVersion, OSMinorVersion, and OsTeenyVersion are set
correctly for your system. Override them in site.def if necessary.
The site.def file has two parts, one protected with "#ifdef BeforeVen-
dorCF" and one with "#ifdef AfterVendorCF". The file is actually pro-
cessed twice, once before the .cf file and once after. About the only
thing you need to set in the "before" section is HasGcc2; just about
everything else can be set in the "after" section.
The sample site.def also has commented out support to include another
file, host.def. This scheme may be useful if you want to set most
parameters site-wide, but some parameters vary from machine to machine.
If you use a symbolic link tree, you can share site.def across all
machines, and give each machine its own copy of host.def.
The config parameters are listed in xc/config/cf/README, but here are
some of the more common parameters that you may wish to set in site.def.
ProjectRoot
The destination where X will be installed. This variable needs to
be set before you build, as some programs that read files at run-
time have the installation directory compiled in to them. Assuming
you have set the variable to some value /path, files will be
installed into /path/bin, /path/include/X11, /path/lib, and
/path/man.
HasGcc
Set to YES to build with gcc version 1.
HasGcc2
Set to YES to build with gcc version 2. Both this option and Has-
Gcc look for a compiler named gcc, but HasGcc2 will cause the build
to use more features of gcc 2, such as the ability to compile
shared libraries.
BuildXInputExt
Set to YES to build the X Input Extension. This extension requires
device-dependent support in the X server, which exists only in Xhp
in our implementation.
BuildPexExt
Set to NO to not build the PEX server extension and fonts.
DefaultUsrBin
This is a directory where programs will be found even if PATH is
not set in the environment. It is independent of ProjectRoot and
defaults to /usr/bin. It is used, for example, when connecting
from a remote system via rsh. The rstart program installs its
server in this directory.
InstallServerSetUID
Some systems require the X server to run as root to access the
devices it needs. If you are on such a system and will not be
using xdm, you can set this variable to YES to install the X server
setuid to root. Note that the X server has not been analyzed by
the X Consortium for security in such an installation; talk to your
system manager before setting this variable.
InstallXdmConfig
By default set to NO, which suppresses installing xdm config files
over existing ones. Leave it set to NO if your site has customized
the files in /usr/X11R6.3/lib/X11/xdm, as many sites do. If you
don't install the new files, merge any changes present in the new
files.
MotifBC
Causes Xlib and Xt to work around some bugs in older versions of
Motif. Set to YES only if you will be linking with Motif version
1.1.1, 1.1.2, or 1.1.3.
GetValuesBC
Setting this variable to YES allows illegal XtGetValues requests
with NULL ArgVal to usually succeed, as R5 did. Some applications
erroneously rely on this behavior. Support for this will be
removed in a future release.
The following vendor-specific .cf files are in the release but have not
been tested recently and hence probably need changes to work: apollo.cf,
bsd.cf, convex.cf, DGUX.cf, luna.cf, macII.cf, Mips.cf, moto.cf, Oki.cf,
pegasus.cf, x386.cf. Amoeba.cf is known to require additional patches.
The file xc/lib/Xdmcp/Wraphelp.c, for XDM-AUTHORIZATION-1, is not
included in this release.
2.6. System Build Notes
This section contains hints on building X with specific compilers and
operating systems.
If the build isn't finding things right, make sure you are using a com-
piler for your operating system. For example, a pre-compiled gcc for a
different OS will not have right symbols defined, so imake will not work
correctly.
2.6.1. gcc
gcc version 2 is in regular use at the X Consortium on Sparc platforms.
Set the variable HasGcc2. X will not compile on some systems with gcc
version 2.5, 2.5.1, or 2.5.2 because of an incorrect declaration of mem-
move() in a gcc include file.
If you are using a gcc version older than 2.7 on Solaris x86, you need
to specify BOOTSTRAPCFLAGS="-Dsun" in the "make World" command.
2.6.2. Other GNU tools
Use of the GNU assembler, as, or linker, ld, is not supported. GNU make
is not supported.
2.6.3. SparcWorks 2.0
If you have a non-threaded program and want to debug it with the old
SparcWorks 2.0 dbx, you will need to use the thread stubs library in
xc/util/misc/thr_stubs.c. Compile it as follows:
cc -c thr_stubs.c
ar cq libthr_stubs.a thr_stubs.o
ranlib libthr_stubs.a
Install libthr_stubs.a in the same directory with your X libraries
(e.g., /usr/X11R6.3/lib/libthr_stubs.a). Add the following line to
site.def:
#define ExtraLibraries -lsocket -lnsl $(CDEBUGFLAGS:-g=-lthr_stubs)
This example uses a make macro substitution; not all make implementa-
tions support this feature.
2.6.4. CenterLine C under Solaris 2
If you are using the CenterLine C compiler to compile the distribution
under Solaris 2, place the following line in your site.def:
#define HasCenterLineC YES
If clcc is not in your default search path, add this line to site.def:
#define CcCmd /path/to/your/clcc
If you are using CodeCenter 4.0.4 or earlier, the following files trig-
ger bugs in the clcc optimizer:
xc/programs/Xserver/cfb16/cfbgetsp.c
xc/programs/Xserver/cfb16/cfbfillsp.c
xc/programs/Xserver/cfb/cfbgetsp.c
Thus to build the server, you will have to compile these files by hand
with the -g flag:
% cd xc/programs/Xserver/cfb16
% make CDEBUGFLAGS="-g" cfbgetsp.o cfbfillsp.o
% cd ../cfb
% make CDEBUGFLAGS="-g" cfbgetsp.o
This optimizer bug appears to be fixed in CodeCenter 4.0.6.
2.6.5. IBM AIX 4.1.4
On AIX 4.1.4, the file lib/font/Type1/objects.c must be compiled without
optimization (-O) else the X server will exit when Type 1 fonts are
used.
2.6.6. SunOS 4
SunOS 4.0 and earlier need BOOTSTRAPCFLAGS=-DNOSTDHDRS because they do
not have unistd.h nor stdlib.h. Do not supply a BOOTSTRAPCFLAGS when
building any SunOS 4.1 version.
2.6.7. Microsoft Windows NT
All of the base libraries are supported, including multi-threading in
Xlib and Xt, but some of the more complicated applications, specifically
xterm and xdm, are not supported.
There are also some other rough edges in the implementation, such as
lack of support for non-socket file descriptors as Xt alternate inputs
and not using the registry for configurable parameters like the system
filenames and search paths.
The Xnest server has been made to run on NT. It requires a real X
server for output still.
2.6.8. Omron Luna
The Omron Luna platform is no longer supported. The Luna version of the
make program doesn't define the standard macro MAKE, so you must run it
as "make MAKE=make" at top level, e.g., "make MAKE=make World".
2.7. The Build
On NT, type
nmake World.Win32 > world.log
On other systems, find the BootstrapCFlags line, if any, in the vendor-
specific .cf file. If there isn't one, type
% make World >& world.log
otherwise type
% make World BOOTSTRAPCFLAGS="value" >& world.log
You can call the output file something other than "world.log", but do
not call it "make.log" because files with this name are automatically
deleted during the "cleaning" stage of the build.
Because the build can take several hours to complete, you will probably
want to run it in the background and keep a watch on the output. For
example:
% make World >& world.log &
% tail -f world.log
If something goes wrong, the easiest thing is to just start over (typing
"make World" again) once you have corrected the problem.
2.8. Installing X
If everything is built successfully, you can install the software by
typing the following as root:
% make install >& install.log
Again, you might want to run this in the background and use tail to
watch the progress.
You can install the manual pages by typing the following as root:
% make install.man >& man.log
2.8.1. System Installation Notes
This section contains hints on installing and using X with specific com-
pilers and operating systems.
2.8.1.1. The X Server on AIX 4
For IBM's AIX 4, you need to make sure the LFT device is associated with
the correct graphics adapter. It's a one-time setup that does not hap-
pen automatically, even if there's only one graphics adapter in the sys-
tem. To configure the LFT device properly, become root and start SMIT.
Go to the "Devices" category, choose "LFT", then "Displays", then "Move
the LFT to Another Display".
Select "Both" for when the change should take effect, then select the
display adapter where you want to run the X server. Confirm the changes
and exit SMIT; from now on, you should be able to run the server just
fine.
To run Xibm from xdm, you must provide the "-force" flag on the server
command line in the Xservers file.
2.9. Shared Libraries
The version number of some of the the shared libraries has been changed.
On SunOS 4, which supports minor version numbers for shared libraries,
programs linked with the R6 libraries will use the new libraries with no
special action required. On other platforms you have the following
choices:
1. Keep the old versions of the libraries around.
2. Relink all applications with the new libraries.
3. Create a link from the old name to the new name.
For example, to have programs that were linked against
libX11.so.6.0 use libX11.so.6.3, make this link:
ln -s libX11.so.6.3 libX11.so.6.0
2.10. Setting Up xterm
If your /etc/termcap and /usr/lib/terminfo databases do not have correct
entries for xterm, use the sample entries provided in the directory
xc/programs/xterm/. System V users may need to compile and install the
terminfo entry with the tic utility.
Since each xterm will need a separate pseudoterminal, you need a reason-
able number of them for normal execution. You probably will want at
least 32 on a small, multiuser system. On most systems, 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" sets configured (try typing "ls /dev/?ty??"), you
should have your system administrator add them. This is commonly done
by running the MAKEDEV script in the /dev directory with appropriate
arguments.
2.11. Starting Servers at System Boot
The xfs and xdm programs are designed to be run automatically at system
startup. Please read the manual pages for details on setting up config-
uration files; reasonable sample files are in xc/programs/xdm/config/
and xc/programs/xfs/.
2.11.1. On BSD-based systems using /etc/rc
If your system uses an /etc/rc file at boot time, you can usually enable
these programs by placing the following at or near the end of the file:
if [ -f /usr/X11R6.3/bin/xfs ]; then
/usr/X11R6.3/bin/xfs & echo -n ' xfs'
fi
if [ -f /usr/X11R6.3/bin/xdm ]; then
/usr/X11R6.3/bin/xdm; echo -n ' xdm'
fi
Since xfs can serve fonts over the network, you do not need to run a
font server on every machine with an X display. You should start xfs
before xdm, since xdm may start an X server which is a client of the
font server.
The examples here use /usr/X11R6.3/bin, but if you have installed into a
different directory by setting (or unsetting) ProjectRoot then you need
to substitute the correct directory.
If you are unsure about how system boot works, or if your system does
not use /etc/rc, consult your system administrator for help.
2.11.2. On SystemV-based systems
There are two ways you can get On systems with a /etc/inittab file, you
can edit this file to add the lines
xfs:3:once:/usr/X11R6.3/bin/xfs
xdm:3:once:/usr/X11R6.3/bin/xdm
On some systems, you can edit a file in /etc/init.d to run the X Consor-
tium xdm instead of the vendor's product xdm. On Sony this file is
/etc/init.d/consxdm. On IRIX edit /etc/init.d/xdm.
2.12. Using OPEN LOOK applications
You can use the X11R6 Xsun server with OPEN LOOK applications, but you
must pass the -swapLkeys flag to the server on startup, or the OPEN LOOK
Undo, Copy, Paste, Find, and Cut keys may not work correctly. For exam-
ple, to run Sun's OpenWindows 3.3 desktop environment with an X11R6
server, use the command:
% openwin -server /usr/X11R6.3/bin/Xsun -swapLkeys
The keysyms reported by keys on the numeric keypad have also changed
since X11R5; if you find that OpenWindows applications do not respond to
keypad keys and cursor control keys when using the R6 server, you can
remap the keypad to generate R5 style keysyms using the following
xmodmap commands:
keysym Pause = F21
keysym Print = F22
keysym Break = F23
keysym KP_Equal = F24
keysym KP_Divide = F25
keysym KP_Multiply = F26
keysym KP_Home = F27
keysym KP_Up = Up
keysym KP_Prior = F29
keysym KP_Left = Left
keycode 100 = F31
keysym KP_Right = Right
keysym KP_End = F33
keysym KP_Down = Down
keysym KP_Next = F35
keysym KP_Insert = Insert
keysym KP_Delete = Delete
2.13. Rebuilding after Patches
You shouldn't need this right away, but eventually you are probably
going to make changes to the sources, for example by applying any public
patches that may be released.
Each patch comes with explicit instructions at the top of it saying what
to do. Thus the procedure here is only an overview of the types of com-
mands that might be necessary to rebuild X after changing it.
If you are building from CD-ROM, apply the patches to the symbolic link
tree. The links to changed files will be replaced with local files con-
taining the new contents.
If only source files are changed, you should be able to rebuild just by
going to the xc directory in your build tree and typing:
% make >& make.log
If configuration files are changed, the safest thing to do is type:
% make Everything >& every.log
"Everything" is similar to "World" in that it rebuilds every Makefile,
but unlike "World" it does not delete the existing objects, libraries,
and executables, and only rebuilds what is out of date.
2.14. Formatting the Documentation
The PostScript files in xc/doc/hardcopy can be generated from the
sources in xc/doc/specs. Most of the documentation is in troff using
the -ms macros. The easiest way to format it is to use the Imakefiles
provided.
Set the name of your local troff program by setting the variable Trof-
fCmd in xc/config/cf/site.def. Then build the Makefiles:
cd xc/doc
make SUBDIRS=specs Makefiles
Finally, go to the directory you are interested in and type "make"
there. This command will generate .PS files. You can also generate
text files by specifying the document name with a .txt extension as a
make target, e.g., "make icccm.txt".