Introduction to GLib
The GLib package contains
low-level libraries 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.
This package is known to build and work properly using an LFS-9.0
platform.
Package Information
Additional Downloads
GLib Dependencies
Recommended
libxslt-1.1.33 and PCRE-8.43 (built with Unicode
properties)
Optional
dbus-1.12.16 and bindfs (both may be used in some tests),
GDB-8.3 (for
bindings), docbook-xml-4.5, docbook-xsl-1.79.2, and GTK-Doc-1.32
(to build API documentation)
Additional Runtime Dependencies
gobject-introspection-1.60.2
(should be installed before gtk+, atk, etc.)
Quoted directly from the INSTALL
file: “Some of the mimetype-related
functionality in GIO requires the update-mime-database and
update-desktop-database
utilities”, which are part of shared-mime-info-1.12 and desktop-file-utils-0.24,
respectively. These two utilities are also needed for some tests.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/glib2
Installation of GLib
If desired, apply the optional patch. In many cases, applications
that use this library, either directly or indirectly via other
libraries such as GTK+-3.24.10, output numerous warnings when run
from the command line. This patch enables the use of an environment
variable, GLIB_LOG_LEVEL, that supresses unwanted messages. The
value of the variable is a digit that corresponds to:
1 Alert
|
2 Critical
|
3 Error
|
4 Warning
|
5 Notice
|
For instance GLIB_LOG_LEVEL=4 will skip output of Warning and
Notice messages (and Info/Debug messages if they are turned on). If
GLIB_LOG_LEVEL is not defined, normal message output will not be
affected.
patch -Np1 -i ../glib-2.60.6-skip_warnings-1.patch
Warning
If upgrading from a previous version of GLib that was built using
autotools, and the libtool
archives (.la files) were installed, you will need to adjust all
installed libtool archives, /usr/lib/libg{io,lib,module,object,thread}-2.0.la
,
to replace references to the libtool archives for this package
with the appropriate linker library flag (-l), -lg{io,lib,module,object,thread}.
600+ files must be modified on a complete gnome desktop.
Alternatively, you can just remove the unneeded .la files with
the script at Libtool archive (.la)
files.
Install GLib by running the
following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
-Dman=true \
-Dselinux=disabled \
.. &&
ninja
The GLib test suite requires
desktop-file-utils for some tests.
However, desktop-file-utils
requires GLib in order to compile;
therefore, you must first install GLib and then run the test suite.
Now, as the root
user:
Note
If libxslt-1.1.33 is installed, the following
command may indicate several (about 33) errors that start with
"Error: no ID for constraint linkend:" when installing the man
pages. These are harmless.
ninja install &&
mkdir -p /usr/share/doc/glib-2.60.6 &&
cp -r ../docs/reference/{NEWS,gio,glib,gobject} /usr/share/doc/glib-2.60.6
You should now install desktop-file-utils-0.24 and shared-mime-info-1.12 and proceed to
run the test suite.
To test the results, after having installed the package, issue:
ninja test. One test,
gdatetime, is known to fail on sysvinit systems.
Command Explanations
-Dman=true
: This switch
causes the build to create and install the package man pages.
-Dselinux=false
: This
switch disables support for selinux which is not supported in BLFS.
-Ddoc=true
: This switch
causes the build to create and install the API documentation.