configure.ac

Branch


Log

Author Commit Date CI Message
Nick Wellnhofer 1763281c 2025-09-08T15:29:23 Remove LZMA support
Nick Wellnhofer 86cf217d 2025-06-03T19:35:03 build: Disable Schematron support by default
Nick Wellnhofer 4e5945fc 2025-05-17T14:41:28 cmake: Avoid overlinking with non-CMake libxml2-config.cmake Align libxml2-config.cmake generated by Autotools and Meson with the CMake version and only add dependencies to libraries when linking statically. Also set LIBXML_STATIC for static builds. Fixes #918.
Nick Wellnhofer e9366ffb 2025-05-02T22:26:06 tests: Remove XSTC Python tests I think this has been ported to runsuite.c. Convert part of Makefile.am into a script to download the test suite.
Nick Wellnhofer bbe5827c 2025-04-28T17:21:05 doc: Build docs with Doxygen and xsltproc Build the documentation as part of the build process with support for all build systems. This adds a new configuration option --with-docs to build documentation. Required tools are Doxygen, xsltproc and the DocBook 4 XSLT stylesheets. Doxygen will also be required to build the Python bindings.
Nick Wellnhofer 95c2c523 2025-04-28T16:38:42 doc: Remove apibuild.py and old documentation The last weird maintenance script is gone now.
Nick Wellnhofer 75dde50b 2025-05-01T21:07:34 cmake: Fix installation directories in libxml2-config.cmake Use AX_RECURSIVE_EVAL with Autotools and remove hack using parent directories. Fixes #898.
Nick Wellnhofer 71cc2104 2025-04-21T11:10:20 autotools, cmake: Use SOABI for Python shared object This requires Python3 with CMake. Fixes #894.
Nick Wellnhofer b85d77d1 2025-04-20T14:31:24 http: Remove built-in HTTP client Stubs are retained for ABI compatibility. Fixes #631. Obsoletes #160.
Nick Wellnhofer fa931566 2025-04-14T17:34:39 build: Disable Python bindings by default
Nick Wellnhofer eb0c98eb 2025-03-31T16:55:23 autotools: Add comment regarding libtool versioning
Nick Wellnhofer 884c8996 2025-03-14T18:29:24 build: Don't make --with-legacy enable HTTP and LZMA The --with-legacy option only enables --with-zlib for now.
Nick Wellnhofer d9ea7650 2025-03-04T17:46:57 build: Restrict binary compatibility to 2.14 On ELF systems, this bumps the soname from libxml2.so.2 to libxml2.so.16. For historic reasons, the last component is the sum of major and minor version.
Nick Wellnhofer eed1a07d 2025-03-04T13:32:52 build: Remove version script
Nick Wellnhofer cdc5cfed 2025-03-04T13:26:51 legacy: Remove legacy symbols
Nick Wellnhofer e50d314a 2025-02-25T23:07:19 build: Add separate configuration option for RELAX NG Support for RELAX NG used to be enabled together with XML Schema support (--with-schemas). Now there's a separate option and a new feature macro LIBXML_RELAXNG_ENABLED.
Nick Wellnhofer bfe6af2e 2025-01-17T17:09:04 fuzz: Remove hacks to build lint fuzzer Don't include source file directly.
Nick Wellnhofer 260954c5 2024-12-26T18:17:45 autotools: Set AC_CONFIG_AUX_DIR This should make sure that autoreconf doesn't mess with parent directories. Should fix #833.
Nick Wellnhofer afeff9c5 2024-12-21T20:47:40 xinclude: Allow build without XPath This disables XPath queries and makes the tests fail, but might be useful.
Nick Wellnhofer de478472 2024-11-22T00:45:44 build: Remove unused variables
Nick Wellnhofer a5764b56 2024-11-21T22:18:36 build: Define XML_SYSCONFDIR in config.h Rename SYSCONFDIR macro to XML_SYSCONFDIR. Use AX_RECURSIVE_EVAL with Autotools. This is GPL v2 with Autoconf exception which shouldn't be a problem. Finally support meson.
Nick Wellnhofer b57e022d 2024-11-13T19:08:47 build: Check for icu-uc instead of icu-i18n This should be the ICU component we actually need.
Nick Wellnhofer 567f612d 2024-08-19T17:43:32 build: Check for declaration of glob() function Don't rely on presence of glob.h.
makise-homura 5c608609 2024-08-16T22:35:54 Eliminate false positive -Warray-bounds on some compilers This affects GCC 7.3, MinGW 7.3, and LCC 1.25 and 1.26. In some sense it reverts ad93f087.
Nick Wellnhofer e1291059 2024-07-22T22:22:48 build: Don't check for pthread.h The Autotools build still checks for pthread.h (and zlib.h and lzma.h) but the result isn't needed in config.h.
Nick Wellnhofer cc03c069 2024-07-22T22:15:09 build: Don't check for standard POSIX headers These headers should be available since early POSIX days and are required no matter what.
Nick Wellnhofer d7dc2eaf 2024-07-22T21:39:54 build: Don't check for dlfcn.h and dl.h It's enough to check for symbols.
Nick Wellnhofer 0172ffa9 2024-07-22T15:21:36 build: Only check for required headers
Nick Wellnhofer 3ef66611 2024-07-22T14:58:16 build: Rework mmap checks Switch to AC_CHECK_DECLS/check_symbol_exists. Don't check for sys/mman.h separately. Don't check for munmap.
Nick Wellnhofer e1657f3f 2024-07-22T14:33:14 build: Use AC_CHECK_DECLS/check_symbol_exists for getentropy This assumes that getentropy is declared in sys/random.h. Should fix issues on iOS. See #774.
Nick Wellnhofer e2a49afe 2024-07-03T20:18:24 build: Read version number from VERSION file
Nick Wellnhofer c3731347 2024-07-03T18:20:17 build: Introduce LIBXML_MINOR_COMPAT This is set to 0 for now but could be used to avoid ABI stability issues.
Nick Wellnhofer 1167c334 2024-06-28T21:51:21 encoding: Don't include iconv.h from libxml/encoding.h
Nick Wellnhofer 64685e98 2024-06-28T22:04:50 autotools: Remove NON_PC_LIBS Improves modularization.
Nick Wellnhofer c195f06f 2024-06-25T22:14:47 autotools: Use AX_GCC_FUNC_ATTRIBUTE from autoconf archives
Nick Wellnhofer 1afaa371 2024-06-25T22:06:36 build: Move definition of ATTRIBUTE_DESTRUCTOR to libxml.h
Sam James ec47add4 2024-06-24T01:06:08 configure.ac: fix bashisms '==' is a bashism, so use the POSIX '=' instead.
Nick Wellnhofer 0a279e2f 2024-06-22T04:00:33 tests: Remove old timing tests
Nick Wellnhofer 84a4f84c 2024-06-22T02:11:24 build: Don't check for required headers and functions Unless we are on Windows, the following POSIX headers are required. They're part of the earliest POSIX specs and it doesn't make sense to check for them. - fcntl.h - unistd.h - sys/stat.h - sys/time.h On Windows, io.h, fcntl.h and sys/stat.h are always available.
Nick Wellnhofer dc6f55cf 2024-06-22T00:35:14 build: Remove check for IPv6 Only check for availability of netdb.h.
Nick Wellnhofer 02326d72 2024-06-21T23:54:35 build: Remove socklen_t checks socklen_t has been mandated by POSIX for ages. Always use "socklen_t" or "int" on Win32.
Nick Wellnhofer 7ba6c8fe 2024-06-21T04:59:11 autotools: Remove libxml-2.0-uninstalled.pc
Nick Wellnhofer c106455c 2024-06-21T04:18:04 build: Set Cflags.private on Windows
Nick Wellnhofer fc4bd04b 2024-06-21T03:32:30 autotools: Remove unused variable
Nick Wellnhofer 4c1b8851 2024-06-21T03:26:54 autotools: Move MODULE_PLATFORM_LIBS into NON_PC_LIBS
Nick Wellnhofer 29bf09ec 2024-06-21T03:16:44 autotools: Remove XML_LIBTOOLLIBS
Nick Wellnhofer 02f519e6 2024-06-21T02:07:17 autotools: Use pkg-config to check for libreadline This handles static linking properly and avoids overlinking. Change the --with-readline default to no as it was before and raise an error if libreadline couldn't be found. Do the same for libhistory.
Nick Wellnhofer 2b0c4abb 2024-06-16T21:52:12 threads: Remove pthread weak symbol hack On Linux, we tried to detect the presence of libpthread to disable things like locks. This questionable hack doesn't work since glibc 2.34 which merged libpthread into libc.
Nick Wellnhofer 38488027 2024-06-16T21:16:43 xmllint: Support libreadline without history
Nick Wellnhofer b0fc67aa 2024-06-15T22:53:55 build: Remove --with-tree configuration option This option would allow for a smaller, but mostly useless minimal build. But it complicates the symbol availability logic in an insane way and requires specialized tools like our custom C parser in doc/apibuild.py. See #717.
Nick Wellnhofer 7cf7a54a 2024-06-15T22:27:40 build: Only enable linker version script in legacy mode The version script is deprecated but required for backward compatibility.
Nick Wellnhofer 898e5a14 2024-06-15T20:17:18 build: Remove compiler TLS warning
Nick Wellnhofer f070acc5 2024-06-14T23:51:31 autotools: Abort if external libraries couldn't be found This makes the configuration process more robust and deterministic. Before, we would silently disable options.
Nick Wellnhofer 669bd349 2024-06-12T18:20:01 xpointer: Remove support for XPointer locations The latest spec for what it essentially an XPath extension seems to be this working draft from 2002: https://www.w3.org/TR/xptr-xpointer/ The xpointer() scheme is listed as "being reviewed" in the XPointer registry since at least 2006. libxml2 seems to be the only modern software that tries to implement this spec, but the code has many bugs and quality issues. If you configure --with-legacy, old symbols are retained for ABI compatibility.
Nick Wellnhofer dba1ed85 2024-06-12T18:19:55 ftp: Remove FTP support Remove the built-in FTP client. If you configure --with-legacy, old symbols are retained for ABI compatibility.
Nick Wellnhofer b46decdf 2024-06-12T15:58:36 Bump version
Nick Wellnhofer ec09909d 2024-05-29T13:47:37 autotools: Fix pthread detection on FreeBSD pthread_join is defined by libc, so check for pthread_create instead. Should fix #725.
Nick Wellnhofer e349709a 2024-05-21T21:07:16 build: Remove --with-fexceptions configuration option
Nick Wellnhofer f524993e 2024-05-21T20:56:55 build: Clean up configuration options Remove run-debug from meson. Fix documentation.
Nick Wellnhofer 11ce63f0 2024-05-21T20:38:52 build: Don't check for isascii
Nick Wellnhofer 6f2a5973 2024-05-21T20:37:03 build: Don't check for uint32_t
Nick Wellnhofer 5c9e0ebe 2024-05-21T20:27:45 autotools: Change ICU message Only log non-default actions.
Nick Wellnhofer 54629e0f 2024-05-21T20:25:23 autotools: Remove --with-coverage configuration option
Nick Wellnhofer e80f27fc 2024-05-21T18:37:57 build: Don't check for inttypes.h This header isn't used.
Nick Wellnhofer dda69626 2024-05-21T18:31:37 autotools: Only check for networking headers if required
Nick Wellnhofer 3018842c 2024-05-20T23:51:01 build: Disable HTTP support by default
Nick Wellnhofer 609d2666 2024-05-01T23:46:46 Stop defining _REENTRANT This macro is obsolete, see `man feature_test_macros`.
Nick Wellnhofer d381e5de 2024-04-28T21:14:32 doc: Move doc/examples to example
Nick Wellnhofer 1cdfece1 2024-04-28T18:33:40 memory: Remove memory debugging This is useless compared to sanitizers or valgrind and has a considerable performance impact if enabled accidentally.
Nick Wellnhofer f7f14537 2024-04-02T12:56:11 build: Disable support for compression libraries by default libxml2 has limited support for reading and writing compressed data with the help of zlib and liblzma which used to be enabled by default. This only works for files read from the file system and never worked with memory buffers. My guess is that this feature is virtually unused. In light of the recently discovered xz backdoor, it's a good time to disable these features by default to reduce attack surface and prepare for eventual removal. If --with-legacy is passed to the Autotools build, compression will be enabled by default as before.
Nick Wellnhofer e97b4d84 2024-02-13T11:37:05 autotools: Remove useless substitution Fixes #689.
Nick Wellnhofer 24059ae9 2024-01-10T18:02:20 autotools: Readd --with-xptr-locs configuration option The option was removed accidentally in 4e4c89a4.
Nick Wellnhofer d7d300ba 2024-01-04T17:50:11 parser: Remove remnants of runtime debugging feature Apparently, this feature was remove long ago. Fixes #651.
Nick Wellnhofer 2e9e758d 2023-12-24T14:27:46 dict: Get random seed from system PRNG
Nick Wellnhofer be558647 2023-12-05T21:25:09 autotools: Fix option description
Nick Wellnhofer cf6e58d6 2023-12-05T20:40:20 build: Disable compiler TLS by default The global struct is quite large (~700 bytes on 64-bit systems which will be allocated for each thread whether it uses libxml2 or not) and already close to the total size limit on some platforms. Disable compiler TLS by default.
Nick Wellnhofer 5cffba83 2023-11-28T15:34:28 Rework va_copy fallback va_copy is a macro, so it can be detected without a feature test. Fallback to __va_copy or memcpy.
Nick Wellnhofer 7d6969d9 2023-11-23T15:48:52 Remove Trio Trio is a rather old cross-platform printf library which was bundled with libxml2. It was needed for ancient pre-C99 systems without snprintf and should be safe to remove these days.
Nick Wellnhofer f3c24112 2023-11-22T02:00:00 autotools: Stop checking for snprintf This works around a bug when cross-compiling to 32-bit MinGW: https://sourceforge.net/p/mingw-w64/bugs/935/ This means that we don't fall back to the bundled Trio library if snprintf couldn't be detected. Trio support is completely untested, most likely broken and will be removed soon. Fixes #625.
Nick Wellnhofer 3669316a 2023-11-16T13:34:03 Bump version
Nick Wellnhofer 19161bab 2023-09-25T14:00:48 dict: Internal API to look up hash values
Nick Wellnhofer de4b270a 2023-09-21T14:31:31 autotools: Make --with-minimum disable lzma support Fix an oversight when handling the --with-minimum option.
Nick Wellnhofer e7f0d88b 2023-09-21T01:38:26 build: Remove some GCC warnings -Wnested-externs produces spurious warnings after implicit declaration of functions. -Winline is useless since we don't use inlines. -Wredundant-decls was already removed for autotools.
James Le Cuirot 5a18c505 2023-09-04T09:30:38 autoconf: Include non-pkg-config dependency flags in the pkg-config file These were present before, but I accidentally dropped them in my recent build improvements.
James Le Cuirot 6864d92f 2023-09-04T09:25:44 autoconf: Don't bake build time CFLAGS into pkg-config file Having slept on it, I've realised that baking the dependency CFLAGS into the pkg-config file is pointless when it is only used to link against them. It may even cause problems.
James Le Cuirot 93e8bb2a 2023-09-02T17:12:58 build: Generate better pkg-config files for static-only builds pkg-config supports `Requires.private` and `Libs.private` fields for static linking. However, if you're building a dynamic binary, then pkg-config will use the non-private fields, even if just the static libxml2 is available. This will result in libxml2 being underlinked, causing the build to fail. The solution is to fold the private fields into the non-private fields when the shared libxml2 is not being built. This works for Autotools and CMake. Meson also knows how to handle this when it automatically generates pkg-config files.
James Le Cuirot 4640ccac 2023-09-02T16:18:30 build: Generate better pkg-config file for SYSROOT builds The -I and -L flags you use to build should not necessarily be the same ones you bake into installed files. If you are building with dependencies located under a SYSROOT then the installed files should have no knowledge of that SYSROOT. For example, if the build requires `-L/path/to/sysroot/usr/lib/foo` then only `-L/usr/lib/foo` should be baked into the installed files. pkg-config is SYSROOT-aware, so this issue can be sidestepped by using the `Requires` field rather than the `Libs` and `Cflags` fields. This is easily resolved if you rely solely on pkg-config, but this project falls back to standard Autoconf checks, so a little more effort is required. Unfortunately, this issue cannot feasibly be resolved for CMake. `find_package` is used rather than `pkg_check_modules`, so we cannot tell whether a pkg-config file for each dependency is present or not, even if `find_package` uses pkg-config behind the scenes. The CMake build does not record any dependency -I or -L flags into the pkg-config file anyway. This is a problem in itself, although these dependencies are most likely installed to standard locations. Meson is very much better at handling this, as it generates the pkg-config file automatically using the correct logic.
Nick Wellnhofer 54a0b19a 2023-09-01T14:52:14 autoconf: Allow custom --with-icu configure option
Nick Wellnhofer c5989473 2023-09-01T14:52:11 dict: Use thread-local storage for PRNG state
Nick Wellnhofer 57cfd221 2023-09-01T14:52:04 dict: Use xoroshiro64** as PRNG Stop using rand_r. This enables hash randomization on all platforms.
Nick Wellnhofer 4e4c89a4 2023-08-21T00:26:01 doc: Improve documentation of configuration options
Christoph Reiter 2473b485 2023-06-21T14:15:02 autotools: fix Python module file ext for cygwin/msys2 both use .dll, not .pyd
Nick Wellnhofer cb8ccb10 2023-05-25T03:07:57 testapi: Don't set http_proxy environment variable We already disable network access, so this has no effect.
Nick Wellnhofer 9fd57df8 2023-05-25T02:37:57 autotools: Improve iconv check Use a custom test program which includes iconv.h, so we can check whether the possibly redefined symbols in this header file match the symbols in the iconv library. Should fix #547.
Nick Wellnhofer bdb5667a 2023-05-10T18:13:47 autotools: Fix ICU detection Fixes #540.
Mike Dalessio 34630630 2023-05-05T17:34:57 autoconf: fix iconv library paths and pass cflags when building executables See 0f77167f for prior related work
Nick Wellnhofer a8fe4900 2023-04-29T20:17:38 autoconf: Only use --undefined-version with version scripts
Nick Wellnhofer d8f6e760 2023-04-29T19:12:23 Link with --undefined-version lld 16 defaults to --no-undefined-version but the version script can contain symbols disabled by configuration options. See #473.
Nick Wellnhofer e07f765f 2023-04-28T14:51:06 Bump version to 2.12.0
Nick Wellnhofer 2df2562e 2023-04-26T21:17:21 autoconf: Add AC_LANG_SOURCE to fix warning