source: x/installing/xorg.xml@ 352944e

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 12.2 6.2 6.2.0 6.2.0-rc1 6.2.0-rc2 6.3 6.3-rc1 6.3-rc2 6.3-rc3 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 gimp3 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/for-12.3 xry111/intltool xry111/llvm18 xry111/soup3 xry111/spidermonkey128 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 352944e was 9f12e36, checked in by Randy McMurchy <randy@…>, 18 years ago

Removed 'keywordset' blocks and extra spaces from the XML files (note this was by accident as I meant to do just in the gnome directory but I was in the root of BOOK when I ran the script, but this was going to happen anyway so I don't think it is a big deal)

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

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