source: x/installing/xorg7.xml@ 5ce789c

10.0 10.1 11.0 9.1 ken/refactor-virt lazarus qt5new trunk xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 5ce789c was 5ce789c, checked in by DJ Lucas <dj@…>, 2 years ago

Add sudoers configuration for Xorg.

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

  • Property mode set to 100644
File size: 10.5 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
8<sect1 id="xorg7" xreflabel="Xorg-&xorg-version;">
9 <?dbhtml filename="xorg7.html"?>
10
11 <sect1info>
12 <othername>$LastChangedBy$</othername>
13 <date>$Date$</date>
14 </sect1info>
15
16 <title>Introduction to Xorg-&xorg-version;</title>
17
18 <indexterm zone="xorg7">
19 <primary sortas="a-xorg7">Xorg</primary>
20 </indexterm>
21
22
23 <para><application>Xorg</application> is a freely redistributable,
24 open-source implementation of the <application>X</application> Window
25 System. This system provides a client/server interface between display
26 hardware (the mouse, keyboard, and video displays) and the desktop
27 environment, while also providing both the windowing infrastructure and a
28 standardized application interface (API).</para>
29
30 <para condition="html" role="usernotes">User Notes:
31 <ulink url='&blfs-wiki;/Xorg7'/></para>
32
33 <bridgehead renderas="sect3">Xorg Download and Installation
34 Instructions</bridgehead>
35
36 <para>Xorg-7.0 introduced a completely auto-tooled, modular build system.
37 With the new modular build system, it is no longer possible to download
38 the entire package in a single file. In fact, there will be well over 100
39 packages that need to be fetched from the download location. To assist
40 with such a large task, installing <xref linkend="wget"/> is strongly
41 recommended for downloading the needed files. A complete
42 <application>wget</application> file list is provided for each page
43 that includes multiple packages.</para>
44
45 <para>Given the number of packages available, deciding which packages you
46 need to install for your particular setup may seem a bit overwhelming at
47 first. Take a look at
48 <ulink url="http://wiki.x.org/wiki/ModuleDescriptions">this page</ulink>
49 and
50 <ulink url="http://lists.x.org/archives/xorg-modular/2005-November/000801.html">this thread</ulink>
51 to get an idea of what you will need. If you are unsure, you should
52 install all packages at the cost of extra disk space.</para>
53
54 <note>
55 <para>Even if you intend to download only the necessary packages, you
56 should download the wget file lists. The list of files are ordered by
57 dependency, and the package versions listed in the files are known to
58 work well with each other. Further, the wget file lists contain comments
59 for specific packages that are deprecated or are not recommended to
60 install. Newer packages are likely intended for the
61 next release of <application>Xorg</application> and have already proved
62 to be incompatible with current versions of software installed in BLFS.
63 The installed size of <application>Xorg</application> can be reduced
64 considerably by installing only the packages that you will need and use,
65 however, the BLFS book cannot account for all dependencies and build
66 options for the individual <application>Xorg</application> packages.
67 The instructions assume that all packages have been built. A
68 <ulink url="&blfs-wiki;/Xorg7">wiki</ulink>
69 page containing dependency information is under development. You are
70 encouraged to add to these pages if you discover additional information
71 that may be helpful to other users who selectively install individual
72 packages.</para>
73 </note>
74
75 <para>Additionally, because of the large number of repetitive commands,
76 you are encouraged to partially automate the build. Instructions have been
77 given that utilize the <xref linkend="sudo"/> package. It is recommended that
78 you use the <parameter>:NOPASSWD</parameter> configuration option for the
79 user that will be building the xorg packages.</para>
80
81 <sect2 id="xorg-env" xreflabel="Xorg build environment">
82 <title>Setting up the Xorg Build Environment</title>
83
84 <note><para>The following instructions assume that the shell
85 startup files have been set up as described in
86 <xref linkend="postlfs-config-profile" />.
87 </para></note>
88
89 <para>First, you'll need to create a working directory:</para>
90
91<screen><userinput>mkdir xc &amp;&amp;
92cd xc</userinput></screen>
93
94 <para>As with previous releases of the X Window System, it may be
95 desirable to install <application>Xorg</application> into an alternate
96 prefix. This is no longer common practice among Linux distributions.
97 The common installation prefix for <application>Xorg</application> on
98 Linux is <filename class="directory">/usr</filename>. There is no
99 standard alternate prefix, nor is there any exception in the current
100 revision of the Filesystem Hierarchy Standard for Release 7 of the X
101 Window System. Alan Coopersmith of Sun Microsystems, has recently
102 stated "At Sun, we were using
103 <filename class="directory">/usr/X11</filename> and plan to stick with
104 it." Only the <filename class="directory">/opt/*</filename> prefix or
105 the <filename class="directory">/usr</filename> prefix adhere to the
106 current FHS guidelines.</para>
107
108 <para>Choose your installation prefix, and set the
109 <envar>XORG_PREFIX</envar> variable with the following
110 command:</para>
111
112<screen><userinput>export XORG_PREFIX="<replaceable>&lt;PREFIX&gt;</replaceable>"</userinput></screen>
113
114 <para>Throughout these instructions, you will use the following
115 <command>configure</command> switches for all of the packages. Create the
116 <envar>XORG_CONFIG</envar> variable to use for this parameter
117 substitution:</para>
118
119<screen><userinput>export XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc \
120 --localstatedir=/var --disable-static"</userinput></screen>
121
122 <para>Create an <filename>/etc/profile.d/xorg.sh</filename> configuration
123 file containing these variables as the
124 <systemitem class="username">root</systemitem> user:</para>
125
126<screen role="root"><userinput>cat &gt; /etc/profile.d/xorg.sh &lt;&lt; EOF
127<literal>XORG_PREFIX="$XORG_PREFIX"
128XORG_CONFIG="--prefix=\$XORG_PREFIX --sysconfdir=/etc --localstatedir=/var --disable-static"
129export XORG_PREFIX XORG_CONFIG</literal>
130EOF
131chmod 644 /etc/profile.d/xorg.sh</userinput></screen>
132
133 <note><para>There is some confustion about the above 'here' document.
134 The backslash in front of the dollar sign is correct. Bash
135 will remove it when creating /etc/profile.d/xorg.sh. However, if
136 you are creating the file with an editor, a copy and paste operation
137 will not remove the baskslash. It must then be removed manually.
138 </para></note>
139
140 <para>
141 If you've installed <xref linkend="sudo"/>, ensure that
142 <envar>XORG_PREFIX</envar> and <envar>XORG_CONFIG</envar> are available
143 in the <application>sudo</application> environment. As the
144 <systemitem class="username">root</systemitem> user, run the following
145 command:
146 </para>
147
148<screen role="root"><userinput>cat &gt; /etc/sudoers.d/xorg &lt;&lt; EOF
149<literal>Defaults env_keep += XORG_PREFIX
150Defaults env_keep += XORG_CONFIG</literal>
151EOF</userinput></screen>
152
153 <note><para>If you've decided to use the standard <filename
154 class="directory">/usr</filename> prefix, you can omit the remainder of
155 this page and continue at <xref linkend='util-macros'/>.</para></note>
156
157 <para>If you've decided to <emphasis>not</emphasis> use the standard
158 prefix, be sure to add <filename
159 class="directory">$XORG_PREFIX/bin</filename> to your <envar>PATH</envar>
160 environment variable, and <filename class="directory">
161 $XORG_PREFIX/lib/pkgconfig</filename> and <filename class="directory">
162 $XORG_PREFIX/share/pkgconfig</filename> to your
163 <envar>PKG_CONFIG_PATH</envar> variable. It is also helpful to specify
164 additional search paths for <command>gcc</command> and an include directory
165 for the <command>aclocal</command> program. Issue the following commands
166 as the <systemitem class="username">root</systemitem> user:</para>
167
168<screen role="root"><userinput>cat &gt;&gt; /etc/profile.d/xorg.sh &lt;&lt; "EOF"
169<literal>
170pathappend $XORG_PREFIX/bin PATH
171pathappend $XORG_PREFIX/lib/pkgconfig PKG_CONFIG_PATH
172pathappend $XORG_PREFIX/share/pkgconfig PKG_CONFIG_PATH
173
174pathappend $XORG_PREFIX/lib LIBRARY_PATH
175pathappend $XORG_PREFIX/include C_INCLUDE_PATH
176pathappend $XORG_PREFIX/include CPLUS_INCLUDE_PATH
177
178ACLOCAL="aclocal -I $XORG_PREFIX/share/aclocal"
179
180export PATH PKG_CONFIG_PATH ACLOCAL LIBRARY_PATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH</literal>
181EOF</userinput></screen>
182
183 <para>The script above needs to be activated. Normally it will be
184 automatic at login, but to activate it now, as a regular user, run:</para>
185
186<screen><userinput>source /etc/profile.d/xorg.sh</userinput></screen>
187
188 <para>You should also add
189 <filename class="directory"> $XORG_PREFIX/lib</filename> to the
190 <filename>/etc/ld.so.conf</filename> file. Again, as the
191 <systemitem class="username">root</systemitem> user, issue the following
192 command:</para>
193
194<screen role="root"><userinput>echo "$XORG_PREFIX/lib" >> /etc/ld.so.conf</userinput></screen>
195
196 <para>You should also modify
197 <filename>/etc/man_db.conf</filename>, adding appropriate
198 MANDATORY_MANPATH, MANPATH_MAP, and MANDB_MAP entries following the
199 examples for <filename class="directory">/usr/X11R6</filename>. Issue the
200 following command as the <systemitem class="username">root</systemitem>
201 user:</para>
202
203<screen role="root"><userinput>sed "s@<replaceable>/usr/X11R6</replaceable>@$XORG_PREFIX@g" -i /etc/man_db.conf</userinput></screen>
204
205 <para>Some applications look for shared files in <filename
206 class="directory">/usr/share/X11</filename>. Create a symbolic link to the
207 proper location as the <systemitem class="username">root</systemitem>
208 user:</para>
209
210<screen role="root"><userinput>ln -svf $XORG_PREFIX/share/X11 /usr/share/X11</userinput></screen>
211
212 <para>If building KDE, some cmake files look for Xorg in places other than
213 $XORG_PREFIX. Allow cmake to find Xorg with:</para>
214
215<screen role="root"><userinput>ln -svf $XORG_PREFIX /usr/X11R6</userinput></screen>
216<!--
217 <para>Finally, if building on x86_64, you will need to create the
218 <filename class="directory">$XORG_PREFIX/lib</filename> directory and the
219 <filename>$XORG_PREFIX/lib64</filename> symlink. Again, as the
220 <systemitem class="username">root</systemitem> user, issue the following
221 commands:</para>
222
223<screen role="root"><userinput>install -v -m755 -d $XORG_PREFIX &amp;&amp;
224install -v -m755 -d $XORG_PREFIX/lib &amp;&amp;
225ln -sf lib $XORG_PREFIX/lib64</userinput></screen>
226-->
227 </sect2>
228
229</sect1>
Note: See TracBrowser for help on using the repository browser.