11. General Utilities
This chapter contains various utilities that do not fit conveniently into other chapters. Programs include some documentation generators, several utilities for manipulating text and graphics, programs for listing files, a program for entering PIN numbers and pass-phrases, and a connection manager.
11.1 Asciidoctor-2.0.18
Introduction to Asciidoctor
Asciidoctor is a fast, open source text processor and publishing toolchain for converting AsciiDoc content to HTML5, DocBook, PDF, and other formats.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/asciidoctor/asciidoctor/archive/v2.0.18/asciidoctor-2.0.18.tar.gz
-
Download MD5 sum: 30a020f2db5f29a90bd2249bf3ad1f08
-
Download size: 1.6 MB
-
Estimated disk space required: 5.4 MB
-
Estimated build time: less than 0.1 SBU
Asciidoctor Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/asciidoctor
Installation of Asciidoctor
Build the Ruby gem:
gem build asciidoctor.gemspec
The test suite needs many Ruby gems beyond the scope of BLFS.
Now, as the root user:
gem install asciidoctor-2.0.18.gem &&
install -vm644 man/asciidoctor.1 /usr/share/man/man1
Contents
Installed Programs: asciidoctor
Installed Libraries: None
Installed Directories: /usr/lib/ruby/gems/3.2.0/gems/asciidoctor-2.0.18 and /usr/lib/ruby/gems/3.2.0/doc/asciidoctor-2.0.18
Short Descriptions
asciidoctor converts AsciiDoc source files to HTML, DocBook, and other formats.
11.2 Bogofilter-1.2.5
Introduction to Bogofilter
The Bogofilter application is a mail filter that classifies mail as spam or ham (non-spam) by a statistical analysis of the message’s header and content (body).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/bogofilter/bogofilter-1.2.5.tar.xz
-
Download MD5 sum: 8763f87adfff7b802ced177d8c654539
-
Download size: 784 KB
-
Estimated disk space required: 19 MB
-
Estimated build time: 0.1 SBU
Bogofilter Dependencies
Required
Recommended
Optional
lmdb-0.9.29, SQLite-3.40.1, xmlto-0.0.28, QDBM and TokyoCabinet
Note
If you do not install the recommended Gsl-2.7.1 package then a statically linked shipped version will be used instead.
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/bogofilter
Installation of Bogofilter
Note
If you plan to change the version of your database library on an existing installation, or to change to a different database, read the warning at the top of the RELEASE.NOTES file.
Install Bogofilter by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc/bogofilter &&
make
To test the results, issue make check.
Now, as the root user:
make install
Command Explanations
--with-database=: This switch allows you to change the default database from db to either qdbm, sqlite3 or tokyocabinet.
Contents
Installed Programs: bf_compact, bf_copy, bf_tar, bogofilter, bogolexer, bogotune, bogoupgrade and bogoutil
Installed Libraries: None
Installed Directories: /etc/bogofilter
Short Descriptions
bf_compact creates a more compact bogofilter working directory with a dump/load cycle.
bf_copy copies a bogofilter working directory to another directory.
bf_tar bundles a bogofilter working directory in tar format and copies it to standard output.
bogofilter is a fast Bayesian spam filter.
bogolexer is used to separate messages into tokens and to test new versions of the lexer.l code.
bogotune attempts to find optimum parameter settings for bogofilter.
bogoupgrade upgrades the bogofilter database to the current version.
bogoutil dumps, loads, and maintains bogofilter database files.
11.3 Compface-1.5.2
Introduction to Compface
Compface provides utilities and a library to convert from/to X-Face format, a 48x48 bitmap format used to carry thumbnails of email authors in a mail header.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://anduin.linuxfromscratch.org/BLFS/compface/compface-1.5.2.tar.gz
-
Download (FTP): ftp://anduin.linuxfromscratch.org/BLFS/compface/compface-1.5.2.tar.gz
-
Download MD5 sum: 62f4f79c0861ad292ba3cf77b4c48319
-
Download size: 47 KB
-
Estimated disk space required: 520 KB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/compface
Installation of Compface
Install Compface by running the following commands:
./configure --prefix=/usr --mandir=/usr/share/man &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -m755 -v xbm2xface.pl /usr/bin
Contents
Installed Programs: compface, uncompface and xbm2xface.pl
Installed Library: libcompface.{so,a}
Installed Directories: None
Short Descriptions
compface is a filter for generating highly compressed representations of 48x48x1 face image files.
uncompface is an inverse filter which performs an inverse transformation with no loss of data.
xbm2xface.pl is a script to generate xfaces.
libcompface.{so,a} allows the compression and decompression algorithms to be used in other programs such as MTAs.
11.4 desktop-file-utils-0.26
Introduction to Desktop File Utils
The Desktop File Utils package contains command line utilities for working with Desktop entries. These utilities are used by Desktop Environments and other applications to manipulate the MIME-types application databases and help adhere to the Desktop Entry Specification.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-0.26.tar.xz
-
Download MD5 sum: 29739e005f5887cf41639b8450f3c23f
-
Download size: 84 KB
-
Estimated disk space required: 1.8 MB
-
Estimated build time: less than 0.1 SBU
Desktop File Utils Dependencies
Required
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/desktop-file-utils
Installation of Desktop File Utils
Warning
If you are upgrading from a previous version of desktop-file-utils that used the Autotools method of installing and configuring the package, you must remove the desktop-file-edit symlink by using the following commands.
rm -fv /usr/bin/desktop-file-edit
Install Desktop File Utils 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.
Configuring Desktop File Utils
Configuration Information
The XDG Base Directory specification defines the standard locations for applications to place data and configuration files. These files can be used, for instance, to define the menu structure and menu items in a desktop environment.
The default location for configuration files to be installed is /etc/xdg, and the default locations for data files are /usr/local/share and /usr/share. These locations can be extended with the environment variables XDG_CONFIG_DIRS and XDG_DATA_DIRS, respectively. The GNOME, KDE and XFCE environments respect these settings.
When a package installs a .desktop file to a location in one of the base data directories, the database that maps MIME-types to available applications can be updated. For instance, the cache file at /usr/share/applications/mimeinfo.cache can be rebuilt by executing the following command as the root user:
install -vdm755 /usr/share/applications &&
update-desktop-database /usr/share/applications
Contents
Installed Programs: desktop-file-edit, desktop-file-install, desktop-file-validate and update-desktop-database
Installed Libraries: None
Installed Directories: None
Short Descriptions
desktop-file-edit is used to modify an existing desktop file entry.
desktop-file-install is used to install a new desktop file entry. It is also used to rebuild or modify the MIME-types application database.
desktop-file-validate is used to verify the integrity of a desktop file.
update-desktop-database is used to update the MIME-types application database.
11.5 dos2unix-7.4.4
Introduction to dos2unix
The dos2unix package contains an any to any text format converter.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/dos2unix/dos2unix-7.4.4.tar.gz
-
Download MD5 sum: 6ac049a4eb878bbc57019f731a28f7b5
-
Download size: 896 KB
-
Estimated disk space required: 8.1 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/dos2unix
Installation of dos2unix
Build dos2unix by running the following commands:
make
To test the results, issue: make check.
Now, as the root user:
make install
Contents
Installed Program: dos2unix, mac2unix, unix2dos, and unix2mac
Installed Libraries: None
Installed Directories: /usr/share/doc/dos2unix-7.4.4
Short Descriptions
dos2unix converts plain text files in DOS format to Unix format.
mac2unix converts plain text files in Mac format to Unix format.
unix2dos converts plain text files in Unix format to DOS format.
unix2mac converts plain text files in Unix format to Mac format.
11.6 Graphviz-7.1.0
Introduction to Graphviz
The Graphviz package contains graph visualization software. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks. Graphviz has several main graph layout programs. It also has web and interactive graphical interfaces, auxiliary tools, libraries, and language bindings.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://gitlab.com/graphviz/graphviz/-/archive/7.1.0/graphviz-7.1.0.tar.bz2
-
Download MD5 sum: 495f7da354be58309d91a2e0d377ae3b
-
Download size: 26 MB
-
Estimated disk space required: 193 MB
-
Estimated build time: 0.6 SBU (using parallelism=4)
Graphviz Dependencies
Note
Graphviz basic usage does not need any libraries out of what is found in the LFS book. Its “core” rendering engine allows to generate several graphic formats, such as Postscript, SVG, VML, .fig, and Tk. Those formats can be converted to almost any other format using for example tools from ImageMagick-7.1.0-61. The dependencies below add the ability to generate graph images in bitmap format, to display the graph image on screen, to edit a graph by viewing the resulting image directly, or to view large graphs. Since Graphviz is a dependency of several other packages in this book, it is suggested to first build it without any dependencies, then to rebuild it when you have built enough packages to suit your needs.
Optional, for various bitmap outputs
Pango-1.50.12, with Cairo-1.17.6, Xorg Libraries, Fontconfig-2.14.2, and libpng-1.6.39, to generate images in bitmap SVG, postscript, PNG, and PDF formats, or displaying the image on screen. The PNG output is required for building gegl-0.4.40
Adding GTK+-2.24.33 with libjpeg-turbo-2.1.5.1 adds support for JPEG, BMP, TIF, and ICO formats, and allows displaying the image in a GTK+ window
GD Library may be used instead of Pango. It adds the ability to generate images in GIF, VRML, and GD formats, but Pango provides better outputs for the other formats, and is needed for displaying images
Other formats may be added with libwebp-1.3.0 (WebP support is considered experimental), DevIL, libLASi, and glitz
Optional, to load graphic images that may be displayed inside the nodes of a graph
libgs.so from ghostscript-10.00.0, librsvg-2.54.5, and Poppler-23.02.0
Optional, to build more tools
Freeglut-3.4.0 (with libglade-2.6.4, GtkGLExt, and libGTS, for building the smyrna large graph viewer, which is considered experimental), and Qt-5.15.8 (for building the gvedit graph editor.)
Optional (To Build Language Bindings)
SWIG-4.1.1 (SWIG must be installed or no bindings will be built), GCC-12.2.0 (for the go compiler), Guile-3.0.9, OpenJDK-19.0.2, Lua-5.4.4, PHP-8.2.3, Ruby-3.2.1, Tk-8.6.13, Io, Mono, OCaml, and R
Optional (building tools)
Criterion (framework for tests) and Electric Fence
Optional (for building the pdf documentation)
ghostscript-10.00.0 (for the ps2pdf command)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/graphviz
Installation of Graphviz
Install Graphviz by running the following commands:
sed -i '/LIBPOSTFIX="64"/s/64//' configure.ac &&
./autogen.sh &&
./configure --prefix=/usr \
--docdir=/usr/share/doc/graphviz-7.1.0
Note
A warning is generated by autogen.sh because the build tree is not a git repository. As a result, the build date is set to 0. To get a meaningful date in the version string, you can run:
sed -i "s/0/$(date +%Y%m%d)/" builddate.h
Whether or not you fix the date, proceed to compile the package:
make
This package does not come with a test suite that provides meaningful results.
Now, as the root user:
make install
Command Explanations
sed … configure.ac: This command is needed to avoid installing files in /usr/lib64.
--with-javaincludedir="$JAVA_HOME/include -I$JAVA_HOME/include/linux": If you have built OpenJDK-19.0.2 in /opt, and you want to build the JAVA bindings, it is necessary to specify the location of the JAVA header files to configure. The configure switch is designed for only one directory, but two directories need to be included. This is possible nevertheless by using the -I switch inside the variable.
--with-webp: Even if libwebp-1.3.0 is installed, it is not included in the build without this option.
--with-smyrna: Even if the needed dependencies are installed, the interactive graph viewer smyrna is not built without this option.
Configuring Graphviz
Config Files
/usr/lib/graphviz/config
Configuration Information
There are no specific configuration requirements for Graphviz. You may consider installing the additional plugins and tools available from the download page at https://graphviz.org/download/source/ for additional capabilities. If additional plugins are installed, you can run dot -c (as the root user) to update the config file in /usr/lib/graphviz.
Contents
Installed Programs: acyclic, bcomps, ccomps, circo, cluster, dijkstra, dot, dot2gxl, dot_builtins, edgepaint, fdp, gc, gml2gv, graphml2gv, gv2gml, gv2gxl, gvcolor, gvedit, gvgen, gvmap, gvmap.sh, gvpack, gvpr, gxl2dot, gxl2gv, mm2gv, neato, nop, osage, patchwork, prune, sccmap, sfdp, tred, twopi, unflatten, and vimdot
Installed Libraries: libcdt.so, libcgraph.so, libgvc.so, libgvpr.so, liblab_gamut.so, libpathplan.so, libxdot.so, and several plugins in /usr/lib/graphviz. There are also several in subdirectories of /usr/lib/{lua,perl5,php,python3.11,tcl8.6}. Unfortunately, some libraries are duplicated.
Installed Directories: /usr/include/graphviz, /usr/lib/graphviz, /usr/lib/tcl8.6/graphviz, /usr/share/doc/graphviz-7.1.0, and /usr/share/graphviz
Short Descriptions
acyclic is a filter that takes a directed graph as input and outputs a copy of the graph with sufficient edges reversed to make the graph acyclic.
bcomps decomposes graphs into their biconnected components, printing the components to standard output.
ccomps decomposes graphs into their connected components, printing the components to standard output.
circo draws graphs using a circular layout.
cluster takes a graph in DOT format as input, finds node clusters and then augments the graph with this information.
diffimg (needs GD Library) generates an image where each pixel is the difference between the corresponding pixel in each of the two source images.
dijkstra reads a stream of graphs and for each computes the distance of every node from sourcenode.
dot draws directed graphs. It works well on DAGs and other graphs that can be drawn as hierarchies. It reads attributed graph files and writes drawings. By default, the output format dot is the input file with layout coordinates appended.
dot2gxl converts between graphs represented in GXL and in the DOT language. Unless a conversion type is specified using a flag, gxl2dot will deduce the type of conversion from the suffix of the input file, a .dot suffix causing a conversion from DOT to GXL, and a .gxl suffix causing a conversion from GXL to DOT.
edgepaint performs edge coloring to disambiguate crossing edges.
fdp draws undirected graphs using a “spring” model. It relies on a force-directed approach in the spirit of Fruchterman and Reingold.
gc is a graph analogue to wc in that it prints to standard output the number of nodes, edges, connected components or clusters contained in the input files. It also prints a total count for all graphs if more than one graph is given.
gml2gv converts a graph specified in the GML format to a graph in the GV (formerly DOT) format.
graphml2gv converts a graph specified in the GRAPHML format to a graph in the GV (formerly DOT) format.
gv2gml converts a graph specified in the GV format to a graph in the GML format.
gv2gxl converts a graph specified in the GV format to a graph in the GXL format.
gvcolor is a filter that sets node colors from initial seed values. Colors flow along edges from tail to head, and are averaged (as HSB vectors) at nodes.
gvedit provides a simple graph editor and viewer. It allows many graphs to be viewed at the same time. The text of each graph is displayed in its own text window.
gvgen generates a variety of simple, regularly-structured abstract graphs.
gvmap takes as input a graph in DOT format, finds node clusters and produces a rendering of the graph as a geographic-style map, with clusters highlighted, in xdot format.
gvmap.sh is a pipeline for running gvmap.
gvpack reads in a stream of graphs, combines the graphs into a single layout, and produces a single graph serving as the union of the input graphs.
gvpr is a graph stream editor inspired by awk. It copies input graphs to its output, possibly transforming their structure and attributes, creating new graphs, or printing arbitrary information.
gxl2dot converts between graphs represented in GXL and in the DOT language. Unless a conversion type is specified using a flag, gxl2dot will deduce the type of conversion from the suffix of the input file, a .dot suffix causing a conversion from DOT to GXL, and a .gxl suffix causing a conversion from GXL to DOT.
gxl2gv converts between graphs represented in GXL and in the GV language.
mm2gv converts a sparse matrix of the Matrix Market format to a graph in the GV (formerly DOT) format.
neato draws undirected graphs using “spring” models. Input files must be formatted in the dot attributed graph language. By default, the output of neato is the input graph with layout coordinates appended.
nop reads a stream of graphs and prints each in pretty-printed (canonical) format on stdout. If no files are given, it reads from stdin.
osage draws clustered graphs. It takes any graph in DOT format as input.
patchwork draws clustered graphs using a squarified treemap layout. It takes any graph in DOT format as input.
prune reads directed graphs in the same format used by dot and removes subgraphs rooted at nodes specified on the command line via options.
sccmap decomposes digraphs into strongly connected components and an auxiliary map of the relationship between components. In this map, each component is collapsed into a node. The resulting graphs are printed to stdout.
sfdp draws undirected graphs using the “spring” model, but it uses a multi-scale approach to produce layouts of large graphs in a reasonably short time.
tred computes the transitive reduction of directed graphs, and prints the resulting graphs to standard output. This removes edges implied by transitivity. Nodes and subgraphs are not otherwise affected.
twopi draws graphs using a radial layout. Basically, one node is chosen as the center and put at the origin. The remaining nodes are placed on a sequence of concentric circles centered about the origin, each a fixed radial distance from the previous circle.
unflatten is a preprocessor to dot that is used to improve the aspect ratio of graphs having many leaves or disconnected nodes. The usual layout for such a graph is generally very wide or tall.
vimdot is a simple script which launches the gvim or vim editor along with a GUI window showing the dot output of the edited file.
libcdt.so manages run-time dictionaries using standard container data types: unordered set/multiset, ordered set/multiset, list, stack, and queue.
libcgraph.so supports graph programming by maintaining graphs in memory and reading and writing graph files. Graphs are composed of nodes, edges, and nested subgraphs.
libgvc.so provides a context for applications wishing to manipulate and render graphs. It provides command line parsing interfaces, common rendering code, and a plugin mechanism for renderers.
libpathplan.so contains functions to find the shortest path between two points in a simple polygon.
libxdot.so provides support for parsing and deparsing graphical operations specified by the xdot language.
11.7 GTK-Doc-1.33.2
Introduction to GTK-Doc
The GTK-Doc package contains a code documenter. This is useful for extracting specially formatted comments from the code to create API documentation. This package is optional; if it is not installed, packages will not build the documentation. This does not mean that you will not have any documentation. If GTK-Doc is not available, the install process will copy any pre-built documentation to your system.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/gtk-doc/1.33/gtk-doc-1.33.2.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/gtk-doc/1.33/gtk-doc-1.33.2.tar.xz
-
Download MD5 sum: ea6563421abe964d02135ca0d5b8dd8e
-
Download size: 496 KB
-
Estimated disk space required: 13 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
GTK-Doc Dependencies
Required
docbook-xml-4.5, docbook-xsl-nons-1.79.2, itstool-2.0.7, and libxslt-1.1.37
Recommended
Pygments-2.14.0 at run time
Optional
For tests: dblatex or fop-2.8 (XML PDF support), GLib-2.74.5, Which-2.21, and Python modules lxml-4.9.2, parameterized, and yelp-tools
Note
The optional python modules above can be easily installed with the pip3 command.
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gtk-doc
Installation of GTK-Doc
Install GTK-Doc by running the following commands:
autoreconf -fiv &&
./configure --prefix=/usr &&
make
The test suite will hang if the package (or a previous version) is not already installed.
Now, as the root user:
make install
To test the results, issue: make check. Some tests will fail depending on optionally installed packages.
Contents
Installed Programs: gtkdocize, gtkdoc-check, gtkdoc-depscan, gtkdoc-fixxref, gtkdoc-mkdb, gtkdoc-mkhtml, gtkdoc-mkhtml2, gtkdoc-mkman, gtkdoc-mkpdf, gtkdoc-rebase, gtkdoc-scan, and gtkdoc-scangobj
Installed Libraries: None
Installed Directories: /usr/share/gtk-doc and /usr/share/cmake/GtkDoc
Short Descriptions
gtkdoc* these are all shell, or Python scripts used by package Makefile scripts to generate documentation for the package being built.
11.8 Highlight-4.4
Introduction to Highlight
Highlight is an utility that converts source code to formatted text with syntax highlighting.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): http://www.andre-simon.de/zip/highlight-4.4.tar.bz2
-
Download MD5 sum: e61056f9cfe5f865ea7f87c74f05d22f
-
Download size: 1.4 MB
-
Estimated disk space required: 31 MB (with gui)
-
Estimated build time: 0.3 SBU (Using paralllelism=4; with gui)
Highlight Dependencies
Required
Optional
Qt-5.15.8 (to build the GUI front-end)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/highlight
Installation of Highlight
For consistency, do not compress man pages.
sed -i '/GZIP/s/^/#/' makefile
To build Highlight run the following command:
make
To build the Qt5 GUI front-end, run the following command:
make doc_dir=/usr/share/doc/highlight-4.4/ gui
This package does not come with a test suite.
To install Highlight, run the following command as the root user:
make doc_dir=/usr/share/doc/highlight-4.4/ install
To install the GUI program, run the following command as the root user:
make install-gui
Command Explanations
doc_dir=/usr/share/doc/highlight-4.4/: installs the highlight documentation into a versioned directory. This parameter is also needed for make gui, because its value would be hardcoded into the gui executable. Note that the trailing “/” is necessary.
Contents
Installed Programs: highlight and highlight-gui (optional)
Installed Libraries: None
Installed Directories: /etc/highlight, /usr/share/doc/highlight-4.4, and /usr/share/highlight
Short Descriptions
highlight is a universal source code to formatted text converter.
highlight-gui is the Qt5 interface to highlight.
11.9 ibus-1.5.27
Introduction to ibus
ibus is an Intelligent Input Bus. It is a new input framework for the Linux OS. It provides a fully featured and user friendly input method user interface.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/ibus/ibus/releases/download/1.5.27/ibus-1.5.27.tar.gz
-
Download MD5 sum: 3590d33fbd84e041acb75fcee818b504
-
Download size: 3.6 MB
-
Estimated disk space required: 66 MB (add 3 MB for tests)
-
Estimated build time: 0.2 SBU (Using parallelism=4; add 0.6 SBU for tests)
Optional Download
- Unicode Character Database: https://www.unicode.org/Public/zipped/15.0.0/UCD.zip
ibus Dependencies
Required
DConf-0.40.0, ISO Codes-4.12.0, and Vala-0.56.4
Recommended
gobject-introspection-1.74.0, GTK+-2.24.33, and libnotify-0.8.1
Optional
GTK+-3.24.36 (to build IM module for it), GTK-4.8.3 (to build IM module for it), D-Bus Python-1.3.2 and PyGObject-3.42.2 (both to build the Python support library), GTK-Doc-1.33.2, and libxkbcommon-1.5.0, Wayland-1.21.0 (both to build the Wayland support programs), and EmojiOne
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/ibus
Installation of ibus
If the optional Unicode Character Database was downloaded, install it now as the root user:
mkdir -p /usr/share/unicode/ucd &&
unzip -uo ../UCD.zip -d /usr/share/unicode/ucd
Note
Be sure to also remove the –disable-unicode-dict in the configure step below.
Fix an issue with deprecated schema entries:
sed -i 's@/desktop/ibus@/org/freedesktop/ibus@g' \
data/dconf/org.freedesktop.ibus.gschema.xml
Install ibus by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-python2 \
--disable-emoji-dict \
--disable-unicode-dict &&
rm -f tools/main.c &&
make
To test the results, issue: make -k check. The test named ibus-compose fails because it uses some locales not installed in LFS. The test named ibus-keypress is known to fail in a Wayland based desktop environment. The test named xkb-latin-layouts is known to fail with a recent xkeyboard-config release. The test named test-override-ibus.py is known to fail if Python support library is enabled.
Now, as the root user:
Note: This command is missing a pair of braces, /usr/share/man/man{… gz}, starting after man until the last character of the command is enclosed!
make install &&
gzip -dfv /usr/share/man/man{1,5}/ibus*.gz,5/00-upstream-settings.5.gz
Command Explanations
--disable-emoji-dict: This switch disables the use of emoticon dictionaries. Omit if you installed the optional package.
--disable-unicode-dict: This switch disables the use of unicode dictionaries. Omit if you installed the optional Unicode Character Database.
rm -f tools/main.c: This command removes a generated file that was not removed when packaging.
--disable-gtk2: This switch disables building the GTK+ 2 immodule. Use it if you have not installed GTK+ 2.
--enable-gtk4: This switch enables building the GTK 4 immodule. Use it if you have installed GTK 4.
--enable-python-library: This switch enables building the Python support library. Use it if you have installed the optional dependencies.
--enable-wayland: This switch enables building the Wayland support programs. Use it if you have installed the optional dependencies.
--with-python=python3: This switch makes the configure script look for Python 3. Use it if you want to build the Python 3 support library alongside the Python 2 one.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.
gzip -dfv …: Decompress installed man pages in accordance with other man pages.
Configuring Ibus
If GTK+-3 or GTK+-2 are installed and --disable-gtk{3,2} are not used, the ibus IM module for GTK+-3 or GTK+-2 will be installed. As the root user, update a cache file of GTK+-3 or GTK+-2 so the GTK-based applications can find the newly installed IM module and use ibus as an input method:
gtk-query-immodules-3.0 --update-cache
The command above updates the cache file for GTK+-3. For GTK+-2, use gtk-query-immodules-2.0 instead of gtk-query-immodules-3.0. GTK-4 does not require a cache file for IM modules.
Contents
Installed Programs: ibus, ibus-daemon, and ibus-setup
Installed Library: libibus-1.0.so and im-ibus.so (GTK+ Immodule)
Installed Directories: /etc/dconf/db/ibus.d, /usr/include/ibus-1.0, /usr/share/gtk-doc/html/ibus, and /usr/share/ibus
Short Descriptions
ibus-daemon is the Intelligent Input Bus Daemon.
ibus-setup is the GTK+ program used to configure the ibus-daemon.
libibus-1.0.so contains the ibus API functions.
11.10 ImageMagick-7.1.0-61
Introduction to ImageMagick
ImageMagick is a collection of tools and libraries to read, write, and manipulate an image in various image formats. Image processing operations are available from the command line. Bindings for Perl and C++ are also available.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.imagemagick.org/archive/releases/ImageMagick-7.1.0-61.tar.xz
-
Download MD5 sum: f9973657738b5c970325e97f198b9977
-
Download size: 9.9 MB
-
Estimated disk space required: 192 MB (with typical dependencies; add 20 MB for checks)
-
Estimated build time: 0.8 SBU (with typical dependencies; add 1.9 SBU for checks, both using parallelism=4)
Note
The ImageMagick source releases are updated frequently and the version shown above may no longer be available from the download locations. You can download a more recent version and use the existing BLFS instructions to install it. Chances are that it will work just fine, but this has not been tested by the BLFS team. If the package version shown above is not available from the locations shown above, you can download it from the BLFS package server at Oregon State University: ftp://ftp.osuosl.org/pub/blfs/conglomeration/ImageMagick/.
ImageMagick Dependencies
Recommended
The optional dependencies listed below should be installed if you need support for the specific format or the conversion tool the dependency provides. Additional information about the dependencies can be found in the Install-unix.txt file located in the source tree as well as issuing the ./configure –help command. A summary of this information, as well as some additional notes can be viewed on-line at https://imagemagick.org/script/install-source.php.
Optional System Utilities
Clang from LLVM-15.0.7, Cups-2.4.2, cURL-7.88.1, FFmpeg-5.1.2, fftw-3.3.10, p7zip-17.04 (LZMA), SANE-1.0.32, Wget-1.21.3, xdg-utils-1.1.3, xterm-379, Dmalloc, Electric Fence and PGP or GnuPG-2.4.0 (you’ll have to do some hacking to use GnuPG), Profiles
Optional Graphics Libraries
JasPer-4.0.0, Little CMS-1.19 or Little CMS-2.14, libgxps-0.3.2, libjpeg-turbo-2.1.5.1, libpng-1.6.39, libraw-0.21.1 (RAW_R), librsvg-2.54.5, libtiff-4.5.0, libwebp-1.3.0, OpenJPEG-2.5.0, Pango-1.50.12, DjVuLibre, FlashPIX (libfpx), FLIF, JBIG-KIT, libheif with libde265 (both needed if converting macOS heic images), libjxl, libraqm, Liquid Rescale, OpenEXR, and RALCGM (or ralcgm)
Optional Graphics Utilities
Dejavu fonts, ghostscript-10.00.0, Gimp-2.10.32, Graphviz-7.1.0, Inkscape-1.2.2, Blender, corefonts, GhostPCL, Gnuplot, POV-Ray, and Radiance
Optional Conversion Tools
Enscript-1.6.6, Potrace-1.16, texlive-20220321 (or install-tl-unx) AutoTrace, GeoExpress Command Line Utilities, AKA MrSID Utilities (binary package), hp2xx, libwmf, UniConvertor, ufraw (for dng files, see https://imagemagick.org/script/formats.php for some special switches) and Utah Raster Toolkit (or URT-3.1b)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/imagemagick
Installation of ImageMagick
Install ImageMagick by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--enable-hdri \
--with-modules \
--with-perl \
--disable-static &&
make
Now, as the root user:
make DOCUMENTATION_PATH=/usr/share/doc/imagemagick-7.1.0 install
To test the installation, issue: make check. Note that the EPS, PS, and PDF tests require a working Ghostscript. One test in ‘make check’ needs “Helvetica” from “Ghostscript Standard Fonts”, which are optionally installed in ghostscript-10.00.0 - that test, and one other, might fail, but all the validation can still pass.
Command Explanations
--enable-hdri: Enables building of a high dynamic range version of ImageMagick.
--with-modules: Enables support for dynamically loadable modules.
--with-perl: Enables building and installing of PerlMagick.
--disable-static: This switch prevents installation of static versions of the libraries.
--with-gslib: Enables support to use the Ghostscript shared library.
--with-rsvg: Enables support to use the librsvg library.
--with-autotrace: Enables support to use the Autotrace library.
--with-wmf: Enables support to use the libwmf library.
--with-gvc: Enables support to use GraphViz.
--with-windows-font-dir= <Some/Directory>: This option specifies the directory where the Windows CoreFonts are installed.
--with-dejavu-font-dir= <Some/Directory>: This option specifies the directory where the DejaVu fonts are installed.
The options and parameters listed above are the only ones you should have to pass to the configure script to activate all the delegate dependencies. All other dependencies will be automatically detected and utilized in the build if they are installed.
Contents
Installed Programs: magick, Magick++-config, MagickCore-config, and MagickWand-config. (animate, compare, composite, conjure, convert, display, identify, import, magick-script, mogrify, montage, and stream are all symbolic links to magick)
Installed Libraries: libMagickCore-7.Q16HDRI.so, libMagickWand-7.Q16HDRI.so and libMagick++-7.Q16HDRI.so
Installed Directories: /etc/ImageMagick-7, /usr/include/ImageMagick-7, /usr/lib/ImageMagick-7.1.0, /usr/lib/perl5/site_perl/5.36/{,auto}/Image/Magick, /usr/share/doc/ImageMagick-7.1.0, and /usr/share/ImageMagick-7
Short Descriptions
animate animates a sequence of images.
compare compares an image to a reconstructed image.
composite composites various images into the given base image.
conjure processes a MSL script to create an image.
convert converts image(s) from one format to another.
display displays an image.
identify describes the format and characteristics of an image file.
import captures an X window.
magick convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample and much more.
Magick{++,Core,Wand}-config show information about the installed versions of the ImageMagick libraries.
mogrify transforms an image.
montage composites various images into a new image.
stream streams one or more pixel components of an image or portion of the image to your choice of storage formats.
Image::Magick allows the reading, manipulation and writing of a large number of image file formats using the ImageMagick library. Run make in the PerlMagick/demo directory of the package source tree after the package is installed to see a nice demo of the module’s capabilities.
libMagickCore-7.Q16HDRI.so provides the C API for ImageMagick.
libMagickWand-7.Q16HDRI.so is the recommended C API for ImageMagick. Unlike the MagickCore API it uses only a few opaque types.
libMagick++-7.Q16HDRI.so provides the C++ API for ImageMagick.
11.11 ISO Codes-4.12.0
Introduction to ISO Codes
The ISO Codes package contains a list of country, language and currency names and it is used as a central database for accessing this data.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.debian.org/debian/pool/main/i/iso-codes/iso-codes_4.12.0.orig.tar.xz
-
Download MD5 sum: bd6212559888336ad78ca6975541568a
-
Download size: 3.7 MB
-
Estimated disk space required: 93 MB
-
Estimated build time: 0.1 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/iso-codes
Installation of ISO Codes
The directory is called iso-codes-4.12.0.
Install ISO Codes by running the following commands:
./configure --prefix=/usr &&
make
To test the results, issue: make check.
Note
If you install ISO codes over a previous installed version, the install step will fail when creating some symlinks. In order to properly update them, run:
sed -i '/^LN_S/s/s/sfvn/' */Makefile
Now, as the root user:
make install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directory: /usr/share/iso-codes, /usr/share/xml/iso-codes
11.12 lsof-4.95.0
Introduction to lsof
The lsof package is useful to LiSt Open Files for a given running application or process.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/lsof-org/lsof/releases/download/4.95.0/lsof_4.95.0.linux.tar.bz2
-
Download MD5 sum: 670010707104b1b1fc4cabae974465a6
-
Download size: 512 KB
-
Estimated disk space required: 3.3 MB (add 700 KB for tests)
-
Estimated build time: less than 0.1 SBU (add 0.5 SBU for tests)
lsof Dependencies
Required
Optional
Nmap-7.93 (with a symbolic link nc pointing to ncat in /usr/bin; used in tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/lsof
Kernel Configuration
To run the tests, the following option should be enabled in the kernel configuration:
General setup --->
[*] POSIX Message Queues [CONFIG_POSIX_MQUEUE]
Installation of lsof
Install lsof by running the following commands:
./Configure -n linux &&
make
The tests should be run as the root user. They require that the POSIX message queues are enabled in the kernel, and that Nmap-7.93 be installed with a symbolic link /usr/bin/nc pointing to ncat.
make check
One test, case-20-ux-socket-endpoint, is known to fail. Other test may fail if the tests are run in a script.
Now, as the root user:
install -v -m4755 -o root -g root lsof /usr/bin &&
install -v lsof.8 /usr/share/man/man8
Command Explanations
./Configure -n linux: Avoid AFS, customization, and inventory checks, and use the linux dialect.
install -m4755 …: lsof should be suid root to allow users to list all files. This may be a security threat on some systems. In that case change to -m755 and use sudo to run the program.
Contents
Installed Program: lsof
Installed Libraries: None
Installed Directories: None
Short Descriptions
lsof lists open files for running processes.
11.13 mandoc-1.14.6
Introduction to mandoc
mandoc is an utility to format manual pages.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://mandoc.bsd.lv/snapshots/mandoc-1.14.6.tar.gz
-
Download MD5 sum: f0adf24e8fdef5f3e332191f653e422a
-
Download size: 684 KB
-
Estimated disk space required: 22 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Installation of mandoc
Many utilities provided by mandoc conflicts with Man-DB in LFS. Only build the mandoc command:
./configure &&
make mandoc
To test the package, issue: make regress.
Now, as the root user:
install -vm755 mandoc /usr/bin &&
install -vm644 mandoc.1 /usr/share/man/man1
Contents
Installed Programs: mandoc
Short Descriptions
mandoc Formats manual pages.
11.14 pinentry-1.2.1
Introduction to PIN-Entry
The PIN-Entry package contains a collection of simple PIN or pass-phrase entry dialogs which utilize the Assuan protocol as described by the �gypten project. PIN-Entry programs are usually invoked by the gpg-agent daemon, but can be run from the command line as well. There are programs for various text-based and GUI environments, including interfaces designed for Ncurses (text-based), and for the common GTK and Qt toolkits.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.gnupg.org/ftp/gcrypt/pinentry/pinentry-1.2.1.tar.bz2
-
Download (FTP): ftp://ftp.gnupg.org/gcrypt/pinentry/pinentry-1.2.1.tar.bz2
-
Download MD5 sum: be9b0d4bb493a139d2ec20e9b6872d37
-
Download size: 536 KB
-
Estimated disk space required: 5.6 MB
-
Estimated build time: less than 0.1 SBU
PIN-Entry Dependencies
Required
libassuan-2.5.5 and libgpg-error-1.46
Optional
Emacs-28.2, FLTK-1.3.8, Gcr-3.41.1, GTK+-2.24.33, libsecret-0.20.5, Qt-5.15.8, and efl
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pinentry
Installation of PIN-Entry
Install PIN-Entry by running the following commands:
./configure --prefix=/usr --enable-pinentry-tty &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--enable-inside-emacs=yes/no: Default is no.
--enable-pinentry-qt=yes/no: Default is yes.
--enable-pinentry-gtk2=yes/no: Default is yes. Even if other pinentry-* is installed, pinentry will be a symlink to pinentry-gtk-2.
--enable-pinentry-gnome3=yes/no: Default is yes. Actually, it uses Gcr for the pinentry dialog.
--enable-pinentry-tty: Default is ‘maybe’.
Contents
Installed Programs: pinentry (symlink), pinentry-curses, pinentry-emacs, pinentry-fltk, pinentry-gnome3, pinentry-gtk-2, pinentry-qt, and pinentry-tty
Installed Libraries: None
Installed Directory: None
Short Descriptions
pinentry is a symbolic link to the default PIN-Entry program.
pinentry-curses is an Ncurses text-based PIN-Entry helper program.
pinentry-emacs is an Emacs version of the PIN-Entry helper program.
pinentry-fltk is a FLTK PIN-Entry helper program.
pinentry-gnome3 is a GNOME-3 PIN-Entry helper program.
pinentry-gtk-2 is a GTK+2 PIN-Entry program program.
pinentry-qt is a Qt4 or 5 PIN-Entry helper program.
pinentry-tty is a tty PIN-Entry helper program.
11.15 Rep-gtk-0.90.8.3
Introduction to Rep-gtk
The rep-gtk package contains a Lisp and GTK binding. This is useful for extending GTK-2 and GDK libraries with Lisp. Starting at rep-gtk-0.15, the package contains the bindings to GTK and uses the same instructions. Both can be installed, if needed.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.tuxfamily.org/librep/rep-gtk/rep-gtk_0.90.8.3.tar.xz
-
Download MD5 sum: b20f72cf00d316d35fa7f84a6e7532af
-
Download size: 120 KB
-
Estimated disk space required: 13 MB
-
Estimated build time: 0.1 SBU
Rep-gtk Dependencies
Required
GTK+-2.24.33 and librep-0.92.7
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/rep-gtk
Installation of Rep-gtk
Install rep-gtk by running the following commands:
./autogen.sh --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: Lisp bindings
Installed Directory: /usr/include/rep-gtk and /usr/lib/rep/gui
Short Descriptions
Lisp bindings are libraries stored in /usr/lib/rep/gui/ that assist communication between Lisp and the GTK libraries.
11.16 Screen-4.9.0
Introduction to Screen
Screen is a terminal multiplexor that runs several separate processes, typically interactive shells, on a single physical character-based terminal. Each virtual terminal emulates a DEC VT100 plus several ANSI X3.64 and ISO 2022 functions and also provides configurable input and output translation, serial port support, configurable logging, multi-user support, and many character encodings, including UTF-8. Screen sessions can be detached and resumed later on a different terminal.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/screen/screen-4.9.0.tar.gz
-
Download (FTP): ftp://ftp.gnu.org/gnu/screen/screen-4.9.0.tar.gz
-
Download MD5 sum: b1ef8ed89134d335e614016634982b6d
-
Download size: 780 KB
-
Estimated disk space required: 7.8 MB
-
Estimated build time: 0.1 SBU
Screen Dependencies
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/screen
Installation of Screen
Install Screen by running the following commands:
sh autogen.sh &&
./configure --prefix=/usr \
--infodir=/usr/share/info \
--mandir=/usr/share/man \
--with-socket-dir=/run/screen \
--with-pty-group=5 \
--with-sys-screenrc=/etc/screenrc &&
sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/* &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -m 644 etc/etcscreenrc /etc/screenrc
Command Explanations
--with-socket-dir=/run/screen: This option places the per-user sockets in a standard location.
--with-sys-screenrc=/etc/screenrc: This option places the global screenrc file in /etc.
--with-pty-group=5: This option sets the gid to the value used by LFS.
sed -i -e “s%/usr/local/etc/screenrc%/etc/screenrc%” {etc,doc}/*: This command corrects the configuration and documentation files to the location that is used here for the global screenrc file.
Configuring Screen
Config Files
/etc/screenrc and ~/.screenrc
Configuration Information
You may want to look at the example configuration file that was installed and customize it for your needs.
Contents
Installed Program: screen (symlink) and screen-4.9.0
Installed Libraries: None
Installed Directory: /usr/share/screen and /run/screen
Short Descriptions
screen is a terminal multiplexor with VT100/ANSI terminal emulation.
11.17 shared-mime-info-2.2
Introduction to Shared Mime Info
The Shared Mime Info package contains a MIME database. This allows central updates of MIME information for all supporting applications.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://gitlab.freedesktop.org/xdg/shared-mime-info/-/archive/2.2/shared-mime-info-2.2.tar.gz
-
Download MD5 sum: 06cb9e92e4211dc53fd52b7bfd586c78
-
Download size: 6.7 MB
-
Estimated disk space required: 24 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Additional Downloads
-
Optional download, required to run the test suite: https://anduin.linuxfromscratch.org/BLFS/xdgmime/xdgmime.tar.xz
xdgmime md5sum: 7dfb4446705d345d3acd672024049e86
Shared Mime Info Dependencies
Required
GLib-2.74.5 and libxml2-2.10.3
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/shared-mime-info
Installation of Shared Mime Info
Install Shared Mime Info by running the following commands:
If you wish to run the test suite, you must first extract the xdgmime tarball into the current directory, and compile it so that meson can find it:
tar -xf ../xdgmime.tar.xz &&
make -C xdgmime
Now build the package:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release -Dupdate-mimedb=true .. &&
ninja
If you have followed the instructions above to build xdgmime, to test the result 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.
-Dupdate-mimedb=true: This parameter tells the build system to run update-mime-database during installation. Otherwise, this must be done manually in order to be able to use the MIME database.
Contents
Installed Program: update-mime-database
Installed Library: None
Installed Directory: /usr/share/mime
Short Descriptions
update-mime-database assists in adding MIME data to the database.
11.18 Sharutils-4.15.2
Introduction to Sharutils
The Sharutils package contains utilities that can create ‘shell’ archives.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/sharutils/sharutils-4.15.2.tar.xz
-
Download (FTP): ftp://ftp.gnu.org/gnu/sharutils/sharutils-4.15.2.tar.xz
-
Download MD5 sum: 5975ce21da36491d7aa6dc2b0d9788e0
-
Download size: 1.1 MB
-
Estimated disk space required: 22 MB (with the test suite)
-
Estimated build time: 0.4 SBU (with the test suite)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/sharutils
Installation of Sharutils
Fix a heap buffer overflow, and an issue exposed by GCC-10:
sed -i 's/BUFSIZ/rw_base_size/' src/unshar.c &&
sed -i '/program_name/s/^/extern /' src/*opts.h
Install Sharutils by running the following commands:
sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c &&
echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h &&
./configure --prefix=/usr &&
make
To test the results, issue make check.
Now, as the root user:
make install
Contents
Installed Programs: shar, unshar, uudecode and uuencode
Installed Libraries: None
Installed Directories: None
Short Descriptions
shar creates “shell archives” (or shar files) which are in text format and can be mailed.
unshar unpacks a shar file.
uudecode reads a file (or by default the standard input) and writes an encoded version to the standard output. The encoding uses only printing ASCII characters.
uuencode reads a file (or by default the standard input) and decodes the uuencoded version to the standard output.
11.19 telepathy-mission-control-5.16.6
Introduction to Telepathy Mission Control
Telepathy Mission Control is an account manager and channel dispatcher for the Telepathy framework, allowing user interfaces and other clients to share connections to real-time communication services without conflicting.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://telepathy.freedesktop.org/releases/telepathy-mission-control/telepathy-mission-control-5.16.6.tar.gz
-
Download MD5 sum: 911e990c7755eb98a8022223f649405d
-
Download size: 1.1 MB
-
Estimated disk space required: 28 MB
-
Estimated build time: 0.2 SBU
Telepathy Mission Control Dependencies
Required
Recommended
Optional
D-Bus Python-1.3.2 (for the “twisted” tests), GTK-Doc-1.33.2, UPower-1.90.0, and Twisted (for the “twisted” tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/telepathy-mission-control
Installation of Telepathy Mission Control
Install Telepathy Mission Control by running the following commands:
PYTHON=python3 \
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
PYTHON=python3: prevents using Python2 if it is installed.
--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: mc-tool, mc-wait-for-name and mission-control-5 (library executable)
Installed Libraries: libmission-control-plugins.so
Installed Directories: /usr/include/mission-control-5.5 and /usr/share/gtk-doc/html/mission-control-plugins
Short Descriptions
mc-tool is a command line tool used to manipulate Mission Control accounts.
mc-wait-for-name waits for a D-Bus bus name that will be provided automatically by the desktop session.
mission-control-5 is a D-Bus service which runs on the session bus to implement AccountManager and ChannelDispatcher services described in the Telepathy D-Bus specification.
libmission-control-plugins.so contains Telepathy Mission Control plugin API functions.
11.20 tidy-html5-5.8.0
Introduction to Tidy HTML5
The Tidy HTML5 package contains a command line tool and libraries used to read HTML, XHTML and XML files and write cleaned up markup. It detects and corrects many common coding errors and strives to produce visually equivalent markup that is both W3C compliant and compatible with most browsers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/htacg/tidy-html5/archive/5.8.0/tidy-html5-5.8.0.tar.gz
-
Download MD5 sum: 0f6c55ef651e258adbe5750f555af50f
-
Download size: 992 KB
-
Estimated disk space required: 11 MB
-
Estimated build time: 0.2 SBU
Tidy HTML5 Dependencies
Required
Recommended
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/tidy
Installation of Tidy HTML5
Install Tidy HTML5 by running the following commands:
cd build/cmake &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TAB2SPACE=ON \
../.. &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
rm -fv /usr/lib/libtidy.a &&
install -v -m755 tab2space /usr/bin
Command Explanations
-DCMAKE_BUILD_TYPE=Release: This switch is used to build the release library without any debug assert in the code.
-DBUILD_TAB2SPACE=ON: This switch is used to enable building the tab2space utility.
Configuring Tidy HTML5
Config Files
The absolute path of the file specified in HTML_TIDY.
Configuration Information
The default configuration options can be set in the file defined in HTML_TIDY. Additional configuration options can be passed to tidy via command line parameters or the -config <file> parameter.
Contents
Installed Programs: tab2space and tidy
Installed Library: libtidy.so
Installed Directory: /usr/share/doc/tidy-5.8.0
Short Descriptions
tab2space is a utility to expand tabs and ensure consistent line endings.
tidy validates, corrects, and pretty-prints HTML files.
libtidy.so library provides the Tidy HTML5 API functions to tidy and can also be called by other programs.
11.21 Time-1.9
Introduction to Time
The time utility is a program that measures many of the CPU resources, such as time and memory, that other programs use. The GNU version can format the output in arbitrary ways by using a printf-style format string to include various resource measurements.
Although the shell has a builtin command providing similar functionalities, this utility is required by the LSB.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/time/time-1.9.tar.gz
-
Download (FTP): ftp://ftp.gnu.org/gnu/time/time-1.9.tar.gz
-
Download MD5 sum: d2356e0fe1c0b85285d83c6b2ad51b5f
-
Download size: 584 KB
-
Estimated disk space required: 4.0 MB (with tests)
-
Estimated build time: 0.1 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/time
Installation of Time
Install Time 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 Program: time
Installed Library: None
Installed Directory: None
Short Descriptions
time reports various statistics about an executed command.
11.22 tree-2.1.0
Introduction to tree
The tree application is useful to display a dictionary tree’s contents, including files, directories, and links.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://mama.indstate.edu/users/ice/tree/src/tree-2.1.0.tgz
-
Download MD5 sum: 50aa5cdb28df6340ef67a3a3ec953ffc
-
Download size: 60 KB
-
Estimated disk space required: 524 KB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/tree
Installation of tree
Install tree by running the following commands:
make
This package does not come with a test suite.
Now, as the root user:
make PREFIX=/usr MANDIR=/usr/share/man install &&
chmod -v 644 /usr/share/man/man1/tree.1
Contents
Installed Program: tree
Installed Libraries: None
Installed Directories: None
Short Descriptions
tree displays a directory tree in a terminal.
11.23 unixODBC-2.3.11
Introduction to unixODBC
The unixODBC package is an Open Source ODBC (Open DataBase Connectivity) sub-system and an ODBC SDK for Linux, Mac OSX, and UNIX. ODBC is an open specification for providing application developers with a predictable API with which to access data sources. Data sources include optional SQL Servers and any data source with an ODBC Driver. unixODBC contains the following components used to assist with the manipulation of ODBC data sources: a driver manager, an installer library and command line tool, command line tools to help install a driver and work with SQL, drivers and driver setup libraries.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/lurcher/unixODBC/releases/download/2.3.11/unixODBC-2.3.11.tar.gz
-
Download (FTP): ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.11.tar.gz
-
Download MD5 sum: 0ff1fdbcb4c3c7dc2357f3fd6ba09169
-
Download size: 1.7 MB
-
Estimated disk space required: 28 MB
-
Estimated build time: 0.2 SBU (using parallelism=4)
unixODBC Dependencies
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/unixodbc
Installation of unixODBC
Install unixODBC by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc/unixODBC &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
find doc -name "Makefile*" -delete &&
chmod 644 doc/{lst,ProgrammerManual/Tutorial}/* &&
install -v -m755 -d /usr/share/doc/unixODBC-2.3.11 &&
cp -v -R doc/* /usr/share/doc/unixODBC-2.3.11
Command Explanations
--enable-drivers: This parameter enables building the drivers that were installed by default in previous versions.
--enable-drivers-conf: This parameter enables building the driver configuration libraries that were installed by default in previous versions.
Configuring unixODBC
Config Files
/etc/unixODBC/*
Configuration Information
The files in /etc/unixODBC are meant to be configured by the system administrator (or the ODBC site administrator if appropriate privileges are granted to /etc/unixODBC). These files are not meant to be directly edited. The ODBC installer library is responsible for reading and writing the unixODBC config files.
Unfortunately, there are not many man, or any info pages for the various programs available in the unixODBC package. Along with the information in the “Short Descriptions” below and the documentation installed in /usr/share/doc/unixODBC-2.3.11, there are many README files throughout the source tree where the use and functionality of the programs can be found. Additionally, you can use the parameter -? for syntax and usage information. Lastly, the unixODBC web site at http://www.unixodbc.org/ has very good information.
Contents
Installed Programs: dltest, isql, iusql, odbc_config, odbcinst, and slencheck
Installed Libraries: libodbc.so, libodbccr.so, and libodbcinst.so
Installed Directories: /etc/unixODBC and /usr/share/doc/unixODBC-2.3.11
Short Descriptions
dltest is a utility used to check a shared library to see if it can be loaded and if a given symbol exists in it.
isql is a utility which can be used to submit SQL to a data source and to format/output results. It can be used in batch or interactive mode.
iusql provides the same functionality as the isql program.
odbc_config is used to find out details about the installation of the unixODBC package.
odbcinst is a utility created for install script/RPM writers. It is a command line interface to key functionality in the libodbcinst library. It does not copy any files (i.e., libraries) but it will modify the ODBC System Information for the user.
slencheck is a utility which attempts to check whether an ODBC driver was built with 32-bit or 64-bit SQLLEN types.
11.24 Xdg-user-dirs-0.18
Introduction to Xdg-user-dirs
Xdg-user-dirs is a tool to help manage “well known” user directories like the desktop folder and the music folder. It also handles localization (i.e. translation) of the filenames.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://user-dirs.freedesktop.org/releases/xdg-user-dirs-0.18.tar.gz
-
Download MD5 sum: dc7decea7ffb58cd067eff1fe1798cae
-
Download size: 267 KB
-
Estimated disk space required: 3.0 MB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/xdg-user-dirs
Installation of Xdg-user-dirs
Install xdg-user-dirs by running the following commands:
./configure --prefix=/usr --sysconfdir=/etc &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Configuring Xdg-user-dirs
Config Files
~/.config/user-dirs.dirs, /etc/xdg/user-dirs.conf, and /etc/xdg/user-dirs.defaults. Those default locations can be overridden by XDG_CONFIG_HOME and XDG_CONFIG_DIRS
Contents
Installed Programs: xdg-user-dir and xdg-user-dirs-update
Installed Library: None
Installed Directory: None
Short Descriptions
xdg-user-dir looks up the current path for one of the XDG user directories.
xdg-user-dirs-update creates localized versions of the user directories.