source: x/lib/cairo.xml@ 9fadf58

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

sed for cairo to fix a problem with Libre Office

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

  • Property mode set to 100644
File size: 10.9 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;
153sed -i 's# &gt; 0 # &gt;= 0 #g;s#X;#X);#;s#rn w#rn (w#' src/cairo-xlib-surface.c &amp;&amp;
154patch -p1 &lt; ../cairo-&cairo-version;-expose-snapshot-1.patch &amp;&amp;
155./configure --prefix=/usr --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>sed -i 's# &gt; 0 # &gt;= 0 #g;s#X;#X);#;s#rn w#rn (w#'
186 src/cairo-xlib-surface.c</command>: This sed fixes a problem which would
187 otherwise make <application>Libre Office Impress</application> unable to
188 show presentations.
189 <!-- https://bugs.freedesktop.org/show_bug.cgi?id=49118 -->
190 </para>
191
192 <para>
193 <command>patch -p1 &lt;
194 ../cairo-&cairo-version;-expose-snapshot-1.patch</command>: This patch
195 exposes some private functions that <application>Firefox</application>
196 relies on. Applying this patch allows <application>Firefox</application>
197 to use the system installed <application>Cairo</application>.
198 </para>
199
200 <para>
201 <option>--enable-tee</option>: This is used by
202 <application>Firefox</application>. If you don't enable the Cairo's tee
203 surface backend you won't be able to build
204 <application>Firefox</application> with
205 <option>--enable-system-cairo</option>.
206 </para>
207
208 <para>
209 <option>--enable-gl</option>: Enable <application>Cairo</application>'s
210 OpenGL backend.
211 </para>
212
213 <para>
214 <option>--enable-xcb</option>: Enable <application>Cairo</application>'s
215 libxcb backend.
216 </para>
217
218 <para>
219 <option>--enable-vg</option>: Enable the <application>Cairo</application>
220 <ulink url="http://en.wikipedia.org/wiki/OpenVG">OpenVG</ulink> backend
221 (requires <xref linkend="mesalib"/> installed, configured with
222 --enable-gallium-egl and --enable-openvg).
223 </para>
224
225 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
226 href="../../xincludes/static-libraries.xml"/>
227
228 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
229 href="../../xincludes/gtk-doc-rebuild.xml"/>
230 </sect2>
231
232 <sect2 role="content">
233 <title>Contents</title>
234
235 <segmentedlist>
236 <segtitle>Installed Programs</segtitle>
237 <segtitle>Installed Libraries</segtitle>
238 <segtitle>Installed Directories</segtitle>
239
240 <seglistitem>
241 <seg>
242 cairo-sphinx and cairo-trace
243 </seg>
244 <seg>
245 libcairo.{so,a}, libcairo-gobject.{so,a} and
246 libcairo-script-interpreter.{so,a}
247 </seg>
248 <seg>
249 /usr/include/cairo, /usr/lib/cairo and
250 /usr/share/gtk-doc/html/cairo
251 </seg>
252 </seglistitem>
253 </segmentedlist>
254
255 <variablelist>
256 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
257 <?dbfo list-presentation="list"?>
258 <?dbhtml list-presentation="table"?>
259
260 <varlistentry id="cairo-trace">
261 <term><command>cairo-trace</command></term>
262 <listitem>
263 <para>
264 generates a log of all calls made by an application to
265 <application>Cairo</application>.
266 </para>
267 <indexterm zone="cairo cairo-trace">
268 <primary sortas="b-cairo-trace">cairo-trace</primary>
269 </indexterm>
270 </listitem>
271 </varlistentry>
272
273 <varlistentry id="libcairo">
274 <term><filename class='libraryfile'>libcairo.{so,a}</filename></term>
275 <listitem>
276 <para>
277 contains the 2D graphics functions required for rendering to the
278 various output targets.
279 </para>
280 <indexterm zone="cairo libcairo">
281 <primary sortas="c-libcairo">libcairo.{so,a}</primary>
282 </indexterm>
283 </listitem>
284 </varlistentry>
285
286 <varlistentry id="libcairo-gobject">
287 <term><filename class='libraryfile'>libcairo-gobject.{so,a}</filename></term>
288 <listitem>
289 <para>
290 contains functions that integrate
291 <application>Cairo</application> with <xref linkend="glib2"/>'s
292 GObject type system.
293 </para>
294 <indexterm zone="cairo libcairo-gobject">
295 <primary sortas="c-libcairo-gobject">libcairo-gobject.{so,a}</primary>
296 </indexterm>
297 </listitem>
298 </varlistentry>
299
300 <varlistentry id="libcairo-script-interpreter">
301 <term><filename class='libraryfile'>libcairo-script-interpreter.{so,a}</filename></term>
302 <listitem>
303 <para>
304 contains the script interpreter functions for executing and
305 manipulating <application>Cairo</application> execution traces.
306 </para>
307 <indexterm zone="cairo libcairo-script-interpreter">
308 <primary sortas="c-libcairo-script-interpreter">libcairo-script-interpreter.{so,a}</primary>
309 </indexterm>
310 </listitem>
311 </varlistentry>
312 </variablelist>
313 </sect2>
314</sect1>
Note: See TracBrowser for help on using the repository browser.