13. Programming
A base LFS system can be used as a development platform, however the base system only includes language support for C, C++, Perl, and Python. This chapter provides instructions to build many popular programming environments to greatly expand your system’s development capabilities.
13.1 Autoconf2.13
Introduction to Autoconf2.13
Autoconf2.13 is an old version of Autoconf . This old version accepts switches which are not valid in more recent versions. Now that firefox has started to use python2 for configuring, this old version is required even if configure files have not been changed.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz
-
Download (FTP): ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz
-
Download MD5 sum: 9de56d4a161a723228220b0f425dc711
-
Download size: 434 KB
-
Estimated disk space required: 2.8 MB
-
Estimated build time: less than 0.1 SBU (additional 0.1 SBU for the tests)
Additional Downloads
- Required patch: https://www.linuxfromscratch.org/patches/blfs/11.3/autoconf-2.13-consolidated_fixes-1.patch
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/autoconf213
Installation of Autoconf2.13
Install Autoconf by running the following commands:
patch -Np1 -i ../autoconf-2.13-consolidated_fixes-1.patch &&
mv -v autoconf.texi autoconf213.texi &&
rm -v autoconf.info &&
./configure --prefix=/usr --program-suffix=2.13 &&
make
To test the installation issue make check (all 253 tests should pass).
Now, as the root user:
make install &&
install -v -m644 autoconf213.info /usr/share/info &&
install-info --info-dir=/usr/share/info autoconf213.info
Command Explanations
mv -v autoconf.texi autoconf213.texi: ensure that the info file added by this package will not overwrite the more recent version.
rm -v autoconf.info: ensure that the info file will be created by the current version of texinfo.
–program-suffix=2.13: ensure that the installed programs have the version added to their names, so that only a script which specifically looks for these old versions will find them.
install -v -m644 …: the patch removes install-info from the Makefile because that would install (and if necessary recreate) standards.info which is an old version, so now autoconf213.info has to be manually installed.
Contents
Installed Programs: autoconf2.13, autoheader2.13, autoreconf2.13, autoscan2.13, autoupdate2.13, and ifnames2.13
Installed Library: None
Installed Directory: /usr/share/autoconf-2.13
Short Descriptions
autoconf2.13 Produces shell scripts that automatically configure software source code packages to adapt to many kinds of Unix-like systems.
autoheader2.13 is a tool for creating template files of C #define statements for configure to use.
autoreconf2.13 This automatically runs autoconf2.13, autoheader2.13, aclocal, automake, gettextize and libtoolize in the right order when changes have been made to autoconf or automake template files.
autoscan2.13 Can be used as a preliminary step in creating a configure.in file.
autoupdate2.13 Modifies a configure.in file that still calls autoconf macros by their old names to use the current macro names.
ifnames2.13 Prints the identifiers that the package uses in C preprocessor conditionals [If a package has already been set up to have some portability, this program can help determine what configure needs to check for. It can also fill in gaps in a configure.in file generated by autoscan].
13.2 Cbindgen-0.24.3
Introduction to Cbindgen
Cbindgen can be used to generate C bindings for Rust code.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/eqrion/cbindgen/archive/v0.24.3/cbindgen-0.24.3.tar.gz
-
Download MD5 sum: 6aa2991ca8411f9ebf9961e8b873e884
-
Download size: 204 KB
-
Estimated disk space required: 121 MB (add 596 MB for tests)
-
Estimated build time: 0.5 SBU (add 0.4 SBU for tests), both on a 4-core machine
cbindgen Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/cbindgen
Installation of cbindgen
Note
As with most Rust packages, this needs a network connection to check the current versions of the required cargo crates, and to download them if they are not already present.
Install cbindgen by running the following commands:
cargo build --release
To test the results, issue: cargo test. Three tests in the final suite are known to fail.
Now, as the root user:
install -Dm755 target/release/cbindgen /usr/bin/
Contents
Installed Program: cbindgen
Installed Library: none
Installed Directory: none
Short Descriptions
cbindgen generates C bindings for Rust code.
13.3 Clisp-2.49
Introduction to Clisp
GNU Clisp is a Common Lisp implementation which includes an interpreter, compiler, debugger, and many extensions.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/clisp/latest/clisp-2.49.tar.bz2
-
Download (FTP): ftp://ftp.gnu.org/gnu/clisp/latest/clisp-2.49.tar.bz2
-
Download MD5 sum: 1962b99d5e530390ec3829236d168649
-
Download size: 7.8 MB
-
Estimated disk space required: 163 MB (add 8 MB for tests)
-
Estimated build time: 0.9 SBU (1.2 SBU with tests)
Additional Downloads
- Optional patch: https://www.linuxfromscratch.org/patches/blfs/11.3/clisp-2.49-readline7_fixes-1.patch (required if building against libffcall)
Clisp Dependencies
Recommended
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/clisp
Installation of Clisp
Note
This package does not support parallel build.
If you are building on a 32-bit system, work around a bug in GCC caused by the latest version of binutils:
case $(uname -m) in
i?86) export CFLAGS="${CFLAGS:--O2 -g} -falign-functions=4" ;;
esac
Remove two tests, which fail for unknown reasons:
sed -i -e '/socket/d' -e '/"streams"/d' tests/tests.lisp
Install Clisp by running the following commands:
If you are building clisp against libffcall, apply the patch to fix a build failure with current readline:
patch -Np1 -i ../clisp-2.49-readline7_fixes-1.patch
Install Clisp by running the following commands:
mkdir build &&
cd build &&
../configure --srcdir=../ \
--prefix=/usr \
--docdir=/usr/share/doc/clisp-2.49 \
--with-libsigsegv-prefix=/usr &&
ulimit -s 16384 &&
make -j1
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
ulimit -s 16384: this increases the maximum stack size, as recommended by the configure.
–docdir=/usr/share/doc/clisp-2.49: this ensures the html documentation will go into a versioned directory instead of straight into /usr/share/html/.
–with-libsigsegv-prefix=/usr: use this to tell configure that you have installed libsigsegv in /usr, otherwise it will not be found.
--with-libffcall-prefix=/usr: use this to tell configure that you have installed the optional libffcall in /usr, otherwise like libsigsegv it will not be found.
Contents
Installed Programs: clisp, clisp-link
Installed Libraries: various static libraries in /usr/lib/clisp-2.49/base/
Installed Directories: /usr/lib/clisp-2.49 /usr/share/doc/clisp-2.49 /usr/share/emacs/site-lisp;
Short Descriptions
clisp is an ANSI Common Lisp compiler, interpreter, and debugger.
clisp-link is used to link an external module to clisp.
13.4 CMake-3.25.2
Introduction to CMake
The CMake package contains a modern toolset used for generating Makefiles. It is a successor of the auto-generated configure script and aims to be platform- and compiler-independent. A significant user of CMake is KDE since version 4.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cmake.org/files/v3.25/cmake-3.25.2.tar.gz
-
Download MD5 sum: 24cde56ea2dc5e22d7f5d1abc7a82258
-
Download size: 10 MB
-
Estimated disk space required: 354 MB (add 1.1 GB for tests)
-
Estimated build time: 1.6 SBU (add 3.2 SBU for tests, both using parallelism=4)
CMake Dependencies
Recommended
cURL-7.88.1, libarchive-3.6.2, libuv-1.44.2, and nghttp2-1.52.0
Optional
GCC-12.2.0 (for gfortran), git-2.39.2 (for use during tests), Mercurial-6.3.2 (for use during tests), Qt-5.15.8 (for the Qt-based GUI), sphinx-6.1.3 (for building documents), Subversion-1.14.2 (for testing), and rhash
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/cmake
Installation of CMake
Install CMake by running the following commands:
sed -i '/"lib64"/s/64//' Modules/GNUInstallDirs.cmake &&
./bootstrap --prefix=/usr \
--system-libs \
--mandir=/share/man \
--no-system-jsoncpp \
--no-system-librhash \
--docdir=/share/doc/cmake-3.25.2 &&
make
To test the results, issue: LC_ALL=en_US.UTF-8 bin/ctest -j<N> -O cmake-3.25.2-test.log, where <N> is an integer between 1 and the number of system cores. Setting LC_ALL is needed to prevent some test failures when some of the locale variables are set to non English locales. One test, BundleUtilities, is known to fail.
If you want to investigate a problem with a given “problem1-test”, use bin/ctest -R “problem1-test” and, to omit it, use bin/ctest -E “problem1-test”. These options can be used together: bin/ctest -R “problem1-test” -E “problem2-test”. Option -N can be used to display all available tests, and you can run bin/ctest for a sub-set of tests by using separated by spaces names or numbers as options. Option --help can be used to show all options.
Now, as the root user:
make install
Command Explanations
sed … Modules/GNUInstallDirs.cmake: This command disables applications using cmake from attempting to install files in /usr/lib64/.
--system-libs: This switch forces the build system to link against Zlib, Bzip2, cURL, nghttp2, Expat and libarchive installed on the system.
--no-system-jsoncpp: This switch removes the JSON-C++ library from the list of system libraries. A bundled version of that library is used instead.
--no-system-librhash: This switch removes the librhash library from the list of system libraries used. A bundled version of that library is used instead.
--no-system-{curl,libarchive,libuv,nghttp2}: Use the corresponding option in the list for the bootstrap if one recommended dependency is not installed. A bundled version of the dependency will be used instead.
--qt-gui: This switch enables building the Qt-based GUI for CMake.
--parallel=: This switch enables performing the CMake bootstrap with multiple jobs at one time.
Contents
Installed Programs: ccmake, cmake, cmake-gui (optional), cpack, and ctest
Installed Libraries: None
Installed Directories: /usr/share/cmake-3.25 and /usr/share/doc/cmake-3.25.2
Short Descriptions
ccmake is a curses based interactive frontend to cmake.
cmake is the makefile generator.
cmake-gui (optional) is the Qt-based frontend to cmake.
cpack is the CMake packaging program.
ctest is a testing utility for cmake-generated build trees.
13.5 Doxygen-1.9.6
Introduction to Doxygen
The Doxygen package contains a documentation system for C++, C, Java, Objective-C, Corba IDL and to some extent PHP, C# and D. It is useful for generating HTML documentation and/or an off-line reference manual from a set of documented source files. There is also support for generating output in RTF, PostScript, hyperlinked PDF, compressed HTML, and Unix man pages. The documentation is extracted directly from the sources, which makes it much easier to keep the documentation consistent with the source code.
You can also configure Doxygen to extract the code structure from undocumented source files. This is very useful to quickly find your way in large source distributions. Used along with Graphviz, you can also visualize the relations between the various elements by means of include dependency graphs, inheritance diagrams, and collaboration diagrams, which are all generated automatically.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://doxygen.nl/files/doxygen-1.9.6.src.tar.gz
-
Download MD5 sum: 5f7ab15c8298d013c5ef205a4febc7b4
-
Download size: 5.1 MB
-
Estimated disk space required: 217 MB (with tests)
-
Estimated build time: 1.4 SBU (using parallelism=4; with tests)
Doxygen Dependencies
Required
Optional
Graphviz-7.1.0, ghostscript-10.00.0, libxml2-2.10.3 (required for the tests), LLVM-15.0.7 (with clang), Python-2.7.18, Qt-5.15.8 (for doxywizard), texlive-20220321 (or install-tl-unx), xapian-1.4.22 (for doxyindexer), and javacc
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/doxygen
Installation of Doxygen
Install Doxygen by running the following commands:
mkdir -v build &&
cd build &&
cmake -G "Unix Makefiles" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-Wno-dev .. &&
make
To test the results, issue: make tests.
If you wish to generate the package documentation, you must have Python, TeX Live (for HTML docs) and Ghostscript (for PDF docs) installed, then issue the following command:
cmake -DDOC_INSTALL_DIR=share/doc/doxygen-1.9.6 -Dbuild_doc=ON .. &&
make docs
Now, as the root user:
make install &&
install -vm644 ../doc/*.1 /usr/share/man/man1
If you have generated the package documentation, then the man pages are automatically installed, and you do not need to run the last install … command.
Command Explanations
-Dbuild_wizard=ON: Use this switch if Qt5 is installed and you wish to build the GUI front-end.
-Dbuild_search=ON: Use this switch if xapian is installed and you wish to build external search tools (doxysearch.cgi and doxyindexer).
-Duse_libclang=ON: Use this switch if llvm with clang are installed, to add support for libclang parsing.
Configuring Doxygen
There is no real configuration necessary for the Doxygen package although three additional packages are required if you wish to use extended capabilities. If you need to use the language translation features, you must have Python-2.7.18 installed. If you require formulas to create PDF documentation, then you must have texlive-20220321 installed. If you require formulas to convert PostScript files to bitmaps, then you must have ghostscript-10.00.0 installed.
Contents
Installed Programs: doxygen and optionally, doxywizard, doxyindexer and doxysearch.cgi
Installed Libraries: None
Installed Directory: /usr/share/doc/doxygen-1.9.6
Short Descriptions
doxygen is a command-line based utility used to generate template configuration files and then generate documentation from these templates. Use doxygen –help for an explanation of the command-line parameters.
doxywizard is a GUI front-end for configuring and running doxygen.
doxyindexer generates a search index called doxysearch.db from one or more search data files produced by doxygen. See, e.g. https://javacc.github.io/javacc/.
doxysearch.cgi is a CGI program to search the data indexed by doxyindexer.
13.6 GCC-12.2.0
Introduction to GCC
The GCC package contains the GNU Compiler Collection. This page describes the installation of compilers for the following languages: C, C++, Fortran, Objective C, Objective C++, and Go. Since C and C++ are installed in LFS, this page is either for upgrading C and C++, or for installing additional compilers.
Note
Additional languages, among which D and ADA, are available in the collection. D and ADA have a binary bootstrap requirement for the first installation, so their installation is not described here. To install them, you can proceed along the same lines as below after installing the corresponding compiler from a binary package, adding ada or d to the --enable-languages line.
This package is known to build and work properly using an LFS 11.3 platform.
Caution
If you are upgrading GCC from any other version prior to 12.2.0, then you must be careful compiling 3rd party kernel modules. You should ensure that the kernel and all its native modules are also compiled using the same version of GCC that you use to build the 3rd party module. This issue does not affect native kernel (and kernel modules) updates, as the instructions below are a complete reinstallation of GCC. If you have existing 3rd party modules installed, ensure they are recompiled using the updated version of GCC. As always, never update the kernel headers from the ones used when Glibc was compiled during LFS.
Some system headers need to be fixed to be used with GCC. This is done during the installation of GCC, and the “fixed” headers are installed in /usr/lib/gcc/<machine triplet>/<GCC version>/include-fixed . This is harmless if GCC is built during the LFS stage. But if you reinstall GCC in BLFS, some of the BLFS packages may be “fixed”. If one of those packages is reinstalled afterwards, the “fixed” headers are not updated, which may lead to version mismatches. In case that happens, the “fixed” headers must be updated by running (as root): /usr/libexec/gcc/x86_64-pc-linux-gnu/12.2.0/install-tools/mkheaders . The machine triplet may be different on a 32-bit system.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.xz
-
Download (FTP): ftp://ftp.gnu.org/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.xz
-
Download MD5 sum: 73bafd0af874439dcdb9fc063b6fb069
-
Download size: 81 MB
-
Estimated disk space required: 10.5 GB (2.4 GB installed with all listed languages; add 1.3 GB for tests)
-
Estimated build time: 32 SBU (add 66 SBU for tests; both with parallelism=4)
GCC Dependencies
Optional
GDB-13.1, Valgrind-3.20.0 (for tests), and ISL (to enable graphite optimization)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gcc
Installation of GCC
Important
Even if you specify only languages other than C and C++ to the ./configure command below, the installation process will overwrite your existing GCC C and C++ compilers and libraries. Running the full suite of tests is recommended.
Do not continue with the make install command until you are confident the build was successful. You can compare your test results with those found at https://gcc.gnu.org/ml/gcc-testresults/. You may also want to refer to the information found in the GCC section of Chapter 8 in the LFS book (../../../../lfs/view/11.3-systemd/chapter08/gcc.html).
The instructions below are intentionally performing a “bootstrap” process. Bootstrapping is needed for robustness and is highly recommended when upgrading the compilers version. To disable bootstrap anyway, add --disable-bootstrap to the ./configure options below.
Install GCC by running the following commands:
case $(uname -m) in
x86_64)
sed -i.orig '/m64=/s/lib64/lib/' gcc/config/i386/t-linux64
;;
esac
mkdir build &&
cd build &&
../configure \
--prefix=/usr \
--disable-multilib \
--with-system-zlib \
--enable-default-pie \
--enable-default-ssp \
--enable-languages=c,c++,fortran,go,objc,obj-c++ &&
make
If you have installed additional packages such as Valgrind and GDB, the GCC part of the test suite will run more tests than in LFS. Some of those will report FAIL and others XPASS (pass when expected to FAIL). As of gcc-12.2.0, about 60 FAIL occur in the “guality” suite, as well as miscellaneous failures throughout the rest of the test suite, fifteen of which are already present in the GCC tests of LFS. If all the compilers above are built, there will be around 80 unexpected failures out of over 482,000 tests. To run the tests, issue:
ulimit -s 32768 &&
make -k check
The tests are very long, and the results may be hard to find in the logs, specially if you use parallel jobs with make. You can get a summary of the tests with:
../contrib/test_summary
Now, as the root user:
make install &&
mkdir -pv /usr/share/gdb/auto-load/usr/lib &&
mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib &&
chown -v -R root:root \
/usr/lib/gcc/*linux-gnu/12.2.0/include{,-fixed}
Some packages expect to find the C preprocessor in /lib or may refer to the C compiler under the name cc. The following symbolic links are not needed if you have followed the LFS instructions, since they have been already created. If you do not have them on your system, issue as the root user:
ln -v -sf ../usr/bin/cpp /lib &&
ln -v -sf gcc /usr/bin/cc &&
install -v -dm755 /usr/lib/bfd-plugins &&
ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/12.2.0/liblto_plugin.so /usr/lib/bfd-plugins/
Command Explanations
mkdir build; cd build: The GCC documentation recommends building the package in a dedicated build directory.
--disable-multilib: This parameter ensures that files are created for the specific architecture of your computer.
--with-system-zlib: Uses the system zlib instead of the bundled one. zlib is used for compressing and decompressing GCC’s intermediate language in LTO (Link Time Optimization) object files.
--enable-default-pie: Makes the -fpie option the default when compiling programs. Together with the ASLR feature enabled in the kernel, this defeats some kind of attacks based on known memory layouts.
--enable-default-ssp: Makes the -fstack-protector-strong option the default when compiling programs. SSP is a technique preventing alteration of the program flow by corrupting the parameter stack.
--enable-languages=c,c++,fortran,go,objc,obj-c++: This command identifies which languages to build. You may modify this command to remove undesired languages. Other languages can be added, including ADA, D, BRIG (add brig to the list of enabled languages), a binary format for HSAIL (Heterogeneous System Architecture Intermediate Language), and JIT (add jit to the list of enabled languages), a library which can be linked into interpreters that want to generate machine code “on the fly” at run-time. They have not been tested by the BLFS developers.
ulimit -s 32768: This command prevents several tests from running out of stack space.
make -k check: This command runs the test suite without stopping if any errors are encountered.
| ../contrib/test_summary: This command will produce a summary of the test suite results. You can append ** | grep -A7 Summ** to the command to produce an even more condensed version of the summary. You may also wish to redirect the output to a file for review and comparison later on. |
mv -v /usr/lib/*gdb.py …: The installation stage puts some files used by gdb under the /usr/lib directory. This generates spurious error messages when performing ldconfig. This command moves the files to another location.
chown -v -R root:root /usr/lib/gcc/*linux-gnu/…: If the package is built by a user other than root, the ownership of the installed include directory (and its content) will be incorrect. This command changes the ownership to the root user and group.
Contents
Some program and library names and descriptions are not listed here, but can be found at LFS section for GCC as they were initially installed during the building of LFS.
Installed Programs: gccgo, gfortran, go, and gofmt, hard-linked to architecture specific names
Installed Libraries: libgfortran.{so,a}, libgo.{so,a}, libgobegin.a, libgolibbegin.a, libobjc.{so,a}, and numerous other run-time libraries and executables
Installed Directories: /usr/lib/go
Short Descriptions
gccgo is a GCC-based compiler for the Go language.
go is a tool for managing Go source code.
gofmt is a tool for formatting Go source code.
gfortran is a GCC-based compiler for the Fortran language.
13.7 GC-8.2.2
Introduction to GC
The GC package contains the Boehm-Demers-Weiser conservative garbage collector, which can be used as a garbage collecting replacement for the C malloc function or C++ new operator. It allows you to allocate memory basically as you normally would, without explicitly deallocating memory that is no longer useful. The collector automatically recycles memory when it determines that it can no longer be otherwise accessed. The collector is also used by a number of programming language implementations that either use C as intermediate code, want to facilitate easier interoperation with C libraries, or just prefer the simple collector interface. Alternatively, the garbage collector may be used as a leak detector for C or C++ programs, though that is not its primary goal.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/ivmai/bdwgc/releases/download/v8.2.2/gc-8.2.2.tar.gz
-
Download MD5 sum: 787177b1b15aa19ffa0d61d8f508b69d
-
Download size: 1.1 MB
-
Estimated disk space required: 11 MB (with tests)
-
Estimated build time: 0.3 SBU (with tests)
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gc
Installation of GC
Install GC by running the following commands:
./configure --prefix=/usr \
--enable-cplusplus \
--disable-static \
--docdir=/usr/share/doc/gc-8.2.2 &&
make
To test the results, issue: make check.
Now, as the root user:
make install &&
install -v -m644 doc/gc.man /usr/share/man/man3/gc_malloc.3
Command Explanations
--docdir=/usr/share/doc/gc-8.2.2: This option is used so the package will install the documentation in a versioned directory.
--enable-cplusplus: This parameter enables the building and installing of the C++ library along with the standard C library.
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Libraries: libcord.so, libgc.so, libgccpp.so, and libgctba.so
Installed Directories: /usr/include/gc and /usr/share/doc/gc-8.2.2
Short Descriptions
libcord.so contains a tree-based string library.
libgc.so contains a C interface to the conservative garbage collector, primarily designed to replace the C malloc function.
libgccpp.so contains a C++ interface to the conservative garbage collector.
libgctba.so contains a C++ interface to throw bad allocations.
13.8 GDB-13.1
Introduction to GDB
GDB, the GNU Project debugger, allows you to see what is going on “inside” another program while it executes – or what another program was doing at the moment it crashed. Note that GDB is most effective when tracing programs and libraries that were built with debugging symbols and not stripped.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/gdb/gdb-13.1.tar.xz
-
Download (FTP): ftp://ftp.gnu.org/gnu/gdb/gdb-13.1.tar.xz
-
Download MD5 sum: 4aaad768ff2585464173c091947287ec
-
Download size: 23 MB
-
Estimated disk space required: 1.1 GB (add 406 MB for docs; add 373 MB for tests)
-
Estimated build time: 2.1 SBU (Using parallelism=4; add 0.5 SBU for docs; add 20 SBU for tests)
GDB Dependencies
Recommended Runtime Dependency
six-1.16.0 (Python 3 module, required at run-time to use GDB scripts from various LFS/BLFS packages with Python 3 installed in LFS)
Optional
Doxygen-1.9.6, GCC-12.2.0 (ada, gfortran, and go are used for tests), Guile-3.0.9, Python-2.7.18, rustc-1.67.1 (used for some tests), Valgrind-3.20.0, and SystemTap (run-time, used for tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gdb
Installation of GDB
Install GDB by running the following commands:
mkdir build &&
cd build &&
../configure --prefix=/usr \
--with-system-readline \
--with-python=/usr/bin/python3 &&
make
Optionally, to build the API documentation using Doxygen-1.9.6, run:
make -C gdb/doc doxy
To test the results, issue:
pushd gdb/testsuite &&
make site.exp &&
echo "set gdb_test_timeout 120" >> site.exp &&
runtest
popd
See gdb/testsuite/README and TestingGDB. There are many problems with the test suite:
-
Clean directories are needed if re-running the tests. For that reason, make a copy of the compiled source code directory before the tests in case you need to run the tests again.
-
Results depend on installed compilers.
-
A test run of the test suite had 33 unexpected failures out of over 106000 tests.
-
On some systems, the gdb.tui test suite will fail if running over SSH.
-
On some AMD-based systems, over 200 additional tests may fail due to a difference in the threading implementation on those CPUs.
Now, as the root user:
make -C gdb install
If you have built the API documentation, it is now in gdb/doc/doxy. You can install it (as the root user):
install -d /usr/share/doc/gdb-13.1 &&
rm -rf gdb/doc/doxy/xml &&
cp -Rv gdb/doc/doxy /usr/share/doc/gdb-13.1
Command Explanations
--with-system-readline: This switch forces GDB to use the copy of Readline installed in LFS.
--with-python=/usr/bin/python3: This switch forces GDB to use Python 3. Remove this switch if you have installed Python-2.7.18 and want to use it instead of Python 3.
Contents
Installed Programs: gcore, gdb and gdbserver
Installed Library: None
Installed Directories: /usr/{include,share}/gdb and /usr/share/doc/gdb-13.1
Short Descriptions
gcore generates a core dump of a running program.
gdb is the GNU Debugger.
gdbserver is a remote server for the GNU debugger (it allows programs to be debugged from a different machine).
13.9 Git-2.39.2
Introduction to Git
Git is a free and open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Branching and merging are fast and easy to do. Git is used for version control of files, much like tools such as Mercurial-6.3.2, Bazaar, Subversion-1.14.2, CVS, Perforce, and Team Foundation Server.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.kernel.org/pub/software/scm/git/git-2.39.2.tar.xz
-
Download MD5 sum: 32d34dc65ae0955cc68c7152b5ca8b13
-
Download size: 6.8 MB
-
Estimated disk space required: 392 MB (with downloaded documentation, add 18 MB to build documentation)
-
Estimated build time: 0.3 SBU (with parallelism=4; add 0.4 SBU for building documentation and 1.6 SBU (disk speed dependent) for tests, both with parallelism=4)
Additional Downloads
-
https://www.kernel.org/pub/software/scm/git/git-manpages-2.39.2.tar.xz (not needed if you’ve installed asciidoc-10.2.0, xmlto-0.0.28, and prefer to rebuild them)
-
https://www.kernel.org/pub/software/scm/git/git-htmldocs-2.39.2.tar.xz and other docs (not needed if you’ve installed asciidoc-10.2.0 and want to rebuild the documentation).
Git Dependencies
Recommended
cURL-7.88.1 (needed to use Git over http, https, ftp or ftps)
Optional
GnuPG-2.4.0 (runtime, may be used to sign Git commits or tags, or verify the signatures of them), OpenSSH-9.2p1 (runtime, needed to use Git over ssh), pcre2-10.42 (or the deprecated PCRE-8.45), in either case configured with --enable-jit, Subversion-1.14.2 with Perl bindings (runtime, for git svn), Tk-8.6.13 (gitk, a simple Git repository viewer, uses Tk at runtime), Valgrind-3.20.0, Authen::SASL and MIME::Base64 (both runtime, for git send-email), and IO-Socket-SSL-2.081 (runtime, for git send-email to connect to a SMTP server with SSL encryption)
Optional (to create the man pages, html docs and other docs)
xmlto-0.0.28 and asciidoc-10.2.0 , and also dblatex (for the PDF version of the user manual), and docbook2x to create info pages
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/git
Installation of Git
Install Git by running the following commands:
./configure --prefix=/usr \
--with-gitconfig=/etc/gitconfig \
--with-python=python3 &&
make
You can build the man pages and/or html docs, or use downloaded ones. If you choose to build them, use the next two instructions.
If you have installed asciidoc-10.2.0 you can create the html version of the man pages and other docs:
make html
If you have installed asciidoc-10.2.0 and xmlto-0.0.28 you can create the man pages:
make man
The test suite can be run in parallel mode. To run the test suite, issue: make test. If run as a normal user, 0 tests should be reported as failed in the final summary.
Now, as the root user:
make perllibdir=/usr/lib/perl5/5.36/site_perl install
If you created the man pages and/or html docs
Install the man pages as the root user:
make install-man
Install the html docs as the root user:
make htmldir=/usr/share/doc/git-2.39.2 install-html
If you downloaded the man pages and/or html docs
If you downloaded the man pages untar them as the root user:
tar -xf ../git-manpages-2.39.2.tar.xz \
-C /usr/share/man --no-same-owner --no-overwrite-dir
If you downloaded the html docs untar them as the root user:
mkdir -vp /usr/share/doc/git-2.39.2 &&
tar -xf ../git-htmldocs-2.39.2.tar.xz \
-C /usr/share/doc/git-2.39.2 --no-same-owner --no-overwrite-dir &&
find /usr/share/doc/git-2.39.2 -type d -exec chmod 755 {} \; &&
find /usr/share/doc/git-2.39.2 -type f -exec chmod 644 {} \;
Reorganize text and html in the html-docs (both methods)
For both methods, the html-docs include a lot of plain text files. Reorganize the files as the root user:
mkdir -vp /usr/share/doc/git-2.39.2/man-pages/{html,text} &&
mv /usr/share/doc/git-2.39.2/{git*.txt,man-pages/text} &&
mv /usr/share/doc/git-2.39.2/{git*.,index.,man-pages/}html &&
mkdir -vp /usr/share/doc/git-2.39.2/technical/{html,text} &&
mv /usr/share/doc/git-2.39.2/technical/{*.txt,text} &&
mv /usr/share/doc/git-2.39.2/technical/{*.,}html &&
mkdir -vp /usr/share/doc/git-2.39.2/howto/{html,text} &&
mv /usr/share/doc/git-2.39.2/howto/{*.txt,text} &&
mv /usr/share/doc/git-2.39.2/howto/{*.,}html &&
sed -i '/^<a href=/s|howto/|&html/|' /usr/share/doc/git-2.39.2/howto-index.html &&
sed -i '/^\* link:/s|howto/|&html/|' /usr/share/doc/git-2.39.2/howto-index.txt
Command Explanations
--with-gitconfig=/etc/gitconfig: This sets /etc/gitconfig as the file that stores the default, system wide, Git settings.
--with-python=python3: Use this switch to use Python 3, instead of the EOL’ed Python 2. Python is used for the git p4 interface to Perforce repositories, and also used in some tests.
--with-libpcre2: Use this switch if PCRE2 is installed and has been built with the non-default JIT enabled.
--with-libpcre1: As an alternative to PCRE2, use this switch if the deprecated PCRE is installed and has been built with the non-default JIT enabled.
tar -xf ../git-manpages-2.39.2.tar.gz -C /usr/share/man –no-same-owner: This untars git-manpages-2.39.2.tar.gz. The -C option makes tar change directory to /usr/share/man before it starts to decompress the docs. The --no-same-owner option stops tar from preserving the user and group details of the files. This is useful as that user or group may not exist on your system; this could (potentially) be a security risk.
mv /usr/share/doc/git-2.39.2 …: These commands move some of the files into subfolders to make it easier to sort through the docs and find what you’re looking for.
find … chmod …: These commands correct the permissions in the shipped documentation tar file.
Configuring Git
Config Files
~/.gitconfig and /etc/gitconfig
Contents
Installed Programs: git, git-receive-pack, git-upload-archive, and git-upload-pack (hardlinked to each other), git-cvsserver, git-shell, gitk, and scalar
Installed Libraries: None
Installed Directories: /usr/libexec/git-core, and /usr/share/{doc/git-2.39.2,git-core,git-gui,gitk,gitweb}
Short Descriptions
git is the stupid content tracker.
git-cvsserver is a CVS server emulator for Git.
gitk is a graphical Git repository browser (needs Tk-8.6.13).
git-receive-pack is invoked by git send-pack and updates the repository with the information fed from the remote end.
git-shell is a login shell for SSH accounts to provide restricted Git access.
git-upload-archive is invoked by git archive –remote and sends a generated archive to the other end over the git protocol.
git-upload-pack is invoked by git fetch-pack, it discovers what objects the other side is missing, and sends them after packing.
scalar is a repository management tool that optimizes Git for use in large repositories.
13.10 Running a Git Server
Introduction
This section will describe how to set up, administer and secure a git server. Git has many options available. For more detailed documentation see https://git-scm.com/book/en/v2.
Server Dependencies
Required
Setting up a Git Server
The following instructions will install a git server. It will be set up to use OpenSSH as the secure remote access method.
Configuration of the server consists of the following steps:
1. Set Up Users, Groups, and Permissions
You will need to be user root for the initial portion of configuration. Create the git user and group and set and unusable password hash with the following commands:
groupadd -g 58 git &&
useradd -c "git Owner" -d /home/git -m -g git -s /usr/bin/git-shell -u 58 git &&
sed -i '/^git:/s/^git:[^:]:/git:NP:/' /etc/shadow
Putting in an unusable password hash (replacing the ! by NP) unlocks the account but it cannot be used to login via password authentication. That is required by sshd to work properly. Next, create some files and directories in the home directory of the git user allowing access to the git repository using ssh keys.
install -o git -g git -dm0700 /home/git/.ssh &&
install -o git -g git -m0600 /dev/null /home/git/.ssh/authorized_keys
For any developer who should have access to the repository add his/her public ssh key to /home/git/.ssh/authorized_keys. First, prepend some options to prevent users from using the connection to git for port forwarding to other machines the git server might reach.
echo -n "no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty " >> /home/git/.ssh/authorized_keys &&
cat <user-ssh-key> >> /home/git/.ssh/authorized_keys
It is also useful to set the default name of the initial branch of new repositories by modifying the git configuration. As the root user, run:
git config --system init.defaultBranch trunk
Finally add the /usr/bin/git-shell entry to the /etc/shells configuration file. This shell has been set in the git user profile and is to make sure that only git related actions can be executed:
echo "/usr/bin/git-shell" >> /etc/shells
2. Create a git repository
The repository can be anywhere on the filesystem. It is important that the git user has read/write access to that location. We use /srv/git as base directory. Create a new git repository with the following commands (as the root user):
Note
In all the instructions below, we use project1 as an example repository name. You should name your repository as a short descriptive name for your specific project.
install -o git -g git -m755 -d /srv/git/project1.git &&
cd /srv/git/project1.git &&
git init --bare &&
chown -R git:git .
3. Populate the repository from a client system
Note
All the instructions in this section and the next should be done on a user system, not the server system.
Now that the repository is created, it can be used by the developers to put some files into it. Once the ssh key of the user is imported to git’s authorized_keys file, the user can interact with the repository.
A minimal configuration should be available on the developer’s system specifying its user name and the email address. Create this minimal config file on client side:
cat > ~/.gitconfig <<EOF
[user]
name = <users-name>
email = <users-email-address>
EOF
On the developer’s machine, set up some files to be pushed to the repository as the initial content:
Note
The gitserver term used below should be the host name (or ip address) of the git server.
mkdir myproject
cd myproject
git init --initial-branch=trunk
git remote add origin git@gitserver:/srv/git/project1.git
cat >README <<EOF
This is the README file
EOF
git add README
git commit -m 'Initial creation of README'
git push --set-upstream origin trunk
The initial content is now pushed to the server and is available for other users. On the current machine, the argument --set-upstream origin trunk is now no longer required as the local repository is now connected to the remote repository. Subsequent pushes can be performed as
git push
Other developers can now clone the repository and do modifications to the content (as long as their ssh keys has been installed):
git clone git@gitserver:/srv/git/project1.git
cd project1
vi README
git commit -am 'Fix for README file'
git push
Note
This is a very basic server setup based on OpenSSH access. All developers are using the git user to perform actions on the repository and the changes users are committing can be distinguished as the local user name (see ~/.gitconfig) is recorded in the changesets.
Access is restricted by the public keys added to git’s authorized_keys file and there is no option for the public to export/clone the repository. To enable this, continue with step 4 to set up the git server for public read-only access.
In the URL used to clone the project, the absolute path (here /srv/git/project1.git) has to be specified as the repository is not in git’s home directory but in /srv/git. To get rid of the need to expose the structure of the server installation, a symlink can be added in git’s home directory for each project like this:
ln -svf /srv/git/project1.git /home/git/
Now, the repository can be cloned using
git clone git@gitserver:project1.git
4. Configure the Server
The setup described above makes a repository available for authenticated users (via providing the ssh public key file). There is also a simple way to publish the repository to unauthenticated users — of course without write access.
The combination of access via ssh (for authenticated users) and the export of repositories to unauthenticated users via the daemon is in most cases enough for a development site.
Note
The daemon will be reachable at port 9418 by default. Make sure that your firewall setup allows access to that port.
To start the server at boot time, install the git-daemon.service unit from the blfs-systemd-units-20220720 package:
make install-git-daemon
In order to allow git to export a repository, a file named git-daemon-export-ok is required in each repository directory on the server. The file needs no content, just its existence enables, its absence disables the export of that repository.
touch /srv/git/project1.git/git-daemon-export-ok
Along with the git-daemon.service unit, a configuration file named /etc/default/git-daemon has been installed. Review this configuration file to match your needs.
There are only three options to set in the configuration file:
-
GIT_BASE_DIR=
Specify the location of the git repositories. Relative paths used when accessing the daemon will translated relative to this directory.
-
DFT_REPO_DIR=
This directory is added to the white list of allowed directories. This variable can hold multiple directory names but is usually set equal to
GIT_BASE_DIR. -
GIT_DAEMON_OPTS=
In case special options to the git daemon command are needed, they have to be specified in this setting. One example might be to adjust the port number where daemon is listening. In this case, add
--port=<port number>to this variable. For more information about which options can be set, take a look at the output of git daemon –help.
After starting the daemon, unauthenticated users can clone exported repositories by using
git clone git://gitserver/project1.git
As the base directory is /srv/git by default (or set to a custom value in the configuration), git interprets the incoming path (/project1.git) relative to that base directory so that the repository in /srv/git/project1.git is served.
13.11 Guile-3.0.9
Introduction to Guile
The Guile package contains the GNU Project’s extension language library. Guile also contains a stand alone Scheme interpreter.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/guile/guile-3.0.9.tar.xz
-
Download (FTP): ftp://ftp.gnu.org/gnu/guile/guile-3.0.9.tar.xz
-
Download MD5 sum: 258983e0156c2bc66539dcbcb96f2bd2
-
Download size: 5.5 MB
-
Estimated disk space required: 221 MB (add 4 MB for tests)
-
Estimated build time: 5.9 SBU (Using parallelism=4; add 0.3 SBU for tests)
Guile Dependencies
Required
Optional
Emacs-28.2 and GDB-13.1 (run-time only dependencies).
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/guile
Installation of Guile
Install Guile by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/guile-3.0.9 &&
make &&
make html &&
makeinfo --plaintext -o doc/r5rs/r5rs.txt doc/r5rs/r5rs.texi &&
makeinfo --plaintext -o doc/ref/guile.txt doc/ref/guile.texi
To test the results, issue: ./check-guile. On an i686 system, as many as 10 tests will fail in the numbers.test test suite due to minor floating-point rounding errors.
Now, as the root user:
make install &&
make install-html &&
mkdir -p /usr/share/gdb/auto-load/usr/lib &&
mv /usr/lib/libguile-*-gdb.scm /usr/share/gdb/auto-load/usr/lib &&
mv /usr/share/doc/guile-3.0.9/{guile.html,ref} &&
mv /usr/share/doc/guile-3.0.9/r5rs{.html,} &&
find examples -name "Makefile*" -delete &&
cp -vR examples /usr/share/doc/guile-3.0.9 &&
for DIRNAME in r5rs ref; do
install -v -m644 doc/${DIRNAME}/*.txt \
/usr/share/doc/guile-3.0.9/${DIRNAME}
done &&
unset DIRNAME
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: guild, guile, guile-config, guile-snarf and guile-tools
Installed Libraries: libguile-3.0.so and guile-readline.so
Installed Directories: /usr/include/guile, /usr/lib/guile, /usr/share/doc/guile-3.0.9 and /usr/share/guile
Short Descriptions
guile is a stand-alone Scheme interpreter for Guile.
guile-config is a Guile script which provides the information necessary to link your programs against the Guile library, in much the same way PkgConfig does.
guile-snarf is a script to parse declarations in your C code for Scheme visible C functions.
guild is a wrapper program installed along with guile, which knows where a particular module is installed and calls it, passing its arguments to the program.
guile-tools is a symlink to guild.
13.12 Librep-0.92.7
Introduction to Librep
The librep package contains a Lisp system. This is useful for scripting or for applications that may use the Lisp interpreter as an extension language.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.tuxfamily.org/librep/librep_0.92.7.tar.xz
-
Download MD5 sum: 036195b371006848e29ed6f50ddc8475
-
Download size: 840 KB
-
Estimated disk space required: 10 MB
-
Estimated build time: 0.3 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/librep
Installation of Librep
Install librep 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:
sed -i '5043,5044 d' libtool &&
make install
Contents
Installed Programs: rep, rep-remote, rep-xgettext, and repdoc
Installed Libraries: librep.so and numerous modules installed in the /usr/lib/rep hierarchy
Installed Directories: /usr/lib/rep, /usr/share/emacs/site-lisp, and /usr/share/rep
Short Descriptions
rep is the Lisp interpreter.
librep.so contains the functions necessary for the Lisp interpreter.
13.13 LLVM-15.0.7
Introduction to LLVM
The LLVM package contains a collection of modular and reusable compiler and toolchain technologies. The Low Level Virtual Machine (LLVM) Core libraries provide a modern source and target-independent optimizer, along with code generation support for many popular CPUs (as well as some less common ones!). These libraries are built around a well specified code representation known as the LLVM intermediate representation (“LLVM IR”).
Clang provides new C, C++, Objective C and Objective C++ front-ends for LLVM and is required by some desktop packages such as firefox and for rust if that is built using the system LLVM.
The Compiler RT package provides runtime sanitizer and profiling libraries for developers who use Clang and LLVM.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/llvm-15.0.7.src.tar.xz
-
Download MD5 sum: c77db4c71e1eb267358204dffe2c6e10
-
Download size: 50 MB
-
Estimated disk space required: 2.7 GB (848 MB installed; add 18.3 GB for tests and 308 MB for documentation)
-
Estimated build time: 24 SBU (Using parallelism=4; add 22 SBU for tests)
Additional Downloads
Cmake modules for LLVM
-
Download: https://anduin.linuxfromscratch.org/BLFS/llvm/llvm-cmake-15.0.7.src.tar.xz
-
Download MD5 sum: c3647d253f67ce255e1aba014e528f5b
-
Download size: 6.8 KB
Recommended Download
Clang
-
Download: https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/clang-15.0.7.src.tar.xz
-
Download MD5 sum: a6d0141e50b48f5e60c682277dac83b4
-
Download size: 18 MB
-
Patch enabling SSP by default in clang: https://www.linuxfromscratch.org/patches/blfs/11.3/clang-15.0.7-enable_default_ssp-1.patch
Optional Download
Compiler RT
-
Download: https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.7/compiler-rt-15.0.7.src.tar.xz
-
Download MD5 sum: 12e6777354f0121cbe73ef13342a9302
-
Download size: 2.3 MB
LLVM Dependencies
Required
Optional
Doxygen-1.9.6, git-2.39.2, Graphviz-7.1.0, libxml2-2.10.3, Pygments-2.14.0, rsync-3.2.7 (for tests), recommonmark-0.7.1 (for building documentation), texlive-20220321 (or install-tl-unx), Valgrind-3.20.0, PyYAML-6.0, Zip-3.0, OCaml, psutil (for tests), and Z3
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/llvm
Installation of LLVM
Starting with version 15.0.0, an additional tarball llvm-cmake-15.0.7.src.tar.xz is needed. The upstream expects it extracted at the same level as the llvm-15.0.7.src.tar.xz tarball, and the extracted directory renamed to cmake. Extract it and modify the build system to avoid creating a directory outside the llvm-15.0.7.src hierarchy:
tar -xf ../llvm-cmake-15.0.7.src.tar.xz &&
sed '/LLVM_COMMON_CMAKE_UTILS/s@../cmake@cmake-15.0.7.src@' \
-i CMakeLists.txt
Install clang into the source tree by running the following commands:
tar -xf ../clang-15.0.7.src.tar.xz -C tools &&
mv tools/clang-15.0.7.src tools/clang
If you have downloaded compiler-rt, install it into the source tree by running the following commands:
tar -xf ../compiler-rt-15.0.7.src.tar.xz -C projects &&
mv projects/compiler-rt-15.0.7.src projects/compiler-rt
There are many Python scripts in this package which use /usr/bin/env python to access the system Python which on LFS is Python-3.11.2. Use the following command to fix these scripts:
grep -rl '#!.*python' | xargs sed -i '1s/python$/python3/'
If you have downloaded clang, apply the following patch to enable SSP by default in compiled programs.
patch -Np2 -d tools/clang <../clang-15.0.7-enable_default_ssp-1.patch
Install LLVM by running the following commands:
mkdir -v build &&
cd build &&
CC=gcc CXX=g++ \
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DLLVM_ENABLE_FFI=ON \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF" \
-DLLVM_BINUTILS_INCDIR=/usr/include \
-DLLVM_INCLUDE_BENCHMARKS=OFF \
-DCLANG_DEFAULT_PIE_ON_LINUX=ON \
-Wno-dev -G Ninja .. &&
ninja
If you have installed recommonmark-0.7.1 and its dependencies, you can generate the html documentation and manual pages with the following commands:
cmake -DLLVM_BUILD_DOCS=ON \
-DLLVM_ENABLE_SPHINX=ON \
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
-Wno-dev -G Ninja .. &&
ninja docs-llvm-html docs-llvm-man
The clang documentation can be built too:
ninja docs-clang-html docs-clang-man
To test the results, issue: ninja check-all. Tests are built with all available cores, but run using the number of online processors. (The difference is that available cores can be limited using taskset, but taking them offline requires echoing 0 to /sys/devices/system/cpu/cpu<N>/online by the root user and makes them temporarily unusable by all jobs on the machine.) Note that four tests out of more than 64,700 are known to fail: DataFlowSanitizer-x86_64 :: custom.cpp, DataFlowSanitizer-x86_64 :: origin_unaligned_memtrans.c, DataFlowSanitizer-x86_64 :: release_shadow_space.c, LLVM :: tools/llvm-libtool-darwin/L-and-l.test,
Now, as the root user:
ninja install &&
cp bin/FileCheck /usr/bin
If you have built the llvm documentation, it has been installed by the above command, but it needs to be moved. As the root user:
install -v -d -m755 /usr/share/doc/llvm-15.0.7 &&
mv -v /usr/share/doc/LLVM/llvm /usr/share/doc/llvm-15.0.7 &&
rmdir -v --ignore-fail-on-non-empty /usr/share/doc/LLVM
If you have built the clang documentation, it has been installed, but needs to be moved too. Again as the root user:
install -v -d -m755 /usr/share/doc/llvm-15.0.7 &&
mv -v /usr/share/doc/LLVM/clang /usr/share/doc/llvm-15.0.7 &&
rmdir -v --ignore-fail-on-non-empty /usr/share/doc/LLVM
Command Explanations
-DLLVM_ENABLE_FFI=ON: This switch allows LLVM to use libffi.
-DLLVM_BUILD_LLVM_DYLIB=ON: This switch builds the libraries as static and links all of them into an unique shared one. This is the recommended way of building a shared library.
-DCMAKE_BUILD_TYPE=Release: This switch enables compiler optimizations in order to speed up the code and reduce its size. It also disables some compile checks which are not necessary on a production system.
-DLLVM_TARGETS_TO_BUILD="host;AMDGPU;BPF": This switch enables building for the same target as the host, and also for the r600 AMD GPU used by the Mesa r600 and radeonsi drivers. The BPF target is required to build v4l-utils-1.22.1. The Default is all of the targets. You can use a semicolon separated list. Valid targets are: host, X86, Sparc, PowerPC, ARM, AArch64, Mips, Hexagon, Xcore, M68K, MSP430, NVPTX, SystemZ, AMDGPU, BPF, CppBackend, or all.
-DLLVM_LINK_LLVM_DYLIB=ON: Used in conjunction with -DLLVM_BUILD_LLVM_DYLIB=ON, this switch enables linking the tools against the shared library instead of the static ones. It slightly reduces their size and also ensures that llvm-config will correctly use libLLVM-15.so.
-DLLVM_ENABLE_RTTI=ON: This switch is used to build LLVM with run-time type information. This is required for building Mesa-22.3.5.
-DLLVM_BINUTILS_INCDIR=/usr/include: This switch is used to tell the build system the location of binutils headers, which were installed in LFS. This allows the building of LLVMgold.so, which is needed for building programs with clang and Link Time Optimization (LTO).
-DLLVM_INCLUDE_BENCHMARKS=OFF: is used to disable generation build targets for the LLVM benchmarks. This option requires additional code that is not currently available.
-DCLANG_DEFAULT_PIE_ON_LINUX=ON: makes -fpie option the default when compiling programs. Together with the ASLR feature enabled in the kernel, this defeats some kind of attacks based on known memory layouts.
-DBUILD_SHARED_LIBS=ON: if used instead of -DLLVM_BUILD_LLVM_DYLIB=ON and -DLLVM_LINK_LLVM_DYLIB=ON, builds all the LLVM libraries (about 60) as shared libraries instead of static.
-DLLVM_ENABLE_DOXYGEN: Enables the generation of browsable HTML documentation if you have installed Doxygen-1.9.6. You should run make doxygen-html afterwards, and install the generated documentation manually.
Contents
Installed Programs: analyze-build, bugpoint, c-index-test, clang, clang++ (symlinks to clang-15), clang-15, clang-check, clang-cl, clang-cpp (last two symlinks to clang), clang-extdef-mapping, clang-format, clang-linker-wrapper, clang-nvlink-wrapper, clang-offload-bundler, clang-offload-packager, clang-offload-wrapper, clang-refactor, clang-rename, clang-repl, clang-scan-deps, diagtool, dsymutil, FileCheck, git-clang-format, hmaptool, intercept-build, llc, lli, llvm-addr2line (symlink to llvm-symbolizer), llvm-ar, llvm-as, llvm-bcanalyzer, llvm-bitcode-strip (symlink to llvm-objcopy), llvm-cat, llvm-cfi-verify, llvm-config, llvm-cov, llvm-c-test, llvm-cvtres, llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap, llvm-debuginfod, llvm-debuginfod-find, llvm-diff, llvm-dis, llvm-dlltool (symlink to llvm-ar), llvm-dwarfdump, llvm-dwarfutil, llvm-dwp, llvm-exegesis, llvm-extract, llvm-gsymutil, llvm-ifs, llvm-install-name-tool (symlink to llvm-objcopy), llvm-jitlink, llvm-lib (symlink to llvm-ar), llvm-libtool-darwin, llvm-link, llvm-lipo, llvm-lto, llvm-lto2, llvm-mc, llvm-mca, llvm-ml, llvm-modextract, llvm-mt, llvm-nm, llvm-objcopy, llvm-objdump, llvm-opt-report, llvm-otool (symlink to llv-objdump), llvm-pdbutil, llvm-profdata, llvm-profgen, llvm-ranlib (symlink to llvm-ar), llvm-rc, llvm-readelf (symlink to llvm-readobj), llvm-readobj, llvm-reduce, llvm-remark-size-diff, llvm-rtdyld, llvm-sim, llvm-size, llvm-split, llvm-stress, llvm-strings, llvm-strip (symlink to llvm-objcopy), llvm-symbolizer, llvm-tapi-diff, llvm-tblgen, llvm-tli-checker, llvm-undname, llvm-windres (symlink to llvm-rc), llvm-xray, opt, sancov, sanstats, scan-build, scan-build-py, scan-view, split-file, and verify-uselistorder
Installed Libraries: libLLVM.so, libLLVM.a (95 libraries), libLTO.so, libRemarks.so, libclang.so, libclang-cpp.so, libclang.a (41 libraries), and LLVMgold.so
Installed Directories: /usr/include/{clang,clang-c,llvm,llvm-c}, /usr/lib/{clang,cmake/{clang,llvm},libear,libscanbuild}, /usr/share/{clang,opt-viewer,scan-build,scan-view}, and /usr/share/doc/llvm-15.0.7
Short Descriptions
analyze-build is a static analysis tool.
bugpoint is the automatic test case reduction tool.
c-index-test is used to test the libclang API and demonstrate its usage.
clang is the Clang C, C++, and Objective-C compiler.
clang-check is a tool to perform static code analysis and display Abstract Syntax Trees (AST).
clang-extdef-mapping is a tool to collect the USR name and location of external definitions in a source file.
clang-format is a tool to format C/C++/Java/JavaScript/Objective-C/Protobuf code.
clang-linker-wrapper is a wrapper utility over the host linker.
clang-nvlink-wrapper is a wrapper tool over the nvlink program.
clang-offload-bundler is a tool to bundle/unbundle OpenMP offloaded files associated with a common source file.
clang-offload-packager is a tool to bundle several object files into a single binary, which can then be used to create a fatbinary containing offloading code.
clang-offload-wrapper is a tool to create wrapper bitcode for offload target binaries.
clang-refactor is a Clang-based refactoring tool for C, C++ and Objective-C.
clang-rename is a tool to rename symbols in C/C++ programs.
clang-scan-deps is a tool to scan for dependencies in a source file.
diagtool is a combination of tools for dealing with diagnostics in clang.
FileCheck is a tool that reads two files (one from standard input, and one specified on the command line) and uses one to verify the other.
dsymutil is a tool used to manipulate archived DWARF debug symbol files, compatible with the Darwin command dsymutil.
git-clang-format runs clang-format on git generated patches (requires git-2.39.2).
hmaptool is a Python tool to dump and construct header maps.
llc is the LLVM static compiler.
lli is used to directly execute programs from LLVM bitcode.
llvm-addr2line is a tool used to convert addresses into file names and line numbers.
llvm-ar is the LLVM archiver.
llvm-as is the LLVM assembler.
llvm-bcanalyzer is the LLVM bitcode analyzer.
llvm-bitcode-strip strips LLVM bitcode from an object.
llvm-cat is a tool to concatenate llvm modules.
llvm-cfi-verify identifies whether Control Flow Integrity protects all indirect control flow instructions in the provided object file, DSO, or binary.
llvm-config Prints LLVM compilation options.
llvm-cov is used to emit coverage information.
llvm-c-test is a bytecode disassembler.
llvm-cvtres is a tool to convert Microsoft resource files to COFF.
llvm-cxxdump is used as a C++ ABI Data Dumper.
llvm-cxxfilt is used to demangle C++ symbols in llvm code.
llvm-cxxmap is used to remap C++ mangled symbols.
llvm-debuginfod is a service providing debug information over an HTTP API for analyzing stripped binaries.
llvm-debuginfod-find is an interface to the llvm-debuginfod daemon for finding debuginfod artifacts.
llvm-diff is the LLVM structural ‘diff’.
llvm-dis is the LLVM disassembler.
llvm-dwarfdump prints the content of DWARF sections in object files.
llvm-dwarfutil is a tool to copy and manipulate debug info.
llvm-dwp merges split DWARF files.
llvm-elfabi is used to read information about an ELF binary’s ABI.
llvm-exegesis is a benchmarking tool that uses information available in LLVM to measure host machine instruction characteristics like latency or port decomposition.
llvm-extract is used to extract a function from an LLVM module.
llvm-gsymutil is used to process GSYM Symbolication Format files which convert memory addresses to function name and source file line. These files are smaller than DWARF or Breakpad files.
llvm-ifs is used to merge interface stubs with object files.
llvm-install-name-tool is used to rewrite load commands into MachO binary format.
llvm-jitlink is used to parse relocatable object files to make their contents executable in a target process.
llvm-libtool-darwin provides basic libtool functionality on Darwin-based systems. This is mostly useful if you are generating binaries for macOS systems.
llvm-link is the LLVM linker.
llvm-lipo is used to create universal binaries from MachO files.
llvm-lto is the LLVM LTO (link time optimization) linker.
llvm-lto2 is a test harness for the resolution based LTO interface.
llvm-mc is a standalone machine code assembler/disassembler.
llvm-mca is a performance analysis tool to statically measure the performance of machine code.
llvm-ml is a playground for machine code provided by LLVM.
llvm-modextract is a tool to extract one module from multimodule bitcode files.
llvm-mt is a tool to generate signed files and catalogs from a side-by-side assembly manifest (used for Microsoft SDK).
llvm-nm is used to list LLVM bitcode and object file’s symbol table.
llvm-objcopy is LLVM’s version of an objcopy tool.
llvm-objdump is an LLVM object file dumper.
llvm-opt-report is a tool to generate an optimization report from YAML optimization record files.
llvm-pdbutil is a PDB (Program Database) dumper. PDB is a Microsoft format.
llvm-profdata is a small tool to manipulate and print profile data files.
llvm-profgen generates LLVM SPGO profiling information.
llvm-ranlib is used to generate an index for a LLVM archive.
llvm-rc is a platform-independent tool to compile resource scripts into binary resource files.
llvm-readobj displays low-level format-specific information about object files.
llvm-reduce is used to automatically reduce testcases when running a test suite.
llvm-remark-size-diff reports the difference in instruction count and stack size remarks between two remark files.
llvm-rtdyld is the LLVM MC-JIT tool.
llvm-size is the LLVM object size dumper.
llvm-split is the LLVM module splitter
llvm-stress is used to generate random .ll files.
llvm-strings print strings found in a binary (object file, executable, or archive library).
llvm-symbolizer converts addresses into source code locations.
llvm-tblgen is the LLVM Target Description To C++ Code Generator.
llvm-tli-checker is the LLVM TargetLibraryInfo versus SDK checker.
llvm-undname is a tool to demangle names.
llvm-xray is an implementation of Google’s XRay function call tracing system.
intercept-build generates a database of build commands for a project.
opt is the LLVM optimizer.
sancov is the sanitizer coverage processing tool.
sanstats is the sanitizer statistics processing tool.
scan-build is a Perl script that invokes the Clang static analyzer.
scan-build-py is a Python script that invokes the Clang static analyzer.
scan-view is a viewer for Clang static analyzer results.
split-file splits an input file into multiple parts separated by regex.
verify-uselistorder is the LLVM tool to verify use-list order.
13.14 Lua-5.4.4
Introduction to Lua
Lua is a powerful light-weight programming language designed for extending applications. It is also frequently used as a general-purpose, stand-alone language. Lua is implemented as a small library of C functions, written in ANSI C, and compiles unmodified in all known platforms. The implementation goals are simplicity, efficiency, portability, and low embedding cost. The result is a fast language engine with small footprint, making it ideal in embedded systems too.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.lua.org/ftp/lua-5.4.4.tar.gz
-
Download MD5 sum: bd8ce7069ff99a400efd14cf339a727b
-
Download size: 356 KB
-
Estimated disk space required: 5.8 MB (with Basic tests)
-
Estimated build time: less than 0.1 SBU (with Basic tests)
Additional Downloads
-
Required patch: https://www.linuxfromscratch.org/patches/blfs/11.3/lua-5.4.4-shared_library-2.patch
-
Optional Test Suite Download (HTTP): https://www.lua.org/tests/lua-5.4.4-tests.tar.gz
-
Optional Test Suite Download MD5 sum: 0e28a9b48b3596d6b12989d04ae403c4
-
Optional Test Suite Download size: 132 KB
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/lua
Installation of Lua
Some packages check for the pkg-config file for Lua, which is created with:
cat > lua.pc << "EOF"
V=5.4
R=5.4.4
prefix=/usr
INSTALL_BIN=${prefix}/bin
INSTALL_INC=${prefix}/include
INSTALL_LIB=${prefix}/lib
INSTALL_MAN=${prefix}/share/man/man1
INSTALL_LMOD=${prefix}/share/lua/${V}
INSTALL_CMOD=${prefix}/lib/lua/${V}
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Lua
Description: An Extensible Extension Language
Version: ${R}
Requires:
Libs: -L${libdir} -llua -lm -ldl
Cflags: -I${includedir}
EOF
Install Lua by running the following commands:
patch -Np1 -i ../lua-5.4.4-shared_library-2.patch &&
make linux
To test the results, issue: make test. “This will run the interpreter and print its version”. More comprehensive tests can be performed if you downloaded the “Test suite” tarball. Those tests need to be executed after the package is installed, thus we defer to the description below.
Now, as the root user:
make INSTALL_TOP=/usr \
INSTALL_DATA="cp -d" \
INSTALL_MAN=/usr/share/man/man1 \
TO_LIB="liblua.so liblua.so.5.4 liblua.so.5.4.4" \
install &&
mkdir -pv /usr/share/doc/lua-5.4.4 &&
cp -v doc/*.{html,css,gif,png} /usr/share/doc/lua-5.4.4 &&
install -v -m644 -D lua.pc /usr/lib/pkgconfig/lua.pc
Here we describe only the “Basic tests”. Untar the tarball and change to the lua-5.4.4-tests directory, then issue lua -e “_U=true” all.lua. If the tests finish without error, you will see a message containing the string “final OK”.
Contents
Installed Programs: lua and luac
Installed Library: liblua.so
Installed Directories: /usr/{lib,share}/lua and /usr/share/doc/lua-5.4.4
Short Descriptions
lua is the standalone Lua interpreter.
luac is the Lua compiler.
liblua.so contains the Lua API functions.
13.15 Lua-5.2.4
Introduction to Lua 5.2
Lua is a powerful light-weight programming language designed for extending applications. It is also frequently used as a general-purpose, stand-alone language. Lua is implemented as a small library of C functions, written in ANSI C, and compiles unmodified in all known platforms. The implementation goals are simplicity, efficiency, portability, and low embedding cost. The result is a fast language engine with small footprint, making it ideal in embedded systems too.
This is an older version of Lua needed only for compatibility with other programs such as Wireshark-4.0.3.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.lua.org/ftp/lua-5.2.4.tar.gz
-
Download MD5 sum: 913fdb32207046b273fdb17aad70be13
-
Download size: 248 KB
-
Estimated disk space required: 3.6 MB
-
Estimated build time: less than 0.1 SBU
Additional Downloads
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/lua
Installation of Lua 5.2
Some packages check for the pkg-config file for Lua, which is created with:
cat > lua.pc << "EOF"
V=5.2
R=5.2.4
prefix=/usr
INSTALL_BIN=${prefix}/bin
INSTALL_INC=${prefix}/include/lua5.2
INSTALL_LIB=${prefix}/lib
INSTALL_MAN=${prefix}/share/man/man1
INSTALL_LMOD=${prefix}/share/lua/${V}
INSTALL_CMOD=${prefix}/lib/lua/${V}
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/lua5.2
Name: Lua
Description: An Extensible Extension Language
Version: ${R}
Requires:
Libs: -L${libdir} -llua5.2 -lm -ldl
Cflags: -I${includedir}
EOF
Install Lua by running the following commands:
patch -Np1 -i ../lua-5.2.4-shared_library-1.patch &&
sed -i '/#define LUA_ROOT/s:/usr/local/:/usr/:' src/luaconf.h &&
sed -r -e '/^LUA_(SO|A|T)=/ s/lua/lua5.2/' \
-e '/^LUAC_T=/ s/luac/luac5.2/' \
-i src/Makefile &&
make MYCFLAGS="-fPIC" linux
The installation of this package is complex, so we will use the DESTDIR method of installation:
make TO_BIN='lua5.2 luac5.2' \
TO_LIB="liblua5.2.so liblua5.2.so.5.2 liblua5.2.so.5.2.4" \
INSTALL_DATA="cp -d" \
INSTALL_TOP=$PWD/install/usr \
INSTALL_INC=$PWD/install/usr/include/lua5.2 \
INSTALL_MAN=$PWD/install/usr/share/man/man1 \
install &&
install -Dm644 lua.pc install/usr/lib/pkgconfig/lua52.pc &&
mkdir -pv install/usr/share/doc/lua-5.2.4 &&
cp -v doc/*.{html,css,gif,png} install/usr/share/doc/lua-5.2.4 &&
ln -s liblua5.2.so install/usr/lib/liblua.so.5.2 &&
ln -s liblua5.2.so install/usr/lib/liblua.so.5.2.4 &&
mv install/usr/share/man/man1/{lua.1,lua5.2.1} &&
mv install/usr/share/man/man1/{luac.1,luac5.2.1}
Now, as the root user:
chown -R root:root install &&
cp -a install/* /
Command Explanations
sed -i … src/luaconf.h: This command changes the Lua search path to match the install path.
sed -i … src/Makefile: This command deconflicts this installation with the latest version of lua.
Contents
Installed Programs: lua5.2 and luac5.2
Installed Library: liblua5.2.so
Installed Directories: /usr/include/lua5.2, /usr/lib/lua/5.2, /usr/share/doc/lua-5.2.4, and /usr/share/lua/5.2
Short Descriptions
lua5.2 is the standalone Lua version 5.2 interpreter.
luac5.2 is the Lua version 5.2 compiler.
liblua5.2.so contains the Lua version 5.2 API functions.
13.16 Mercurial-6.3.2
Introduction to Mercurial
Mercurial is a distributed source control management tool similar to Git and Bazaar. Mercurial is written in Python and is used by projects such as Mozilla for Firefox and Thunderbird.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.mercurial-scm.org/release/mercurial-6.3.2.tar.gz
-
Download MD5 sum: 37f5c2c5efee02fe25a0f344b2e3ca72
-
Download size: 7.7 MB
-
Estimated disk space required: 79 MB (with docs, add 892 MB for tests)
-
Estimated build time: 0.3 SBU (with docs, add 6.2 SBU for tests using -j4)
Mercurial Dependencies
Optional
docutils-0.19 (required to build the documentation), git-2.39.2, GPGME-1.18.0 (with Python bindings), OpenSSH-9.2p1 (runtime, to access ssh://… repositories), Pygments-2.14.0, rustc-1.67.1 (see rust/README.rst and rust/rhg/README.md), Subversion-1.14.2 (with Python bindings), Bazaar, CVS, pyflakes, pyOpenSSL, and re2
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/mercurial
Installation of Mercurial
Build Mercurial by issuing the following command:
make build
To build the documentation (requires docutils-0.19), issue:
make doc
To run the test suite, issue:
TESTFLAGS="-j<N> --tmpdir tmp --blacklist blacklists/fsmonitor --blacklist blacklists/linux-vfat" make check
where <N> is an integer between one and the number of ( processor X threads ), inclusive. Several tests (about 20) fail because some error messages have changed in Python, or some deprecation warnings are printed, that were not present when the test was designed. In order to investigate any apparently failing tests, you may use the run-tests.py script. To see the almost forty switches, some of them very useful, issue tests/run-tests.py –help. Running the following commands, you will execute only the tests that failed before:
pushd tests &&
rm -rf tmp &&
./run-tests.py --tmpdir tmp test-gpg.t
popd
Normally, the previous failures will be reproducible. However, if you add the switch --debug before --tmpdir, and run the tests again, some failures may disappear, which is a problem with the test suite. If this happens, there will be no more of these failures even if you do not pass the –debug switch again.
An interesting switch is --time, which will generate a table of all the executed tests and their respective start, end, user, system and real times once the tests are complete. Note that these switches may be used with make check by including them in the TESTFLAGS environment variable.
Install Mercurial by running the following command (as root):
make PREFIX=/usr install-bin
If you built the documentation, install it by running the following command (as root):
make PREFIX=/usr install-doc
After installation, two very quick and simple tests should run correctly. The first one needs some configuration:
cat >> ~/.hgrc << "EOF"
[ui]
username = <user_name> <user@mail>
EOF
where you must replace
Configuring Mercurial
Config Files
/etc/mercurial/hgrc and ~/.hgrc
The great majority of extensions are disabled by default. Run hg help extensions if you need to enable any, e.g. when investigating test failures. This will output a list of enabled and disabled extensions, as well as more information such as how to enable or disable extensions using configuration files.
If you have installed make-ca-1.12 and want Mercurial to use the certificates, as the root user, issue:
install -v -d -m755 /etc/mercurial &&
cat > /etc/mercurial/hgrc << "EOF"
[web]
cacerts = /etc/pki/tls/certs/ca-bundle.crt
EOF
Contents
Installed Programs: hg
Installed Libraries: several internal modules under /usr/lib/python3.11/site-packages/mercurial
Installed Directories: /etc/mercurial, /usr/lib/python3.11/site-packages/hgdemandimport, /usr/lib/python3.11/site-packages/hgext, /usr/lib/python3.11/site-packages/hgext3rd, /usr/lib/python3.11/site-packages/mercurial, and /usr/lib/python3.11/site-packages/mercurial-6.3.2-py3.11.egg-info
Short Descriptions
hg is the mercurial version control system..
13.17 NASM-2.16.01
Introduction to NASM
NASM (Netwide Assembler) is an 80x86 assembler designed for portability and modularity. It includes a disassembler as well.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01.tar.xz
-
Download MD5 sum: d755ba0d16f94616c2907f8cab7c748b
-
Download size: 993.8 KB
-
Estimated disk space required: 41 MB
-
Estimated build time: 0.2 SBU
Additional Downloads
- Optional documentation: https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/nasm-2.16.01-xdoc.tar.xz
NASM Dependencies
Optional (for generating documentation):
asciidoc-10.2.0 and xmlto-0.0.28
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/nasm
Installation of NASM
If you downloaded the optional documentation, put it into the source tree:
tar -xf ../nasm-2.16.01-xdoc.tar.xz --strip-components=1
Install NASM 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
If you downloaded the optional documentation, install it with the following instructions as the root user:
install -m755 -d /usr/share/doc/nasm-2.16.01/html &&
cp -v doc/html/*.html /usr/share/doc/nasm-2.16.01/html &&
cp -v doc/*.{txt,ps,pdf} /usr/share/doc/nasm-2.16.01
Contents
Installed Programs: nasm and ndisasm
Installed Libraries: None
Installed Directory: /usr/share/doc/nasm-2.16.01
Short Descriptions
nasm is a portable 80x86 assembler.
ndisasm is an 80x86 binary file disassembler.
13.18 Patchelf-0.17.2
Introduction to Patchelf
The patchelf package contains a small utility to modify the dynamic linker and RPATH of ELF executables.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/NixOS/patchelf/releases/download/0.17.2/patchelf-0.17.2.tar.gz
-
Download MD5 sum: 63e6f761af0bfda2bfe08a568d1e2e76
-
Download size: 240 KB
-
Estimated disk space required: 16 MB (with tests)
-
Estimated build time: 0.1 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/patchelf
Installation of Patchelf
Install patchelf by running the following commands:
./configure --prefix=/usr \
--docdir=/usr/share/doc/patchelf-0.17.2 &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Contents
Installed Program: patchelf
Short Descriptions
patchelf is a simple utility for modifying existing ELF executables and libraries; it can change the dynamic loader (“ELF interpreter”) of executables and change the RPATH of executables and libraries.
13.19 Perl Modules
Introduction to Perl Modules
The Perl module packages (also referred to as Distributions, because each can contain multiple modules) add useful objects to the Perl language. The packages listed on this page are required or recommended for other packages in the book. If they have dependent modules, those are either on this page or else on the next page (Perl Module Dependencies).
In many cases, only the required or recommended dependencies are listed - there might be other modules which allow more tests to be run, but omitting them will still allow the tests to PASS.
For a few modules, the BLFS editors have determined that other modules still listed as prerequisites are not required, and omitted them.
Where an alphabetically-earlier dependency of the same module pulls in a dependency, it is not mentioned for the later dependencies of the same module. You should build the listed dependencies in order.
It is generally worth running the tests for perl modules, they often can show problems such as missing dependencies which are required to use the module. Here, the editors have attempted to separate those dependencies which are only required for running test suites, but they will not be mentioned for a module where one of its dependencies uses that module for its own test suite. That is to say, if you intend to run the test suites, please run them for each dependency of the module.
It is possible to automatically install the current versions of a module and all missing or too-old dependencies recommended by upstream using CPAN. See CPAN automated install of perl modules at the end of this page.
Most of these modules only install files below /usr/lib/perl5/site_perl/5.xx.y and those will not be documented. One or two install programs (mostly, perl scripts), or a library, into /usr/bin/ or /usr/lib/ and these are documented.
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/perl-modules
Archive::Zip-1.68
Introduction to Archive::Zip
The Archive::Zip module allows a Perl program to create, manipulate, read, and write Zip archive files.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/P/PH/PHRED/Archive-Zip-1.68.tar.gz
-
Download MD5 sum: a33993309322164867c99e04a4000ee3
Archive::Zip Dependencies
Recommended (for the test suite)
UnZip-6.0 (with its patch)
Optional
Installation of Archive::Zip
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Contents
Installed Programs: crc32
Short Descriptions
crc32 computes and prints to stdout the CRC-32 values of the given files.
autovivification-0.18
Introduction to the autovivification module
This module allows you disable autovivification (the automatic creation and population of new arrays and hashes whenever undefined variables are dereferenced), and optionally throw a warning or an error when it would have occurred.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/V/VP/VPIT/autovivification-0.18.tar.gz
-
Download MD5 sum: 8dec994e1e7d368e055f21a5777385a0
Installation of autovivification
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Business::ISBN-3.007
Introduction to Business::ISBN
The Business::ISBN module is for work with International Standard Book Numbers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/B/BD/BDFOY/Business-ISBN-3.007.tar.gz
-
Download MD5 sum: 6270020dc5a2e3ae7264ef4e4d4fb344
Business::ISBN Dependencies
Required
Business-ISBN-Data-20210112.006
Installation of Business::ISBN
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Business::ISMN-1.202
Introduction to Business::ISMN
The Business::ISMN module is for work with International Standard Music Numbers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/B/BD/BDFOY/Business-ISMN-1.202.tar.gz
-
Download MD5 sum: 7a32381ddbf1cf58f260c3bcb3016bc3
Business::ISMN Dependencies
Required
Installation of Business::ISMN
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Business::ISSN-1.005
Introduction to Business::ISSN
The Business::ISSN module is for work with International Standard Serial Numbers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/B/BD/BDFOY/Business-ISSN-1.005.tar.gz
-
Download MD5 sum: f46bf5585d6c3aa9fb32127edb13151a
Installation of Business::ISSN
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Class::Accessor-0.51
Introduction to Class::Accessor
Class::Accessor generates accessors/mutators for your class.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/K/KA/KASEI/Class-Accessor-0.51.tar.gz
-
Download MD5 sum: 1f1e5990f87cad7659b292fed7dc0407
Installation of Class::Accessor
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Data::Compare-1.27
Introduction to Data::Compare
The Data::Compare module compares two perl data structures.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/D/DC/DCANTRELL/Data-Compare-1.27.tar.gz
-
Download MD5 sum: 53e821a62222e151a5ccab3c8a8e416f
Data::Compare Dependencies
Required
Clone-0.46, File-Find-Rule-0.34
Installation of Data::Compare
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Data::Dump-1.25
Introduction to Data::Dump
Data::Dump provides pretty printing of data structures.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/G/GA/GARU/Data-Dump-1.25.tar.gz
-
Download MD5 sum: 9bd7131ef0441e1e0e001bf85e9fae31
Installation of Data::Dump
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Data::Uniqid-0.12
Introduction to Data::Uniqid
Data::Uniqid provides three simple routines for generating unique IDs.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/M/MW/MWX/Data-Uniqid-0.12.tar.gz
-
Download MD5 sum: 6bab3b5da09fedfdf60ce2629a7367db
Installation of Data::Uniqid
Although the final test fails and reports an Error, the test suite returns a status of 0. The error can safely be ignored.
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
DateTime::Calendar::Julian-0.107
Introduction to DateTime::Calendar::Julian
DateTime::Calendar::Julian implements the Julian Calendar.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/W/WY/WYANT/DateTime-Calendar-Julian-0.107.tar.gz
-
Download MD5 sum: abd775d1d82f0f45d4fd6214cf7bbed8
DateTime::Calendar::Julian Dependencies
Required
Installation of DateTime::Calendar::Julian
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
DateTime::Format::Builder-0.83
Introduction to DateTime::Format::Builder
DateTime::Format::Builder created DateTime parser classes and objects.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/D/DR/DROLSKY/DateTime-Format-Builder-0.83.tar.gz
-
Download MD5 sum: aa41917ca9ad69b3898728ce9c2fb477
DateTime::Format::Builder Dependencies
Required
DateTime-Format-Strptime-1.79 and Params-Validate-1.31
Installation of DateTime::Format::Builder
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Encode::EUCJPASCII-0.03
Introduction to Encode::EUCJPASCII
Encode::EUCJPASCII provides an eucJP-open (Extended Unix Code, Japanese) mapping.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/N/NE/NEZUMI/Encode-EUCJPASCII-0.03.tar.gz
-
Download MD5 sum: 5daa65f55b7c2050bb0713d9e95f239d
Installation of Encode::EUCJPASCII
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Encode::HanExtra-0.23
Introduction to Encode::HanExtra
The Encode::HanExtra module provides extra sets of Chinese Encodings which are not included in the core Encode module because of size issues.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/A/AU/AUDREYT/Encode-HanExtra-0.23.tar.gz
-
Download MD5 sum: e1d3bc32c1c8ee304235a06fbcd5d5a4
Installation of Encode::HanExtra
This module uses the ‘unsafe’ build and installation instructions (In perl-5.26.0 the use of the current directory in @INC was removed for security reasons and this module has not been updated) :
PERL_USE_UNSAFE_INC=1 perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Encode::JIS2K-0.03
Introduction to Encode::JIS2K
The Encode::JIS2K module provides JIS X 0212 (aka JIS 2000) Encodings.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/D/DA/DANKOGAI/Encode-JIS2K-0.03.tar.gz
-
Download MD5 sum: 60539471aa408a2b793cd45a6ce651db
Installation of Encode::JIS2K
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
File::Slurper-0.014
Introduction to File::Slurper
File::Slurper is a simple, sane and efficient module to slurp a file.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/L/LE/LEONT/File-Slurper-0.014.tar.gz
-
Download MD5 sum: d43bc5f069035eff3b6b7c418b4cedc4
File::Slurper Dependencies
Recommended (required for the test suite)
Installation of File::Slurper
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
File::Which-1.27
Introduction to File::Which
File::Which provides a portable implementation of the ‘which’ utility.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/P/PL/PLICEASE/File-Which-1.27.tar.gz
-
Download MD5 sum: d5c9154262b93398f0750ec364207639
Installation of File::Which
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
HTML::Parser-3.81
Introduction to HTML::Parser
The HTML::Parser distribution is a collection of modules that parse and extract information from HTML documents.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/O/OA/OALDERS/HTML-Parser-3.81.tar.gz
-
Download MD5 sum: b9f5dd3b14632f7a60541a2b61389c06
HTML::Parser Dependencies
Required
Required (runtime)
HTTP-Message-6.44 (its module HTTP::Headers is a run-time requirement for HTML::HeadParser from this distribution).
Installation of HTML::Parser
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
HTTP::Daemon-6.15
Introduction to HTTP::Daemon
Instances of the HTTP::Daemon class are HTTP/1.1 servers that listen on a socket for incoming requests. The HTTP::Daemon is a subclass of IO::Socket::INET, so you can perform socket operations directly on it too.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/O/OA/OALDERS/HTTP-Daemon-6.15.tar.gz
-
Download MD5 sum: 9047f5e656cb99a7dee29f3359535ded
HTTP::Daemon Dependencies
Required
Note
Makefile.PL and running the tests will complain that Module::Build::Tiny is missing, but that is only needed for Build.PL which is used if the system lacks a C compiler.
Installation of HTTP::Daemon
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
IO::Socket::SSL-2.081
Introduction to IO::Socket::SSL
IO::Socket::SSL makes using SSL/TLS much easier by wrapping the necessary functionality into the familiar IO::Socket interface and providing secure defaults whenever possible.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/S/SU/SULLR/IO-Socket-SSL-2.081.tar.gz
-
Download MD5 sum: 980e8e6816fadd86e875550b1d6ab0a2
IO::Socket::SSL Dependencies
Required
make-ca-1.12 and Net-SSLeay-1.92
Recommended
URI-5.17 (to access international domain names)
Installation of IO::Socket::SSL
This module uses a variant of the standard build and installation instructions:
yes | perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Command Explanations
yes: Perl will ask if you wish to run external tests, which will ‘fail soft’ if there are network problems. The default is ‘y’, this allows you to script the build.
IO::String-1.08
Introduction to IO::String
IO::String - Emulate file interface for in-core strings.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/G/GA/GAAS/IO-String-1.08.tar.gz
-
Download MD5 sum: 250e5424f290299fc3d6b5d1e9da3835
Installation of IO::String
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
IPC::Run3-0.048
Introduction to IPC::Run3
IPC::Run3 is used to run a subprocess with input/output redirection.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/R/RJ/RJBS/IPC-Run3-0.048.tar.gz
-
Download MD5 sum: 5a8cec571c51a118b265cf6e24e55761
Installation of IPC::Run3
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
JSON-4.10
Introduction to JSON
JSON provides a simple wrapper for JSON::XS-compatible modules with some additional features.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/I/IS/ISHIGAKI/JSON-4.10.tar.gz
-
Download MD5 sum: a709b32e194d0eb38f788cb49f422c4e
Installation of JSON
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Lingua::Translit-0.29
Introduction to Lingua::Translit
Lingua::Translit and its translit program transliterate text between writing systems.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/A/AL/ALINKE/Lingua-Translit-0.29.tar.gz
-
Download MD5 sum: 605a82f06b05fef4fc18bf069b1be511
Installation of Lingua::Translit
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Contents
Installed Programs: translit
Short Descriptions
translit transliterates text between writing systems using various standards.
LWP (libwww-perl-6.67)
Introduction to LWP - The World-wide Web library for Perl
The libwww-perl collection is a set of Perl modules which provides a simple and consistent application programming interface (API) to the World-Wide Web. The main focus of the library is to provide classes and functions that allow you to write WWW clients. The library also contains modules that are of more general use and even classes that help you implement simple HTTP servers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/O/OA/OALDERS/libwww-perl-6.67.tar.gz
-
Download MD5 sum: ff7621d0350da3052f24db9a74692672
libwww-perl Dependencies
Required
File-Listing-6.15, HTTP-Cookies-6.10, HTTP-Daemon-6.15, HTTP-Negotiate-6.01, HTML-Parser-3.81, Net-HTTP-6.22, Try-Tiny-0.31 and WWW-RobotRules-6.02
Recommended (required for the test suite)
Test-Fatal-0.017, Test-Needs-0.002010 and Test-RequiresInternet-0.05
Installation of libwww-perl
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
After installing this package, if you want HTTPS protocol support install LWP-Protocol-https-6.10.
Contents
Installed Programs: lwp-download, lwp-dump, lwp-mirror, lwp-request
Short Descriptions
lwp-download is a script to fetch a large file from the web.
lwp-dump is used to see what headers and content is returned for a URL.
lwp-mirror is a simple mirror utility.
lwp-request is a simple command line user agent.
List::AllUtils-0.19
Introduction to List::AllUtils
The List::Allutils module combines List::Util and List::MoreUtils in one bite-sized package.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/D/DR/DROLSKY/List-AllUtils-0.19.tar.gz
-
Download MD5 sum: 86469b1f6819ba181a8471eb932965f2
List::AllUtils Dependencies
Required
List-SomeUtils-0.59, List-UtilsBy-0.12
Installation of List::AllUtils
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
List::MoreUtils-0.430
Introduction to List::MoreUtils
List::MoreUtils provides the stuff missing in List::Util.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/R/RE/REHSACK/List-MoreUtils-0.430.tar.gz
-
Download MD5 sum: daccd6310021231b827dcc943ff1c6b7
List::MoreUtils Dependencies
Required
Exporter-Tiny-1.006000 and List-MoreUtils-XS-0.430
Installation of List::MoreUtils
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Log::Log4perl-1.57
Introduction to Log::Log4perl
Log::Log4perl provides a Log4j implementation for perl.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/E/ET/ETJ/Log-Log4perl-1.57.tar.gz
-
Download MD5 sum: acbe29cbaf03f4478a13579a275b0011
Installation of Log::Log4perl
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Contents
Installed Programs: l4p-templ
Short Descriptions
l4p-templ prints out the text of a template Log4perl configuration for starting a new Log4perl configuration file.
LWP::Protocol::https-6.10
Introduction to LWP::Protocol::https
LWP::Protocol::https provides https support for LWP::UserAgent (i.e. libwww-perl-6.67). Once the module is installed LWP is able to access sites using HTTP over SSL/TLS.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/O/OA/OALDERS/LWP-Protocol-https-6.10.tar.gz
-
Download MD5 sum: cf64e4bc57a9266ac4343cdf0808c5c8
Additional Download
- Required patch: https://www.linuxfromscratch.org/patches/blfs/11.3/LWP-Protocol-https-6.10-system_certs-2.patch
LWP::Protocol::https Dependencies
Required
IO-Socket-SSL-2.081, libwww-perl-6.67 and make-ca-1.12 with /etc/pki/tls/certs/ca-bundle.crt.
Installation of LWP::Protocol::https
First, apply a patch to use the system certificates (using the CPAN automated install will instead use Mozilla::CA which is usually not up to date and does not use local certificates).
patch -Np1 -i ../LWP-Protocol-https-6.10-system_certs-2.patch
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Module::Build-0.4232
Introduction to Module::Build
Module::Build allows perl modules to be built without a make command being present.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/L/LE/LEONT/Module-Build-0.4232.tar.gz
-
Download MD5 sum: 144885f1cbaf9420017bbed696ec6b83
Installation of Module::Build
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Note that this module can also be built using Build.PL
Contents
Installed Programs: config_data
Short Descriptions
config_data is used to query or change the configuration of perl modules.
Net::DNS-1.36
Introduction to Net::DNS
Net::DNS is a DNS resolver implemented in Perl. It can be used to perform nearly any type of DNS query from a Perl script.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/N/NL/NLNETLABS/Net-DNS-1.36.tar.gz
-
Download MD5 sum: b70b74481908d995f57569ab7cfe6432
Installation of Net::DNS
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Parse::RecDescent-1.967015
Introduction to Parse::RecDescent
Parse::RecDescent incrementally generates top-down recursive-descent text parsers from simple yacc-like grammar specifications.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/J/JT/JTBRAUN/Parse-RecDescent-1.967015.tar.gz
-
Download MD5 sum: 7a36d45d62a9b68603edcdbd276006cc
Installation of Parse::RecDescent
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Parse::Yapp-1.21
Introduction to Parse::Yapp
Parse::Yapp is a Perl extension for generating and using LALR parsers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/W/WB/WBRASWELL/Parse-Yapp-1.21.tar.gz
-
Download MD5 sum: 69584d5b0f0304bb2a23cffcd982c5de
Installation of Parse::Yapp
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Contents
Installed Programs: yapp
Short Descriptions
yapp is a frontend to the Parse::Yapp module, which lets you create a Perl OO parser from an input grammar file.
PerlIO::utf8_strict-0.010
Introduction to PerlIO::utf8_strict
PerlIO::utf8_strict provides a fast and correct UTF-8 PerlIO layer. Unlike perl’s default :utf8 layer it checks the input for correctness.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/L/LE/LEONT/PerlIO-utf8_strict-0.010.tar.gz
-
Download MD5 sum: d90ca967f66e05ad9221c79060868346
PerlIO::utf8_strict Dependencies
Recommended (required for the test suite)
Installation of PerlIO::utf8_strict
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Regexp::Common-2017060201
Introduction to Regexp::Common
Regexp::Common provides commonly requested regular expressions.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/A/AB/ABIGAIL/Regexp-Common-2017060201.tar.gz
-
Download MD5 sum: b1bb40759b84154990f36a160160fb94
Installation of Regexp::Common
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
SGMLSpm-1.1
Introduction to SGMLSpm
The SGMLSpm module is a Perl library used for parsing the output from James Clark’s SGMLS and NSGMLS parsers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/R/RA/RAAB/SGMLSpm-1.1.tar.gz
-
Download MD5 sum: 746c74ae969992cedb1a2879b4168090
Installation of SGMLSpm
Before beginning the build, issue the following command to prevent an error:
chmod -v 644 MYMETA.yml
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
After the package has been installed, run the following command as the root user:
ln -sv sgmlspl.pl /usr/bin/sgmlspl
Contents
Installed Programs: sgmlspl.pl, sgmlspl
Short Descriptions
sgmlspl.pl is an SGML processor.
sgmlspl is a symbolic link used during the install of DocBook-utils-0.6.14.
Sort::Key-1.33
Introduction to Sort::Key
Sort::Key provides a set of functions to sort lists of values by some calculated key value.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/S/SA/SALVA/Sort-Key-1.33.tar.gz
-
Download MD5 sum: a37ab0da0cfdc26e57b4c79e39f6d98f
Installation of Sort::Key
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::Command-0.11
Introduction to Test::Command
Test::Command tests the exit status, STDOUT, or STDERR, of an external command.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/D/DA/DANBOO/Test-Command-0.11.tar.gz
-
Download MD5 sum: 9ab83c4695961dbe92cd86efe08f0634
Installation of Test::Command
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::Differences-0.69
Introduction to Test::Differences
Test::Differences tests strings and data structures and shows the differences if they do not match.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/D/DC/DCANTRELL/Test-Differences-0.69.tar.gz
-
Download MD5 sum: 53aa66b927e7ffe612118bec05f8343d
Test::Differences Dependencies
Required
Recommended (required for the test suite)
Installation of Test::Differences
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Text::BibTeX-0.89
Introduction to Text::BibTeX
Text::BibTeX provides an interface to read and parse BibTeX files.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/A/AM/AMBS/Text-BibTeX-0.89.tar.gz
-
Download MD5 sum: 67fa6d9c03c659627d9fd58bb380c1fe
Text::BibTeX Dependencies
Required
Config-AutoConf-0.320, ExtUtils-LibBuilder-0.08
Installation of Text::BibTeX
This module is built using Build.PL:
perl Build.PL &&
./Build &&
./Build test
Now, as the root user:
./Build install
Contents
Installed Programs: biblex, libparse, dumpnames
Installed Libraries: libtparse.so
Short Descriptions
biblex performs lexical analysis on a BibTeX file.
bibparse parses a series of BibTeX files with command line options to control the string post-processing behavior.
dumpnames parses a BibTeX file, splitting ‘author’ and ‘editor’ fields into lists of names, and then dumps everything to stdout.
libbtparse.so is a library for parsing and processing BibTeX data files.
Text::CSV-2.02
Introduction to Text::CSV
Text::CSV is a comma-separated values manipulator, using XS (eXternal Subroutine - for subroutines written in C or C++) or pure perl.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/I/IS/ISHIGAKI/Text-CSV-2.02.tar.gz
-
Download MD5 sum: b25b9c6bb45c128484393efe082a8791
Text::CSV Dependencies
Recommended
Text-CSV_XS-1.49 (required by biber-2.18)
Installation of Text::CSV
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Text::Roman-3.5
Introduction to Text::Roman
Text::Roman allows conversion between Roman and Arabic algorisms (number systems, e.g. MCMXLV and 1945).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/S/SY/SYP/Text-Roman-3.5.tar.gz
-
Download MD5 sum: 1f6b09c0cc1f4425b565ff787a39fd83
Installation of Text::Roman
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Unicode::Collate-1.31
Introduction to Unicode::Collate
Unicode::Collate provides a Unicode collation algorithm.
Note
This is a core module. If you are using perl-5.28.0 or later, its version is good enough for biber-2.18 and you do not need to reinstall this module.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/S/SA/SADAHIRO/Unicode-Collate-1.31.tar.gz
-
Download MD5 sum: ee4d960d057c5e5b02ebb49d0286db8f
Installation of Unicode::Collate
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Unicode::LineBreak-2019.001
Introduction to Unicode::LineBreak
Unicode::LineBreak provides a UAX #14 Unicode Line Breaking Algorithm.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/N/NE/NEZUMI/Unicode-LineBreak-2019.001.tar.gz
-
Download MD5 sum: 003d6da7a13700e069afed9238c864b9
Unicode::LineBreak Dependencies
Required
MIME-Charset-1.013.1, also Wget-1.21.3 (to download two files from unicode.org in the test suite)
Optional
libthai (to break Thai words into segments)
Installation of Unicode::LineBreak
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
URI-5.17
Introduction to URI
This module implements the URI class. Objects of this class represent “Uniform Resource Identifier references” as specified in RFC 2396 (and updated by RFC 2732). A Uniform Resource Identifier is a compact string of characters that identifies an abstract or physical resource. A Uniform Resource Identifier can be further classified as either a Uniform Resource Locator (URL) or a Uniform Resource Name (URN). The distinction between URL and URN does not matter to the URI class interface. A “URI-reference” is a URI that may have additional information attached in the form of a fragment identifier.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/O/OA/OALDERS/URI-5.17.tar.gz
-
Download MD5 sum: 63675c429cfb1df73d7d21a9302e1000
URI Dependencies
Recommended (required for the test suite)
Test-Fatal-0.017, Test-Needs-0.002010, and Test-Warnings-0.031
Optional
Installation of URI
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
XML::LibXML::Simple-1.01
Introduction to XML::LibXML::Simple
The XML::LibXML::Simple module is a rewrite of XML::Simple to use the XML::LibXML parser for XML structures,instead of the plain Perl or SAX parsers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/M/MA/MARKOV/XML-LibXML-Simple-1.01.tar.gz
-
Download MD5 sum: faad5ed26cd83998f6514be199c56c38
XML::LibXML::Simple Dependencies
Required
Installation of XML::LibXML::Simple
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
XML::LibXSLT-2.002001
Introduction to XML::LibXSLT
XML-LibXSLT provides an interface to libxslt-1.1.37
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/S/SH/SHLOMIF/XML-LibXSLT-2.002001.tar.gz
-
Download MD5 sum: b47ac3a69b58fa43386c4f39be5d7bd5
XML::LibXSLT Dependencies
Required
libxslt-1.1.37, XML-LibXML-2.0208
Installation of XML::LibXSLT
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
XML::Simple-2.25
Introduction to XML::Simple
XML::Simple provides an easy API to read and write XML (especially config files). It is deprecated and its use is discouraged.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/G/GR/GRANTM/XML-Simple-2.25.tar.gz
-
Download MD5 sum: bb841dce889a26c89a1c2739970e9fbc
XML::Simple Dependencies
Optional
XML-SAX-1.02 (for an alternative parser which will be used if available, otherwise XML::Parser which was installed in LFS will be used),
Installation of XML::Simple
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
XML::Writer-0.900
Introduction to XML::Writer
XML::Writer provides a Perl extension for writing XML documents.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.cpan.org/authors/id/J/JO/JOSEPHW/XML-Writer-0.900.tar.gz
-
Download MD5 sum: 2457214360cefda445742a608dd6195e
Installation of XML::Writer
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
CPAN automated install of perl modules
Automatic Installation of Perl Modules.
There is an alternate way of installing the modules using the cpan shell install command. The command automatically downloads the latest source from the CPAN archive for the module and any missing prerequisite modules listed by upstream. Then for each module it extracts it, runs the compilation, the tests and installs it.
You still need to install any non-perl dependencies before running the automated installation method. You may wish to clean out the build/ directory after installing, to free up the space. If any post-install actions such as creating a symlink are mentioned, you should also do those.
The first time you run cpan, you’ll be prompted to enter some information regarding download locations and methods. This information is retained in files located in ~/.cpan.
In particular, you may wish to configure it so that Sudo-1.9.13p1 is used for the installs, allowing you to build and test as a regular user. The following examples have not used that approach.
Start the cpan shell by issuing ‘cpan’ as the root user. Any module may now be installed from the cpan> prompt with the command:
install <Module::Name>
For additional commands and help, issue ‘help’ from the cpan> prompt.
Alternatively, for scripted or non-interactive installations, use the following syntax as the root user to install one or more modules:
cpan -i <Module1::Name> <Module2::Name>
Review the cpan.1 man page for additional parameters you can pass to cpan on the command line.
13.20 Perl Module Dependencies
Perl Modules which are only required by other modules
The modules on the previous page are referenced from other pages in BLFS, but these modules are only in the book as dependencies of those modules. If you use the CPAN install method, you do not need to read this page.
The BLFS editors pay much less attention to these modules, and the versions will not be regularly reviewed. In all cases, only the required or recommended dependencies are listed - there might be other modules which allow more tests to be run, but omitting them will still allow the tests to PASS.
Note
The links on this page (to metacpan.org) should go to “known good” versions, for which their dependencies are correct. If you wish to use a later version, please check the Changes file at https://metacpan.org - sometimes added dependencies are listed, other times not. Some of these modules have very frequent updates, often bringing different dependencies. The linked metacpan.org versions below were known to work with the the module versions in BLFS when last reviewed.
However, if you notice that the Changes file for a newer version than is in the current development book reports a fix for a security issue, please report this to either the blfs-dev or the blfs-support list.
Similarly, if you discover that an updated module on the previous page needs an extra dependency, please report this.
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/perl-modules
Algorithm::Diff-1.201
Introduction to Algorithm::Diff
Algorithm::Diff computes ‘intelligent’ differences between two files or lists.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/R/RJ/RJBS//Algorithm-Diff-1.201.tar.gz
-
Download MD5 sum: 2eaae910f5220261ee2bbdfc4a8df2c2
Installation of Algorithm::Diff
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Alien::Build-2.77
Introduction to Alien::Build
Alien::Build provides tools for building external (non-CPAN) dependencies for CPAN.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Build-2.77.tar.gz
-
Download MD5 sum: 65dab78e4dbde17fef13667d3be60ae0
Alien::Build Dependencies
Required
Capture-Tiny-0.48, File-Which-1.27, FFI-CheckLib-0.31 and File-chdir-0.1011
Installation of Alien::Build
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Alien::Build::Plugin::Download::GitLab-0.01
Introduction to Alien::Build::Plugin::Download::GitLab
Alien::Build::Plugin::Download::GitLab allows Alien::Build to download from GitLab (in practice, this does not download if the required library is already installed on the system).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Build-Plugin-Download-GitLab-0.01.tar.gz
-
Download MD5 sum: ad1d815262ad7dd98b0a9b35ba2f05ef
Alien::Build::Plugin::Download::GitLab Dependencies
Required
Installation of Alien::Build::Plugin::Download::GitLab
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Alien::Libxml2-0.19
Introduction to Alien::Libxml2
Alien::Libxml2 is designed to allow modules to install the C libxml2 library on your system. In BLFS, it uses pkg-config to find how to link to the installed libxml2-2.10.3.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.19.tar.gz
-
Download MD5 sum: 54ef82ddf7641279a72f216e405f9a5e
Alien::Libxml2 Dependencies
Required
Alien-Build-Plugin-Download-GitLab-0.01, libxml2-2.10.3, Path-Tiny-0.144
Recommended (required for the test suite)
Installation of Alien::Libxml2
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
B::COW-0.007
Introduction to B::COW
B::COW provides additional helpers for the B core module to check Copy On Write.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/B-COW-0.007.tar.gz
-
Download MD5 sum: 7afc46f19e6f906e2ba5769b21fca5ff
Installation of B::COW
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
B::Hooks::EndOfScope-0.26
Introduction to B::Hooks::EndOfScope
B::Hooks::EndOfScope allows you to execute code when perl finished compiling the surrounding scope.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/E/ET/ETHER/B-Hooks-EndOfScope-0.26.tar.gz
-
Download MD5 sum: 6e1a5334ccc7809aa7cc82dbfa1affc7
B::Hooks::EndOfScope Dependencies
Required
Module-Implementation-0.09, Sub-Exporter-Progressive-0.001013 and Variable-Magic-0.63
Recommended (required for the test suite)
Installation of B::Hooks::EndOfScope
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Business::ISBN::Data-20210112.006
Introduction to Business-ISBN-Data
Business-ISBN-Data is a data pack for Business::ISBN.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/B/BD/BDFOY/Business-ISBN-Data-20210112.006.tar.gz
-
Download MD5 sum: a3c6d1ff77eb33d63a35f1a1564530b8
Installation of Business-ISBN-Data
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Capture::Tiny-0.48
Introduction to Capture::Tiny
The Capture::Tiny module captures STDOUT and STDERR from Perl, XS (eXternal Subroutine, i.e. written in C or C++) or external programs.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.48.tar.gz
-
Download MD5 sum: f5d24083ad270f8326dd659dd83eeb54
Installation of Capture::Tiny
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Class::Data::Inheritable-0.09
Introduction to Class::Data::Inheritable
Class::Data::Inheritable is for creating accessor/mutators to class data. That is, if you want to store something about your class as a whole (instead of about a single object).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/R/RS/RSHERER/Class-Data-Inheritable-0.09.tar.gz
-
Download MD5 sum: bd25ecd6e5d528fbc3783edf1b8facef
Installation of Class::Data::Inheritable
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Class::Inspector-1.36
Introduction to Class::Inspector
Class::Inspector allows you to get information about a loaded class.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Class-Inspector-1.36.tar.gz
-
Download MD5 sum: 084c3aeec023639d21ecbaf7d4460b21
Installation of Class::Inspector
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Class::Singleton-1.6
Introduction to Class::Singleton
A Singleton describes an object class that can have only one instance in any system, such as a print spooler. This module implements a Singleton class from which other classes can be derived.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/S/SH/SHAY/Class-Singleton-1.6.tar.gz
-
Download MD5 sum: d9c84a7b8d1c490c38e88ed1f9faae47
Installation of Class::Singleton
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Class:Tiny-1.008
Introduction to Class:Tiny
Class:Tiny offers a minimalist class construction kit.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Class-Tiny-1.008.tar.gz
-
Download MD5 sum: e3ccfae5f64d443e7e1110be964d7202
Installation of Class:Tiny
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Clone-0.46
Introduction to Clone
Clone recursively copies perl datatypes.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/G/GA/GARU/Clone-0.46.tar.gz
-
Download MD5 sum: cafa8984a2c2e005e54b27dd1e3f0afe
Clone Dependencies
Recommended (required for the test suite)
Installation of Clone
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Config::AutoConf-0.320
Introduction to Config::AutoConf
The Config::AutoConf module implements some of the AutoConf macros (detecting a command, detecting a library, etc.) in pure perl.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/A/AM/AMBS/Config-AutoConf-0.320.tar.gz
-
Download MD5 sum: 71664b2864232e265179ac29298e0916
Config::AutoConf Dependencies
Required
Capture-Tiny-0.48, File-Slurper-0.014
Installation of Config::AutoConf
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
CPAN::Meta::Check-0.017
Introduction to CPAN::Meta::Check
CPAN::Meta::Check verifies if requirements described in a CPAN::Meta object are present.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/L/LE/LEONT/CPAN-Meta-Check-0.017.tar.gz
-
Download MD5 sum: e0117bc582058abed184f6d9b23c445e
Installation of CPAN::Meta::Check
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
DateTime-1.59
Introduction to DateTime
DateTime is a date and time object for perl.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-1.59.tar.gz
-
Download MD5 sum: d6d73ba9ff03e00c83610a995fadc481
DateTime Dependencies
Required
DateTime-Locale-1.37, DateTime-TimeZone-2.57
Recommended (required for the test suite)
CPAN-Meta-Check-0.017, Test-Fatal-0.017, Test-Warnings-0.031 and Test-Without-Module-0.21
Installation of DateTime
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
DateTime::Format::Strptime-1.79
Introduction to DateTime::Format::Strptime
DateTime::Format::Strptime implements most of strptime(3), i.e. it takes a string and a pattern and returns a DateTime object.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.79.tar.gz
-
Download MD5 sum: 441cfec62b0b8a1b4c05cbe5ef73fbf4
DateTime::Format::Strptime Dependencies
Required
Installation of DateTime::Format::Strptime
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
DateTime::Locale-1.37
Introduction to DateTime::Locale
DateTime::Locale provides localization support for DateTime-1.59.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-Locale-1.37.tar.gz
-
Download MD5 sum: 3b0ce0ebf768960fd5d08300557176e7
DateTime::Locale Dependencies
Required
Dist-CheckConflicts-0.11, File-ShareDir-1.118, namespace-autoclean-0.29 and Params-ValidationCompiler-0.31
Recommended (required for the test suite)
CPAN-Meta-Check-0.017, IPC-System-Simple-1.30 and Test-File-ShareDir-1.001002
Installation of DateTime::Locale
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
DateTime::TimeZone-2.57
Introduction to DateTime::TimeZone
This class is the base class for all time zone objects. A time zone is represented internally as a set of observances, each of which describes the offset from GMT for a given time period.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-TimeZone-2.57.tar.gz
-
Download MD5 sum: 1da2beb4ae09e225dd0057dc438a276d
DateTime::TimeZone Dependencies
Required
Class-Singleton-1.6, Module-Runtime-0.016, and Params-ValidationCompiler-0.31, also
Recommended (required for the test suite)
Both Test-Fatal-0.017 and Test-Requires-0.11, but only if a copy of DateTime-1.59 (for which this is a dependency) has already been installed
Installation of DateTime::TimeZone
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Devel::StackTrace-2.04
Introduction to Devel::StackTrace
Devel::StackTrace provides an object representing a stacvk trace.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Devel-StackTrace-2.04.tar.gz
-
Download MD5 sum: a5b09f7be7f2b10b525a9740676906d8
Installation of Devel::StackTrace
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Dist::CheckConflicts-0.11
Introduction to Dist::CheckConflicts
Dist::CheckConflicts declares version conflicts for a distribution, to support post-install updates of dependent distributions.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz
-
Download MD5 sum: c8725a92b9169708b0f63036812070f2
Dist::CheckConflicts Dependencies
Required
Recommended (required for the test suite)
Installation of Dist::CheckConflicts
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Encode::Locale-1.05
Introduction to Encode::Locale
Encode::Locale determines the locale encoding.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/G/GA/GAAS/Encode-Locale-1.05.tar.gz
-
Download MD5 sum: fcfdb8e4ee34bcf62aed429b4a23db27
Installation of Encode::Locale
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Eval::Closure-0.14
Introduction to Eval::Closure
Eval::Closure safely and cleanly creates closures via string eval.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DO/DOY/Eval-Closure-0.14.tar.gz
-
Download MD5 sum: ceeb1fc579ac9af981fa6b600538c285
Eval::Closure Dependencies
Recommended (required for the test suite)
Test-Fatal-0.017, Test-Requires-0.11
Installation of Eval::Closure
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Exception::Class-1.45
Introduction to Exception::Class
Exception::Class allows you to declare real exception classes in Perl.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Exception-Class-1.45.tar.gz
-
Download MD5 sum: 1e564d20b374a99fdf660ba3f36b0098
Exception::Class Dependencies
Required
Class-Data-Inheritable-0.09, Devel-StackTrace-2.04
Installation of Exception::Class
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Exporter::Tiny-1.006000
Introduction to Exporter::Tiny
Exporter::Tiny is an exporter with the features of Sub::Exporter but only core dependencies.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.006000.tar.gz
-
Download MD5 sum: 2d555e289eac6450052e8683c292cbf7
Installation of Exporter::Tiny
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
ExtUtils::LibBuilder-0.08
Introduction to ExtUtils::LibBuilder
ExtUtils::LibBuilder is a tool to build C libraries.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/A/AM/AMBS/ExtUtils-LibBuilder-0.08.tar.gz
-
Download MD5 sum: 8ffe9e9a3c2f916f40dc4f6aed237d33
ExtUtils::LibBuilder Dependencies
Required
Installation of ExtUtils::LibBuilder
This module is built using Build.PL:
perl Build.PL &&
./Build &&
./Build test
Now, as the root user:
./Build install
FFI::CheckLib-0.31
Introduction to FFI::CheckLib
FFI::CheckLib checks whether a particular dynamic library is available for FFI (Foreign Function Interface) to use.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/FFI-CheckLib-0.31.tar.gz
-
Download MD5 sum: ffc8e61bb686dd631bed3ddf102af41c
FFI::CheckLib Dependencies
Recommended (required for the test suite)
Capture-Tiny-0.48, Path-Tiny-0.144, Test2-Suite-0.000145
Installation of FFI::CheckLib
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
File::chdir-0.1011
Introduction to File::chdir
File::chdir provides a more sensible way to change directories.
Perl’s chdir() has the unfortunate problem of being very, very, very global. If any part of your program calls chdir() or if any library you use calls chdir(), it changes the current working directory for the whole program. File::chdir gives you an alternative, $CWD and @CWD.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/File-chdir-0.1011.tar.gz
-
Download MD5 sum: 932090f6c5f602301ae66c259de23ebb
Installation of File::chdir
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
File::Copy::Recursive-0.45
Introduction to File::Copy::Recursive
This module copies and moves directories recursively (or single files), to an optional depth and attempts to preserve each file or directory’s mode.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DM/DMUEY/File-Copy-Recursive-0.45.tar.gz
-
Download MD5 sum: e5eee1a3f8ae3aebbac063ea54870e54
File::Copy::Recursive Dependencies
Recommended (required for the test suite)
Path-Tiny-0.144, Test-Deep-1.204, Test-Fatal-0.017, Test-File-1.993 and Test-Warnings-0.031
Installation of File::Copy::Recursive
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
File::Find::Rule-0.34
Introduction to File::Find::Rule
File::Find::Rule is a friendlier interface to File::Find. It allows you to build rules which specify the desired files and directories.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/File-Find-Rule-0.34.tar.gz
-
Download MD5 sum: a7aa9ad4d8ee87b2a77b8e3722768712
File::Find::Rule Dependencies
Required
Number-Compare-0.03, Text-Glob-0.11
Installation of File::Find::Rule
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Contents
Installed Programs: findrule
Short Descriptions
findrule is a command line wrapper to File::Find::Rule.
File::Listing-6.15
Introduction to File::Listing
File::Listing parses a directory listing.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/File-Listing-6.15.tar.gz
-
Download MD5 sum: 8ba34641a6c5a2ec1b0bf7064f68c535
File::Listing Dependencies
Required
Installation of File::Listing
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
File::ShareDir-1.118
Introduction to File::ShareDir
File::ShareDir allows you to access data files which have been installed by File::ShareDir::Install.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/R/RE/REHSACK/File-ShareDir-1.118.tar.gz
-
Download MD5 sum: 0084f730f4e3d4d89703d92b3ea82f54
File::ShareDir Dependencies
Required
Class-Inspector-1.36, File-ShareDir-Install-0.14
Installation of File::ShareDir
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
File::ShareDir::Install-0.14
Introduction to File::ShareDir::Install
File::ShareDir::Install allows you to install read-only data files from a distribution.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/E/ET/ETHER/File-ShareDir-Install-0.14.tar.gz
-
Download MD5 sum: bac4d924f3d863b00648ab56ec0dcbdc
Installation of File::ShareDir::Install
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
HTML::Tagset-3.20
Introduction to HTML::Tagset
HTML::Tagset provides several data tables useful in parsing HTML.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz
-
Download MD5 sum: d2bfa18fe1904df7f683e96611e87437
Installation of HTML::Tagset
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
HTTP::Cookies-6.10
Introduction to HTTP::Cookies
HTTP::Cookies provides a class for objects that represent a “cookie jar” – that is, a database of all the HTTP cookies that a given LWP::UserAgent (from libwww-perl-6.67) object knows about.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Cookies-6.10.tar.gz
-
Download MD5 sum: b4d7804231b1dfd10999d42283e0cf06
HTTP::Cookies Dependencies
Required
Installation of HTTP::Cookies
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
HTTP::Date-6.05
Introduction to HTTP::Date
HTTP::Date provides functions to deal with the date formats used by the HTTP protocol and also with some other date formats.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Date-6.05.tar.gz
-
Download MD5 sum: 2ecbb3aedf6aef062605191813ca3027
HTTP::Date Dependencies
Recommended
TimeDate-2.33 (to allow it to recognize zones other than GMT and numeric)
Installation of HTTP::Date
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
HTTP::Message-6.44
Introduction to HTTP::Message
HTTP::Message provides a base class for HTTP style message objects.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Message-6.44.tar.gz
-
Download MD5 sum: 926a077669a7828c5ca39b5cf7735625
HTTP::Message Dependencies
Required
Clone-0.46, Encode-Locale-1.05, HTTP-Date-6.05, IO-HTML-1.004, LWP-MediaTypes-6.04 and URI-5.17
Recommended (required for the test suite)
Test-Needs-0.002010, Try-Tiny-0.31
Installation of HTTP::Message
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
HTTP::Negotiate-6.01
Introduction to HTTP::Negotiate
HTTP::Negotiate provides a complete implementation of the HTTP content negotiation algorithm.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz
-
Download MD5 sum: 1236195250e264d7436e7bb02031671b
HTTP::Negotiate Dependencies
Recommended (required for the test suite)
Installation of HTTP::Negotiate
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Importer-0.026
Introduction to Importer
Importer provides an alternative but compatible interface to modules that export symbols.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Importer-0.026.tar.gz
-
Download MD5 sum: 3f09930b82cadfe26d0ce2fb1338aa1b
Installation of Importer
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
IO::HTML-1.004
Introduction to IO::HTML
IO::HTML opens an HTML file with automatic character set detection.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/C/CJ/CJM/IO-HTML-1.004.tar.gz
-
Download MD5 sum: 04bbe363686fd19bfb4cc0ed775e3d03
Installation of IO::HTML
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
IPC::System::Simple-1.30
Introduction to IPC::System::Simple
IPC::System::Simple takes the hard work out of calling external commands and producing detailed diagnostics.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/J/JK/JKEENAN/IPC-System-Simple-1.30.tar.gz
-
Download MD5 sum: e68341fd958fd013b3521d909904f675
Installation of IPC::System::Simple
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
List::MoreUtils::XS-0.430
Introduction to List::MoreUtils::XS
List::MoreUtils::XS is a compiled backend for List::MoreUtils
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/R/RE/REHSACK/List-MoreUtils-XS-0.430.tar.gz
-
Download MD5 sum: e77113e55b046906aecfb4ddb4f0c662
Installation of List::MoreUtils::XS
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
List::SomeUtils-0.59
Introduction to List::SomeUtils
List::SomeUtils provides the stuff missing in List::Util.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/List-SomeUtils-0.59.tar.gz
-
Download MD5 sum: 333b4adb2907deff2be8da5899881453
List::SomeUtils Dependencies
Required
Module-Implementation-0.09, List-SomeUtils-XS-0.58
Installation of List::SomeUtils
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
List::SomeUtils::XS-0.58
Introduction to List::SomeUtils::XS
List::SomeUtils::XS is a (faster) XS (eXternal Subroutine) implementation for List::SomeUtils.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/List-SomeUtils-XS-0.58.tar.gz
-
Download MD5 sum: 396eabe83a75fcb8d7542d95812469d1
List::SomeUtils::XS Dependencies
Recommended (required for the test suite)
Test-LeakTrace-0.17, Test-Warnings-0.031
Installation of List::SomeUtils::XS
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
List::UtilsBy-0.12
Introduction to List::UtilsBy
List::UtilsBy provides a number of higher-order list utility functions.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/P/PE/PEVANS/List-UtilsBy-0.12.tar.gz
-
Download MD5 sum: 54a8c7092bc02f29ea6c5ae215eea385
Installation of List::UtilsBy
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
LWP::MediaTypes-6.04
Introduction to LWP::MediaTypes
LWP::MediaTypes guesses the media type (i.e. the MIME Type) for a file or URL.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/O/OA/OALDERS/LWP-MediaTypes-6.04.tar.gz
-
Download MD5 sum: 84b799a90c0d2ce52897a7cb4c0478d0
LWP::MediaTypes Dependencies
Recommended (required for the test suite)
Installation of LWP::MediaTypes
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
MIME::Charset-1.013.1
Introduction to MIME::Charset
MIME::Charset provides information about character sets used for MIME messages o nthe internet, such as their encodings.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/N/NE/NEZUMI/MIME-Charset-1.013.1.tar.gz
-
Download MD5 sum: b1932cfc806c8deb1b4a20d6afbfa8ac
MIME::Charset Dependencies
Recommended
Encode-EUCJPASCII-0.03, Encode-HanExtra-0.23 and Encode-JIS2K-0.03 (because all are required by biber-2.18)
Installation of MIME::Charset
This module uses a variant of the standard build and installation instructions:
yes '' | perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Command Explanations
| **yes | **: Perl will ask if you wish to install a further module for handling legacy Japanese encodings, and another which it would use for translating documentation to Japanese. The default option is ‘n’, using ‘yes’ allows you to script the build. |
Module::Implementation-0.09
Introduction to Module::Implementation
Module::Implementation loads one of several alternate underlying implementations of a module (e.g. eXternal Subroutine or pure Perl, or an implementation for a given OS).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Module-Implementation-0.09.tar.gz
-
Download MD5 sum: 52e3fe0ca6b1eff0488d59b7aacc0667
Module::Implementation Dependencies
Required
Module-Runtime-0.016, Try-Tiny-0.31
Recommended (required for the test suite)
Test-Fatal-0.017, Test-Requires-0.11
Installation of Module::Implementation
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Module::Pluggable-5.2
Introduction to Module::Pluggable
Module::Pluggable provides a way of having ‘plugins’ for your module.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/S/SI/SIMONW/Module-Pluggable-5.2.tar.gz
-
Download MD5 sum: 87ce2971662efd0b69a81bb4dc9ea76c
Installation of Module::Pluggable
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Module::Runtime-0.016
Introduction to Module::Runtime
Module::Runtime provides functions to deal with runtime handling of Perl modules.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz
-
Download MD5 sum: d3d47222fa2e3dfcb4526f6cc8437b20
Installation of Module::Runtime
Although Module::Build is still listed as a prerequisite, it is no-longer necessary on systems with a working make.
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
MRO::Compat-0.15
Introduction to MRO::Compat
The “mro” namespace provides several utilities for dealing with method resolution order and method caching in general in Perl 5.9.5 and higher. This module provides those interfaces for earlier versions of Perl.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/H/HA/HAARG/MRO-Compat-0.15.tar.gz
-
Download MD5 sum: f644dafe901214cedfa7ed8b43b56df1
Installation of MRO::Compat
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
namespace::autoclean-0.29
Introduction to namespace::autoclean
This module is very similar to namespace::clean, except it will clean all imported functions, no matter if you imported them before or after you used the pragma. It will also not touch anything that looks like a method.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/E/ET/ETHER/namespace-autoclean-0.29.tar.gz
-
Download MD5 sum: 39b38c776cd1f0ee03cc70781a2f2798
namespace::autoclean Dependencies
Required
namespace-clean-0.27, Sub-Identify-0.14
Recommended (required for the test suite)
Installation of namespace::autoclean
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
namespace::clean-0.27
Introduction to namespace::clean
This package allows you to keep imports and functions out of your namespace.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI/namespace-clean-0.27.tar.gz
-
Download MD5 sum: cba97f39ef7e594bd8489b4fdcddb662
namespace::clean Dependencies
Required
B-Hooks-EndOfScope-0.26, Package-Stash-0.40
Installation of namespace::clean
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Net::HTTP-6.22
Introduction to Net::HTTP
The Net::HTTP class is a low level HTTP client. An instance of the class represents a connection to an HTTP server.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/O/OA/OALDERS/Net-HTTP-6.22.tar.gz
-
Download MD5 sum: 1d46019fb8559070a5ec1d838b690657
Net::HTTP Dependencies
Required
Installation of Net::HTTP
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Net::SSLeay-1.92
Introduction to Net::SSLeay
Net::SSLeay is a PERL extension for using OpenSSL.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/C/CH/CHRISN/Net-SSLeay-1.92.tar.gz
-
Download MD5 sum: 9e928bc6f430a874a1a2185f84a0ae88
Installation of Net::SSLeay
Note
If enabling the external tests, one test in t/external/15_altnames.t may fail.
This module uses a variant of the standard build and installation instructions:
yes '' | perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Command Explanations
yes ‘‘: Perl will ask if you wish to run external tests, which will fail if you do not have network connectivity. The default is ‘n’, specifying this allows you to script the build.
Number::Compare-0.03
Introduction to Number::Compare
Number::Compare compiles a simple comparison to an anonymous subroutine, which you can call with a value to be tested against. It understands IEC standard magnitudes (k, ki, m, mi, g, gi).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/Number-Compare-0.03.tar.gz
-
Download MD5 sum: ded4085a8fc96328742785574ca65208
Installation of Number::Compare
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Package::Stash-0.40
Introduction to Package::Stash
Manipulating stashes (Perl’s symbol tables) is occasionally necessary, but incredibly messy, and easy to get wrong. This module hides all of that behind a simple API.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/E/ET/ETHER/Package-Stash-0.40.tar.gz
-
Download MD5 sum: 7a2922941cc2aad6a52642e4fb13d07b
Package::Stash Dependencies
Required
Dist-CheckConflicts-0.11, Module-Implementation-0.09
Recommended (required for the test suite)
CPAN-Meta-Check-0.017, Test-Fatal-0.017, Test-Needs-0.002010
Installation of Package::Stash
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Params::Validate-1.31
Introduction to Params::Validate
Params::Validate allows you to validate method or function call parameters to an arbitrary level of specificity.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Params-Validate-1.31.tar.gz
-
Download MD5 sum: ef5f57387c2c9032b59fb23023cf5b25
Params::Validate Dependencies
Required
Module-Build-0.4232, Module-Implementation-0.09
Recommended (required for the test suite)
Test-Fatal-0.017, Test-Requires-0.11
Installation of Params::Validate
This module is built using Build.PL:
perl Build.PL &&
./Build &&
./Build test
Now, as the root user:
./Build install
Params::ValidationCompiler-0.31
Introduction to Params::ValidationCompiler
Params::ValidationCompiler builds an optimized subroutine parameter validator.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Params-ValidationCompiler-0.31.tar.gz
-
Download MD5 sum: 15528055f3f53c8cfebbee1f928dec07
Params::ValidationCompiler Dependencies
Required
Exception-Class-1.45, Specio-0.48
Recommended (required for the test suite)
Test-Without-Module-0.21, Test2-Plugin-NoWarnings-0.09
Installation of Params::ValidationCompiler
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Path::Tiny-0.144
Introduction to Path::Tiny
Path::Tiny provides a small fast utility for working with file paths.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.144.tar.gz
-
Download MD5 sum: 7b2fc4f5edfd29b88d2cc3b96830e7d1
Installation of Path::Tiny
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Role::Tiny-2.002004
Introduction to Role::Tiny
Role::Tiny is a minimalist role composition tool.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/H/HA/HAARG/Role-Tiny-2.002004.tar.gz
-
Download MD5 sum: 9ee45591befa3d0b1094ac75d282b6ba
Installation of Role::Tiny
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Scope::Guard-0.21
Introduction to Scope::Guard
Scope::Guard provides a convenient way to perform cleanup or other forms of resource management at the end of a scope.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/C/CH/CHOCOLATE/Scope-Guard-0.21.tar.gz
-
Download MD5 sum: be57b915d23ddac7677ef2ad9e52b92a
Installation of Scope::Guard
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Specio-0.48
Introduction to Specio
Specio provides classes for representing type constraints and coercion, along with syntax sugar for declaring them.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Specio-0.48.tar.gz
-
Download MD5 sum: 96cf1ae4e2e205986e03672071116b16
Specio Dependencies
Required
Devel-StackTrace-2.04, Eval-Closure-0.14, Module-Runtime-0.016, Role-Tiny-2.002004, Sub-Quote-2.006008 and Try-Tiny-0.31
Recommended (required for the test suite)
MRO-Compat-0.15, Test-Fatal-0.017 and Test-Needs-0.002010
Optional
namespace-autoclean-0.29 (for the test suite)
Installation of Specio
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Sub::Exporter::Progressive-0.001013
Introduction to Sub::Exporter::Progressive
Sub::Exporter::Progressive is a wrapper for Sub::Exporter.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/F/FR/FREW/Sub-Exporter-Progressive-0.001013.tar.gz
-
Download MD5 sum: 72cf6acdd2a0a8b105821a4db98e4ebe
Installation of Sub::Exporter::Progressive
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Sub::Identify-0.14
Introduction to Sub::Identify
Sub::Identify allows you to retrieve the real name of code references. It is encouraged to migrate to Sub::Util (a core module) when possible.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/R/RG/RGARCIA/Sub-Identify-0.14.tar.gz
-
Download MD5 sum: 014f19e72698b6a2cbcb54adc9691825
Installation of Sub::Identify
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Sub::Info-0.002
Introduction to Sub::Info
Sub::Info is a tool for inspecting subroutines.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Sub-Info-0.002.tar.gz
-
Download MD5 sum: 335345b534fc0539c894050f7814cbda
Sub::Info Dependencies
Required
Installation of Sub::Info
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Sub::Quote-2.006008
Introduction to Sub::Quote
Sub::Quote provides ways to generate subroutines from strings.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/H/HA/HAARG/Sub-Quote-2.006008.tar.gz
-
Download MD5 sum: f19c60039ba87f69f7f9357fc0a03e07
Installation of Sub::Quote
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Sub::Uplevel-0.2800
Introduction to Sub::Uplevel
Sub::Uplevel allows you to fool a caller that it is running in a higher stack frame.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz
-
Download MD5 sum: 6c6a174861fd160e8d5871a86df00baf
Installation of Sub::Uplevel
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
SUPER-1.20190531
Introduction to SUPER
SUPER provides easier methods to dispatch control to the superclass (when subclassing a class).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/C/CH/CHROMATIC/SUPER-1.20190531.tar.gz
-
Download MD5 sum: defb371225f8ef1581d8c8fcc6077b46
SUPER Dependencies
Recommended (required for the test suite)
Installation of SUPER
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Term::Table-0.016
Introduction to Term::Table
Term::Table formats a header and rows into a table. This is used by some failing tests to provide diagnostics about what has goen wrong.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Term-Table-0.016.tar.gz
-
Download MD5 sum: ef0c76824c57eaa7796558060067bb49
Term::Table Dependencies
Required
Installation of Term::Table
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::Deep-1.204
Introduction to Test::Deep
Test::Deep gives you very flexible ways to check that the result you got is the result you were expecting.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Test-Deep-1.204.tar.gz
-
Download MD5 sum: fcff296434cd92538ae9de9d1744705f
Installation of Test::Deep
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::Exception-0.43
Introduction to Test::Exception
Test::Exception provides convenience methods for testing exception based code.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Test-Exception-0.43.tar.gz
-
Download MD5 sum: 572d355026fb0b87fc2b8c64b83cada0
Test::Exception Dependencies
Required
Installation of Test::Exception
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::Fatal-0.017
Introduction to Test::Fatal
The Test::Fatal module provides simple helpers for testing code which throws exceptions.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Test-Fatal-0.017.tar.gz
-
Download MD5 sum: 2f160c31e1848536e3b82112d573bb76
Test::Fatal Dependencies
Required
Installation of Test::Fatal
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::File-1.993
Introduction to Test::File
Test::File provides a collection of test utilities for file attributes.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/B/BD/BDFOY/Test-File-1.993.tar.gz
-
Download MD5 sum: dccb988191187261ce3a2a10af939625
Test::File Dependencies
Recommended (required for the test suite)
Installation of Test::File
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::File::ShareDir-1.001002
Introduction to Test::File::ShareDir
Test::File::ShareDir is some low level plumbing to enable a distribution to perform tests while consuming its own share directories in a manner similar to how they will be once installed. This allows File-ShareDir-1.118 to see the latest version of content instead of whatever is installed on the target system where you are testing.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/K/KE/KENTNL/Test-File-ShareDir-1.001002.tar.gz
-
Download MD5 sum: ec31466aa44c1cd56c6cb51d7ec3a5de
Test::File::ShareDir Dependencies
Required
Class-Tiny-1.008, File-Copy-Recursive-0.45, File-ShareDir-1.118, Path-Tiny-0.144 and Scope-Guard-0.21
Recommended (required for the test suite)
Installation of Test::File::ShareDir
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::LeakTrace-0.17
Introduction to Test::LeakTrace
Test::LeakTrace traces memory leaks.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/L/LE/LEEJO/Test-LeakTrace-0.17.tar.gz
-
Download MD5 sum: afdb2cc6be0807cb635fb601a004d522
Installation of Test::LeakTrace
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::MockModule-v0.176.0
Introduction to Test::MockModule
Test::MockModule lets you temporarily redefine subroutines in other packages for the purposes of unit testing.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/G/GF/GFRANKS/Test-MockModule-v0.176.0.tar.gz
-
Download MD5 sum: f36bd9aee0349430c434dc1d06b03589
Test::MockModule Dependencies
Required
Module-Build-0.4232, SUPER-1.20190531
Recommended (required for the test suite)
Installation of Test::MockModule
This module is built using Build.PL:
perl Build.PL &&
./Build &&
./Build test
Now, as the root user:
./Build install
Test::Needs-0.002010
Introduction to Test::Needs
Test::Needs skips tests if a requested module is not present.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/H/HA/HAARG/Test-Needs-0.002010.tar.gz
-
Download MD5 sum: 2b3d10946001561297624e7668f09c26
Installation of Test::Needs
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::Requires-0.11
Introduction to Test::Requires
The Test::Requires module checks if another (optional) module can be loaded, and if not it skips all the current tests.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM/Test-Requires-0.11.tar.gz
-
Download MD5 sum: 999d6c4e46ea7baae7a5113292e02ed8
Installation of Test::Requires
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::RequiresInternet-0.05
Introduction to Test::RequiresInternet
Test::RequiresInternet is intended to easily test network connectivity before functional tests begin to non-local Internet resources.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/M/MA/MALLEN/Test-RequiresInternet-0.05.tar.gz
-
Download MD5 sum: 0ba9f1cff4cf90ed2618c2eddfd525d8
Installation of Test::RequiresInternet
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::utf8-1.02
Introduction to Test::utf8
Test::utf8 is a collection of tests useful for dealing with utf8 strings in Perl.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/M/MA/MARKF/Test-utf8-1.02.tar.gz
-
Download MD5 sum: 71d187539c76ac1ed9a0242ff208796d
Installation of Test::utf8
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::Warnings-0.031
Introduction to Test::Warnings
Test::Warnings tests for warnings and the lack of them.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/E/ET/ETHER/Test-Warnings-0.031.tar.gz
-
Download MD5 sum: f608f7011b0bb8f27d3a27e646a52f60
Installation of Test::Warnings
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test::Without::Module-0.21
Introduction to Test::Without::Module
This module allows you to deliberately hide modules from a program even though they are installed. This is mostly useful for testing modules that have a fallback when a certain dependency module is not installed.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/C/CO/CORION/Test-Without-Module-0.21.tar.gz
-
Download MD5 sum: d6fdc73b60d197a8098fd41a81c92630
Installation of Test::Without::Module
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test2::Plugin::NoWarnings-0.09
Introduction to Test2::Plugin::NoWarnings
Test2::Plugin::NoWarnings causes tests to fail if there are any warnings while they run.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-0.09.tar.gz
-
Download MD5 sum: efcddec6cda66260ae14206e28f7feeb
Test2::Plugin::NoWarnings Dependencies
Required
Recommended (required for the test suite)
Installation of Test2::Plugin::NoWarnings
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Test2::Suite-0.000145
Introduction to Test2::Suite
Test2::Suite is a distribution with a rich set of tools built upon the Test2 framework.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Test2-Suite-0.000145.tar.gz
-
Download MD5 sum: 5fcc87c264a1e93fe7cb0879a0abae15
Test2::Suite Dependencies
Required
Module-Pluggable-5.2, Scope-Guard-0.21, Sub-Info-0.002 and Term-Table-0.016
Installation of Test2::Suite
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Text::CSV_XS-1.49
Introduction to Text::CSV_XS
Text::CSV_XS provides facilities for the composition and decomposition of comma-separated values.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/H/HM/HMBRAND/Text-CSV_XS-1.49.tgz
-
Download MD5 sum: 479d31e37a1282966d3bd47506fb2dcd
Installation of Text::CSV_XS
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Text::Diff-1.45
Introduction to Text::Diff
Text::Diff performs diffs on files and record sets.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/N/NE/NEILB/Text-Diff-1.45.tar.gz
-
Download MD5 sum: edf57b6189f7651a6be454062a4e6d9c
Text::Diff Dependencies
Required
Installation of Text::Diff
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Text::Glob-0.11
Introduction to Text::Glob
Text::Glob implements glob(3) style matching that can be used to match against text, rather than fetching names from a filesystem.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/Text-Glob-0.11.tar.gz
-
Download MD5 sum: d001559c504a2625dd117bd1558f07f7
Installation of Text::Glob
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Tie::Cycle-1.227
Introduction to Tie::Cycle
You use Tie::Cycle to go through a list over and over again. Once you get to the end of the list, you go back to the beginning. You don’t have to worry about any of this since the magic of tie does that for you.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/B/BD/BDFOY/Tie-Cycle-1.227.tar.gz
-
Download MD5 sum: 3d5004bd8e6f41345091a697673879b7
Installation of Tie::Cycle
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
TimeDate-2.33
Introduction to TimeDate
TimeDate provides miscellaneous timezone manipulation routines.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/TimeDate-2.33.tar.gz
-
Download MD5 sum: 5e5afe22c8d417417283d1f7f4572a57
Installation of TimeDate
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Try::Tiny-0.31
Introduction to Try::Tiny
Try::Tiny provides try and catch to expect and handle exceptional conditions, avoiding quirks in Perl and common mistakes.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/E/ET/ETHER/Try-Tiny-0.31.tar.gz
-
Download MD5 sum: 993a29ee8a03c9bd9c2f7c53d1082a03
Try::Tiny Dependencies
Optional (can be used by the test suite)
Installation of Try::Tiny
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Variable::Magic-0.63
Introduction to Variable::Magic
Magic is Perl’s way of enhancing variables. With this module, you can add your own magic to any variable.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/V/VP/VPIT/Variable-Magic-0.63.tar.gz
-
Download MD5 sum: ceb039e74253232bc5bdfb391ed5d6f5
Installation of Variable::Magic
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
WWW::RobotRules-6.02
Introduction to WWW::RobotRules
WWW::RobotRules parses robots.txt files, creating a WWW::RobotRules object with methods to check if access to a given URL is prohibited.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/G/GA/GAAS/WWW-RobotRules-6.02.tar.gz
-
Download MD5 sum: b7186e8b8b3701e70c22abf430742403
WWW::RobotRules Dependencies
Required (runtime)
libwww-perl-6.67 (install this module first and install that later)
Installation of WWW::RobotRules
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
XML::LibXML-2.0208
Introduction to XML::LibXML
XML::LibXML is a perl binding for libxml2-2.10.3.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0208.tar.gz
-
Download MD5 sum: 4cda143b948e1550c7fba4a1133cc6ad
XML::LibXML Dependencies
Required
Alien-Libxml2-0.19, XML-SAX-1.02
Installation of XML::LibXML
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
XML::NamespaceSupport-1.12
Introduction to XML::NamespaceSupport
XML::NamespaceSupport offers a simple way to process namespaced XML names from within any application that may need them.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12.tar.gz
-
Download MD5 sum: a8916c6d095bcf073e1108af02e78c97
Installation of XML::NamespaceSupport
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
XML::SAX-1.02
Introduction to XML::SAX
XML::SAX is a SAX parser access API for Perl. It includes classes and APIs required for implementing SAX drivers, along with a factory class for returning any SAX parser installed on the user’s system.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/G/GR/GRANTM/XML-SAX-1.02.tar.gz
-
Download MD5 sum: b62e3754523695c7f5bbcafa3676a38d
XML::SAX Dependencies
Required
libxml2-2.10.3, XML-NamespaceSupport-1.12 and XML-SAX-Base-1.09
Installation of XML::SAX
This module uses a variant of the standard build and installation instructions:
yes | perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
Command Explanations
yes: Perl will ask if you want it to alter ParserDetails.ini and then wait for a response. The default is ‘y’. Using ‘yes’ allows you to script this.
XML::SAX::Base-1.09
Introduction to XML::SAX::Base
This module has a very simple task - to be a base class for PerlSAX drivers and filters.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cpan.metacpan.org/authors/id/G/GR/GRANTM/XML-SAX-Base-1.09.tar.gz
-
Download MD5 sum: ec347a14065dd7aec7d9fb181b2d7946
Installation of XML::SAX-Base
This module uses the standard build and installation instructions:
perl Makefile.PL &&
make &&
make test
Now, as the root user:
make install
13.21 PHP-8.2.3
Introduction to PHP
PHP is the PHP Hypertext Preprocessor. Primarily used in dynamic web sites, it allows for programming code to be directly embedded into the HTML markup. It is also useful as a general purpose scripting language.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.php.net/distributions/php-8.2.3.tar.xz
-
Download MD5 sum: cb768cf744184e64d48b15305c437336
-
Download size: 11 MB
-
Estimated disk space required: 673 MB (with documentation)
-
Estimated build time: 1.7 SBU (with parallelism=4; add 1.6 SBU for tests)
Additional Downloads
-
Optional pre-built documentation (single file html): https://www.php.net/distributions/manual/php_manual_en.html.gz
-
Optional pre-built documentation (chunked html): https://www.php.net/distributions/manual/php_manual_en.tar.gz. Note that the documentation can be found in languages other than English at https://www.php.net/download-docs.php
PHP Dependencies
Recommended
Apache-2.4.55 and libxml2-2.10.3
Optional System Utilities and Libraries
Aspell-0.60.8, enchant-2.3.3, libxslt-1.1.37, an MTA (that provides a sendmail command), pcre2-10.42, Pth-2.0.7, AppArmor, Dmalloc, Net-SNMP, oniguruma, OSSP mm, re2c, and XMLRPC-EPI
Optional Graphics Utilities and Libraries
FreeType-2.13.0, libexif-0.6.24, libjpeg-turbo-2.1.5.1, libpng-1.6.39, libtiff-4.5.0, libwebp-1.3.0, a graphical environment, FDF Toolkit, GD, and t1lib
Optional Web Utilities
cURL-7.88.1, tidy-html5-5.8.0, Caudium, Hyperwave, Roxen WebServer, and WDDX
Optional Data Management Utilities and Libraries
Berkeley DB-5.3.28 (Note that PHP does not officially support versions above 5.3), libiodbc-3.52.15, lmdb-0.9.29, MariaDB-10.6.12 or MySQL, OpenLDAP-2.6.4, PostgreSQL-15.2, SQLite-3.40.1, unixODBC-2.3.11, Adabas, Birdstep, cdb, DBMaker, Empress, FrontBase, IBM DB2, Mini SQL, Monetra, and QDBM
PHP also provides support for many commercial database tools such as Oracle, SAP and ODBC Router.
Optional Security/Encryption Utilities and Libraries
Cyrus SASL-2.1.28, MIT Kerberos V5-1.20.1, libmcrypt, and mhash
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/php
Installation of PHP
You can use PHP for server-side scripting, command-line scripting or client-side GUI applications. This book provides instructions for setting up PHP for server-side scripting as it is the most common form.
Note
PHP has many more configure options that will enable support for various things. You can use ./configure –help to see a full list of the available options. Also, use of the PHP web site is highly recommended, as their online docs are very good. An example of a configure command that utilizes many of the most common dependencies can be found at https://anduin.linuxfromscratch.org/BLFS/files/php_configure.txt.
If, for whatever reason, you don’t have libxml2-2.10.3 installed, you need to add --disable-libxml to the configure command in the instructions below. Note that this will prevent the pear command from being built.
Install PHP by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--datadir=/usr/share/php \
--mandir=/usr/share/man \
--enable-fpm \
--without-pear \
--with-fpm-user=apache \
--with-fpm-group=apache \
--with-fpm-systemd \
--with-config-file-path=/etc \
--with-zlib \
--enable-bcmath \
--with-bz2 \
--enable-calendar \
--enable-dba=shared \
--with-gdbm \
--with-gmp \
--enable-ftp \
--with-gettext \
--enable-mbstring \
--disable-mbregex \
--with-readline &&
make
| To test the results, issue: make test. Several tests (out of over 16000) may fail, in which case you are asked whether you want to send the report to the PHP developers. If you want to automate the test, you may prefix the command with **yes “n” | ** . |
Now, as the root user:
make install &&
install -v -m644 php.ini-production /etc/php.ini &&
install -v -m755 -d /usr/share/doc/php-8.2.3 &&
install -v -m644 CODING_STANDARDS* EXTENSIONS NEWS README* UPGRADING* \
/usr/share/doc/php-8.2.3
The default configuration files for the fastCGI process manager are installed only if they do not already exist on the system. If this is the first installation, they should be renamed, as the root user:
if [ -f /etc/php-fpm.conf.default ]; then
mv -v /etc/php-fpm.conf{.default,} &&
mv -v /etc/php-fpm.d/www.conf{.default,}
fi
The pre-built HTML documentation is packaged in two forms: a tarball containing many individual files, useful for quick loading into your browser, and one large individual file, which is useful for using the search utility of your browser. If you downloaded either, or both, of the documentation files, issue the following commands as the root user to install them (note these instructions assume English docs, modify the tarball names below if necessary).
For the “Single HTML” file:
install -v -m644 ../php_manual_en.html.gz \
/usr/share/doc/php-8.2.3 &&
gunzip -v /usr/share/doc/php-8.2.3/php_manual_en.html.gz
For the “Many HTML files” tarball:
tar -xvf ../php_manual_en.tar.gz \
-C /usr/share/doc/php-8.2.3 --no-same-owner
The bundled pear is not installed because of a bug which might pollute the filesystem with several hidden files and directories. If pear is needed, execute the following commands to install it:
wget https://pear.php.net/go-pear.phar
php ./go-pear.phar
Command Explanations
--datadir=/usr/share/php: This works around a bug in the build machinery, which installs some data to a wrong location.
--enable-fpm: This parameter allows building the fastCGI Process Manager.
--with-fpm-systemd: This parameter allows the FastCGI Process Manager to integrate with systemd.
--without-pear: This switch disables installation of bundled pear software.
--with-config-file-path=/etc: This parameter makes PHP look for the php.ini configuration file in /etc.
--with-zlib: This parameter adds support for Zlib compression.
--enable-bcmath: Enables bc style precision math functions.
--with-bz2: Adds support for Bzip2 compression functions.
--enable-calendar: This parameter provides support for calendar conversion.
--enable-dba=shared: This parameter enables support for database (dbm-style) abstraction layer functions.
--enable-ftp: This parameter enables FTP functions.
--with-gettext: Enables functions that use Gettext text translation.
--enable-mbstring: This parameter enables multibyte string support.
--with-readline: This parameter enables command line Readline support.
--disable-libxml: This option allows building PHP without libxml2 installed.
--with-apxs2: Instead of building the fastCGI process manager, it is possible to build an apache module. This has some performance penalty for heavy loaded servers, but may be easier to set up. This switch is incompatible with the --enable-fpm and --with-fpm-... switches.
--with-mysqli=shared: This option includes MySQLi support.
--with-mysql-sock=/run/mysqld/mysqld.sock: Location of the MySQL unix socket pointer.
--with-pdo-mysql=shared: This option includes PDO: MySQL support.
--with-tidy=shared: This option includes tidy library support.
Configuring PHP
Config Files
/etc/php.ini, /etc/pear.conf, /etc/php-fpm.conf, and /etc/php-fpm.d/www.conf
Configuration Information
The file used as the default /etc/php.ini configuration file is recommended by the PHP development team. This file modifies the default behavior of PHP. If no /etc/php.ini is used, all configuration settings fall to the defaults. You should review the comments in this file and ensure the changes are acceptable in your particular environment.
The fastCGI process manager uses the configuration file /etc/php-fpm.conf. The default file shipped with PHP includes all the /etc/php-fpm.d/*.conf in turn. There is a shipped /etc/php-fpm.d/www.conf file, that contains the parameters related to the interaction with the Apache Web server.
You may have noticed the following from the output of the make install command:
You may want to add: /usr/lib/php to your php.ini include_path
If desired, add the entry using the following command as the root user:
sed -i 's@php/includes"@&\ninclude_path = ".:/usr/lib/php"@' \
/etc/php.ini
To enable fastCGI support in the Apache web server, two LoadModule directives must be added to the httpd.conf file. They are commented out, so just issue the following command as root user:
sed -i -e '/proxy_module/s/^#//' \
-e '/proxy_fcgi_module/s/^#//' \
/etc/httpd/httpd.conf
Those modules accept various ProxyPass directives. One possibility is (as the root user):
echo \
'ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/srv/www/$1' >> \
/etc/httpd/httpd.conf
Additionally, it may be useful to add an entry for index.php to the DirectoryIndex directive of the httpd.conf file. Lastly, adding a line to set up the .phps extension to show highlighted PHP source may be desirable:
AddType application/x-httpd-php-source .phps
You’ll need to restart the Apache web server after making any modifications to the httpd.conf file.
Systemd Unit
To start the php-fpm daemon at boot, install the systemd unit from the blfs-systemd-units-20220720 package by running the following command as the root user:
make install-php-fpm
Contents
Installed Programs: phar (symlink), phar.phar, php, php-cgi, php-config, php-fpm, phpdbg, and phpize
Installed Libraries: dba.so and opcache.so in /usr/lib/php/extensions/no-debug-non-zts-20220829
Installed Directories: /etc/php-fpm.d, /usr/{include,lib,share}/php, and /usr/share/doc/php-8.2.3
Short Descriptions
php is a command line interface that enables you to parse and execute PHP code.
pear is the PHP Extension and Application Repository (PEAR) package manager. This isn’t installed by default.
php-fpm is the fastCGI process manager for PHP.
phpdbg is the interactive PHP debugger.
13.22 Python-2.7.18
Introduction to Python 2
The Python 2 package contains the Python development environment. It is useful for object-oriented programming, writing scripts, prototyping large programs or developing entire applications. This version is for backward compatibility with other dependent packages.
Note
Python2 has been deprecated by the upstream developers. Support for Python2 was discontinued on January 1st, 2020.
BLFS is attempting to use Python3 as much as possible, but some packages have not been updated to support Python3.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz
-
Download MD5 sum: fd6cc8ec0a78c44036f825e739f36e5a
-
Download size: 12.2 MB
-
Estimated disk space required: 228 MB (add 17 MB for tests)
-
Estimated build time: 0.5 SBU (Using parallelism=4; add 5.9 SBU for tests)
Additional Downloads
-
Required patch: https://www.linuxfromscratch.org/patches/blfs/11.3/Python-2.7.18-security_fixes-1.patch
-
Optional HTML Documentation: https://www.python.org/ftp/python/doc/2.7.18/python-2.7.18-docs-html.tar.bz2
Python 2 Dependencies
Recommended
SQLite-3.40.1 (For an additional module)
Optional
BlueZ-5.66 and Valgrind-3.20.0
Optional (For more additional modules)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/Python
Installation of Python 2
First, disable the installation of a script that overwrites a more recent script:
sed -i '/2to3/d' ./setup.py
Install Python 2 by running the following commands:
patch -Np1 -i ../Python-2.7.18-security_fixes-1.patch &&
./configure --prefix=/usr \
--enable-shared \
--with-system-expat \
--with-system-ffi \
--enable-unicode=ucs4 &&
make
If you invoke the tests, they will run through twice. To test the results, issue: make -k test. Several tests are known to fail, including test_ftplib, test_ssl, test_urllib2_localnet, test_xml_etree, test_xml_etree_c, and test_minidom. These failures are due to OpenSSL-3 and Expat-2.4.6.
Now, as the root user:
make altinstall &&
ln -s python2.7 /usr/bin/python2 &&
ln -s python2.7-config /usr/bin/python2-config &&
chmod -v 755 /usr/lib/libpython2.7.so.1.0
Since Python 2 is in maintenance mode, and Python 3 is recommended by upstream for development, you probably do not need to install the documentation. However, if you still want to install documentation for both Python versions, be sure to define the PYTHONDOCS variable for the version you want to use, each time you need to consult the documentation. If you have downloaded the preformatted documentation from https://docs.python.org/download.html, install it as the root user:
install -v -dm755 /usr/share/doc/python-2.7.18 &&
tar --strip-components=1 \
--no-same-owner \
--directory /usr/share/doc/python-2.7.18 \
-xvf ../python-2.7.18-docs-html.tar.bz2 &&
find /usr/share/doc/python-2.7.18 -type d -exec chmod 0755 {} \; &&
find /usr/share/doc/python-2.7.18 -type f -exec chmod 0644 {} \;
Command Explanations
--with-system-expat: This switch enables linking against system version of Expat.
--with-system-ffi: This switch enables linking against system version of libffi.
--enable-unicode=ucs4: This switch enables 32-bit Unicode support in Python.
--with-ensurepip=yes : This switch enables building pip and setuptools packaging programs. setuptools is needed for building some Python modules. This switch is not recommended because this version of Python is no longer maintained.
--with-dbmliborder=bdb:gdbm:ndbm: Use this switch if you want to build Python DBM Module against Berkeley DB instead of GDBM.
make altinstall: This make target omits some default symbolic links that may interfere with Python 3.
chmod …: Fix permissions for libraries to be consistent with other libraries.
Configuring Python 2
In order for python to find the installed documentation, you must add the following environment variable to individual user’s or the system’s profile:
export PYTHONDOCS=/usr/share/doc/python-2.7.18
Contents
Installed Programs: pydoc, python2 (symlink), python2-config (symlink), python2.7, python2.7-config, smtpd.py, and idle
Installed Library: libpython2.7.so
Installed Directories: /usr/{include,lib}/python2.7 and /usr/share/doc/python-2.7.18
Short Descriptions
idle is a wrapper script that opens a Python aware GUI editor. For this script to run, you must have installed Tk before Python so that the Tkinter Python module is built.
pydoc is the Python documentation tool.
python2 is an interpreted, interactive, object-oriented programming language.
python2.7 is a version-specific name for the python program.
smtpd.py is an SMTP proxy implemented in Python.
13.23 Python-3.11.2
Introduction to Python 3
The Python 3 package contains the Python development environment. This is useful for object-oriented programming, writing scripts, prototyping large programs or developing entire applications.
Note
Python 3 was installed in LFS. The only reason to rebuild it here is if optional modules are needed, or to upgrade this package.
This package is known to build and work properly using an LFS 11.3 platform.
Important
If upgrading to a new Python-3 minor version (for example, from Python-3.10.x to Python-3.11.0), you will need to reinstall any Python3 modules you have installed. You should also reinstall packages that generate Python3 modules including gobject-introspection-1.74.0, opencv-4.7.0, Graphviz-7.1.0 (if swig is installed).
Before you upgrade, you can get a complete list of modules installed with pip3 list.
The wheel module and meson from LFS will also have to be reinstalled: https://www.linuxfromscratch.org/lfs/view/development/chapter08/wheel.html and https://www.linuxfromscratch.org/lfs/view/development/chapter08/meson.html.
On systemd systems, it is also necessary to reinstall the MarkupSafe and Jinja2 modules from LFS: https://www.linuxfromscratch.org/lfs/view/systemd/chapter08/markupsafe.html and https://www.linuxfromscratch.org/lfs/view/systemd/chapter08/jinja2.html.
Package Information
-
Download (HTTP): https://www.python.org/ftp/python/3.11.2/Python-3.11.2.tar.xz
-
Download MD5 sum: a957cffb58a89303b62124896881950b
-
Download size: 19 MB
-
Estimated disk space required: 283 MB (add 897 MB for tests)
-
Estimated build time: 2.2 SBU (add 3.4 SBU for tests; both using parallelism=4)
Additional Optional Download
-
Download (HTTP): https://www.python.org/ftp/python/doc/3.11.2/python-3.11.2-docs-html.tar.bz2
-
Download MD5 sum: eb4132c780b60b5782a4f66b29b08d5c
Python 3 Dependencies
Recommended
SQLite-3.40.1 (required if building firefox or thunderbird)
Optional
BlueZ-5.66, GDB-13.1 (required for some tests), Valgrind-3.20.0, and libmpdec
Optional (For Additional Modules)
Berkeley DB-5.3.28, libnsl-2.0.0, and Tk-8.6.13
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/Python3
Installation of Python 3
Install Python 3 by running the following commands:
CXX="/usr/bin/g++" \
./configure --prefix=/usr \
--enable-shared \
--with-system-expat \
--with-system-ffi \
--enable-optimizations &&
make
To test the result, issue make test. Some tests may need an Internet connection. Two tests, test_distutils and test_embed are known to fail.
Now, as the root user:
make install
If upgrading and the documentation has been downloaded, optionally install it as the root user:
install -v -dm755 /usr/share/doc/python-3.11.2/html
tar --strip-components=1 \
--no-same-owner \
--no-same-permissions \
-C /usr/share/doc/python-3.11.2/html \
-xvf ../python-3.11.2-docs-html.tar.bz2
Command Explanations
CXX=”/usr/bin/g++” ./configure …: Avoid an annoying message during configuration.
--with-system-expat: This switch enables linking against the system version of Expat.
--with-system-ffi: This switch enables linking against the system version of libffi.
--with-dbmliborder=bdb:gdbm:ndbm: Use this switch if you want to build the Python DBM Module against Berkeley DB instead of GDBM.
--enable-optimizations: This switch enables stable, but expensive, optimizations.
--with-lto: This optional switch enables thick Link Time Optimization. Unusually, it creates a much larger /usr/lib/python3.11/config-3.11-<arch>-linux-gnu/libpython3.11.a with a small increase in the time to compile Python. Run-time results do not appear to show any benefit from doing this.
Configuring Python 3
In order for python3 to find the installed documentation, create the following version independent symlink:
ln -svfn python-3.11.2 /usr/share/doc/python-3
and add the following environment variable to the individual user’s or system’s profile:
export PYTHONDOCS=/usr/share/doc/python-3/html
Contents
Installed Programs: 2to3 (symlink) and 2to3-3.11, idle3 (symlink) and idle3.11, pip3 (symlink) and pip3.11, pydoc3 and pydoc3.11, python3 (symlink); python3.11, and python3-config (symlink) and python3.11-config
Installed Libraries: libpython3.11.so and libpython3.so
Installed Directories: /usr/include/python3.11, /usr/lib/python3.11, and /usr/share/doc/python-3.11.2
Short Descriptions
idle3 is a wrapper script that opens a Python aware GUI editor. For this script to run, you must have installed Tk before Python so that the Tkinter Python module is built.
pydoc3 is the Python documentation tool.
python3 is an interpreted, interactive, object-oriented programming language.
python3.11 is a version-specific name for the python program.
13.24 Python Modules
Introduction to Python Modules
The Python module packages add useful objects to the Python language. Modules utilized by packages throughout BLFS are listed here, along with their dependencies.
Important
In BLFS, we normally build and install Python 3 modules with pip3. Please take care that the pip3 install commands in the book should be run as root unless it’s for a Python virtual environment. Running pip3 install as a non-root user may seem to work fine, but it will cause the installed module to be inaccessible by other users.
pip3 install will not reinstall an already installed module by default. For using the pip3 install command to upgrade a module (for example, from meson-0.61.3 to meson-0.62.0), insert --upgrade into the command line. If it’s really necessary to downgrade a module or reinstall the same version for some reason, insert --force-reinstall into the command line.
Asciidoc-10.2.0
Introduction to Asciidoc Module
The Asciidoc package is a text document format for writing notes, documentation, articles, books, ebooks, slideshows, web pages, man pages and blogs. AsciiDoc files can be translated to many formats including HTML, PDF, EPUB, and man page.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/a/asciidoc/asciidoc-10.2.0.tar.gz
-
Download MD5 sum: ecac3af818f7a65596efc6e243b520a0
-
Download size: 212 KB
-
Estimated disk space required: 4.3 MB
-
Estimated build time: less than 0.1 SBU
Asciidoc Dependencies
Optional (runtime)
docbook-xsl-nons-1.79.2, fop-2.8, libxslt-1.1.37, Lynx-2.8.9rel.1, dblatex, and W3m
Installation of Asciidoc
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a test suite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user asciidoc
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: a2x and asciidoc
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/asciidoc and /usr/lib/python3.11/site-packages/asciidoc-10.2.0.dist-info
Short Descriptions
a2x is a toolchain manager for AsciiDoc (converts Asciidoc text files to other file formats).
asciidoc converts an AsciiDoc text file to HTML or DocBook.
CSSSelect-1.2.0
Introduction to CSSSelect Module
CSSSelect provides CSS selectors for Python.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/c/cssselect/cssselect-1.2.0.tar.gz
-
Download MD5 sum: 27fbafacce5447cb867acb240d35002a
-
Download size: 1.2 MB
-
Estimated disk space required: 512 KB (add 488 KB for tests)
-
Estimated build time: less than 0.1 SBU
CSSSelect Dependencies
Required
Optional (for testing)
Installation of CSSSelect
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user cssselect
To test the installation issue pytest.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/cssselect
CacheControl-0.12.11
Introduction to CacheControl Module
CacheControl is a port of the caching algorithms in httplib2 for use with requests session object. It was written because httplib2’s better support for caching is often mitigated by its lack of thread safety. The same is true of requests in terms of caching.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://anduin.linuxfromscratch.org/BLFS/CacheControl/CacheControl-0.12.11.tar.gz
-
Download MD5 sum: d4393117a879bf1b4e2c01e9c5a285a5
-
Download size: 17 KB
-
Estimated disk space required: 468 KB
-
Estimated build time: less than 0.1 SBU
CacheControl Dependencies
Required
msgpack-1.0.4 and requests-2.28.2
Installation of CacheControl
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user cachecontrol
This module does not have a working test suite.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: doesitcache
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/CacheControl-0.12.11.dist-info and /usr/lib/python3.11/site-packages/cachecontrol
Short Descriptions
doesitcache is an undocumented command line script.
Cython-0.29.33
Introduction to Cython Module
The Cython package provides a compiler for writing C extensions for the Python language.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/cython/cython/releases/download/0.29.33/Cython-0.29.33.tar.gz
-
Download MD5 sum: bd42c555cb2298b8a94fa8de7ee679ba
-
Download size: 2.0 MB
-
Estimated disk space required: 66 MB
-
Estimated build time: 0.5 SBU
Installation of Cython
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a test suite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user Cython
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: cygdb cython cythonize
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/Cython, /usr/lib/python3.11/site-packages/Cython-0.29.33.dist-info, and /usr/lib/python3.11/site-packages/pyximport
Short Descriptions
cygdb is the Cython debugger.
cython is a compiler for code written in the Cython language. It outputs a C/C++ program which can be compiled with a C/C++ compiler.
cythonize is a compiler for code written in the Cython language. It outputs an extension module which is directly importable from Python.
dbusmock-0.28.7
Introduction to dbusmock
dbusmock is a Python library useful for writing tests for software which talks to D-Bus services.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/martinpitt/python-dbusmock/releases/download/0.28.7/python-dbusmock-0.28.7.tar.gz
-
Download MD5 sum: 7a605e4e1555e5b2fac18570422555e4
-
Download size: 92 KB
-
Estimated disk space required: 1.0 MB
-
Estimated build time: less than 0.1 SBU
dbusmock Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/dbusmock
Installation of dbusmock
Build the package with:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
To install the package run the following as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user python-dbusmock
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/dbusmock and /usr/lib/python3.11/site-packages/python_dbusmock-0.28.7.dist-info
D-Bus Python-1.3.2
Introduction to D-Bus Python Module
D-Bus Python provides Python bindings to the D-Bus API interface.
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-python/dbus-python-1.3.2.tar.gz
-
Download MD5 sum: 33be8a4a766e1c7c9a377b8f934ce21a
-
Download size: 592 KB
-
Estimated disk space required: 4.0 MB
-
Estimated build time: less than 0.1 SBU
D-Bus Python Dependencies
Required
dbus-1.14.6, GLib-2.74.5, meson_python-0.12.0, and patchelf-0.17.2
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/dbus-python
Installation of D-Bus Python
Build the D-Bus Python module by running the following command:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a test suite.
Now install the module as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user dbus-python
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/dbus and /usr/lib/python3.11/site-packages/dbus_python-1.3.2.egg-info
docutils-0.19
Introduction to docutils
docutils is a set of Python modules and programs for processing plaintext docs into formats such as HTML, XML, or LaTeX.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/docutils/docutils-0.19.tar.gz
-
Download MD5 sum: 0afa992a6e93db892107c3f087d0d9df
-
Download size: 2.0 MB
-
Estimated disk space required: 12 MB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/docutils
Installation of docutils
To build the Python 3 applications, run the following command:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
To install the Python applications run the following as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user docutils &&
for f in /usr/bin/rst*.py; do
ln -svf $(basename $f) /usr/bin/$(basename $f .py)
done
To reduce the time needed for loading Python scripts, pip3 install will compile the scripts with extension .py into byte code and save the result into .pyc files in the directory _pycache_. But this package installs .py scripts into /usr/bin. So the byte code files for them will be installed into /usr/bin/__pycache_, which is not allowed by FHS. Still as the root user, remove this directory:
rm -rfv /usr/bin/__pycache__
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: docutils, rst2html4, rst2html5, rst2html, rst2latex, rst2man, rst2odt_prepstyles, rst2odt, rst2pseudoxml, rst2s5, rst2xetex, rst2xml, and rstpep2html
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/docutils{,-0.19.dist-info}
Short Descriptions
docutils converts documents into various formats.
rst2html generates (X)HTML documents from standalone reStructuredText sources.
rst2html4 generates (X)HTML documents from standalone reStructuredText sources.
rst2html5 generates HTML5 documents from standalone reStructuredText sources.
rst2latex generates LaTeX documents from standalone reStructuredText sources.
rst2man generates plain unix manual documents from standalone reStructuredText sources.
rst2odt generates OpenDocument/OpenOffice/ODF documents from standalone reStructuredText sources.
rst2odt_prepstyles Fix a word-processor-generated styles.odt for odtwriter use.
rst2pseudoxml generates pseudo-XML from standalone reStructuredText sources (for testing purposes).
rst2s5 generates S5 (X)HTML slideshow from standalone reStructuredText sources.
rst2xetex generates LaTeX documents from standalone reStructuredText sources for compilation with the Unicode-aware TeX variants XeLaTeX or LuaLaTeX.
rst2xml generates Docutils-native XML from standalone reStructuredText sources.
rstpep2html generates (X)HTML from reStructuredText-format PEP files.
Doxypypy-0.8.8.7
Introduction to Doxypypy Module
The Doxypypy package is a doxygen filter for python.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/d/doxypypy/doxypypy-0.8.8.7.tar.gz
-
Download MD5 sum: 5773d0a7882df900cbda8ee5107e1ced
-
Download size: 45 KB
-
Estimated disk space required: 2.1 MB
-
Estimated build time: less than 0.1 SBU
Doxypypy Dependencies
Required
chardet-5.1.0 and Doxygen-1.9.6 (at run time)
Installation of Doxypypy
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user doxypypy
This package does not come with a working test suite.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: doxypypy
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/doxypypy and /usr/lib/python3.11/site-packages/doxypypy-0.8.8.7.dist-info
Short Descriptions
doxypypy filters Python code for use with Doxygen, using a syntax-aware approach.
Doxyqml-0.5.2
Introduction to Doxyqml Module
The Doxyqml package allows using Doxygen to document QML classes.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/d/doxyqml/doxyqml-0.5.2.tar.gz
-
Download MD5 sum: f7b957fea48654c76837b0c5e9e3c2af
-
Download size: 28 KB
-
Estimated disk space required: 600 KB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Doxyqml Dependencies
Required (Run Time)
Optional (for testing)
Installation of Doxyqml
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user doxyqml
To test the installation, run:
pytest
The test_qmlclass.py test is known to fail.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: doxyqml
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/doxyqml and /usr/lib/python3.11/site-packages/doxyqml-0.5.2.dist-info
Short Descriptions
doxyqml is a Doxygen input filter for QML files.
Gi-DocGen-2023.1
Introduction to Gi-DocGen Module
Gi-DocGen is a document generator for GObject-based libraries. GObject is the base type system of the GNOME project. GI-Docgen reuses the introspection data generated by GObject-based libraries to generate the API reference of these libraries, as well as other ancillary documentation.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/g/gi-docgen/gi-docgen-2023.1.tar.gz
-
Download MD5 sum: 6d6690dad5daa5b155341ab2f49eaa6b
-
Download size: 2.4 MB
-
Estimated disk space required: 19 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Gi-DocGen Dependencies
Required
Markdown-3.4.1, Pygments-2.14.0, and typogrify-2.0.7
Optional (for testing)
Installation of gi-docgen
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user gi-docgen
To test the installation, issue pytest.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: gi-docgen
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/gidocgen and /usr/lib/python3.11/site-packages/gi_docgen-2023.1.dist-info
Short Descriptions
gi-docgen manages documentation for libgobject based libraries.
libxml2-2.10.3 (for its Python2 module)
Introduction to the libxml2 Python2 module
These instructions provide the Python2 bindings for libxml2: the Python3 bindings are built as part of libxml2-2.10.3 and most packages in the book do not use these bindings for the older Python2.
By building these bindings after libxml2-2.10.3 has been installed, there is no need to rebuild the time-consuming (if all dependencies are used) main part of that package.
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: 49 MB (2.3 MB installed)
-
Estimated build time: less than 0.1 SBU
libxml2 (Python2) Dependencies
Required
libxml2-2.10.3 and Python-2.7.18
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libxml2
Installation of libxml2 Python2 module
To build the Python 2 module, run:
./configure PYTHON=python2 &&
cd python &&
python2 setup.py build
To install the Python 2 module, as the root user run:
python2 setup.py install --optimize=1
Contents
Installed Modules: drv_libxml2.py, libxml2.py
Installed Libraries: libxml2mod.so
Installed Directories: None
Short Descriptions
drv_libxml2.py is a SAX Python2 driver for libxml2.
libxml2.py is the Python2 binding for libxml2.
libxml2mod.so is the interface for Python2 to use libxml2.so.
lxml-4.9.2
Introduction to lxml Module
lxml provides Python bindings for libxslt-1.1.37 and libxml2-2.10.3.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/l/lxml/lxml-4.9.2.tar.gz
-
Download MD5 sum: aa84a7ce47581b43cb827145340505c6
-
Download size: 3.5 MB
-
Estimated disk space required: 109 MB
-
Estimated build time: 0.9 SBU
lxml Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/lxml
Installation of lxml
To build the Python 3 module, run:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
To install the module, issue the following command as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user lxml
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/lxml and /usr/lib/python3.11/site-packages/lxml-4.9.2.dist-info
Mako-1.2.4
Introduction to Mako Module
Mako is a Python module that implements hyperfast and lightweight templating for the Python platform.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/M/Mako/Mako-1.2.4.tar.gz
-
Download MD5 sum: 651f365616611fcd4f2702a9002e2195
-
Download size: 485 KB
-
Estimated disk space required: 3.9 MB (add 1.2 MB for tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Mako Dependencies
Optional (for Testing)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/Mako
Installation of Mako
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Install the module as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user Mako
To test the installation, issue pytest.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: mako-render
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/mako and /usr/lib/python3.11/site-packages/Mako-1.2.4.dist-info
Short Descriptions
mako-render renders a template.
NumPy-1.24.2
Introduction to NumPy Module
NumPy is the fundamental package for scientific computing with Python.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/n/numpy/numpy-1.24.2.tar.gz
-
Download MD5 sum: c4212a8da1ecf17ece37e2afd0319806
-
Download size: 1.2 MB
-
Estimated disk space required: 159 MB (add 89 MB for tests)
-
Estimated build time: 1.1 SBU (1.9 SBU for tests)
NumPy Dependencies
Required
Optional
fortran from GCC-12.2.0, lapack and cblas, openblas
Optional (for testing)
attrs-22.2.0, pytest-7.2.1, hypothesis
Installation of NumPy
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user numpy
The installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install hypothesis &&
python3 runtests.py
deactivate
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: f2py, f2py3 and f2py3.11 (3 copies of the same script)
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/numpy
Short Descriptions
f2py is the Fortran to Python interface generator utility.
Packaging-23.0
Introduction to Packaging Module
The Packaging library provides utilities that implement the interoperability specifications which have clearly one correct behaviour or benefit greatly from having a single shared implementation.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/p/packaging/packaging-23.0.tar.gz
-
Download MD5 sum: 5c7b22d9258e8132c16cee4f230d8252
-
Download size: 123 KB
-
Estimated disk space required: 2.9 MB (add 28 MB for tests)
-
Estimated build time: less than 0.1 SBU (0.2 SBU for tests)
Packaging Dependencies
Required
Optional (for testing)
pytest-7.2.1 and pretend
Installation of Packaging
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user packaging
Assuming pytest-7.2.1 is installed, but the other optional dependency is not, the installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install pretend &&
python3 /usr/bin/pytest
deactivate
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/packaging and /usr/lib/python3.11/site-packages/packaging-23.0.dist-info
Py3c-1.4
Introduction to Py3c
Py3c helps you port C extensions to Python 3. It provides a detailed guide, and a set of macros to make porting easy and reduce boilerplate.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/encukou/py3c/archive/v1.4/py3c-1.4.tar.gz
-
Download MD5 sum: 53029afde7e0cf8672a2d69d378a0cfc
-
Download size: 47 KB
-
Estimated disk space required: 608 KB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/py3c
Installation of Py3c
The Py3c package is a headers-only package and because of that, no configuration and compilation is required.
To test the package, issue:
make test-python3 &&
make test-python3-cpp
To install the Python 3 module, run the following command as the root user:
make prefix=/usr install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/include/py3c
PyAtSpi2-2.46.0
Introduction to PyAtSpi2
The PyAtSpi2 package contains Python bindings for the core components of the GNOME Accessibility.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/pyatspi/2.46/pyatspi-2.46.0.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/pyatspi/2.46/pyatspi-2.46.0.tar.xz
-
Download MD5 sum: 2b1ca71ad75a900ed0eb6d6d012f8bfc
-
Download size: 320 KB
-
Estimated disk space required: 3.8 MB
-
Estimated build time: less than 0.1 SBU
PyAtSpi2 Dependencies
Required
Recommended
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pyatspi2
Installation of PyAtSpi2
To build PyAtSpi2 as a Python 3 module, run the following commands:
./configure --prefix=/usr --with-python=/usr/bin/python3
This package does not come with a test suite.
To install the Python 3 module, run the following command as the root user:
make install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/pyatspi
PyCairo-1.18.2
Introduction to PyCairo for Python2 Module
This version of PyCairo provides Python2 bindings to Cairo.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/pygobject/pycairo/releases/download/v1.18.2/pycairo-1.18.2.tar.gz
-
Download MD5 sum: be2ba51f234270dec340f28f1695a95e
-
Download size: 196 KB
-
Estimated disk space required: 2.3 MB
-
Estimated build time: less than 0.1 SBU
PyCairo Dependencies
Required
Cairo-1.17.6 and Python-2.7.18
Optional
Hypothesis (for tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pycairo
Installation of PyCairo
Note
This version of PyCairo is only retained for packages such as Gimp-2.10.32 which is stuck on Python2 until Gimp-3 is released.
Install PyCairo for Python2 by running the following commands:
python2 setup.py build
This package does not come with a test suite.
Now, as the root user:
python2 setup.py install --optimize=1 &&
python2 setup.py install_pycairo_header &&
python2 setup.py install_pkgconfig
Contents
Installed Program: None
Installed Library: _cairo.so
Installed Directories: /usr/include/pycairo, /usr/lib/python2.7/site-packages/cairo, /usr/lib/python2.7/site-packages/pycairo-1.18.2-py2.7.egg,
PyCairo-1.23.0
Introduction to PyCairo Module
PyCairo provides Python bindings to Cairo.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/pygobject/pycairo/releases/download/v1.23.0/pycairo-1.23.0.tar.gz
-
Download MD5 sum: 7a3729d21659098e1b9a411b62e88966
-
Download size: 340 KB
-
Estimated disk space required: 3.0 MB
-
Estimated build time: less than 0.1 SBU
PyCairo Dependencies
Required
Optional
Hypothesis and pytest-7.2.1 (for tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pycairo
Installation of PyCairo
Note
The current version of pycairo no longer builds the Python2 module. If you need that module for packages such as Gimp-2.10.32, use PyCairo-1.18.2
Install PyCairo for Python3 by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release .. &&
ninja
To run the tests, this package requires the optional pytest module. If it is installed, run the tests by running ninja test. The test_surface.py test has a failure.
Now, as the root user:
ninja install
Contents
Installed Program: None
Installed Library: None
Installed Directories: /usr/include/pycairo, /usr/lib/python3.11/site-packages/cairo, and /usr/lib/python3.11/site-packages/pycairo-1.23.0.egg-info
PyCryptodome-3.17.0
Introduction to the PyCryptodome Module
PyCryptodome is a collection of both secure hash functions (such as SHA256 and RIPEMD160), and various encryption algorithms (AES, DES, RSA, ElGamal, etc.), and is a drop-in replacement for PyCrypto.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/Legrandin/pycryptodome/archive/v3.17.0/pycryptodome-3.17.0.tar.gz
-
Download MD5 sum: 0a6e509d91843c49ab1bc09d573e1959
-
Download size: 16 MB
-
Estimated disk space required: 54 MB
-
Estimated build time: 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pycryptodome
Installation of PyCryptodome
To build PyCryptodome as a Python 3 module, run the following command:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
To install the module, run the following command as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user pycryptodome
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/Crypto /usr/lib/python3.11/site-packages/pycryptodome-3.17.0.dist-info
Pygments-2.14.0
Introduction to Pygments Module
Pygments is a general syntax highlighter written in Python, for more than 300 languages.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/P/Pygments/Pygments-2.14.0.tar.gz
-
Download MD5 sum: 447be4afb076c8325a7dc659aff5b931
-
Download size: 4.2 MB
-
Estimated disk space required: 51 MB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pygments
Installation of Pygments
Build the Python 3 module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
To install the package run the following as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user Pygments
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: pygmentize
Installed Library: None
Installed Directories: /usr/lib/python3.11/site-packages/pygments and /usr/lib/python3.11/site-packages/Pygments-2.14.0.dist-info
Short Descriptions
pygmentize highlights an input file and writes the result to an output file.
PyGObject-2.28.7
Introduction to PyGObject Module
PyGObject-2.28.7 provides Python 2 bindings to the GObject class from 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/pygobject/2.28/pygobject-2.28.7.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/pygobject/2.28/pygobject-2.28.7.tar.xz
-
Download MD5 sum: ae48b60c690c4aa894e69e0c97802745
-
Download size: 728 KB
-
Estimated disk space required: 17 MB
-
Estimated build time: 0.1 SBU
PyGObject Dependencies
Required
GLib-2.74.5, PyCairo-1.18.2 and Python-2.7.18
Optional
gobject-introspection-1.74.0 and libxslt-1.1.37 (to Build Documentation)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pygobject2
Installation of PyGObject
Install PyGObject by running the following commands:
./configure --prefix=/usr --disable-introspection &&
make
This package does not have a working test suite.
Now, as the root user:
make install
Command Explanations
--disable-introspection: Omit this switch if you have installed gobject-introspection-1.74.0. Note that it conflicts with PyGObject-3.42.2.
--disable-docs: This option disables the rebuilding of the html documentation if libxslt-1.1.37 is installed.
Contents
Installed Programs: pygobject-codegen-2.0
Installed Libraries: libpyglib-2.0-python.so, _gio.so, unix.so, _glib.so and _gobject.so.
Installed Directories: /usr/include/pygtk-2.0, /usr/lib/python2.7/site-packages/gtk-2.0/{gio,glib,gobject}, /usr/share/gtk-doc/html/pygobject and /usr/share/pygobject/2.0
PyGObject-3.42.2
Introduction to PyGObject3 Module
PyGObject3 provides Python bindings to the GObject class from 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/pygobject/3.42/pygobject-3.42.2.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/pygobject/3.42/pygobject-3.42.2.tar.xz
-
Download MD5 sum: c5b31bb58156661c0954f1dbfc950fc9
-
Download size: 548 KB
-
Estimated disk space required: 8.0 MB (add 2.5 MB for tests)
-
Estimated build time: 0.1 SBU (with tests)
PyGObject3 Dependencies
Required
gobject-introspection-1.74.0 and PyCairo-1.23.0 (Python 3 module)
Optional (for the tests)
GTK-4.8.3, pep8, pyflakes, and pytest-7.2.1
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pygobject3
Installation of PyGObject3
First, remove a faulty test:
mv -v tests/test_gdbus.py{,.nouse}
Install pygobject3 by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release .. &&
ninja
To test the results, issue: ninja test. An already active graphical session with a bus address is necessary to run the tests. Another round of tests may report ERROR if GTK-4.8.3 is not installed.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
Contents
Installed Programs: None
Installed Library: /usr/lib/python3.11/site-packages/gi/_gi{,_cairo}.cpython-311-
Installed Directories: /usr/include/pygobject-3.0 and /usr/lib/python3.11/site-packages/{gi,pygtkcompat}
PyGTK-2.24.0
Introduction to PyGTK Module
PyGTK lets you to easily create programs with a graphical user interface using the Python programming language.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/pygtk/2.24/pygtk-2.24.0.tar.bz2
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/pygtk/2.24/pygtk-2.24.0.tar.bz2
-
Download MD5 sum: a1051d5794fd7696d3c1af6422d17a49
-
Download size: 2.2 MB
-
Estimated disk space required: 83 MB
-
Estimated build time: 0.7 SBU
PyGTK Dependencies
Required
PyGObject-2.28.7 and Python-2.7.18
Required (atk module)
Required (pango module)
Required (pangocairo module)
PyCairo-1.18.2 and Pango-1.50.12
Required (gtk and gtk.unixprint modules)
PyCairo-1.18.2 and GTK+-2.24.33.
Required (gtk.glade module)
PyCairo-1.18.2 and libglade-2.6.4.
Optional
Optional (to Build Documentation)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pygtk
Installation of PyGTK
First, adapt PyGTK to changes in Pango by removing undefined APIs:
sed -i '1394,1402 d' pango.defs
Install PyGTK by running the following commands:
./configure --prefix=/usr &&
make
The tests must be run from an active X display. If this is so, issue: make check.
Now, as the root user:
make install
Command Explanations
--enable-docs: This option enables rebuilding the html documentation if libxslt-1.1.37 is installed.
Contents
Installed Programs: pygtk-codegen-2.0 and pygtk-demo.
Installed Libraries: atk.so, _gtk.so, glade.so, gtkunixprint.so, pango.so and pangocairo.so.
Installed Directories: /usr/include/pygtk-2.0, /usr/lib/pygtk, /usr/lib/python2.7/site-packages/gtk-2.0, /usr/share/gtk-doc/html/pygtk and /usr/share/pygtk.
Short Descriptions
pygtk-codegen-2.0 is a wrapper script to run the PyGTK codegen module.
pygtk-demo is a Python wrapper to run the PyGTK demo program.
pyparsing-3.0.9
Introduction to pyparsing Module
The pyparsing module is an alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions. It provides a library of classes that client code uses to construct the grammar directly in Python code.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/p/pyparsing/pyparsing-3.0.9.tar.gz
-
Download MD5 sum: fadc2f3bf5872bf6310576a86c3566e0
-
Download size: 1.9 MB
-
Estimated disk space required: 8.7 MB (add 26 MB for tests)
-
Estimated build time: less than 0.1 SBU (0.3 SBU for tests)
pyparsing Dependencies
Required
Optional
railroad-diagrams (also needed for tests)
Optional (for testing)
Installation of pyparsing
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user pyparsing
Assuming pytest-7.2.1 is installed, but the other optional dependency is not, the installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install railroad-diagrams &&
python3 /usr/bin/pytest
deactivate
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/pyparsing and /usr/lib/python3.11/site-packages/pyparsing-3.0.9.dist-info
pySerial-3.5
Introduction to pySerial Module
The pySerial module encapsulates access to the serial port.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/p/pyserial/pyserial-3.5.tar.gz
-
Download MD5 sum: 1cf25a76da59b530dbfc2cf99392dc83
-
Download size: 156 KB
-
Estimated disk space required: 2.1 MB (add 0.2 MB for tests)
-
Estimated build time: less than 0.1 SBU
pySerial Dependencies
Required
Optional (for testing)
Installation of pySerial
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user pyserial
To test the installation issue pytest.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: pyserial-miniterm and pyserial-ports
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/pyserial-3.5.dist-info and /usr/lib/python3.11/site-packages/serial
Short Descriptions
pyserial-miniterm is a console application that provides a small terminal application. It may inherit terminal features from the terminal in which it is run.
pyserial-ports lists available ports.
Pytest-7.2.1
Introduction to Pytest Module
The Pytest framework makes it easy to write small, readable tests, and can scale to support complex functional testing for applications and libraries.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/p/pytest/pytest-7.2.1.tar.gz
-
Download MD5 sum: 366a4047534ef0485f700c20bb574f67
-
Download size: 1.2 MB
-
Estimated disk space required: 10 MB (add 31 MB for tests)
-
Estimated build time: less than 0.1 SBU (1.1 SBU for tests)
Pytest Dependencies
Required
attrs-22.2.0, iniconfig-2.0.0, packaging-23.0, pluggy-1.0.0, and py-1.11.0
Recommended
Optional (for testing)
Pygments-2.14.0, requests-2.28.2, argcomplete, hypothesis, mock, nose, and xmlschema
Installation of Pytest
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user pytest
The installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install pytest[testing] &&
python3 /usr/bin/pytest
deactivate
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: pytest and py.test (different files but with same content)
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/_pytest, /usr/lib/python3.11/site-packages/pytest, and /usr/lib/python3.11/site-packages/pytest-7.2.1.dist-info
Short Descriptions
pytest sets up, manages, and/or runs test in python module source directories.
PyXDG-0.28
Introduction to PyXDG Module
PyXDG is a Python library to access freedesktop.org standards.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/b0/25/7998cd2dec731acbd438fbf91bc619603fc5188de0a9a17699a781840452/pyxdg-0.28.tar.gz
-
Download MD5 sum: d9a1d04fe60c956f5e3b9de3b4ef4722
-
Download size: 76 KB
-
Estimated disk space required: 808 KB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pyxdg
Installation of PyXDG
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Install the module as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user pyxdg
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Directory: /usr/lib/python3.11/site-packages/xdg and /usr/lib/python3.11/site-packages/pyxdg-0.28.dist-info
PyYAML-6.0
Introduction to PyYAML Module
PyYAML is a Python module that implements the next generation YAML parser and emitter.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/P/PyYAML/PyYAML-6.0.tar.gz
-
Download MD5 sum: 1d19c798f25e58e3e582f0f8c977dbb8
-
Download size: 124 KB
-
Estimated disk space required: 3.3 MB
-
Estimated build time: less than 0.1 SBU
PyYAML Dependencies
Required
cython-0.29.33 and libyaml-0.2.5
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/PyYAML
Installation of PyYAML
Build PyYAML with the following command:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, install the module as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user PyYAML
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python2.7/site-packages/yaml and /usr/lib/python3.11/site-packages/PyYAML-0.2.5.dist-info
Recommonmark-0.7.1
Introduction to Recommonmark Module
Recommonmark is a docutils-compatibility bridge to CommonMark. It allows writing CommonMark inside of Docutils and Sphinx projects. Recommonmark is now deprecated in favor of MyST-Parser. Unfortunately, LLVM-15.0.7 still depends on this module.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/r/recommonmark/recommonmark-0.7.1.tar.gz
-
Download MD5 sum: 3c550a76eb62006bf007843a9f1805bb
-
Download size: 34 KB
-
Estimated disk space required: 680 KB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Recommonmark Dependencies
Required
commonmark-0.9.1 and sphinx-6.1.3
Optional (for testing)
Installation of Recommonmark
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user recommonmark
Recommonmark is now deprecated in favor of MyST-Parser. For this reason, a lot of tests have to be disabled because they do not pass with recent versions of Sphinx. The installation can be partially tested with the following command:
pytest -k 'not (test_integration or test_code or test_headings or test_image or test_links or test_lists)'
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: cm2html, cm2latex, cm2man, cm2pseudoxml, cm2xetex, and cm2xml
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/recommonmark and /usr/lib/python3.11/site-packages/recommonmark-0.7.1.dist-info
Short Descriptions
cm2html generates a html document from markdown sources.
cm2latex generates a latex document from markdown sources.
cm2man generates a manpage from markdown sources.
cm2pseudoxml generates a pseudo-XML document from markdown sources.
cm2xetex generates a xetex document from markdown sources.
cm2xml generates an XML document from markdown sources.
Requests-2.28.2
Introduction to Requests Module
The Requests package is an elegant and simple HTTP library for Python, built for human beings. It allows sending HTTP/1.1 requests extremely easily.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/r/requests/requests-2.28.2.tar.gz
-
Download MD5 sum: 09b752e0b0a672d805ae54455c128d42
-
Download size: 106 KB
-
Estimated disk space required: 1.4 MB (add 129 MB for tests)
-
Estimated build time: less than 0.1 SBU (0.8 SBU for tests)
Additional Download
- Recommended patch: https://www.linuxfromscratch.org/patches/blfs/11.3/requests-2.28.2-use_system_certs-1.patch
Requests Dependencies
Required
charset-normalizer-3.0.1, idna-3.4, and urllib3-1.26.14
Recommended
make-ca-1.12, with p11-kit-0.24.1 (both needed to use system https: certificates, removing an unnecessary dependency on the Certifi module).
Optional
PySocks (also needed for testing)
Optional (for testing)
pytest-7.2.1, Flask<2, httpbin, MarkupSafe<2.1, pytest-mock, pytest-httpbin, sphinx<5, trustme, and Werkzeug<2
Installation of Requests
First apply a patch so that the same environment variable already used to point to system certificates in Python3 following the installation of make-ca can also be used by this module:
patch -Np1 -i ../requests-2.28.2-use_system_certs-1.patch
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user requests
Assuming pytest-7.2.1 is installed, but the other optional dependencies are not, the installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install --force-reinstall sphinx\<5 &&
pip3 install pytest-mock \
werkzeug\<2 \
flask\<2 \
pytest-httpbin \
pysocks \
trustme &&
pip3 install --force-reinstall Markupsafe\<2.1 &&
python3 /usr/bin/pytest tests &&
deactivate
Note
See make-ca-1.12 for how to set the environment variable, and for how local copies of the Certifi and Requests modules installed in a virtual environment will override the system certificates.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/requests and /usr/lib/python3.11/site-packages/requests-2.28.2.dist-info
Scour-0.38.2
Introduction to Scour Module
Scour is an SVG (Scalable Vector Graphics) optimizer/cleaner that reduces their size by optimizing structure and removing unnecessary data.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/scour-project/scour/archive/v0.38.2/scour-0.38.2.tar.gz
-
Download MD5 sum: ae30f52602802f8c7df3a32e1f72b325
-
Download size: 100 KB
-
Estimated disk space required: 1.3 MB
-
Estimated build time: less than 0.1 SBU
Scour Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/scour
Installation of scour
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
To install the module, run the following command as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user scour
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: scour
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/scour and /usr/lib/python3.11/site-packages/scour-0.38.2.dist-info
Short Descriptions
scour is a program to optimize and clean SVG files.
six-1.16.0
Introduction to Six Module
Six is a Python 2 to 3 compatibility library.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/s/six/six-1.16.0.tar.gz
-
Download MD5 sum: a7c927740e4964dd29b72cebfc1429bb
-
Download size: 36 KB
-
Estimated disk space required: 376 KB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/six
Installation of Six
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a test suite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user six
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/six-1.16.0.dist-info
Sphinx-6.1.3
Introduction to Sphinx Module
The Sphinx package is a set of tools for translating some structured text formats into pretty documentation in various formats.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/sphinx-doc/sphinx/archive/v6.1.3/sphinx-6.1.3.tar.gz
-
Download MD5 sum: 18b07621d19d4b2cffd58d7a6ac5bed3
-
Download size: 6.4 MB
-
Estimated disk space required: 43 MB (add 35 MB for tests)
-
Estimated build time: less than 0.1 SBU (1.1 SBU for tests)
Sphinx Dependencies
Required
alabaster-0.7.13, Babel-2.11.0, docutils-0.19, imagesize-1.4.1, packaging-23.0, Pygments-2.14.0, requests-2.28.2, snowballstemmer-2.2.0, sphinxcontrib-applehelp-1.0.3, sphinxcontrib-devhelp-1.0.2, sphinxcontrib-htmlhelp-2.0.0, sphinxcontrib-jsmath-1.0.1, sphinxcontrib-qthelp-1.0.3, and sphinxcontrib-serializinghtml-1.1.5
Optional (for tests)
cython-0.29.33, pytest-7.2.1, texlive-20220321, and html5lib
Installation of Sphinx
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinx
Assuming cython-0.29.33 and pytest-7.2.1 are installed, but the other optional dependency is not, the installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install html5lib &&
python3 /usr/bin/pytest
deactivate
One test, tests/test_config.py::test_needs_sphinx is known to fail.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: sphinx-apidoc, sphinx-autogen, sphinx-build, and sphinx-quickstart
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/sphinx and /usr/lib/python3.11/site-packages/sphinx-6.1.3.dist-info
Short Descriptions
sphinx-apidoc creates an reST file from python modules and packages.
sphinx-autogen generates ReStructuredText from special directives contained in given input files.
sphinx-build generates documentation in various formats from ReStructuredText source files.
sphinx-quickstart generates required files for a sphinx project.
Sphinx_rtd_theme-1.2.0
Introduction to Sphinx_rtd_theme Module
The sphinx_rtd_theme module is a Sphinx theme designed to provide a great reader experience for documentation users on both desktop and mobile devices. This theme is used primarily on Read the Docs but can work with any Sphinx project.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/s/sphinx_rtd_theme/sphinx_rtd_theme-1.2.0.tar.gz
-
Download MD5 sum: e05658f53b4274bbe0756671bc188181
-
Download size: 2.7 MB
-
Estimated disk space required: 14 MB (add 25 MB for tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Sphinx_rtd_theme Dependencies
Required
sphinx-6.1.3 and sphinxcontrib-jquery-2.0.0
Optional (for tests)
pytest-7.2.1 and readthedocs-sphinx-ext
Installation of Sphinx_rtd_theme
Fix a wrong version for a dependency list:
sed -e s/0.19/0.20/ \
-i setup.cfg
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinx_rtd_theme
Assuming pytest-7.2.1 is installed, but the other optional dependency is not, the installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install readthedocs-sphinx-ext &&
python3 /usr/bin/pytest
deactivate
Several tests return a warning because they use a deprecated sphinx API.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/sphinx_rtd_theme and /usr/lib/python3.11/site-packages/sphinx_rtd_theme-1.2.0.dist-info.
13.25 Python Dependencies
Introduction to Python Dependencies
Python modules listed in Python Modules have dependencies that are not referenced by other packages in BLFS. These dependencies are listed here. They will not get updated on regular basis, unless a more recent version is needed.
Important
In BLFS, we normally build and install Python 3 modules with pip3. Please take care that the pip3 install commands in the book should be run as root unless it’s for a Python virtual environment. Running pip3 install as a non-root user may seem to work fine, but it will cause the installed module to be inaccessible by other users.
pip3 install will not reinstall an already installed module by default. For using the pip3 install command to upgrade a module (for example, from meson-0.61.3 to meson-0.62.0), insert --upgrade into the command line. If it’s really necessary to downgrade a module or reinstall the same version for some reason, insert --force-reinstall into the command line.
Alabaster-0.7.13
Introduction to Alabaster Module
The Alabaster package is a theme for the sphinx documentation system. Although developed separately, it is the default theme for sphinx.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/a/alabaster/alabaster-0.7.13.tar.gz
-
Download MD5 sum: 2e05a5f4fe5a8b95e5e576cbf4a5d503
-
Download size: 11 KB
-
Estimated disk space required: 360 KB
-
Estimated build time: less than 0.1 SBU
Installation of Alabaster
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a test suite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user alabaster
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/alabaster and /usr/lib/python3.11/site-packages/alabaster-0.7.13.dist-info
Attrs-22.2.0
Introduction to Attrs Module
The Attrs package is a theme for the sphinx documentation system. Although developed separately, it is the default theme for sphinx.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/a/attrs/attrs-22.2.0.tar.gz
-
Download MD5 sum: eff16b3bbd0d9b72e118cca83a19d380
-
Download size: 211 KB
-
Estimated disk space required: 2 MB (add 53 MB for tests)
-
Estimated build time: less than 0.1 SBU (0.2 SBU for tests)
Optional (for testing)
pytest-7.2.1, coverage[toml], hypothesis, Pympler, mypy, pytest-mypy-plugins, zope.interface, and cloudpickle
Installation of Attrs
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user attrs
To test the installation, run:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install attrs[tests] &&
python3 /usr/bin/pytest &&
deactivate
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/attr, /usr/lib/python3.11/site-packages/attrs, and /usr/lib/python3.11/site-packages/attrs-22.2.0.dist-info
Babel-2.11.0
Introduction to Babel Module
The Babel package is an integrated collection of utilities that assist in internationalizing and localizing Python applications, with an emphasis on web-based applications.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/B/Babel/Babel-2.11.0.tar.gz
-
Download MD5 sum: 9ee7784fd452d456206ecd3a12694010
-
Download size: 8.9 MB
-
Estimated disk space required: 103 MB (add 30 MB for tests)
-
Estimated build time: less than 0.1 SBU (0.1 SBU for tests)
Babel Dependencies
Required
Optional (for testing)
pytest-7.2.1, Python-3.11.2 (with the sqlite module), freezegun==0.3.12, and pytest-cov
Installation of Babel
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user Babel
Assuming pytest-7.2.1 is installed, but the other optional dependencies are not, the installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install pytest-cov freezegun==0.3.12 &&
python3 /usr/bin/pytest
deactivate
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: pybabel
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/babel and /usr/lib/python3.11/site-packages/Babel-2.11.0.dist-info
Short Descriptions
pybabel is a command-line interface for working with message catalogs.
Chardet-5.1.0
Introduction to chardet Module
Chardet is a universal character encoding detector.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/c/chardet/chardet-5.1.0.tar.gz
-
Download MD5 sum: 394bd03d7a258d2771040bfbd5a7bf66
-
Download size: 2 MB
-
Estimated disk space required: 13 MB (add 1.1 MB for tests)
-
Estimated build time: less than 0.1 SBU (0.3 SBU for tests)
Chardet Dependencies
Optional (for testing)
Installation of Chardet
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user chardet
To test the installation issue pytest.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: chardetect
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/chardet and /usr/lib/python3.11/site-packages/chardet-5.1.0.dist-info
Short Descriptions
chardetect is a Universal Character Encoding Detector.
Charset-normalizer-3.0.1
Introduction to charset-normalizer Module
The charset-normalizer library helps reading text from an unknown character encoding.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/c/charset-normalizer/charset-normalizer-3.0.1.tar.gz
-
Download MD5 sum: 12ee1c8bedbfba84e99db46d5d94f411
-
Download size: 91 KB
-
Estimated disk space required: 1.1 MB (add 27 MB for tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Charset-normalizer Dependencies
Optional (for testing)
Installation of Charset-normalizer
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user charset-normalizer
Assuming pytest-7.2.1 is installed, but the other optional dependencies are not, the installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install pytest-cov &&
python3 /usr/bin/pytest
deactivate
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: normalizer
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/charset_normalizer and /usr/lib/python3.11/site-packages/charset_normalizer-3.0.1.dist-info
Short Descriptions
normalizer is a Universal Charset Detector (discovers originating encoding and normalizes text to unicode).
Commonmark-0.9.1
Introduction to Commonmark Module
Commonmark Python parser for the CommonMark Markdown specification.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/c/commonmark/commonmark-0.9.1.tar.gz
-
Download MD5 sum: cd1dc70c4714d9ed4117a40490c25e00
-
Download size: 94 KB
-
Estimated disk space required: 1.3 MB (add 30 MB for tests)
-
Estimated build time: less than 0.1 SBU (0.1 SBU for tests)
Commonmark Dependencies
Optional (for testing)
pytest-7.2.1, flake8, and hypothesis
Installation of Commonmark
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user commonmark
Assuming pytest-7.2.1 is installed and the other optional dependency is not, the installation can be tested with:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install hypothesis &&
python3 /usr/bin/pytest commonmark/tests/unit_tests.py
python3 commonmark/tests/run_spec_tests.py
deactivate
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: cmark
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/commonmark and /usr/lib/python3.11/site-packages/commonmark-0.9.1.dist-info
Short Descriptions
cmark processes Markdown according to the CommonMark specification.
Editables-0.3
Introduction to Editables Module
Editables is python library for creating “editable wheels”.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/e/editables/editables-0.3.tar.gz
-
Download MD5 sum: e91709fbb0ef586cb7b785042068ab67
-
Download size: 4.6 KB
-
Estimated disk space required: 180 KB
-
Estimated build time: less than 0.1 SBU
Installation of Editables
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a test suite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user editables
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/editables and /usr/lib/python3.11/site-packages/editables-0.3.dist-info
Flit_core-3.8.0
Introduction to Flit_core Module
The Flit_core module is the key component of the Flit system, which provides a simple way to put Python packages and modules on PyPi.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/f/flit_core/flit_core-3.8.0.tar.gz
-
Download MD5 sum: 7c41da13273f7787709a24f74e0f5a99
-
Download size: 40 KB
-
Estimated disk space required: 1.7 MB (add 25 MB for tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Flit_core Dependencies
Optional (for testing)
pytest-7.2.1 and testpath
Installation of Flit_core
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user flit_core
Assuming pytest-7.2.1 is installed, but the other optional dependency is not, the installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install testpath &&
python3 /usr/bin/pytest
deactivate
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/flit_core and /usr/lib/python3.11/site-packages/flit_core-3.8.0.dist-info
Hatchling-1.12.2
Introduction to Hatchling Module
Hatchling is an extensible, standards compliant build backend for python modules.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/h/hatchling/hatchling-1.12.2.tar.gz
-
Download MD5 sum: 5a6e2fd0c877feea7e71b9d72bbdbed9
-
Download size: 60 KB
-
Estimated disk space required: 2.3 MB
-
Estimated build time: less than 0.1 SBU
Hatchling Dependencies
Required
editables-0.3, packaging-23.0, pathspec-0.10.3, and pluggy-1.0.0
Installation of Hatchling
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a working test suite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user hatchling
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: hatchling
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/hatchling and /usr/lib/python3.11/site-packages/hatchling-1.12.2.dist-info
Short Descriptions
hatchling is a python module builder.
Hatch_vcs-0.3.0
Introduction to Hatch-vcs Module
Hatch_vcs is a Hatch plugin for versioning with several VCS.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/h/hatch-vcs/hatch_vcs-0.3.0.tar.gz
-
Download MD5 sum: c2f2cbe6851b7b2969cb4aa24c4b9b2f
-
Download size: 9.9 KB
-
Estimated disk space required: 436 KB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Hatch_vcs Dependencies
Required
hatchling-1.12.2 and setuptools_scm-7.1.0
Optional (for testing)
Installation of Hatch_vcs
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user hatch_vcs
To test the installation, issue pytest. One test fails.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/hatch_vcs and /usr/lib/python3.11/site-packages/hatch_vcs-0.3.0.dist-info
Idna-3.4
Introduction to Idna Module
The Idna module provides support for the Internationalized Domain Names in Applications (IDNA) protocol as specified in RFC 5891.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/i/idna/idna-3.4.tar.gz
-
Download MD5 sum: 13ea24e076212b6baae1135a116d1e0e
-
Download size: 179 KB
-
Estimated disk space required: 2.1 MB (with test)
-
Estimated build time: less than 0.1 SBU (with tests)
Idna Dependencies
Required
Optional (for testing)
Installation of Idna
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user idna
To test the installation, run pytest.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/idna and /usr/lib/python3.11/site-packages/idna-3.4.dist-info
Imagesize-1.4.1
Introduction to Imagesize Module
The imagesize package analyzes image file headers and returns the image size and DPI. It works with JPEG/JPEG 2000/PNG/GIF/TIFF/SVG/Netpbm/WebP formats.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/i/imagesize/imagesize-1.4.1.tar.gz
-
Download MD5 sum: 5a40586a25c07e1a8f16f6267252c321
-
Download size: 1.2 MB
-
Estimated disk space required: 1.8 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Imagesize Dependencies
Optional (for testing)
pytest-7.2.1 and requests-2.28.2
Installation of Imagesize
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user imagesize
To test the installation, run pytest.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/imagesize and /usr/lib/python3.11/site-packages/imagesize-1.4.1.dist-info
Iniconfig-2.0.0
Introduction to Iniconfig Module
Iniconfig is a small and simple INI-file parser module.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/i/iniconfig/iniconfig-2.0.0.tar.gz
-
Download MD5 sum: 3c030b3f51dcc3aca585de05635600e4
-
Download size: 4.5 KB
-
Estimated disk space required: 168 KB
-
Estimated build time: less than 0.1 SBU
Iniconfig Dependencies
Required
Installation of Iniconfig
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a test suite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user iniconfig
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/iniconfig and /usr/lib/python3.11/site-packages/iniconfig-2.0.0.dist-info
Markdown-3.4.1
Introduction to Markdown Module
Markdown is a Python parser for John Gruber’s Markdown specification.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/M/Markdown/Markdown-3.4.1.tar.gz
-
Download MD5 sum: 597656cf4feadf1998b0511201620202
-
Download size: 315 KB
-
Estimated disk space required: 4.1 MB (add 27 MB for tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Markdown Dependencies
Optional (for testing)
pytest-7.2.1, PyYAML-6.0, and coverage
Installation of Markdown
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user Markdown
Assuming pytest-7.2.1 and PyYAML-6.0 are installed and the other optional dependency is not, the installation can be tested with:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install coverage &&
python3 /usr/bin/pytest --ignore=tests/test_syntax/extensions/test_md_in_html.py
deactivate
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: markdown_py
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/markdown and /usr/lib/python3.11/site-packages/Markdown-3.4.1.dist-info
Short Descriptions
markdown_py converts markdown files to (x)html.
Meson_python-0.12.0
Introduction to Meson_python Module
The Meson_python module contains a Python build backend (PEP 517) for Meson projects.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/m/meson_python/meson_python-0.12.0.tar.gz
-
Download MD5 sum: 1c9a037d78a8f35d8704b98d37b638c4
-
Download size: 44 KB
-
Estimated disk space required: 1080 KB
-
Estimated build time: less than 0.1 SBU
Meson_python Dependencies
Required
Recommended (Runtime)
Installation of Meson_python
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a test suite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user meson_python
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/meson_python and /usr/lib/python3.11/site-packages/meson_python-0.12.0.dist-info
MessagePack-1.0.4
Introduction to MessagePack Module
MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it’s faster and smaller. This package provides CPython bindings for reading and writing MessagePack data.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/m/msgpack/msgpack-1.0.4.tar.gz
-
Download MD5 sum: 1822cdb939e7531f7ad0f7f09b434f22
-
Download size: 126 KB
-
Estimated disk space required: 1.9 MB (add 0.3 MB for tests)
-
Estimated build time: less than 0.1 SBU
MessagePack Dependencies
Required
cython-0.29.33 and setuptools_scm-7.1.0
Optional (for testing)
Installation of MessagePack
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user msgpack
To test the installation issue pytest.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/msgpack-1.0.4.dist-info and /usr/lib/python3.11/site-packages/msgpack
Pathspec-0.10.3
Introduction to Pathspec Module
Pathspec is a utility library for pattern matching of file paths.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/p/pathspec/pathspec-0.10.3.tar.gz
-
Download MD5 sum: d89408b52aff020ac768a14c0ef1c7de
-
Download size: 45 KB
-
Estimated disk space required: 912 KB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Pathspec Dependencies
Optional (for testing)
Installation of Pathspec
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user pathspec
To test the installation, issue pytest.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/pathspec and /usr/lib/python3.11/site-packages/pathspec-0.10.3.dist-info
Pluggy-1.0.0
Introduction to Pluggy Module
The Pluggy package gives users the ability to extend or modify the behaviour of a host program by installing a plugin for that program. The plugin code will run as part of normal program execution, changing or enhancing certain aspects of it. In essence, pluggy enables function hooking so a user can build “pluggable” systems.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/p/pluggy/pluggy-1.0.0.tar.gz
-
Download MD5 sum: daa6fddfb6cd364f3c82e52098911e4b
-
Download size: 50 KB
-
Estimated disk space required: 636 KB (add 26 MB for tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Pluggy Dependencies
Recommended
Optional (for testing)
pytest-7.2.1 and pytest-benchmark
Installation of Pluggy
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user pluggy
Assuming pytest-7.2.1 is installed, but the other optional dependencies are not, the installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install pytest-benchmark &&
python3 /usr/bin/pytest
deactivate
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/pluggy and /usr/lib/python3.11/site-packages/pluggy-1.0.0.dist-info
Py-1.11.0
Introduction to Py Module
The Py library is a Python development support library used in Pytest. It is deprecated and should be removed at some point in time, but part of it is still used in Pytest.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/p/py/py-1.11.0.tar.gz
-
Download MD5 sum: bde7dcc1cb452a1e10206ef2f811ba88
-
Download size: 203 KB
-
Estimated disk space required: 2.8 MB
-
Estimated build time: less than 0.1 SBU
Py Dependencies
Recommended
Installation of Py
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
Due to the deprecation of this package, the test suite is not maintained and cannot be run.
pip3 install --no-index --find-links dist --no-cache-dir --no-user py
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/py and /usr/lib/python3.11/site-packages/py-1.11.0.dist-info
Pyproject-Metadata-0.7.0
Introduction to Pyproject-Metadata Module
The Pyproject-Metadata module contains a data class for PEP 621 metadata with support for “core metadata” (PEP 643) generation.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/p/pyproject-metadata/pyproject-metadata-0.7.0.tar.gz
-
Download MD5 sum: 7e02d67678d5b722c06436393d3a905a
-
Download size: 8 KB
-
Estimated disk space required: 212 KB
-
Estimated build time: less than 0.1 SBU
Pyproject-Metadata Dependencies
Required
Installation of Pyproject-Metadata
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a test suite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user pyproject-metadata
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/pyproject_metadata and /usr/lib/python3.11/site-packages/pyproject_metadata-0.7.0.dist-info
Pytz-2022.7.1
Introduction to Pytz Module
The Pytz library brings the IANA tz database into Python. It allows accurate and cross-platform timezone calculations.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/p/pytz/pytz-2022.7.1.tar.gz
-
Download MD5 sum: 5acd981a81dcdc6aadddf4d7e5116b98
-
Download size: 306 KB
-
Estimated disk space required: 9.1 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Pytz dependencies
Optional (for testing)
Installation of Pytz
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user pytz
To test the installation, run pytest. A few warnings are issued.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/pytz and /usr/lib/python3.11/site-packages/pytz-2022.7.1.dist-info
Setuptools_scm-7.1.0
Introduction to Setuptools_scm Module
The Setuptools_scm package is used to extract Python package versions from git or hg metadata instead of declaring them.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/s/setuptools_scm/setuptools_scm-7.1.0.tar.gz
-
Download MD5 sum: 158dc741637fb4fa4b955c62bd2c08be
-
Download size: 70 KB
-
Estimated disk space required: 1.6 MB (with tests)
-
Estimated build time: less than 0.1 SBU (add 0.4 SBU for tests)
Setuptools_scm Dependencies
Required
packaging-23.0 and typing_extensions-4.4.0
Optional (for testing)
git-2.39.2, Mercurial-6.3.2, and pytest-7.2.1
Installation of Setuptools_scm
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user setuptools_scm
The installation can be tested with pytest. A few tests may fail if your git configuration is not the one expected by the test suite.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/setuptools_scm and /usr/lib/python3.11/site-packages/setuptools_scm-7.1.0.dist-info
Smartypants-2.0.1
Introduction to Smartypants Module
Smartypants translates plain ASCII punctuation characters into “smart” typographic punctuation HTML entities.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/leohemsted/smartypants.py/archive/v2.0.1/smartypants-2.0.1.tar.gz
-
Download MD5 sum: 27957540f4718e892039b2ed208c78f3
-
Download size: 24 KB
-
Estimated disk space required: 344 KB
-
Estimated build time: less than 0.1 SBU
Installation of Smartypants
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a working test suite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user smartypants
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: smartypants
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/smartypants-2.0.1.dist-info
Short Descriptions
smartypants translates ASCII punctuation to HTML punctuation.
Snowballstemmer-2.2.0
Introduction to Snowballstemmer Module
The Snowballstemmer package is a small string processing language for creating stemming algorithms for use in Information Retrieval, plus a collection of stemming algorithms implemented using it. Stemming maps different forms of the same word to a common “stem” — for example, the English stemmer maps connection, connections, connective, connected, and connecting to connect. So a searching for connected would also find documents which only have the other forms.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/s/snowballstemmer/snowballstemmer-2.2.0.tar.gz
-
Download MD5 sum: 4332ddc7bbee0f344a03915b2ad59a54
-
Download size: 85 KB
-
Estimated disk space required: 3.8 MB
-
Estimated build time: less than 0.1 SBU
Installation of Snowballstemmer
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a test suite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user snowballstemmer
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/snowballstemmer and /usr/lib/python3.11/site-packages/snowballstemmer-2.2.0.dist-info
Sphinxcontrib-applehelp-1.0.3
Introduction to Sphinxcontrib-applehelp Module
The Sphinxcontrib-applehelp package is a Sphinx extension which outputs Apple help books.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-applehelp/sphinxcontrib.applehelp-1.0.3.tar.gz
-
Download MD5 sum: 3300454be23f6aa880eae08d2e1eee94
-
Download size: 20 KB
-
Estimated disk space required: 2.0 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Sphinxcontrib-applehelp Dependencies
Optional (for testing)
pytest-7.2.1 and sphinx-6.1.3 (circular dependency)
Installation of Sphinxcontrib-applehelp
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinxcontrib-applehelp
To test the installation, run pytest. Several warnings may be issued, due to the use of deprecated functions.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/sphinxcontrib and /usr/lib/python3.11/site-packages/sphinxcontrib_applehelp-1.0.3.dist-info
Sphinxcontrib-devhelp-1.0.2
Introduction to Sphinxcontrib-devhelp Module
The Sphinxcontrib-devhelp package is a Sphinx extension which outputs Devhelp documents.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-devhelp/sphinxcontrib-devhelp-1.0.2.tar.gz
-
Download MD5 sum: 94069c5cdb5079c445f5477fa6107016
-
Download size: 17 KB
-
Estimated disk space required: 2.7 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Sphinxcontrib-devhelp Dependencies
Optional (for testing)
pytest-7.2.1 and sphinx-6.1.3 (circular dependency)
Installation of Sphinxcontrib-devhelp
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinxcontrib-devhelp
To test the installation, run pytest.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/sphinxcontrib and /usr/lib/python3.11/site-packages/sphinxcontrib_devhelp-1.0.2.dist-info
Sphinxcontrib-htmlhelp-2.0.0
Introduction to Sphinxcontrib-htmlhelp Module
The Sphinxcontrib-htmlhelp package is a Sphinx extension which renders HTML help files.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-htmlhelp/sphinxcontrib-htmlhelp-2.0.0.tar.gz
-
Download MD5 sum: 70765b55395a3c20233631802902c840
-
Download size: 27 KB
-
Estimated disk space required: 3.1 MB (add 26 MB for tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Sphinxcontrib-htmlhelp Dependencies
Optional (for testing)
pytest-7.2.1, sphinx-6.1.3 (circular dependency), and html5lib
Installation of Sphinxcontrib-htmlhelp
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinxcontrib-htmlhelp
Assuming pytest-7.2.1 is installed, but the other optional dependency is not, the installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install html5lib &&
sed -i 's/text()/read_&/' tests/test_htmlhelp.py &&
python3 /usr/bin/pytest
deactivate
the sed … command is needed because of a change in Sphinx API for versions greater than 5.0.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/sphinxcontrib and /usr/lib/python3.11/site-packages/sphinxcontrib_htmlhelp-2.0.0.dist-info
Sphinxcontrib-jquery-2.0.0
Introduction to Sphinxcontrib-jquery Module
The Sphinxcontrib-jquery package is a Sphinx extension which includes jQuery on newer Sphinx releases.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-jquery/sphinxcontrib-jquery-2.0.0.tar.gz
-
Download MD5 sum: 9ac903391167c33761baa58278546dd4
-
Download size: 2.6 KB
-
Estimated disk space required: 176 KB
-
Estimated build time: less than 0.1 SBU
Sphinxcontrib-jquery Dependencies
Optional (for testing)
Installation of Sphinxcontrib-jquery
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a testsuite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinxcontrib-jquery
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/sphinxcontrib and /usr/lib/python3.11/site-packages/sphinxcontrib_jquery-2.0.0.dist-info
Sphinxcontrib-jsmath-1.0.1
Introduction to Sphinxcontrib-jsmath Module
The Sphinxcontrib-jsmath package is a Sphinx extension which renders display math in HTML via JavaScript.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-jsmath/sphinxcontrib-jsmath-1.0.1.tar.gz
-
Download MD5 sum: e45179f0a3608b6766862e0f34c23b62
-
Download size: 5.7 KB
-
Estimated disk space required: 324 KB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Sphinxcontrib-jsmath Dependencies
Optional (for testing)
pytest-7.2.1 and sphinx-6.1.3 (circular dependency)
Installation of Sphinxcontrib-jsmath
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinxcontrib-jsmath
The installation can be tested with the following commands:
sed -i 's/text()/read_&/' tests/test_jsmath.py &&
pytest
the sed … command is needed because of a change in Sphinx API for versions greater than 5.0.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/sphinxcontrib and /usr/lib/python3.11/site-packages/sphinxcontrib_jsmath-1.0.1.dist-info
Sphinxcontrib-qthelp-1.0.3
Introduction to Sphinxcontrib-qthelp Module
The Sphinxcontrib-qthelp package is a Sphinx extension which outputs QtHelp documents.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-qthelp/sphinxcontrib-qthelp-1.0.3.tar.gz
-
Download MD5 sum: 93216721f3e154cce12d1e9c3307b415
-
Download size: 21 KB
-
Estimated disk space required: 2.8 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Sphinxcontrib-qthelp Dependencies
Optional (for testing)
pytest-7.2.1 and sphinx-6.1.3 (circular dependency)
Installation of Sphinxcontrib-qthelp
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinxcontrib-qthelp
The installation can be tested with the following commands:
sed -i 's/text()/read_&/' tests/test_qthelp.py &&
pytest
The sed … command is needed because of a change in Sphinx API for versions greater than 5.0.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/sphinxcontrib and /usr/lib/python3.11/site-packages/sphinxcontrib_qthelp-1.0.3.dist-info
Sphinxcontrib-serializinghtml-1.1.5
Introduction to Sphinxcontrib-serializinghtml Module
The Sphinxcontrib-serializinghtml package is a Sphinx extension which outputs “serialized” HTML files (json and pickle).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/s/sphinxcontrib-serializinghtml/sphinxcontrib-serializinghtml-1.1.5.tar.gz
-
Download MD5 sum: d99d2edc7b26988dc5fa92163857bfbf
-
Download size: 21 KB
-
Estimated disk space required: 3.0 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
Sphinxcontrib-serializinghtml Dependencies
Optional (for testing)
pytest-7.2.1 and sphinx-6.1.3 (circular dependency)
Installation of Sphinxcontrib-serializinghtml
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user sphinxcontrib-serializinghtml
To test the installation, run pytest.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/sphinxcontrib and /usr/lib/python3.11/site-packages/sphinxcontrib_serializinghtml-1.1.5.dist-info
Typing_extensions-4.4.0
Introduction to Typing_extensions Module
The Typing_extensions module allows using new type system features not yet defined on the Python version in use on the system.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/t/typing_extensions/typing_extensions-4.4.0.tar.gz
-
Download MD5 sum: 5cfcb56ea6fc4972c3600c0030f4d136
-
Download size: 47 KB
-
Estimated disk space required: 528 KB
-
Estimated build time: less than 0.1 SBU
Typing_extensions Dependencies
Required
Installation of Typing_extensions
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a test suite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user typing_extensions
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/typing_extensions-4.4.0.dist-info
Typogrify-2.0.7
Introduction to Typogrify Module
Typogrify provides filters to enhance web typography, including support for Django and Jinja templates.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/t/typogrify/typogrify-2.0.7.tar.gz
-
Download MD5 sum: 63f38f80531996f187d2894cc497ba08
-
Download size: 13 KB
-
Estimated disk space required: 404 KB
-
Estimated build time: less than 0.1 SBU
Typogrify Dependencies
Required
Installation of Typogrify
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
This package does not come with a testsuite.
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user typogrify
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/typogrify and /usr/lib/python3.11/site-packages/typogrify-2.0.7.dist-info
Urllib3-1.26.14
Introduction to Urllib3 Module
The Urllib3 module is a powerful, user-friendly HTTP client for Python. It brings many critical features that are missing from the Python standard libraries.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.pythonhosted.org/packages/source/u/urllib3/urllib3-1.26.14.tar.gz
-
Download MD5 sum: 7e018ce0f7cddc0560fd4541b5febf06
-
Download size: 294 KB
-
Estimated disk space required: 3.2 MB (add 49 MB for tests)
-
Estimated build time: less than 0.1 SBU (0.7 SBU for tests)
Urllib3 Dependencies
Optional (for tests)
pytest-7.2.1, mock, PySocks, pytest-freezegun, pytest-timeout, python-dateutil, tornado, and trustme
Installation of Urllib3
Build the module:
pip3 wheel -w dist --no-build-isolation --no-deps $PWD
Now, as the root user:
pip3 install --no-index --find-links dist --no-cache-dir --no-user urllib3
Assuming pytest-7.2.1 is installed, but the other optional dependencies are not, the installation can be tested with the following commands:
python3 -m venv --system-site-packages testenv &&
source testenv/bin/activate &&
pip3 install trustme \
tornado \
python-dateutil \
mock \
pysocks \
pytest-timeout \
pytest-freezegun &&
python3 /usr/bin/pytest
deactivate
A few errors are known to occur.
Command Explanations
-w dist: builds the appropriate “wheel” for this module in the directory dist.
--no-build-isolation: tells pip3 to run the build in the system environment instead of creating a temporary build environment.
--no-deps: prevents pip3 from building wheels for the project’s dependencies.
--no-index: ignores the package index (only looking at –find-links URLs instead).
--find-links dist: looks for links to archives such as wheel (.whl) files in the directory dist.
--no-cache-dir: disables the cache to prevent a warning when installing as the root user.
--no-user: Prevent mistakenly running the install command as a non-root user.
--upgrade: Upgrade the package to the newest available version. This option is used with the install command if a version of the package is already installed.
--force-reinstall: Reinstall the package even if it is up-to-date. This option is used with the install command if reinstalling the package or reverting to an earlier version of the package.
--no-deps: Do not install package dependencies. This option may be needed with the –upgrade or –force-reinstall options.
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/lib/python3.11/site-packages/urllib3 and /usr/lib/python3.11/site-packages/urllib3-1.26.14.dist-info.
13.26 Ruby-3.2.1
Introduction to Ruby
The Ruby package contains the Ruby development environment. This is useful for object-oriented scripting.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.1.tar.xz
-
Download MD5 sum: 23617540ad13c57ed8dd9d4ed32192a5
-
Download size: 14 MB
-
Estimated disk space required: 461 MB (add 1.3 GB for C API docs)
-
Estimated build time: 1.4 SBU (using parallelism=4; add 5.0 SBU for tests; add 0.8 SBU for C API docs)
Ruby Dependencies
Required
Optional
Berkeley DB-5.3.28, Doxygen-1.9.6, Graphviz-7.1.0, rustc-1.67.1, Tk-8.6.13, Valgrind-3.20.0, and DTrace
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/ruby
Installation of Ruby
Install Ruby by running the following command:
./configure --prefix=/usr \
--enable-shared \
--without-valgrind \
--docdir=/usr/share/doc/ruby-3.2.1 &&
make
Optionally, build the CAPI documents by running the following commands:
make capi
To test the results, issue: make check. There are over 25,000 tests. Some tests related to ipv6 may indicate errors. If the tests are run in a directory that has a world writable component (e.g. /tmp) then several additional tests may fail. A few tests may fail due to system configuration expectations.
Now, as the root user:
make install
Note
If you have Ruby-On-Rails applications installed and did an upgrade of Ruby by installing this package, you might need to run an update there, too (as the root user):
cd /path/to/web/app
bundle update rake
and restart the webserver which serves the application.
Command Explanations
--enable-shared: This switch enables building the libruby shared library.
--disable-install-doc: This switch disables building and installing rdoc indexes and C API documents.
--disable-install-rdoc: This switch disables building and installing rdoc indexes.
--disable-install-capi: This switch disables building and installing C API documents.
--without-baseruby: This switch prevents using the system ruby if it is already installed. The build system will use the newly built version instead.
Contents
Installed Programs: bundle, bundler, erb, gem, irb, racc, rake, rbs, rdbg, rdoc, ri, ruby, and typeprof
Installed Libraries: libruby.so
Installed Directories: /usr/include/ruby-3.2.0, /usr/lib/ruby, /usr/share/doc/ruby-3.2.1 and /usr/share/ri
Short Descriptions
bundle creates bundles of Ruby Gems.
bundler manages an application’s dependencies throughout it’s lifecycle.
erb is a command line front-end for eRuby, which provides a templating system for Ruby.
gem is the command for RubyGems, which is a sophisticated package manager for Ruby. This is similar to Python’s ‘pip’ command.
irb is the interactive interface for Ruby.
rake is a make-like build utility for Ruby.
rdbg is an interactive debugger for Ruby.
rdoc generates Ruby documentation.
ri displays documentation from a database on Ruby classes, modules, and methods.
ruby is an interpreted scripting language for quick and easy object-oriented programming.
libruby.so contains the API functions required by Ruby.
13.27 Rustc-1.67.1
Introduction to Rust
The Rust programming language is designed to be a safe, concurrent, practical language.
This package is updated on a six-weekly release cycle. Because it is such a large and slow package to build, is at the moment only required by a few packages in this book, and particularly because newer versions tend to break older mozilla packages, the BLFS editors take the view that it should only be updated when that is necessary (either to fix problems, or to allow a new version of a package to build).
As with many other programming languages, rustc (the rust compiler) needs a binary from which to bootstrap. It will download a stage0 binary at the start of the build, so you cannot compile it without an Internet connection.
Note
Although BLFS usually installs in /usr, when you later upgrade to a newer version of rust the old libraries in /usr/lib/rustlib will remain, with various hashes in their names, but will not be usable and will waste space. The editors recommend placing the files in the /opt directory. In particular, if you have reason to rebuild with a modified configuration (e.g. using the shipped LLVM after building with shared LLVM, perhaps to compile crates for architectures which the BLFS LLVM build does not support) it is possible for the install to leave a broken cargo program. In such a situation, either remove the existing installation first, or use a different prefix such as /opt/rustc-1.67.1-build2.
If you prefer, you can of course change the prefix to /usr.
The current rustbuild build-system will use all processors, although it does not scale well and often falls back to just using one core while waiting for a library to compile. However it can be mostly limited to a specified number of processors by a combination of adding the switch --jobs <N> (e.g. ‘–jobs 4’ to limit to 4 processors) on each invocation of python3 ./x.py and using an environment variable CARGO_BUILD_JOBS=<N>. At the moment this is not effective when some of the rustc tests are run.
The current version of rust’s num_cpus crate now recognizes that cgroups can be used to restrict which processors it is allowed to use. So if your machine lacks DRAM (typically, less than 2GB DRAM per core) that might be an alternative to taking CPUs offline. That can be achieved by using systemd-run command with -p User=$(whoami) and -p AllowedCPUs=0-x (with x replaced with the number of CPU cores you want to use minus one) options.
At the moment Rust does not provide any guarantees of a stable ABI.
Note
Rustc defaults to building for ALL supported architectures, using a shipped copy of LLVM. In BLFS the build is only for the X86 architecture. If you intend to develop rust crates, this build may not be good enough for your purposes.
The build times of this version when repeated on the same machine are often reasonably consistent, but as with all compilations using rustc there can be some very slow outliers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://static.rust-lang.org/dist/rustc-1.67.1-src.tar.xz
-
Download MD5 sum: e5e47e53c52574ce89ea200e52819f81
-
Download size: 136 MB
-
Estimated disk space required: 8.5 GB (501 MB installed); add 7.5 GB if running the tests
-
Estimated build time: 13 SBU (including download time; add 16 SBU for tests, both using parallelism=4)
Rust Dependencies
Required
Recommended
cURL-7.88.1, libssh2-1.10.0, and LLVM-15.0.7 (built with -DLLVM_LINK_LLVM_DYLIB=ON so that rust can link to system LLVM instead of building its shipped version)
Note
If a recommended dependency is not installed, a shipped copy in the Rustc source tarball will be built and used.
Optional
GDB-13.1 (used by the test suite if it is present) and libgit2
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/rust
Installation of Rust
Note
| Currently Rust compiler produces SSE2 instructions for 32-bit x86, causing the generated code broken on 32-bit systems without a SSE2-capable processor. All x86 processor models released after 2004 should be SSE2-capable. Run **lscpu | grep sse2** as a test. If it outputs anything, your CPU is SSE2-capable and OK. Otherwise you may try to build this package on a SSE2-capable system with the following fix applied: |
sed 's@pentium4@pentiumpro@' -i \
compiler/rustc_target/src/spec/i686_unknown_linux_gnu.rs
And copy the resulting /opt/rustc-1.67.1 to the system without SSE2 capability. But this change is still under upstream review and not tested by BLFS editors.
To install into the /opt directory, remove any existing /opt/rustc symlink and create a new directory (i.e. with a different name if trying a modified build of the same version). As the root user:
mkdir -pv /opt/rustc-1.67.1 &&
ln -svfn rustc-1.67.1 /opt/rustc
Note
If multiple versions of Rust are installed in /opt, changing to another version only requires changing the /opt/rustc symbolic link and then running ldconfig.
Create a suitable config.toml file which will configure the build.
cat << EOF > config.toml
# see config.toml.example for more possible options
# See the 8.4 book for an old example using shipped LLVM
# e.g. if not installing clang, or using a version before 13.0
# tell x.py to not keep printing an annoying warning
changelog-seen = 2
[llvm]
# by default, rust will build for a myriad of architectures
targets = "X86"
# When using system llvm prefer shared libraries
link-shared = true
[build]
# omit docs to save time and space (default is to build them)
docs = false
# install extended tools: cargo, clippy, etc
extended = true
# Do not query new versions of dependencies online.
locked-deps = true
# Specify which extended tools (those from the default install).
tools = ["cargo", "clippy", "rustfmt"]
# Use the source code shipped in the tarball for the dependencies.
# The combination of this and the "locked-deps" entry avoids downloading
# many crates from Internet, and makes the Rustc build more stable.
vendor = true
[install]
prefix = "/opt/rustc-1.67.1"
docdir = "share/doc/rustc-1.67.1"
[rust]
channel = "stable"
description = "for BLFS 11.3"
# BLFS used to not install the FileCheck executable from llvm,
# so disabled codegen tests. The assembly tests rely on FileCheck
# and cannot easily be disabled, so those will anyway fail if
# FileCheck has not been installed.
#codegen-tests = false
[target.x86_64-unknown-linux-gnu]
# NB the output of llvm-config (i.e. help options) may be
# dumped to the screen when config.toml is parsed.
llvm-config = "/usr/bin/llvm-config"
[target.i686-unknown-linux-gnu]
# NB the output of llvm-config (i.e. help options) may be
# dumped to the screen when config.toml is parsed.
llvm-config = "/usr/bin/llvm-config"
EOF
Compile Rust by running the following commands:
{ [ ! -e /usr/include/libssh2.h ] ||
export LIBSSH2_SYS_USE_PKG_CONFIG=1; } &&
python3 ./x.py build
Note
The test suite will generate some messages in the systemd journal for traps on invalid opcodes, and for segmentation faults. In themselves these are nothing to worry about, just a way for the test to be terminated.
To run the tests (again using all available CPUs) issue:
python3 ./x.py test --verbose --no-fail-fast | tee rustc-testlog
If FileCheck from LLVM has not been installed, all 47 tests from the “assembly” suite will fail.
As with all large test suites, other tests might fail on some machines - if the number of additional failures is in the single digits, check the log for ‘failures:’ and review lines above that, particularly the ‘stderr:’ lines. Any mention of SIGSEGV or signal 11 in a failing test is a cause for concern.
If you get any other failing test which reports an issue number then you should search for that issue. For example, when rustc >= 1.41.1 was built with a version of sysllvm before 10.0 the test for issue 69225 failed https://github.com/rust-lang/rust/issues/69225 and that should be regarded as a critical failure (they released 1.41.1 because of it). Most other failures will not be critical.
Therefore, you should determine the number of failures.
The number of tests which passed and failed can be found by running:
grep '^test result:' rustc-testlog |
awk '{sum1 += $4; sum2 += $6} END { print sum1 " passed; " sum2 " failed" }'
The other available fields are $8 for those which were ignored (i.e. skipped), $10 for ‘measured’ and $12 for ‘filtered out’ but both those last two are probably zero.
Now, as the root user, install the package:
Note
If sudo or su is invoked for switching to the root user, ensure LIBSSH2_SYS_USE_PKG_CONFIG is correctly passed or the following command may completely rebuild this package. For sudo, use the --preserve-env=LIBSSH2_SYS_USE_PKG_CONFIG option. For su, do not use the - or --login.
python3 ./x.py install
Command Explanations
ln -svfn rustc-1.67.1 /opt/rustc: if this is not the first use of the /opt/rustc symlink, overwrite it by forcing, and use the ‘-n’ flag to avoid getting confusing results from e.g. ls -l.
targets = “X86”: this avoids building all the available linux cross-compilers (AArch64, MIPS, PowerPC, SystemZ, etc). Unfortunately, rust insists on installing source files for these below /opt/rustc/lib/src.
extended = true: this installs several tools (specified by the tools entry) alongside rustc.
tools = [“cargo”, “clippy”, “rustfmt”]: if the tools are not scecified, the absence of Miri now causes the install to fail. But Miri is not built in the stable channel. Some of the other tools are unlikely to be useful unless using (old) code analyzers or editing the standard library. This set match those from the ‘default’ profile in binary command rustup which are recommended for most users, except that the documentation was disabled at the start of the ‘[build]’ section.
channel = “stable”: this ensures only stable features can be used, the default in config.toml is to use development features, which is not appropriate for a released version.
[target.x86_64-unknown-linux-gnu]: the syntax of config.toml requires an llvm-config entry for each target for which system-llvm is to be used. Change the target to [target.i686-unknown-linux-gnu] if you are building on 32-bit x86. This whole section may be omitted if you wish to build against the shipped llvm, or do not have clang, but the resulting build will be larger and take longer.
export LIBSSH2_SYS_USE_PKG_CONFIG=1: Allow cargo to link to system libssh2.
–verbose: this switch can sometimes provide more information about a test which fails.
–no-fail-fast: this switch ensures that the test suite will not stop at the first error.
Configuring Rust
Configuration Information
If you installed rustc in /opt, you need to update the following configuration files so that rustc is correctly found by other packages and system processes.
As the root user, create the /etc/profile.d/rustc.sh file:
cat > /etc/profile.d/rustc.sh << "EOF"
# Begin /etc/profile.d/rustc.sh
pathprepend /opt/rustc/bin PATH
# Include /opt/rustc/man in the MANPATH variable to access manual pages
pathappend /opt/rustc/share/man MANPATH
# End /etc/profile.d/rustc.sh
EOF
Immediately after installation, update the current PATH for your current shell as a normal user:
source /etc/profile.d/rustc.sh
Contents
Installed Programs: cargo-clippy, cargo-fmt, cargo, clippy-driver, rust-gdb, rust-gdbgui, rust-lldb, rustc, rustdoc, and rustfmt
Installed Libraries: librustc-driver-<16-byte-hash>.so, libstd-<16-byte-hash>.so, and libtest-<16-byte-hash>.so
Installed Directories: ~/.cargo, /opt/rustc, symbolic link to /opt/rustc-1.67.1
Short Descriptions
cargo-clippy provides lint checks for a cargo package.
cargo-fmt formats all bin and lib files of the current crate using rustfmt.
cargo is the Package Manager for Rust.
clippy-driver provides lint checks for Rust.
rust-gdb is a wrapper script for gdb, pulling in Python pretty-printing modules installed in /opt/rustc-1.67.1/lib/rustlib/etc.
rust-gdbgui is a wrapper script for a graphical front end to gdb that runs in a browser.
rust-lldb is a wrapper script for LLDB (the LLVM debugger) pulling in the Python pretty-printing modules.
rustc is the rust compiler.
rustdoc generates documentation from rust source code.
rustfmt formats rust code.
libstd-<16-byte-hash>.so is the Rust Standard Library, the foundation of portable Rust software.
13.28 SCons-4.4.0
Introduction to SCons
SCons is a tool for building software (and other files) implemented in Python.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/scons/SCons-4.4.0.tar.gz
-
Download MD5 sum: 056b141b420583e8faef8b1c64bc43cf
-
Download size: 3.0 MB
-
Estimated disk space required: 23 MB
-
Estimated build time: less than 0.1 SBU
SCons Dependencies
Optional
docbook-xsl-nons-1.79.2 and libxslt-1.1.37
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/scons
Installation of SCons
Install SCons by running the following commands as the root user:
sed -i 's/env python/&3/' SCons/Utilities/*.py &&
python3 setup.py install --prefix=/usr \
--optimize=1 &&
mv -v /usr/lib/python3.11/site-packages/SCons-4.4.0-py3.11.egg/*.1 \
/usr/share/man/man1
Contents
Installed Programs: scons, scons-configure-cache, and sconsign
Installed Libraries: None
Installed Directory: /usr/lib/python3.11/site-packages/SCons
Short Descriptions
scons is a software construction tool.
scons-configure-cache shows or converts the configuration of an SCons cache directory.
sconsign prints SCons .sconsign file information.
13.29 slang-2.3.3
Introduction to slang
S-Lang (slang) is an interpreted language that may be embedded into an application to make the application extensible. It provides facilities required by interactive applications such as display/screen management, keyboard input and keymaps.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.jedsoft.org/releases/slang/slang-2.3.3.tar.bz2
-
Download MD5 sum: 69015c8300088373eb65ffcc6ed4db8c
-
Download size: 1.6 MB
-
Estimated disk space required: 22 MB (add 15 MB for tests)
-
Estimated build time: 0.4 SBU (add 0.5 SBU for tests)
Slang Dependencies
Optional
libpng-1.6.39, PCRE-8.45, and Oniguruma
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/slang
Installation of Slang
Note
This package does not support parallel build.
Install slang by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--with-readline=gnu &&
make -j1
To test the results, issue: make check.
Now, as the root user:
make install_doc_dir=/usr/share/doc/slang-2.3.3 \
SLSH_DOC_DIR=/usr/share/doc/slang-2.3.3/slsh \
install &&
chmod -v 755 /usr/lib/slang/v2/modules/*.so
Command Explanations
--with-readline=gnu: This parameter sets GNU Readline to be used by the parser interface instead of the slang internal version.
make install_doc_dir=/usr/share/doc/slang-2.3.3 SLSH_DOC_DIR=/usr/share/doc/slang-2.3.3/slsh install: This command installs this package with a versioned documentation installation directory.
Configuring slang
Config Files
~/.slshrc and /etc/slsh.rc
Contents
Installed Program: slsh
Installed Libraries: libslang.so and numerous support modules
Installed Directories: /usr/lib/slang, /usr/share/doc/slang-2.3.3 and /usr/share/slsh
Short Descriptions
slsh is a simple program for interpreting slang scripts. It supports dynamic loading of slang modules and includes a Readline interface for interactive use.
13.30 Subversion-1.14.2
Introduction to Subversion
Subversion is a version control system that is designed to be a compelling replacement for CVS in the open source community. It extends and enhances CVS’ feature set, while maintaining a similar interface for those already familiar with CVS. These instructions install the client and server software used to manipulate a Subversion repository. Creation of a repository is covered at Running a Subversion Server.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://archive.apache.org/dist/subversion/subversion-1.14.2.tar.bz2
-
Download MD5 sum: 9927b167d1c67d663ca63125907f6f69
-
Download size: 8.3 MB
-
Estimated disk space required: 208 MB (add 228 MB for bindings, 52 MB for docs, 1.3 GB for tests)
-
Estimated build time: 0.5 SBU (Using parallelism=4; add 1.9 SBU for bindings, 35 SBU for tests)
Subversion Dependencies
Required
Apr-Util-1.6.3 and SQLite-3.40.1
Recommended
Serf-1.3.9 (for handling http:// and https:// URLs)
Optional
Apache-2.4.55, Boost-1.81.0, Cyrus SASL-2.1.28, dbus-1.14.6, Doxygen-1.9.6 (for generating HTML documentation), gnome-keyring-42.1, libsecret-0.20.5, Py3c-1.4 (for the python bindings, and tests) Python-2.7.18 (with sqlite support for the tests), Ruby-3.2.1, SWIG-4.1.1 (for building Perl, Python and Ruby bindings), LZ4, and UTF8proc
Optional (for the Java Bindings)
One of OpenJDK-19.0.2, Dante or Jikes, JUnit 4 (to test the Java bindings) and apache-ant-1.10.13.
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/subversion
Installation of Subversion
First, adapt some Python scripts to use python3:
grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'
Next, adapt the Ruby bindings to Ruby-3.2:
sed -e 's/File.exists?/File.exist?/' \
-i subversion/bindings/swig/ruby/svn/util.rb \
subversion/bindings/swig/ruby/test/test_wc.rb
Install Subversion by running the following commands:
PYTHON=python3 ./configure --prefix=/usr \
--disable-static \
--with-apache-libexecdir \
--with-lz4=internal \
--with-utf8proc=internal &&
make
If you have Doxygen-1.9.6 installed and you wish to build the API documentation, issue:
doxygen doc/doxygen.conf
If you wish to build the Java bindings pass the --enable-javahl parameter to the configure command. In addition, if you want to run the Java test suite, you have to specify the location of the JUnit file by adding --with-junit=<path to junit jar> (for instance --with-junit=/usr/local/java/lib/junit-4.13.jar) to configure. The JUnit jar file is no longer included in apache-ant-1.10.13 and must be downloaded separately. To build the Java bindings, issue the following command:
make -j1 javahl
If you want to compile Perl, Python, or Ruby bindings, issue any of the following command:
make swig-pl # for Perl
make swig-py \
swig_pydir=/usr/lib/python3.11/site-packages/libsvn \
swig_pydir_extra=/usr/lib/python3.11/site-packages/svn # for Python
make swig-rb # for Ruby
To test the results, issue: make check. Four tests in the commit_tests.py, prop_tests.py, and update_tests.py suites are known to fail.
To test the results of any of the SWIG bindings, you can use any of the following commands: make check-swig-pl, make check-swig-py, or make check-swig-rb.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/subversion-1.14.2 &&
cp -v -R doc/* /usr/share/doc/subversion-1.14.2
If you built the Java bindings, issue the following command as the root user to install them:
make install-javahl
If you built the Perl, Python, or Ruby bindings, issue any of the following commands as the root user to install them:
make install-swig-pl
make install-swig-py \
swig_pydir=/usr/lib/python3.11/site-packages/libsvn \
swig_pydir_extra=/usr/lib/python3.11/site-packages/svn
make install-swig-rb
The java bindings need to be installed in order for the tests to run, since the tests attempt to look for them in CLASSPATH. To test the results of the Java bindings build, issue LANG=C make check-javahl.
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--with-apache-libexecdir: If Apache-2.4.55 is installed, the shared Apache modules are built. This switch allows to have those modules installed to Apache’s configured module dir instead of /usr/libexec. It has no effect if Apache is not installed.
--with-lz4=internal, --with-utf8proc=internal: Remove these switches if you have installed the optional dependencies.
--enable-javahl: enables compilation of Java high level bindings. Running make javahl is necessary to do the compilation.
--with-junit=<location of the junit jar file>: gives the location of the junit jar, otherwise the javahl tests cannot be run.
--disable-gmock: Do not use the Googlemock testing framework.
Configuring Subversion
Config Files
~/.subversion/config and /etc/subversion/config
Configuration Information
/etc/subversion/config is the Subversion system-wide configuration file. This file is used to specify defaults for different svn commands.
~/.subversion/config is the user’s personal configuration file. It is used to override the system-wide defaults set in /etc/subversion/config.
Contents
Installed Programs: svn, svnadmin, svnbench, svndumpfilter, svnfsfs, svnlook, svnmucc, svnrdump, svnserve, svnsync, and svnversion
Installed Libraries: libsvn_*-1.so and optionally, a Java library, the mod_dav_svn.so and and mod_authz_svn.so Apache HTTP DSO modules and various Perl, Python and Ruby modules.
Installed Directories: /usr/include/subversion-1, /usr/lib/perl5/site_perl/5.36/{,auto/}SVN, /usr/lib/python3.11/site-packages/{libsvn,svn}, /usr/lib/ruby/site_ruby/
Short Descriptions
svn is a command-line client program used to access Subversion repositories.
svnadmin is a tool for creating, tweaking or repairing a Subversion repository.
svnbench is a benchmarking tool.
svndumpfilter is a program for filtering Subversion repository dumpfile format streams.
svnfsfs is the FSFS (FileSystem atop of the FileSystem - Subversion filesystem implementation) repository manipulation tool.
svnlook is a tool for inspecting a Subversion repository.
svnmucc is a Multiple URL Command Client for Subversion.
svnrdump is a tool for dumping or loading a remote Subversion repository.
svnserve is a custom standalone server program, able to run as a daemon process or invoked by SSH.
svnsync is a Subversion repository synchronisation tool.
svnversion is used to report the version number and state of a working Subversion repository copy.
libsvn_*-1.so are the support libraries used by the Subversion programs.
mod_authz_svn.so is a plug-in module for the Apache HTTP server, used to authenticate users to a Subversion repository over the Internet or an intranet.
mod_dav_svn.so is a plug-in module for the Apache HTTP server, used to make a Subversion repository available to others over the Internet or an intranet.
13.31 Running a Subversion Server
Running a Subversion Server
This section will describe how to set up, administer and secure a Subversion server.
Subversion Server Dependencies
Required
Subversion-1.14.2 and OpenSSH-9.2p1
Setting up a Subversion Server.
The following instructions will install a Subversion server, which will be set up to use OpenSSH as the secure remote access method, with svnserve available for anonymous access.
Configuration of the Subversion server consists of the following steps:
1. Set Uup Users, Groups, and Permissions
You’ll need to be user root for the initial portion of configuration. Create the svn user and group with the following commands:
groupadd -g 56 svn &&
useradd -c "SVN Owner" -d /home/svn -m -g svn -s /bin/false -u 56 svn
If you plan to have multiple repositories, you should have a group dedicated to each repository for ease of administration. Create the svntest group for the test repository and add the svn user to that group with the following commands:
groupadd -g 57 svntest &&
usermod -G svntest -a svn
Additionally you should set umask 002 while working with a repository so that all new files will be writable by owner and group. This is made mandatory by creating a wrapper script for svn and svnserve:
mv /usr/bin/svn /usr/bin/svn.orig &&
mv /usr/bin/svnserve /usr/bin/svnserve.orig &&
cat >> /usr/bin/svn << "EOF"
#!/bin/sh
umask 002
/usr/bin/svn.orig "$@"
EOF
cat >> /usr/bin/svnserve << "EOF"
#!/bin/sh
umask 002
/usr/bin/svnserve.orig "$@"
EOF
chmod 0755 /usr/bin/svn{,serve}
Note
If you use Apache for working with the repository over HTTP, even for anonymous access, you should wrap /usr/sbin/httpd in a similar script.
2. Create a Subversion repository.
There are several ways to set up a subversion repository. It is recommended to have a look at the SVN Book corresponding chapter. A basic repository can be set up with the instructions below.
Create a new Subversion repository with the following commands (as the root user):
install -v -m 0755 -d /srv/svn &&
install -v -m 0755 -o svn -g svn -d /srv/svn/repositories &&
svnadmin create /srv/svn/repositories/svntest
Now that the repository is created, it should be populated with something useful. You’ll need to have a predefined directory layout set up exactly as you want your repository to look. For example, here is a sample BLFS layout setup with a root of svntest/. You’ll need to set up a directory tree similar to the following:
svntest/ # The name of the repository
trunk/ # Contains the existing source tree
BOOK/
bootscripts/
edguide/
patches/
scripts/
branches/ # Needed for additional branches
tags/ # Needed for tagging release points
Once you’ve created your directory layout as shown above, you are ready to do the initial import:
svn import -m "Initial import." \
</path/to/source/tree> \
file:///srv/svn/repositories/svntest
Now change owner and group information on the repository, and add an unprivileged user to the svn and svntest groups:
chown -R svn:svntest /srv/svn/repositories/svntest &&
chmod -R g+w /srv/svn/repositories/svntest &&
chmod g+s /srv/svn/repositories/svntest/db &&
usermod -G svn,svntest -a <username>
svntest is the group assigned to the svntest repository. As mentioned earlier, this eases administration of multiple repositories when using OpenSSH for authentication. Going forward, you’ll need to add your unprivileged user, and any additional users that you wish to have write access to the repository, to the svn and svntest groups.
In addition, you’ll notice that the new repository’s db directory is set-groupID. If the reasoning is not immediately obvious, when using any external authentication method (such as ssh), the sticky bit is set so that all new files will be owned by the user, but group of svntest. Anyone in the svntest group can create files, but still give the entire group write access to those files. This avoids locking out other users from the repository.
Now, return to an unprivileged user account, and take a look at the new repository using svnlook:
svnlook tree /srv/svn/repositories/svntest/
Note
You may need to log out and back in again to refresh your group memberships. su <username> should work as well.
3. Configure the Server
As mentioned previously, these instructions will configure the server to use only ssh for write access to the repository and to provide anonymous access using svnserve. There are several other ways to provide access to the repository. These additional configurations are best explained at https://svnbook.red-bean.com/.
Access configuration needs to be done for each repository. Create the svnserve.conf file for the svntest repository using the following commands:
cp /srv/svn/repositories/svntest/conf/svnserve.conf \
/srv/svn/repositories/svntest/conf/svnserve.conf.default &&
cat > /srv/svn/repositories/svntest/conf/svnserve.conf << "EOF"
[general]
anon-access = read
auth-access = write
EOF
There is not a lot to the configuration file at all. You’ll notice that only the general section is required. Take a look at the svnserve.conf.default file for information on using svnserve’s built-in authentication method.
4. Starting the Server
To start the server at boot time, install the svnserve.service unit from the blfs-systemd-units-20220720 package:
make install-svnserve
Additionally, the instructions above require that svn server uses umask 002 so that all new files will be writable by owner and group. This can be achieved by creating a systemd unit override file by running the following command:
mkdir -p /etc/systemd/system/svnserve.service.d
echo "UMask=0002" > /etc/systemd/system/svnserve.service.d/99-user.conf
Options which are passed to svnserve daemon can be changed in /etc/default/svnserve.
13.32 SWIG-4.1.1
Introduction to SWIG
SWIG (Simplified Wrapper and Interface Generator) is a compiler that integrates C and C++ with languages including Perl, Python, Tcl, Ruby, PHP, Java, C#, D, Go, Lua, Octave, R, Scheme, and Ocaml. SWIG can also export its parse tree into Lisp s-expressions and XML.
SWIG reads annotated C/C++ header files and creates wrapper code (glue code) in order to make the corresponding C/C++ libraries available to the listed languages, or to extend C/C++ programs with a scripting language.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/swig/swig-4.1.1.tar.gz
-
Download MD5 sum: c7d55a1bca26752f3846c85b43c1a69c
-
Download size: 8.2 MB
-
Estimated disk space required: 82 MB (2.1 GB with tests)
-
Estimated build time: 0.1 SBU (add 7.8 SBU for tests; both using parallelism=4)
SWIG Dependencies
Required
Optional
Boost-1.81.0 for tests, and any of the languages mentioned in the introduction, as run-time dependencies
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/swig
Installation of SWIG
Install SWIG by running the following commands:
./configure --prefix=/usr \
--without-javascript \
--without-maximum-compile-warnings &&
make
To test the results, issue: PY3=1 make -k check TCL_INCLUDE=. The unsetting of the variable TCL_INCLUDE is necessary since it is not correctly set by configure. The tests are only executed for the languages installed on your machine, so the disk space and SBU values given for the tests may vary, and should be considered as mere orders of magnitude. According to SWIG’s documentation, the failure of some tests should not be considered harmful. The go tests are buggy and may generate a lot of meaningless output.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/swig-4.1.1 &&
cp -v -R Doc/* /usr/share/doc/swig-4.1.1
Command Explanations
--without-maximum-compile-warnings: disables compiler ansi conformance enforcement, which triggers errors in the Lua headers (starting with Lua 5.3).
--without-<language>: allows disabling the building of tests and examples for
Contents
Installed Programs: swig and ccache-swig
Installed Library: None
Installed Directories: /usr/share/doc/swig-4.1.1 and /usr/share/swig
Short Descriptions
swig takes an interface file containing C/C++ declarations and SWIG special instructions, and generates the corresponding wrapper code needed to build extension modules.
ccache-swig is a compiler cache, which speeds up re-compilation of C/C++/SWIG code.
13.33 Sysprof-3.46.0
Introduction to Sysprof
The sysprof package contains a statistical and system-wide profiler for Linux.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/sysprof/3.46/sysprof-3.46.0.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/sysprof/3.46/sysprof-3.46.0.tar.xz
-
Download MD5 sum: af4e88af759419ad19b196d1166de485
-
Download size: 508 KB
-
Estimated disk space required: 48 MB
-
Estimated build time: 0.1 SBU (using parallelism=4)
Sysprof Dependencies
Required
desktop-file-utils-0.26, GTK-4.8.3, itstool-2.0.7, JSON-GLib-1.6.6, libadwaita-1.2.2, libdazzle-3.44.0, libunwind-1.6.2, and Polkit-122
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/sysprof
Installation of Sysprof
Install Sysprof by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr .. &&
ninja
To test the results, issue: ninja test.
Now, as the root user:
ninja install
Contents
Installed Programs: sysprof, sysprof-agent, and sysprof-cli
Installed Libraries: libsysprof-4.so, libsysprof-capture-4.a, libsysprof-memory-4.so, libsysprof-speedtrack-4.so, and libsysprof-ui-5.so
Installed Directories: /usr/include/sysprof-4, /usr/include/sysprof-ui-5, and /usr/share/help/*/sysprof
Short Descriptions
sysprof is a graphical interface to sysprof.
sysprof-agent is used to profile applications in containers.
sysprof-cli is a command line interface to sysprof.
libsysprof-4.so provides API functions for profiling processes running on a system.
libsysprof-capture-4.a provides a hook used to capture statistics from a process.
libsysprof-memory-4.so provides API functions for capturing memory statistics.
libsysprof-speedtrack-4.so provides API functions for tracking the speed of a running process.
libsysprof-ui-4.so provides API functions for the sysprof GUI.
13.34 Tk-8.6.13
Introduction to Tk
The Tk package contains a TCL GUI Toolkit.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/tcl/tk8.6.13-src.tar.gz
-
Download MD5 sum: 95adc33d55a133ee29bc9f81efdf31b2
-
Download size: 4.3 MB
-
Estimated disk space required: 25 MB
-
Estimated build time: 0.3 SBU (add 2.0 SBU for tests)
Tk Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/tk
Installation of Tk
Install Tk by running the following commands:
cd unix &&
./configure --prefix=/usr \
--mandir=/usr/share/man \
$([ $(uname -m) = x86_64 ] && echo --enable-64bit) &&
make &&
sed -e "s@^\(TK_SRC_DIR='\).*@\1/usr/include'@" \
-e "/TK_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" \
-i tkConfig.sh
Running the tests is not recommended. Failures will be reported during the tests, depending on the screen resolution/capabilities, fonts installed and other X related parameters, but the end report can show 0 failures. Some tests will steal focus and some might crash your X Server. To test the results anyway, issue: make test. Ensure you run it from an X Window display device with the GLX extensions loaded, but even so, tests might hang.
Now, as the root user:
make install &&
make install-private-headers &&
ln -v -sf wish8.6 /usr/bin/wish &&
chmod -v 755 /usr/lib/libtk8.6.so
Command Explanations
$([ $(uname -m) = x86_64 ] && echo --enable-64bit): This switch is used to enable 64 bit support in Tk on 64 bit operating systems.
make install-private-headers: This command is used to install the Tk library interface headers used by other packages if they link to the Tk library.
ln -v -sf wish8.6 /usr/bin/wish: This command is used to create a compatibility symbolic link to the wish8.6 file as many packages expect a file named wish.
sed -e … tkConfig.sh: The Tk package expects that its source tree is preserved so that packages depending on it for their compilation can utilize it. This sed removes the references to the build directory and replaces them with saner system-wide locations.
Contents
Installed Programs: wish and wish8.6
Installed Libraries: libtk8.6.so and libtkstub8.6.a
Installed Directory: /usr/lib/tk8.6
Short Descriptions
wish is a symlink to the wish8.6 program.
wish8.6 is a simple shell containing the Tk toolkit that creates a main window and then processes Tcl commands.
libtk8.6.so contains the API functions required by Tk.
13.35 Vala-0.56.4
Introduction to Vala
Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in 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/vala/0.56/vala-0.56.4.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/vala/0.56/vala-0.56.4.tar.xz
-
Download MD5 sum: dbb3d5b4616211e68093676099d44d56
-
Download size: 3.8 MB
-
Estimated disk space required: 195 MB (add 18 MB for tests)
-
Estimated build time: 0.5 SBU (using parallelism=4; add 1.7 SBU for tests)
Vala Dependencies
Required
Recommended
Graphviz-7.1.0 (Required for valadoc)
Optional
dbus-1.14.6 (Required for the tests), libxslt-1.1.37 (Required for generating the documentation), help2man, jing, and weasyprint
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/vala
Installation of Vala
Install Vala by running the following commands:
./configure --prefix=/usr &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-valadoc: This option is required if Graphviz-7.1.0 is not installed.
Contents
Installed Programs: vala, vala-0.56, valac, valadoc, vala-gen-introspect, and vapigen (symlinks); valac-0.56, valadoc-0.56, vala-gen-introspect-0.56, and vapigen-0.56
Installed Library: libvala-0.56.so and libvaladoc-0.56.so
Installed Directories: /usr/include/vala-0.56, /usr/include/valadoc-0.56, /usr/lib/vala-0.56, /usr/lib/valadoc-0.56, /usr/share/vala, /usr/share/vala-0.56, /usr/share/valadoc-0.56, and /usr/share/devhelp/books/vala-0.56
Short Descriptions
valac is a compiler that translates Vala source code into C source and header files.
valadoc is a documentation generator for generating API documentation from Vala source code based on libvala.
vala-gen-introspect generates a GI file for GObject and GLib based packages.
vapigen is an utility which generates Vala API (VAPI) files from GI files.
libvala-0.56.so contains the Vala API functions.
13.36 Valgrind-3.20.0
Introduction to Valgrind
Valgrind is an instrumentation framework for building dynamic analysis tools. There are Valgrind tools that can automatically detect many memory management and threading bugs, and profile programs in detail. Valgrind can also be used to build new tools.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://sourceware.org/pub/valgrind/valgrind-3.20.0.tar.bz2
-
Download (FTP): ftp://sourceware.org/pub/valgrind/valgrind-3.20.0.tar.bz2
-
Download MD5 sum: e3ca8e03c6c527e80e7da5135a1b6beb
-
Download size: 16 MB
-
Estimated disk space required: 381 MB (add 66 MB for tests)
-
Estimated build time: 0.5 SBU (Using parallelism=4; add 8.1 SBU for tests)
Valgrind Dependencies
Optional
GDB-13.1 (for tests), LLVM-15.0.7 (with Clang), and Which-2.21 (for tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/valgrind
Installation of Valgrind
Install Valgrind by running the following commands:
sed -i 's|/doc/valgrind||' docs/Makefile.in &&
./configure --prefix=/usr \
--datadir=/usr/share/doc/valgrind-3.20.0 &&
make
To test the results, issue: make regtest. The tests may hang forever if GDB-13.1 is not installed. Some tests are known to hang also, depending on the version of glibc. A few tests can fail in various suites. Problematic tests can be disabled by changing the prereq: line in the corresponding .vgtest file to prereq: false. For example:
sed -e 's@prereq:.*@prereq: false@' \
-i {helgrind,drd}/tests/pth_cond_destroy_busy.vgtest
Note
The OpenMP tests are skipped if libgomp has been compiled with --enable-linux-futex (the default). If needed, just recompile the libgomp library from the gcc build tree, passing --disable-linux-futex to configure, storing the library to some place and changing the link from /usr/lib/libgomp.so.1 to point to the new library.
Now, as the root user:
make install
Command Explanations
sed -i … docs/Makefile.in : This sed provides for installing the documentation in a versioned directory.
--enable-lto=yes: This option allows building Valgrind with LTO (link time optimization). This produces a smaller/faster Valgrind (up to 10%), but build time increases to about 5.5 SBU.
Contents
Installed Programs: callgrind_annotate, callgrind_control, cg_annotate, cg_diff, cg_merge, ms_print, valgrind, valgrind-di-server, valgrind-listener, and vgdb
Installed Libraries: None
Installed Directories: /usr/lib/valgrind, /usr/libexec/valgrind, /usr/include/valgrind, and /usr/share/doc/valgrind-3.20.0
Short Descriptions
valgrind is a program for debugging and profiling Linux executables.
callgrind_annotate takes an output file produced by the Valgrind tool Callgrind and prints the information in an easy-to-read form.
callgrind_control controls programs being run by the Valgrind tool Callgrind.
cg_annotate is a post-processing tool for the Valgrind tool Cachegrind.
cg_diff compares two Cachegrind output files.
cg_merge merges multiple Cachegrind output files into one.
ms_print takes an output file produced by the Valgrind tool Massif and prints the information in an easy-to-read form.
valgrind-di-server is a server that reads debuginfo from objects stored on a different machine.
valgrind-listener listens on a socket for Valgrind commentary.
vgdb is an intermediary between Valgrind and GDB or a shell.
13.37 yasm-1.3.0
Introduction to yasm
Yasm is a complete rewrite of the NASM-2.16.01 assembler. It supports the x86 and AMD64 instruction sets, accepts NASM and GAS assembler syntaxes and outputs binary, ELF32 and ELF64 object formats.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
-
Download MD5 sum: fc9e586751ff789b34b1f21d572d96af
-
Download size: 1.5 MB
-
Estimated disk space required: 27 MB (additional 12 MB for the tests)
-
Estimated build time: 0.1 SBU (additional 0.1 SBU for the tests)
yasm Dependencies
Optional
Python-2.7.18 and cython-0.29.33
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/yasm
Installation of yasm
Install yasm by running the following commands:
sed -i 's#) ytasm.*#)#' Makefile.in &&
./configure --prefix=/usr &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
sed -i ‘s#) ytasm.*#)#’ Makefile.in: This sed prevents it compiling 2 programs (vsyasm and ytasm) that are only of use on Microsoft Windows.
Contents
Installed Program: yasm
Installed Library: libyasm.a
Installed Directory: /usr/include/libyasm
Short Descriptions
yasm is a portable, retargetable assembler that supports the x86 and AMD64 instruction sets, accepts NASM and GAS assembler syntaxes and outputs binaries in ELF32 and ELF64 object formats.
libyasm.a provides all of the core functionality of yasm, for manipulating machine instructions and object file constructs.
Java
13.38 Java-19.0.2
About Java
Java is different from most of the packages in LFS and BLFS. It is a programming language that works with files of bytecode to obtain instructions and executes them in a Java Virtual Machine (JVM). An introductory java program looks like:
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello, World");
}
}
This program is saved as HelloWorld.java. The file name, HelloWorld, must match the class name. It is then converted into byte code with javac HelloWorld.java. The output file is HelloWorld.class. The program is executed with java HelloWorld. This creates a JVM and runs the code. The ‘class’ extension must not be specified.
Several class files can be combined into one file with the jar command. This is similar to the standard tar command. For instance, the command jar cf myjar.jar *.class will combine all class files in a directory into one jar file. These act as library files.
The JVM can search for and use classes in jar files automatically. It uses the CLASSPATH environment variable to search for jar files. This is a standard list of colon-separated directory names similar to the PATH environment variable.
Binary JDK Information
Creating a JVM from source requires a set of circular dependencies. The first thing that’s needed is a set of programs called a Java Development Kit (JDK). This set of programs includes java, javac, jar, and several others. It also includes several base jar files.
To start, we set up a binary installation of the JDK created by the BLFS editors. It is installed in the /opt directory to allow for multiple installations, including a source based version.
This package is known to build and work properly using an LFS 11.3 platform.
Binary Package Information
-
Binary download (x86): https://anduin.linuxfromscratch.org/BLFS/OpenJDK/OpenJDK-19.0.2/OpenJDK-19.0.2+7-i686-bin.tar.xz
-
Download MD5 sum: e5a9566e3d3a667b9098908b72855da8
-
Download size (binary): 159 MB
-
Estimated disk space required: 307 MB
-
Binary download (x86_64): https://anduin.linuxfromscratch.org/BLFS/OpenJDK/OpenJDK-19.0.2/OpenJDK-19.0.2+7-x86_64-bin.tar.xz
-
Download MD5 sum: 1fccb8cd903f395ba1a80c678ba2a2e0
-
Download size (binary): 160 MB
-
Estimated disk space required: 324 MB
Java Binary Runtime Dependencies
alsa-lib-1.2.8, Cups-2.4.2, giflib-5.2.1, and Xorg Libraries
Installation of the Java BinaryJDK
Begin by extracting the appropriate binary tarball for your architecture and changing to the extracted directory. Install the binary OpenJDK with the following commands as the root user:
install -vdm755 /opt/OpenJDK-19.0.2-bin &&
mv -v * /opt/OpenJDK-19.0.2-bin &&
chown -R root:root /opt/OpenJDK-19.0.2-bin
The binary version is now installed. You may create a symlink to that version by issuing, as the root user:
ln -sfn OpenJDK-19.0.2-bin /opt/jdk
You may now proceed to Configuring the JAVA environment, where the instructions assume that the above link exists.
13.39 OpenJDK-19.0.2
Introduction to OpenJDK
OpenJDK is an open-source implementation of Oracle’s Java Standard Edition platform. OpenJDK is useful for developing Java programs, and provides a complete runtime environment to run Java programs.
This package is known to build and work properly using an LFS 11.3 platform.
OpenJDK is GPL’d code, with a special exception made for non-free projects to use these classes in their proprietary products. In similar fashion to the LGPL, which allows non-free programs to link to libraries provided by free software, the GNU General Public License, version 2, with the Classpath Exception allows third party programs to use classes provided by free software without the requirement that the third party software also be free. As with the LGPL, any modifications made to the free software portions of a third party application, must also be made freely available.
Note
The OpenJDK source includes a very thorough, open source test suite using the JTreg test harness. The testing instructions below allow testing the just built JDK for reasonable compatibility with the proprietary Oracle JDK. However, in order for an independent implementation to claim compatibility, it must pass a proprietary JCK/TCK test suite. No claims of compatibility, or even partial compatibility, may be made without passing an approved test suite.
Oracle does provide free community access, on a case by case basis, to a closed toolkit to ensure 100% compatibility with its proprietary JDK. Neither the binary version provided on the Java-19.0.2 page nor the JVM built with the instructions below have been tested against the TCK. Any version that is built using the instructions given, cannot claim to be compatible with the proprietary JDK, without the user applying for, and completing the compatibility tests themselves.
With that in mind, the binaries produced using this build method are regularly tested against the TCK by the members listed on the site above. In addition to the community license above, an educational, non-commercial license for the TCK can be obtained here.
Package Information
-
Download (HTTP): https://github.com/openjdk/jdk19u/archive/jdk-19.0.2-ga.tar.gz
-
Download MD5 sum: 2c5489f4830bce40240dc4f76f890156
-
Download Size: 103 MB
-
Estimated disk space required: 5.1 GB (add 595 MB for tests)
-
Estimated build time: 3.8 SBU with 4 jobs (add 41 SBU for tests with 4 jobs)
Additional Downloads
Optional test harness
-
https://anduin.linuxfromscratch.org/BLFS/OpenJDK/OpenJDK-19.0.2/jtreg-6.1+1.tar.gz
-
Download MD5 sum: 49e6bfa2506e96f461a01f9421a0961c
-
Download Size: 8.0 MB
OpenJDK Dependencies
Required Dependencies
An existing binary (Java-19.0.2 or an earlier built version of this package. The instructions below assume that you are using Configuring the JAVA environment), alsa-lib-1.2.8, cpio-2.13, Cups-2.4.2, UnZip-6.0, Which-2.21, Xorg Libraries, and Zip-3.0
Recommended
make-ca-1.12, giflib-5.2.1, Little CMS-2.14, libjpeg-turbo-2.1.5.1, libpng-1.6.39, and Wget-1.21.3
Optional
git-2.39.2, Graphviz-7.1.0, Mercurial-6.3.2, pandoc, and pigz
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/openjdk
Installation of OpenJDK
If you have downloaded the optional test harness, unpack it now:
tar -xf ../jtreg-6.1+1.tar.gz
Note
Before proceeding, you should ensure that your environment PATH variable contains the location of the Java compiler used for bootstrapping OpenJDK. This is the only requirement for the environment. Modern Java installations do not need JAVA_HOME and CLASSPATH is not used here. Furthermore, OpenJDK developers recommend unsetting JAVA_HOME.
The build system does not allow the -j switch in MAKEFLAGS. See the command explanation for --with-jobs= for more information on customizing parallelization.
Configure and build the package with the following commands:
unset JAVA_HOME &&
bash configure --enable-unlimited-crypto \
--disable-warnings-as-errors \
--with-stdc++lib=dynamic \
--with-giflib=system \
--with-jtreg=$PWD/jtreg \
--with-lcms=system \
--with-libjpeg=system \
--with-libpng=system \
--with-zlib=system \
--with-version-build="7" \
--with-version-pre="" \
--with-version-opt="" \
--with-cacerts-file=/etc/pki/tls/java/cacerts &&
make images
To test the results, you will need to execute the jtreg program. You can set the number of concurrent tests by adding the -conc:<X> value in the below command (tests will run sequentially otherwise):
export JT_JAVA=$(echo $PWD/build/*/jdk) &&
jtreg/bin/jtreg -jdk:$JT_JAVA -automatic -ignore:quiet -v1 \
test/jdk:tier1 test/langtools:tier1 &&
unset JT_JAVA
For more control over the test suite, review the documentation available in jtreg/doc/jtreg/usage.txt. To review the results, see the files JTreport/test_{jdk,langtools}/text/stats.txt and JTreport/test_{jdk,langtools}/text/summary.txt. You should expect to see around 60 failures and 10 errors.
Install the package with the following commands as the root user:
install -vdm755 /opt/jdk-19.0.2+7 &&
cp -Rv build/*/images/jdk/* /opt/jdk-19.0.2+7 &&
chown -R root:root /opt/jdk-19.0.2+7 &&
for s in 16 24 32 48; do
install -vDm644 src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png \
/usr/share/icons/hicolor/${s}x${s}/apps/java.png
done
Note
If you only wish to install the Java Runtime Environment, you can substitute build/*/images/jre in the above cp command.
There are now two OpenJDK SDKs installed in /opt. You should decide on which one you would like to use as the default. Normally, you would opt for the just installed OpenJDK. If so, do the following as the root user:
ln -v -nsf jdk-19.0.2+7 /opt/jdk
If desired, you can create .desktop files to add entries in the menu for java and jconsole. The needed icons have already been installed. As the root user:
mkdir -pv /usr/share/applications &&
cat > /usr/share/applications/openjdk-java.desktop << "EOF" &&
[Desktop Entry]
Name=OpenJDK Java 19.0.2 Runtime
Comment=OpenJDK Java 19.0.2 Runtime
Exec=/opt/jdk/bin/java -jar
Terminal=false
Type=Application
Icon=java
MimeType=application/x-java-archive;application/java-archive;application/x-jar;
NoDisplay=true
EOF
cat > /usr/share/applications/openjdk-jconsole.desktop << "EOF"
[Desktop Entry]
Name=OpenJDK Java 19.0.2 Console
Comment=OpenJDK Java 19.0.2 Console
Keywords=java;console;monitoring
Exec=/opt/jdk/bin/jconsole
Terminal=false
Type=Application
Icon=java
Categories=Application;System;
EOF
Command Explanations
bash configure…: the top level configure is a wrapper around the autotools one. It is not executable and must be run through bash.
--enable-unlimited-crypto: Because of limitations on the usage of cryptography in some countries, there is the possibility to limit the size of encryption keys and the use of some algorithms in a policy file. This switch allows to ship a policy file with no restriction. It is the responsibility of the user to ensure proper adherence to the law.
--disable-warnings-as-errors: This switch disables use of -Werror in the build.
--with-stdc++lib=dynamic: This switch forces the build system to link to libstdc++.so (dynamic) instead of libstdc++.a (static).
--with-jobs=<X>: The -j passed to make does not work with make as invoked here. By default, the build system will use the number of CPUs - 1.
--with-jtreg=$PWD/jtreg: This switch tells configure where to find jtreg. Omit if you have not downloaded the optional test suite.
--with-{giflib,lcms,libjpeg,libpng,zlib}=system: These switches force the build system to use the system libraries instead of the bundled versions.
--with-version-build: Currently, the build system does not include the build number in the version string. It has to be specified here.
--with-version-pre: This switch allows you to prefix the version string with a custom string.
--with-version-opt: This switch allows you to add an optional build description to the version string.
--with-cacerts-file=/etc/pki/tls/java/cacerts: Specifies where to find a cacerts file, /etc/pki/tls/java/ on a BLFS system. Otherwise, an empty one is created. You can use the /usr/sbin/make-ca –force command to generate it, once you have installed the Java binaries.
--with-boot-jdk: This switch provides the location of the temporary JDK. It is normally not needed if java is found in the PATH.
Configuring OpenJDK
Configuration Information
Normally, the JAVA environment has been configured after installing the binary version, and can be used with the just built package as well. Review Configuring the JAVA environment in case you want to modify something.
To test if the man pages are correctly installed, issue source /etc/profile and man java to display the respective man page.
Setting up the JRE Certificate Authority Certificates (cacerts) file
If you have run the instructions on the make-ca-1.12 page, you only need to create a symlink in the default location for the cacerts file. As user root:
ln -sfv /etc/pki/tls/java/cacerts /opt/jdk/lib/security/cacerts
To check the installation, issue:
cd /opt/jdk
bin/keytool -list -cacerts
At the prompt Enter keystore password:, enter changeit (the default) or just press the “Enter” key. If the cacerts file was installed correctly, you will see a list of the certificates with related information for each one. If not, you need to reinstall them.
Contents
Installed Programs: jar, jarsigner, java, javac, javadoc, javap, jcmd, jconsole, jdb, jdeprscan, jdeps, jfr, jhsdb, jimage, jinfo, jlink, jmap, jmod, jpackage, jps, jrunscript, jshell, jstack, jstat, jstatd, jwebserver, keytool, rmiregistry, and serialver
Installed Libraries: /opt/jdk-19.0.2/lib/*
Installed Directory: /opt/jdk-19.0.2
Short Descriptions
jar combines multiple files into a single jar archive.
jarsigner signs jar files and verifies the signatures and integrity of a signed jar file.
java launches a Java application by starting a Java runtime environment, loading a specified class and invoking its main method.
javac reads class and interface definitions, written in the Java programming language, and compiles them into bytecode class files.
javadoc parses the declarations and documentation comments in a set of Java source files and produces a corresponding set of HTML pages describing the classes, interfaces, constructors, methods, and fields.
javap disassembles a Java class file.
jcmd is a utility to send diagnostic command requests to a running Java Virtual Machine.
jconsole is a graphical console tool to monitor and manage both local and remote Java applications and virtual machines.
jdb is a simple command-line debugger for Java classes.
jdeprscan scans class or jar files for uses of deprecated API elements.
jdeps shows the package-level or class-level dependencies of Java class files.
jfr is a tool for working with “Flight Recorder” files.
jhsdb is a tool to analyze the content of a core dump from a crashed Java Virtual Machine (JVM).
jimage is used to list, extract, verify, or get information about modules in jimage format.
jinfo prints Java configuration information for a given Java process, core file, or a remote debug server.
jlink is used to assemble and optimize a set of modules and their dependencies into a custom runtime image.
jmap prints shared object memory maps or heap memory details of a given process, core file, or a remote debug server.
jmod creates JMOD files and lists the content of existing JMOD files.
jpackage generates java application packages and images.
jps lists the instrumented JVMs on the target system.
jrunscript is a command line script shell.
jshell is an interactive tool for learning the Java programming language and prototyping Java code.
jstack prints Java stack traces of Java threads for a given Java process, core file, or a remote debug server.
jstat displays performance statistics for an instrumented JVM.
jstatd is an RMI server application that monitors for the creation and termination of instrumented JVMs.
jwebserver provides a minimal HTTP server, designed to be used for prototyping, testing, and debugging.
keytool is a key and certificate management utility.
rmiregistry creates and starts a remote object registry on the specified port on the current host.
serialver returns the serialVersionUID for one or more classes in a form suitable for copying into an evolving class.
13.40 Configuring the JAVA environment
Setting up the environment
After the package installation is complete, the next step is to make sure that the system can properly find the files. If you set up your login scripts as recommended in The Bash Shell Startup Files, update the environment by creating the openjdk.sh script, as the root user:
cat > /etc/profile.d/openjdk.sh << "EOF"
# Begin /etc/profile.d/openjdk.sh
# Set JAVA_HOME directory
JAVA_HOME=/opt/jdk
# Adjust PATH
pathappend $JAVA_HOME/bin
# Add to MANPATH
pathappend $JAVA_HOME/man MANPATH
# Auto Java CLASSPATH: Copy jar files to, or create symlinks in, the
# /usr/share/java directory.
AUTO_CLASSPATH_DIR=/usr/share/java
pathprepend . CLASSPATH
for dir in `find ${AUTO_CLASSPATH_DIR} -type d 2>/dev/null`; do
pathappend $dir CLASSPATH
done
for jar in `find ${AUTO_CLASSPATH_DIR} -name "*.jar" 2>/dev/null`; do
pathappend $jar CLASSPATH
done
export JAVA_HOME
unset AUTO_CLASSPATH_DIR dir jar
# End /etc/profile.d/openjdk.sh
EOF
If Sudo-1.9.13p1 is installed, the super user should have access to the above variables. Execute the following commands as the root user:
cat > /etc/sudoers.d/java << "EOF"
Defaults env_keep += JAVA_HOME
Defaults env_keep += CLASSPATH
EOF
To use mandb to include the OpenJDK man pages in its database, issue, as the root user:
cat >> /etc/man_db.conf << "EOF" &&
# Begin Java addition
MANDATORY_MANPATH /opt/jdk/man
MANPATH_MAP /opt/jdk/bin /opt/jdk/man
MANDB_MAP /opt/jdk/man /var/cache/man/jdk
# End Java addition
EOF
mkdir -p /var/cache/man &&
mandb -c /opt/jdk/man
Setting up the Certificate Authority Certificates for Java
OpenJDK uses its own format for the CA certificates. The Java security modules use $JAVA_HOME/lib/security/cacerts by default. In order to keep all the certificates in one place, we use /etc/ssl/java/cacerts. The instructions on the make-ca-1.12 page previously created the file located in /etc/ssl/java. Set up a symlink in the default location as the root user:
ln -sfv /etc/pki/tls/java/cacerts /opt/jdk/lib/security/cacerts
Use the following command to check if the cacerts file has been successfully installed:
/opt/jdk/bin/keytool -list -cacerts
At the prompt Enter keystore password:, enter changeit (the default) or just press the “Enter” key. If the cacerts file was installed correctly, you will see a list of the certificates with related information for each one. If not, you need to reinstall them.
If you later install a new JVM, you just have to create the symlink in the default location to be able to use the cacerts.
13.41 apache-ant-1.10.13
Introduction to Apache Ant
The Apache Ant package is a Java-based build tool. In theory, it is like the make command, but without make’s wrinkles. Ant is different. Instead of a model that is extended with shell-based commands, Ant is extended using Java classes. Instead of writing shell commands, the configuration files are XML-based, calling out a target tree that executes various tasks. Each task is run by an object that implements a particular task interface.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://archive.apache.org/dist/ant/source/apache-ant-1.10.13-src.tar.xz
-
Download MD5 sum: 4cf5c6728612f4787eda265b0a2d266b
-
Download size: 3.7 MB
-
Estimated disk space required: 242 MB
-
Estimated build time: 0.3 SBU (excluding download time)
Apache Ant Dependencies
Required
A JDK (Java Binary or OpenJDK-19.0.2) and GLib-2.74.5
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/apache-ant
Installation of Apache Ant
Build a limited bootstrap version of Apache Ant using the following command:
./bootstrap.sh
Now fix a problem when the next command tries to download a file from a problem site:
sed -e 's|ftp.software.ibm.com|anduin.linuxfromscratch.org|' \
-e 's|software/awdtools/netrexx|BLFS/apache-ant|' \
-i fetch.xml
Download the runtime dependencies using the fetch.xml ant build script:
bootstrap/bin/ant -f fetch.xml -Ddest=optional
Build Apache Ant by running the following command:
./build.sh -Ddist.dir=$PWD/ant-1.10.13 dist
Install, as the root user:
cp -rv ant-1.10.13 /opt/ &&
chown -R root:root /opt/ant-1.10.13 &&
ln -sfv ant-1.10.13 /opt/ant
Command Explanations
bootstrap/bin/ant -f fetch.xml -Ddest=optional: Downloads the missing dependencies to the user’s home directory, and copies them into the source tree (in the lib/optional directory, where ant picks them up at build time).
./build.sh -Ddist.dir=$PWD/ant-1.10.13 dist: This command builds, tests, then installs the package into a temporary directory.
Configuring Apache Ant
Config Files
/etc/ant/ant.conf, ~/.ant/ant.conf, and ~/.antrc
Configuration Information
Some packages will require ant to be in the search path and the ANT_HOME environment variable defined. Satisfy these requirements by issuing, as the root user:
cat > /etc/profile.d/ant.sh << EOF
# Begin /etc/profile.d/ant.sh
pathappend /opt/ant/bin
export ANT_HOME=/opt/ant
# End /etc/profile.d/ant.sh
EOF
The above instructions assume you have configured your system as described in The Bash Shell Startup Files.
Contents
Installed Programs: ant, antRun, antRun.pl, complete-ant-cmd.pl, runant.pl, and runant.py
Installed Libraries: Numerous ant*.jar and dependent libraries in $ANT_HOME/lib
Installed Directories: /opt/ant-1.10.13
Short Descriptions
ant is a Java based build tool used by many packages instead of the conventional make program.
antRun is a support script used to start ant build scripts in a given directory.
antRun.pl is a Perl script that provides similar functionality offered by the antRun script.
complete-ant-cmd.pl is a Perl script that allows Bash to complete an ant command-line.
runant.pl is a Perl wrapper script used to invoke ant.
runant.py is a Python wrapper script used to invoke ant.
ant*.jar files are the Apache Ant Java class libraries.