source: x/lib/cairo.xml@ 68d01360

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

Commented out Cairo on the libdrm page,
it seems that libdrm doesn't use Cairo (yet).

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

  • Property mode set to 100644
File size: 10.5 KB
RevLine 
[bb41bc7]1<?xml version="1.0" encoding="ISO-8859-1"?>
[6732c094]2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
[bb41bc7]4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
[521cea0]7 <!ENTITY cairo-download-http
[178e985]8 "http://cairographics.org/releases/cairo-&cairo-version;.tar.xz">
[97ccf511]9 <!ENTITY cairo-download-ftp " ">
[178e985]10 <!ENTITY cairo-md5sum "87649eb75789739d517c743e94879e51">
11 <!ENTITY cairo-size "41 MB">
12 <!ENTITY cairo-buildsize "178 MB">
13 <!ENTITY cairo-time "1.1 SBU">
[bb41bc7]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">
[4db1ba6]31 <title>Introduction to Cairo</title>
[bb41bc7]32
[521cea0]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
[68d01360]38 XCB file output. <application>Cairo</application> is designed to produce
39 consistent output on all output media while taking advantage of display
40 hardware acceleration when available (e.g., through the X Render
41 Extension). The <application>Cairo</application> API provides operations
42 similar to the drawing operators of PostScript and PDF. Operations in
[521cea0]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>
[bb41bc7]50
[4c77a949]51 &lfs71_checked;
[3af39b1]52
[bb41bc7]53 <bridgehead renderas="sect3">Package Information</bridgehead>
54 <itemizedlist spacing="compact">
55 <listitem>
[521cea0]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>
[bb41bc7]64 </listitem>
65 <listitem>
[521cea0]66 <para>
67 Download MD5 sum: &cairo-md5sum;
68 </para>
[bb41bc7]69 </listitem>
70 <listitem>
[521cea0]71 <para>
72 Download size: &cairo-size;
73 </para>
[bb41bc7]74 </listitem>
75 <listitem>
[521cea0]76 <para>
77 Estimated disk space required: &cairo-buildsize;
78 </para>
[bb41bc7]79 </listitem>
80 <listitem>
[521cea0]81 <para>
82 Estimated build time: &cairo-time;
83 </para>
[bb41bc7]84 </listitem>
[521cea0]85 </itemizedlist>
86
87 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
88 <itemizedlist spacing="compact">
[bb41bc7]89 <listitem>
[521cea0]90 <para>
[4db1ba6]91 Required patch (if you intend to compile any Mozilla products):
[521cea0]92 <ulink url="&patch-root;/cairo-&cairo-version;-expose-snapshot-1.patch"/>
93 </para>
[bb41bc7]94 </listitem>
95 </itemizedlist>
96
[4db1ba6]97 <bridgehead renderas="sect3">Cairo Dependencies</bridgehead>
[bb41bc7]98
99 <bridgehead renderas="sect4">Required</bridgehead>
[b8a081c]100 <para role="required">
101 <xref linkend="pixman"/>,
102 <xref linkend="pkgconfig"/> and
[4db1ba6]103 </para>
104
105 <bridgehead renderas="sect4">Recommended</bridgehead>
106 <para role="recommended">
107 <xref linkend="fontconfig"/>,
108 <xref linkend="libpng"/> (if you want to build
109 <application>Cairo</application> without <application>Libpng</application>
110 you will need to add --disable-png --disable-svg to the configure options
111 and remove --enable-tee) and
112 <xref linkend="xorg7-lib"/>.
[b8a081c]113 </para>
[bc9c1def]114
[bb41bc7]115 <bridgehead renderas="sect4">Optional</bridgehead>
[b8a081c]116 <para role="optional">
117 <xref linkend="cogl"/>,
118 <ulink url="http://www.directfb.org/">DirectFB</ulink>,
[d9cf59b]119 <xref linkend="gs"/> (for testing the postscript backend),
120 <xref linkend="gtk2"/> (for testing the PDF backend),
[b8a081c]121 <xref linkend="gtk-doc"/>,
[521cea0]122 <xref linkend="libdrm"/>,
[d9cf59b]123 <xref linkend="librsvg"/> (for testing the SVG backend),
124 <ulink url="http://libspectre.freedesktop.org">libspectre</ulink> (for
125 testing the PDF backend),
[b8a081c]126 <xref linkend="mesalib"/>,
[d9cf59b]127 <xref linkend="poppler"/> (for testing the PDF backend),
[b8a081c]128 <xref linkend="qt4"/>,
129 <ulink url="http://code.google.com/p/skia/">Skia</ulink> and
[d9cf59b]130 <ulink url="http://www.valgrind.org">Valgrind</ulink>.
[b8a081c]131 </para>
[6e08fa52]132
[521cea0]133 <note>
134 <para>
[4db1ba6]135 There is a reciprocal dependency with the
136 <application>Gtk 2</application>, <application>Librsvg</application> and
137 <application>Poppler</application> packages. As the test suite is
138 currently unreliable, it is best to simply skip it at this time.
[521cea0]139 </para>
140 </note>
141
142 <para condition="html" role="usernotes">
143 User Notes: <ulink url="&blfs-wiki;/cairo"/>
144 </para>
[bb41bc7]145 </sect2>
146
147 <sect2 role="installation">
[4db1ba6]148 <title>Installation of Cairo</title>
[bb41bc7]149
[521cea0]150 <para>
151 Install <application>Cairo</application> by running the following
152 commands:
153 </para>
[bb41bc7]154
[afb079c]155<screen><userinput>sed -i 's#check-plt.sh ##' src/Makefile.in &amp;&amp;
156patch -p1 &lt; ../cairo-&cairo-version;-expose-snapshot-1.patch &amp;&amp;
[9fadf58]157./configure --prefix=/usr --disable-static --enable-tee --enable-xcb &amp;&amp;
[bb41bc7]158make</userinput></screen>
159
[521cea0]160 <para>
[d9cf59b]161 Note that the tests take a long time to run, many of them fail for unknown
162 reasons and it has been known to cause a kernel panic. <!-- I suspect that
163 the panic was due to a bug in the xf86-video-ati driver but I can't be
164 sure as the system locked up hard. cairo-1.12.0 has exposed bugs in other
165 parts of Xorg https://bugs.freedesktop.org/show_bug.cgi?id=47266 Andy
166 2012-04-22 --> If you want to run the tests issue:
167 <command>make -k check</command>.
[521cea0]168 </para>
[bb41bc7]169
[521cea0]170 <para>
171 Now, as the <systemitem class="username">root</systemitem> user:
172 </para>
[bb41bc7]173
174<screen role="root"><userinput>make install</userinput></screen>
175 </sect2>
176
[15a4fb4c]177 <sect2 role="commands">
178 <title>Command Explanations</title>
179
[afb079c]180 <para>
181 <command>sed -i 's#check-plt.sh ##' src/Makefile.in</command>: This sed
182 disables running a test which is known to fail with the expose-snapshot
183 patch.
184 </para>
185
[521cea0]186 <para>
187 <command>patch -p1 &lt;
188 ../cairo-&cairo-version;-expose-snapshot-1.patch</command>: This patch
189 exposes some private functions that <application>Firefox</application>
190 relies on. Applying this patch allows <application>Firefox</application>
191 to use the system installed <application>Cairo</application>.
192 </para>
[bc9c1def]193
[521cea0]194 <para>
195 <option>--enable-tee</option>: This is used by
196 <application>Firefox</application>. If you don't enable the Cairo's tee
197 surface backend you won't be able to build
198 <application>Firefox</application> with
199 <option>--enable-system-cairo</option>.
200 </para>
[827336dc]201
[521cea0]202 <para>
203 <option>--enable-gl</option>: Enable <application>Cairo</application>'s
204 OpenGL backend.
205 </para>
[827336dc]206
[521cea0]207 <para>
208 <option>--enable-xcb</option>: Enable <application>Cairo</application>'s
209 libxcb backend.
[97ccf511]210 </para>
[827336dc]211
[521cea0]212 <para>
213 <option>--enable-vg</option>: Enable the <application>Cairo</application>
214 <ulink url="http://en.wikipedia.org/wiki/OpenVG">OpenVG</ulink> backend
215 (requires <xref linkend="mesalib"/> installed, configured with
216 --enable-gallium-egl and --enable-openvg).
217 </para>
[bc9c1def]218
[521cea0]219 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
220 href="../../xincludes/static-libraries.xml"/>
[97ccf511]221
[521cea0]222 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
223 href="../../xincludes/gtk-doc-rebuild.xml"/>
[15a4fb4c]224 </sect2>
225
[bb41bc7]226 <sect2 role="content">
227 <title>Contents</title>
228
229 <segmentedlist>
230 <segtitle>Installed Programs</segtitle>
[742b99e]231 <segtitle>Installed Libraries</segtitle>
[bb41bc7]232 <segtitle>Installed Directories</segtitle>
233
234 <seglistitem>
[b8a081c]235 <seg>
236 cairo-sphinx and cairo-trace
237 </seg>
238 <seg>
[4db1ba6]239 libcairo.so, libcairo-gobject.so and
240 libcairo-script-interpreter.so
[b8a081c]241 </seg>
242 <seg>
243 /usr/include/cairo, /usr/lib/cairo and
244 /usr/share/gtk-doc/html/cairo
245 </seg>
[bb41bc7]246 </seglistitem>
247 </segmentedlist>
248
249 <variablelist>
250 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
251 <?dbfo list-presentation="list"?>
252 <?dbhtml list-presentation="table"?>
253
[827336dc]254 <varlistentry id="cairo-trace">
255 <term><command>cairo-trace</command></term>
256 <listitem>
[521cea0]257 <para>
258 generates a log of all calls made by an application to
259 <application>Cairo</application>.
260 </para>
[827336dc]261 <indexterm zone="cairo cairo-trace">
262 <primary sortas="b-cairo-trace">cairo-trace</primary>
263 </indexterm>
264 </listitem>
265 </varlistentry>
266
[bb41bc7]267 <varlistentry id="libcairo">
[4db1ba6]268 <term><filename class='libraryfile'>libcairo.so</filename></term>
[bb41bc7]269 <listitem>
[521cea0]270 <para>
271 contains the 2D graphics functions required for rendering to the
272 various output targets.
273 </para>
[bb41bc7]274 <indexterm zone="cairo libcairo">
[4db1ba6]275 <primary sortas="c-libcairo">libcairo.so</primary>
[bb41bc7]276 </indexterm>
277 </listitem>
278 </varlistentry>
279
[827336dc]280 <varlistentry id="libcairo-gobject">
[4db1ba6]281 <term><filename class='libraryfile'>libcairo-gobject.so</filename></term>
[827336dc]282 <listitem>
[521cea0]283 <para>
284 contains functions that integrate
285 <application>Cairo</application> with <xref linkend="glib2"/>'s
286 GObject type system.
287 </para>
[827336dc]288 <indexterm zone="cairo libcairo-gobject">
[4db1ba6]289 <primary sortas="c-libcairo-gobject">libcairo-gobject.so</primary>
[827336dc]290 </indexterm>
291 </listitem>
292 </varlistentry>
293
294 <varlistentry id="libcairo-script-interpreter">
[4db1ba6]295 <term><filename class='libraryfile'>libcairo-script-interpreter.so</filename></term>
[827336dc]296 <listitem>
[521cea0]297 <para>
298 contains the script interpreter functions for executing and
299 manipulating <application>Cairo</application> execution traces.
300 </para>
[827336dc]301 <indexterm zone="cairo libcairo-script-interpreter">
[4db1ba6]302 <primary sortas="c-libcairo-script-interpreter">libcairo-script-interpreter.so</primary>
[827336dc]303 </indexterm>
304 </listitem>
305 </varlistentry>
[bb41bc7]306 </variablelist>
307 </sect2>
308</sect1>
Note: See TracBrowser for help on using the repository browser.