source: x/lib/cairo.xml@ 178e985

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

cairo-1.12.2

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

  • Property mode set to 100644
File size: 10.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 cairo-download-http
8 "http://cairographics.org/releases/cairo-&cairo-version;.tar.xz">
9 <!ENTITY cairo-download-ftp " ">
10 <!ENTITY cairo-md5sum "87649eb75789739d517c743e94879e51">
11 <!ENTITY cairo-size "41 MB">
12 <!ENTITY cairo-buildsize "178 MB">
13 <!ENTITY cairo-time "1.1 SBU">
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 --disable-static --enable-tee --enable-xcb &amp;&amp;
155make</userinput></screen>
156
157 <para>
158 Note that the tests take a long time to run, many of them fail for unknown
159 reasons and it has been known to cause a kernel panic. <!-- I suspect that
160 the panic was due to a bug in the xf86-video-ati driver but I can't be
161 sure as the system locked up hard. cairo-1.12.0 has exposed bugs in other
162 parts of Xorg https://bugs.freedesktop.org/show_bug.cgi?id=47266 Andy
163 2012-04-22 --> If you want to run the tests issue:
164 <command>make -k check</command>.
165 </para>
166
167 <para>
168 Now, as the <systemitem class="username">root</systemitem> user:
169 </para>
170
171<screen role="root"><userinput>make install</userinput></screen>
172 </sect2>
173
174 <sect2 role="commands">
175 <title>Command Explanations</title>
176
177 <para>
178 <command>sed -i 's#check-plt.sh ##' src/Makefile.in</command>: This sed
179 disables running a test which is known to fail with the expose-snapshot
180 patch.
181 </para>
182
183 <para>
184 <command>patch -p1 &lt;
185 ../cairo-&cairo-version;-expose-snapshot-1.patch</command>: This patch
186 exposes some private functions that <application>Firefox</application>
187 relies on. Applying this patch allows <application>Firefox</application>
188 to use the system installed <application>Cairo</application>.
189 </para>
190
191 <para>
192 <option>--enable-tee</option>: This is used by
193 <application>Firefox</application>. If you don't enable the Cairo's tee
194 surface backend you won't be able to build
195 <application>Firefox</application> with
196 <option>--enable-system-cairo</option>.
197 </para>
198
199 <para>
200 <option>--enable-gl</option>: Enable <application>Cairo</application>'s
201 OpenGL backend.
202 </para>
203
204 <para>
205 <option>--enable-xcb</option>: Enable <application>Cairo</application>'s
206 libxcb backend.
207 </para>
208
209 <para>
210 <option>--enable-vg</option>: Enable the <application>Cairo</application>
211 <ulink url="http://en.wikipedia.org/wiki/OpenVG">OpenVG</ulink> backend
212 (requires <xref linkend="mesalib"/> installed, configured with
213 --enable-gallium-egl and --enable-openvg).
214 </para>
215
216 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
217 href="../../xincludes/static-libraries.xml"/>
218
219 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
220 href="../../xincludes/gtk-doc-rebuild.xml"/>
221 </sect2>
222
223 <sect2 role="content">
224 <title>Contents</title>
225
226 <segmentedlist>
227 <segtitle>Installed Programs</segtitle>
228 <segtitle>Installed Libraries</segtitle>
229 <segtitle>Installed Directories</segtitle>
230
231 <seglistitem>
232 <seg>
233 cairo-sphinx and cairo-trace
234 </seg>
235 <seg>
236 libcairo.{so,a}, libcairo-gobject.{so,a} and
237 libcairo-script-interpreter.{so,a}
238 </seg>
239 <seg>
240 /usr/include/cairo, /usr/lib/cairo and
241 /usr/share/gtk-doc/html/cairo
242 </seg>
243 </seglistitem>
244 </segmentedlist>
245
246 <variablelist>
247 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
248 <?dbfo list-presentation="list"?>
249 <?dbhtml list-presentation="table"?>
250
251 <varlistentry id="cairo-trace">
252 <term><command>cairo-trace</command></term>
253 <listitem>
254 <para>
255 generates a log of all calls made by an application to
256 <application>Cairo</application>.
257 </para>
258 <indexterm zone="cairo cairo-trace">
259 <primary sortas="b-cairo-trace">cairo-trace</primary>
260 </indexterm>
261 </listitem>
262 </varlistentry>
263
264 <varlistentry id="libcairo">
265 <term><filename class='libraryfile'>libcairo.{so,a}</filename></term>
266 <listitem>
267 <para>
268 contains the 2D graphics functions required for rendering to the
269 various output targets.
270 </para>
271 <indexterm zone="cairo libcairo">
272 <primary sortas="c-libcairo">libcairo.{so,a}</primary>
273 </indexterm>
274 </listitem>
275 </varlistentry>
276
277 <varlistentry id="libcairo-gobject">
278 <term><filename class='libraryfile'>libcairo-gobject.{so,a}</filename></term>
279 <listitem>
280 <para>
281 contains functions that integrate
282 <application>Cairo</application> with <xref linkend="glib2"/>'s
283 GObject type system.
284 </para>
285 <indexterm zone="cairo libcairo-gobject">
286 <primary sortas="c-libcairo-gobject">libcairo-gobject.{so,a}</primary>
287 </indexterm>
288 </listitem>
289 </varlistentry>
290
291 <varlistentry id="libcairo-script-interpreter">
292 <term><filename class='libraryfile'>libcairo-script-interpreter.{so,a}</filename></term>
293 <listitem>
294 <para>
295 contains the script interpreter functions for executing and
296 manipulating <application>Cairo</application> execution traces.
297 </para>
298 <indexterm zone="cairo libcairo-script-interpreter">
299 <primary sortas="c-libcairo-script-interpreter">libcairo-script-interpreter.{so,a}</primary>
300 </indexterm>
301 </listitem>
302 </varlistentry>
303 </variablelist>
304 </sect2>
305</sect1>
Note: See TracBrowser for help on using the repository browser.