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 12.1
platform.
Package Information
Additional Downloads
libxml2 Dependencies
Recommended
ICU-74.2
Optional
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 \
--with-icu \
PYTHON=/usr/bin/python3 \
--docdir=/usr/share/doc/libxml2-2.12.5 &&
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
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:
/etc/init.d/httpd stop
Now, as the root
user:
make install
Finally, prevent some packages from unnecessarily linking to ICU
using the following commands as the root
user:
rm -vf /usr/lib/libxml2.la &&
sed '/libs=/s/xml2.*/xml2"/' -i /usr/bin/xml2-config
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-icu
: This switch
enables support for ICU, which
provides additional Unicode support. This is needed for some
packages in BLFS, such as for QtWebEngine.
PYTHON=/usr/bin/python3
:
Allows building the libxml2 module with Python3 instead of Python2.