Installation of libxml2
First, remove an unnecessary call to git in meson.build
:
sed -i "/'git'/,+3d" meson.build
Install libxml2 by running the
following commands:
mkdir build &&
cd build &&
meson setup .. \
--prefix=/usr \
-D history=enabled \
-D icu=enabled &&
ninja
If you wish to build and install the manual pages and the
documentation, you should have libxslt-1.1.43 and Doxygen-1.14.0 installed,
and run:
sed -e "/^dir_doc/s/\$/ + '-' + meson.project_version()/" \
-i ../meson.build &&
meson configure -D docs=enabled &&
ninja
If you downloaded the test suite, issue the following command:
tar xf ../../xmlts20130923.tar.gz -C ..
To test the results, issue: ninja
test.
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:
ninja install
The xml2-config may
return flags needed to link against the static library for the
project, including the references to the ICU-77.1 libraries. That would be
pointless because we only install the shared library. To make
things worse, that may cause some packages using libxml2 to be unnecessarily linked against
some ICU-77.1
library, then those packages will need a rebuild if ICU is upgraded
to a new major version. Fix this by issuing, as root
:
sed "s/--static/--shared/" -i /usr/bin/xml2-config
Command Explanations
-D history=enabled
: This
switch enables Readline support
when running xmlcatalog or xmllint in shell mode.
-D icu=enabled
: This switch
enables support for ICU, which
provides additional Unicode support. This is needed for some
packages in BLFS, such as for QtWebEngine.
-D python=enabled
: This switch enables
the libxml2 Python bindings. Note that those bindings are
deprecated due to flaws in the API design and they will be removed
in libxml2-2.16.