Skip to the content.

33. GNOME Libraries and Desktop


The objective of this section is to build a GNOME desktop.

Libraries

33.1 Gcr-3.41.1


Introduction to Gcr

The Gcr package contains libraries used for displaying certificates and accessing key stores. It also provides the viewer for crypto files on the GNOME Desktop.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Gcr Dependencies

Required

GLib-2.74.5, libgcrypt-1.10.1, and p11-kit-0.24.1

GnuPG-2.4.0, gobject-introspection-1.74.0, GTK+-3.24.36, libsecret-0.20.5, libxslt-1.1.37, and Vala-0.56.4

Optional

Gi-DocGen-2023.1 and Valgrind-3.20.0

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gcr

Installation of Gcr

Install Gcr by running the following commands:

sed -i 's:"/desktop:"/org:' schema/*.xml &&

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dgtk_doc=false .. &&
ninja

If you have Gi-DocGen-2023.1 installed and wish to build the API documentation for this package, issue:

sed -e "/install_dir/s@,\$@ / 'gcr-3.41.1'&@" \
    -e "/fatal-warnings/d"                    \
    -i ../docs/*/meson.build                  &&
meson configure -Dgtk_doc=true                &&
ninja

To test the results, issue: ninja test. The tests must be run from an X Terminal or similar.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dgtk=false: Use this switch if you haven’t installed GTK+-3.24.36. Note that gcr-viewer will not be installed if this is passed to meson.

-Dgtk_doc=true: Allow building this package without Gi-DocGen-2023.1 installed. If you have Gi-DocGen-2023.1 installed and you wish to rebuild and install the API documentation, a meson configure command will reset this option.

Contents

Installed Program: gcr-viewer

Installed Libraries: libgck-1.so, libgcr-base-3.so and libgcr-ui-3.so

Installed Directories: /usr/include/gck-1, /usr/include/gcr-3, and /usr/share/gtk-doc/html/{gcr,gck}

Short Descriptions

gcr-viewer is used to view certificates and key files

libgck-1.so contains GObject bindings for PKCS#11.

33.2 Gcr-4.0.0


Introduction to Gcr

The Gcr package contains libraries used for displaying certificates and accessing key stores. It also provides the viewer for crypto files on the GNOME Desktop.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Gcr Dependencies

Required

GLib-2.74.5, libgcrypt-1.10.1, and p11-kit-0.24.1

GnuPG-2.4.0, gobject-introspection-1.74.0, GTK-4.8.3, libsecret-0.20.5, libxslt-1.1.37, and Vala-0.56.4

Optional

Gi-DocGen-2023.1 and Valgrind-3.20.0

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gcr

Installation of Gcr

Note

Both gcr-3 and gcr-4 are coinstallable. This version of the package is used to support GTK-4 applications, such as gnome-shell-43.3.

Install Gcr by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dgtk_doc=false .. &&
ninja

If you have Gi-DocGen-2023.1 installed and wish to build the API documentation for this package, issue:

sed -e "/install_dir/s@,\$@ / 'gcr-4.0.0'&@" \
    -e "/fatal-warnings/d"                   \
    -i ../docs/*/meson.build                 &&
meson configure -Dgtk_doc=true               &&
ninja

To test the results, issue: ninja test. The tests must be run from an X Terminal or similar.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dgtk=false: Use this switch if you haven’t installed GTK-4.8.3. Note that gcr-viewer will not be installed if this is passed to meson.

-Dgtk_doc=true: Allow building this package without Gi-DocGen-2023.1 installed. If you have Gi-DocGen-2023.1 installed and you wish to rebuild and install the API documentation, a meson configure command will reset this option.

Contents

Installed Program: gcr-viewer-gtk4

Installed Libraries: libgck-2.so, libgcr-4.so

Installed Directories: /usr/include/gck-2, /usr/include/gcr-4, and /usr/share/gtk-doc/html/{gcr,gck}

Short Descriptions

gcr-viewer-gtk4 is used to view certificates and key files

libgck-2.so contains GObject bindings for PKCS#11

libgcr-4.so contains functions for accessing key stores and displaying certificates.

33.3 gsettings-desktop-schemas-43.0


Introduction to GSettings Desktop Schemas

The GSettings Desktop Schemas package contains a collection of GSettings schemas for settings shared by various components of a GNOME Desktop.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GSettings Desktop Schemas Dependencies

Required

GLib-2.74.5 and gobject-introspection-1.74.0

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gsettings-desktop-schemas

Installation of GSettings Desktop Schemas

Install GSettings Desktop Schemas by running the following commands:

sed -i -r 's:"(/system):"/org/gnome\1:g' schemas/*.in &&

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

This package does not come with a test suite.

Now, as the root user:

ninja install

Note

If you installed the package to your system using a “DESTDIR” method, /usr/share/glib-2.0/schemas/gschemas.compiled was not updated/created. Create (or update) the file using the following command as the root user:

glib-compile-schemas /usr/share/glib-2.0/schemas

Command Explanations

sed … schemas/*.in: This command fixes some deprecated entries in the schema templates.

Contents

Installed Programs: None

Installed Libraries: None

Installed Directory: /usr/include/gsettings-desktop-schemas and /usr/share/GConf/gsettings

33.4 libsecret-0.20.5


Introduction to libsecret

The libsecret package contains a GObject based library for accessing the Secret Service API.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

libsecret Dependencies

Required

GLib-2.74.5

gobject-introspection-1.74.0, libgcrypt-1.10.1, and Vala-0.56.4

Optional

Gi-DocGen-2023.1 and docbook-xml-4.5, docbook-xsl-nons-1.79.2, libxslt-1.1.37 (to build manual pages), and Valgrind-3.20.0 (can be used in tests)

Optional (Required for the test suite)

D-Bus Python-1.3.2, Gjs-1.74.1, PyGObject-3.42.2 (Python 3 module), and tpm2-tss

Runtime Dependency

gnome-keyring-42.1

Note

Any package requiring libsecret expects GNOME Keyring to be present at runtime.

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libsecret

Installation of libsecret

Install libsecret by running the following commands:

mkdir bld &&
cd bld &&

meson --prefix=/usr --buildtype=release -Dgtk_doc=false .. &&
ninja

If you have Gi-DocGen-2023.1 installed and wish to build the API documentation for this package, issue:

sed "s/api_version_major/'0.20.5'/"            \
    -i ../docs/reference/libsecret/meson.build &&
meson configure -Dgtk_doc=true                 &&
ninja

Now, as the root user:

ninja install

To test the results, issue: dbus-run-session ninja test.

If gi-docgen is installed and the -Dgtk_doc=false has been removed, as the root user, issue the following command to fix the name of the installed documentation directory:

mv -v /usr/share/doc/libsecret-{1,0.20.5}

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dgtk_doc=false: Allow building this package without Gi-DocGen-2023.1 installed. If you have Gi-DocGen-2023.1 installed and you wish to rebuild and install the API documentation, a meson configure command will reset this option.

-Dmanpage=false: Use this switch if you have not installed libxslt-1.1.37 and DocBook packages.

-Dgcrypt=false: Use this switch if you have not installed the recommended dependency of libgcrypt-1.10.1.

Contents

Installed Program: secret-tool

Installed Library: libsecret-1.so

Installed Directories: /usr/include/libsecret-1 and /usr/share/doc/libsecret-0.20.5

Short Descriptions

secret-tool is a command line tool that can be used to store and retrieve passwords

libsecret-1.so contains the libsecret API functions.

33.5 rest-0.9.1


Introduction to rest

The rest package contains a library that was designed to make it easier to access web services that claim to be “RESTful”. It includes convenience wrappers for libsoup and libxml to ease remote use of the RESTful API.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

rest Dependencies

Required

JSON-GLib-1.6.6, libsoup-3.2.2, and make-ca-1.12

gobject-introspection-1.74.0

Optional

Gi-DocGen-2023.1, libadwaita-1.2.2 and gtksourceview5-5.6.2 (to build the demo), and Vala-0.56.4

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/rest

Installation of rest

Install rest by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr        \
      --buildtype=release  \
      -Dexamples=false     \
      -Dgtk_doc=false      .. &&
ninja

If you have Gi-DocGen-2023.1 installed and wish to build the API documentation for this package, issue:

sed "/output/s/librest-1.0/rest-0.9.1/" -i ../docs/meson.build &&
meson configure -Dgtk_doc=true                                 &&
ninja

To test the results, issue: ninja test.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dgtk_doc=false: Allow building this package without Gi-DocGen-2023.1 installed. If you have Gi-DocGen-2023.1 installed and you wish to rebuild and install the API documentation, a meson configure command will reset this option.

-Dexamples=false: Remove this option if libadwaita-1.2.2 and gtksourceview5-5.6.2 are installed and you wish to build the demonstration application provided by this package.

-Dvapi=true: Use this switch if Vala-0.56.4 is installed and you wish to build the Vala bindings provided by this package.

Contents

Installed Programs: librest-demo (optional)

Installed Libraries: librest-1.0.so and librest-extras-1.0.so

Installed Directories: /usr/include/rest-1.0 and /usr/share/gtk-doc/html/rest-1.0

Short Descriptions

librest-demo provides an example of how to use the RESTful Web API Query functions

librest-1.0.so contains the RESTful Web API Query functions

librest-extras-1.0.so contains extra RESTful Web API Query functions.

33.6 totem-pl-parser-3.26.6


Introduction to Totem PL Parser

The Totem PL Parser package contains a simple GObject-based library used to parse multiple playlist formats.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Totem PL Parser Dependencies

gobject-introspection-1.74.0, libarchive-3.6.2, and libgcrypt-1.10.1

Optional

CMake-3.25.2, GTK-Doc-1.33.2, Gvfs-1.50.3 (for some tests), LCOV, and libquvi >= 0.9.1 and libquvi-scripts - if they are installed, then lua-socket (git) is necessary for the tests

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/totem-pl-parser

Installation of Totem PL Parser

Install Totem PL Parser by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

To test the results, issue: ninja test.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

Contents

Installed Programs: None

Installed Libraries: libtotem-plparser-mini.so and libtotem-plparser.so

Installed Directories: /usr/include/totem-pl-parser and /usr/share/gtk-doc/html/totem-pl-parser

Short Descriptions

libtotem-plparser.so is the Totem Playlist Parser library

libtotem-plparser-mini.so is the Totem Playlist Parser library, mini version.

33.7 VTE-0.70.3


Introduction to VTE

The VTE package contains a termcap file implementation for terminal emulators.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

VTE Dependencies

Required

GTK+-3.24.36, libxml2-2.10.3, and pcre2-10.42

ICU-72.1, GnuTLS-3.8.0, gobject-introspection-1.74.0, and Vala-0.56.4

Optional

FriBidi-1.0.12, Gi-DocGen-2023.1, and GTK-4.8.3

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/vte

Installation of VTE

Install VTE by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dfribidi=false .. &&
ninja

If you have Gi-DocGen-2023.1 installed and wish to build the API documentation for this package, issue:

sed -e "/docdir =/s@\$@/ 'vte-0.70.3'@" \
    -e "/fatal-warnings/d"              \
    -i ../doc/reference/meson.build     &&
meson configure -Ddocs=true             &&
ninja

To test the results, issue ninja test.

Now, as the root user:

ninja install &&
rm -v /etc/profile.d/vte.*

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

rm -v /etc/profile.d/vte.*: This command removes two files installed in /etc/profile.d that have no use on a LFS system.

-Dfribidi=false: Omit this switch if you want to enable bidirectional capabilities.

-Dgnutls=false: Add this switch if you do not want to enable GnuTLS support.

-Dvapi=false: Add this switch if you do not want to enable vala bindings.

-Dgtk4=true: Add this switch to build the GTK4 widget.

Contents

Installed Program: vte-2.91

Installed Library: libvte-2.91.so

Installed Directories: /usr/include/vte-2.91 and (optional) /usr/share/doc/vte-0.70.3

Short Descriptions

vte-2.91 is a test application for the VTE libraries

libvte-2.91.so is a library which implements a terminal emulator widget for GTK+ 3.

33.8 yelp-xsl-42.1


Introduction to Yelp XSL

The Yelp XSL package contains XSL stylesheets that are used by the Yelp help browser to format Docbook and Mallard documents.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Yelp XSL Dependencies

Required

libxslt-1.1.37 and itstool-2.0.7

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/yelp-xsl

Installation of Yelp XSL

Install Yelp XSL by running the following commands:

./configure --prefix=/usr

This package does not come with a test suite.

Now, as the root user:

make install

Contents

Installed Programs: None

Installed Libraries: None

Installed Directory: /usr/share/yelp-xsl

33.9 GConf-3.2.6


Introduction to GConf

The GConf package contains a configuration database system used by many GNOME applications.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GConf Dependencies

Required

dbus-glib-0.112 and libxml2-2.10.3

gobject-introspection-1.74.0, GTK+-3.24.36 and Polkit-122

Optional

OpenLDAP-2.6.4

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gconf

Installation of GConf

Install GConf by running the following commands:

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --disable-orbit \
            --disable-static &&
make

This package does not come with a test suite.

Now, as the root user:

make install &&
ln -s gconf.xml.defaults /etc/gconf/gconf.xml.system

Command Explanations

--disable-orbit: This switch is required if ORBit2 is not installed. ORBit2 is a deprecated package.

--disable-static: This switch prevents installation of static versions of the libraries.

Contents

Installed Programs: gconf-merge-tree, gconftool-2, gsettings-data-convert and gsettings-schema-convert

Installed Libraries: libgconf-2.so and libgsettingsgconfbackend.so (GIO Module installed in /usr/lib/gio/modules)

Installed Directories: /etc/gconf, /usr/include/gconf, /usr/lib/GConf, /usr/share/gtk-doc/html/gconf and /usr/share/sgml/gconf

Short Descriptions

gconf-merge-tree merges an XML filesystem hierarchy

gconftool-2 is a command line tool used for manipulating the GConf database

gsettings-data-convert reads values out of the users GConf database and stores them in GSettings

gsettings-schemas-convert converts between GConf and GSettings schema file formats

libgconf-2.so provides the functions necessary to maintain the configuration database.

33.10 geocode-glib-3.26.4


Introduction to Geocode GLib

The Geocode GLib is a convenience library for the Yahoo! Place Finder APIs. The Place Finder web service allows to do geocoding (finding longitude and latitude from an address), and reverse geocoding (finding an address from coordinates).

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Geocode GLib Dependencies

Required

JSON-GLib-1.6.6 and libsoup-3.2.2

gobject-introspection-1.74.0

Optional

GTK-Doc-1.33.2

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/geocode-glib

Installation of Geocode GLib

Install Geocode GLib by running the following commands:

mkdir build                   &&
cd    build                   &&

meson --prefix /usr           \
      --buildtype=release     \
      -Denable-gtk-doc=false  \
      -Dsoup2=false           .. &&
ninja

To test the results, issue: LANG=C ninja test. One test fails because it needs the sv_SE.utf8 locale, which is not installed by default in LFS.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Denable-gtk-doc=false: Allow this package to be built without GTK-Doc-1.33.2. Remove this parameter if GTK-Doc-1.33.2 is installed and you wish to rebuild and install the API documentation.

-Dsoup2=false: This switch forces this package to use libsoup-3 for HTTP requests instead of libsoup-2. The packages in BLFS that use geocode-glib now expect libsoup-3 to be used.

Contents

Installed Programs: None

Installed Library: libgeocode-glib-2.so

Installed Directories: /usr/include/geocode-glib-2.0, /usr/libexec/installed-tests/geocode-glib, /usr/share/icons/gnome/scalable/places, and /usr/share/gtk-doc/html/geocode-glib

Short Descriptions

libgeocode-glib-2.so contains the Geocode GLib API functions.

33.11 Gjs-1.74.1


Introduction to Gjs

Gjs is a set of Javascript bindings for GNOME.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Gjs Dependencies

Required

Cairo-1.17.6, dbus-1.14.6, gobject-introspection-1.74.0, and JS-102.8.0

GTK+-3.24.36 and GTK-4.8.3

Optional

sysprof-3.46.0, Valgrind-3.20.0 (for tests), DTrace, LCOV, and Systemtap

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gjs

Installation of Gjs

Install Gjs by running the following commands:

mkdir gjs-build &&
cd    gjs-build &&

meson setup --prefix=/usr          \
            --buildtype=release    \
            --wrap-mode=nofallback \
            ..                     &&
ninja

To test the results, issue: ninja test. The GTK and Cairo tests will fail if not running in an Xorg session. Four tests are known to timeout.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

--wrap-mode=nofallback: This switch prevents meson from using subproject fallbacks for any dependency declarations in the build files, stopping it downloading any optional dependency which is not installed on the system.

-Dprofiler=disabled: prevents building the profiler backend even if sysprof-3.46.0 is installed.

Contents

Installed Programs: gjs (symlink) and gjs-console

Installed Library: libgjs.so

Installed Directories: /usr/include/gjs-1.0, /usr/lib/gjs, /usr/libexec/installed-tests/gjs, /usr/share/gjs-1.0, and /usr/share/installed-tests/gjs

Short Descriptions

gjs-console contains a console to run JavaScript commands

libgjs.so contains the GNOME JavaScript bindings.

33.12 gnome-autoar-0.4.3


Introduction to gnome-autoar

The gnome-autoar package provides a framework for automatic archive extraction, compression, and management.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

gnome-autoar Dependencies

Required

libarchive-3.6.2 and GTK+-3.24.36

Vala-0.56.4

Optional

GTK-Doc-1.33.2 (for building documentation)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-autoar

Installation of gnome-autoar

Install gnome-autoar by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dvapi=true -Dtests=true &&
ninja

To test the results, issue: ninja test

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dgtk_doc=true: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.

Contents

Installed Programs: None

Installed Libraries: libgnome-autoar-0.so and libgnome-autoar-gtk-0.so

Installed Directories: /usr/include/gnome-autoar-0 and /usr/share/gtk-doc/html/gnome-autoar

Short Descriptions

libgnome-autoar-0.so provides API functions for automatic archive management

libgnome-autoar-gtk-0.so provides GTK+ widgets to aid in automatic archive management.

33.13 gnome-desktop-43.2


Introduction to GNOME Desktop

The GNOME Desktop package contains a library that provides an API shared by several applications on the GNOME Desktop.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME Desktop Dependencies

Required

gsettings-desktop-schemas-43.0, GTK+-3.24.36, GTK-4.8.3, ISO Codes-4.12.0, itstool-2.0.7, libseccomp-2.5.4, libxml2-2.10.3, and xkeyboard-config-2.38

bubblewrap-0.7.0 (needed for thumbnailers in Nautilus) and gobject-introspection-1.74.0

Optional

GTK-Doc-1.33.2

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-desktop

Installation of GNOME Desktop

Install GNOME Desktop by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr        \
      --buildtype=release  .. &&
ninja

This package does not come with a test suite.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dgtk_doc=true: Use this parameter if you wish to build the API documentation.

-Dinstalled_tests=true: Use this parameter you wish to enable the installed tests.

Contents

Installed Programs: None

Installed Library: libgnome-bg-4.so, libgnome-desktop-3.so, libgnome-desktop-4.so, and libgnome-rr-4.so

Installed Directories: /usr/include/gnome-desktop-3.0, /usr/include/gnome-desktop-4.0, /usr/libexec/gnome-desktop-debug, /usr/share/gtk-doc/html/gnome-desktop3 (optional), and /usr/share/help/*/{fdl,gpl,lgpl}

Short Descriptions

libgnome-desktop-3.so contains functions shared by several GNOME applications.

33.14 gnome-menus-3.36.0


Introduction to GNOME Menus

The GNOME Menus package contains an implementation of the draft Desktop Menu Specification from freedesktop.org. It also contains the GNOME menu layout configuration files and .directory files.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME Menus Dependencies

Required

GLib-2.74.5

gobject-introspection-1.74.0

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-menus

Installation of GNOME Menus

Install GNOME Menus by running the following commands:

./configure --prefix=/usr \
            --sysconfdir=/etc \
            --disable-static &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--disable-static: This switch prevents installation of static versions of the libraries.

Contents

Installed Programs: None

Installed Libraries: libgnome-menu-3.so

Installed Directories: /etc/xdg/menus, /usr/include/gnome-menus-3.0, and /usr/share/desktop-directories

Short Descriptions

libgnome-menu-3.so contains functions required to support GNOME’s implementation of the Desktop Menu Specification.

33.15 gnome-video-effects-0.5.0


Introduction to GNOME Video Effects

The GNOME Video Effects package contains a collection of GStreamer effects.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-video-effects

Installation of GNOME Video Effects

Install GNOME Video Effects by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

This package does not come with a test suite.

Now, as the root user:

ninja install

Contents

Installed Programs: None

Installed Libraries: None

Installed Directory: /usr/share/gnome-video-effects

33.16 gnome-online-accounts-3.46.0


Introduction to GNOME Online Accounts

The GNOME Online Accounts package contains a framework used to access the user’s online accounts.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME Online Accounts Dependencies

Required

Gcr-3.41.1, JSON-GLib-1.6.6, rest-0.9.1, Vala-0.56.4, and WebKitGTK-2.38.5

gobject-introspection-1.74.0

Optional

GTK-Doc-1.33.2, MIT Kerberos V5-1.20.1, and Valgrind-3.20.0

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-online-accounts

Installation of GNOME Online Accounts

Note

The Google API Key and OAuth tokens below are specific to LFS. If using these instructions for another distro, or if you intend to distribute binary copies of the software using these instructions, please obtain your own keys following the instructions located at https://www.chromium.org/developers/how-tos/api-keys.

Install GNOME Online Accounts by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr                                   \
      --buildtype=release                             \
      -Dkerberos=false                                \
      -Dgoogle_client_secret=5ntt6GbbkjnTVXx-MSxbmx5e \
      -Dgoogle_client_id=595013732528-llk8trb03f0ldpqq6nprjp1s79596646.apps.googleusercontent.com &&
ninja

This package does not come with a test suite.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dgoogle_*: These switches set the BLFS OAuth ID and secret for Google services.

-Dgtk_doc=true: Use this switch if you have GTK-Doc-1.33.2 installed and you wish to generate the API documentation.

-Dkerberos=true: Use this switch if you have installed MIT Kerberos V5-1.20.1 and wish to use it with GNOME Online Accounts.

Contents

Installed Programs: goa-daemon and goa-identity-service (library executables)

Installed Libraries: libgoa-1.0.so and libgoa-backend-1.0.so

Installed Directories: /usr/include/goa-1.0, /usr/lib/goa-1.0, and /usr/share/gtk-doc/html/goa (optional)

Short Descriptions

goa-daemon is the GNOME Online Accounts Daemon

libgoa-1.0.so contains the GNOME Online Accounts API functions

libgoa-backend-1.0.so contains functions used by GNOME Online Accounts backends.

33.17 Grilo-0.3.15


Introduction to Grilo

Grilo is a framework focused on making media discovery and browsing easy for applications and application developers.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Grilo Dependencies

Required

GLib-2.74.5 and libxml2-2.10.3

gobject-introspection-1.74.0, GTK+-3.24.36, libsoup-3.2.2, totem-pl-parser-3.26.6, and Vala-0.56.4

Optional

DocBook-utils-0.6.14, liboauth-1.0.3, and GTK-Doc-1.33.2

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/grilo

Installation of Grilo

Install Grilo by running the following commands:

mkdir build &&
cd    build    &&

meson --prefix=/usr       \
      --buildtype=release \
      -Denable-gtk-doc=false .. &&
ninja

To test the results, issue: ninja test.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Denable-gtk-doc=false: This option disables generating documentation. If you have GTK-Doc-1.33.2 installed and wish to generate documentation, remove this option.

Contents

Installed Programs: grilo-test-ui-0.3, grl-inspect-0.3 and grl-launch-0.3

Installed Libraries: libgrilo-0.3.so, libgrlnet-0.3.so and libgrlpls-0.3.so

Installed Directories: /usr/include/grilo-0.3

Short Descriptions

grilo-test-ui-0.3 is a simple playground application that you can use to test the framework and its plugins

grl-inspect-0.3 is a tool that prints out information on available Grilo sources

grl-launch-0.3 is a tool to run Grilo operations from command line

libgrilo.so provides the Grilo framework

libgrlnet.so provides Grilo networking helpers for plug-ins

libgrlpls.so provides playlist handling functions.

33.18 libchamplain-0.12.21


Introduction to libchamplain

The libchamplain package contains a Clutter-based widget that is used to display rich and interactive maps.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

libchamplain Dependencies

Required

clutter-gtk-1.8.4, GTK+-3.24.36, libsoup-3.2.2, and SQLite-3.40.1

gobject-introspection-1.74.0 and Vala-0.56.4

Optional

GTK-Doc-1.33.2 and libmemphis

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libchamplain

Installation of libchamplain

Install libchamplain by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

This package does not come with a test suite.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

Contents

Installed Programs: None

Installed Libraries: libchamplain-0.12.so and libchamplain-gtk-0.12.so

Installed Directories: /usr/include/champlain-0.12 and /usr/share/gtk-doc/html/champlain-0.12

Short Descriptions

libchamplain-0.12.so contains the libchamplain API functions

libchamplain-gtk-0.12.so contains the libchamplain GTK+ bindings.

33.19 libgdata-0.18.1


Introduction to libgdata

The libgdata package is a GLib-based library for accessing online service APIs using the GData protocol, most notably, Google’s services. It provides APIs to access the common Google services and has full asynchronous support.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

libgdata Dependencies

Required

libsoup-2.74.3, gnome-online-accounts-3.46.0, GTK+-3.24.36, JSON-GLib-1.6.6, and Vala-0.56.4

Gcr-3.41.1 and gobject-introspection-1.74.0

Optional

GTK-Doc-1.33.2 (for documentation), liboauth-1.0.3 (for OAuth v1 support), and uhttpmock-0.5.3 (required for tests)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libgdata

Installation of libgdata

Install libgdata by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr                 \
      --buildtype=release           \
      -Dgtk_doc=false               \
      -Dalways_build_tests=false .. &&
ninja

If you wish to run the test suite, make sure uhttpmock-0.5.3 is installed and remove -Dalways_build_tests=false in the meson command line. To test the results, issue: ninja test. Note that the tests need network access.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dgtk_doc=false: Remove this if you have GTK-Doc-1.33.2 installed and want to rebuild the documentation with it.

-Doauth1=enabled: Use this option if you wish to build in support for OAuth v1. Note that you must have liboauth-1.0.3 installed in order to enable this option.

Contents

Installed Programs: None

Installed Libraries: libgdata.so

Installed Directories: /usr/include/libgdata and /usr/share/gtk-doc/html/gdata

Short Descriptions

libgdata.so contains the libgdata API functions.

33.20 libgee-0.20.6


Introduction to libgee

The libgee package is a collection library providing GObject based interfaces and classes for commonly used data structures.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

libgee Dependencies

Required

GLib-2.74.5

gobject-introspection-1.74.0 and Vala-0.56.4

Optional

Vala-0.56.4 (with Valadoc) and LCOV

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libgee

Installation of libgee

Install libgee by running the following commands:

./configure --prefix=/usr &&
make

To test the results, issue: make check.

Now, as the root user:

make install

Contents

Installed Programs: None

Installed Library: libgee-0.8.so

Installed Directory: /usr/include/gee-0.8

Short Descriptions

libgee-0.8.so contains the libgee API functions.

33.21 libgtop-2.40.0


Introduction to libgtop

The libgtop package contains the GNOME top libraries.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

libgtop Dependencies

Required

GLib-2.74.5 and Xorg Libraries

gobject-introspection-1.74.0

Optional

GTK-Doc-1.33.2

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libgtop

Installation of libgtop

Install libgtop by running the following commands:

./configure --prefix=/usr --disable-static &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Command Explanations

--disable-static: This switch prevents installation of static versions of the libraries.

--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.

Contents

Installed Programs: libgtop_daemon2 and libgtop_server2

Installed Library: libgtop-2.0.so

Installed Directories: /usr/include/libgtop-2.0 and /usr/share/gtk-doc/html/libgtop

Short Descriptions

libgtop-2.0.so contains functions that allow access to system performance data.

33.22 libgweather-4.2.0


Introduction to libgweather

The libgweather package is a library used to access weather information from online services for numerous locations.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

libgweather Dependencies

Required

geocode-glib-3.26.4, GTK+-3.24.36, libsoup-3.2.2, and PyGObject-3.42.2

gobject-introspection-1.74.0, libxml2-2.10.3, and Vala-0.56.4

Optional

Gi-DocGen-2023.1 (gi-docgen is also provided as a meson subproject, which will be used if -Dgtk_doc=false is not passed to meson), LLVM-15.0.7 (for clang-format), and pylint

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libgweather

Installation of libgweather

Install libgweather by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dgtk_doc=false .. &&
ninja

If you have Gi-DocGen-2023.1 installed and wish to build the API documentation for this package, issue:

sed "s/libgweather_full_version/'libgweather-4.2.0'/" \
    -i ../doc/meson.build                             &&
meson configure -Dgtk_doc=true                        &&
ninja

One test needs that the locale files be installed on the system, so it is better to run the tests after installing the package.

Now, as the root user:

ninja install

To test the results, issue: LC_ALL=C ninja test. One test, metar, is known to fail.

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dgtk_doc=false: Allow building this package without Gi-DocGen-2023.1 installed. If you have Gi-DocGen-2023.1 installed and you wish to rebuild and install the API documentation, a meson configure command will reset this option.

Contents

Installed Programs: None

Installed Libraries: libgweather-4.so

Installed Directories: /usr/lib/libgweather-4, /usr/include/libgweather-4.0, /usr/share/gtk-doc/html/libgweather-4.0 (optional), and /usr/share/libgweather-4

Short Descriptions

libgweather-4.so contains functions that allow the retrieval of weather information.

33.23 libpeas-1.34.0


Introduction to libpeas

libpeas is a GObject based plugins engine, and is targeted at giving every application the chance to assume its own extensibility.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

libpeas Dependencies

Required

gobject-introspection-1.74.0 and GTK+-3.24.36

libxml2-2.10.3 and PyGObject-3.42.2

Optional

Gi-DocGen-2023.1, Glade, embed, LGI (for LUA bindings, built with LUA-5.1), with either luajit or LUA-5.1

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libpeas

Installation of libpeas

Install libpeas by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release --wrap-mode=nofallback .. &&
ninja

If you have Gi-DocGen-2023.1 installed and wish to build the API documentation for this package, issue:

sed "/docs_dir =/s@\$@/ 'libpeas-1.34.0'@" \
    -i ../docs/reference/meson.build       &&
meson configure -Dgtk_doc=true             &&
ninja

To test the results, issue: ninja test. An active graphical session with bus address is necessary to run the tests.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

--wrap-mode=nofallback: This switch prevents meson from using subproject fallbacks for any dependency declarations in the build files, stopping it downloading any optional dependency which is not installed on the system.

-Dvapi=true: Add this switch if you wish to generate vapi (vala) data.

-Ddemos=false: Add this switch if you do not wish to build the demo programs.

Contents

Installed Program: peas-demo

Installed Libraries: libpeas-1.0.so and libpeas-gtk-1.0.so

Installed Directories: /usr/include/libpeas-1.0, /usr/lib/libpeas-1.0, /usr/lib/peas-demo and /usr/share/gtk-doc/html/libpeas (optional)

Short Descriptions

peas-demo is the Peas demo program

libpeas-1.0.so contains the libpeas API functions

libpeas-gtk-1.0.so contains the libpeas GTK+ widgets.

33.24 libshumate-1.0.3


Introduction to libshumate

The libshumate package contains a GTK-4 widget to display maps.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

libshumate Dependencies

Required

GTK-4.8.3 and libsoup-3.2.2

Optional

Gi-DocGen-2023.1 and GTK-Doc-1.33.2

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libshumate

Installation of libshumate

Install libshumate by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dgtk_doc=false .. &&
ninja

To test the results, issue: ninja test.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dgtk_doc=false: This switch disables documentation generation. Remove this if you have both GTK-Doc-1.33.2 and Gi-DocGen-2023.1 installed and wish to generate the API documentation.

Contents

Installed Programs: None

Installed Libraries: libshumate-1.0.so

Installed Directories: /usr/include/shumate-1.0

Short Descriptions

libshumate-1.0.so contains functions that provide a GTK-4 widget to display maps.

33.25 libwnck-43.0


Introduction to libwnck

The libwnck package contains the Window Navigator Construction Kit.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

libwnck Dependencies

Required

GTK+-3.24.36

gobject-introspection-1.74.0 and startup-notification-0.12

Optional

GTK-Doc-1.33.2

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libwnck

Installation of libwnck

Install libwnck by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

This package does not come with a test suite.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dgtk_doc=true: Use this option to build the API reference manual.

Contents

Installed Program: wnckprop and wnck-urgency-monitor

Installed Library: libwnck-3.so

Installed Directories: /usr/include/libwnck-3.0 and /usr/share/gtk-doc/html/libwnck-3.0

Short Descriptions

wnckprop is used to print or modify the properties of a screen/workspace/window, or to interact with it

libwnck-3.so contains functions for writing pagers and task lists.

33.26 evolution-data-server-3.46.4


Introduction to Evolution Data Server

The Evolution Data Server package provides a unified backend for programs that work with contacts, tasks, and calendar information. It was originally developed for Evolution (hence the name), but is now used by other packages as well.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Evolution Data Server Dependencies

Required

libical-3.0.16, libsecret-0.20.5, nss-3.88.1, and SQLite-3.40.1

gnome-online-accounts-3.46.0, gobject-introspection-1.74.0, GTK+-3.24.36, ICU-72.1, libcanberra-0.30, libgweather-4.2.0, Vala-0.56.4, and WebKitGTK-2.38.5

Optional

Berkeley DB-5.3.28, GTK-Doc-1.33.2, MIT Kerberos V5-1.20.1, a MTA (that provides a sendmail command), OpenLDAP-2.6.4, and libphonenumber

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/evolution-data-server

Installation of Evolution Data Server

Install Evolution Data Server by running the following commands:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr    \
      -DSYSCONF_INSTALL_DIR=/etc     \
      -DENABLE_VALA_BINDINGS=ON      \
      -DENABLE_INSTALLED_TESTS=ON    \
      -DWITH_OPENLDAP=OFF            \
      -DWITH_KRB5=OFF                \
      -DENABLE_INTROSPECTION=ON      \
      -DENABLE_GTK_DOC=OFF           \
      -DWITH_LIBDB=OFF               \
      -DENABLE_OAUTH2_WEBKITGTK4=OFF \
      .. &&
make

Now, as the root user:

make install

To test the results, issue: make test.

Command Explanations

-DENABLE_VALA_BINDINGS=ON: This switch enables building the Vala bindings. Remove if you don’t have Vala-0.56.4 installed.

-DENABLE_GTK_DOC=OFF: This switch disables building the API documentation. It is broken for this package due to the use of a long deprecated gtk-doc program that is no longer available.

-DWITH_LIBDB=OFF: This switch allows building this package without Berkeley DB-5.3.28. This package only uses Berkeley DB-5.3.28 to import data from very outdated releases. SQLite-3.40.1 is used for normal operation.

-DENABLE_OAUTH2_WEBKITGTK4=OFF: This switch works around a problem where the gtk-4 version of WebKit would be needed to show OAuth2 login prompts.

Note

To enable many of the optional dependencies, review the information from cmake -L CMakeLists.txt for the necessary parameters you must pass to the cmake command.

Contents

Installed Programs: None

Installed Libraries: libcamel-1.2.so, libebackend-1.2.so, libebook-1.2.so, libebook-contacts-1.2.so, libecal-2.0.so, libedata-book-1.2.so, libedata-cal-2.0.so, libedataserver-1.2.so, libedataserverui-1.2.so, libedataserverui4-1.0.so, and libetestserverutils.so

Installed Directories: /usr/include/evolution-data-server, /usr/lib{,exec}/evolution-data-server, /usr/share/evolution-data-server, /usr/share/installed-tests/evolution-data-server, and /usr/share/pixmaps/evolution-data-server

Short Descriptions

libcamel-1.2.so is the Evolution MIME message handling library

libebackend-1.2.so is the utility library for Evolution Data Server Backends

libebook-1.2.so is the client library for Evolution address books

libebook-contacts-1.2.so is the client library for Evolution contacts

libecal-1.2.so is the client library for Evolution calendars

libedata-book-1.2.so is the backend library for Evolution address books

libedata-cal-1.2.so is the backend library for Evolution calendars

libedataserver-1.2.so is the utility library for Evolution Data Server

libedataserverui-3.0.so is the GUI utility library for Evolution Data Server

libedataserverui4-1.0.so is the GTK-4 based GUI utility library for Evolution Data Server

libetestserverutils.so is the server test utility library for Evolution Data Server

33.27 Tracker-3.4.2


Introduction to Tracker

Tracker is the file indexing and search provider used in the GNOME desktop environment.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Tracker Dependencies

Required

JSON-GLib-1.6.6, libseccomp-2.5.4, and Vala-0.56.4

gobject-introspection-1.74.0, ICU-72.1, libsoup-3.2.2, PyGObject-3.42.2, SQLite-3.40.1, and tracker-miners-3.4.3 (runtime)

Optional

asciidoc-10.2.0, GTK-Doc-1.33.2, libsoup-2.74.3, bash-completion, and libstemmer

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/tracker3

Installation of Tracker

Install Tracker by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Ddocs=false        \
      -Dman=false ..      &&
ninja

To test the results, issue: ninja test. The tests should be run from a graphical session.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Ddocs=false: This switch prevents the build process from generating API documentation. Omit this switch if you have GTK-Doc-1.33.2 installed and wish to generate and install the API documentation.

-Dman=false: This switch prevents the build process from generating man pages. Omit this switch if you have asciidoc-10.2.0 installed and wish to generate and install the man pages.

Contents

Installed Programs: tracker3

Installed Library: libtracker-sparql-3.0.so

Installed Directories: /usr/{include,lib}/tracker-3.0, /usr/libexec/tracker3, /usr/share/tracker3, and /usr/share/gtk-doc/html/{libtracker-sparql,ontology}-3 (optional)

Short Descriptions

tracker3 is a control program for the indexer

libtracker-sparql-3.0.so contains resource management and database functions.

33.28 Tracker-miners-3.4.3


Introduction to Tracker-miners

The Tracker-miners package contains a set of data extractors for Tracker.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Tracker-miners Dependencies

Required

gst-plugins-base-1.22.0, Tracker-3.4.2, Exempi-2.6.3, and gexiv2-0.14.0

giflib-5.2.1, gst-plugins-base-1.22.0, gst-plugins-good-1.22.0 (runtime), gst-libav-1.22.0 (runtime), ICU-72.1, libexif-0.6.24, libgrss-0.7.0, libgxps-0.3.2, libseccomp-2.5.4, and Poppler-23.02.0

Optional

asciidoc-10.2.0, CMake-3.25.2, DConf-0.40.0, FFmpeg-5.1.2, libgsf-1.14.50, taglib-1.13, totem-pl-parser-3.26.6, UPower-1.90.0, libcue, libitpcdata, libosinfo, and gupnp

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/tracker-miners

Installation of Tracker-miners

Note

If you plan to run the tests, some timeouts are too short when using spinning disks. There are two places where timeouts are used: first, individual tests inside a group of tests have a default timeout of 10s. This can be changed by setting the environment variable TRACKER_TESTS_AWAIT_TIMEOUT to the desired value when running the tests (see below). Second, a global timeout for a group of tests is fixed at configuration time. The default value in the functional-tests directory (other directories have only short lived tests) may be increased with the following command (replace 200 with a value suitable for your machine):

sed -i s/120/200/ tests/functional-tests/meson.build

Install Tracker-miners by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dman=false .. &&
ninja

To test the results, issue (adjust the individual test timeout to a value suitable for your machine, see the note above):

dbus-run-session env TRACKER_TESTS_AWAIT_TIMEOUT=20 ninja test &&
rm -rf ~/tracker-tests

Note

The tests create files in the user directory (up to 24 MB), so they have to be removed afterwards.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dman=false: This switch prevents the build process from generating man pages. Omit this switch if you have asciidoc-10.2.0 installed and wish to generate and install the man pages.

-Dseccomp=false: This option disables the seccomp system call filter. On some architectures, such as i686 and ARM, the functions that tracker-miners uses are not guarded properly, and tracker-miners will get killed with a SIGSYS as a result.

-Dminer_rss=false: Use this option if you have not installed the recommended dependency libgrss.

Contents

Installed Programs: None

Installed Libraries: Several modules under /usr/lib/tracker-miners-3.0

Installed Directories: /usr/lib/tracker-miners-3.0, /usr/libexec/tracker3, and /usr/share/tracker3-miners

33.29 GSound-1.0.3


Introduction to GSound

The gsound package contains a small library for playing system sounds.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

gsound Dependencies

Required

libcanberra-0.30

gobject-introspection-1.74.0 and Vala-0.56.4

Optional

GTK-Doc-1.33.2 (for generating documentation)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gsound

Installation of GSound

Install gsound by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

This package does not come with a test suite.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

Contents

Installed Programs: gsound-play

Installed Libraries: libgsound.so

Installed Directories: /usr/share/gtk-doc/html/gsound

Short Descriptions

gsound-play plays system sounds through the libgsound interface

libgsound.so contains API functions for playing system sounds.

33.30 DConf-0.40.0 / DConf-Editor-43.0


Introduction to DConf

The DConf package contains a low-level configuration system. Its main purpose is to provide a backend to GSettings on platforms that don’t already have configuration storage systems.

The DConf-Editor, as the name suggests, is a graphical editor for the DConf database. Installation is optional, because gsettings from GLib-2.74.5 provides similar functionality on the commandline.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Additional Downloads

DConf Dependencies

Required

dbus-1.14.6, GLib-2.74.5, GTK+-3.24.36 (for the editor), libhandy-1.8.1 (for the editor), and libxml2-2.10.3 (for the editor)

libxslt-1.1.37 and Vala-0.56.4

Optional

GTK-Doc-1.33.2 and bash-completion

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/dconf

Installation of DConf

Install DConf by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dbash_completion=false .. &&
ninja

To test the results, issue: ninja test

As the root user:

ninja install

Now, optionally install the editor:

cd ..              &&
tar -xf ../dconf-editor-43.0.tar.xz &&
cd dconf-editor-43.0                &&

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

As the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dgtk_doc=true: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.

Contents

Installed Programs: dconf and dconf-editor

Installed Libraries: libdconf.so and libdconfsettings.so (GIO Module installed in /usr/lib/gio/modules)

Installed Directories: /usr/{include,share/gtk-doc/html}/dconf

Short Descriptions

dconf is a simple tool for manipulating the DConf database

dconf-editor is a graphical program for editing the DConf database

libdconf.so contains the DConf client API functions.

33.31 gnome-backgrounds-43.1


Introduction to GNOME Backgrounds

The GNOME Backgrounds package contains a collection of graphics files which can be used as backgrounds in the GNOME Desktop environment. Additionally, the package creates the proper framework and directory structure so that you can add your own files to the collection.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-backgrounds

Installation of GNOME Backgrounds

Install GNOME Backgrounds by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr ..

This package does not come with a test suite.

Now, as the root user:

ninja install

Contents

Installed Programs: None

Installed Libraries: None

Installed Directories: /usr/share/backgrounds/gnome and /usr/share/gnome-background-properties

Short Descriptions

GNOME Backgrounds are background images for the GNOME Desktop.

33.32 Gvfs-1.50.3


Introduction to Gvfs

The Gvfs package is a userspace virtual filesystem designed to work with the I/O abstractions of GLib’s GIO library.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Gvfs Dependencies

Required

dbus-1.14.6, GLib-2.74.5, libusb-1.0.26, and libsecret-0.20.5

Gcr-3.41.1, GTK+-3.24.36, libcdio-2.1.0, libgdata-0.18.1, libgudev-237, libsoup-3.2.2, Systemd-252, and UDisks-2.9.4

Optional

Apache-2.4.55, Avahi-0.8, BlueZ-5.66, Fuse-3.13.1, gnome-online-accounts-3.46.0, GTK-Doc-1.33.2, libarchive-3.6.2, libgcrypt-1.10.1, libxml2-2.10.3, libxslt-1.1.37, OpenSSH-9.2p1, Samba-4.17.5, libbluray, libgphoto2, libimobiledevice, libmtp, libnfs, and Twisted

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gvfs

Installation of Gvfs

Install Gvfs by running the following commands:

mkdir build &&
cd    build &&

meson setup               \
      --prefix=/usr       \
      --buildtype=release \
      -Dfuse=false        \
      -Dgphoto2=false     \
      -Dafc=false         \
      -Dbluray=false      \
      -Dnfs=false         \
      -Dmtp=false         \
      -Dsmb=false         \
      -Ddnssd=false       \
      -Dgoa=false         \
      -Dgoogle=false      .. &&
ninja

This package does not come with a test suite.

Now, as the root user:

ninja install

Note

If you installed the package to your system using a “DESTDIR” method, /usr/share/glib-2.0/schemas/gschemas.compiled was not updated/created. Create (or update) the file using the following command as the root user:

glib-compile-schemas /usr/share/glib-2.0/schemas

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-D<option>=false: These switches are required if the corresponding dependency is not installed. Remove those where you have installed the corresponding application and wish to use it with Gvfs. The dnssd option requires avahi and both goa and google require GNOME Online Accounts. The google option also requires libgdata.

-Dcdda=false: This switch is required if libcdio is not installed. The cdda backend is useless on machines without a CDROM/DVD drive.

Contents

Installed Programs: None

Installed Library: libgvfscommon.so, libgvfsdaemon.so and some under /usr/lib/gio/modules/

Installed Directories: /usr/include/gvfs-client and /usr/{lib,share}/gvfs

Short Descriptions

libgvfscommon.so contains the common API functions used in Gvfs programs.

33.33 gexiv2-0.14.0


Introduction to gexiv2

gexiv2 is a GObject-based wrapper around the Exiv2 library.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

gexiv2 Dependencies

Required

Exiv2-0.27.6

Vala-0.56.4

Optional

GTK-Doc-1.33.2 (for documentation)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gexiv2

Installation of gexiv2

Install gexiv2 by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

To test the results, run ninja test.

As the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

Contents

Installed Programs: None

Installed Libraries: libgexiv2.so

Installed Directories: /usr/include/gexiv2

Short Descriptions

libgexiv2.so provides a wrapper around the Exiv2 library.

33.34 Nautilus-43.2


Introduction to Nautilus

The Nautilus package contains the GNOME file manager.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Nautilus Dependencies

Required

bubblewrap-0.7.0, gexiv2-0.14.0, gnome-autoar-0.4.3, gnome-desktop-43.2, libadwaita-1.2.2, libcloudproviders-0.3.1, libnotify-0.8.1, libportal-0.6, libseccomp-2.5.4, and Tracker-3.4.2

desktop-file-utils-0.26, Exempi-2.6.3, gobject-introspection-1.74.0, gst-plugins-base-1.22.0, and libexif-0.6.24

Optional

Gi-DocGen-2023.1

adwaita-icon-theme-43 and Gvfs-1.50.3 (For hotplugging and device mounting to work)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/nautilus

Installation of Nautilus

Fix the location to install the API documentation:

sed "/docdir =/s@\$@ / 'nautilus-43.2'@" -i meson.build

Install Nautilus by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Dselinux=false     \
      -Dpackagekit=false  \
      .. &&

ninja

To test the results, issue: ninja test. The tests need to be run in a graphical environment. One test is known to fail if tracker-miners-3.4.3 is not installed.

Now, as the root user:

ninja install

Note

If you installed the package to your system using a “DESTDIR” method, /usr/share/glib-2.0/schemas/gschemas.compiled was not updated/created. Create (or update) the file using the following command as the root user:

glib-compile-schemas /usr/share/glib-2.0/schemas

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dselinux=false: This switch disables the use of selinux which isn’t supported by BLFS.

-Dpackagekit=false: This switch disables the use of PackageKit which isn’t suitable for BLFS.

Contents

Installed Programs: nautilus and nautilus-autorun-software

Installed Library: libnautilus-extension.so

Installed Directories: /usr/{include,lib,share}/nautilus and /usr/share/gtk-doc/html/libnautilus-extension (optional)

Short Descriptions

nautilus is the GNOME file manager

libnautilus-extension.so supplies the functions needed by the file manager extensions.

33.35 gnome-bluetooth-42.5


Introduction to GNOME Bluetooth

The GNOME Bluetooth package contains tools for managing and manipulating Bluetooth devices using the GNOME Desktop.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME Bluetooth Dependencies

Required

GTK-4.8.3, gsound-1.0.3, itstool-2.0.7, libnotify-0.8.1, and UPower-1.90.0

gobject-introspection-1.74.0 and libadwaita-1.2.2

Optional

GTK-Doc-1.33.2 and dbusmock-0.28.7

Runtime Dependencies

BlueZ-5.66 and Systemd-252

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-bluetooth

Installation of GNOME Bluetooth

Install GNOME Bluetooth by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

To test the results, issue: ninja test.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

Contents

Installed Programs: bluetooth-sendto

Installed Libraries: libgnome-bluetooth-3.0.so and libgnome-bluetooth-ui-3.0.so

Installed Directories: /usr/include/gnome-bluetooth-3.0 and /usr/share/gnome-bluetooth-3.0

Short Descriptions

bluetooth-sendto is a GTK+ application for transferring files over Bluetooth

libgnome-bluetooth-3.0.so contains the GNOME Bluetooth API functions.

33.36 gnome-keyring-42.1


Introduction to GNOME Keyring

The GNOME Keyring package contains a daemon that keeps passwords and other secrets for users.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME Keyring Dependencies

Required

dbus-1.14.6 and Gcr-3.41.1

Linux-PAM-1.5.2, libxslt-1.1.37, and OpenSSH-9.2p1

Optional

LCOV, libcap-ng, GnuPG-2.4.0, and Valgrind-3.20.0

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-keyring

Installation of GNOME Keyring

Install GNOME Keyring by running the following commands:

sed -i 's:"/desktop:"/org:' schema/*.xml &&

./configure --prefix=/usr     \
            --sysconfdir=/etc &&
make

A session bus address is necessary to run the tests. To test the results, issue: make check.

Now, as the root user:

make install

Command Explanations

sed … schema/*.xml: This command fixes a deprecated entry in the schema template.

Contents

Installed Programs: gnome-keyring (symlink), gnome-keyring-3, and gnome-keyring-daemon

Installed Libraries: gnome-keyring-pkcs11.so (PKCS#11 module) and pam_gnome_keyring.so (PAM module)

Installed Directory: /usr/lib/gnome-keyring and /usr/share/xdg-desktop-portal

Short Descriptions

gnome-keyring-daemon is a session daemon that keeps passwords for users.

33.37 gnome-settings-daemon-43.0


Introduction to GNOME Settings Daemon

The GNOME Settings Daemon is responsible for setting various parameters of a GNOME Session and the applications that run under it.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME Settings Daemon Dependencies

Required

alsa-lib-1.2.8, colord-1.4.6, Fontconfig-2.14.2, Gcr-4.0.0, GeoClue-2.7.0, geocode-glib-3.26.4, gnome-desktop-43.2, Little CMS-2.14, libcanberra-0.30, libgweather-4.2.0, libnotify-0.8.1, libwacom-2.6.0, PulseAudio-16.1, Systemd-252, and UPower-1.90.0

ALSA-1.2.7, Cups-2.4.2, NetworkManager-1.42.0, nss-3.88.1, and Wayland-1.21.0

Note

Recommended dependencies are not strictly required for this package to build and function, but you may not get expected results at runtime if you don’t install them.

Optional

gnome-session-43.0, Mutter-43.3, dbusmock-0.28.7, umockdev-0.17.16, and Xvfb (for tests, from Xorg-Server-21.1.7 or Xwayland-22.1.8)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-settings-daemon

Installation of GNOME Settings Daemon

Install GNOME Settings Daemon by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

To check the results, execute: ninja test. Note that you must have python-dbusmock installed in order for the tests to complete successfully. Some tests may fail depending on the init system in use.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

Contents

Installed Programs: None

Installed Libraries: libgsd.so

Installed Directories: /etc/xdg/Xwayland-session.d, /usr/include/gnome-settings-daemon-43, /usr/lib/gnome-settings-daemon-43, and /usr/share/gnome-settings-daemon

33.38 gnome-control-center-43.4.1


Introduction to GNOME Control Center

The GNOME Control Center package contains the GNOME settings manager.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME Control Center Dependencies

Required

AccountsService-22.08.8, colord-gtk-0.3.0, gnome-online-accounts-3.46.0, gnome-settings-daemon-43.0, gsound-1.0.3, libgtop-2.40.0, libpwquality-1.4.5, MIT Kerberos V5-1.20.1, shared-mime-info-2.2, and UDisks-2.9.4

Cups-2.4.2 and Samba-4.17.5 (for the Printers Panel), gnome-bluetooth-42.5, ibus-1.5.27, libadwaita-1.2.2, and ModemManager-1.18.12 and libnma-1.10.6 (for the Network Panel)

Optional

Xvfb (from Xorg-Server-21.1.7 or Xwayland-22.1.8) and dbusmock-0.28.7 (both for tests)

Optional Runtime Dependencies

cups-pk-helper-0.2.7 (Printers panel), gnome-color-manager-3.36.0 (Color panel), gnome-shell-43.3 (Applications panel), and sound-theme-freedesktop-0.8 (Additional Sound Effects in Sound panel)

Note

Recommended dependencies are not strictly required for this package to build and function, but you may not get expected results at runtime if you don’t install them.

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-control-center

Installation of GNOME Control Center

Note

If upgrading from gnome-control-center-41 or earlier, remove a desktop file that would result in duplicated menu entries. As the root user:

rm -f /usr/share/applications/gnome-control-center.desktop

Install GNOME Control Center by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

To test the results, issue: GTK_A11Y=none ninja test. Note that you must have the python-dbusmock module installed in order for the tests to complete successfully.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dibus=false: Use this switch if you have not installed the recommended IBus dependency.

Contents

Installed Programs: gnome-control-center

Installed Libraries: None

Installed Directories: /usr/share/gnome-control-center, /usr/share/pixmaps/faces, and /usr/share/sounds/gnome

Short Descriptions

gnome-control-center is a graphical user interface used to configure various aspects of GNOME.

33.39 Mutter-43.3


Introduction to Mutter

Mutter is the window manager for GNOME. It is not invoked directly, but from GNOME Session (on a machine with a hardware accelerated video driver).

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Mutter Dependencies

Required

gnome-settings-daemon-43.0, graphene-1.10.8, libxcvt-0.1.2, libxkbcommon-1.5.0, and pipewire-0.3.66

desktop-file-utils-0.26, gobject-introspection-1.74.0, startup-notification-0.12, and sysprof-3.46.0

libinput-1.22.1, Wayland-1.21.0, wayland-protocols-1.31, and Xwayland-22.1.8. Additionally, GTK+-3.24.36 needs to be built with Wayland support.

Optional

dbusmock-0.28.7 (required for tests), Xorg-Server-21.1.7 (for X11 sessions)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/mutter

Installation of Mutter

Install Mutter by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=debugoptimized -Dtests=false .. &&
ninja

The test suite requires debug functions to be enabled in the build, and an external program called xvfb-run. If you wish to run the tests, you should download and install it before running meson. You can obtain it from xvfb-run, and install it with executable permissions in /usr/bin. xvfb-run needs Xvfb at runtime, and Xvfb can be installed from either Xorg-Server-21.1.7 or Xwayland-22.1.8. You should also replace -Dtests=false in the meson command, with -Dtests=true. The test suite requires the mutter schema to be installed on the system, so it is better to run the tests after installing the package.

You can also test basic functions of Mutter following the section called “Starting Mutter”, after installing it.

Now, as the root user:

ninja install

If you wish to run the tests, remove the reference to Zenity which is not a part of BLFS from one test:

sed 's/zenity --[a-z]*/gtk3-demo/' -i ../src/tests/x11-test.sh

Now run the test suite:

HOME= ninja test

The tests require an active X or wayland session. The native-unit test is known to fail. A lot of tests will fail if the opengl rendering is not done in hardware. Don’t make any mouse or keyboard input while the test suite is running or some tests may fail.

Command Explanations

--buildtype=debugoptimized: Override the default buildtype (“debug”), which would produce unoptimized binaries. It’s used instead of --buildtype=release to work around an issue causing gnome-shell to crash.

-Dtests=false: Prevents building the tests, and removes a hard requirement on xvfb-run.

-Dprofiler=false: Use this option if Sysprof is not installed, and you don’t want meson to download Sysprof source code.

Starting Mutter

Mutter is normally used as a component of gnome-shell, but it can be used as a standalone Wayland compositor too. To run Mutter as a Wayland compositor, in a virtual console, issue:

mutter --wayland -- vte-2.91

Replace vte-2.91 with the command line for the first application you want in the Wayland session. Note that once this application exits, the Wayland session will be terminated.

Mutter can also function as a nested compositor in another Wayland session. In a terminal emulator, issue:

MUTTER_DEBUG_DUMMY_MODE_SPECS=1920x1080 mutter --wayland --nested -- vte-2.91

Replace 1920x1080 with the size you want for the nested Wayland session.

Contents

Installed Programs: mutter

Installed Libraries: libmutter-11.so

Installed Directories: /usr/{lib,include,libexec/installed-tests,share/{,installed-tests}}/mutter-11

Short Descriptions

mutter is a Clutter based compositing GTK+ Window Manager

libmutter-11.so contains the Mutter API functions.

33.40 gnome-shell-43.3


Introduction to GNOME Shell

The GNOME Shell is the core user interface of the GNOME Desktop environment.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME Shell Dependencies

Required

evolution-data-server-3.46.4, Gcr-4.0.0, Gjs-1.74.1, gnome-autoar-0.4.3, gnome-control-center-43.4.1, GTK-4.8.3, libgweather-4.2.0 (runtime), Mutter-43.3, sassc-3.6.2, startup-notification-0.12, and Systemd-252

desktop-file-utils-0.26, gnome-bluetooth-42.5, gst-plugins-base-1.22.0, and NetworkManager-1.42.0

Optional

GTK-Doc-1.33.2 and bash-completion

Runtime Dependencies

adwaita-icon-theme-43, DConf-0.40.0, GDM-43.0, gnome-backgrounds-43.1, and telepathy-mission-control-5.16.6

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-shell

Installation of GNOME Shell

Install GNOME Shell by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release -Dtests=false .. &&
ninja

To test the results, you need to remove the -Dtests=false switch, and to have Mutter-43.3 compiled and installed with tests also. To run the tests, issue: ninja test. You must be running an X session to run the tests. Some will fail if GDM-43.0 is not installed.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

-Dtests=false: Remove this switch if you want to build the tests. But then meson will fail if Mutter-43.3 tests are not installed.

Contents

Installed Programs: gnome-extensions, gnome-extensions-app, gnome-shell, gnome-shell-extension-prefs, gnome-shell-extension-tool, and gnome-shell-perf-tool

Installed Libraries: None

Installed Directories: /usr/lib/gnome-shell, /usr/share/gnome-shell, /usr/share/gtk-doc/html/{shell,st} (optional), and /usr/share/xdg-desktop-portal/

Short Descriptions

gnome-shell provides the core user interface functions for the GNOME 3 Desktop.

33.41 gnome-shell-extensions-43.1


Introduction to GNOME Shell Extensions

The GNOME Shell Extensions package contains a collection of extensions providing additional and optional functionality to the GNOME Shell.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME Shell Extensions Dependencies

Required

libgtop-2.40.0

Optional

gnome-menus-3.36.0 (runtime, for Applications Menu extension) and sassc-3.6.2

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-shell-extensions

Installation of GNOME Shell Extensions

Install GNOME Shell Extensions by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr ..

This package does not come with a test suite.

Now, as the root user:

ninja install

Contents

Installed Programs: None

Installed Libraries: None

Installed Directories: /usr/share/gnome-shell/extensions

33.42 gnome-session-43.0


Introduction to GNOME Session

The GNOME Session package contains the GNOME session manager.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME Session Dependencies

Required

gnome-desktop-43.2, JSON-GLib-1.6.6, Mesa-22.3.5, Systemd-252, and UPower-1.90.0

Optional

xmlto-0.0.28, and libxslt-1.1.37 with docbook-xml-4.5 and docbook-xsl-nons-1.79.2 (to build the documentation)

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-session

Installation of GNOME Session

When running GNOME under Wayland-1.21.0, environment settings are not imported for the user using the system profile. The Wayland developers are currently undecided on a standard method to provide system environment settings for user sessions. To work around this limitation, execute the following command to make gnome-session use a login shell:

sed 's@/bin/sh@/bin/sh -l@' -i gnome-session/gnome-session.in

Install GNOME Session by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release .. &&
ninja

This package does not come with a test suite.

Now, as the root user:

ninja install

Move the documentation to a versioned directory:

mv -v /usr/share/doc/gnome-session{,-43.0}

This package creates two Xorg based .desktop files in the /usr/share/xsessions/ directory, and two Wayland based .desktop files in the /usr/share/wayland-sessions/ directory. Only one is needed in each directory on a BLFS system, so prevent the extra files showing up as options in a display manager. As the root user:

rm -v /usr/share/xsessions/gnome.desktop &&
rm -v /usr/share/wayland-sessions/gnome.desktop

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

Starting GNOME

The easiest way to start GNOME is to use a display manager. GDM-43.0 is the recommended display manager.

It is also possible to start GNOME from the command line. However, you must still have GDM-43.0 installed for some portions of the desktop to work. One reason to start from the command line is if you want Wayland support on a system that has the proprietary NVIDIA driver installed, since GDM will not show the Wayland session type on such a system.

To start GNOME using xinit-1.4.2, run the following commands:

cat > ~/.xinitrc << "EOF"
dbus-run-session gnome-session
EOF

startx

Alternatively, to start GNOME with Wayland support, run the following command:

XDG_SESSION_TYPE=wayland dbus-run-session gnome-session

Contents

Installed Programs: gnome-session, gnome-session-inhibit, and gnome-session-quit

Installed Libraries: None

Installed Directories: /usr/share/doc/gnome-session-43.0 and /usr/share/gnome-session

Short Descriptions

gnome-session is used to start up the GNOME Desktop environment

gnome-session-inhibit is used to inhibit certain GNOME Session functionality while executing the given command

gnome-session-quit is used to end the GNOME Session

33.43 gnome-tweaks-40.10


Introduction to GNOME Tweaks

GNOME Tweaks is a simple program used to tweak advanced GNOME settings.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME Tweaks Dependencies

Required

GTK+-3.24.36, gsettings-desktop-schemas-43.0, libhandy-1.8.1, PyGObject-3.42.2, and sound-theme-freedesktop-0.8

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-tweaks

Installation of GNOME Tweaks

Install GNOME Tweaks by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr --buildtype=release &&
ninja

This package does not come with a test suite.

Now, as the root user:

ninja install

Command Explanations

--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

Contents

Installed Programs: gnome-tweaks

Installed Libraries: None

Installed Directories: /usr/lib/python3.11/site-packages/gtweak and /usr/share/gnome-tweaks

Short Descriptions

gnome-tweaks is used to tweak advanced GNOME settings.

33.44 gnome-user-docs-43.0


Introduction to GNOME User Docs

The GNOME User Docs package contains documentation for GNOME.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

GNOME User Docs Dependencies

Required

itstool-2.0.7 and libxml2-2.10.3

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gnome-user-docs

Installation of GNOME User Docs

Install GNOME User Docs by running the following commands:

./configure --prefix=/usr &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Contents

Installed Programs: None

Installed Libraries: None

Installed Directories: /usr/share/help//gnome-help and /usr/share/help//system-admin-guide

33.45 Yelp-42.2


Introduction to Yelp

The Yelp package contains a help browser used for viewing help files.

This package is known to build and work properly using an LFS 11.3 platform.

Package Information

Yelp Dependencies

Required

gsettings-desktop-schemas-43.0, WebKitGTK-2.38.5 and yelp-xsl-42.1

desktop-file-utils-0.26

Optional

GTK-Doc-1.33.2

Note

The Yelp package is not required for a functional GNOME Desktop. Note, however, that without Yelp you will not be able to view the built-in Help provided by core GNOME and many of the support applications.

User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/yelp

Installation of Yelp

Install Yelp by running the following commands:

./configure --prefix=/usr --disable-static &&
make

This package does not come with a test suite.

Now, as the root user:

make install

Still as the root user, ensure that /usr/share/applications/mimeinfo.cache will be updated and therefore the help in gnome applications will work.

update-desktop-database

Command Explanations

--disable-static: This switch prevents installation of static versions of the libraries.

--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.

Contents

Installed Program: gnome-help (symlink) and yelp

Installed Library: libyelp.so

Installed Directories: /usr/include/libyelp, /usr/share/gtk-doc/html/libyelp (optional), and /usr/{lib,share}/yelp

Short Descriptions

yelp is the GNOME Help Browser

libyelp.so contains the Yelp API functions.