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-8.3
platform.
Package Information
Additional Downloads
libxml2 Dependencies
Optional
Python-2.7.15
Note
Some packages which utilize libxml2 (such as GNOME Doc Utils) need the Python3 module installed to function
properly and some packages will not build properly if the
Python3 module is not available.
The old Python2 module can be
built after libxml2.so
has been
installed, see libxml2-2.9.8 (for
Python2).
Optional
ICU-62.1 and
Valgrind-3.13.0 (may be used in the tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libxml2
Installation of libxml2
First apply a patch, which prevents segfaults in the Python module,
when built by Python-3.7.0:
patch -Np1 -i ../libxml2-2.9.8-python3_hack-1.patch
To ensure that the Python module
can be built by Python-3.7.0, run:
sed -i '/_PyVerify_fd/,+1d' python/types.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.13.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.
sed -i '/_PyVerify_fd/,+1d'
python/types.c
: This fixes the Python3 code to build with gcc-7.
--with-history
: This switch
enables Readline support when
running xmlcatalog or
xmllint in shell
mode.
--with-python=/usr/bin/python3
:
Allows to build the libxml2 module with Python3 instead of Python2.
--with-icu
: Add this switch if you have
built ICU-62.1, for better unicode support.
--with-threads
: Add this switch to
enable multithread support.