#### Beyond Linux® From Scratch (systemd Edition) - Version 11.1

### Chapter 9. General Libraries

- Prev

  libxkbcommon-1.4.0

- Next

  libxslt-1.1.35

- Up
- Home

# libxml2-2.9.13

## Introduction to libxml2

The libxml2 package contains libraries and utilities used for parsing XML files.

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

### Package Information

- Download (HTTP): https://download.gnome.org/sources/libxml2/2.9/libxml2-2.9.13.tar.xz

- Download MD5 sum: 824470f8cc325ae6b01f174b842c321f

- Download size: 3.1 MB

- Estimated disk space required: 103 MB (with tests)

- Estimated build time: 0.6 SBU (with tests)

### Additional Downloads

- Optional Testsuite: https://www.w3.org/XML/Test/xmlts20130923.tar.gz - This enables make check to do complete testing.

### libxml2 Dependencies

#### Optional

ICU-70.1 (see below) and Valgrind-3.18.1 (may be used in the tests)

### Note

The old Python2 module can be built after `libxml2.so` has been installed, see Python2 libxml2-2.9.13 module.

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

## Installation of libxml2

Install libxml2 by running the following commands:

    ./configure --prefix=/usr    \
                --disable-static \
                --with-history   \
                --with-python=/usr/bin/python3 \
                --docdir=/usr/share/doc/libxml2-2.9.13 &&
    make

If you downloaded the testsuite, issue the following command:

    tar xf ../xmlts20130923.tar.gz

To test the results, issue: make check > check.log. A summary of the results can be obtained with grep -E '^Total|expected' check.log. If Valgrind-3.18.1 is installed and you want to check for memory leaks, replace check with check-valgrind.

### Note

The tests use http://localhost/ to test parsing of external entities. If the machine where you run the tests serves as a web site, the tests may hang, depending on the content of the file served. It is therefore recommended to shut down the server during the tests, as the `root` user:

    systemctl stop httpd.service

Now, as the `root` user:

    make install

## Command Explanations

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

`--with-history`: This switch enables Readline support when running xmlcatalog or xmllint in shell mode.

`--with-python=/usr/bin/python3`: Allows building the libxml2 module with Python3 instead of Python2.

`--with-icu`: Add this switch if you have built ICU-70.1, for better unicode support.

## Contents

Installed Programs: xml2-config, xmlcatalog, and xmllint
Installed Libraries: libxml2.so and libxml2mod.so (Python3 module)
Installed Directories: /usr/include/libxml2, /usr/lib/cmake/libxml2, /usr/share/doc/libxml2-2.9.13, /usr/share/doc/libxml2-python-2.9.13, and /usr/share/gtk-doc/html/libxml2

### Short Descriptions

xml2-config | determines the compile and linker flags that should be used to compile and link programs that use `libxml2`
xmlcatalog | is used to monitor and manipulate XML and SGML catalogs
xmllint | parses XML files and outputs reports (based upon options) to detect errors in XML coding
`libxml2.so` | provides functions for programs to parse files that use the XML format
`libxml2mod.so` | is the interface for Python3 to use `libxml2.so`

Last updated on

- Prev

  libxkbcommon-1.4.0

- Next

  libxslt-1.1.35

- Up
- Home