source: general/genlib/glib2.xml@ 4d7989a

11.0 qt5new trunk xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since 4d7989a was 4d7989a, checked in by Tim Tassonis <stuff@…>, 5 months ago

Upgrade to glib-2.68.1.

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

  • Property mode set to 100644
File size: 16.8 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 glib2-download-http "&gnome-download-http;/glib/&glib2-minor;/glib-&glib2-version;.tar.xz">
8 <!ENTITY glib2-download-ftp "&gnome-download-ftp;/glib/&glib2-minor;/glib-&glib2-version;.tar.xz">
9 <!ENTITY glib2-md5sum "bc9f2250be1f773bb17747d3b2e6a3ae">
10 <!ENTITY glib2-size "4.8 MB">
11 <!ENTITY glib2-buildsize "178 MB (add 5 MB for tests)">
12 <!ENTITY glib2-time "0.5 SBU (add 1.0 SBU for tests; both using parallelism=4)">
13]>
14
15<sect1 id="glib2" xreflabel="GLib-&glib2-version;">
16 <?dbhtml filename="glib2.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>GLib-&glib2-version;</title>
24
25 <indexterm zone="glib2">
26 <primary sortas="a-GLib2">GLib2</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to GLib</title>
31
32 <para>
33 The <application>GLib</application> package contains low-level
34 libraries useful for providing data structure handling for C, portability
35 wrappers and interfaces for such runtime functionality as an
36 event loop, threads, dynamic loading and an object system.
37 </para>
38
39 &lfs101_checked;
40
41 <bridgehead renderas="sect3">Package Information</bridgehead>
42 <itemizedlist spacing="compact">
43 <listitem>
44 <para>
45 Download (HTTP): <ulink url="&glib2-download-http;"/>
46 </para>
47 </listitem>
48 <listitem>
49 <para>
50 Download (FTP): <ulink url="&glib2-download-ftp;"/>
51 </para>
52 </listitem>
53 <listitem>
54 <para>
55 Download MD5 sum: &glib2-md5sum;
56 </para>
57 </listitem>
58 <listitem>
59 <para>
60 Download size: &glib2-size;
61 </para>
62 </listitem>
63 <listitem>
64 <para>
65 Estimated disk space required: &glib2-buildsize;
66 </para>
67 </listitem>
68 <listitem>
69 <para>
70 Estimated build time: &glib2-time;
71 </para>
72 </listitem>
73 </itemizedlist>
74
75 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
76 <itemizedlist spacing="compact">
77 <listitem>
78 <para>
79 Optional patch:
80 <ulink url="&patch-root;/glib-&glib2-version;-skip_warnings-1.patch"/>
81 </para>
82 </listitem>
83 </itemizedlist>
84
85 <bridgehead renderas="sect3">GLib Dependencies</bridgehead>
86
87 <bridgehead renderas="sect4">Recommended</bridgehead>
88 <para role="recommended">
89 <xref linkend="libxslt"/> and
90 <xref linkend="pcre"/> (built with Unicode properties)
91 </para>
92
93 <bridgehead renderas="sect4">Optional</bridgehead>
94 <para role="optional">
95 <xref linkend="dbus"/> and
96 <ulink url="https://bindfs.org/">bindfs</ulink>
97 (both may be used in some tests),
98 <xref linkend="gdb"/> (for bindings),
99 <xref linkend="DocBook"/>,
100 <xref linkend="docbook-xsl"/>,
101 <xref linkend="gtk-doc"/> (to build API documentation),
102 <xref linkend="glib-networking"/> (for some tests, but this is a circular
103 dependency), and
104 <xref linkend="sysprof"/>
105 </para>
106
107 <bridgehead renderas="sect4">Additional Runtime Dependencies</bridgehead>
108 <para role="recommended">
109 <xref role="runtime" linkend="gobject-introspection"/>
110 (should be installed before gtk+, atk, etc.)
111 </para>
112 <para role="optional">
113 Quoted directly from the <filename>INSTALL</filename> file:
114 <quote>Some of the mimetype-related functionality in GIO requires the
115 <command>update-mime-database</command> and
116 <command>update-desktop-database</command> utilities</quote>,
117 which are part of
118 <xref role="runtime" linkend="shared-mime-info"/> and
119 <xref role="runtime" linkend="desktop-file-utils"/>, respectively.
120 These two utilities are also needed for some tests.
121 </para>
122
123 <para condition="html" role="usernotes">User Notes:
124 <ulink url="&blfs-wiki;/glib2"/>
125 </para>
126 </sect2>
127
128 <sect2 role="installation">
129 <title>Installation of GLib</title>
130
131 <para>
132 If desired, apply the optional patch. In many cases, applications that
133 use this library, either directly or indirectly via other libraries such
134 as <xref linkend="gtk3"/>, output numerous warnings when run from the
135 command line. This patch enables the use of an environment variable,
136 <envar>GLIB_LOG_LEVEL</envar>, that supresses unwanted messages. The
137 value of the variable is a digit that corresponds to:
138 </para>
139
140 <simplelist>
141 <member>1 Alert</member>
142 <member>2 Critical</member>
143 <member>3 Error</member>
144 <member>4 Warning</member>
145 <member>5 Notice</member>
146 </simplelist>
147
148 <para>
149 For instance <userinput>export GLIB_LOG_LEVEL=4</userinput> will skip
150 output of Warning and Notice messages (and Info/Debug messages if they
151 are turned on). If <envar>GLIB_LOG_LEVEL</envar> is not defined, normal
152 message output will not be affected.
153 </para>
154
155<screen><userinput>patch -Np1 -i ../glib-&glib2-version;-skip_warnings-1.patch</userinput></screen>
156
157 <warning>
158 <para>
159 If a previous version of glib is installed, move the headers out of the
160 way so that later packages do not encounter conflicts:
161 </para>
162
163<screen role="root"><userinput remap="pre">if [ -e /usr/include/glib-2.0 ]; then
164 rm -rf /usr/include/glib-2.0.old &amp;&amp;
165 mv -vf /usr/include/glib-2.0{,.old}
166fi</userinput></screen>
167
168 </warning>
169
170 <para>
171 Install <application>GLib</application> by running the following
172 commands:
173 </para>
174
175<screen><userinput>mkdir build &amp;&amp;
176cd build &amp;&amp;
177
178meson --prefix=/usr \
179 -Dman=true \
180 -Dselinux=disabled \
181 .. &amp;&amp;
182ninja</userinput></screen>
183
184 <note><para>
185 If <xref linkend="libxslt"/> is installed, the above command may
186 indicate several (about 33) errors that start with "Error: no ID for
187 constraint linkend:" when generating the man pages. These are harmless.
188 </para></note>
189
190 <para>
191 The <application>GLib</application> test suite requires
192 <application>desktop-file-utils</application> for some tests. However,
193 <application>desktop-file-utils</application> requires
194 <application>GLib</application> in order to compile; therefore, you must
195 first install <application>GLib</application> and then run the test
196 suite.
197 </para>
198
199 <para>
200 Now, as the <systemitem class="username">root</systemitem> user:
201 </para>
202
203<screen role="root"><userinput>ninja install &amp;&amp;
204
205mkdir -p /usr/share/doc/glib-&glib2-version; &amp;&amp;
206cp -r ../docs/reference/{NEWS,gio,glib,gobject} /usr/share/doc/glib-&glib2-version;</userinput></screen>
207
208 <para>
209 You should now install <xref linkend="desktop-file-utils"/> and
210 <xref linkend="shared-mime-info"/> and proceed to
211 run the test suite.
212 </para>
213
214 <para>
215 To test the results, after having installed the package, issue:
216 <command>ninja test</command>.
217 <!-- glib issue #1954: -->
218 <!-- One test named gdbus-server-auth sometimes fails.-->
219 <!-- SysV has the symlink now, so gdatetime no longer fails.-->
220 <!-- Needs /etc/localtime to be a symbolic link. In addition
221 the link must be to some place like /usr/share/zoneinfo/...
222
223 This can be overcome if the line below in glib/tests/gdatetime.c
224 is removed or commented out.
225 g_assert_true (*g_time_zone_get_identifier (tz) != '/');
226
227 NOTE: systemd implements this as a hard requirement. -->
228 <!-- with 2.60.4 on systemd, all tests pass. -->
229 <!-- with 2.64.1 on sysV, all tests pass. -->
230 </para>
231
232 <para>
233 Finally, if this is a reinstall from glib2-2.64.x or earlier, remove
234 (as the <systemitem class="username">root</systemitem> user) an
235 obsolete header file that interferes with some packages:
236 </para>
237
238<screen role="root rebuild"><userinput>rm -f /usr/include/glib-2.0/glib/gurifuncs.h</userinput></screen>
239
240 </sect2>
241
242 <sect2 role="commands">
243 <title>Command Explanations</title>
244
245 <para>
246 <parameter>-Dman=true</parameter>: This switch causes the
247 build to create and install the package man pages.
248 </para>
249
250 <para>
251 <parameter>-Dselinux=disabled</parameter>: This switch disables
252 support for selinux which is not supported in BLFS.
253 </para>
254
255 <para>
256 <option>-Dgtk_doc=true</option>: This switch causes the
257 build to create and install the API documentation.
258 </para>
259
260 </sect2>
261
262 <sect2 role="content">
263 <title>Contents</title>
264
265 <segmentedlist>
266 <segtitle>Installed Programs</segtitle>
267 <segtitle>Installed Libraries</segtitle>
268 <segtitle>Installed Directories</segtitle>
269
270 <seglistitem>
271 <seg>
272 gapplication, gdbus, gdbus-codegen,
273 gio, gio-querymodules,
274 glib-compile-resources, glib-compile-schemas,
275 glib-genmarshal, glib-gettextize,
276 glib-mkenums, gobject-query,
277 gresource, gsettings,
278 gtester, and gtester-report
279 </seg>
280 <seg>
281 libgio-2.0.so,
282 libglib-2.0.so,
283 libgmodule-2.0.so,
284 libgobject-2.0.so, and
285 libgthread-2.0.so
286 </seg>
287 <seg>
288 /usr/include/gio-unix-2.0,
289 /usr/include/glib-2.0,
290 /usr/lib/glib-2.0,
291 /usr/share/glib-2.0,
292 /usr/share/doc/glib-&glib2-version;, and
293 /usr/share/gtk-doc/html/{gio,glib,gobject}
294 </seg>
295 </seglistitem>
296 </segmentedlist>
297
298 <variablelist>
299 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
300 <?dbfo list-presentation="list"?>
301 <?dbhtml list-presentation="table"?>
302
303 <varlistentry id="gapplication">
304 <term><command>gapplication</command></term>
305 <listitem>
306 <para>
307 can be used to start applications and to send
308 messages to already-running instances of other applications
309 </para>
310 <indexterm zone="glib2 gapplication">
311 <primary sortas="b-gapplication">application</primary>
312 </indexterm>
313 </listitem>
314 </varlistentry>
315 <varlistentry id="gdbus">
316 <term><command>gdbus</command></term>
317 <listitem>
318 <para>
319 is a simple tool used for working with
320 <application>D-Bus</application> objects
321 </para>
322 <indexterm zone="glib2 gdbus">
323 <primary sortas="b-gdbus">gdbus</primary>
324 </indexterm>
325 </listitem>
326 </varlistentry>
327
328 <varlistentry id="gdbus-codegen">
329 <term><command>gdbus-codegen</command></term>
330 <listitem>
331 <para>
332 is used to generate code and/or documentation for one or
333 more <application>D-Bus</application> interfaces
334 </para>
335 <indexterm zone="glib2 gdbus-codegen">
336 <primary sortas="b-gdbus-codegen">gdbus-codegen</primary>
337 </indexterm>
338 </listitem>
339 </varlistentry>
340
341 <varlistentry id="gio">
342 <term><command>gio</command></term>
343 <listitem>
344 <para>
345 is a utility that makes many <application>GIO</application>
346 features available from the command line
347 </para>
348 <indexterm zone="glib2 gio">
349 <primary sortas="b-gio">gio</primary>
350 </indexterm>
351 </listitem>
352 </varlistentry>
353
354 <varlistentry id="gio-querymodules">
355 <term><command>gio-querymodules</command></term>
356 <listitem>
357 <para>
358 is used to create a <filename>giomodule.cache</filename> file in
359 the listed directories. This file lists the implemented extension
360 points for each module that has been found
361 </para>
362 <indexterm zone="glib2 gio-querymodules">
363 <primary sortas="b-gio-querymodules">gio-querymodules</primary>
364 </indexterm>
365 </listitem>
366 </varlistentry>
367
368 <varlistentry id="glib-compile-resources">
369 <term><command>glib-compile-resources</command></term>
370 <listitem>
371 <para>
372 is used to read the resource description from a file and
373 the files that it references to create a binary resource
374 bundle that is suitable for use with the GResource API
375 </para>
376 <indexterm zone="glib2 glib-compile-resources">
377 <primary sortas="b-glib-compile-resources">glib-compile-resources</primary>
378 </indexterm>
379 </listitem>
380 </varlistentry>
381
382 <varlistentry id="glib-compile-schemas">
383 <term><command>glib-compile-schemas</command></term>
384 <listitem>
385 <para>
386 is used to compile all the GSettings XML schema files
387 in a directory into a binary file with the name
388 <filename>gschemas.compiled</filename> that can be used by GSettings
389 </para>
390 <indexterm zone="glib2 glib-compile-schemas">
391 <primary sortas="b-glib-compile-resources">glib-compile-schemas</primary>
392 </indexterm>
393 </listitem>
394 </varlistentry>
395
396 <varlistentry id="glib-genmarshal">
397 <term><command>glib-genmarshal</command></term>
398 <listitem>
399 <para>
400 is a C code marshaller generation utility for GLib closures
401 </para>
402 <indexterm zone="glib2 glib-genmarshal">
403 <primary sortas="b-glib-genmarshal">glib-genmarshal</primary>
404 </indexterm>
405 </listitem>
406 </varlistentry>
407
408 <varlistentry id="glib-gettextize">
409 <term><command>glib-gettextize</command></term>
410 <listitem>
411 <para>
412 is a variant of the <application>gettext</application>
413 internationalization utility
414 </para>
415 <indexterm zone="glib2 glib-gettextize">
416 <primary sortas="b-glib-gettextize">glib-gettextize</primary>
417 </indexterm>
418 </listitem>
419 </varlistentry>
420
421 <varlistentry id="glib-mkenums">
422 <term><command>glib-mkenums</command></term>
423 <listitem>
424 <para>
425 is a C language enum description generation utility
426 </para>
427 <indexterm zone="glib2 glib-mkenums">
428 <primary sortas="b-glib-mkenums">glib-mkenums</primary>
429 </indexterm>
430 </listitem>
431 </varlistentry>
432
433 <varlistentry id="gobject-query">
434 <term><command>gobject-query</command></term>
435 <listitem>
436 <para>
437 is a small utility that draws a tree of types
438 </para>
439 <indexterm zone="glib2 gobject-query">
440 <primary sortas="b-gobject-query">gobject-query</primary>
441 </indexterm>
442 </listitem>
443 </varlistentry>
444
445 <varlistentry id="gresource">
446 <term><command>gresource</command></term>
447 <listitem>
448 <para>
449 offers a simple command line interface to GResource
450 </para>
451 <indexterm zone="glib2 gresource">
452 <primary sortas="b-gresource">gresource</primary>
453 </indexterm>
454 </listitem>
455 </varlistentry>
456
457 <varlistentry id="gsettings">
458 <term><command>gsettings</command></term>
459 <listitem>
460 <para>
461 offers a simple command line interface to GSettings
462 </para>
463 <indexterm zone="glib2 gsettings">
464 <primary sortas="b-gsettings">gsettings</primary>
465 </indexterm>
466 </listitem>
467 </varlistentry>
468
469 <varlistentry id="gtester">
470 <term><command>gtester</command></term>
471 <listitem>
472 <para>
473 is a test running utility
474 </para>
475 <indexterm zone="glib2 gtester">
476 <primary sortas="b-gtester">gtester</primary>
477 </indexterm>
478 </listitem>
479 </varlistentry>
480
481 <varlistentry id="gtester-report">
482 <term><command>gtester-report</command></term>
483 <listitem>
484 <para>
485 is a test report formatting utility
486 </para>
487 <indexterm zone="glib2 gtester-report">
488 <primary sortas="b-gtester-report">gtester-report</primary>
489 </indexterm>
490 </listitem>
491 </varlistentry>
492
493 <varlistentry id="GLib-libraries">
494 <term>GLib libraries</term>
495 <listitem>
496 <para>
497 contain low-level core libraries for the
498 <application>GIMP</application> Toolkit
499 </para>
500 <indexterm zone="glib2 GLib-libraries">
501 <primary sortas="c-GLib-libraries">Glib libraries</primary>
502 </indexterm>
503 </listitem>
504 </varlistentry>
505
506 </variablelist>
507
508 </sect2>
509
510</sect1>
Note: See TracBrowser for help on using the repository browser.