GLib-2.62.4

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.1 platform.

Package Information

Additional Downloads

GLib Dependencies

Recommended

Optional

dbus-1.12.16 and bindfs (both may be used in some tests), GDB-9.1 (for bindings), docbook-xml-4.5, docbook-xsl-1.79.2, and GTK-Doc-1.32 (to build API documentation)

Additional Runtime Dependencies

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.15 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.13, 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.62.4-skip_warnings-1.patch
[Warning]

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.

Apply a security patch to fix a proxy bypass vulnerability:

patch -Np1 -i ../glib-2.62.4-cve_2020_6750_fix-1.patch

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]

Note

If libxslt-1.1.34 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.62.4 &&
cp -r ../docs/reference/{NEWS,gio,glib,gobject} /usr/share/doc/glib-2.62.4

You should now install desktop-file-utils-0.24 and shared-mime-info-1.15 and proceed to run the test suite.

To test the results, after having installed the package, issue: ninja test.

Command Explanations

-Dman=true: This switch causes the build to create and install the package man pages.

-Dselinux=disabled: 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.

Contents

Installed Programs: gapplication, gdbus, gdbus-codegen, gio, gio-launch-desktop, gio-querymodules, glib-compile-resources, glib-compile-schemas, glib-genmarshal, glib-gettextize, glib-mkenums, gobject-query, gresource, gsettings, gtester, and gtester-report
Installed Libraries: libgio-2.0.so, libglib-2.0.so, libgmodule-2.0.so, libgobject-2.0.so, and libgthread-2.0.so
Installed Directories: /usr/include/gio-unix-2.0, /usr/include/glib-2.0, /usr/lib/glib-2.0, /usr/share/glib-2.0, and /usr/share/gtk-doc/html/{gio,glib,gobject}

Short Descriptions

gapplication

can be used to start applications and to send messages to already-running instances of other applications.

gdbus

is a simple tool used for working with D-Bus objects.

gdbus-codegen

is used to generate code and/or documentation for one or more D-Bus interfaces.

gio

is a utility that makes many GIO features available from the command line.

gio-querymodules

is used to create a giomodule.cache file in the listed directories. This file lists the implemented extension points for each module that has been found.

glib-compile-resources

is used to read the resource description from a file and the files that it references to create a binary resource bundle that is suitable for use with the GResource API.

glib-compile-schemas

is used to compile all the GSettings XML schema files in a directory into a binary file with the name gschemas.compiled that can be used by GSettings.

glib-genmarshal

is a C code marshaller generation utility for GLib closures.

glib-gettextize

is a variant of the gettext internationalization utility.

glib-mkenums

is a C language enum description generation utility.

gobject-query

is a small utility that draws a tree of types.

gresource

offers a simple command line interface to GResource.

gsettings

offers a simple command line interface to GSettings.

gtester

is a test running utility.

gtester-report

is a test report formatting utility.

GLib libraries

contain low-level core libraries for the GIMP Toolkit.

Last updated on 2020-02-15 20:23:35 -0800