source: x/lib/cairo.xml@ 521cea0

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

patch cairo to expose some private functions that Firefox needs

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

  • Property mode set to 100644
File size: 10.1 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="gtk-doc"/>,
115 <xref linkend="libdrm"/>,
116 <xref linkend="mesalib"/>,
117 <xref linkend="qt4"/>,
118 <ulink url="http://code.google.com/p/skia/">Skia</ulink> and
119 <ulink url="http://www.valgrind.org">Valgrind</ulink>
120 </para>
121
122 <bridgehead renderas="sect4">Optional (to provide extended test suite
123 coverage)</bridgehead>
124 <para role="optional">
125 <xref linkend="gs"/> (for testing the postscript backend),
126 <xref linkend="gtk2"/> (for testing the PDF backend),
127 <xref linkend="librsvg"/> (for testing the SVG backend),
128 <ulink url="http://libspectre.freedesktop.org">libspectre</ulink> (for
129 testing the PDF backend) and
130 <xref linkend="poppler"/> (for testing the PDF backend).
131 </para>
132
133 <note>
134 <para>
135 There is a reciprocal dependency with cairo and libdrm. Best practice is
136 to install cairo without the OpenGL backend, and return to re-install
137 cairo after the full Xorg installation has been completed. Also note
138 that the GTK, Poppler and librsvg packages are also reciprocal. As the
139 test suite is currently unreliable, it is best to simply skip it at this
140 time.
141 </para>
142 </note>
143
144 <para condition="html" role="usernotes">
145 User Notes: <ulink url="&blfs-wiki;/cairo"/>
146 </para>
147 </sect2>
148
149 <sect2 role="installation">
150 <title>Installation of cairo</title>
151
152 <para>
153 Install <application>Cairo</application> by running the following
154 commands:
155 </para>
156
157<screen><userinput>patch -p1 &lt; ../cairo-&cairo-version;-expose-snapshot-1.patch &amp;&amp;
158./configure --prefix=/usr \
159 --disable-static --enable-tee --enable-xcb &amp;&amp;
160make</userinput></screen>
161
162 <para>
163 To test the results, issue: <command>make -k check</command>.
164 </para>
165
166 <para>
167 Note that the tests take a long time to run and many of them fail for
168 unknown reasons.
169 </para>
170
171 <para>
172 Now, as the <systemitem class="username">root</systemitem> user:
173 </para>
174
175<screen role="root"><userinput>make install</userinput></screen>
176 </sect2>
177
178 <sect2 role="commands">
179 <title>Command Explanations</title>
180
181 <para>
182 <command>patch -p1 &lt;
183 ../cairo-&cairo-version;-expose-snapshot-1.patch</command>: This patch
184 exposes some private functions that <application>Firefox</application>
185 relies on. Applying this patch allows <application>Firefox</application>
186 to use the system installed <application>Cairo</application>.
187 </para>
188
189 <para>
190 <option>--enable-tee</option>: This is used by
191 <application>Firefox</application>. If you don't enable the Cairo's tee
192 surface backend you won't be able to build
193 <application>Firefox</application> with
194 <option>--enable-system-cairo</option>.
195 </para>
196
197 <para>
198 <option>--enable-gl</option>: Enable <application>Cairo</application>'s
199 OpenGL backend.
200 </para>
201
202 <para>
203 <option>--enable-xcb</option>: Enable <application>Cairo</application>'s
204 libxcb backend.
205 </para>
206
207 <para>
208 <option>--enable-vg</option>: Enable the <application>Cairo</application>
209 <ulink url="http://en.wikipedia.org/wiki/OpenVG">OpenVG</ulink> backend
210 (requires <xref linkend="mesalib"/> installed, configured with
211 --enable-gallium-egl and --enable-openvg).
212 </para>
213
214 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
215 href="../../xincludes/static-libraries.xml"/>
216
217 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
218 href="../../xincludes/gtk-doc-rebuild.xml"/>
219 </sect2>
220
221 <sect2 role="content">
222 <title>Contents</title>
223
224 <segmentedlist>
225 <segtitle>Installed Programs</segtitle>
226 <segtitle>Installed Libraries</segtitle>
227 <segtitle>Installed Directories</segtitle>
228
229 <seglistitem>
230 <seg>
231 cairo-sphinx and cairo-trace
232 </seg>
233 <seg>
234 libcairo.{so,a}, libcairo-gobject.{so,a} and
235 libcairo-script-interpreter.{so,a}
236 </seg>
237 <seg>
238 /usr/include/cairo, /usr/lib/cairo and
239 /usr/share/gtk-doc/html/cairo
240 </seg>
241 </seglistitem>
242 </segmentedlist>
243
244 <variablelist>
245 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
246 <?dbfo list-presentation="list"?>
247 <?dbhtml list-presentation="table"?>
248
249 <varlistentry id="cairo-trace">
250 <term><command>cairo-trace</command></term>
251 <listitem>
252 <para>
253 generates a log of all calls made by an application to
254 <application>Cairo</application>.
255 </para>
256 <indexterm zone="cairo cairo-trace">
257 <primary sortas="b-cairo-trace">cairo-trace</primary>
258 </indexterm>
259 </listitem>
260 </varlistentry>
261
262 <varlistentry id="libcairo">
263 <term><filename class='libraryfile'>libcairo.{so,a}</filename></term>
264 <listitem>
265 <para>
266 contains the 2D graphics functions required for rendering to the
267 various output targets.
268 </para>
269 <indexterm zone="cairo libcairo">
270 <primary sortas="c-libcairo">libcairo.{so,a}</primary>
271 </indexterm>
272 </listitem>
273 </varlistentry>
274
275 <varlistentry id="libcairo-gobject">
276 <term><filename class='libraryfile'>libcairo-gobject.{so,a}</filename></term>
277 <listitem>
278 <para>
279 contains functions that integrate
280 <application>Cairo</application> with <xref linkend="glib2"/>'s
281 GObject type system.
282 </para>
283 <indexterm zone="cairo libcairo-gobject">
284 <primary sortas="c-libcairo-gobject">libcairo-gobject.{so,a}</primary>
285 </indexterm>
286 </listitem>
287 </varlistentry>
288
289 <varlistentry id="libcairo-script-interpreter">
290 <term><filename class='libraryfile'>libcairo-script-interpreter.{so,a}</filename></term>
291 <listitem>
292 <para>
293 contains the script interpreter functions for executing and
294 manipulating <application>Cairo</application> execution traces.
295 </para>
296 <indexterm zone="cairo libcairo-script-interpreter">
297 <primary sortas="c-libcairo-script-interpreter">libcairo-script-interpreter.{so,a}</primary>
298 </indexterm>
299 </listitem>
300 </varlistentry>
301 </variablelist>
302 </sect2>
303</sect1>
Note: See TracBrowser for help on using the repository browser.