source: x/lib/cairo.xml@ d9cf59b

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 d9cf59b was d9cf59b, checked in by Andrew Benton <andy@…>, 12 years ago

Added a warning about running the Cairo tests

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@9982 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 <!ENTITY cairo-download-http
8 "http://cairographics.org/releases/cairo-&cairo-version;.tar.gz">
9 <!ENTITY cairo-download-ftp " ">
10 <!ENTITY cairo-md5sum "e6c85575ba7094f88b637bdfd835a751">
11 <!ENTITY cairo-size "61 MB">
12 <!ENTITY cairo-buildsize "170 MB (up to an additional 454 MB to run the test suite)">
13 <!ENTITY cairo-time "0.8 SBU (up to an additional 2 SBU to run the test suite)">
14]>
15
16<sect1 id="cairo" xreflabel="cairo-&cairo-version;">
17 <?dbhtml filename="cairo.html"?>
18
19 <sect1info>
20 <othername>$LastChangedBy$</othername>
21 <date>$Date$</date>
22 </sect1info>
23
24 <title>cairo-&cairo-version;</title>
25
26 <indexterm zone="cairo">
27 <primary sortas="a-cairo">cairo</primary>
28 </indexterm>
29
30 <sect2 role="package">
31 <title>Introduction to cairo</title>
32
33 <para>
34 <application>Cairo</application> is a 2D graphics library with support for
35 multiple output devices. Currently supported output targets include the
36 <application>X</application> Window System, win32, image buffers,
37 PostScript, PDF and SVG. Experimental backends include OpenGL, Quartz and
38 XCB file output. cairo is designed to produce consistent output on all
39 output media while taking advantage of display hardware acceleration when
40 available (e.g., through the X Render Extension). The
41 <application>Cairo</application> API provides operations similar to the
42 drawing operators of PostScript and PDF. Operations in
43 <application>Cairo</application> include stroking and filling cubic
44 B&eacute;zier splines, transforming and compositing translucent images,
45 and antialiased text rendering. All drawing operations can be transformed
46 by any
47 <ulink url="http://en.wikipedia.org/wiki/Affine_transformation">affine
48 transformation</ulink> (scale, rotation, shear, etc.).
49 </para>
50
51 &lfs71_checked;
52
53 <bridgehead renderas="sect3">Package Information</bridgehead>
54 <itemizedlist spacing="compact">
55 <listitem>
56 <para>
57 Download (HTTP): <ulink url="&cairo-download-http;"/>
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Download (FTP): <ulink url="&cairo-download-ftp;"/>
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Download MD5 sum: &cairo-md5sum;
68 </para>
69 </listitem>
70 <listitem>
71 <para>
72 Download size: &cairo-size;
73 </para>
74 </listitem>
75 <listitem>
76 <para>
77 Estimated disk space required: &cairo-buildsize;
78 </para>
79 </listitem>
80 <listitem>
81 <para>
82 Estimated build time: &cairo-time;
83 </para>
84 </listitem>
85 </itemizedlist>
86
87 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
88 <itemizedlist spacing="compact">
89 <listitem>
90 <para>
91 Required patch:
92 <ulink url="&patch-root;/cairo-&cairo-version;-expose-snapshot-1.patch"/>
93 </para>
94 </listitem>
95 </itemizedlist>
96
97 <bridgehead renderas="sect3">cairo Dependencies</bridgehead>
98
99 <!-- Cairo is here only because GTK+ and friends, so I'll make Xorg Libraries
100 a dependency here -->
101 <bridgehead renderas="sect4">Required</bridgehead>
102 <para role="required">
103 <xref linkend="fontconfig"/>,
104 <xref linkend="libpng"/>,
105 <xref linkend="pixman"/>,
106 <xref linkend="pkgconfig"/> and
107 <xref linkend="xorg7-lib"/>
108 </para>
109
110 <bridgehead renderas="sect4">Optional</bridgehead>
111 <para role="optional">
112 <xref linkend="cogl"/>,
113 <ulink url="http://www.directfb.org/">DirectFB</ulink>,
114 <xref linkend="gs"/> (for testing the postscript backend),
115 <xref linkend="gtk2"/> (for testing the PDF backend),
116 <xref linkend="gtk-doc"/>,
117 <xref linkend="libdrm"/>,
118 <xref linkend="librsvg"/> (for testing the SVG backend),
119 <ulink url="http://libspectre.freedesktop.org">libspectre</ulink> (for
120 testing the PDF backend),
121 <xref linkend="mesalib"/>,
122 <xref linkend="poppler"/> (for testing the PDF backend),
123 <xref linkend="qt4"/>,
124 <ulink url="http://code.google.com/p/skia/">Skia</ulink> and
125 <ulink url="http://www.valgrind.org">Valgrind</ulink>.
126 </para>
127
128 <note>
129 <para>
130 There is a reciprocal dependency with cairo and libdrm. Best practice is
131 to install cairo without the OpenGL backend, and return to re-install
132 cairo after the full Xorg installation has been completed. Also note
133 that the GTK, Poppler and librsvg packages are also reciprocal. As the
134 test suite is currently unreliable, it is best to simply skip it at this
135 time.
136 </para>
137 </note>
138
139 <para condition="html" role="usernotes">
140 User Notes: <ulink url="&blfs-wiki;/cairo"/>
141 </para>
142 </sect2>
143
144 <sect2 role="installation">
145 <title>Installation of cairo</title>
146
147 <para>
148 Install <application>Cairo</application> by running the following
149 commands:
150 </para>
151
152<screen><userinput>sed -i 's#check-plt.sh ##' src/Makefile.in &amp;&amp;
153patch -p1 &lt; ../cairo-&cairo-version;-expose-snapshot-1.patch &amp;&amp;
154./configure --prefix=/usr \
155 --disable-static --enable-tee --enable-xcb &amp;&amp;
156make</userinput></screen>
157
158 <para>
159 Note that the tests take a long time to run, many of them fail for unknown
160 reasons and it has been known to cause a kernel panic. <!-- I suspect that
161 the panic was due to a bug in the xf86-video-ati driver but I can't be
162 sure as the system locked up hard. cairo-1.12.0 has exposed bugs in other
163 parts of Xorg https://bugs.freedesktop.org/show_bug.cgi?id=47266 Andy
164 2012-04-22 --> If you want to run the tests issue:
165 <command>make -k check</command>.
166 </para>
167
168 <para>
169 Now, as the <systemitem class="username">root</systemitem> user:
170 </para>
171
172<screen role="root"><userinput>make install</userinput></screen>
173 </sect2>
174
175 <sect2 role="commands">
176 <title>Command Explanations</title>
177
178 <para>
179 <command>sed -i 's#check-plt.sh ##' src/Makefile.in</command>: This sed
180 disables running a test which is known to fail with the expose-snapshot
181 patch.
182 </para>
183
184 <para>
185 <command>patch -p1 &lt;
186 ../cairo-&cairo-version;-expose-snapshot-1.patch</command>: This patch
187 exposes some private functions that <application>Firefox</application>
188 relies on. Applying this patch allows <application>Firefox</application>
189 to use the system installed <application>Cairo</application>.
190 </para>
191
192 <para>
193 <option>--enable-tee</option>: This is used by
194 <application>Firefox</application>. If you don't enable the Cairo's tee
195 surface backend you won't be able to build
196 <application>Firefox</application> with
197 <option>--enable-system-cairo</option>.
198 </para>
199
200 <para>
201 <option>--enable-gl</option>: Enable <application>Cairo</application>'s
202 OpenGL backend.
203 </para>
204
205 <para>
206 <option>--enable-xcb</option>: Enable <application>Cairo</application>'s
207 libxcb backend.
208 </para>
209
210 <para>
211 <option>--enable-vg</option>: Enable the <application>Cairo</application>
212 <ulink url="http://en.wikipedia.org/wiki/OpenVG">OpenVG</ulink> backend
213 (requires <xref linkend="mesalib"/> installed, configured with
214 --enable-gallium-egl and --enable-openvg).
215 </para>
216
217 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
218 href="../../xincludes/static-libraries.xml"/>
219
220 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
221 href="../../xincludes/gtk-doc-rebuild.xml"/>
222 </sect2>
223
224 <sect2 role="content">
225 <title>Contents</title>
226
227 <segmentedlist>
228 <segtitle>Installed Programs</segtitle>
229 <segtitle>Installed Libraries</segtitle>
230 <segtitle>Installed Directories</segtitle>
231
232 <seglistitem>
233 <seg>
234 cairo-sphinx and cairo-trace
235 </seg>
236 <seg>
237 libcairo.{so,a}, libcairo-gobject.{so,a} and
238 libcairo-script-interpreter.{so,a}
239 </seg>
240 <seg>
241 /usr/include/cairo, /usr/lib/cairo and
242 /usr/share/gtk-doc/html/cairo
243 </seg>
244 </seglistitem>
245 </segmentedlist>
246
247 <variablelist>
248 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
249 <?dbfo list-presentation="list"?>
250 <?dbhtml list-presentation="table"?>
251
252 <varlistentry id="cairo-trace">
253 <term><command>cairo-trace</command></term>
254 <listitem>
255 <para>
256 generates a log of all calls made by an application to
257 <application>Cairo</application>.
258 </para>
259 <indexterm zone="cairo cairo-trace">
260 <primary sortas="b-cairo-trace">cairo-trace</primary>
261 </indexterm>
262 </listitem>
263 </varlistentry>
264
265 <varlistentry id="libcairo">
266 <term><filename class='libraryfile'>libcairo.{so,a}</filename></term>
267 <listitem>
268 <para>
269 contains the 2D graphics functions required for rendering to the
270 various output targets.
271 </para>
272 <indexterm zone="cairo libcairo">
273 <primary sortas="c-libcairo">libcairo.{so,a}</primary>
274 </indexterm>
275 </listitem>
276 </varlistentry>
277
278 <varlistentry id="libcairo-gobject">
279 <term><filename class='libraryfile'>libcairo-gobject.{so,a}</filename></term>
280 <listitem>
281 <para>
282 contains functions that integrate
283 <application>Cairo</application> with <xref linkend="glib2"/>'s
284 GObject type system.
285 </para>
286 <indexterm zone="cairo libcairo-gobject">
287 <primary sortas="c-libcairo-gobject">libcairo-gobject.{so,a}</primary>
288 </indexterm>
289 </listitem>
290 </varlistentry>
291
292 <varlistentry id="libcairo-script-interpreter">
293 <term><filename class='libraryfile'>libcairo-script-interpreter.{so,a}</filename></term>
294 <listitem>
295 <para>
296 contains the script interpreter functions for executing and
297 manipulating <application>Cairo</application> execution traces.
298 </para>
299 <indexterm zone="cairo libcairo-script-interpreter">
300 <primary sortas="c-libcairo-script-interpreter">libcairo-script-interpreter.{so,a}</primary>
301 </indexterm>
302 </listitem>
303 </varlistentry>
304 </variablelist>
305 </sect2>
306</sect1>
Note: See TracBrowser for help on using the repository browser.