Skip to the content.

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

Asciidoctor Dependencies

Required

Ruby-3.2.1

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

Bogofilter Dependencies

Required

Berkeley DB-5.3.28

Gsl-2.7.1 and libxml2-2.10.3

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

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

Desktop File Utils Dependencies

Required

GLib-2.74.5

Optional

Emacs-28.2

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

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

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

GTK-Doc Dependencies

Required

docbook-xml-4.5, docbook-xsl-nons-1.79.2, itstool-2.0.7, and libxslt-1.1.37

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

Highlight Dependencies

Required

Boost-1.81.0 and Lua-5.4.4

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

Optional Download

ibus Dependencies

Required

DConf-0.40.0, ISO Codes-4.12.0, and Vala-0.56.4

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

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

Xorg Libraries

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

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

lsof Dependencies

Required

libtirpc-1.3.3

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

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

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

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

Screen Dependencies

Optional

Linux-PAM-1.5.2

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

Additional Downloads

Shared Mime Info Dependencies

Required

GLib-2.74.5 and libxml2-2.10.3

Optional

xmlto-0.0.28

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

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

Telepathy Mission Control Dependencies

Required

telepathy-glib-0.24.2

NetworkManager-1.42.0

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

Tidy HTML5 Dependencies

Required

CMake-3.25.2

libxslt-1.1.37

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

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

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

unixODBC Dependencies

Optional

Mini SQL and Pth-2.0.7

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

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.