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.