source: x/installing/xorg7.xml@ 8e29d97

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 12.2 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 8e29d97 was 8e29d97, checked in by Bruce Dubbs <bdubbs@…>, 11 years ago

Add some useful gcc environment variables for Xorg

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

  • Property mode set to 100644
File size: 9.7 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 <!--
82 <para>The commands below
83 (or similar) can be entered at the command line to compile each
84 section (proto, util, lib, app, driver). The wiki links on each
85 section's page contain specific commands to compile the entire group of
86 packages, based on the content of the wget files.</para>
87
88<screen>bash -e #exit on all errors
89section=<replaceable>&lt;proto&gt;</replaceable>
90version=&xorg-version;
91mkdir $section
92cd $section
93
94# download and check packages
95grep -v '^#' ../${section}-${version}.wget | wget -i- -c \
96 -B http://xorg.freedesktop.org/releases/individual/${section}/
97md5sum -c ../${section}-${version}.md5
98
99# build packages
100for package in $(grep -v '^#' ../${section}-${version}.wget)
101do
102 packagedir=$(echo $package | sed 's/.tar.bz2//')
103 tar -xf $package
104 cd $packagedir
105 ./configure $XORG_CONFIG
106 make
107 make install
108 cd ..
109 rm -rf $packagedir
110done 2&gt;&amp;1 | tee -a ../xorg-${section}-compile.log #log the entire loop</screen>
111
112 <para>The above shell will exit immediately on error. If it runs to
113 completion, you should manually exit the shell before continuing on to
114 the next set of instructions.</para>
115-->
116
117 <sect2>
118 <title>Setting up the Xorg Build Environment</title>
119
120 <para>First, you'll need to create a working directory:</para>
121
122<screen><userinput>mkdir xc &amp;&amp;
123cd xc</userinput></screen>
124
125 <para>As with previous releases of the X Window System, it may be
126 desirable to install <application>Xorg</application> into an alternate
127 prefix. This is no longer common practice among Linux distributions.
128 The common installation prefix for <application>Xorg</application> on
129 Linux is <filename class="directory">/usr</filename>. There is no
130 standard alternate prefix, nor is there any exception in the current
131 revision of the Filesystem Hierarchy Standard for Release 7 of the X
132 Window System. Alan Coopersmith of Sun Microsystems, has recently
133 stated "At Sun, we were using
134 <filename class="directory">/usr/X11</filename> and plan to stick with
135 it." Only the <filename class="directory">/opt/*</filename> prefix or
136 the <filename class="directory">/usr</filename> prefix adhere to the
137 current FHS guidelines.</para>
138
139 <para>Choose your installation prefix, and set the
140 <envar>XORG_PREFIX</envar> variable with the following
141 command:</para>
142
143<screen><userinput>export XORG_PREFIX="<replaceable>&lt;PREFIX&gt;</replaceable>"</userinput></screen>
144
145 <para>Throughout these instructions, you will use the following
146 <command>configure</command> switches for all of the packages. Create the
147 <envar>XORG_CONFIG</envar> variable to use for this parameter
148 substitution:</para>
149
150<screen><userinput>export XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc \
151 --localstatedir=/var --disable-static"</userinput></screen>
152
153 <para>Create an <filename>/etc/profile.d/xorg.sh</filename> configuration
154 file containing these variables as the
155 <systemitem class="username">root</systemitem> user:</para>
156
157<screen><userinput role="root">cat &gt; /etc/profile.d/xorg.sh &lt;&lt; "EOF"
158XORG_PREFIX="<replaceable>&lt;PREFIX&gt;</replaceable>"
159XORG_CONFIG="--prefix=$XORG_PREFIX \
160 --sysconfdir=/etc \
161 --localstatedir=/var \
162 --disable-static"
163export XORG_PREFIX XORG_CONFIG
164EOF
165chmod 644 /etc/profile.d/xorg.sh</userinput></screen>
166
167 <para>If you've decided to use the standard <filename
168 class="directory">/usr</filename> prefix, you can omit the remainder of
169 this page. Otherwise, be sure to add <filename
170 class="directory">$XORG_PREFIX/bin</filename> to your <envar>PATH</envar>
171 environment variable, and <filename class="directory">
172 $XORG_PREFIX/lib/pkgconfig</filename> and <filename class="directory">
173 $XORG_PREFIX/share/pkgconfig</filename> to your
174 <envar>PKG_CONFIG_PATH</envar> variable. It is also helpful to specify
175 additional search paths for <command>gcc</command> and an include directory
176 for the <command>aclocal</command> program. Issue the following commands
177 as the <systemitem class="username">root</systemitem> user:</para>
178
179<screen><userinput role="root">cat &gt;&gt; /etc/profile.d/xorg.sh &lt;&lt; "EOF"
180
181pathappend $XORG_PREFIX/bin PATH
182pathappend $XORG_PREFIX/lib/pkgconfig PKG_CONFIG_PATH
183pathappend $XORG_PREFIX/share/pkgconfig PKG_CONFIG_PATH
184
185pathappend $XORG_PREFIX/lib LIBRARY_PATH
186pathappend $XORG_PREFIX/include C_INCLUDE_PATH
187pathappend $XORG_PREFIX/include CPLUS_INCLUDE_PATH
188
189ACLOCAL='aclocal -I $XORG_PREFIX/share/aclocal'
190
191export PATH PKG_CONFIG_PATH ACLOCAL LIBRARY_PATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH
192EOF</userinput></screen>
193
194 <para>You should also add
195 <filename class="directory"> $XORG_PREFIX/lib</filename> to the
196 <filename>/etc/ld.so.conf</filename> file. Again, as the
197 <systemitem class="username">root</systemitem> user, issue the following
198 command:</para>
199
200<screen><userinput role="root">echo "${XORG_PREFIX}/lib" >> /etc/ld.so.conf</userinput></screen>
201
202 <para>You should also modify
203 <filename>/etc/man_db.conf</filename>, adding appropriate
204 MANDATORY_MANPATH, MANPATH_MAP, and MANDB_MAP entries following the
205 examples for <filename class="directory">/usr/X11R6</filename>. Issue the
206 following command as the <systemitem class="username">root</systemitem>
207 user:</para>
208
209<screen><userinput role="root">sed 's@/usr/X11R6@<replaceable>&lt;PREFIX&gt;</replaceable>@g' -i /etc/man_db.conf</userinput></screen>
210
211 <para>Finally, if building on x86_64, you will need to create the
212 <filename class="directory">$XORG_PREFIX/lib</filename> directory and the
213 <filename>$XORG_PREFIX/lib64</filename> symlink. Again, as the
214 <systemitem class="username">root</systemitem> user, issue the following
215 commands:</para>
216
217<screen><userinput role="root">install -v -m755 -d $XORG_PREFIX &amp;&amp;
218install -v -m755 -d $XORG_PREFIX/lib &amp;&amp;
219ln -s lib $XORG_PREFIX/lib64</userinput></screen>
220
221 </sect2>
222
223</sect1>
Note: See TracBrowser for help on using the repository browser.