source: x/lib/cairo.xml@ 82b0e62

12.2 gimp3 lazarus trunk xry111/for-12.3 xry111/spidermonkey128
Last change on this file since 82b0e62 was 82b0e62, checked in by Bruce Dubbs <bdubbs@…>, 2 months ago

Make references to gtk2 external.

  • Property mode set to 100644
File size: 9.7 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
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 "https://www.cairographics.org/releases/cairo-&cairo-version;.tar.xz">
8 <!--<!ENTITY cairo-download-http "https://www.cairographics.org/snapshots/cairo-&cairo-version;.tar.xz">
9 <!ENTITY cairo-download-http "&sources-anduin-http;/cairo/cairo-&cairo-version;.tar.xz">-->
10 <!ENTITY cairo-download-ftp " ">
11 <!ENTITY cairo-md5sum "3f0685fbadc530606f965b9645bb51d9">
12 <!ENTITY cairo-size "32 MB">
13 <!ENTITY cairo-buildsize "98 MB">
14 <!ENTITY cairo-time "0.3 SBU (Using parallelism=4)">
15]>
16
17<sect1 id="cairo" xreflabel="Cairo-&cairo-version;">
18 <?dbhtml filename="cairo.html"?>
19
20
21 <title>Cairo-&cairo-version;</title>
22
23 <indexterm zone="cairo">
24 <primary sortas="a-Cairo">Cairo</primary>
25 </indexterm>
26
27 <sect2 role="package">
28 <title>Introduction to Cairo</title>
29
30 <para>
31 <application>Cairo</application> is a 2D graphics library with support for
32 multiple output devices. Currently supported output targets include the
33 <application>X</application> Window System, Win32, image buffers,
34 PostScript, PDF and SVG. Experimental backends include OpenGL, Quartz and
35 XCB file output. <application>Cairo</application> is designed to produce
36 consistent output on all output media while taking advantage of display
37 hardware acceleration when available (e.g., through the X Render
38 Extension). The <application>Cairo</application> API provides operations
39 similar to the drawing operators of PostScript and PDF. Operations in
40 <application>Cairo</application> include stroking and filling cubic
41 B&eacute;zier splines, transforming and compositing translucent images,
42 and antialiased text rendering. All drawing operations can be transformed
43 by any
44 <ulink url="https://en.wikipedia.org/wiki/Affine_transformation">affine
45 transformation</ulink> (scale, rotation, shear, etc.).
46 </para>
47
48 &lfs121_checked;
49
50 <bridgehead renderas="sect3">Package Information</bridgehead>
51 <itemizedlist spacing="compact">
52 <listitem>
53 <para>
54 Download (HTTP): <ulink url="&cairo-download-http;"/>
55 </para>
56 </listitem>
57 <listitem>
58 <para>
59 Download (FTP): <ulink url="&cairo-download-ftp;"/>
60 </para>
61 </listitem>
62 <listitem>
63 <para>
64 Download MD5 sum: &cairo-md5sum;
65 </para>
66 </listitem>
67 <listitem>
68 <para>
69 Download size: &cairo-size;
70 </para>
71 </listitem>
72 <listitem>
73 <para>
74 Estimated disk space required: &cairo-buildsize;
75 </para>
76 </listitem>
77 <listitem>
78 <para>
79 Estimated build time: &cairo-time;
80 </para>
81 </listitem>
82 </itemizedlist>
83
84 <bridgehead renderas="sect3">Cairo Dependencies</bridgehead>
85
86 <bridgehead renderas="sect4">Required</bridgehead>
87 <para role="required">
88 <xref linkend="libpng"/> and
89 <xref linkend="pixman"/>
90 </para>
91
92 <bridgehead renderas="sect4">Recommended</bridgehead>
93 <para role="recommended">
94 <xref linkend="fontconfig"/>,
95 <xref linkend="glib2"/> (required for most GUIs), and
96 <xref linkend="xorg7-lib"/>
97 </para>
98
99 <bridgehead renderas="sect4">Optional</bridgehead>
100 <para role="optional">
101 <!--<xref linkend="cogl"/>,-->
102 <xref linkend="gs"/>,
103 <xref linkend="gtk3"/>,
104 <xref linkend="gtk-doc"/>,
105 <xref linkend="libdrm"/>,
106 <xref linkend="librsvg"/>,
107 <xref linkend="libxml2"/>,
108 <xref linkend="lzo"/>,
109 <xref linkend="mesa"/>,
110 <xref linkend="poppler"/>,
111 <!--&qt5-deps;,-->
112 <xref linkend="valgrind"/>,
113 <!--<ulink url="https://pkgs.fedoraproject.org/repo/pkgs/directfb/">DirectFB</ulink>,-->
114 &gtk2;
115 <ulink url="https://github.com/rillian/jbig2dec/">jbig2dec</ulink>,
116 <ulink url="https://www.freedesktop.org/wiki/Software/libspectre/">libspectre</ulink>, and
117 <ulink url="https://skia.org/">Skia</ulink>
118 <!--<ulink url="https://download.qt.io/archive/qt/4.8/">Qt4</ulink>.-->
119 </para>
120
121 <note>
122 <para>
123 There is a circular dependency between cairo and harfbuzz.
124 If cairo is built before harfbuzz, it is necessary to rebuild cairo
125 after harfbuzz in order to build pango.
126 </para>
127 </note>
128
129 </sect2>
130
131 <sect2 role="installation">
132 <title>Installation of Cairo</title>
133
134 <!-- /usr/include/ansidecl.h says "This file is part of the GNU C
135 Library", but it's actually installed by Binutils. -->
136<!--
137 <para>
138 Adapt this package for Binutils-2.39 or later:
139 </para>
140
141<screen><userinput>sed 's/PTR/void */' -i util/cairo-trace/lookup-symbol.c</userinput></screen>
142
143 <para>
144 Fix a pkg-config file that may cause errors later:
145 </para>
146
147<screen><userinput>sed -e "/@prefix@/a exec_prefix=@exec_prefix@" \
148 -i util/cairo-script/cairo-script-interpreter.pc.in</userinput></screen>
149-->
150
151 <para>
152 Install <application>Cairo</application> by running the following
153 commands:
154 </para>
155
156<screen><userinput>mkdir build &amp;&amp;
157cd build &amp;&amp;
158
159meson setup --prefix=/usr --buildtype=release .. &amp;&amp;
160ninja</userinput></screen>
161
162 <para>
163 This package does not have a working test suite.
164 <!-- The test suite can be run with 'ninja test', but 488 tests fail and
165 59 tests pass. This seems to be due to minute changes in the expected
166 output, similar to librsvg's tests. Since it's a huge chunk of the tests,
167 let's keep it as "broken" for now.-->
168 </para>
169
170 <para>
171 Now, as the <systemitem class="username">root</systemitem> user:
172 </para>
173
174<screen role="root"><userinput>ninja install</userinput></screen>
175 </sect2>
176
177 <sect2 role="commands">
178 <title>Command Explanations</title>
179
180<!-- Enabled by default in 1.18.0 (would be -Dtee=enabled otherwise)
181 <para>
182 <parameter>- -enable-tee</parameter>: This switch enables the
183 experimental tee surface backend which is required if using
184 system-installed <application>Cairo</application> with Mozilla applications.
185 </para>
186-->
187
188 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
189 href="../../xincludes/meson-buildtype-release.xml"/>
190
191 <para>
192 <option>-Dxlib-xcb=enabled</option>: This switch enables several
193 experimental Xlib/XCB functions used by some window managers.
194 </para>
195
196<!-- Removed in 1.18.0
197 <para>
198 <option>- -enable-gl</option>: This switch enables
199 <application>Cairo</application>'s experimental
200 <application>OpenGL</application> surface which
201 is required for <application>Wayland</application>
202 compositor and some other packages that are not
203 part of BLFS.
204 </para>
205-->
206
207 <para>
208 <option>-Dgtk_doc=true</option>: Use this parameter if GTK-Doc is
209 installed and you wish to create and install the documentation.
210 </para>
211
212 </sect2>
213
214 <sect2 role="content">
215 <title>Contents</title>
216
217 <segmentedlist>
218 <segtitle>Installed Programs</segtitle>
219 <segtitle>Installed Libraries</segtitle>
220 <segtitle>Installed Directories</segtitle>
221
222 <seglistitem>
223 <seg>
224 cairo-trace
225 </seg>
226 <seg>
227 libcairo.so,
228 libcairo-gobject.so, and
229 libcairo-script-interpreter.so
230 </seg>
231 <seg>
232 /usr/include/cairo and
233 /usr/lib/cairo
234 </seg>
235 </seglistitem>
236 </segmentedlist>
237
238 <variablelist>
239 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
240 <?dbfo list-presentation="list"?>
241 <?dbhtml list-presentation="table"?>
242
243 <varlistentry id="cairo-trace">
244 <term><command>cairo-trace</command></term>
245 <listitem>
246 <para>
247 generates a log of all calls made by an application to
248 <application>Cairo</application>
249 </para>
250 <indexterm zone="cairo cairo-trace">
251 <primary sortas="b-cairo-trace">cairo-trace</primary>
252 </indexterm>
253 </listitem>
254 </varlistentry>
255
256 <varlistentry id="libcairo">
257 <term><filename class="libraryfile">libcairo.so</filename></term>
258 <listitem>
259 <para>
260 contains the 2D graphics functions required for rendering to the
261 various output targets
262 </para>
263 <indexterm zone="cairo libcairo">
264 <primary sortas="c-libcairo">libcairo.so</primary>
265 </indexterm>
266 </listitem>
267 </varlistentry>
268
269 <varlistentry id="libcairo-gobject">
270 <term><filename class="libraryfile">libcairo-gobject.so</filename></term>
271 <listitem>
272 <para>
273 contains functions that integrate
274 <application>Cairo</application> with
275 <application>Glib</application>'s GObject type system
276 </para>
277 <indexterm zone="cairo libcairo-gobject">
278 <primary sortas="c-libcairo-gobject">libcairo-gobject.so</primary>
279 </indexterm>
280 </listitem>
281 </varlistentry>
282
283 <varlistentry id="libcairo-script-interpreter">
284 <term><filename class="libraryfile">libcairo-script-interpreter.so</filename></term>
285 <listitem>
286 <para>
287 contains the script interpreter functions for executing and
288 manipulating <application>Cairo</application> execution traces
289 </para>
290 <indexterm zone="cairo libcairo-script-interpreter">
291 <primary sortas="c-libcairo-script-interpreter">libcairo-script-interpreter.so</primary>
292 </indexterm>
293 </listitem>
294 </varlistentry>
295
296 </variablelist>
297
298 </sect2>
299
300</sect1>
Note: See TracBrowser for help on using the repository browser.