9. General Libraries
Libraries contain code which is often required by more than one program. This has the advantage that each program doesn’t need to duplicate code (and risk introducing bugs), it just has to call functions from the libraries installed on the system. The most obvious example of a set of libraries is Glibc which is installed during the LFS book. This contains all of the C library functions which programs use.
There are two types of libraries: static and shared. Shared libraries (usually libXXX.so) are loaded into memory from the shared copy at runtime (hence the name). Static libraries (libXXX.a) are actually linked into the program executable file itself, thus making the program file larger. Quite often, you will find both static and shared copies of the same library on your system.
Generally, you only need to install libraries when you are installing software that needs the functionality they supply. In the BLFS book, each package is presented with a list of (known) dependencies. Thus, you can figure out which libraries you need to have before installing that program. If you are installing something without using BLFS instructions, usually the README or INSTALL file will contain details of the program’s requirements.
There are certain libraries which nearly everyone will need at some point. In this chapter these and some others are listed and it is explained why you may want to install them.
9.1 Apr-1.7.2
Introduction to Apr
The Apache Portable Runtime (APR) is a supporting library for the Apache web server. It provides a set of application programming interfaces (APIs) that map to the underlying Operating System (OS). Where the OS doesn’t support a particular function, APR will provide an emulation. Thus programmers can use the APR to make a program portable across different platforms.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://archive.apache.org/dist/apr/apr-1.7.2.tar.bz2
-
Download (FTP): ftp://ftp.mirrorservice.org/sites/ftp.apache.org/apr/apr-1.7.2.tar.bz2
-
Download MD5 sum: 9a00835e4da8c215348e263b550fc130
-
Download size: 870 KB
-
Estimated disk space required: 12 MB (additional 4 MB for the tests)
-
Estimated build time: 0.2 SBU (add 1.7 SBU for tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/apr
Installation of Apr
Fix an issue checking a location in a script template:
sed -e '/^case "$0"/s;$0;$(readlink -f $0);' \
-i apr-config.in
Install Apr by running the following commands:
./configure --prefix=/usr \
--disable-static \
--with-installbuilddir=/usr/share/apr-1/build &&
make
To test the results, issue: make test.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Program: apr-1-config
Installed Library: libapr-1.so
Installed Directories: /usr/include/apr-1 and /usr/share/apr-1
Short Descriptions
apr-1-config is a shell script used to retrieve information about the apr library in the system. It is typically used to compile and link against the library.
libapr-1.so is the Apache Portable Runtime library.
9.2 Apr-Util-1.6.3
Introduction to Apr Util
The Apache Portable Runtime Utility Library provides a predictable and consistent interface to underlying client library interfaces. This application programming interface assures predictable if not identical behavior regardless of which libraries are available on a given platform.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://archive.apache.org/dist/apr/apr-util-1.6.3.tar.bz2
-
Download (FTP): ftp://ftp.mirrorservice.org/sites/ftp.apache.org/apr/apr-util-1.6.3.tar.bz2
-
Download MD5 sum: b6e8c9b31d938fe5797ceb0d1ff2eb69
-
Download size: 423 KB
-
Estimated disk space required: 7.6 MB (add 1.4 MB for tests)
-
Estimated build time: less than 0.1 SBU (add 0.3 SBU for tests)
Apr Util Dependencies
Required
Optional
Berkeley DB-5.3.28, FreeTDS, MariaDB-10.6.12 or MySQL, OpenLDAP-2.6.4, PostgreSQL-15.2, SQLite-3.40.1 and unixODBC-2.3.11
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/apr-util
Installation of Apr Util
Install Apr Util by running the following commands:
./configure --prefix=/usr \
--with-apr=/usr \
--with-gdbm=/usr \
--with-openssl=/usr \
--with-crypto &&
make
To test the results, issue: make -j1 test. One test, testdbm, is known to fail.
Now, as the root user:
make install
Command Explanations
--with-gdbm=/usr: This switch enables the apr_dbm_gdbm-1.so plugin.
--with-openssl=/usr --with-crypto: These switches enable the apr_crypto_openssl-1.so plugin.
--with-berkeley-db=/usr: If you have installed Berkeley DB-5.3.28, use this switch to compile the apr_dbm_db-1.so plugin.
--with-ldap: If you have installed OpenLDAP-2.6.4, use this switch to compile the apr_ldap.so plugin.
Contents
Installed Program: apu-1-config
Installed Library: libaprutil-1.so
Installed Directory: /usr/lib/apr-util-1
Short Descriptions
apu-1-config is an APR-util script designed to allow easy command line access to APR-util configuration parameters
libaprutil-1.so contains functions that provide a predictable and consistent interface to underlying client library interfaces
9.3 Aspell-0.60.8
Introduction to Aspell
The Aspell package contains an interactive spell checking program and the Aspell libraries. Aspell can either be used as a library or as an independent spell checker.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/aspell/aspell-0.60.8.tar.gz
-
Download (FTP): ftp://ftp.gnu.org/gnu/aspell/aspell-0.60.8.tar.gz
-
Download MD5 sum: 012fa9209203ae4e5a61c2a668fd10e3
-
Download size: 3.3 MB
-
Estimated disk space required: 51 MB (Additional 8 MB for EN dictionary)
-
Estimated build time: 0.4 SBU
Additional Downloads
You’ll need to download at least one dictionary. The link below will take you to a page containing links to dictionaries in many languages.
- Aspell dictionaries: https://ftp.gnu.org/gnu/aspell/dict
Aspell Dependencies
Required
Which-2.21 (for the dictionaries)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/aspell
Installation of Aspell
Install Aspell by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
ln -svfn aspell-0.60 /usr/lib/aspell &&
install -v -m755 -d /usr/share/doc/aspell-0.60.8/aspell{,-dev}.html &&
install -v -m644 manual/aspell.html/* \
/usr/share/doc/aspell-0.60.8/aspell.html &&
install -v -m644 manual/aspell-dev.html/* \
/usr/share/doc/aspell-0.60.8/aspell-dev.html
If you do not plan to install Ispell, then copy the wrapper script ispell:
install -v -m 755 scripts/ispell /usr/bin/
If you do not plan to install Spell, then copy the wrapper script spell:
install -v -m 755 scripts/spell /usr/bin/
Command Explanations
ln -svfn aspell-0.60 /usr/lib/aspell: This command is useful for configuration of other applications, such as enchant-2.3.3.
Configuring Aspell
Configuration Information
After Aspell is installed, you must set up at least one dictionary. Install one or more dictionaries by running the following commands:
./configure &&
make
Now, as the root user:
make install
Contents
Installed Programs: aspell, aspell-import, precat, preunzip, prezip, prezip-bin, pspell-config, run-with-aspell, word-list-compress and optionally, ispell and spell.
Installed Libraries: libaspell.so and libpspell.so
Installed Directories: /usr/include/pspell and /usr/lib/aspell-0.60
Short Descriptions
aspell is a utility that can function as an ispell -a replacement, as an independent spell checker, as a test utility to test out Aspell features, and as a utility for managing dictionaries
ispell is a wrapper around aspell to invoke it in ispell compatible mode
spell is a wrapper around aspell to invoke it in spell compatible mode
aspell-import imports old personal dictionaries into Aspell
precat decompresses a prezipped file to stdout
preunzip decompresses a prezipped file
prezip is a prefix delta compressor, used to compress sorted word lists or other similar text files
prezip-bin is called by the various wrapper scripts to perform the actual compressing and decompressing
pspell-config displays information about the libpspell installation, mostly for use in build scripts
run-with-aspell is a script to help use Aspell as an ispell replacement
word-list-compress compresses or decompresses sorted word lists for use with the Aspell spell checker
libaspell.so contains spell checking API functions
libpspell.so is an interface to the libaspell library. All the spell checking functionality is now in libaspell but this library is included for backward compatibility
9.4 Boost-1.81.0
Introduction to Boost
Boost provides a set of free peer-reviewed portable C++ source libraries. It includes libraries for linear algebra, pseudorandom number generation, multithreading, image processing, regular expressions and unit testing.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.bz2
-
Download MD5 sum: 3276c0637d1be8687740c550237ef999
-
Download size: 113 MB
-
Estimated disk space required: 1.1 GB (195 MB installed)
-
Estimated build time: 1.4 SBU (Using parallelism=4; add 1.2 SBU for tests)
Boost Dependencies
Recommended
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/boost
Installation of Boost
A change in this version of boost breaks the few packages which use the phoenix module when compiled with current GCC. In BLFS, that affects LibreOffice-7.5.0.3. Fix this with the following command:
sed -i '/#include.*phoenix.*tuple.hpp.*/d' \
boost/phoenix/stl.hpp
This package can be built with several jobs running in parallel. In the instructions below, <N> stands for the number of jobs. Install Boost by running the following commands:
./bootstrap.sh --prefix=/usr --with-python=python3 &&
./b2 stage -j<N> threading=multi link=shared
To run the Boost.Build’s regression test, issue pushd tools/build/test; python3 test_all.py; popd. With python-3.10.x all 168 tests should pass. With Python-3.11.2, 20 tests fail for undetermined reasons.
To run every library’s regression tests, issue pushd status; ../b2; popd. A few tests may fail. They take a very long time (over 119 SBU at -j4) and use a very large amount of disk space (46 GB). You should use the -jN switch to speed them up.
Note
Boost installs many versioned directories in /usr/lib/cmake. If a new version of Boost is installed over a previous version, the older cmake directories need to be explicitly removed. To do this, run as the root user:
rm -rf /usr/lib/cmake/[Bb]oost*
before installing the new version.
Now, as the root user:
./b2 install threading=multi link=shared
Command Explanations
sed -i '/#include ...: This removes the inclusion of boost/phoenix/stl/tuple.hpp from this header-only library, allowing applications which use it to link using recent C++. An alternative is to edit /usr/include/boost/phoenix/stl.hpp if this version of boost has already been installed without this sed.
threading=multi: This parameter ensures that Boost is built with multithreading support.
link=shared: This parameter ensures that only shared libraries are created, except for libboost_exception and libboost_test_exec_monitor which are created as static. Most people will not need the static libraries, and most programs using Boost only use the headers. Omit this parameter if you do need static libraries.
--with-python=python3: This switch ensures Python3 is used if Python2 is installed.
-jN: This switch may be added to the b2 command lines, to run up to N processes in parallel.
Contents
Installed Programs: None
Installed Libraries: libboost_atomic.so, libboost_chrono.so, libboost_container.so, libboost_context.so, libboost_contract.so, libboost_coroutine.so, libboost_date_time.so, libboost_exception.a, libboost_fiber.so, libboost_filesystem.so, libboost_graph.so, libboost_iostreams.so, libboost_json.so, libboost_locale.so, libboost_log_setup.so, libboost_log.so, libboost_math_c99.so, libboost_math_c99f.so, libboost_math_c99l.so, libboost_math_tr1.so, libboost_math_tr1f.so, libboost_math_tr1l.so, libboost_nowide.so, libboost_numpy39.so, libboost_prg_exec_monitor.so, libboost_program_options.so, libboost_python311.so, libboost_random.so, libboost_regex.so, libboost_serialization.so, libboost_stacktrace_addr2line.so, libboost_stacktrace_basic.so, libboost_stacktrace_noop.so, libboost_system.so, libboost_test_exec_monitor.a, libboost_thread.so, libboost_timer.so, libboost_type_erasure.so, libboost_unit_test_framework.so, libboost_wave.so, and libboost_wserialization.so
Installed Directory: /usr/include/boost.
9.5 brotli-1.0.9
Introduction to Brotli
Brotli provides a general-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling. Its libraries are particularly used for WOFF2 fonts on webpages.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/google/brotli/archive/v1.0.9/brotli-1.0.9.tar.gz
-
Download MD5 sum: c2274f0c7af8470ad514637c35bcee7d
-
Download size: 476 KB
-
Estimated disk space required: 24 MB (with python3 bindings)
-
Estimated build time: 0.4 SBU (with python3 bindings)
Brotli Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/brotli
Installation of Brotli
At first, fix an issue in pkg-config files:
sed -i 's@-R..libdir.@@' scripts/*.pc.in
Install brotli by running the following commands:
mkdir out &&
cd out &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
.. &&
make
To test the results, issue: make test.
Now, as the root user:
make install &&
cd ..
If desired, build and install the Python3 bindings as the root user:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD &&
pip3 install --no-index --find-links dist --no-cache-dir --no-user Brotli
Contents
Installed Programs: brotli
Installed Libraries: libbrotlicommon{-static.a,.so}, libbrotlidec{,-static.a,.so}, and libbrotlienc{,-static.a,.so}
Installed Directory: /usr/include/brotli /usr/lib/python3.11/site-packages/Brotli-1.0.9.dist-info
Short Descriptions
brotli can compress or decompress files, or test the integrity of compressed files
libbrotlicommon{-static.a,.so}is the Brotli common dictionary library
libbrotlidec{-static.a,.so} is the Brotli decoder library
libbrotlienc{-static.a,.so} is the Brotli common encoder library
9.6 CLucene-2.3.3.4
Introduction to CLucene
CLucene is a C++ version of Lucene, a high performance text search engine.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/clucene/clucene-core-2.3.3.4.tar.gz
-
Download MD5 sum: 48d647fbd8ef8889e5a7f422c1bfda94
-
Download size: 2.2 MB
-
Estimated disk space required: 78 MB
-
Estimated build time: 0.8 SBU
Additional Downloads
- Required patch: https://www.linuxfromscratch.org/patches/blfs/11.3/clucene-2.3.3.4-contribs_lib-1.patch
CLucene Dependencies
Required
Recommended
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/clucene
Installation of CLucene
Install CLucene by running the following commands:
patch -Np1 -i ../clucene-2.3.3.4-contribs_lib-1.patch &&
sed -i '/Misc.h/a #include <ctime>' src/core/CLucene/document/DateTools.cpp &&
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_CONTRIBS_LIB=ON .. &&
make
Now, as the root user:
make install
Command Explanations
-DBUILD_CONTRIBS_LIB=ON: This cmake variable enables building the CLucene contribs library necessary for running applications that use language specific text analyzers like LibreOffice for example.
Contents
Installed Programs: None
Installed Libraries: libclucene-contribs-lib.so, libclucene-core.so, and libclucene-shared.so
Installed Directories: /usr/include/CLucene and /usr/lib/CLuceneConfig.cmake
9.7 dbus-glib-0.112
Introduction to D-Bus GLib
The D-Bus GLib package contains GLib interfaces to the D-Bus API.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-0.112.tar.gz
-
Download MD5 sum: 021e6c8a288df02c227e4aafbf7e7527
-
Download size: 700 KB
-
Estimated disk space required: 12 MB (with tests)
-
Estimated build time: 0.1 SBU (with tests)
D-Bus GLib Dependencies
Required
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/dbus-glib
Installation of D-Bus GLib
Install D-Bus GLib by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-static &&
make
To test the results, issue: make check. Note that more comprehensive tests can be run by following the same method used in D-Bus instructions, which requires building the package twice.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.
Contents
Installed Program: dbus-binding-tool
Installed Library: libdbus-glib-1.so
Installed Directories: /usr/share/gtk-doc/html/dbus-glib
Short Descriptions
dbus-binding-tool is a tool used to interface with the D-Bus API
libdbus-glib-1.so contains GLib interface functions to the D-Bus API.
9.8 Double-conversion-3.2.1
Introduction to Double-conversion
The Double-conversion package contains a library that facilitates binary-to-decimal and decimal-to-binary routines for IEEE doubles.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/google/double-conversion/archive/v3.2.1/double-conversion-3.2.1.tar.gz
-
Download MD5 sum: ccdcf76f6df822fb5488425e85707e55
-
Download size: 6.7 MB
-
Estimated disk space required: 55 MB (with tests)
-
Estimated build time: 0.1 SBU (with tests)
Double-conversion Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/double-conversion
Installation of Double-conversion
Install Double-conversion by running the following commands:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_TESTING=ON \
.. &&
make
To test the results, issue: make test.
Now, as the root user:
make install
Command Explanations
-DBUILD_SHARED_LIBS=ON: This switch forces cmake to build a shared version of the library instead of the static version.
-DBUILD_TESTING=ON: This switch builds the test programs.
Contents
Installed Programs: None
Installed Libraries: libdouble-conversion.so
Installed Directories: /usr/include/double-conversion
Short Descriptions
libdouble-conversion.so provides binary-to-decimal and decimal-to-binary routines for IEEE doubles
9.9 duktape-2.7.0
Introduction to duktape
duktape is an embeddable Javascript engine, with a focus on portability and compact footprint.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://duktape.org/duktape-2.7.0.tar.xz
-
Download MD5 sum: b3200b02ab80125b694bae887d7c1ca6
-
Download size: 1003 KB
-
Estimated disk space required: 25 MB
-
Estimated build time: 0.3 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/duktape
Installation of duktape
Install duktape by running the following commands:
sed -i 's/-Os/-O2/' Makefile.sharedlibrary
make -f Makefile.sharedlibrary INSTALL_PREFIX=/usr
Now, as the root user:
make -f Makefile.sharedlibrary INSTALL_PREFIX=/usr install
Contents
Installed Programs: None
Installed Libraries: libduktape.so and libduktaped.so
Installed Directories: None
Short Descriptions
libduktape.so is an embeddable Javascript engine.
9.10 enchant-2.3.3
Introduction to enchant
The enchant package provides a generic interface into various existing spell checking libraries.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/AbiWord/enchant/releases/download/v2.3.3/enchant-2.3.3.tar.gz
-
Download MD5 sum: 9b8519d43a711dae47b47a82fe78b194
-
Download size: 968 KB
-
Estimated disk space required: 6.9 MB (add 77 MB for tests)
-
Estimated build time: 0.2 SBU (add 0.8 SBU for tests)
enchant Dependencies
Required
Recommended
Optional
dbus-glib-0.112, Doxygen-1.9.6, Hspell, Hunspell, Nuspell, Voikko, and unittest-cpp (required for tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/enchant
Installation of enchant
Install enchant by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To run tests, unittest-cpp must be installed and the --enable-relocatable option passed to configure above. If these conditions are present, the tests may be run with make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Configuring enchant
Config Files
~/.enchant and /usr/share/enchant/enchant.ordering
Configuration Information
You can test your installation and configuration by creating a test file and running the following commands (you can replace the en_GB dictionary by any other downloaded when installing Aspell-0.60.8):
cat > /tmp/test-enchant.txt << "EOF"
Tel me more abot linux
Ther ar so many commads
EOF
enchant-2 -d en_GB -l /tmp/test-enchant.txt &&
enchant-2 -d en_GB -a /tmp/test-enchant.txt
You will see a list of the misspelled words followed by a list of alternatives for them.
See more details in the enchant manual page.
Contents
Installed Programs: enchant-2 and enchant-lsmod-2
Installed Libraries: libenchant-2.so
Installed Directories: /usr/include/enchant-2, /usr/lib/enchant-2, and /usr/share/enchant
Short Descriptions
enchant-2 is a spellchecker
enchant-lsmod-2 lists available backends, languages, and dictionaries
libenchant-2.so contains spell checking interface API functions.
9.11 Exempi-2.6.3
Introduction to Exempi
Exempi is an implementation of XMP (Adobe’s Extensible Metadata Platform).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://libopenraw.freedesktop.org/download/exempi-2.6.3.tar.xz
-
Download MD5 sum: 27a7d9566d2335785c03ce9e66096f2a
-
Download size: 2.7 MB
-
Estimated disk space required: 288 MB (add 241 MB for tests)
-
Estimated build time: 0.4 SBU (using parallelism=4; add 1.9 SBU for tests)
Exempi Dependencies
Required
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/exempi
Installation of Exempi
If you intend to run the regression tests, first remove a test that depends on an apparently proprietary Adobe SDK:
sed -i -r '/^\s?testadobesdk/d' exempi/Makefile.am &&
autoreconf -fiv
Install Exempi by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Program: exempi
Installed Library: libexempi.so
Installed Directory: /usr/include/exempi-2.0
Short Descriptions
exempi is a command line tool to manipulate XMP metadata
libexempi.so is a library used to parse XMP metadata.
9.12 fftw-3.3.10
Introduction to fftw
FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.fftw.org/fftw-3.3.10.tar.gz
-
Download (FTP): ftp://ftp.fftw.org/pub/fftw/fftw-3.3.10.tar.gz
-
Download MD5 sum: 8ccbf6a5ea78a16dbc3e1306e234cc5c
-
Download size: 4.0 MB
-
Estimated disk space required: 59 MB
-
Estimated build time: 1.6 SBU (add 3.4 SBU for tests, both using parallelism=4)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/fftw
Installation of fftw
Note
We build fftw three times for different libraries in different numerical precisions: the default double precision floating point, the older 32-bit (single precision) version named float which sacrifices precision for speed, and the long double which offers increased precision at the cost of slower execution.
The first build is for double precision arithmetic. Install fftw by running the following commands:
./configure --prefix=/usr \
--enable-shared \
--disable-static \
--enable-threads \
--enable-sse2 \
--enable-avx \
--enable-avx2 &&
make
To test the results, issue: make check. On 32-bit systems, the tests can take substantially longer than they would on 64-bit machines.
Now, as the root user:
make install
Now build single precision:
make clean &&
./configure --prefix=/usr \
--enable-shared \
--disable-static \
--enable-threads \
--enable-sse2 \
--enable-avx \
--enable-avx2 \
--enable-float &&
make
As the root user:
make install
Finally, build long double precision:
make clean &&
./configure --prefix=/usr \
--enable-shared \
--disable-static \
--enable-threads \
--enable-long-double &&
make
As the root user:
make install
Command Explanations
--enable-shared --disable-static: Use shared libs instead of static libs.
--enable-threads: This enables libfftw3_threads.so to be compiled. It is used by e.g. the gimp plugin from G’MIC.
--enable-{sse2,avx,avx2}: These enables building the optimized routines using SSE2, AVX, and AVX2 instructions. FFTW will check if these routines can be really used on the current CPU when the FFTW library is loaded, so a FFTW build with these routines enabled can still run on a CPU without SSE2, AVX, or AVX512. These options are not compatible with --enable-long-double.
--enable-float: This enables building the library that uses single precision floating point arithmetic. It is faster but less precise than the default double precision library. The library will be called libfftw3f.so needed by PulseAudio-16.1.
--enable-long-double: This enables building the library that uses higher precision long-double floating point arithmetic. The library will be called libfftw3l.so.
--enable-avx512: This enables building the optimized routines using AVX512F instructions. FFTW will check if these routines can be really used on the current CPU when the FFTW library is loaded, so a FFTW build with these routines enabled can still run on a CPU without AVX512F. Use this option if the FFTW build will be used on a CPU with AVX512F. This option is not compatible with --enable-long-double.
Contents
Installed Programs: fftw-wisdom and fftw-wisdom-to-conf
Installed Libraries: libfftw3.so, libfftw3_threads.so, libfftw3f.so, libfftw3f_threads.so, libfftw3l.so and libfftw3l_threads.so
Installed Directories: None
Short Descriptions
fftw-wisdom is a utility to generate FFTW wisdom files, which contain saved information about how to optimally compute (Fourier) transforms of various sizes
fftw-wisdom-to-conf is a utility to generate C configuration routines from FFTW wisdom files, where the latter contain saved information about how to optimally compute (Fourier) transforms of various sizes
libfftw3.so is the Fast Fourier Transform library
libfftw3_threads.so is the threaded Fast Fourier Transform library
libfftw3f.so is the single-precision Fast Fourier Transform library, described as “float” for historic reasons
libfftw3f_threads.so is the threaded single-precision Fast Fourier Transform library
libfftw3l.so is the long double Fast Fourier Transform library
libfftw3l_threads.so is the threaded long double Fast Fourier Transform library.
9.13 GLib-2.74.5
Introduction to GLib
The GLib package contains low-level libraries useful for providing data structure handling for C, portability wrappers and interfaces for such runtime functionality as an event loop, threads, dynamic loading and an object system.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/glib/2.74/glib-2.74.5.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/glib/2.74/glib-2.74.5.tar.xz
-
Download MD5 sum: 7561501d9f63f3418ddb23d2903cc968
-
Download size: 5.0 MB
-
Estimated disk space required: 122 MB (add 8 MB for tests)
-
Estimated build time: 0.5 SBU (add 0.4 SBU for tests; both using parallelism=4)
Additional Downloads
- Optional patch: https://www.linuxfromscratch.org/patches/blfs/11.3/glib-2.74.5-skip_warnings-1.patch
GLib Dependencies
Recommended
libxslt-1.1.37 and pcre2-10.42
Optional
dbus-1.14.6 (for some tests), Fuse-3.13.1 and bindfs (both needed for one test), GDB-13.1 (for bindings), docbook-xml-4.5, docbook-xsl-nons-1.79.2, GTK-Doc-1.33.2 (to build API documentation), glib-networking-2.74.0 (for some tests, but this is a circular dependency), and sysprof-3.46.0
Additional Runtime Dependencies
gobject-introspection-1.74.0 (should be installed before gtk+, atk, etc.)
Quoted directly from the INSTALL file: “Some of the mimetype-related functionality in GIO requires the update-mime-database and update-desktop-database utilities”, which are part of shared-mime-info-2.2 and desktop-file-utils-0.26, respectively. These two utilities are also needed for some tests.
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/glib2
Installation of GLib
If desired, apply the optional patch. In many cases, applications that use this library, either directly or indirectly via other libraries such as GTK+-3.24.36, output numerous warnings when run from the command line. This patch enables the use of an environment variable, GLIB_LOG_LEVEL, that suppresses unwanted messages. The value of the variable is a digit that corresponds to:
1 Alert
2 Critical
3 Error
4 Warning
5 Notice
For instance export GLIB_LOG_LEVEL=4 will skip output of Warning and Notice messages (and Info/Debug messages if they are turned on). If GLIB_LOG_LEVEL is not defined, normal message output will not be affected.
patch -Np1 -i ../glib-2.74.5-skip_warnings-1.patch
Warning
If a previous version of glib is installed, move the headers out of the way so that later packages do not encounter conflicts:
if [ -e /usr/include/glib-2.0 ]; then
rm -rf /usr/include/glib-2.0.old &&
mv -vf /usr/include/glib-2.0{,.old}
fi
Install GLib by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dman=true \
.. &&
ninja
Note
If libxslt-1.1.37 is installed, the above command may indicate several (about 33) errors that start with “Error: no ID for constraint linkend:” when generating the man pages. These are harmless.
The GLib test suite requires desktop-file-utils for some tests. However, desktop-file-utils requires GLib in order to compile; therefore, you must first install GLib and then run the test suite.
Now, as the root user:
ninja install &&
mkdir -p /usr/share/doc/glib-2.74.5 &&
cp -r ../docs/reference/{gio,glib,gobject} /usr/share/doc/glib-2.74.5
You should now install desktop-file-utils-0.26 and shared-mime-info-2.2 and proceed to run the test suite.
Warning
Do not run the test suite as root or some tests will fail unexpectedly and leave some non-FHS-compliant directories in the /usr hierarchy.
To test the results, after having installed the package, issue: LC_ALL=C ninja test as a non-root user. One test named glib:glib / error is known to fail.
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
-Dman=true: This switch causes the build to create and install the package man pages.
-Dgtk_doc=true: This switch causes the build to create and install the API documentation.
Contents
Installed Programs: gapplication, gdbus, gdbus-codegen, gio, gio-querymodules, glib-compile-resources, glib-compile-schemas, glib-genmarshal, glib-gettextize, glib-mkenums, gobject-query, gresource, gsettings, gtester, and gtester-report
Installed Libraries: libgio-2.0.so, libglib-2.0.so, libgmodule-2.0.so, libgobject-2.0.so, and libgthread-2.0.so
Installed Directories: /usr/include/gio-unix-2.0, /usr/include/glib-2.0, /usr/lib/glib-2.0, /usr/share/glib-2.0, /usr/share/doc/glib-2.74.5, and /usr/share/gtk-doc/html/{gio,glib,gobject} (optional)
Short Descriptions
gapplication can be used to start applications and to send messages to already-running instances of other applications
gdbus is a simple tool used for working with D-Bus objects
gdbus-codegen is used to generate code and/or documentation for one or more D-Bus interfaces
gio is a utility that makes many GIO features available from the command line
gio-querymodules is used to create a giomodule.cache file in the listed directories. This file lists the implemented extension points for each module that has been found
glib-compile-resources is used to read the resource description from a file and the files that it references to create a binary resource bundle that is suitable for use with the GResource API
glib-compile-schemas is used to compile all the GSettings XML schema files in a directory into a binary file with the name gschemas.compiled that can be used by GSettings
glib-genmarshal is a C code marshaller generation utility for GLib closures
glib-gettextize is a variant of the gettext internationalization utility
glib-mkenums is a C language enum description generation utility
gobject-query is a small utility that draws a tree of types
gresource offers a simple command line interface to GResource
gsettings offers a simple command line interface to GSettings
gtester is a test running utility
gtester-report is a test report formatting utility
GLib libraries contain low-level core libraries for the GIMP Toolkit.
9.14 GLibmm-2.66.5
Introduction to GLibmm
The GLibmm package is a set of C++ bindings for GLib.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/glibmm/2.66/glibmm-2.66.5.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/glibmm/2.66/glibmm-2.66.5.tar.xz
-
Download MD5 sum: b6c2c8ba36abf6c5e43cee459a74b8a1
-
Download size: 7.3 MB
-
Estimated disk space required: 80 MB (with tests)
-
Estimated build time: 0.5 SBU (Using parallelism=4; with tests)
GLibmm Dependencies
Required
GLib-2.74.5 and libsigc++-2.12.0
Optional
Doxygen-1.9.6, glib-networking-2.74.0 (for tests), GnuTLS-3.8.0 (for tests), libxslt-1.1.37, and mm-common
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/glibmm
Installation of GLibmm
Install GLibmm by running the following commands:
mkdir bld &&
cd bld &&
meson --prefix=/usr --buildtype=release .. &&
ninja
To test the results, issue: ninja test.
Now, as the root user:
ninja install
Contents
Installed Programs: None
Installed Libraries: libgiomm-2.4.so, libglibmm-2.4.so and libglibmm_generate_extra_defs-2.4.so
Installed Directories: /usr/lib/g{io,lib}mm-2.4 and /usr/include/g{io,lib}mm-2.4
Short Descriptions
libgiomm-2.4.so contains the GIO API classes
libglibmm-2.4.so contains the GLib API classes.
9.15 GMime-3.2.7
Introduction to GMime
The GMime package contains a set of utilities for parsing and creating messages using the Multipurpose Internet Mail Extension (MIME) as defined by the applicable RFCs. See the GMime web site for the RFCs resourced. This is useful as it provides an API which adheres to the MIME specification as closely as possible while also providing programmers with an extremely easy to use interface to the API functions.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/gmime/3.2/gmime-3.2.7.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/gmime/3.2/gmime-3.2.7.tar.xz
-
Download MD5 sum: 7ecd9aa75e0cd2e8668206b1d53df874
-
Download size: 2.1 MB
-
Estimated disk space required: 25 MB (with tests)
-
Estimated build time: 0.3 SBU (with tests)
GMime Dependencies
Required
GLib-2.74.5 and libgpg-error-1.46
Recommended
gobject-introspection-1.74.0 and libidn2-2.3.4
Optional
DocBook-utils-0.6.14, GPGME-1.18.0, GTK-Doc-1.33.2, libnsl-2.0.0, Vala-0.56.4, and Gtk# (requires Mono)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gmime
Installation of GMime
Install GMime by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.
Contents
Installed Programs: None
Installed Library: libgmime-3.0.so
Installed Directories: /usr/include/gmime-3.0 and /usr/share/gtk-doc/html/gmime-3.0
Short Descriptions
libgmime-3.0.so contains API functions used by programs that need to comply to the MIME standards.
9.16 gobject-introspection-1.74.0
Introduction to GObject Introspection
The GObject Introspection is used to describe the program APIs and collect them in a uniform, machine readable format.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/gobject-introspection/1.74/gobject-introspection-1.74.0.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/gobject-introspection/1.74/gobject-introspection-1.74.0.tar.xz
-
Download MD5 sum: ed4e290c5ca8737a62c9a7f5347ae10d
-
Download size: 1.0 MB
-
Estimated disk space required: 42 MB (with tests)
-
Estimated build time: 0.2 SBU (With tests; both using parallelism=4)
GObject Introspection Dependencies
Required
Optional
Cairo-1.17.6 (required for the tests), Gjs-1.74.1 (to satisfy one test), GTK-Doc-1.33.2, Mako-1.2.4, and Markdown-3.4.1
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gobject-introspection
Installation of GObject Introspection
Install GObject Introspection by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release .. &&
ninja
To test the results, issue: ninja test.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
-Dgtk_doc=true: Build and install the documentation.
-Dcairo=enabled: Use cairo for tests.
-Ddoctool=enabled: Install g-ir-doc-tool and run related tests. You must have Mako-1.2.4 and Markdown-3.4.1 installed in order to install this utility.
Contents
Installed Program: g-ir-annotation-tool, g-ir-compiler, g-ir-doc-tool, g-ir-generate, g-ir-inspect, and g-ir-scanner
Installed Libraries: libgirepository-1.0.so and _giscanner.cpython-311-
Installed Directories: /usr/include/gobject-introspection-1.0, /usr/lib/girepository-1.0, /usr/lib/gobject-introspection, /usr/share/gir-1.0, and /usr/share/gobject-introspection-1.0
Short Descriptions
g-ir-annotation-tool creates or extracts annotation data from GI typelibs
g-ir-compiler converts one or more GIR files into one or more typelib
g-ir-doc-tool generates Mallard files that can be viewed with yelp or rendered to HTML with yelp-build from yelp-tools
g-ir-inspect is a utility that gives information about a GI typelib
g-ir-generate is a GIR generator that uses the repository API
g-ir-scanner is a tool which generates GIR XML files by parsing headers and introspecting GObject based libraries
libgirepository-1.0.so provides an API to access the typelib metadata.
9.17 Gsl-2.7.1
Introduction to Gsl
The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/gsl/gsl-2.7.1.tar.gz
-
Download (FTP): ftp://ftp.gnu.org/gnu/gsl/gsl-2.7.1.tar.gz
-
Download MD5 sum: 36aee97e67f64dbdab7afae197e3483b
-
Download size: 7.2 MB
-
Estimated disk space required: 213 MB (with tests, without docs)
-
Estimated build time: 1.2 SBU (Using parallelism=4; with tests, without docs)
Gsl Dependencies
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gsl
Installation of Gsl
Install Gsl by running the following commands:
./configure --prefix=/usr --disable-static &&
make
If you have sphinx_rtd_theme-1.2.0 installed, build the documentation with:
make html
To test the results, issue: make check.
Now, as the root user:
make install
If you built the documentation, install it (as root) with:
mkdir /usr/share/doc/gsl-2.7.1 &&
cp -R doc/_build/html/* /usr/share/doc/gsl-2.7.1
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: gsl-config, gsl-histogram, and gsl-randist
Installed Libraries: libgslcblas.so and libgsl.so
Installed Directory: /usr/include/gsl and /usr/share/doc/gsl-2.7.1
Short Descriptions
gsl-config is a shell script to get the version number and compiler flags of the installed Gsl library
gsl-histogram is a demonstration program for the GNU Scientific Library that computes a histogram from data taken from stdin
gsl-randist is a demonstration program for the GNU Scientific Library that generates random samples from various distributions
libgslcblas.so contains functions that implement a C interface to Basic Linear Algebra Subprograms
libgsl.so contains functions that provide a collection of numerical routines for scientific computing
9.18 gspell-1.12.0
Introduction to gspell
The gspell package provides a flexible API to add spell checking to a GTK+ application.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/gspell/1.12/gspell-1.12.0.tar.xz
-
Download MD5 sum: f8e39fc95d3f0651e943b5ccb95694b7
-
Download size: 423 KB
-
Estimated disk space required: 13 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
gspell Dependencies
Required
enchant-2.3.3, ICU-72.1, and GTK+-3.24.36
Optional
gobject-introspection-1.74.0, GTK-Doc-1.33.2, Vala-0.56.4, and Valgrind-3.20.0
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gspell
Installation of gspell
Install gspell by running the following commands:
./configure --prefix=/usr &&
make
To test the results, issue: make check. The tests must be run in an X session. One test, test-checker, is known to fail if the external package Hunspell is not installed.
Now, as the root user:
make install
Contents
Installed Programs: gspell-app1
Installed Libraries: libgspell-1.so
Installed Directories: /usr/include/gspell-1 and /usr/share/gtk-doc/html/gspell-1.0
Short Descriptions
gspell-app1 checks the spelling of a text entered in a window
libgspell-1.so is the gspell API library.
9.19 ICU-72.1
Introduction to ICU
The International Components for Unicode (ICU) package is a mature, widely used set of C/C++ libraries providing Unicode and Globalization support for software applications. ICU is widely portable and gives applications the same results on all platforms.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/unicode-org/icu/releases/download/release-72-1/icu4c-72_1-src.tgz
-
Download MD5 sum: 4de6484a6c460d3d1468a6fe50369439
-
Download size: 25 MB
-
Estimated disk space required: 337 MB (add 41 MB for tests)
-
Estimated build time: 0.6 SBU (Using parallelism=4; add 1.6 SBU for tests)
ICU Dependencies
Optional
LLVM-15.0.7 (with Clang), and Doxygen-1.9.6 (for documentation)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/icu
Installation of ICU
Note
This package expands to the directory icu.
Note
If clang++ is available, it will be used in the mistaken belief that g++ might not support C++11, even though configure has tested for that. If using g++ there will be an unnecessary warning at the end of configure. Building with g++ also takes longer than the estimated SBU shown.
Install ICU by running the following commands:
cd source &&
./configure --prefix=/usr &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Contents
Installed Programs: derb, escapesrc, genbrk, genccode, gencfu, gencmn, gencnval, gendict, gennorm2, genrb, gensprep, icu-config, icuexportdata, icuinfo, icupkg, makeconv, pkgdata, and uconv
Installed Libraries: libicudata.so, libicui18n.so, libicuio.so, libicutest.so, libicutu.so, and libicuuc.so
Installed Directories: /usr/include/unicode, /usr/lib/icu, and /usr/share/icu
Short Descriptions
derb disassembles a resource bundle
escapesrc converts “\u” escaped characters into unicode characters
genbrk compiles ICU break iteration rules source files into binary data files
genccode generates C or platform specific assembly code from an ICU data file
gencfu reads in Unicode confusable character definitions and writes out the binary data
gencmn generates an ICU memory-mappable data file
gencnval compiles the converter’s aliases file
gendict compiles word lists into ICU string trie dictionaries
gennorm2 builds binary data files with Unicode normalization data
genrb compiles a resource bundle
gensprep compiles StringPrep data from filtered RFC 3454 files
icu-config outputs ICU build options
icuinfo outputs configuration information about the current ICU
icupkg extracts or modifies an ICU .dat archive
makeconv compiles a converter table
pkgdata packages data for use by ICU
uconv converts data from one encoding to another
libicudata.so is the data library
libicui18n.so is the internationalization (i18n) library
libicuio.so is the ICU I/O (unicode stdio) library
libicutest.so is the test library
libicutu.so is the tool utility library
libicuuc.so is the common library
9.20 inih-56
Introduction to inih
This package is a simple .INI file parser written in C.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/benhoyt/inih/archive/r56/inih-r56.tar.gz
-
Download MD5 sum: e27e394554d9f339b728035a5766d8f3
-
Download size: 20 KB
-
Estimated disk space required: 704 KB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/inih
Installation of inih
Install inih by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release .. &&
ninja
This package does not come with a test suite.
Now, as the root user:
ninja install
Contents
Installed Program: None
Installed Libraries: libinih.so, libINIReader.so
Installed Directories: None
9.21 Intel-gmmlib-22.3.4
Introduction to Intel-gmmlib
The Intel-gmmlib package contains the Intel Graphics Memory Management Library, which provides device specific memory and buffer management functions for the Intel Media Driver for VAAPI and the Intel Graphics Computer Runtime for OpenCL (TM).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/intel/gmmlib/archive/refs/tags/intel-gmmlib-22.3.4.tar.gz
-
Download MD5 sum: 098f47e5010fe280776c29635bde4536
-
Download size: 59 MB
-
Estimated disk space required: 59 MB
-
Estimated build time: 0.7 SBU
Note
The tarball intel-gmmlib-22.3.4.tar.gz will extract to the directory gmmlib-intel-gmmlib-22.3.4.
Intel-gmmlib Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/intel-gmmlib
Installation of Intel-gmmlib
Install Intel-gmmlib by running the following commands:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_TYPE=Release \
-Wno-dev .. &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Contents
Installed Programs: None
Installed Libraries: libigdgmm.so
Installed Directories: /usr/include/igdgmm
Short Descriptions
libigdgmm.so contains functions that provide Memory Management functions for Intel Graphics Drivers
9.22 Jansson-2.14
Introduction to Jansson
The Jansson package contains a library used to encode, decode, and manipulate JSON data.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/akheron/jansson/releases/download/v2.14/jansson-2.14.tar.bz2
-
Download MD5 sum: 3f90473d7d54ebd1cb6a2757396641df
-
Download size: 424 KB
-
Estimated disk space required: 5.6 MB (add 1.9 MB for tests
-
Estimated build time: 0.1 SBU [with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/jansson
Installation of Jansson
First fix one of the tests:
sed -e "/DT/s;| sort;| sed 's/@@libjansson.*//' &;" \
-i test/suites/api/check-exports
Install jansson by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Contents
Installed Programs: None
Installed Library: libjansson.so
Installed Directories: None
Short Descriptions
libjansson.so contains an API for encoding, decoding, and manipulating JSON data
9.23 JS-102.8.0
Introduction to JS
JS (also referred as SpiderMonkey) is Mozilla’s JavaScript and WebAssembly Engine, written in C++ and Rust. In BLFS, the source code of JS is taken from Firefox.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://archive.mozilla.org/pub/firefox/releases/102.8.0esr/source/firefox-102.8.0esr.source.tar.xz
-
Download MD5 sum: 2f65e84943e97f6d56d7b07aa1ded135
-
Download size: 457 MB
-
Estimated disk space required: 3.3 GB (38 MB installed after removing 34MB static lib)
-
Estimated build time: 1.8 SBU (with parallelism=4)
JS102 Dependencies
Required
ICU-72.1, rustc-1.67.1, and Which-2.21
Recommended
LLVM-15.0.7 (with Clang, required for 32-bit systems without SSE2 capabilities)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/js102
Installation of JS
Note
Unlike most other packages in BLFS, the instructions below require you to untar firefox-102.8.0esr.tar.xz and change into the firefox-102.8.0 folder.
Extracting the tarball will reset the permissions of the current directory to 0755 if you have permission to do that. If you do this in a directory where the sticky bit is set, such as /tmp it will end with error messages:
tar: .: Cannot utime: Operation not permitted
tar: .: Cannot change mode to rwxr-xr-t: Operation not permitted
tar: Exiting with failure status due to previous errors
This does finish with non-zero status, but it does NOT mean there is a real problem. Do not untar as the root user in a directory where the sticky bit is set - that will unset it.
Install JS by running the following commands:
Note
If you are compiling this package in chroot you must do two things. First, as the root user, ensure that /dev/shm is mounted. If you do not do this, the Python configuration will fail with a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py. Run:
mountpoint -q /dev/shm || mount -t tmpfs devshm /dev/shm
Second, either as the root user export the $SHELL environment variable using export SHELL=/bin/sh or else prepend SHELL=/bin/sh when running the configure command.
Compiling the C++ code respects $MAKEFLAGS and defaults to ‘j1’, the rust code will use all processors.
First remove an obsolete flag in python code, that has been removed in python-3.11:
grep -rl \"rU\" | xargs sed -i 's/"rU"/"r"/'
Then run:
mkdir obj &&
cd obj &&
sh ../js/src/configure.in --prefix=/usr \
--with-intl-api \
--with-system-zlib \
--with-system-icu \
--disable-jemalloc \
--disable-debug-symbols \
--enable-readline &&
make
To run the JS test suite, issue: make -C js/src check-jstests JSTESTS_EXTRA_ARGS=”–timeout 300 –wpt=disabled”. It’s recommended to redirect the output into a log. Because we are building with system ICU, more than one hundred tests (out of a total of more than 50,000) are known to fail.
To run the JIT test suite, issue: make -C js/src check-jit-test JITTEST_EXTRA_ARGS=”–timeout 300”.
Caution
An issue in the installation process causes any running program which links to JS102 shared library (for example, GNOME Shell) to crash if JS102 is upgraded or reinstalled. To work around this issue, remove the old version of the JS102 shared library before installation:
rm -fv /usr/lib/libmozjs-102.so
Now, as the root user:
make install &&
rm -v /usr/lib/libjs_static.ajs &&
sed -i '/@NSPR_CFLAGS@/d' /usr/bin/js102-config
Command Explanations
sh ../js/src/configure.in: configure.in is actually a shell script, but the executable bit is not set in its permission mode so it’s needed to explicitly run it with sh.
--with-intl-api: This enables the internationalization functions required by Gjs.
--with-system-*: These parameters allow the build system to use system versions of the above libraries. These are required for stability.
--enable-readline: This switch enables Readline support in the JS shell.
--disable-jemalloc: This switch disables the internal memory allocator used in JS102. jemalloc is only intended for the Firefox browser environment. For other applications using JS102, the application may crash as items allocated in the jemalloc allocator are freed on the system (glibc) allocator.
--disable-debug-symbols: Don’t generate debug symbols since they are very large and most users won’t need it. Remove it if you want to debug JS102.
rm -v /usr/lib/libjs_static.ajs: Remove a large static library which is not used by any BLFS package.
sed -i ‘/@NSPR_CFLAGS@/d’ /usr/bin/js102-config: Prevent js102-config from using buggy CFLAGS.
`CC=gcc CXX=g++`: BLFS used to prefer to use gcc and g++ instead of upstream’s defaults of the clang programs. With the release of gcc-12 the build takes longer with gcc and g++, primarily because of extra warnings, and is bigger. Pass these environment variables to the configure script if you wish to continue to use gcc, g++ (by exporting them and unset them after the installation, or simply prepending them before the sh ../js/src/configure.in command). If you are building on a 32-bit system, also see below.
`CXXFLAGS="-msse2 -mfpmath=sse"`: Use SSE2 instead of 387 for double-precision floating-point operations. It’s needed by GCC to satisfy the expectations of upstream (Mozilla) developers with floating-point arithmetic. Use it if you are building this package on a 32-bit system with GCC (if Clang is not installed or GCC is explicitly specified). Note that this will cause JS to crash on a processor without SSE2 capability. If you are running the system on such an old processor, Clang is strictly needed. This setting is not needed on 64-bit systems because all 64-bit x86 processors support SSE2 and the 64-bit compilers (both Clang and GCC) use SSE2 by default.
Contents
Installed Programs: js102 and js102-config
Installed Libraries: libmozjs-102.so
Installed Directories: /usr/include/mozjs-102
Short Descriptions
js102 provides a command line interface to the JavaScript engine
js102-config is used to find the JS compiler and linker flags
libmozjs-102.so contains the Mozilla JavaScript API functions
9.24 JSON-C-0.16
Introduction to JSON-C
The JSON-C implements a reference counting object model that allows you to easily construct JSON objects in C, output them as JSON formatted strings and parse JSON formatted strings back into the C representation of JSON objects.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://s3.amazonaws.com/json-c_releases/releases/json-c-0.16.tar.gz
-
Download MD5 sum: 8110782cb2a996da5517f1f27a4bed8e
-
Download size: 344 KB
-
Estimated disk space required: 7.7 MB
-
Estimated build time: 0.2 SBU (with tests)
JSON-C Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/json-c
Installation of JSON-C
Install JSON-C by running the following commands:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_STATIC_LIBS=OFF \
.. &&
make
To test the results, issue: make test.
Now, as the root user:
make install
Command Explanations
-DCMAKE_BUILD_TYPE=Release: This switch is used to apply a higher level of compiler optimizations.
Contents
Installed Programs: None
Installed Libraries: libjson-c.so
Installed Directories: /usr/include/json-c
Short Descriptions
libjson-c.so contains the JSON-C API functions.
9.25 JSON-GLib-1.6.6
Introduction to JSON GLib
The JSON GLib package is a library providing serialization and deserialization support for the JavaScript Object Notation (JSON) format described by RFC 4627.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/json-glib/1.6/json-glib-1.6.6.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/json-glib/1.6/json-glib-1.6.6.tar.xz
-
Download MD5 sum: 9c40fcd8cdbf484dd1704480afefae14
-
Download size: 1.2 MB
-
Estimated disk space required: 6.6 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
JSON-GLib Dependencies
Required
Optional (Required if building GNOME)
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/json-glib
Installation of JSON GLib
Install JSON GLib by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release .. &&
ninja
To test the results, issue: ninja test.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
Contents
Installed Programs: json-glib-format and json-glib-validate
Installed Library: libjson-glib-1.0.so
Installed Directories: /usr/{include,share/installed-tests}/json-glib-1.0, /usr/libexec/installed-tests/json-glib-1.6.6, and /usr/share/gtk-doc/html/json-glib
Short Descriptions
json-glib-format is a simple command line interface to format JSON data
json-glib-validate is a simple command line interface to validate JSON data
libjson-glib-1.0.so contains the JSON GLib API functions.
9.26 keyutils-1.6.1
Introduction to keyutils
Keyutils is a set of utilities for managing the key retention facility in the kernel, which can be used by filesystems, block devices and more to gain and retain the authorization and encryption keys required to perform secure operations.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://people.redhat.com/~dhowells/keyutils/keyutils-1.6.1.tar.bz2
-
Download MD5 sum: 919af7f33576816b423d537f8a8692e8
-
Download size: 96 KB
-
Estimated disk space required: 1.9 MB (with tests)
-
Estimated build time: less than 0.1 SBU (add 0.6 SBU for tests)
keyutils Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/keyutils
Installation of keyutils
Install keyutils by running the following commands:
sed -i 's:$(LIBDIR)/$(PKGCONFIG_DIR):/usr/lib/pkgconfig:' Makefile &&
make
To test the results, issue, as the root user:
make -k test
Note that several tests will fail if certain uncommon kernel options were not used when the kernel was built. These include CONFIG_BIG_KEYS, CONFIG_KEY_DH_OPERATIONS, and CONFIG_CRYPTO_DH.
Now, as the root user:
make NO_ARLIB=1 LIBDIR=/usr/lib BINDIR=/usr/bin SBINDIR=/usr/sbin install
Command Explanations
sed … Makefile: This command ensures the pkgconfig file is placed in the correct directory.
NO_ARLIB=1: This make flag disables installing the static library.
Configuring keyutils
Config Files
/etc/request-key.conf and /etc/request-key.d/*
Contents
Installed Programs: keyctl, key.dns_resolver, and request-key
Installed Library: libkeyutils.so
Installed Directory: /etc/request-key.d and /usr/share/keyutils
Short Descriptions
keyctl controls the key management facility with a variety of subcommands
key.dns_resolver is invoked by request-key on behalf of the kernel when kernel services (such as NFS, CIFS and AFS) need to perform a hostname lookup and the kernel does not have the key cached. It is not ordinarily intended to be called directly
request-key is invoked by the kernel when the kernel is asked for a key that it doesn’t have immediately available. The kernel creates a temporary key and then calls out to this program to instantiate it. It is not intended to be called directly
libkeyutils.so contains the keyutils library API instantiation.
9.27 libaio-0.3.113
Introduction to libaio
The libaio package is an asynchronous I/O facility (“async I/O”, or “aio”) that has a richer API and capability set than the simple POSIX async I/O facility. This library, libaio, provides the Linux-native API for async I/O. The POSIX async I/O facility requires this library in order to provide kernel-accelerated async I/O capabilities, as do applications which require the Linux-native async I/O API.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://pagure.io/libaio/archive/libaio-0.3.113/libaio-0.3.113.tar.gz
-
Download MD5 sum: 605237f35de238dfacc83bcae406d95d
-
Download size: 48 KB
-
Estimated disk space required: 1.0 MB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libaio
Installation of libaio
First, disable the installation of the static library:
sed -i '/install.*libaio.a/s/^/#/' src/Makefile
Build libaio by running the following command:
make
If you want to run the test suite, fix an issue with Glibc-2.34 or later:
sed 's/-Werror//' -i harness/Makefile
To test the results, issue: make partcheck.
Now, install the package as the root user:
make install
Contents
Installed Programs: None
Installed Library: libaio.so
Installed Directories: None
Short Descriptions
libaio.so is the libaio library.
9.28 libarchive-3.6.2
Introduction to libarchive
The libarchive library provides a single interface for reading/writing various compression formats.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/libarchive/libarchive/releases/download/v3.6.2/libarchive-3.6.2.tar.xz
-
Download MD5 sum: 72cbb3c085624c825f627bfc8f52ce53
-
Download size: 4.9 MB
-
Estimated disk space required: 41 MB (add 29 MB for tests)
-
Estimated build time: 0.3 SBU (add 0.7 SBU for tests)
libarchive Dependencies
Optional
libxml2-2.10.3, LZO-2.10, and Nettle-3.8.1
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libarchive
Installation of libarchive
Install libarchive by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: LC_ALL=C make check.
Now, as the root user:
make install
Remove an invalid entry in /usr/lib/pkgconfig/libarchive.pc:
sed -i "s/iconv //" /usr/lib/pkgconfig/libarchive.pc
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--without-xml2: This switch sets expat for xar archive format support instead of preferred libxml2 if both packages are installed.
--without-nettle: This switch sets OpenSSL for crypto support instead of preferred Nettle if both packages are installed.
Contents
Installed Programs: bsdcat, bsdcpio, and bsdtar
Installed Libraries: libarchive.so
Installed Directories: None
Short Descriptions
bsdcat expands files to standard output
bsdcpio is a tool similar to cpio
bsdtar is a tool similar to GNU tar
libarchive.so is a library that can create and read several streaming archive formats.
9.29 libassuan-2.5.5
Introduction to libassuan
The libassuan package contains an inter process communication library used by some of the other GnuPG related packages. libassuan’s primary use is to allow a client to interact with a non-persistent server. libassuan is not, however, limited to use with GnuPG servers and clients. It was designed to be flexible enough to meet the demands of many transaction based environments with non-persistent servers.
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/libassuan/libassuan-2.5.5.tar.bz2
-
Download (FTP): ftp://ftp.gnupg.org/gcrypt/libassuan/libassuan-2.5.5.tar.bz2
-
Download MD5 sum: 7194453152bb67e3d45da698762b5d6f
-
Download size: 559 KB
-
Estimated disk space required: 7.4 MB (with tests, add 3.4 MB for documentation)
-
Estimated build time: 0.1 SBU (with tests and documentation)
libassuan Dependencies
Required
Optional
texlive-20220321 (or install-tl-unx)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libassuan
Installation of libassuan
Install libassuan by running the following commands:
./configure --prefix=/usr &&
make &&
make -C doc html &&
makeinfo --html --no-split -o doc/assuan_nochunks.html doc/assuan.texi &&
makeinfo --plaintext -o doc/assuan.txt doc/assuan.texi
The above commands build the documentation in html and plaintext formats. If you wish to build alternate formats of the documentation, you must have texlive-20220321 installed and issue the following commands:
make -C doc pdf ps
To test the results, issue: make check.
Now, as the root user:
make install &&
install -v -dm755 /usr/share/doc/libassuan-2.5.5/html &&
install -v -m644 doc/assuan.html/* \
/usr/share/doc/libassuan-2.5.5/html &&
install -v -m644 doc/assuan_nochunks.html \
/usr/share/doc/libassuan-2.5.5 &&
install -v -m644 doc/assuan.{txt,texi} \
/usr/share/doc/libassuan-2.5.5
If you built alternate formats of the documentation, install them by running the following commands as the root user:
install -v -m644 doc/assuan.{pdf,ps,dvi} \
/usr/share/doc/libassuan-2.5.5
Contents
Installed Program: libassuan-config
Installed Library: libassuan.so
Installed Directory: /usr/share/doc/libassuan-2.5.5
Short Descriptions
libassuan-config is a libassuan build information script
libassuan.so is an inter process communication library which implements the Assuan protocol.
9.30 libatasmart-0.19
Introduction to libatasmart
The libatasmart package is a disk reporting library. It only supports a subset of the ATA S.M.A.R.T. functionality.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://0pointer.de/public/libatasmart-0.19.tar.xz
-
Download MD5 sum: 53afe2b155c36f658e121fe6def33e77
-
Download size: 248 KB
-
Estimated disk space required: 3 MB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libatasmart
Installation of libatasmart
Install libatasmart by running the following commands:
./configure --prefix=/usr --disable-static &&
make
This package does not come with a test suite.
Now, as the root user:
make docdir=/usr/share/doc/libatasmart-0.19 install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: skdump and sktest
Installed Library: libatasmart.so
Installed Directory: /usr/share/doc/libatasmart-0.19
Short Descriptions
skdump is a utility that reports on the status of the disk
sktest is a utility to issue disks tests
libatasmart.so contains the ATA S.M.A.R.T API functions.
9.31 libatomic_ops-7.6.14
Introduction to libatomic_ops
libatomic_ops provides implementations for atomic memory update operations on a number of architectures. This allows direct use of these in reasonably portable code. Unlike earlier similar packages, this one explicitly considers memory barrier semantics, and allows the construction of code that involves minimum overhead across a variety of architectures.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/ivmai/libatomic_ops/releases/download/v7.6.14/libatomic_ops-7.6.14.tar.gz
-
Download MD5 sum: ee8251f5091b7938d18be4dda843a515
-
Download size: 492 KB
-
Estimated disk space required: 6.3 MB (with tests)
-
Estimated build time: 0.1 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libatomic_ops
Installation of libatomic_ops
Install libatomic_ops by running the following commands:
./configure --prefix=/usr \
--enable-shared \
--disable-static \
--docdir=/usr/share/doc/libatomic_ops-7.6.14 &&
make
To check the results, issue make check.
Now, as the root user:
make install
Command Explanations
--enable-shared: This switch enables building of the libatomic_ops shared libraries.
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Libraries: libatomic_ops.so and libatomic_ops_gpl.so
Installed Directory: /usr/include/libatomic_ops and /usr/share/doc/libatomic_ops-7.6.14
Short Descriptions
libatomic_ops.so contains functions for atomic memory operations.
9.32 libblockdev-2.28
Introduction to libblockdev
libblockdev is a C library supporting GObject Introspection for manipulation of block devices. It has a plugin-based architecture where each technology (like LVM, Btrfs, MD RAID, Swap,…) is implemented in a separate plugin, possibly with multiple implementations (e.g. using LVM CLI or the new LVM DBus API).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/storaged-project/libblockdev/releases/download/2.28-1/libblockdev-2.28.tar.gz
-
Download MD5 sum: 6476e5967753ee03d8e65f4d7837a4b6
-
Download size: 908 KB
-
Estimated disk space required: 14 MB
-
Estimated build time: 0.2 SBU
libblockdev Dependencies
Required
gobject-introspection-1.74.0, libbytesize-2.7, libyaml-0.2.5, parted-3.5, and volume_key-0.3.12
Optional
btrfs-progs-6.1.3, GTK-Doc-1.33.2, mdadm-4.2, dmraid, bcachefs, and ndctl
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libblockdev
Installation of libblockdev
Install libblockdev by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--with-python3 \
--without-gtk-doc \
--without-nvdimm \
--without-dm &&
make
This package does not come with a working test suite.
Now, as the root user:
make install
Contents
Installed Programs: lvm-cache-stats
Installed Libraries: libbd_btrfs.so, libbd_crypto.so, libbd_fs.so, libbd_kbd.so, libbd_loop.so, libbd_lvm.so, libbd_lvm-dbus.so, libbd_mdraid.so, libbd_mpath.so, libbd_part.so, libbd_part_err.so, libbd_swap.so, libbd_utils.so, libbd_vdo.so, and libblockdev.so
Installed Directories: /etc/libblockdev, /usr/include/blockdev, and /usr/share/gtk-doc/html/libblockdev
Short Descriptions
lvm-cache-stats prints statistics on caches on LVM Logical Volumes.
9.33 libbytesize-2.7
Introduction to libbytesize
The libbytesize package is a library which facilitates the common operations with sizes in bytes.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/storaged-project/libbytesize/releases/download/2.7/libbytesize-2.7.tar.gz
-
Download MD5 sum: c3f5b9bfbf67020c8b42225093321e23
-
Download size: 435 KB
-
Estimated disk space required: 3.7 MB
-
Estimated build time: less than 0.1 SBU (including tests)
libbytesize Dependencies
Required
pcre2-10.42 and Pygments-2.14.0
Recommended
Optional
GTK-Doc-1.33.2, pocketlint (python module for one test), and polib (python module for one test)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libbytesize
Installation of libbytesize
Install libbytesize by running the following commands:
./configure --prefix=/usr &&
make
If you have the optional python modules installed, the regression tests can be run with: make check.
Now, as the root user:
make install
Contents
Installed Programs: bscalc
Installed Library: libbytesize.so
Installed Directories: /usr/include/bytesize and /usr/lib/python3.11/site-packages/bytesize
Short Descriptions
bscalc converts from a larger unit, such as MB or TB, back to a value in bytes
libbytesize.so contains functions used to handle common read/write operations with sizes in bytes.
9.34 libcloudproviders-0.3.1
Introduction to libcloudproviders
The libcloudproviders package contains a library which provides a DBus API that allows cloud storage sync clients to expose their services.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/libcloudproviders/0.3/libcloudproviders-0.3.1.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/libcloudproviders/0.3/libcloudproviders-0.3.1.tar.xz
-
Download MD5 sum: f4c782e044760830515ab9b886791a95
-
Download size: 24 KB
-
Estimated disk space required: 1.8 MB
-
Estimated build time: less than 0.1 SBU
libcloudproviders Dependencies
Required
gobject-introspection-1.74.0 and Vala-0.56.4
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libcloudproviders
Installation of libcloudproviders
Install libcloudproviders 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.
-Denable-gtk-doc: Use this switch if you have GTK-Doc-1.33.2 installed and wish to generate the API documentation.
Contents
Installed Programs: None
Installed Libraries: libcloudproviders.so
Installed Directories: /usr/include/cloudproviders
Short Descriptions
libcloudproviders.so contains functions that provide a DBus API to allow cloud storage sync clients to expose their services.
9.35 libdaemon-0.14
Introduction to libdaemon
The libdaemon package is a lightweight C library that eases the writing of UNIX daemons.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://0pointer.de/lennart/projects/libdaemon/libdaemon-0.14.tar.gz
-
Download MD5 sum: 509dc27107c21bcd9fbf2f95f5669563
-
Download size: 332 KB
-
Estimated disk space required: 3 MB
-
Estimated build time: 0.1 SBU
libdaemon Dependencies
Optional
Doxygen-1.9.6 and Lynx-2.8.9rel.1
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libdaemon
Installation of libdaemon
Install libdaemon by running the following commands:
./configure --prefix=/usr --disable-static &&
make
If you have Doxygen installed and wish to build the API documentation, issue the following command:
make -C doc doxygen
This package does not come with a test suite.
Now, as the root user:
make docdir=/usr/share/doc/libdaemon-0.14 install
If you built the API documentation, install it using the following commands as the root user:
install -v -m755 -d /usr/share/doc/libdaemon-0.14/reference/html &&
install -v -m644 doc/reference/html/* /usr/share/doc/libdaemon-0.14/reference/html &&
install -v -m644 doc/reference/man/man3/* /usr/share/man/man3
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libdaemon.so
Installed Directories: /usr/include/libdaemon and /usr/share/doc/libdaemon-0.14
Short Descriptions
libdaemon.so contains the libdaemon API functions.
9.36 libgcrypt-1.10.1
Introduction to libgcrypt
The libgcrypt package contains a general purpose crypto library based on the code used in GnuPG. The library provides a high level interface to cryptographic building blocks using an extendable and flexible API.
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/libgcrypt/libgcrypt-1.10.1.tar.bz2
-
Download (FTP): ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.10.1.tar.bz2
-
Download MD5 sum: 8fadbe1fddafa341dce5ef3869f70e25
-
Download size: 3.6 MB
-
Estimated disk space required: 130 MB (with tests and pdf documentation)
-
Estimated build time: 0.4 SBU (with documentation; add 0.5 SBU for tests)
libgcrypt Dependencies
Required
Optional
Pth-2.0.7 and texlive-20220321 (or install-tl-unx)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libgcrypt
Installation of libgcrypt
Install libgcrypt by running the following commands:
./configure --prefix=/usr &&
make &&
make -C doc html &&
makeinfo --html --no-split -o doc/gcrypt_nochunks.html doc/gcrypt.texi &&
makeinfo --plaintext -o doc/gcrypt.txt doc/gcrypt.texi
The above commands build the documentation in html and plaintext formats. If you wish to build alternate formats of the documentation, you need texlive-20220321 (or install-tl-unx). Issue the following command:
make -C doc pdf
To test the results, issue: make check.
Now, as the root user:
make install &&
install -v -dm755 /usr/share/doc/libgcrypt-1.10.1 &&
install -v -m644 README doc/{README.apichanges,fips*,libgcrypt*} \
/usr/share/doc/libgcrypt-1.10.1 &&
install -v -dm755 /usr/share/doc/libgcrypt-1.10.1/html &&
install -v -m644 doc/gcrypt.html/* \
/usr/share/doc/libgcrypt-1.10.1/html &&
install -v -m644 doc/gcrypt_nochunks.html \
/usr/share/doc/libgcrypt-1.10.1 &&
install -v -m644 doc/gcrypt.{txt,texi} \
/usr/share/doc/libgcrypt-1.10.1
If you built alternate formats of the documentation, install them by issuing the following command as the root user:
install -v -m644 doc/gcrypt.{pdf,ps,dvi} \
/usr/share/doc/libgcrypt-1.10.1
Command Explanations
--with-capabilities: This option enables libcap2 support. Note that this breaks cryptsetup-2.4.3
Contents
Installed Programs: dumpsexp, hmac256, libgcrypt-config, and mpicalc
Installed Library: libgcrypt.so
Installed Directory: /usr/share/doc/libgcrypt-1.10.1
Short Descriptions
dumpsexp is a debug tool for S-expressions
hmac256 is a standalone HMAC-SHA-256 implementation used to compute an HMAC-SHA-256 authentication code
libgcrypt-config determines the compile and linker flags that should be used to compile and link programs that use libgcrypt
mpicalc is a RPN (Reverse Polish Notation) calculator
libgcrypt.so contains the cryptographic API functions.
9.37 libgpg-error-1.46
Introduction to libgpg-error
The libgpg-error package contains a library that defines common error values for all GnuPG components.
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/libgpg-error/libgpg-error-1.46.tar.bz2
-
Download (FTP): ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.46.tar.bz2
-
Download MD5 sum: db41efe5aba3baad6cf266fea720095d
-
Download size: 992 KB
-
Estimated disk space required: 11 MB (with tests)
-
Estimated build time: 0.1 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libgpg-error
Installation of libgpg-error
Install libgpg-error by running the following commands:
./configure --prefix=/usr &&
make
To test the results, issue: make check.
Now, as the root user:
make install &&
install -v -m644 -D README /usr/share/doc/libgpg-error-1.46/README
Contents
Installed Programs: gpg-error, gpgrt-config, and yat2m
Installed Library: libgpg-error.so
Installed Directories: /usr/share/common-lisp/source/gpg-error, /usr/share/libgpg-error, and /usr/share/doc/libgpg-error-1.46
Short Descriptions
gpg-error is used to determine libgpg-error error codes
gpgrt-config is a pkg-config style tool for querying the information about installed version of libgpg-error
yat2m extracts man pages from a Texinfo source
libgpg-error.so contains the libgpg-error API functions.
9.38 libgrss-0.7.0
Introduction to libgrss
The libgrss package contains a library designed to manipulate RSS and Atom feeds.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/libgrss/0.7/libgrss-0.7.0.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/libgrss/0.7/libgrss-0.7.0.tar.xz
-
Download MD5 sum: 7c0ee46a82dc0e9610183fe9ef8c7c1d
-
Download size: 356 KB
-
Estimated disk space required: 10 MB
-
Estimated build time: 0.1 SBU
Additional Downloads
libgrss Dependencies
Required
Recommended
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libgrss
Installation of libgrss
Install libgrss by running the following commands:
patch -Np1 -i ../libgrss-0.7.0-bugfixes-2.patch &&
autoreconf -fv &&
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.
Contents
Installed Programs: None
Installed Library: libgrss.so
Installed Directories: /usr/include/libgrss and /usr/share/doc/libgrss-0.7.0
Short Descriptions
libgrss.so provides API functions for handling RSS feeds.
9.39 libgsf-1.14.50
Introduction to libgsf
The libgsf package contains a library used for providing an extensible input/output abstraction layer for structured file formats.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/libgsf/1.14/libgsf-1.14.50.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/libgsf/1.14/libgsf-1.14.50.tar.xz
-
Download MD5 sum: 1e9088c9c8869532945a10f12f1829c2
-
Download size: 688 KB
-
Estimated disk space required: 14 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
libgsf Dependencies
Required
GLib-2.74.5 and libxml2-2.10.3
Recommended
gdk-pixbuf-2.42.10 (To build gsf-office-thumbnailer)
Optional
gobject-introspection-1.74.0 and GTK-Doc-1.33.2
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libgsf
Installation of libgsf
Install libgsf by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check. Two tests, t1004-zip-zip64.pl and t1005-zip-nonseekable.pl are known to fail.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.
Contents
Installed Programs: gsf, gsf-office-thumbnailer, and gsf-vba-dump
Installed Library: libgsf-1.so
Installed Directories: /usr/include/libgsf-1, /usr/share/gtk-doc/html/gsf and /usr/share/thumbnailers
Short Descriptions
gsf is a simple archive utility, somewhat similar to tar(1)
gsf-office-thumbnailer is used internally by GNOME applications such as Nautilus to generate thumbnails of several types of office application files
gsf-vba-dump is used to extract Visual Basic for Applications macros from files
libgsf-1.so contains the libgsf API functions.
9.40 libgudev-237
Introduction to libgudev
The libgudev package contains GObject bindings for libudev.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/libgudev/237/libgudev-237.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/libgudev/237/libgudev-237.tar.xz
-
Download MD5 sum: a7783083cd74957d3a727ddc4737ee84
-
Download size: 32 KB
-
Estimated disk space required: 1.8 MB
-
Estimated build time: less than 0.1 SBU
Required
Optional
gobject-introspection-1.74.0 (for gir-data, needed for GNOME), GTK-Doc-1.33.2, and umockdev-0.17.16 (for testing)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libgudev
Installation of libgudev
Install libgudev by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release .. &&
ninja
To test the results, issue: ninja test.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
-Dgtk_doc=true: Use this option if GTK-Doc is installed and you wish to build and install the API documentation.
Contents
Installed Program: None
Installed Libraries: libgudev-1.0.so
Installed Directories: /usr/include/gudev-1.0 and /usr/share/gtk-doc/html/gudev
Short Descriptions
libgudev-1.0.so is a GObject-based wrapper library for libudev.
9.41 libgusb-0.4.5
Introduction to libgusb
The libgusb package contains the GObject wrappers for libusb-1.0 that makes it easy to do asynchronous control, bulk and interrupt transfers with proper cancellation and integration into a mainloop.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/hughsie/libgusb/releases/download/0.4.5/libgusb-0.4.5.tar.xz
-
Download MD5 sum: 6b8dfb57b2828562ed007fc84ab6af67
-
Download size: 52 KB
-
Estimated disk space required: 2.6 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
libgusb Dependencies
Required
JSON-GLib-1.6.6 and libusb-1.0.26
Recommended
gobject-introspection-1.74.0, umockdev-0.17.16, usbutils-015 (for usb.ids data file, which is also required for the tests), and Vala-0.56.4
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libgusb
Installation of libgusb
Install libgusb by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release -Ddocs=false .. &&
ninja
If you have Gi-DocGen-2023.1 installed and wish to build the API documentation for this package, issue:
sed "/output: 'libgusb'/s/'\$/-0.4.5'/" -i ../docs/meson.build &&
meson configure -Ddocs=true &&
ninja
To test the results, issue: ninja test.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
-Ddocs=false: Allow building this package without Gi-DocGen-2023.1 installed. If you have Gi-DocGen-2023.1 installed and you wish to rebuild and install the API documentation, a meson configure command will reset this option.
Contents
Installed Programs: gusbcmd
Installed Library: libgusb.so
Installed Directories: /usr/include/gusb-1 and /usr/share/doc/libgusb-0.4.5 (if gi-docgen is used)
Short Descriptions
gusbcmd is a debugging tool for the libgusb library
libgusb.so contains the libgusb API functions.
9.42 libical-3.0.16
Introduction to libical
The libical package contains an implementation of the iCalendar protocols and data formats.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/libical/libical/releases/download/v3.0.16/libical-3.0.16.tar.gz
-
Download MD5 sum: 3799f9dde1db6f7eb0cb112b5e14ab60
-
Download size: 900 KB
-
Estimated disk space required: 24 MB (with tests and API documentation)
-
Estimated build time: 0.3 SBU (with tests and documentation)
libical Dependencies
Required
Recommended
gobject-introspection-1.74.0 and Vala-0.56.4 (both required for GNOME)
Optional
Berkeley DB-5.3.28, Doxygen-1.9.6 (for the API documentation), Graphviz-7.1.0 (for the API documentation), GTK-Doc-1.33.2 (for the API documentation), ICU-72.1, and PyGObject-3.42.2 (for some tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libical
Installation of libical
Install libical by running the following commands:
Note
This package may occasionally fail when building with multiple processors. See Using Multiple Processors for more information.
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DSHARED_ONLY=yes \
-DICAL_BUILD_DOCS=false \
-DGOBJECT_INTROSPECTION=true \
-DICAL_GLIB_VAPI=true \
.. &&
make -j1
If you have Doxygen-1.9.6, Graphviz-7.1.0, and GTK-Doc-1.33.2 installed and wish to build the API documentation, you should remove the -DICAL_BUILD_DOCS=false switch and issue:
make docs
To test the results, issue: make test.
Now, as the root user:
make install
If you have built the API documentation, install by issuing, as root user:
install -vdm755 /usr/share/doc/libical-3.0.16/html &&
cp -vr apidocs/html/* /usr/share/doc/libical-3.0.16/html
Command Explanations
-DCMAKE_BUILD_TYPE=Release: This switch is used to apply higher level of the compiler optimizations.
-DSHARED_ONLY=yes: This switch is used in order to only build the shared libraries.
-DICAL_BUILD_DOCS=false: This switch prevents building the GTK documentation. Remove if you want to build the documentation.
-DGOBJECT_INTROSPECTION=true: This switch is used to generate GObject metadata bindings.
-DICAL_GLIB_VAPI=true: This switch is used in order to build bindings for Vala-0.56.4.
-DUSE_BUILTIN_TZDATA=yes: This switch is used in order to build using your own timezone data.
Contents
Installed Programs: None
Installed Libraries: libical_cxx.so, libical.so, libical-glib.so, libicalss_cxx.so, libicalss.so, and libicalvcal.so
Installed Directory: /usr/include/libical, /usr/include/libical-glib, /usr/lib/cmake/LibIcal, /usr/libexec/libical, /usr/share/gtk-doc/html/libical-glib (optional), and /usr/share/doc/libical-3.0.16/html
Short Descriptions
libical.so contains the libical API functions
libical_cxx.so contains the libical C++ bindings
libical-glib.so contains the libical glib bindings
libicalss.so is a library that allows you to store iCal component data to disk in a variety of ways
libicalss_cxx.so contains the libicalss C++ bindings
libicalvcal.so is a vCard/vCalendar C interface.
9.43 libidn-1.41
Introduction to libidn
libidn is a package designed for internationalized string handling based on the Stringprep, Punycode and IDNA specifications defined by the Internet Engineering Task Force (IETF) Internationalized Domain Names (IDN) working group, used for internationalized domain names. This is useful for converting data from the system’s native representation into UTF-8, transforming Unicode strings into ASCII strings, allowing applications to use certain ASCII name labels (beginning with a special prefix) to represent non-ASCII name labels, and converting entire domain names to and from the ASCII Compatible Encoding (ACE) form.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/libidn/libidn-1.41.tar.gz
-
Download (FTP): ftp://ftp.gnu.org/gnu/libidn/libidn-1.41.tar.gz
-
Download MD5 sum: 2cbff2f75f904328ac507af576b07197
-
Download size: 2.5 MB
-
Estimated disk space required: 22 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
libidn Dependencies
Optional
Pth-2.0.7, Emacs-28.2, GTK-Doc-1.33.2, OpenJDK-19.0.2, Valgrind-3.20.0, and Mono
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libidn
Installation of libidn
Install libidn by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, run:
pushd tests &&
make check &&
popd
Now, as the root user:
make install &&
find doc -name "Makefile*" -delete &&
rm -rf -v doc/{gdoc,idn.1,stamp-vti,man,texi} &&
mkdir -v /usr/share/doc/libidn-1.41 &&
cp -r -v doc/* /usr/share/doc/libidn-1.41
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.
--enable-java: Use this switch to enable building the Java implementation of libidn. Note that OpenJDK-19.0.2 must be installed to use this option.
Contents
Installed Program: idn
Installed Library: libidn.so
Installed Directories: /usr/share/doc/libidn-1.41 and /usr/share/gtk-doc/html/libidn
Short Descriptions
idn is a command line interface to the internationalized domain name library
libidn.so contains a generic Stringprep implementation that does Unicode 3.2 NFKC normalization, mapping and prohibition of characters, and bidirectional character handling. Profiles for Nameprep, iSCSI, SASL and XMPP are included as well as support for Punycode and ASCII Compatible Encoding (ACE) via IDNA. A mechanism to define Top-Level Domain (TLD) specific validation tables, and to compare strings against those tables, as well as default tables for some TLDs are included.
9.44 libidn2-2.3.4
Introduction to libidn2
libidn2 is a package designed for internationalized string handling based on standards from the Internet Engineering Task Force (IETF)’s IDN working group, designed for internationalized domain names.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/libidn/libidn2-2.3.4.tar.gz
-
Download (FTP): ftp://ftp.gnu.org/gnu/libidn/libidn2-2.3.4.tar.gz
-
Download MD5 sum: a12109804fc9c5d7fb31f068c66655b8
-
Download size: 2.0 MB
-
Estimated disk space required: 21 MB (add 2 MB for tests)
-
Estimated build time: 0.1 SBU (add 0.6 SBU for tests)
libidn2 Dependencies
Required
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libidn2
Installation of libidn2
Install libidn2 by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.
Contents
Installed Program: idn2
Installed Library: libidn2.so
Installed Directory: /usr/share/gtk-doc/html/libidn2
Short Descriptions
idn2 is a command line interface to the internationalized domain library
libidn2.so contains a generic Stringprep implementation used for internationalized string handling.
9.45 libiodbc-3.52.15
Introduction to libiodbc
libiodbc is an API to ODBC compatible databases.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/iodbc/libiodbc-3.52.15.tar.gz
-
Download MD5 sum: 89949a41e542bb1b880d7fcc4987dad2
-
Download size: 1.0 MB
-
Estimated disk space required: 26 MB
-
Estimated build time: 0.2 SBU
libiodbc Dependencies
Recommended
GTK+-2.24.33 (to create the GUI admin tool)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libiodbc
Installation of libiodbc
Install libiodbc by running the following commands:
./configure --prefix=/usr \
--with-iodbc-inidir=/etc/iodbc \
--includedir=/usr/include/iodbc \
--disable-libodbc \
--disable-static &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--with-iodbc-inidir=/etc/iodbc: libiodbc will install configuration files in this directory.
--includedir=/usr/include/iodbc: This installs the interface headers to a private directory to avoid a conflict with headers installed by unixODBC.
--disable-libodbc: This prevents the installation of the libodbc.so symbolic link to avoid a conflict with unixODBC.
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: iodbc-config, iodbctest, iodbctestw, and iodbcadm-gtk
Installed Libraries: libdrvproxy.so, libiodbc.so, libiodbcinst.so, and libiodbcadm.so
Installed Directory: /usr/include/iodbc, /usr/share/libiodbc, and /etc/iodbc
Short Descriptions
iodbc-config is a utility for retrieving the installation options of libiodbc
iodbctest{,w} are interactive SQL processors
iodbcadm-gtk is a graphical administration utility.
9.46 libksba-1.6.3
Introduction to Libksba
The Libksba package contains a library used to make X.509 certificates as well as making the CMS (Cryptographic Message Syntax) easily accessible by other applications. Both specifications are building blocks of S/MIME and TLS. The library does not rely on another cryptographic library but provides hooks for easy integration with Libgcrypt.
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/libksba/libksba-1.6.3.tar.bz2
-
Download (FTP): ftp://ftp.gnupg.org/gcrypt/libksba/libksba-1.6.3.tar.bz2
-
Download MD5 sum: 65683abfe7175e3cb19fb6f40175fea8
-
Download size: 653 KB
-
Estimated disk space required: 10 MB (with tests)
-
Estimated build time: 0.1 SBU (with tests)
Libksba Dependencies
Required
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libksba
Installation of Libksba
Install Libksba 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: None
Installed Library: libksba.so
Installed Directory: None
Short Descriptions
libksba.{so,a} contains the cryptographic API functions.
9.47 liblinear-245
Introduction to liblinear
This package provides a library for learning linear classifiers for large scale applications. It supports Support Vector Machines (SVM) with L2 and L1 loss, logistic regression, multi class classification and also Linear Programming Machines (L1-regularized SVMs). Its computational complexity scales linearly with the number of training examples making it one of the fastest SVM solvers around.
This package is known to build and work properly using an LFS 11.3 platform.
Note
After updating this package from liblinear-1.96 or earlier, you need to reinstall Nmap-7.93, in order to link to the new library.
Package Information
-
Download (HTTP): https://github.com/cjlin1/liblinear/archive/v245/liblinear-245.tar.gz
-
Download MD5 sum: 6838c3414b9b685c12395f0b74806934
-
Download size: 560 KB
-
Estimated disk space required: 1.6 MB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/liblinear
Installation of liblinear
Install liblinear by running the following commands:
make lib
This package does not come with a test suite.
Now, as the root user:
install -vm644 linear.h /usr/include &&
install -vm755 liblinear.so.5 /usr/lib &&
ln -sfv liblinear.so.5 /usr/lib/liblinear.so
Contents
Installed Programs: None
Installed Library: liblinear.so
Installed Directories: None
Short Descriptions
liblinear.so is a large linear classification library.
9.48 libmbim-1.26.4
Introduction to libmbim
The libmbim package contains a GLib-based library for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.freedesktop.org/software/libmbim/libmbim-1.26.4.tar.xz
-
Download MD5 sum: 58dea20cad346f31d2873b68385a9973
-
Download size: 553 KB
-
Estimated disk space required: 33 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
libmbim Dependencies
Recommended
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libmbim
Installation of libmbim
Install libmbim by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--enable-gtk-doc: Use this parameter if GTK-Doc is installed and you wish to rebuild and install the API documentation.
Contents
Installed Programs: mbimcli and mbim-network
Installed Libraries: libmbim-glib.so
Installed Directories: /usr/include/libmbim-glib and /usr/share/gtk-doc/html/libmbim-glib
Short Descriptions
mbimcli is an utility used to control MBIM devices
mbim-network is an utility used for simple network management of MBIM devices
libmbim-glib.so contains API functions for talking to WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol.
9.49 libpaper-1.1.24+nmu5
Introduction to libpaper
This package is intended to provide a simple way for applications to take actions based on a system or user-specified paper size.
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/libp/libpaper/libpaper_1.1.24+nmu5.tar.gz
-
Download MD5 sum: 38bc55688c0fc5544edaa5a951a45fbd
-
Download size: 48 KB
-
Estimated disk space required: 3.5 MB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libpaper
Installation of libpaper
Install libpaper by running the following commands:
autoreconf -fi &&
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-static &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
mkdir -vp /etc/libpaper.d
The /etc/libpaper.d directory contains scripts to run after the paper size has been changed. This package puts no scripts here, but other packages may. If the fcron package has not been installed, create the run-parts script as shown in the Fcron Configuration Information section.
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
mkdir -pv /etc/libpaper.d: libpaper expects that packages will install files into this directory.
Configuring libpaper
Configuration Information
Create /etc/papersize to set the default system paper size. Issue the following command as the root user to set this to ‘A4’ (libpaper prefers the lowercase form). You may wish to use a different size, such as letter.
cat > /etc/papersize << "EOF"
a4
EOF
Contents
Installed Programs: paperconf, paperconfig, run-parts
Installed Library: libpaper.so
Installed Directories: /etc/libpaper.d
Short Descriptions
paperconf prints paper configuration information
paperconfig configures the system default paper size
libpaper.so contains functions for interrogating the paper library.
9.50 libportal-0.6
Introduction to libportal
The libportal package provides a library that contains GIO-style async APIs for most Flatpak portals.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/flatpak/libportal/releases/download/0.6/libportal-0.6.tar.xz
-
Download MD5 sum: e16c8ca2621aff64774a1d2ad6a2a346
-
Download size: 64 KB
-
Estimated disk space required: 2.9 MB
-
Estimated build time: 0.1 SBU
libportal Dependencies
Required
Recommended
GTK+-3.24.36, GTK-4.8.3, and Qt-5.15.8
Optional
Gi-DocGen-2023.1 and Vala-0.56.4
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libportal
Installation of libportal
Warning
If a previous version of libportal is installed, move the headers out of the way so that later packages do not encounter conflicts (as the root user):
if [ -e /usr/include/libportal ]; then
rm -rf /usr/include/libportal.old &&
mv -vf /usr/include/libportal{,.old}
fi
Install libportal by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release -Ddocs=false .. &&
ninja
If you have Gi-DocGen-2023.1 installed and wish to build the API documentation for this package, issue:
sed "/output/s/-1/-0.6/" -i ../doc/meson.build &&
meson configure -Ddocs=true &&
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.
-Ddocs=false: Allow building this package without Gi-DocGen-2023.1 installed. If you have Gi-DocGen-2023.1 installed and you wish to rebuild and install the API documentation, a meson configure command will reset this option.
-Dbackends=gtk3,gtk4,qt5: This switch allows you to set the available backends. You can use it to disable the dependency on gtk-3, gtk-4, or qt-5. Most applications that use libportal will use either gtk-4 or gtk-3. The default is to build all three backends.
Contents
Installed Programs: None
Installed Libraries: libportal.so, libportal-gtk3.so, libportal-gtk4.so, and libportal-qt5.so
Installed Directories: /usr/include/libportal and /usr/share/gtk-doc/html/libportal
Short Descriptions
libportal.so provides GIO-style async APIs for most Flatpak portals
libportal-gtk3.so provides GTK+-3 specific functions for interacting with Flatpak portals.
libportal-gtk4.so provides GTK-4 specific functions for interacting with Flatpak portals.
libportal-qt5.so provides Qt5 specific functions for interacting with Flatpak portals.
9.51 libptytty-2.0
Introduction to libptytty
The libptytty package provides a library that allows for OS independent and secure pty/tty and utmp/wtmp/lastlog handling.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): http://dist.schmorp.de/libptytty/libptytty-2.0.tar.gz
-
Download MD5 sum: 2a7f3f3c0d3ef71902da745dc7959529
-
Download size: 48 KB
-
Estimated disk space required: 1.4 MB
-
Estimated build time: less than 0.1 SBU
libptytty Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libptytty
Installation of libptytty
Install libptytty by running the following commands:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DPT_UTMP_FILE:STRING=/run/utmp \
.. &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Contents
Installed Programs: None
Installed Libraries: libptytty.so
Installed Directories: None
Short Descriptions
libptytty.so provides for OS independent and secure pty/tty and utmp/wtmp/lastlog handling.
9.52 libqalculate-4.5.1
Introduction to libqalculate
The libqalculate package contains a library that provides functions for a multi-purpose calculator.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/Qalculate/libqalculate/releases/download/v4.5.1/libqalculate-4.5.1.tar.gz
-
Download MD5 sum: 4b8b37f7acfb24e9e8019e8a56d9dc48
-
Download size: 2.5 MB
-
Estimated disk space required: 135 MB (with tests)
-
Estimated build time: 0.9 SBU (Using parallelism=4; with tests)
libqalculate Dependencies
Required
cURL-7.88.1, ICU-72.1, and libxml2-2.10.3
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libqalculate
Installation of libqalculate
Install libqalculate by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/libqalculate-4.5.1 &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: qalc
Installed Library: libqalculate.so
Installed Directories: /usr/include/libqalculate, /usr/share/doc/libqalculate-4.5.1, and /usr/share/qalculate
Short Descriptions
qalc is a powerful and easy to use command line calculator
libqalculate.so contains the libqalculate API functions.
9.53 libqmi-1.30.8
Introduction to libqmi
The libqmi package contains a GLib-based library for talking to WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.freedesktop.org/software/libqmi/libqmi-1.30.8.tar.xz
-
Download MD5 sum: 5ec8838914f80e1dfa4d2fa8cc2f186d
-
Download size: 1.2 MB
-
Estimated disk space required: 151 MB (with tests)
-
Estimated build time: 0.3 SBU (Using parallelism=4; with tests)
libqmi Dependencies
Required
Recommended
gobject-introspection-1.74.0 and libmbim-1.26.4
Optional
GTK-Doc-1.33.2, help2man, and libqrtr-glib
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libqmi
Installation of libqmi
Install libqmi 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
--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.
--disable-mbim-qmux: This switch disables support for using a MBIM control device for QMI messages. Use this switch if you did not install libmbim.
Contents
Installed Programs: qmicli, qmi-firmware-update, and qmi-network
Installed Libraries: libqmi-glib.so
Installed Directories: /usr/include/libqmi-glib and /usr/share/gtk-doc/html/libqmi-glib
Short Descriptions
qmicli is an utility used to control QMI devices
qmi-firmware-update is an utility used to perform firmware updates on QMI devices
qmi-network is an utility used for simple network management of QMI devices
libqmi-glib.so contains API functions for talking to WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol.
9.54 libseccomp-2.5.4
Introduction to libseccomp
The libseccomp package provides an easy to use and platform independent interface to the Linux kernel’s syscall filtering mechanism.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/seccomp/libseccomp/releases/download/v2.5.4/libseccomp-2.5.4.tar.gz
-
Download MD5 sum: 74008bb33234e0c2a0d998e7bee5c625
-
Download size: 624 KB
-
Estimated disk space required: 6.3 MB (additional 3.8 MB for tests)
-
Estimated build time: less than 0.1 SBU (additional 2.1 SBU for tests)
libseccomp Dependencies
Optional
Which-2.21 (needed for tests), Valgrind-3.20.0, and LCOV
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libseccomp
Installation of libseccomp
Install libseccomp by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Program: scmp_sys_resolver
Installed Library: libseccomp.so
Installed Directories: None
Short Descriptions
scmp_sys_resolver is used to resolve system calls for applications
libseccomp.so contains API functions for translating syscalls.
9.55 libsigc++-2.12.0
Introduction to libsigc++
The libsigc++ package implements a typesafe callback system for standard C++.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/libsigc++/2.12/libsigc++-2.12.0.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/libsigc++/2.12/libsigc++-2.12.0.tar.xz
-
Download MD5 sum: 943b7aef5d74fbc4f4a3bb67bcfaae02
-
Download size: 4.8 MB
-
Estimated disk space required: 28 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
libsigc++ Dependencies
Recommended
Boost-1.81.0 and libxslt-1.1.37
Optional
DocBook-utils-0.6.14, docbook-xml-5.0, Doxygen-1.9.6, and mm-common
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libsigc++
Installation of libsigc++
Install libsigc++ by running the following commands:
mkdir bld &&
cd bld &&
meson setup --prefix=/usr --buildtype=release .. &&
ninja
To test the results, issue: ninja test.
Now, as the root user:
ninja install
Command Explanations
-Dbuild-documentation=true: Use this switch if Doxygen-1.9.6 is installed and you wish to build and install the API documentation.
Contents
Installed Programs: None
Installed Library: libsigc-2.0.so
Installed Directories: /usr/{include,lib}/sigc++-2.0 and /usr/share/{devhelp/books,doc}/libsigc++-2.0 (if the documentation is enabled)
Short Descriptions
libsigc-2.0.so contains the libsigc++ API functions.
9.56 libsigsegv-2.14
Introduction to libsigsegv
libsigsegv is a library for handling page faults in user mode. A page fault occurs when a program tries to access to a region of memory that is currently not available. Catching and handling a page fault is a useful technique for implementing pageable virtual memory, memory-mapped access to persistent databases, generational garbage collectors, stack overflow handlers, and distributed shared memory.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.14.tar.gz
-
Download (FTP): ftp://ftp.gnu.org/gnu/libsigsegv/libsigsegv-2.14.tar.gz
-
Download MD5 sum: 63a2b35f11b2fbccc3d82f9e6c6afd58
-
Download size: 456 KB
-
Estimated disk space required: 3.6 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libsigsegv
Installation of libsigsegv
Install libsigsegv by running the following commands:
./configure --prefix=/usr \
--enable-shared \
--disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--enable-shared: This switch ensures that shared libraries are compiled.
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libsigsegv.so
Installed Directories: None
Short Descriptions
libsigsegv.so is a library for handling page faults in user mode.
9.57 libssh2-1.10.0
Introduction to libssh2
Libssh2 package is a client-side C library implementing the SSH2 protocol.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.libssh2.org/download/libssh2-1.10.0.tar.gz
-
Download MD5 sum: f604ba083fad23bf715a9ecccc9f57f4
-
Download size: 944 KB
-
Estimated disk space required: 13 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
Additional Downloads
- Required patch: https://www.linuxfromscratch.org/patches/blfs/11.3/libssh2-1.10.0-upstream_fix-1.patch
libssh2 Dependencies
Optional
GnuPG-2.4.0, libgcrypt-1.10.1, and OpenSSH-9.2p1 (all three are required for the test suite)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libssh2
Installation of libssh2
Apply a patch to fix incompatibility with recent OpenSSH releases:
patch -Np1 -i ../libssh2-1.10.0-upstream_fix-1.patch
Install libssh2 by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libssh2.so
Installed Directories: None
Short Descriptions
libssh2.so contains functions to use the SSH2 protocol.
9.58 libstatgrab-0.92.1
Introduction to libstatgrab
This is a library that provides cross platform access to statistics about the system on which it’s run. It’s written in C and presents a selection of useful interfaces which can be used to access key system statistics. The current list of statistics includes CPU usage, memory utilisation, disk usage, process counts, network traffic, disk I/O, and more.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.mirrorservice.org/sites/ftp.i-scream.org/pub/i-scream/libstatgrab/libstatgrab-0.92.1.tar.gz
-
Download (FTP): ftp://www.mirrorservice.org/sites/ftp.i-scream.org/pub/i-scream/libstatgrab/libstatgrab-0.92.1.tar.gz
-
Download MD5 sum: af685494e985229e0ac46365bc0cd50e
-
Download size: 800 KB
-
Estimated disk space required: 7.6 MB (with tests)
-
Estimated build time: 0.1 SBU (add 1.5 SBU for tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libstatgrab
Installation of libstatgrab
Install libstatgrab by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/libstatgrab-0.92.1 &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: saidar, statgrab, statgrab-make-mrtg-config, and statgrab-make-mrtg-index
Installed Library: libstatgrab.so
Installed Directories: /usr/share/doc/libstatgrab-0.92.1
Short Descriptions
saidar is a curses-based tool for viewing system statistics
statgrab is a sysctl-style interface to system statistics
statgrab-make-mrtg-config generates MRTG configuration
statgrab-make-mrtg-index generates an XHTML index page from MRTG configuration files or stdin
libstatgrab.so contains the libstatgrab API functions.
9.59 libtasn1-4.19.0
Introduction to libtasn1
libtasn1 is a highly portable C library that encodes and decodes DER/BER data following an ASN.1 schema.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/libtasn1/libtasn1-4.19.0.tar.gz
-
Download (FTP): ftp://ftp.gnu.org/gnu/libtasn1/libtasn1-4.19.0.tar.gz
-
Download MD5 sum: f701ab57eb8e7d9c105b2cd5d809b29a
-
Download size: 1.7 MB
-
Estimated disk space required: 17 MB (with tests)
-
Estimated build time: 0.8 SBU (with tests)
libtasn1 Dependencies
Optional
GTK-Doc-1.33.2 and Valgrind-3.20.0
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libtasn1
Installation of libtasn1
Install libtasn1 by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
If you did not pass the --enable-gtk-doc parameter to the configure script, you can install the API documentation using the following command as the root user:
make -C doc/reference install-data-local
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--enable-gtk-doc: This parameter is normally used if GTK-Doc is installed and you wish to rebuild and install the API documentation. It is broken for this package due to the use of a long deprecated gtk-doc program that is no longer available.
Contents
Installed Programs: asn1Coding, asn1Decoding and asn1Parser
Installed Library: libtasn1.so
Installed Directory: /usr/share/gtk-doc/html/libtasn1
Short Descriptions
asn1Coding is an ASN.1 DER encoder
asn1Decoding is an ASN.1 DER decoder
asn1Parser is an ASN.1 syntax tree generator for libtasn1
libtasn1.so is a library for Abstract Syntax Notation One (ASN.1) and Distinguish Encoding Rules (DER) manipulation.
9.60 libunique-1.1.6
Introduction to libunique
The libunique package contains a library for writing single instance applications.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/libunique/1.1/libunique-1.1.6.tar.bz2
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/libunique/1.1/libunique-1.1.6.tar.bz2
-
Download MD5 sum: 7955769ef31f1bc4f83446dbb3625e6d
-
Download size: 328 KB
-
Estimated disk space required: 7.0 MB
-
Estimated build time: 0.2 SBU
Additional Downloads
- Required patch: https://www.linuxfromscratch.org/patches/blfs/11.3/libunique-1.1.6-upstream_fixes-1.patch
libunique Dependencies
Required
GTK+-2.24.33, also GTK-Doc-1.33.2 (for autoreconf)
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libunique
Installation of libunique
Install libunique by running the following commands:
patch -Np1 -i ../libunique-1.1.6-upstream_fixes-1.patch &&
autoreconf -fi &&
./configure --prefix=/usr \
--disable-dbus \
--disable-static &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--disable-dbus: This switch disables D-Bus backend in favor of the GDBus backend.
--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: None
Installed Library: libunique-1.0.so
Installed Directories: /usr/include/unique-1.0 and /usr/share/gtk-doc/html/unique
Short Descriptions
libunique-1.0.so contains the libunique API functions for single instance support.
9.61 libunistring-1.1
Introduction to libunistring
libunistring is a library that provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/libunistring/libunistring-1.1.tar.xz
-
Download (FTP): ftp://ftp.gnu.org/gnu/libunistring/libunistring-1.1.tar.xz
-
Download MD5 sum: 0dfba19989ae06b8e7a49a7cd18472a1
-
Download size: 2.3 MB
-
Estimated disk space required: 51 MB (add 56 MB for tests)
-
Estimated build time: 0.4 SBU (Using parallelism=4; add 1.0 SBU for tests)
libunistring Dependencies
Optional
texlive-20220321 (or install-tl-unx) (to rebuild the documentation)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libunistring
Installation of libunistring
Install libunistring by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/libunistring-1.1 &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Libraries: libunistring.so
Installed Directory: /usr/include/unistring and /usr/share/doc/libunistring-1.1
Short Descriptions
libunistring.so provides the unicode string library API.
9.62 libunwind-1.6.2
Introduction to libunwind
The libunwind package contains a portable and efficient C programming interface (API) to determine the call-chain of a program. The API additionally provides the means to manipulate the preserved (callee-saved) state of each call-frame and to resume execution at any point in the call-chain (non-local goto). The API supports both local (same-process) and remote (across-process) operation.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.savannah.nongnu.org/releases/libunwind/libunwind-1.6.2.tar.gz
-
Download MD5 sum: f625b6a98ac1976116c71708a73dc44a
-
Download size: 884 KB
-
Estimated disk space required: 20 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
libunwind Dependencies
Optional
texlive-20220321 (for latex2man)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libunwind
Installation of libunwind
Install libunwind by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check. Two tests, run-coredump-unwind and run-coredump-unwind-mdi are known to fail.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Libraries: libunwind.so, libunwind-coredump.so, libunwind-generic.so, libunwind-ptrace.so, libunwind-setjmp.so, and libunwind-x86_64.so
Installed Directories: None.
9.63 liburcu-0.14.0
Introduction to liburcu
The userspace-rcu package provides a set of userspace RCU (read-copy-update) libraries. These data synchronization libraries provide read-side access which scales linearly with the number of cores. It does so by allowing multiples copies of a given data structure to live at the same time, and by monitoring the data structure accesses to detect grace periods after which memory reclamation is possible.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://lttng.org/files/urcu/userspace-rcu-0.14.0.tar.bz2
-
Download MD5 sum: 0cd5647788b048a5d6bbdb3b08d46299
-
Download size: 648 KB
-
Estimated disk space required: 25 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/liburcu
Installation of liburcu
Install liburcu by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/liburcu-0.14.0 &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Contents
Installed Programs: None
Installed Libraries: liburcu.so, liburcu-bp.so, liburcu-cds.so, liburcu-common.so, liburcu-mb.so, liburcu-memb.so, liburcu-qsbr.so, and liburcu-signal.so
Installed Directories: /usr/include/urcu and /usr/share/doc/liburcu-0.14.0.
9.64 libusb-1.0.26
Introduction to libusb
The libusb package contains a library used by some applications for USB device access.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/libusb/libusb/releases/download/v1.0.26/libusb-1.0.26.tar.bz2
-
Download MD5 sum: 9c75660dfe1d659387c37b28c91e3160
-
Download size: 608 KB
-
Estimated disk space required: 5.8 MB
-
Estimated build time: less than 0.1 SBU
libusb Dependencies
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libusb
Installation of libusb
Install libusb by running the following commands:
./configure --prefix=/usr --disable-static &&
make
If Doxygen is installed and you wish to build the API documentation, issue the following commands:
pushd doc &&
doxygen -u doxygen.cfg &&
make docs &&
popd
This package does not come with a test suite.
Now, as the root user:
make install
If you built the API documentation, install it using the following commands as the root user:
install -v -d -m755 /usr/share/doc/libusb-1.0.26/apidocs &&
install -v -m644 doc/api-1.0/* \
/usr/share/doc/libusb-1.0.26/apidocs
Configuring Libusb
To access raw USB devices (those not treated as a disk by the mass-storage driver), appropriate support must be available in the kernel. Check your kernel configuration:
Device Drivers --->
[*] USB support ---> [CONFIG_USB_SUPPORT]
<*/M> Support for Host-side USB [CONFIG_USB]
(Select any USB hardware device drivers you may need on the same page)
For more details on setting up USB devices, see the section called “USB Device Issues”.
Contents
Installed Programs: None
Installed Library: libusb-1.0.so
Installed Directories: /usr/include/libusb-1.0 and /usr/share/doc/libusb-1.0.26
Short Descriptions
libusb-1.0.so contains API functions used for accessing USB hardware.
9.65 libuv-1.44.2
Introduction to libuv
The libuv package is a multi-platform support library with a focus on asynchronous I/O.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://dist.libuv.org/dist/v1.44.2/libuv-v1.44.2.tar.gz
-
Download MD5 sum: 0addbddcb1098e2c1c99f03f0108e1e7
-
Download size: 1.2 MB
-
Estimated disk space required: 14 MB (add 13 MB for tests)
-
Estimated build time: 0.1 SBU (add 0.5 SBU for tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libuv
Installation of libuv
Install libuv by running the following commands:
Caution
The sh autogen.sh command below fails if the ACLOCAL environment variable is set as specified in Xorg-7. If it is used, ACLOCAL needs to be unset for this package and then reset for other packages.
sh autogen.sh &&
./configure --prefix=/usr --disable-static &&
make
If you want to run the tests, run: make check as a non-root user.
Now, as the root user:
make install
Contents
Installed Programs: None
Installed Library: libuv.so
Installed Directory: /usr/include/uv
Short Descriptions
libuv.so contains API functions for asynchronous I/O operations.
9.66 libxkbcommon-1.5.0
Introduction to libxkbcommon
libxkbcommon is a keymap compiler and support library which processes a reduced subset of keymaps as defined by the XKB specification.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://xkbcommon.org/download/libxkbcommon-1.5.0.tar.xz
-
Download MD5 sum: 40f0486b4eb491928ec6616c2ff85120
-
Download size: 464 KB
-
Estimated disk space required: 19 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
libxkbcommon Dependencies
Required
xkeyboard-config-2.38 (runtime)
Recommended
libxcb-1.15, Wayland-1.21.0, and wayland-protocols-1.31
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libxkbcommon
Installation of libxkbcommon
Install libxkbcommon by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Denable-docs=false .. &&
ninja
To test the results, issue: ninja test.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
-Denable-docs=false: This switch disables documentation generation. Remove it if Doxygen-1.9.6 is installed.
mv -v /usr/share/doc/libxkbcommon{,-1.5.0}: If you removed -Denable-docs=false, use this command to install the documentation in a versioned directory.
Contents
Installed Programs: xkbcli
Installed Libraries: libxkbcommon.so, libxkbcommon-x11.so, and libxkbregistry.so
Installed Directories: /usr/include/xkbcommon, /usr/libexec/xkbcommon, and /usr/share/doc/libxkbcommon-1.5.0
Short Descriptions
xkbcli provides a debugger and compiler for XKB keymaps
libxkbcommon.so contains the libxkbcommon API functions
libxkbcommon-x11.so contains the libxkbcommon X11 specific API functions
libxkbregistry.so contains a list of available XKB models, layouts, and variants for a given ruleset.
9.67 libxml2-2.10.3
Introduction to libxml2
The libxml2 package contains libraries and utilities used for parsing XML files.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/libxml2/2.10/libxml2-2.10.3.tar.xz
-
Download MD5 sum: f9edac7fac232b3657a003fd9a5bbe42
-
Download size: 2.5 MB
-
Estimated disk space required: 105 MB (with tests)
-
Estimated build time: 0.4 SBU (Using parallelism=4; with tests)
Additional Downloads
- Optional Test Suite: https://www.w3.org/XML/Test/xmlts20130923.tar.gz - This enables make check to do complete testing.
libxml2 Dependencies
Optional
ICU-72.1 (see below) and Valgrind-3.20.0 (may be used in the tests)
Note
The old Python2 module can be built after libxml2.so has been installed, see libxml2-2.10.3 python2 module.
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libxml2
Installation of libxml2
Install libxml2 by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-static \
--with-history \
PYTHON=/usr/bin/python3 \
--docdir=/usr/share/doc/libxml2-2.10.3 &&
make
If you downloaded the test suite, issue the following command:
tar xf ../xmlts20130923.tar.gz
| To test the results, issue: make check > check.log. A summary of the results can be obtained with **grep -E ‘^Total | expected’ check.log. If Valgrind-3.20.0 is installed and you want to check for memory leaks, replace **check with check-valgrind. |
Note
The tests use http://localhost/ to test parsing of external entities. If the machine where you run the tests serves as a web site, the tests may hang, depending on the content of the file served. It is therefore recommended to shut down the server during the tests, as the root user:
systemctl stop httpd.service
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--with-history: This switch enables Readline support when running xmlcatalog or xmllint in shell mode.
PYTHON=/usr/bin/python3: Allows building the libxml2 module with Python3 instead of Python2.
--with-icu: Add this switch if you have built ICU-72.1, for better unicode support.
Contents
Installed Programs: xml2-config, xmlcatalog, and xmllint
Installed Libraries: libxml2.so
Installed Directories: /usr/include/libxml2, /usr/lib/cmake/libxml2, /usr/share/doc/libxml2-2.10.3, and /usr/share/gtk-doc/html/libxml2
Short Descriptions
xml2-config determines the compile and linker flags that should be used to compile and link programs that use libxml2
xmlcatalog is used to monitor and manipulate XML and SGML catalogs
xmllint parses XML files and outputs reports (based upon options) to detect errors in XML coding
libxml2.so provides functions for programs to parse files that use the XML format.
9.68 libxslt-1.1.37
Introduction to libxslt
The libxslt package contains XSLT libraries used for extending libxml2 libraries to support XSLT files.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/libxslt/1.1/libxslt-1.1.37.tar.xz
-
Download MD5 sum: 84e86fc8a1b7495674016e05e4c5da44
-
Download size: 1.5 MB
-
Estimated disk space required: 35 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
libxslt Dependencies
Required
Recommended (at runtime)
docbook-xml-4.5 and docbook-xsl-nons-1.79.2
Note
Although it is not a direct dependency, many applications using libxslt will expect docbook-xml-4.5 and docbook-xsl-nons-1.79.2 to be present.
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libxslt
Installation of libxslt
Install libxslt by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/libxslt-1.1.37 \
PYTHON=/usr/bin/python3 &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: xslt-config and xsltproc
Installed Libraries: libexslt.so, libxslt.so and optionally, libxsltmod.so Python module
Installed Directories: /usr/include/libexslt, /usr/include/libxslt, /usr/lib/libxslt-plugins, /usr/share/doc/libxslt-1.1.37, and /usr/share/doc/libxslt-python-1.1.37
Short Descriptions
xslt-config is used to find out the pre-processor, linking and compiling flags necessary to use the libxslt libraries in 3rd-party programs
xsltproc is used to apply XSLT stylesheets to XML documents
libexslt.so is used to provide extensions to XSLT functions
libxslt.so provides extensions to the libxml2 libraries to parse files that use the XSLT format.
9.69 libwacom-2.6.0
Introduction to libwacom
The libwacom package contains a library used to identify wacom tablets and their model-specific features.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/linuxwacom/libwacom/releases/download/libwacom-2.6.0/libwacom-2.6.0.tar.xz
-
Download MD5 sum: a1efa7b814dbf8165874668b2900cc58
-
Download size: 108 KB
-
Estimated disk space required: 5.0 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
libwacom Dependencies
Required
Recommended
Optional
Doxygen-1.9.6, git-2.39.2, librsvg-2.54.5, Valgrind-3.20.0 (optional for some tests), and pytest-7.2.1 with python-libevdev and pyudev
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libwacom
Installation of libwacom
Install libwacom by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release -Dtests=disabled .. &&
ninja
To test the results, issue: ninja test. To run additional tests, install pytest-7.2.1, python-libevdev, and pyudev, then remove the “-Dtests=disabled” option from the meson line above.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
-Dtests=disabled: This parameter disables some of the more advanced tests because they require pytest-7.2.1 and other two Python modules beyond the scope of BLFS to work properly.
Contents
Installed Programs: libwacom-list-devices, libwacom-list-local-devices, libwacom-show-stylus, and libwacom-update-db
Installed Libraries: libwacom.so
Installed Directories: /usr/include/libwacom-1.0 and /usr/share/libwacom
Short Descriptions
libwacom-list-devices lists all tablet devices that are supported by libwacom
libwacom-list-local-devices lists tablet devices that are connected to the system
libwacom-show-stylus lists tablet stylus IDs
libwacom-update-db updates the system according to the current set of tablet data files
libwacom.so contains functions used for accessing Wacom information.
9.70 libwpe-1.14.1
Introduction to libwpe
The libwpe package contains a general purpose library for WPE WebKit and the WPE Renderer.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://wpewebkit.org/releases/libwpe-1.14.1.tar.xz
-
Download MD5 sum: d834d70a6b3afb24a05ec188df248e52
-
Download size: 64 KB
-
Estimated disk space required: 2.3 MB
-
Estimated build time: less than 0.1 SBU
libwpe Dependencies
Required
libxkbcommon-1.5.0 and Mesa-22.3.5
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libwpe
Installation of libwpe
Install libwpe by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release .. &&
ninja
This package does not come with a test suite.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
Contents
Installed Programs: None
Installed Libraries: libwpe-1.0.so
Installed Directories: /usr/include/wpe-1.0
Short Descriptions
libwpe-1.0.so contains functions that provide a general purpose library for WPEWebKit and the WPE Renderer.
9.71 libyaml-0.2.5
Introduction to libyaml
The yaml package contains a C library for parsing and emitting YAML (YAML Ain’t Markup Language) code.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/yaml/libyaml/releases/download/0.2.5/yaml-0.2.5.tar.gz
-
Download MD5 sum: bb15429d8fb787e7d3f1c83ae129a999
-
Download size: 596 KB
-
Estimated disk space required: 6.4 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
libyaml Dependencies
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libyaml
Installation of libyaml
Install libyaml by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Libraries: libyaml.so
Installed Directories: None
Short Descriptions
libyaml.so contains API functions for parsing and emitting YAML code.
9.72 LZO-2.10
Introduction to LZO
LZO is a data compression library which is suitable for data decompression and compression in real-time. This means it favors speed over compression ratio.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz
-
Download MD5 sum: 39d3f3f9c55c87b1e5d6888e1420f4b5
-
Download size: 588 KB
-
Estimated disk space required: 12 MB
-
Estimated build time: 0.3 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/lzo
Installation of LZO
Install LZO by running the following commands:
./configure --prefix=/usr \
--enable-shared \
--disable-static \
--docdir=/usr/share/doc/lzo-2.10 &&
make
To test the results, issue: make check. All the checks should pass. Now issue make test to run the full suite of tests.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Libraries: liblzo2.so
Installed Directories: /usr/include/lzo and /usr/share/doc/lzo
Short Descriptions
liblzo2.so is a data compression and decompression library.
9.73 mtdev-1.1.6
Introduction to mtdev
The mtdev package contains Multitouch Protocol Translation Library which is used to transform all variants of kernel MT (Multitouch) events to the slotted type B protocol.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://bitmath.org/code/mtdev/mtdev-1.1.6.tar.bz2
-
Download MD5 sum: bf8ef2482e84a00b5db8fbd3ce00e249
-
Download size: 292 KB
-
Estimated disk space required: 2.5 MB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/mtdev
Installation of mtdev
Install mtdev by running the following commands:
./configure --prefix=/usr --disable-static &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Program: mtdev-test
Installed Library: libmtdev.so
Installed Directories: None
Short Descriptions
mtdev-test is a tool to test libmtdev
libmtdev.so contains Multitouch Protocol Translation API functions.
9.74 Node.js-18.14.1
Introduction to Node.js
Node.js is a JavaScript runtime built on Chrome’s V8 JavaScript engine.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://nodejs.org/dist/v18.14.1/node-v18.14.1.tar.xz
-
Download MD5 sum: 09aaaa219c453d6d5307641cc41b76e1
-
Download size: 40 MB
-
Estimated disk space required: 962 MB (add 34 MB for tests)
-
Estimated build time: 15 SBU (add 4.2 SBU for tests: both using parallelism=4 and 4 CPUs online, parts of the tests will use all online CPUs)
Node.js Dependencies
Required
Recommended
c-ares-1.19.0, ICU-72.1, libuv-1.44.2, and nghttp2-1.52.0
Optional
http-parser and npm (an internal copy of npm will be installed if not present)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/nodejs
Installation of Node.js
Build Node.js by running the following commands:
./configure --prefix=/usr \
--shared-cares \
--shared-libuv \
--shared-openssl \
--shared-nghttp2 \
--shared-zlib \
--with-intl=system-icu &&
make
To test the results, issue: make test-only. One test is known to fail.
Now, as the root user:
make install &&
ln -sf node /usr/share/doc/node-18.14.1
Command Explanations
--with-intl=system-icu: use the system version of icu. Other values are full-icu (to build a local, full icu library) and small-icu (to build a local, minimal icu library).
--shared-{cares,libuv,nghttp2,openssl,zlib}: use the system installed libraries instead of local copies.
--without-npm: do not build npm (use if you’d like to build a separate npm later).
--shared-http-parser: use the system installed library instead of a local copy.
Contents
Installed Programs: corepack, node, npm, and npx
Installed Library: None
Installed Directories: /usr/include/node, /usr/lib/node_modules/{corepack,npm}, /usr/share/doc/{node,node-18.14.1}, and /usr/share/systemtap/tapset
Short Descriptions
corepack is an experimental tool to help with managing versions of package managers.
node is the server-side JavaScript runtime
npm is the Node.js package manager
/usr/lib/node_modules/npm/ is the installation root for Node.js executables and libraries.
9.75 npth-1.6
Introduction to NPth
The NPth package contains a very portable POSIX/ANSI-C based library for Unix platforms which provides non-preemptive priority-based scheduling for multiple threads of execution (multithreading) inside event-driven applications. All threads run in the same address space of the server application, but each thread has its own individual program-counter, run-time stack, signal mask and errno variable.
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/npth/npth-1.6.tar.bz2
-
Download (FTP): ftp://ftp.gnupg.org/gcrypt/npth/npth-1.6.tar.bz2
-
Download MD5 sum: 375d1a15ad969f32d25f1a7630929854
-
Download size: 296 KB
-
Estimated disk space required: 2.6 MB (with checks)
-
Estimated build time: less than 0.1 SBU (with checks)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/npth
Installation of NPth
Install NPth 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: npth-config
Installed Library: libnpth.so
Installed Directory: None
Short Descriptions
npth-config is a utility used to configure and build applications based on the npth library. It can be used to query the C compiler and linker flags which are required to correctly compile and link the application against the npth library
libnpth.so contains the API functions used by the New Portable Threads Library.
9.76 NSPR-4.35
Introduction to NSPR
Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc like functions.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://archive.mozilla.org/pub/nspr/releases/v4.35/src/nspr-4.35.tar.gz
-
Download MD5 sum: 5e0acf9fbdde85181bddd510f4624841
-
Download size: 1.0 MB
-
Estimated disk space required: 9.6 MB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/nspr
Installation of NSPR
Install NSPR by running the following commands:
cd nspr &&
sed -ri '/^RELEASE/s/^/#/' pr/src/misc/Makefile.in &&
sed -i 's#$(LIBRARY) ##' config/rules.mk &&
./configure --prefix=/usr \
--with-mozilla \
--with-pthreads \
$([ $(uname -m) = x86_64 ] && echo --enable-64bit) &&
make
The test suite is designed for testing changes to nss or nspr and is not particularly useful for checking a released version (e.g. it needs to be run on a non-optimized build with both nss and nspr directories existing alongside each other). For further details, see the User Notes for nss at https://wiki.linuxfromscratch.org/blfs/wiki/nss
Now, as the root user:
make install
Command Explanations
sed -ri ‘/^RELEASE/s/^/#/’ pr/src/misc/Makefile.in: This sed disables installing two unneeded scripts.
sed -i ‘s#$(LIBRARY) ##’ config/rules.mk: This sed disables installing the static libraries.
--with-mozilla: This parameter adds Mozilla support to the libraries (required if you want to build any other Mozilla products and link them to these libraries).
--with-pthreads: This parameter forces use of the system pthread library.
$([ $(uname -m) = x86_64 ] && echo --enable-64bit): The –enable-64bit parameter is required on an x86_64 system to prevent configure failing with a claim that this is a system without pthread support. The [ $(uname -m) = x86_64 ] test ensures it has no effect on a 32 bit system.
Contents
Installed Programs: nspr-config
Installed Libraries: libnspr4.so, libplc4.so, and libplds4.so
Installed Directories: /usr/include/nspr
Short Descriptions
nspr-config provides compiler and linker options to other packages that use NSPR
libnspr4.so contains functions that provide platform independence for non-GUI operating system facilities such as threads, thread synchronization, normal file and network I/O, interval timing and calendar time, basic memory management and shared library linking
libplc4.so contains functions that implement many of the features offered by libnspr4
libplds4.so contains functions that provide data structures.
9.77 PCRE-8.45
Introduction to PCRE
The PCRE package contains Perl Compatible Regular Expression libraries. These are useful for implementing regular expression pattern matching using the same syntax and semantics as Perl 5.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.bz2
-
Download MD5 sum: 4452288e6a0eefb2ab11d36010a1eebb
-
Download size: 1.5 MB
-
Estimated disk space required: 23 MB (with tests)
-
Estimated build time: 0.3 SBU (with tests)
PCRE Dependencies
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pcre
Installation of PCRE
Install PCRE by running the following commands:
./configure --prefix=/usr \
--docdir=/usr/share/doc/pcre-8.45 \
--enable-unicode-properties \
--enable-pcre16 \
--enable-pcre32 \
--enable-pcregrep-libz \
--enable-pcregrep-libbz2 \
--enable-pcretest-libreadline \
--disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--enable-unicode-properties: This switch enables Unicode properties support and includes the code for handling UTF-8/16/32 character strings in the library. You need this switch if you are going to build GLib-2.74.5.
--enable-pcre16: This switch enables 16 bit character support.
--enable-pcre32: This switch enables 32 bit character support.
--enable-pcregrep-libz: This switch adds support to pcregrep to read .gz compressed files.
--enable-pcregrep-libbz2: This switch adds support to pcregrep to read .bz2 compressed files.
--enable-pcretest-libreadline: This switch adds line editing and history features to pcretest program.
--disable-static: This switch prevents installation of static versions of the libraries.
--enable-jit: this option enables Just-in-time compiling, which can greatly speed up pattern matching.
Contents
Installed Programs: pcregrep, pcretest, and pcre-config
Installed Libraries: libpcre.so, libpcre16.so, libpcre32.so, libpcrecpp.so and libpcreposix.so
Installed Directory: /usr/share/doc/pcre-8.45
Short Descriptions
pcregrep is a grep that understands Perl compatible regular expressions
pcretest can test a Perl compatible regular expression
pcre-config is used during the compile process of programs linking to the PCRE libraries.
9.78 PCRE2-10.42
Introduction to PCRE2
The PCRE2 package contains a new generation of the Perl Compatible Regular Expression libraries. These are useful for implementing regular expression pattern matching using the same syntax and semantics as Perl.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.42/pcre2-10.42.tar.bz2
-
Download MD5 sum: a8e9ab2935d428a4807461f183034abe
-
Download size: 1.7 MB
-
Estimated disk space required: 19 MB (with tests)
-
Estimated build time: 0.4 SBU (with tests)
PCRE2 Dependencies
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pcre2
Installation of PCRE2
Install PCRE2 by running the following commands:
./configure --prefix=/usr \
--docdir=/usr/share/doc/pcre2-10.42 \
--enable-unicode \
--enable-jit \
--enable-pcre2-16 \
--enable-pcre2-32 \
--enable-pcre2grep-libz \
--enable-pcre2grep-libbz2 \
--enable-pcre2test-libreadline \
--disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--enable-unicode: This switch enables Unicode support and includes the functions for handling UTF-8/16/32 character strings in the library.
--enable-pcre2-16: This switch enables 16 bit character support.
--enable-pcre2-32: This switch enables 32 bit character support.
--enable-pcre2grep-libz: This switch adds support for reading .gz compressed files to pcre2grep.
--enable-pcre2grep-libbz2: This switch adds support for reading .bz2 compressed files to pcre2grep.
--enable-pcre2test-libreadline: This switch adds line editing and history features to the pcre2test program.
--disable-static: This switch prevents installation of static versions of the libraries.
--enable-jit: this option enables Just-in-time compiling, which can greatly speed up pattern matching.
Contents
Installed Programs: pcre2-config, pcre2grep, and pcre2test.
Installed Libraries: libpcre2-8.so, libpcre2-16.so, libpcre2-32.so, and libpcre2-posix.so
Installed Directory: /usr/share/doc/pcre2-10.42
Short Descriptions
pcre2grep is a version of grep that understands Perl compatible regular expressions.
pcre2test can test a Perl compatible regular expression.
pcre2-config outputs compilation information to programs linking against the PCRE2 libraries.
9.79 Popt-1.19
Introduction to Popt
The popt package contains the popt libraries which are used by some programs to parse command-line options.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): http://ftp.rpm.org/popt/releases/popt-1.x/popt-1.19.tar.gz
-
Download (FTP): ftp://ftp.rpm.org/pub/rpm/popt/releases/popt-1.x/popt-1.19.tar.gz
-
Download MD5 sum: eaa2135fddb6eb03f2c87ee1823e5a78
-
Download size: 584 kB
-
Estimated disk space required: 6.9 MB (includes installing documentation and tests)
-
Estimated build time: less than 0.1 SBU (with tests)
popt Dependencies
Optional
Doxygen-1.9.6 (for generating documentation)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/popt
Installation of Popt
Install popt by running the following commands:
./configure --prefix=/usr --disable-static &&
make
If you have Doxygen-1.9.6 installed and wish to build the API documentation, issue:
sed -i 's@\./@src/@' Doxyfile &&
doxygen
To test the results, issue: make check.
Now, as the root user:
make install
If you built the API documentation, install it using the following commands issued by the root user:
install -v -m755 -d /usr/share/doc/popt-1.19 &&
install -v -m644 doxygen/html/* /usr/share/doc/popt-1.19
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libpopt.so
Installed Directories: /usr/share/doc/popt-1.19
Short Descriptions
libpopt.so is used to parse command-line options.
9.80 Pth-2.0.7
Introduction to Pth
The Pth package contains a very portable POSIX/ANSI-C based library for Unix platforms which provides non-preemptive priority-based scheduling for multiple threads of execution (multithreading) inside event-driven applications. All threads run in the same address space of the server application, but each thread has its own individual program-counter, run-time stack, signal mask and errno variable.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/pth/pth-2.0.7.tar.gz
-
Download (FTP): ftp://ftp.gnu.org/gnu/pth/pth-2.0.7.tar.gz
-
Download MD5 sum: 9cb4a25331a4c4db866a31cbe507c793
-
Download size: 652 KB
-
Estimated disk space required: 5 MB
-
Estimated build time: 0.2 SBU
Pth Dependencies
Optional
GCC-12.2.0 (for gfortran) and libnsl-2.0.0
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pth
Installation of Pth
Caution
Don’t add the --enable-pthread parameter to the configure command below else you will overwrite the pthread library and interface header installed by the Glibc package in LFS.
Install Pth by running the following commands:
sed -i 's#$(LOBJS): Makefile#$(LOBJS): pth_p.h Makefile#' Makefile.in &&
./configure --prefix=/usr \
--disable-static \
--mandir=/usr/share/man &&
make
To test the results, issue: make test.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/pth-2.0.7 &&
install -v -m644 README PORTING SUPPORT TESTS \
/usr/share/doc/pth-2.0.7
Command Explanations
sed -i ‘s#$(LOBJS) …: This sed fixes a race condition in the Makefile. It allows running make with multiple jobs (e.g., make -j4).
--disable-static: This switch prevents installation of static versions of the libraries.
--mandir=/usr/share/man: This switch puts the man pages in /usr/share/man instead of /usr/man.
Contents
Installed Program: pth-config
Installed Library: libpth.so
Installed Directory: /usr/share/doc/pth-2.0.7
Short Descriptions
pth-config is a utility used to configure and build applications based on the pth(3) library. It can be used to query the C compiler and linker flags which are required to correctly compile and link the application against the pth(3) library
libpth.so contains the API functions used by the GNU Portable Threads Library.
9.81 Qca-2.3.5
Introduction to Qca
Qca aims to provide a straightforward and cross-platform crypto API, using Qt datatypes and conventions. Qca separates the API from the implementation, using plugins known as Providers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.kde.org/stable/qca/2.3.5/qca-2.3.5.tar.xz
-
Download MD5 sum: 64a8c4c30a42740fca1f9a6937d3fbae
-
Download size: 724 KB
-
Estimated disk space required: 42 MB
-
Estimated build time: 0.5 SBU (using parallelism=4; add 0.1 SBU for tests)
Qca Dependencies
Required
make-ca-1.12, CMake-3.25.2, Qt-5.15.8, and Which-2.21
Optional
Cyrus SASL-2.1.28, GnuPG-2.4.0, libgcrypt-1.10.1, libgpg-error-1.46, nss-3.88.1, NSPR-4.35, p11-kit-0.24.1, Doxygen-1.9.6, Which-2.21, and Botan
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/qca
Installation of Qca
Fix the location of the CA certificates:
sed -i 's@cert.pem@certs/ca-bundle.crt@' CMakeLists.txt
Install Qca by running the following commands:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=$QT5DIR \
-DCMAKE_BUILD_TYPE=Release \
-DQCA_MAN_INSTALL_DIR:PATH=/usr/share/man \
.. &&
make
To test the results, issue make test.
Now, as the root user:
make install
Command Explanations
-DCMAKE_BUILD_TYPE=Release: This switch is used to apply a higher level of compiler optimizations.
-DQCA_MAN_INSTALL_DIR:PATH=/usr/share/man: Install the qca man page in the normal location.
Contents
Installed Programs: mozcerts-qt5 and qcatool-qt5
Installed Libraries: libqca-qt5.so, libqca-cyrus-sasl.so, libqca-gcrypt.so, libqca-gnupg.so, libqca-logger.so, libqca-nss.so, libqca-ossl.so, and libqca-softstore.so
Installed Directories: $QT5DIR/include/Qca-qt5, $QT5DIR/lib/cmake/Qca-qt5, and $QT5DIR/lib/qca-qt5
Short Descriptions
mozcerts-qt5 is a command line tool for converting certdata.txt into outfile.pem files
qcatool-qt5 is a command line tool for performing various cryptographic operations with Qca
libqca-qt5.so is the Qt Cryptography Architecture (Qca) library.
9.82 Talloc-2.4.0
Introduction to Talloc
Talloc provides a hierarchical, reference counted memory pool system with destructors. It is the core memory allocator used in Samba.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.samba.org/ftp/talloc/talloc-2.4.0.tar.gz
-
Download MD5 sum: 02fb35ead70f73af2518234ef3cb1073
-
Download size: 660 KB
-
Estimated disk space required: 11 MB (with tests)
-
Estimated build time: 0.3 SBU (with tests)
Talloc Dependencies
Optional
docbook-xml-4.5, docbook-xsl-nons-1.79.2 and libxslt-1.1.37 (To generate man pages), GDB-13.1, git-2.39.2, libnsl-2.0.0, libtirpc-1.3.3, Valgrind-3.20.0, and xfsprogs-6.1.1
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/talloc
Installation of Talloc
Install Talloc by running the following commands:
./configure --prefix=/usr &&
make
To check the results, issue make check.
Now, as the root user:
make install
Contents
Installed Programs: None
Installed Libraries: libpytalloc-util.cpython-311-
Installed Directories: None
Short Descriptions
libtalloc.so contains a replacement for the Glibc malloc function.
9.83 telepathy-glib-0.24.2
Introduction to Telepathy GLib
The Telepathy GLib contains a library used by GLib based Telepathy components. Telepathy is a D-Bus framework for unifying real time communication, including instant messaging, voice calls and video calls. It abstracts differences between protocols to provide a unified interface for applications.
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-glib/telepathy-glib-0.24.2.tar.gz
-
Download MD5 sum: a3a75657e9389381b44fee1680f770a7
-
Download size: 3.7 MB
-
Estimated disk space required: 256 MB
-
Estimated build time: 1.2 SBU
Telepathy GLib Dependencies
Required
dbus-glib-0.112 and libxslt-1.1.37
Recommended
gobject-introspection-1.74.0, and Vala-0.56.4
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/telepathy-glib
Installation of Telepathy Glib
If you intend to run the tests, one of them defaults to invoking /usr/bin/python and fails if it is absent, causing the second batch of tests to not run - unlike the other tests which can be overridden from the environment. Fix it with the following command:
sed -i 's%/usr/bin/python%&3%' tests/all-errors-documented.py
Install Telepathy GLib by running the following commands:
PYTHON=/usr/bin/python3 ./configure --prefix=/usr \
--enable-vala-bindings \
--disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--enable-vala-bindings: This switch enables building of the Vala bindings. Remove if you don’t have Vala-0.56.4 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: None
Installed Libraries: libtelepathy-glib.so
Installed Directories: /usr/include/telepathy-1.0 and /usr/share/gtk-doc/html/telepathy-glib
Short Descriptions
libtelepathy-glib.so contains the Telepathy GLib API functions.
9.84 Uchardet-0.0.8
Introduction to Uchardet
The Uchardet package contains an encoding detectory library which takes a sequence of bytes in an unknown character encoding and attempts to determine the encoding of the text.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.freedesktop.org/software/uchardet/releases/uchardet-0.0.8.tar.xz
-
Download MD5 sum: 9e267be7aee81417e5875086dd9d44fd
-
Download size: 217 KB
-
Estimated disk space required: 4.6 MB (with test)
-
Estimated build time: less than 0.1 SBU (with test)
Uchardet Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/uchardet
Installation of Uchardet
Install Uchardet by running the following commands:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_STATIC=OFF \
-Wno-dev .. &&
make
To test the results, issue: make test.
Now, as the root user:
make install
Command Explanations
-DBUILD_STATIC=OFF: This switch disables building the static version of the library.
Contents
Installed Programs: uchardet
Installed Libraries: libuchardet.so
Installed Directories: /usr/include/uchardet
Short Descriptions
uchardet detects what character set is used inside of a file
libuchardet.so provides an API for detecting the encoding of text in a file.
9.85 Umockdev-0.17.16
Introduction to Umockdev
The Umockdev package contains a framework that allows a developer to mock devices for use in unit testing.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/martinpitt/umockdev/releases/download/0.17.16/umockdev-0.17.16.tar.xz
-
Download MD5 sum: 7f504b350a804f14dd18c6d607206b59
-
Download size: 480 KB
-
Estimated disk space required: 6.7 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
Umockdev Dependencies
Required
libgudev-237, libpcap-1.10.3, and Vala-0.56.4
Optional
GTK-Doc-1.33.2 and libgphoto2 (optional for tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/umockdev
Installation of Umockdev
Install Umockdev by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release .. &&
ninja
To test the results, issue: PATH=$PATH:/usr/sbin ninja test. The addition to PATH is needed if you use the starting scripts in The Bash Shell Startup Files, because some tests need to run udevadm. One test needs to be run in an X session.
Now, as the root user:
ninja install
Command Explanations
-Dgtk_doc=true: Use this switch if you have GTK-Doc-1.33.2 installed and wish to rebuild and install the API documentation.
Contents
Installed Programs: umockdev-record, umockdev-run, and umockdev-wrapper
Installed Libraries: libumockdev-preload.so and libumockdev.so
Installed Directories: /usr/include/umockdev-1.0
Short Descriptions
umockdev-record records Linux devices and their ancestors from sysfs/udev or records ioctls for a device
umockdev-run runs a program under an umockdev testbed
umockdev-wrapper wraps a program around libumockdev-preload.so.0 through LD_PRELOAD
libumockdev.so provides API functions that allow mocking hardware devices for unit testing.
9.86 Wayland-1.21.0
Introduction to Wayland
Wayland is a project to define a protocol for a compositor to talk to its clients as well as a library implementation of the protocol.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://gitlab.freedesktop.org/wayland/wayland/-/releases/1.21.0/downloads/wayland-1.21.0.tar.xz
-
Download MD5 sum: f2653a2293bcd882d756c6a83d278903
-
Download size: 224 KB
-
Estimated disk space required: 6.2 MB (with tests)
-
Estimated build time: 0.1 SBU (with tests)
Wayland Dependencies
Required
Optional
Doxygen-1.9.6, Graphviz-7.1.0 and xmlto-0.0.28 (to build the API documentation) and docbook-xml-4.5, docbook-xsl-nons-1.79.2 and libxslt-1.1.37 (to build the manual pages)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/wayland
Installation of Wayland
Install Wayland by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Ddocumentation=false &&
ninja
To test the results, issue: env -u XDG_RUNTIME_DIR ninja test.
Now, as the root user:
ninja install
Command Explanations
-Ddocumentation=false: This switch is used to disable building of the API documentation. Remove it if you have installed optional dependencies.
Contents
Installed Programs: wayland-scanner
Installed Libraries: libwayland-client.so, libwayland-cursor.so, libwayland-egl.so, and libwayland-server.so
Installed Directories: /usr/share/wayland
Short Descriptions
wayland-scanner is a tool to generate proxy methods in wayland-client-protocol.h and wayland-server-protocol.h
libwayland-client.so contains API functions for writing Wayland applications
libwayland-cursor.so contains API functions for managing cursors in Wayland applications
libwayland-egl.so contains API functions for handling OpenGL calls in Wayland applications
libwayland-server.so contains API functions for writing Wayland compositors.
9.87 Wayland-Protocols-1.31
Introduction to Wayland-Protocols
The Wayland-Protocols package contains additional Wayland protocols that add functionality outside of protocols already in the Wayland core.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/1.31/downloads/wayland-protocols-1.31.tar.xz
-
Download MD5 sum: 1584de13eb30a4d1f2cd06c08ee24354
-
Download size: 84 KB
-
Estimated disk space required: 7.8 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Wayland-protocols Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/wayland-protocols
Installation of Wayland-protocols
Install Wayland-protocols by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release &&
ninja
To test the results, issue: ninja test.
Now, as the root user:
ninja install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/share/wayland-protocols.
9.88 wpebackend-fdo-1.14.0
Introduction to wpebackend-fdo
The wpebackend-fdo package contains the Freedesktop.org backend for WPE WebKit and the WPE renderer.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://wpewebkit.org/releases/wpebackend-fdo-1.14.0.tar.xz
-
Download MD5 sum: ea62dfa9ecb366598a837d7446ed48ac
-
Download size: 44 KB
-
Estimated disk space required: 1.6 MB
-
Estimated build time: 0.1 SBU
wpebackend-fdo Dependencies
Required
libepoxy-1.5.10, libwpe-1.14.1, and wayland-protocols-1.31
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/wpebackend-fdo
Installation of wpebackend-fdo
Install wpebackend-fdo by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release ..
ninja
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
Contents
Installed Programs: None
Installed Libraries: libWPEBackend-fdo-1.0.so
Installed Directories: /usr/include/wpe-fdo-1.0
Short Descriptions
libWPEBackend-fdo-1.0.so contains functions that provide the freedesktop.org backend for WPE WebKit and the WPE renderer.
9.89 wv-1.2.9
Introduction to wv
The wv package contains tools for reading information from an MS Word document.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.abisource.com/downloads/wv/1.2.9/wv-1.2.9.tar.gz
-
Download MD5 sum: dbccf2e9f747e50c913b7e3d126b73f7
-
Download size: 608 KB
-
Estimated disk space required: 25 MB
-
Estimated build time: 0.4 SBU
wv Dependencies
Required
libgsf-1.14.50 and libpng-1.6.39
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/wv
Installation of wv
Install wv by running the following commands:
./configure --prefix=/usr --disable-static &&
make
This package does not have a test suite.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: wvSummary and several other wv* programs which are deprecated in favour of abiword: see https://wvware.sourceforge.net/
Installed Library: libwv-1.2.so
Installed Directory: /usr/share/wv
Short Descriptions
wvSummary displays the summary information from an MS Word document
libwv-1.2.so provides functions to access MS Word documents.
9.90 Xapian-1.4.22
Introduction to xapian
Xapian is an open source search engine library.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://oligarchy.co.uk/xapian/1.4.22/xapian-core-1.4.22.tar.xz
-
Download MD5 sum: 18412be5f8b62044f139937c3d7069d7
-
Download size: 2.9 MB
-
Estimated disk space required: 147 MB (add 154 MB for tests)
-
Estimated build time: 0.5 SBU (using parallelism=4; add 12 SBU for tests)
Xapian Dependencies
Optional
Valgrind-3.20.0 (for tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/xapian
Installation of Xapian
Install Xapian by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/xapian-core-1.4.22 &&
make
To run the test suite, issue: make check.
Now, as the root user:
make install
Contents
Installed Programs: copydatabase, quest, simpleexpand, simpleindex, simplesearch, xapian-check, xapian-compact, xapian-config, xapian-delve, xapian-metadata, xapian-pos, xapian-progsrv, xapian-replicate, xapian-replicate-server and xapian-tcpsrv
Installed Libraries: libxapian.so
Installed Directories: /usr/include/xapian, /usr/lib/cmake/xapian, /usr/share/doc/xapian-core-1.4.22, and /usr/share/xapian-core
Short Descriptions
copydatabase performs a document-by-document copy of one or more Xapian databases
quest is a command line tool to search through a database
simpleexpand is a simple example program demonstrating query expansion
simpleindex indexes each paragraph of a text file as a Xapian document
simplesearch is a simple command line search utility
xapian-check checks the consistency of a database or table
xapian-compact compacts a database, or merges and compacts several databases
xapian-config reports information about the installed xapian
xapian-delve inspects the contents of a Xapian database
xapian-metadata reads and writes user metadata
xapian-pos inspects the contents of a flint table for development or debugging
xapian-progsrv is a remote server for use with ProgClient
xapian-replicate replicates a database from a master server to a local copy
xapian-replicate-server services database replication requests from clients
xapian-tcpsrv is the TCP daemon for use with Xapian’s remote backend.