source: x/installing/xorg.xml@ 42205811

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 42205811 was abfff1a5, checked in by DJ Lucas <dj@…>, 16 years ago

Commented out remaining text related to XFree86.

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@7410 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 18.4 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY xorg-download-http "http://xorg.freedesktop.org/releases/X11R&xorg-version;/src-single/X11R&xorg-version;-src.tar.bz2 ">
8 <!ENTITY xorg-download-ftp "ftp://ftp.x.org/pub/X11R&xorg-version;/src-single/X11R&xorg-version;-src.tar.bz2">
9 <!ENTITY xorg-md5sum "52ad69832db5c36c7041f90625ed4598">
10 <!ENTITY xorg-size "45 MB">
11 <!ENTITY xorg-buildsize "864 MB">
12 <!ENTITY xorg-time "11.68 SBU">
13]>
14
15<sect1 id="xorg" xreflabel="Xorg-&xorg-version;">
16 <?dbhtml filename="xorg.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>Xorg-&xorg-version;</title>
24
25 <indexterm zone="xorg">
26 <primary sortas="a-xorg">Xorg</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to Xorg</title>
31
32<!-- XFREE86
33 <note>
34 <para>There are three packages in BLFS that implement the <application>X
35 Window System</application>: <application>Xorg</application>
36 (X11R6 and X11R7) and <application>XFree86</application>. These
37 packages are all quite similar. In fact, the base system of
38 <application>Xorg</application> is
39 <application>XFree86</application>-4.4.0RC2. Licensing was the original
40 reason for the split. <application>Xorg-&xorg7-version;</application>
41 introduces a completely autotooled build system, but is otherwise the
42 same codebase as <application>Xorg-&xorg-version;</application>.
43 Most large commercial distributions have decided to use the
44 <application>Xorg</application> package, but several still provide
45 <application>XFree86</application>.</para>
46
47 <para>A second reason for the forking of <application>X</application>
48 packages is the stated goals of the developers. Some developers were
49 unhappy with the administration and progress of
50 <application>XFree86</application>. X.org's future plans include
51 significant improvements to the internals of the system and more
52 frequent releases.</para>
53
54 <para><application>XFree86</application> continues to be a solid,
55 conservative application with excellent driver support.</para>
56 </note>
57XFREE86 -->
58
59 <para><application>Xorg</application> is a freely redistributable
60 open-source implementation of the <application>X</application> Window
61 System. This system provides a client/server interface between display
62 hardware (the mouse, keyboard, and video displays) and the desktop
63 environment, while also providing both the windowing infrastructure and
64 a standardized application interface (API).</para>
65
66 <bridgehead renderas="sect3">Package Information</bridgehead>
67 <itemizedlist spacing="compact">
68 <listitem>
69 <para>Download (HTTP): <ulink url="&xorg-download-http;"/></para>
70 </listitem>
71 <listitem>
72 <para>Download (FTP): <ulink url="&xorg-download-ftp;"/></para>
73 </listitem>
74 <listitem>
75 <para>Download MD5 sum: &xorg-md5sum;</para>
76 </listitem>
77 <listitem>
78 <para>Download size: &xorg-size;</para>
79 </listitem>
80 <listitem>
81 <para>Estimated disk space required: &xorg-buildsize;</para>
82 </listitem>
83 <listitem>
84 <para>Estimated build time: &xorg-time;</para>
85 </listitem>
86 </itemizedlist>
87
88 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
89 <itemizedlist spacing="compact">
90 <listitem>
91 <para>Required patch: <ulink
92 url="&patch-root;/xorg-&xorg-version;-luit_race-1.patch"/></para>
93 </listitem>
94 <listitem>
95 <para>Required patch: <ulink
96 url="&patch-root;/xorg-&xorg-version;-security-4.patch"/></para>
97 </listitem>
98 </itemizedlist>
99
100 <bridgehead renderas="sect3">Xorg Dependencies</bridgehead>
101
102 <bridgehead renderas="sect4">Required</bridgehead>
103 <para role="required"><xref linkend="libpng"/> and
104 <xref linkend="fontconfig"/></para>
105
106 <bridgehead renderas="sect4">Optional</bridgehead>
107 <para role="optional"><xref linkend="linux-pam"/></para>
108
109 <para condition="html" role="usernotes">User Notes:
110 <ulink url='&blfs-wiki;/Xorg'/></para>
111
112 <bridgehead renderas="sect3">Download Instructions</bridgehead>
113
114 <para>As an alternative to downloading the entire source tree in a single
115 file, there are several smaller files that can be fetched from the
116 download location (directory /pub/X11R&xorg-version;/src/):</para>
117
118 <itemizedlist spacing='compact'>
119 <listitem>
120 <para><filename>X11R&xorg-version;-src1.tar.gz</filename></para>
121 </listitem>
122 <listitem>
123 <para><filename>X11R&xorg-version;-src2.tar.gz</filename></para>
124 </listitem>
125 <listitem>
126 <para><filename>X11R&xorg-version;-src3.tar.gz</filename></para>
127 </listitem>
128 <listitem>
129 <para><filename>X11R&xorg-version;-src4.tar.gz</filename></para>
130 </listitem>
131 <listitem>
132 <para><filename>X11R&xorg-version;-src5.tar.gz</filename></para>
133 </listitem>
134 <listitem>
135 <para><filename>X11R&xorg-version;-src6.tar.gz</filename></para>
136 </listitem>
137 <listitem>
138 <para><filename>X11R&xorg-version;-src7.tar.gz</filename></para>
139 </listitem>
140 </itemizedlist>
141
142 <para>The first package contains the <application>Xorg</application>
143 libraries and support programs, the second contains standard
144 <application>X</application> programs, the third contains the
145 <application>X</application> server, the fourth and fifth are fonts,
146 the sixth is normal documentation, and the seventh is hardcopy
147 documentation.</para>
148
149 <para>To check the files for integrity, download the
150 <filename>md5sums</filename> file. Then:</para>
151
152<screen><userinput>md5sum -c md5sums</userinput></screen>
153
154 <para>For each file you downloaded, an
155 <computeroutput>OK</computeroutput> status should be displayed.</para>
156
157 </sect2>
158
159 <sect2 role="kernel" id='xorg-kernel'>
160 <title>Kernel Configuration</title>
161
162 <indexterm zone="xorg xorg-kernel">
163 <primary sortas="d-Xorg">Xorg</primary>
164 </indexterm>
165
166 <para>If you have an Intel P6 (Pentium Pro, Pentium II and later), it is
167 recommended that you compile MTRR (Memory Type Range Registers) support
168 into the kernel. The kernel can map Cyrix and AMD CPUs to the MTRR
169 interface, so selecting this option is useful for those processors also.
170 This option is found in the "Processor type and features" menu. It can
171 increase performance of image write operations 2.5 times or more on PCI or
172 AGP video cards.</para>
173
174 <para>In the "Character Devices" section of the "Device Drivers" menu,
175 enable AGP Support and select the chipset support on your motherboard. If
176 you do not know the chipset, you may select all the chip types at the
177 expense of extra kernel size. You can usually determine your motherboard's
178 chipset by running the command <command>lspci</command>, a program from the
179 <xref linkend="pciutils"/> package.</para>
180
181 <para>In the "Character Devices" section, <emphasis>disable</emphasis>
182 Direct Rendering Manager unless you have a Direct Rendering Infrastructure
183 (DRI) supported video card. A complete list of DRI supported video cards
184 can be found at <ulink url="http://dri.sourceforge.net" /> in the "Status"
185 section. Currently, supported cards include those from 3dfx (Voodoo,
186 Banshee), 3Dlabs, ATI (Rage Pro, Rage 128, Radeon 7X00, Radeon 2), Intel
187 (i810, i815), and Matrox (G200, G400, G450).</para>
188
189 <para>Additionally, NVidia provides their own closed source binary drivers,
190 which do not make use of DRI. If you intend to use these drivers, do not
191 enable DRI.</para>
192
193 <para>If you made any changes to the kernel configuration, recompile and
194 install the new kernel.</para>
195
196 </sect2>
197
198 <sect2 role="installation">
199 <title>Installation of Xorg</title>
200
201 <sect3>
202 <title>Various build fixes</title>
203
204 <para>The <application>Xorg</application> sources must be patched in
205 order to avoid a race condition with the <application>luit</application>
206 program. Additionally, <application>Xorg</application> contains 5
207 <ulink url="http://wiki.x.org/wiki/SecurityPage">security
208 vulnerabilities</ulink>. Fix these issues with the following
209 commands:</para>
210
211<screen><userinput>patch -Np1 -i ../xorg-&xorg-version;-luit_race-1.patch &amp;&amp;
212patch -Np1 -i ../xorg-&xorg-version;-security-4.patch</userinput></screen>
213
214 <para>Additionally, if you choose to install
215 <application>Xorg</application> to any prefix other than
216 <filename class="directory">/usr/X11R6</filename>, the
217 <application>luit</application> package
218 needs another correction to fix a hard coded path. Execute the
219 following command:</para>
220
221<screen><userinput>sed -i 's@/usr/X11R6@<replaceable>&lt;/usr&gt;</replaceable>@' programs/luit/parser.h</userinput></screen>
222
223 </sect3>
224
225 <sect3>
226 <title>Suppressing Xprint-related Modification to '/etc'</title>
227
228 <para><application>Xorg</application> insists on putting
229 its boot and profile scripts into the <filename
230 class="directory">/etc</filename> directory even if specifically told
231 not to compile anything Xprint server or client related (see
232 <filename>host.def</filename> below). The following command will
233 suppress any such modifications:</para>
234
235<screen><userinput>sed -i '/^SUBDIRS =/s/ etc$//' programs/Xserver/Xprint/Imakefile</userinput></screen>
236
237 </sect3>
238
239 <sect3>
240 <title>Setting Up a Shadow Directory</title>
241
242 <para>When building <application>Xorg</application>, you should create
243 a shadow directory of symbolic links for the compiled code. To do that,
244 first make <command>lndir</command>. Starting from the
245 <filename class='directory'>xc</filename> directory:</para>
246
247<screen><userinput>pushd config/util &amp;&amp;
248make -f Makefile.ini lndir
249popd</userinput></screen>
250
251 <para>Now create the shadow tree:</para>
252
253<screen><userinput>mkdir ../xcbuild &amp;&amp;
254cd ../xcbuild &amp;&amp;
255../xc/config/util/lndir ../xc</userinput></screen>
256
257 </sect3>
258
259 <sect3>
260 <title>Creating 'host.def'</title>
261
262 <para>The next step is to create the
263 <filename>config/cf/host.def</filename> file. The documentation for
264 <application>Xorg</application> indicates that the application will
265 build without a <filename>host.def</filename> file, but the included
266 libraries for <application>Fontconfig</application> and
267 <application>FreeType2</application> do not build properly on a base
268 LFS system. Therefore, you must specify that these libraries, as well
269 as others, should be imported from the system.</para>
270
271 <note>
272 <para><filename>config/cf/host.def</filename> is a C file, not a
273 shell script. Ensure the comments delimited by /* ... */ are balanced
274 when modifying the file.</para>
275 </note>
276
277<screen><userinput>cat &gt; config/cf/host.def &lt;&lt; "EOF"
278<literal>/* Begin Xorg host.def file */
279
280/* System Related Information. If you read and configure only one
281 * section then it should be this one. The Intel architecture defaults
282 * are set for a i686 and higher. Axp is for the Alpha architecture
283 * and Ppc is for the Power PC. AMD64 is for the Opteron processor.
284 * Note that there have been reports that the Ppc optimization line
285 * causes segmentation faults during build. If that happens, try
286 * building without the DefaultGcc2PpcOpt line. ***********/
287
288/* #define DefaultGcc2i386Opt -O2 -fno-strength-reduce \
289 -fno-strict-aliasing -march=i686 */
290/* #define DefaultGcc2AMD64Opt -O2 -fno-strength-reduce \
291 -fno-strict-aliasing */
292/* #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 */
293/* #define DefaultGcc2PpcOpt -O2 -mcpu=750 */
294
295#define HasFreetype2 YES
296#define HasFontconfig YES
297#define HasExpat YES
298#define HasLibpng YES
299#define HasZlib YES
300
301/* Uncomment the following define if you'd like
302 * xdm to use Linux-PAM
303#define HasPam YES
304 */
305
306/*
307 * Which drivers to build. When building a static server, each of
308 * these will be included in it. When building the loadable server
309 * each of these modules will be built.
310 *
311#define XF86CardDrivers mga glint nv tga s3virge sis rendition \
312 neomagic i740 tdfx savage \
313 cirrus vmware tseng trident chips apm \
314 GlideDriver fbdev i128 \
315 ati DevelDrivers ark \
316 cyrix siliconmotion vesa vga \
317 XF86OSCardDrivers XF86ExtraCardDrivers
318*/
319
320/*
321 * Select the XInput devices you want by uncommenting this.
322 *
323#define XInputDrivers mouse keyboard acecad calcomp citron \
324 digitaledge dmc dynapro elographics \
325 microtouch mutouch penmount spaceorb \
326 summa wacom void magictouch aiptek
327 */
328
329/* Most installs will only need this */
330
331#define XInputDrivers mouse keyboard
332
333/* Xterm is no longer built by default */
334#define BuildXterm YES
335
336/* Disable building Xprint server and clients until we get them figured
337 * out but build Xprint libraries to allow precompiled binaries such as
338 * Acrobat Reader to run.
339 */
340
341#define XprtServer NO
342#define BuildXprintClients NO
343
344/* Uncomment the following define if you would prefer to install X into
345 * /usr or change it to any other location that you prefer.
346 * The GL related defines disable compatibility symlinks (the links
347 * are not needed when X is installed in /usr).
348#define ProjectRoot /usr
349#define LinkGLToUsrInclude NO
350#define LinkGLToUsrLib NO
351 */
352
353/* End Xorg host.def file */</literal>
354EOF</userinput></screen>
355
356 <para>There are several other options that you may want to consider.
357 A well documented example file is
358 <filename>config/cf/xorgsite.def</filename>.</para>
359
360 </sect3>
361
362 <sect3>
363 <title>Build Commands</title>
364
365 <para>Install <application>Xorg</application> by running the
366 following commands:</para>
367
368<screen><userinput>sed -i -e "s@^#include &lt;linux/config.h&gt;@/* &amp; */@" \
369 `grep -lr linux/config.h *` &amp;&amp;
370( make World 2&gt;&amp;1 | tee xorg-compile.log &amp;&amp; exit $PIPESTATUS )</userinput></screen>
371
372 <para>This package does not come with a test suite.</para>
373
374 <para>Now, as the <systemitem class="username">root</systemitem>
375 user:</para>
376
377<screen role="root"><userinput>make install &amp;&amp;
378make install.man</userinput></screen>
379
380 <para>If you've installed <application>Xorg</application> in the default
381 prefix listed above, run the following commands as the
382 <systemitem class="username">root</systemitem> user:</para>
383
384<screen role="root"><userinput>ln -v -s ../X11R6/bin /usr/bin/X11 &amp;&amp;
385ln -v -s ../X11R6/lib/X11 /usr/lib/X11 &amp;&amp;
386ln -v -s ../X11R6/include/X11 /usr/include/X11</userinput></screen>
387
388 <para>The <application>Xorg</application> fonts have been installed
389 outside of <application>Fontconfig</application>'s default search path
390 of <filename class="directory">/usr/share/fonts</filename>. In order
391 for <application>Fontconfig</application> to find the installed TrueType
392 fonts, you should make symlinks to their directories. Assuming you've
393 installed <application>Xorg</application> in the default prefix, run the
394 following commands as the <systemitem class="username">root</systemitem>
395 user:</para>
396
397<screen role="root"><userinput>install -v -d -m755 /usr/share/fonts &amp;&amp;
398ln -svn /usr/X11R6/lib/X11/fonts/TTF /usr/share/fonts/X11-TTF</userinput></screen>
399
400 <para>You should now continue on to the <xref linkend="x-setup"/> section
401 to complete the configuration of
402 <application>Xorg</application>.</para>
403
404 </sect3>
405
406 </sect2>
407
408 <sect2 role="commands">
409 <title>Command Explanations</title>
410
411 <para><command>sed -i -e "s@^#include &lt;linux/config.h&gt;@...</command>:
412 The <application>Linux-Libc-Headers</application> package installed in
413 LFS installs a <filename>/usr/include/linux/config.h</filename> file
414 which is not compatible with userspace applications. The recommended fix
415 for applications including this file is to remove it (see <ulink
416 url="http://ep09.pld-linux.org/~mmazur/linux-libc-headers/doc/FAQ">
417 linux-libc-headers FAQ</ulink>). The <command>sed</command> uses
418 <command>grep -lr</command> to replace all occurrences. If you desire, just
419 remove (comment) the line in the appropriate video driver file if you
420 customized <filename>host.def</filename>.</para>
421
422 <para><command>( make World 2&gt;&amp;1 | tee xorg-compile.log
423 &amp;&amp; exit $PIPESTATUS )</command>: This command runs multiple
424 <filename>Makefile</filename>s to completely rebuild the system.
425 <parameter>2&gt;&amp;1</parameter> redirects error messages to the
426 same location as standard output. The <command>tee</command> command
427 allows viewing of the output while logging the results to a file. The
428 parentheses around the command runs the entire command in a subshell
429 and finally the <command>exit $PIPESTATUS</command> ensures the result
430 of the <command>make</command> is returned as the result and not the
431 result of the <command>tee</command> command.</para>
432
433 <note>
434 <para>When rebuilding <application>Xorg</application>, a separate
435 command that may be used if only minor changes are made to the sources
436 is <command>make Everything</command>. This does not automatically
437 remove generated files and only rebuilds those files or programs that
438 are out of date.</para>
439 </note>
440
441 <para><command>ln -v -s ...</command>: These commands are present to
442 enable other (broken) packages to build against
443 <application>Xorg</application>, even though the Filesystem Hierarchy
444 Standard says: <quote>In general, software must not be installed or
445 managed via the above symbolic links. They are intended for utilization
446 by users only.</quote></para>
447
448<!-- XFREE86
449 <para>For a list of the package contents, see the sections in the
450 <xref linkend="xfree86-contents"/>.</para>
451XFREE86 -->
452
453 </sect2>
454
455</sect1>
Note: See TracBrowser for help on using the repository browser.