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-10.1
platform.
Package Information
Additional Downloads
libxml2 Dependencies
Optional
ICU-68.2 (see
below) and Valgrind-3.17.0 (may be used in the tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libxml2
Installation of libxml2
Apply a patch to fix various errors:
patch -p1 -i ../libxml2-2.9.10-security_fixes-1.patch
Fix a problem generating the Python3 module with Python-3.9.0 and
later:
sed -i '/if Py/{s/Py/(Py/;s/)/))/}' python/{types.c,libxml.c}
If you are going to run the tests, disable one test that causes the
Python tests to terminate early with an error:
sed -i 's/test.test/#&/' python/tests/tstLastError.py
If, and only if, you are using ICU-68.2, fix a build breakage caused by that
version by running the following command:
sed -i 's/ TRUE/ true/' encoding.c
Install libxml2 by running the
following commands:
./configure --prefix=/usr \
--disable-static \
--with-history \
--with-python=/usr/bin/python3 &&
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.17.0 is
installed and you want to check 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
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-68.2, for better unicode support.
--with-threads
: Add this switch to
enable multithread support.