glfs/general/genlib/glib2.xml
Andrew Benton 4c77a94985 a bunch of lfs71_checked
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@9604 af4574ff-66df-0310-9fd7-8a98e5e911e0
2012-03-05 15:41:10 +00:00

285 lines
11 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY glib2-download-http "&gnome-download-http;/glib/2.30/glib-&glib2-version;.tar.xz">
<!ENTITY glib2-download-ftp "&gnome-download-ftp;/glib/2.30/glib-&glib2-version;.tar.xz">
<!ENTITY glib2-md5sum "b7dd26aa83de0b59c867a0b9eb9f9462">
<!ENTITY glib2-size "7.4 MB">
<!ENTITY glib2-buildsize "179 MB">
<!ENTITY glib2-time "1.5 SBU (additional 4.0 SBU to run the test suite)">
]>
<sect1 id="glib2" xreflabel="GLib-&glib2-version;">
<?dbhtml filename="glib2.html"?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>GLib-&glib2-version;</title>
<indexterm zone="glib2">
<primary sortas="a-GLib2">GLib2</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to GLib</title>
<para>The <application>GLib</application> package contains a low-level core
library. This is useful for providing data structure handling for C,
portability wrappers and interfaces for such runtime functionality as an
event loop, threads, dynamic loading, and an object system.</para>
&lfs71_checked;
<!-- Compiled against PCRE, Python, and desktop-file-utils.
1 test failed (regex) -->
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>Download (HTTP): <ulink url="&glib2-download-http;"/></para>
</listitem>
<listitem>
<para>Download (FTP): <ulink url="&glib2-download-ftp;"/></para>
</listitem>
<listitem>
<para>Download MD5 sum: &glib2-md5sum;</para>
</listitem>
<listitem>
<para>Download size: &glib2-size;</para>
</listitem>
<listitem>
<para>Estimated disk space required: &glib2-buildsize;</para>
</listitem>
<listitem>
<para>Estimated build time: &glib2-time;</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">GLib Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required"><xref linkend="libffi"/> and <xref linkend="python2"/>
<!--<para role="required"><xref linkend="pkgconfig"/> -->
</para>
<!-- This should be discussed as the instructions in the tarball give
many reasons why the internal PCRE should be used -->
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended"><xref linkend="pcre"/>
(built with unicode properties)</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional"><xref linkend="attr"/>, <!-- <xref linkend="gamin"/>,
--> <xref linkend="dbus"/> (required to run the tests) and
<xref linkend="gtk-doc"/></para>
<!-- Couldn't find this
<para><application>Gamin</application> requires
<application>GLib</application> in order to compile; therefore, you must
first install <application>GLib</application>, then compile
<application>Gamin</application>, and recompile
<application>GLib</application> against it.</para> -->
<bridgehead renderas="sect4">Additional Runtime Dependencies</bridgehead>
<para role="optional">Quoted directly from the <filename>INSTALL</filename>
file; <quote>Some of the mimetype-related functionality in GIO requires the
<command>update-mime-database</command> and
<command>update-desktop-database</command> utilities</quote>, which are part of
<xref linkend="shared-mime-info"/> and
<xref linkend="desktop-file-utils"/>, respectively.</para>
<para condition="html" role="usernotes">User Notes:
<ulink url="&blfs-wiki;/glib2"/></para>
</sect2>
<sect2 role="installation">
<title>Installation of GLib</title>
<para>Install <application>GLib</application> by running the following
commands:</para>
<!-- This should be discussed as the instructions in the tarball give
many reasons why the internal PCRE should be used -->
<screen><userinput>PCRE_LIBS=-lpcre PCRE_CFLAGS=" " \
LIBFFI_LIBS=-lffi LIBFFI_CFLAGS=-I/usr/lib/libffi-3.0.10/include \
./configure --prefix=/usr --sysconfdir=/etc --with-pcre=system &amp;&amp;
make</userinput></screen>
<para>The <application>GLib</application> test suite requires
<application>desktop-file-utils</application> in order to run. However,
<application>desktop-file-utils</application> requires
<application>GLib</application> in order to compile; therefore, you must
first install <application>GLib</application> and then run the test
suite.</para>
<para>Now, as the <systemitem class="username">root</systemitem> user:</para>
<screen role="root"><userinput>make install &amp;&amp;
ln -v -sfn ../../lib/glib-2.0/include/glibconfig.h /usr/include/glib-2.0/glibconfig.h</userinput></screen>
<para>You should now install <xref linkend="desktop-file-utils"/> and proceed to
run the test suite.</para>
<para>To test the results, issue: <command>make check</command>.</para>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>PCRE_* and LIBFFI_*: <application>Glib</application> is a prerequsite
for <application>pkg_config</application>, but it wants to use
<application>pkg_config</application> during the build process. These
environment variables work around not having
<application>pkg_config</application> available.</para>
<para><command>ln -v -sfn ... glibconfig.h</command>: Place a link to an
architecture dependent header file where programs can find it.</para>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="../../xincludes/gtk-doc-rebuild.xml"/>
<!-- This should be discussed as the instructions in the tarball give
many reasons why the internal PCRE should be used -->
<para><parameter>--with-pcre=system</parameter>: This parameter causes the
build to use a system-provided version of the
<application>PCRE</application> library instead of an internal
version.</para>
</sect2>
<sect2 role="configuration">
<title>Configuring GLib</title>
<sect3>
<title>Configuration Information</title>
<para>By default, <application>GLib</application> assumes that all
filenames are in the UTF-8 charset. See the <xref
linkend="locale-wrong-filename-encoding"/> section of the <xref
linkend="locale-issues"/> page for more details on this kind of
issue. In order to tell <application>GLib</application> and
applications that use it that filenames are in the default locale
encoding, set the variable <envar>G_FILENAME_ENCODING</envar> to the
value "@locale":</para>
<screen><userinput>cat &gt; /etc/profile.d/glib2-locale.sh &lt;&lt; "EOF"
<literal># Use the current locale charset for filenames
# in applications using GLib
export G_FILENAME_ENCODING=@locale</literal>
EOF</userinput></screen>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>gio-querymodules, glib-genmarshal, glib-gettextize, glib-mkenums,
gobject-query, gtester and gtester-report</seg>
<seg>libgio-2.0.so, libglib-2.0.so, libgmodule-2.0.so,
libgobject-2.0.so, and libgthread-2.0.so</seg>
<seg>/usr/{include/{gio-unix-2.0/gio,glib-2.0/{gio,glib,gobject}},
lib/{gio/modules,glib-2.0/include},share/{gdb/auto-load,glib-2.0/{gdb,
gettext/po},gtk-doc/html/{gio,glib,gobject}}}</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="glib-genmarshal">
<term><command>glib-genmarshal</command></term>
<listitem>
<para>is a C code marshaller generation utility for GLib
closures.</para>
<indexterm zone="glib2 glib-genmarshal">
<primary sortas="b-glib-genmarshal">glib-genmarshal</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="glib-gettextize">
<term><command>glib-gettextize</command></term>
<listitem>
<para>is a variant of the <application>gettext</application>
internationalization utility.</para>
<indexterm zone="glib2 glib-gettextize">
<primary sortas="b-glib-gettextize">glib-gettextize</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="glib-mkenums">
<term><command>glib-mkenums</command></term>
<listitem>
<para>is a C language enum description generation utility.</para>
<indexterm zone="glib2 glib-mkenums">
<primary sortas="b-glib-mkenums">glib-mkenums</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gobject-query">
<term><command>gobject-query</command></term>
<listitem>
<para>is a small utility that draws a tree of types.</para>
<indexterm zone="glib2 gobject-query">
<primary sortas="b-gobject-query">gobject-query</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtester">
<term><command>gtester</command></term>
<listitem>
<para>is a test running utility.</para>
<indexterm zone="glib2 gtester">
<primary sortas="b-gtester">gtester</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gtester-report">
<term><command>gtester-report</command></term>
<listitem>
<para>is a test report formatting utility.</para>
<indexterm zone="glib2 gtester-report">
<primary sortas="b-gtester-report">gtester-report</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="GLib-libraries">
<term>GLib libraries</term>
<listitem>
<para>contain a low-level core library for the
<application>GIMP</application> Toolkit.</para>
<indexterm zone="glib2 GLib-libraries">
<primary sortas="c-GLib-libraries">Glib libraries</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>