libxml2-2.12.1

Introduction to libxml2

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

[Note]

Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

Package Information

Additional Downloads

libxml2 Dependencies

Optional

ICU-74.1 (see below) and Valgrind-3.22.0 (may be used in the tests)

Installation of libxml2

Install libxml2 by running the following commands:

./configure --prefix=/usr           \
            --sysconfdir=/etc       \
            --disable-static        \
            --with-history          \
            PYTHON=/usr/bin/python3 \
            --docdir=/usr/share/doc/libxml2-2.12.1 &&
make

If you downloaded the test suite, issue the following command:

tar xf ../xmlts20130923.tar.gz

To test the results, issue: make check > check.log. This command will print several lines of error messages like Failed to parse xstc/... because some test files are missing and these messages can be safely ignored. A summary of the results can be obtained with grep -E '^Total|expected|Ran' check.log. If Valgrind-3.22.0 is installed and you want to check for memory leaks, replace check with check-valgrind.

[Note]

Note

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

systemctl stop httpd.service

Now, as the root user:

make install

Command Explanations

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

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

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

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

[Note]

Note

If the --with-icu switch is used, the BLFS editors recommend removing unneeded references to the ICU libraries. This will prevent many packages that use libxml2 from unnecessarily linking to the ICU libraries. This, in turn, will prevent the need for rebuilding many packages when upgrading ICU to a new major version. After installing libxml2, as the root user, issue:

rm -vf /usr/lib/libxml2.la &&
sed '/libs=/s/xml2.*/xml2"/' -i /usr/bin/xml2-config

Contents

Installed Programs: xml2-config, xmlcatalog, and xmllint
Installed Libraries: libxml2.so
Installed Directories: /usr/include/libxml2, /usr/lib/cmake/libxml2, /usr/share/doc/libxml2-2.12.1, 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