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-8.2
platform.
Package Information
Additional Downloads
GLib Dependencies
Recommended
PCRE-8.41
(built with Unicode properties)
Optional
dbus-1.12.4 (required for some tests), docbook-xml-4.5, docbook-xsl-1.79.2, and libxslt-1.1.32 (to
build manual pages)
Additional Runtime Dependencies
gobject-introspection-1.54.1
(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.9 and desktop-file-utils-0.23,
respectively.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/glib2
Installation of GLib
If desired, appy the optional patch. In many cases, applications
that use this library, either directly or indirectly via other
libraries such as GTK+-3.22.28, 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.54.3-skip_warnings-1.patch
Warning
If upgrading from a previous version of GLib that was built using
autotools, and the libtool
archives were installed, you will need to adjust all installed
libtool archives to replace references to the libtool archives
for this package, /usr/lib/libg{io,lib,module,object,thread}-2.0.la
,
with the appropriate linker library flag (-l), -lg{io,lib,module,object,thread}.
600+ files must be modified on a complete gnome desktop.
Install GLib by running the
following commands:
patch -Np1 -i ../glib-2.54.3-meson_fixes-1.patch &&
mkdir build-glib &&
cd build-glib &&
meson --prefix=/usr -Dwith-pcre=system -Dwith-docs=no .. &&
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.32 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 &&
chmod -v 755 /usr/bin/{gdbus-codegen,glib-gettextize} &&
mkdir -p /usr/share/doc/glib-2.54.3 &&
cp -r ../docs/reference/{NEWS,README,gio,glib,gobject} /usr/share/doc/glib-2.54.3
You should now install desktop-file-utils-0.23 and proceed
to run the test suite.
To test the results, after having installed the package, issue:
ninja test. When run
in a graphical environment, one test, appinfo, fails if gnome-terminal-3.26.2 is not installed.
Command Explanations
sed ... meson.build:
Fix the version of the package to be consistent with other version
numbers embedded in the code.
-Dwith-pcre=system
: This
switch causes the build to use a system-provided version of the
PCRE library instead of an
internal version.
-Dwith-docs=no
: This switch
prevents rebuilding the package documentation.