[libxml2] Update to 2.15.0 [libspatialite,spatialite-tools] Cleanup (#47380)

This commit is contained in:
Kai Pastor 2025-09-23 14:04:58 +02:00 committed by GitHub
parent b59a6b9f55
commit b0772ba430
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 152 additions and 134 deletions

View File

@ -0,0 +1,34 @@
diff --git a/configure.ac b/configure.ac
index 3a4f288..d9ba65f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -441,6 +441,15 @@ if test x"$enable_libxml2" != "xno"; then
AC_SUBST(LIBXML2_CFLAGS)
AC_SUBST(LIBXML2_LIBS)
AC_DEFINE(ENABLE_LIBXML2)
+ LIBS_SAVE="$LIBS"
+ LIBS="$LIBXML2_LIBS"
+ AC_SEARCH_LIBS(xmlNanoHTTPCleanup, [], [has_nanohttp="yes"], [has_nanohttp="no"])
+ if test "x$has_nanohttp" != "xno"; then
+ CPPFLAGS="$CFLAGS -DLIBXML2_HAS_NANOHTTP"
+ else
+ AC_MSG_WARN([No http support found in 'libxml2'])
+ fi
+ LIBS="$LIBS_SAVE"
fi
#-----------------------------------------------------------------------
diff --git a/src/wfs/wfs_in.c b/src/wfs/wfs_in.c
index fe07a0d..93dd778 100644
--- a/src/wfs/wfs_in.c
+++ b/src/wfs/wfs_in.c
@@ -4637,7 +4637,9 @@ SPATIALITE_DECLARE void
reset_wfs_http_connection (void)
{
/* Resets the libxml2 "nano HTTP": useful when changing the HTTP_PROXY settings */
+#if defined LIBXML2_HAS_NANOHTTP /* removed in 2.15.0, and optional before */
xmlNanoHTTPCleanup ();
+#endif
}
#else /* LIBXML2 isn't enabled */

View File

@ -14,6 +14,9 @@ vcpkg_extract_source_archive(
fix-mingw.patch
fix-utf8-source.patch
android-builtin-iconv.diff
# https://groups.google.com/g/spatialite-users/c/FLBqJNIDkNQ
# https://groups.google.com/g/spatialite-users/c/nyT4iAJbttY
libxml2-no-http.diff
)
vcpkg_check_features(OUT_FEATURE_OPTIONS unused
@ -54,29 +57,13 @@ if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
set(CL_FLAGS_DEBUG "${CL_FLAGS} ${PKGCONFIG_CFLAGS_DEBUG}")
# vcpkg_build_nmake doesn't supply cmake's implicit link libraries
if(PKGCONFIG_LIBS_DEBUG MATCHES "libcrypto")
string(APPEND PKGCONFIG_LIBS_DEBUG " user32.lib")
endif()
if(PKGCONFIG_LIBS_RELEASE MATCHES "libcrypto")
string(APPEND PKGCONFIG_LIBS_RELEASE " user32.lib")
string(APPEND PKGCONFIG_LIBS_DEBUG " user32.lib")
endif()
string(JOIN " " LIBS_ALL_DEBUG
"/LIBPATH:${CURRENT_INSTALLED_DIR}/debug/lib"
"${PKGCONFIG_LIBS_DEBUG}"
iconv.lib charset.lib
)
string(JOIN " " LIBS_ALL_RELEASE
"/LIBPATH:${CURRENT_INSTALLED_DIR}/lib"
"${PKGCONFIG_LIBS_RELEASE}"
iconv.lib charset.lib
)
file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR)
string(REPLACE "/" "\\\\" INST_DIR "${CURRENT_PACKAGES_DIR}")
if(ENABLE_RTTOPO)
list(APPEND pkg_config_modules rttopo)
endif()
vcpkg_install_nmake(
SOURCE_PATH "${SOURCE_PATH}"
PREFER_JOM
@ -84,14 +71,13 @@ if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
OPTIONS_RELEASE
"CL_FLAGS=${CL_FLAGS_RELEASE}"
"INST_DIR=${INST_DIR}"
"LIBS_ALL=${LIBS_ALL_RELEASE}"
"LIBS_ALL=${PKGCONFIG_LIBS_RELEASE} iconv.lib charset.lib"
OPTIONS_DEBUG
"CL_FLAGS=${CL_FLAGS_DEBUG}"
"INST_DIR=${INST_DIR}\\debug"
"LIBS_ALL=${LIBS_ALL_DEBUG}"
"LIBS_ALL=${PKGCONFIG_LIBS_DEBUG} iconv.lib charset.lib"
"LINK_FLAGS=/debug"
)
vcpkg_copy_pdbs()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
@ -175,10 +161,9 @@ else()
else()
set(TARGET_ALIAS "")
endif()
vcpkg_configure_make(
vcpkg_make_configure(
SOURCE_PATH "${SOURCE_PATH}"
AUTOCONFIG
DETERMINE_BUILD_TRIPLET
AUTORECONF
OPTIONS
${TARGET_ALIAS}
${FREEXL_OPTION}
@ -203,7 +188,7 @@ else()
vcpkg_replace_string("${makefile}" " -I$(top_builddir)/./src/headers/spatialite" " -I$(top_builddir)/./src/headers" IGNORE_UNCHANGED)
endforeach()
vcpkg_install_make()
vcpkg_make_install()
if(VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")

View File

@ -1,19 +1,17 @@
{
"name": "libspatialite",
"version": "5.1.0",
"port-version": 4,
"port-version": 5,
"description": "SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities.",
"homepage": "https://www.gaia-gis.it/fossil/libspatialite/index",
"license": null,
"supports": "!uwp",
"dependencies": [
"geos",
"libiconv",
{
"name": "libxml2",
"default-features": false,
"features": [
"http"
]
"default-features": false
},
"proj",
{
@ -23,6 +21,11 @@
"rtree"
]
},
{
"name": "vcpkg-make",
"host": true,
"platform": "!windows | mingw"
},
{
"name": "vcpkg-pkgconfig-get-modules",
"host": true

View File

@ -1,24 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b952d7bf..f5254a20 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -568,19 +568,6 @@ if(LIBXML2_WITH_PYTHON)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libxml2.py DESTINATION ${LIBXML2_PYTHON_INSTALL_DIR} COMPONENT runtime)
endif()
-install(FILES doc/xml2-config.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT documentation)
-if(LIBXML2_WITH_PROGRAMS)
- install(FILES doc/xmlcatalog.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT documentation)
- install(FILES doc/xmllint.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT documentation)
-endif()
-install(DIRECTORY doc/ DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT documentation
- PATTERN "Makefile.*" EXCLUDE
- PATTERN "meson.build" EXCLUDE
- PATTERN "*.1" EXCLUDE
- PATTERN "*.py" EXCLUDE
- PATTERN "*.res" EXCLUDE
- PATTERN "*.xml" EXCLUDE
- PATTERN "*.xsl" EXCLUDE)
configure_package_config_file(
libxml2-config.cmake.cmake.in libxml2-config.cmake

View File

@ -2,11 +2,10 @@ vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO GNOME/libxml2
REF "v${VERSION}"
SHA512 22ba2541815e4a3e78be67576312f7dc33cea8aee03fa24dbb0baaa9e64bca915627fac22b09476cb626ad36f324ef539c7430206c78987695851277574f26a3
SHA512 c0ec62434379200615d5400345d1664f6b02af573d2e61ec343b463745fc9a7c74c7ff5d66023efdbabff81dc36e1d6c54921f619c81521c79e71611d5ed0268
HEAD_REF master
PATCHES
cxx-for-icu.diff
disable-docs.patch
disable-xml2-config.diff
fix_cmakelist.patch
fix_ios_compilation.patch
@ -14,11 +13,9 @@ vcpkg_from_github(
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
"http" LIBXML2_WITH_HTTP
"iconv" LIBXML2_WITH_ICONV
"icu" LIBXML2_WITH_ICU
"legacy" LIBXML2_WITH_LEGACY
"lzma" LIBXML2_WITH_LZMA
"tools" LIBXML2_WITH_PROGRAMS
"zlib" LIBXML2_WITH_ZLIB
)
@ -39,12 +36,10 @@ vcpkg_cmake_configure(
-DLIBXML2_WITH_OUTPUT=ON
-DLIBXML2_WITH_PATTERN=ON
-DLIBXML2_WITH_PUSH=ON
-DLIBXML2_WITH_PYTHON=OFF
-DLIBXML2_WITH_READER=ON
-DLIBXML2_WITH_REGEXPS=ON
-DLIBXML2_WITH_SAX1=ON
-DLIBXML2_WITH_SCHEMAS=ON
-DLIBXML2_WITH_SCHEMATRON=ON
-DLIBXML2_WITH_THREADS=ON
-DLIBXML2_WITH_THREAD_ALLOC=OFF
-DLIBXML2_WITH_VALID=ON
@ -59,7 +54,7 @@ vcpkg_cmake_configure(
vcpkg_cmake_install()
vcpkg_copy_pdbs()
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libxml2-${VERSION}")
vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libxml2")
vcpkg_fixup_pkgconfig()
if("tools" IN_LIST FEATURES)
@ -67,7 +62,7 @@ if("tools" IN_LIST FEATURES)
endif()
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libxml2/libxml/xmlexports.h" "#ifdef LIBXML_STATIC" "#if 1 /* LIBXML_STATIC */")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libxml2/libxml/xmlexports.h" "!defined(LIBXML_STATIC)" "0 /* LIBXML_STATIC */")
endif()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")

View File

@ -1,6 +1,6 @@
{
"name": "libxml2",
"version": "2.14.6",
"version": "2.15.0",
"description": "Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform).",
"homepage": "https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home",
"license": "MIT",
@ -19,10 +19,6 @@
"zlib"
],
"features": {
"http": {
"description": "Add the HTTP support",
"supports": "!uwp"
},
"iconv": {
"description": "Add ICONV support",
"dependencies": [
@ -47,12 +43,6 @@
}
]
},
"lzma": {
"description": "Use LZMA",
"dependencies": [
"liblzma"
]
},
"tools": {
"description": "Build tools"
},

View File

@ -1,6 +1,7 @@
{
"name": "pdal",
"version": "2.9.2",
"port-version": 1,
"description": "PDAL - Point Data Abstraction Library is a library for manipulating point cloud data.",
"homepage": "https://pdal.io/",
"license": null,
@ -20,9 +21,7 @@
"libgeotiff",
{
"name": "libxml2",
"features": [
"http"
]
"default-features": false
},
"nanoflann",
"nlohmann-json",

View File

@ -0,0 +1,13 @@
diff --git a/spatialite_xml2utf8.c b/spatialite_xml2utf8.c
index d88202d..bd524d5 100644
--- a/spatialite_xml2utf8.c
+++ b/spatialite_xml2utf8.c
@@ -45,7 +45,7 @@ extern const char *locale_charset (void);
#include <localcharset.h>
#endif /* end localcharset */
#else /* not MINGW32 - WIN32 */
-#if defined(__APPLE__) || defined(__ANDROID__)
+#if defined(__APPLE__) || (defined(__ANDROID__) && __ANDROID_API__ < 28)
#include <iconv.h>
#include <localcharset.h>
#else /* neither Mac OsX nor Android */

View File

@ -0,0 +1,33 @@
diff --git a/configure.ac b/configure.ac
index 6726e91..22337a8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,6 +28,10 @@ AH_TEMPLATE([OMIT_READOSM],
[Should be defined in order to disable ReadOSM support.])
AH_TEMPLATE([ENABLE_LIBXML2],
[Should be defined in order to enable LIBXML2 support.])
+
+PKG_CHECK_MODULES([SQLITE3], [sqlite3], , AC_MSG_ERROR(['sqlite3 is required but it doesn't seem to be installed on this system.]))
+CFLAGS="$CFLAGS $SQLITE3_CFLAGS"
+LIBS="$LIBS $SQLITE3_LIBS"
AH_TEMPLATE([HAVE_DECL_SQLITE_CONFIG_URI],
[depending on SQLite library version.])
AH_TEMPLATE([HAVE_DECL_SQLITE_DBSTATUS_LOOKASIDE_USED],
@@ -104,7 +108,6 @@ AC_FUNC_STRFTIME
AC_CHECK_FUNCS([memset sqrt strcasecmp strerror strncasecmp strstr fdatasync ftruncate getcwd gettimeofday localtime_r memmove strerror])
# Checks for installed libraries
-AC_CHECK_LIB(sqlite3,sqlite3_prepare_v2,,AC_MSG_ERROR(['libsqlite3' is required but it doesn't seem to be installed on this system.]),-lm)
AC_CONFIG_FILES([Makefile])
@@ -144,8 +147,7 @@ AC_ARG_ENABLE(readosm, [AS_HELP_STRING(
[--enable-readosm], [enables ReadOSM inclusion [default=yes]])],
[], [enable_readosm=yes])
if test x"$enable_readosm" != "xno"; then
- AC_SUBST(LIBREADOSM_LIBS)PKG_CHECK_MODULES([LIBREADOSM], [readosm], , AC_MSG_ERROR(['libreadosm' is required but it doesn't seem to be installed on this system.]))
- AC_SEARCH_LIBS(readosm_version,readosm,,AC_MSG_ERROR(['libreadosm' (>= v.1.1.0) is required but an older version was found.]))
+ PKG_CHECK_MODULES([LIBREADOSM], [readosm], , AC_MSG_ERROR(['libreadosm' is required but it doesn't seem to be installed on this system.]))
AC_SUBST(LIBREADOSM_CFLAGS)
AC_SUBST(LIBREADOSM_LIBS)
else

View File

@ -1,5 +1,4 @@
# Allow empty include directory
set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) # only executables
string(REPLACE "-" "" SPATIALITE_TOOLS_VERSION_STR "${VERSION}")
vcpkg_download_distfile(ARCHIVE
@ -11,38 +10,19 @@ vcpkg_download_distfile(ARCHIVE
vcpkg_extract_source_archive(SOURCE_PATH
ARCHIVE "${ARCHIVE}"
PATCHES
android-builtin-iconv.diff
configure.diff
fix-makefiles.patch
)
file(REMOVE "${SOURCE_PATH}/config.h")
set(PKGCONFIG_MODULES expat libxml-2.0 sqlite3)
if (VCPKG_TARGET_IS_WINDOWS)
list(APPEND PKGCONFIG_MODULES readosm spatialite)
x_vcpkg_pkgconfig_get_modules(
PREFIX PKGCONFIG
MODULES --msvc-syntax ${PKGCONFIG_MODULES}
MODULES --msvc-syntax expat libxml-2.0 readosm spatialite sqlite3
LIBS
)
# vcpkg_build_nmake doesn't supply cmake's implicit link libraries
if(PKGCONFIG_LIBS_DEBUG MATCHES "libcrypto")
string(APPEND PKGCONFIG_LIBS_DEBUG " user32.lib")
endif()
if(PKGCONFIG_LIBS_RELEASE MATCHES "libcrypto")
string(APPEND PKGCONFIG_LIBS_RELEASE " user32.lib")
endif()
set(ICONV_LIBS "iconv.lib")
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
string(APPEND ICONV_LIBS " charset.lib")
endif()
set(UWP_LIBS "")
if(VCPKG_TARGET_IS_UWP)
set(UWP_LIBS "windowsapp.lib /APPCONTAINER")
endif()
file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR)
vcpkg_install_nmake(
@ -51,10 +31,10 @@ if (VCPKG_TARGET_IS_WINDOWS)
CL_LANGUAGE C
OPTIONS_RELEASE
"INSTDIR=${INST_DIR}"
"LIBS_ALL=/link ${PKGCONFIG_LIBS_RELEASE} ${ICONV_LIBS} ${UWP_LIBS}"
"LIBS_ALL=/link ${PKGCONFIG_LIBS_RELEASE} iconv.lib charset.lib user32.lib"
OPTIONS_DEBUG
"INSTDIR=${INST_DIR}\\debug"
"LIBS_ALL=/link ${PKGCONFIG_LIBS_DEBUG} ${ICONV_LIBS} ${UWP_LIBS}"
"LIBS_ALL=/link ${PKGCONFIG_LIBS_DEBUG} iconv.lib charset.lib user32.lib"
)
set(TOOL_EXES
@ -77,28 +57,17 @@ if (VCPKG_TARGET_IS_WINDOWS)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug")
else()
x_vcpkg_pkgconfig_get_modules(
PREFIX PKGCONFIG
MODULES ${PKGCONFIG_MODULES}
LIBS
)
vcpkg_configure_make(
vcpkg_make_configure(
SOURCE_PATH "${SOURCE_PATH}"
AUTOCONFIG
AUTORECONF
OPTIONS
--disable-minizip
--disable-readline
--enable-readosm
OPTIONS_DEBUG
"LIBS=${PKGCONFIG_LIBS_DEBUG} \$LIBS"
OPTIONS_RELEASE
"LIBS=${PKGCONFIG_LIBS_RELEASE} \$LIBS"
)
vcpkg_make_install()
vcpkg_install_make()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug")
endif()
# Handle copyright
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")

View File

@ -1,10 +1,11 @@
{
"name": "spatialite-tools",
"version": "5.1.0-a",
"port-version": 1,
"description": "Contains spatialite.exe and other command line tools to work with SpatiaLite databases (import, export, SQL queries)",
"homepage": "https://www.gaia-gis.it/fossil/spatialite-tools/index",
"license": "GPL-3.0-or-later",
"supports": "!xbox",
"supports": "!uwp & !xbox",
"dependencies": [
"expat",
"libiconv",
@ -17,15 +18,22 @@
},
{
"name": "libxml2",
"features": [
"http"
]
"default-features": false
},
"readosm",
"sqlite3",
{
"name": "sqlite3",
"host": true
},
{
"name": "vcpkg-make",
"host": true,
"platform": "!windows | mingw"
},
{
"name": "vcpkg-pkgconfig-get-modules",
"host": true
"host": true,
"platform": "windows & !mingw"
}
]
}

View File

@ -954,9 +954,6 @@ spaceland:arm64-windows-static-md=fail
spaceland:arm64-windows=fail
spaceland:x64-android=fail
spaceland:x64-uwp=fail
spatialite-tools:arm-neon-android=fail
spatialite-tools:arm64-android=fail
spatialite-tools:x64-android=fail
spdk:x64-linux=fail
spdk-isal:arm-neon-android=fail
spdk-isal:arm64-android=fail

View File

@ -241,8 +241,6 @@ libopusenc:x64-uwp=fail
libplist:x64-windows-static=fail
libqcow=skip # The developer of libqcow does not offer stable release archives
librdkafka[sasl](android | (windows & (static | arm | x86))) = cascade
libspatialite:arm-uwp=fail
libspatialite:x64-uwp=fail
libssh:arm-uwp=fail
libssh:x64-uwp=fail
libtins:arm-uwp=fail
@ -1941,8 +1939,6 @@ soem:arm64-windows = cascade
soem:x64-windows-static = cascade
soem:x64-windows-static-md = cascade
soem:x86-windows = cascade
spatialite-tools:arm64-uwp = cascade
spatialite-tools:x64-uwp = cascade
spdlog[benchmark]:arm64-uwp = cascade
spdlog[benchmark]:x64-uwp = cascade
sqlcipher:arm64-windows = cascade

View File

@ -5430,7 +5430,7 @@
},
"libspatialite": {
"baseline": "5.1.0",
"port-version": 4
"port-version": 5
},
"libspnav": {
"baseline": "0.2.3",
@ -5717,7 +5717,7 @@
"port-version": 0
},
"libxml2": {
"baseline": "2.14.6",
"baseline": "2.15.0",
"port-version": 0
},
"libxmlb": {
@ -7318,7 +7318,7 @@
},
"pdal": {
"baseline": "2.9.2",
"port-version": 0
"port-version": 1
},
"pdal-c": {
"baseline": "2.2.0",
@ -9074,7 +9074,7 @@
},
"spatialite-tools": {
"baseline": "5.1.0-a",
"port-version": 0
"port-version": 1
},
"spdk": {
"baseline": "24.01",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "1ace300b3fad0df1313bbc731284fc7fa80707a6",
"version": "5.1.0",
"port-version": 5
},
{
"git-tree": "b483e810b7543a3cf9d43d742258f9aedddf01c6",
"version": "5.1.0",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "8d4f6f9936bc885f1acb93fde7584b6fbe32e150",
"version": "2.15.0",
"port-version": 0
},
{
"git-tree": "a28714e212bf0894dc142ecfb138667f44bf4ba7",
"version": "2.14.6",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "3f2f42e69bebf88e97b47d1c0d4ed9abde4b23f8",
"version": "2.9.2",
"port-version": 1
},
{
"git-tree": "1b96c7fb61f6ea520a9fb2cf3c0c1470425875f8",
"version": "2.9.2",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "241e67a12966c5b26faa86909500e727788290aa",
"version": "5.1.0-a",
"port-version": 1
},
{
"git-tree": "706b7879f1ae2e597ffefd6ab923251be8706605",
"version": "5.1.0-a",