From 40b2a624cfa32f486d8f6c801fe57ce37d6d3f3c Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Wed, 1 Nov 2023 11:29:26 +1300 Subject: [PATCH 01/34] Update vcpkg to latest (as of 2023-11-01) --- .gitmodules | 2 +- vcpkg-vendor/vcpkg | 2 +- vcpkg-vendor/vcpkg.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index beeb46ec9..b76287457 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "vcpkg-vendor/vcpkg"] path = vcpkg-vendor/vcpkg url = https://github.com/koordinates/vcpkg.git - branch = kx-master + branch = kx-20231101 diff --git a/vcpkg-vendor/vcpkg b/vcpkg-vendor/vcpkg index 09cbbcd67..0938e717a 160000 --- a/vcpkg-vendor/vcpkg +++ b/vcpkg-vendor/vcpkg @@ -1 +1 @@ -Subproject commit 09cbbcd678a3a5e21b099347147e36dd7b321967 +Subproject commit 0938e717a39ea1c7ec62498f52fe505636fc5413 diff --git a/vcpkg-vendor/vcpkg.json b/vcpkg-vendor/vcpkg.json index c773b9569..462769ea1 100644 --- a/vcpkg-vendor/vcpkg.json +++ b/vcpkg-vendor/vcpkg.json @@ -1,7 +1,7 @@ { "name": "kart-vendor", "version-string": "0.1.2", - "builtin-baseline": "09cbbcd678a3a5e21b099347147e36dd7b321967", + "builtin-baseline": "0938e717a39ea1c7ec62498f52fe505636fc5413", "dependencies": [ { "name": "sqlite3", From e61a4b227aff1b206f69e9c7dc2a878176fa7498 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Wed, 1 Nov 2023 13:01:43 +1300 Subject: [PATCH 02/34] Try without pdal overlay-port --- .../pdal/cmake-project-include.cmake | 6 - .../pdal/fix-dependency.patch | 33 ----- .../pdal/fix-find-library-suffix.patch | 11 -- .../pdal/fix-unix-compiler-options.patch | 13 -- .../pdal/no-pkgconfig-requires.patch | 12 -- .../vcpkg-overlay-ports/pdal/no-rpath.patch | 12 -- .../vcpkg-overlay-ports/pdal/portfile.cmake | 120 ------------------ vcpkg-vendor/vcpkg-overlay-ports/pdal/usage | 9 -- .../vcpkg-overlay-ports/pdal/vcpkg.json | 109 ---------------- 9 files changed, 325 deletions(-) delete mode 100644 vcpkg-vendor/vcpkg-overlay-ports/pdal/cmake-project-include.cmake delete mode 100644 vcpkg-vendor/vcpkg-overlay-ports/pdal/fix-dependency.patch delete mode 100644 vcpkg-vendor/vcpkg-overlay-ports/pdal/fix-find-library-suffix.patch delete mode 100644 vcpkg-vendor/vcpkg-overlay-ports/pdal/fix-unix-compiler-options.patch delete mode 100644 vcpkg-vendor/vcpkg-overlay-ports/pdal/no-pkgconfig-requires.patch delete mode 100644 vcpkg-vendor/vcpkg-overlay-ports/pdal/no-rpath.patch delete mode 100644 vcpkg-vendor/vcpkg-overlay-ports/pdal/portfile.cmake delete mode 100644 vcpkg-vendor/vcpkg-overlay-ports/pdal/usage delete mode 100644 vcpkg-vendor/vcpkg-overlay-ports/pdal/vcpkg.json diff --git a/vcpkg-vendor/vcpkg-overlay-ports/pdal/cmake-project-include.cmake b/vcpkg-vendor/vcpkg-overlay-ports/pdal/cmake-project-include.cmake deleted file mode 100644 index 37fd8c2bd..000000000 --- a/vcpkg-vendor/vcpkg-overlay-ports/pdal/cmake-project-include.cmake +++ /dev/null @@ -1,6 +0,0 @@ -include(CheckIncludeFileCXX) - -check_include_file_cxx("filesystem" HAVE_CXX17_FILESYSTEM) -if(NOT HAVE_CXX17_FILESYSTEM) - message(FATAL_ERROR "Unable to find header. PDAL requires full C++17 compiler support.") -endif() diff --git a/vcpkg-vendor/vcpkg-overlay-ports/pdal/fix-dependency.patch b/vcpkg-vendor/vcpkg-overlay-ports/pdal/fix-dependency.patch deleted file mode 100644 index af6cca16c..000000000 --- a/vcpkg-vendor/vcpkg-overlay-ports/pdal/fix-dependency.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1705a8426..248edcd38 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -269,7 +269,7 @@ target_link_libraries(${PDAL_BASE_LIB_NAME} - PRIVATE - ${CMAKE_THREAD_LIBS_INIT} - ${CMAKE_DL_LIBS} -- ${GDAL_LIBRARY} -+ ${GDAL_LIBRARIES} - ${GEOTIFF_LIBRARY} - ${LIBXML2_LIBRARIES} - ${ZLIB_LIBRARIES} -diff --git a/cmake/zstd.cmake b/cmake/zstd.cmake -index dfe3dc024..42a78d646 100644 ---- a/cmake/zstd.cmake -+++ b/cmake/zstd.cmake -@@ -4,7 +4,14 @@ - option(WITH_ZSTD - "Build support for compression/decompression with Zstd." TRUE) - if (WITH_ZSTD) -- find_package(ZSTD QUIET) -+ find_package(ZSTD NAMES zstd REQUIRED) -+ set(ZSTD_INCLUDE_DIRS "") -+ if(TARGET zstd::libzstd_static) -+ set(ZSTD_LIBRARIES zstd::libzstd_static) -+ set(ZSTD_STATIC_LIB zstd::libzstd_static) -+ else() -+ set(ZSTD_LIBRARIES zstd::libzstd_shared) -+ endif() - set_package_properties(ZSTD PROPERTIES TYPE - PURPOSE "General compression support") - if (ZSTD_FOUND) diff --git a/vcpkg-vendor/vcpkg-overlay-ports/pdal/fix-find-library-suffix.patch b/vcpkg-vendor/vcpkg-overlay-ports/pdal/fix-find-library-suffix.patch deleted file mode 100644 index be3cd71ee..000000000 --- a/vcpkg-vendor/vcpkg-overlay-ports/pdal/fix-find-library-suffix.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/cmake/libraries.cmake b/cmake/libraries.cmake -index 665bc53..fcdcf2c 100644 ---- a/cmake/libraries.cmake -+++ b/cmake/libraries.cmake -@@ -1,6 +1,3 @@ - # Build shared libraries by default. - - set(PDAL_LIB_TYPE "SHARED") --if (WIN32) -- set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_IMPORT_LIBRARY_SUFFIX}) --endif() diff --git a/vcpkg-vendor/vcpkg-overlay-ports/pdal/fix-unix-compiler-options.patch b/vcpkg-vendor/vcpkg-overlay-ports/pdal/fix-unix-compiler-options.patch deleted file mode 100644 index 8143a568d..000000000 --- a/vcpkg-vendor/vcpkg-overlay-ports/pdal/fix-unix-compiler-options.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1705a8426..d13d41786 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -192,7 +192,7 @@ add_subdirectory(apps) - # so that users only need link libpdalcpp. - # - if (APPLE) -- set(PDAL_REEXPORT "-Wl,-reexport_library,$") -+ set(PDAL_REEXPORT "-Wl$-reexport_library$$") - # - # This allows the rpath reference for the reexported library (above) to - # be found. diff --git a/vcpkg-vendor/vcpkg-overlay-ports/pdal/no-pkgconfig-requires.patch b/vcpkg-vendor/vcpkg-overlay-ports/pdal/no-pkgconfig-requires.patch deleted file mode 100644 index 1f0841e2c..000000000 --- a/vcpkg-vendor/vcpkg-overlay-ports/pdal/no-pkgconfig-requires.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/apps/pdal.pc.in b/apps/pdal.pc.in -index 6885221..cd2136c 100644 ---- a/apps/pdal.pc.in -+++ b/apps/pdal.pc.in -@@ -5,7 +5,6 @@ includedir=@CMAKE_INSTALL_PREFIX@/include - - Name: PDAL - Description: Point Data Abstraction Library --Requires: @PKGCONFIG_LIBRARY_DEFINITIONS@ - Version: @PDAL_VERSION@ - Libs: -L${libdir} -l@PDAL_LIB_NAME@ - Cflags: -I${includedir}/pdal @PDAL_CONFIG_DEFINITIONS@ diff --git a/vcpkg-vendor/vcpkg-overlay-ports/pdal/no-rpath.patch b/vcpkg-vendor/vcpkg-overlay-ports/pdal/no-rpath.patch deleted file mode 100644 index ab2c555c9..000000000 --- a/vcpkg-vendor/vcpkg-overlay-ports/pdal/no-rpath.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/cmake/rpath.cmake b/cmake/rpath.cmake -index ba486b7..4323a77 100644 ---- a/cmake/rpath.cmake -+++ b/cmake/rpath.cmake -@@ -1,6 +1,7 @@ - # - # Set options and variable related to OSX rpath. - # -+return() - - # per http://www.cmake.org/Wiki/CMake_RPATH_handling - SET(CMAKE_SKIP_BUILD_RPATH FALSE) diff --git a/vcpkg-vendor/vcpkg-overlay-ports/pdal/portfile.cmake b/vcpkg-vendor/vcpkg-overlay-ports/pdal/portfile.cmake deleted file mode 100644 index 16a98b9ab..000000000 --- a/vcpkg-vendor/vcpkg-overlay-ports/pdal/portfile.cmake +++ /dev/null @@ -1,120 +0,0 @@ -vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) - -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO koordinates/PDAL - REF kart-v0.14.2 - SHA512 721010c6842a841e8a7d4db543022669ea818e78c87f468d672b1fd77f445897735135508e5b060d17a5b88456eea3a4a66c0c258ac418d995a07ad2804c3fa3 - HEAD_REF kart-v0.14.2 - PATCHES - fix-dependency.patch - fix-unix-compiler-options.patch - fix-find-library-suffix.patch - no-pkgconfig-requires.patch - no-rpath.patch -) - -# Prefer pristine CMake find modules + wrappers and config files from vcpkg. -foreach(package IN ITEMS Curl GeoTIFF ICONV ZSTD) - file(REMOVE "${SOURCE_PATH}/cmake/modules/Find${package}.cmake") -endforeach() - -# De-vendoring -file(REMOVE_RECURSE - "${SOURCE_PATH}/vendor/nanoflann" - "${SOURCE_PATH}/vendor/nlohmann" - "${SOURCE_PATH}/pdal/JsonFwd.hpp" -) -file(INSTALL "${CURRENT_INSTALLED_DIR}/include/nanoflann.hpp" DESTINATION "${SOURCE_PATH}/vendor/nanoflann") -file(INSTALL "${CURRENT_INSTALLED_DIR}/include/nlohmann/json.hpp" DESTINATION "${SOURCE_PATH}/vendor/nlohmann/nlohmann") -file(APPEND "${SOURCE_PATH}/vendor/nlohmann/nlohmann/json.hpp" "namespace NL = nlohmann;\n") -file(INSTALL "${CURRENT_INSTALLED_DIR}/include/nlohmann/json_fwd.hpp" DESTINATION "${SOURCE_PATH}/pdal") -file(RENAME "${SOURCE_PATH}/pdal/json_fwd.hpp" "${SOURCE_PATH}/pdal/JsonFwd.hpp") -file(APPEND "${SOURCE_PATH}/pdal/JsonFwd.hpp" "namespace NL = nlohmann;\n") - -unset(ENV{OSGEO4W_HOME}) - -vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS - FEATURES - draco BUILD_PLUGIN_DRACO - e57 BUILD_PLUGIN_E57 - hdf5 BUILD_PLUGIN_HDF - i3s BUILD_PLUGIN_I3S - lzma WITH_LZMA - pgpointcloud BUILD_PLUGIN_PGPOINTCLOUD - zstd WITH_ZSTD -) -vcpkg_find_acquire_program(PKGCONFIG) -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" - -DPDAL_PLUGIN_INSTALL_PATH=. - "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" - -DWITH_TESTS:BOOL=OFF - -DWITH_COMPLETION:BOOL=OFF - -DCMAKE_DISABLE_FIND_PACKAGE_Libexecinfo:BOOL=ON - -DCMAKE_DISABLE_FIND_PACKAGE_Libunwind:BOOL=ON - ${FEATURE_OPTIONS} -) - -vcpkg_cmake_install() -vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/PDAL) -vcpkg_fixup_pkgconfig() -vcpkg_copy_pdbs() - -# Install and cleanup executables -file(GLOB pdal_unsupported - "${CURRENT_PACKAGES_DIR}/bin/*.bat" - "${CURRENT_PACKAGES_DIR}/bin/pdal-config" - "${CURRENT_PACKAGES_DIR}/debug/bin/*.bat" - "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe" - "${CURRENT_PACKAGES_DIR}/debug/bin/pdal-config" -) -file(REMOVE ${pdal_unsupported}) -vcpkg_copy_tools(TOOL_NAMES pdal AUTO_CLEAN) - -# Post-install clean-up -file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/include/pdal/filters/private/csf" - "${CURRENT_PACKAGES_DIR}/include/pdal/filters/private/miniball" - "${CURRENT_PACKAGES_DIR}/debug/include" - "${CURRENT_PACKAGES_DIR}/debug/share" -) - -file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") - -file(READ "${SOURCE_PATH}/LICENSE.txt" pdal_license) -file(READ "${SOURCE_PATH}/vendor/arbiter/LICENSE" arbiter_license) -file(READ "${SOURCE_PATH}/vendor/kazhdan/PoissonRecon.h" kazhdan_license) -string(REGEX REPLACE "^/\\*\n|\\*/.*\$" "" kazhdan_license "${kazhdan_license}") -file(READ "${SOURCE_PATH}/vendor/lazperf/lazperf.hpp" lazperf_license) -string(REGEX REPLACE "^/\\*\n|\\*/.*\$" "" lazperf_license "${lazperf_license}") -file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" -"${pdal_license} ---- - -Files in vendor/arbiter/: - -${arbiter_license} ---- - -Files in vendor/kazhdan/: - -${kazhdan_license} ---- - -Files in vendor/lazperf/: - -${lazperf_license} ---- - -Files in vendor/eigen: - -Most Eigen source code is subject to the terms of the Mozilla Public License -v. 2.0. You can obtain a copy the MPL 2.0 at http://mozilla.org/MPL/2.0/. - -Some files included in Eigen are under one of the following licenses: - - Apache License, Version 2.0 - - BSD 3-Clause \"New\" or \"Revised\" License -") diff --git a/vcpkg-vendor/vcpkg-overlay-ports/pdal/usage b/vcpkg-vendor/vcpkg-overlay-ports/pdal/usage deleted file mode 100644 index 759bf7feb..000000000 --- a/vcpkg-vendor/vcpkg-overlay-ports/pdal/usage +++ /dev/null @@ -1,9 +0,0 @@ -The package pdal provides CMake variables: - - find_package(PDAL CONFIG REQUIRED) - target_include_directories(main PRIVATE ${PDAL_INCLUDE_DIRS}) - target_link_libraries(main PRIVATE ${PDAL_LIBRARIES}) - -If necessary, override the default plugin search path by setting the -environment variable PDAL_DRIVER_PATH to a list of directories that -pdal should search for plugins. diff --git a/vcpkg-vendor/vcpkg-overlay-ports/pdal/vcpkg.json b/vcpkg-vendor/vcpkg-overlay-ports/pdal/vcpkg.json deleted file mode 100644 index 1736914d9..000000000 --- a/vcpkg-vendor/vcpkg-overlay-ports/pdal/vcpkg.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "name": "pdal", - "version": "2.5.3", - "port-version": 1, - "description": "PDAL - Point Data Abstraction Library is a library for manipulating point cloud data.", - "homepage": "https://pdal.io/", - "license": null, - "supports": "!(windows & staticcrt)", - "dependencies": [ - { - "name": "curl", - "default-features": false - }, - { - "name": "gdal", - "default-features": false - }, - "libgeotiff", - { - "name": "libxml2", - "features": [ - "http" - ] - }, - "nanoflann", - "nlohmann-json", - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ], - "default-features": [ - "supported-plugins" - ], - "features": { - "draco": { - "description": "Build the Draco plugin", - "dependencies": [ - "draco" - ] - }, - "e57": { - "description": "Build the E57 plugin", - "dependencies": [ - "xerces-c" - ] - }, - "hdf": { - "description": "Build the HDF plugin", - "dependencies": [ - { - "name": "hdf5", - "default-features": false - } - ] - }, - "i3s": { - "description": "Build the SLPK/I3S plugins", - "dependencies": [ - "zlib" - ] - }, - "liblzma": { - "description": "Support for compression/decompression with LZMA", - "dependencies": [ - "liblzma" - ] - }, - "pgpointcloud": { - "description": "Build the PgPointCloud plugin", - "dependencies": [ - "libpq" - ] - }, - "supported-plugins": { - "description": "Default set of plugins, dependent on platform", - "dependencies": [ - { - "name": "pdal", - "default-features": false, - "features": [ - "draco", - "e57", - "i3s" - ] - }, - { - "name": "pdal", - "default-features": false, - "features": [ - "hdf", - "pgpointcloud" - ], - "platform": "!uwp" - } - ] - }, - "zstd": { - "description": "Support for ZSTD compression/decompression", - "dependencies": [ - "zstd" - ] - } - } -} From 96f1524cfd9f82fec34410f669379d1c4a200444 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Thu, 2 Nov 2023 11:10:44 +1300 Subject: [PATCH 03/34] Install autoconf-archive on linux --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b15a9c3f9..42769ae64 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -84,7 +84,7 @@ jobs: - name: "setup: misc" run: | sudo apt-get update -q -y - sudo apt-get install -q -y --no-install-recommends ccache + sudo apt-get install -q -y --no-install-recommends autoconf-archive ccache mkdir -p ${{ env.CCACHE_DIR }} echo "/usr/lib/ccache" >> $GITHUB_PATH @@ -313,7 +313,7 @@ jobs: git config --global --add safe.directory ${GITHUB_WORKSPACE} - yum install -y perl-IPC-Cmd rpm-build unixODBC zip + yum install -y autoconf-archive perl-IPC-Cmd rpm-build unixODBC zip echo "installing golang..." curl -qL "https://go.dev/dl/go1.19.2.linux-${ARCH}.tar.gz" | tar xz -C /usr/local/ @@ -646,7 +646,7 @@ jobs: - name: "setup: misc" run: | sudo apt-get update -q -y - sudo apt-get install -q -y --no-install-recommends ccache unixodbc file sqlite3 + sudo apt-get install -q -y --no-install-recommends autoconf-archive ccache unixodbc file sqlite3 mkdir -p ${{ env.CCACHE_DIR }} echo "/usr/lib/ccache" >> $GITHUB_PATH From 3a32fe246ec85acddd04860f5899a4eb52054a84 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Thu, 2 Nov 2023 13:06:39 +1300 Subject: [PATCH 04/34] Update pyodbc to 5.0.1 --- requirements/requirements.txt | 2 +- requirements/vendor-wheels.txt | 2 +- vcpkg-vendor/CMakeLists.txt | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index ecea1c277..bea261a69 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -52,7 +52,7 @@ pygments==2.13.0 # rst2txt pymysql==1.0.2 # via -r requirements.in -pyodbc==4.0.32 +pyodbc==5.0.1 # via -r vendor-wheels.txt pyrsistent==0.19.2 # via jsonschema diff --git a/requirements/vendor-wheels.txt b/requirements/vendor-wheels.txt index 29c2690f6..b86672889 100644 --- a/requirements/vendor-wheels.txt +++ b/requirements/vendor-wheels.txt @@ -3,6 +3,6 @@ cryptography==41.0.3 gdal==3.6.3 psycopg2==2.8.5 pygit2==1.9.0 -pyodbc==4.0.32 +pyodbc==5.0.1 pysqlite3==0.4.5 reflink==0.2.1 diff --git a/vcpkg-vendor/CMakeLists.txt b/vcpkg-vendor/CMakeLists.txt index ad7238b55..96a27f5b6 100644 --- a/vcpkg-vendor/CMakeLists.txt +++ b/vcpkg-vendor/CMakeLists.txt @@ -294,12 +294,12 @@ include_dirs=${BUILD_WHEEL_INCLUDE_DIRS} library_dirs=${BUILD_WHEEL_LIBRARY_DIRS} ") -set(PYODBC_WHEEL_VER 4.0.32) +set(PYODBC_WHEEL_VER 5.0.1) ExternalProject_Add( pyodbc # if you build from a git repository, pyodbc adds +commit0c0ffee to the wheel version - URL https://files.pythonhosted.org/packages/d1/21/755f5fa373d01d1803d992c7611799dc4e9fcbb5db7d0852990d6ab3c9ad/pyodbc-4.0.32.tar.gz - URL_HASH SHA256=9be5f0c3590655e1968488410fe3528bb8023d527e7ccec1f663d64245071a6b + URL https://files.pythonhosted.org/packages/22/6f/012f32aecf744e439980257be0ba4dd8c70a4e03c9f86f5fcd986fbfb012/pyodbc-5.0.1.tar.gz + URL_HASH SHA256=03d7d0b04d5a9156099ce8d03e92f3956783746fa9234eb6f5b5cfc12b645011 DOWNLOAD_NO_PROGRESS ON BUILD_IN_SOURCE ON DEPENDS wheelBuildEnv ${PYODBC_BUILD_DEPENDS} From 00bfba173df1c5f6d37533f10059fb6671eb14cf Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Thu, 2 Nov 2023 13:16:56 +1300 Subject: [PATCH 05/34] Update psycopg2 to 2.9.9 --- requirements/requirements.txt | 2 +- requirements/vendor-wheels.txt | 2 +- vcpkg-vendor/CMakeLists.txt | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index bea261a69..0e8f0e21a 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -40,7 +40,7 @@ jsonschema==4.17.3 # via -r requirements.in msgpack==0.6.2 # via -r requirements.in -#psycopg2==2.8.5 +#psycopg2==2.9.9 # via -r vendor-wheels.txt pycparser==2.21 # via cffi diff --git a/requirements/vendor-wheels.txt b/requirements/vendor-wheels.txt index b86672889..2cf084b36 100644 --- a/requirements/vendor-wheels.txt +++ b/requirements/vendor-wheels.txt @@ -1,7 +1,7 @@ cffi==1.15.1 cryptography==41.0.3 gdal==3.6.3 -psycopg2==2.8.5 +psycopg2==2.9.9 pygit2==1.9.0 pyodbc==5.0.1 pysqlite3==0.4.5 diff --git a/vcpkg-vendor/CMakeLists.txt b/vcpkg-vendor/CMakeLists.txt index 96a27f5b6..70a0cc1a9 100644 --- a/vcpkg-vendor/CMakeLists.txt +++ b/vcpkg-vendor/CMakeLists.txt @@ -223,11 +223,11 @@ pg_config=${PG_CONFIG_EXE} define= ") -set(PYSCOPG2_WHEEL_VER 2.8.5) +set(PYSCOPG2_WHEEL_VER 2.9.9) ExternalProject_Add( psycopg2 - URL https://files.pythonhosted.org/packages/a8/8f/1c5690eebf148d1d1554fc00ccf9101e134636553dbb75bdfef4f85d7647/psycopg2-2.8.5.tar.gz - URL_HASH SHA256=f7d46240f7a1ae1dd95aab38bd74f7428d46531f69219954266d669da60c0818 + URL https://files.pythonhosted.org/packages/c9/5e/dc6acaf46d78979d6b03458b7a1618a68e152a6776fce95daac5e0f0301b/psycopg2-2.9.9.tar.gz + URL_HASH SHA256=d1454bde93fb1e224166811694d600e746430c006fbb031ea06ecc2ea41bf156 DOWNLOAD_NO_PROGRESS ON BUILD_IN_SOURCE ON DEPENDS wheelBuildEnv PostgreSQL::PostgreSQL From 3d44f3a9a403587b499309931f14333b3c39d422 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Thu, 2 Nov 2023 13:32:47 +1300 Subject: [PATCH 06/34] Update pysqlite to 0.5.2 --- requirements/requirements.txt | 2 +- requirements/vendor-wheels.txt | 2 +- vcpkg-vendor/CMakeLists.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 0e8f0e21a..0ffb64626 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -56,7 +56,7 @@ pyodbc==5.0.1 # via -r vendor-wheels.txt pyrsistent==0.19.2 # via jsonschema -#pysqlite3==0.4.5 +#pysqlite3==0.5.2 # via -r vendor-wheels.txt python-dateutil==2.8.2 # via botocore diff --git a/requirements/vendor-wheels.txt b/requirements/vendor-wheels.txt index 2cf084b36..d943d3ac1 100644 --- a/requirements/vendor-wheels.txt +++ b/requirements/vendor-wheels.txt @@ -4,5 +4,5 @@ gdal==3.6.3 psycopg2==2.9.9 pygit2==1.9.0 pyodbc==5.0.1 -pysqlite3==0.4.5 +pysqlite3==0.5.2 reflink==0.2.1 diff --git a/vcpkg-vendor/CMakeLists.txt b/vcpkg-vendor/CMakeLists.txt index 70a0cc1a9..af618e165 100644 --- a/vcpkg-vendor/CMakeLists.txt +++ b/vcpkg-vendor/CMakeLists.txt @@ -328,7 +328,7 @@ include_dirs=${BUILD_WHEEL_INCLUDE_DIRS} library_dirs=${BUILD_WHEEL_LIBRARY_DIRS} ") -set(PYSQLITE3_WHEEL_VER 0.4.5) +set(PYSQLITE3_WHEEL_VER 0.5.2) ExternalProject_Add( pysqlite3 GIT_REPOSITORY https://github.com/coleifer/pysqlite3.git From d1d8e35ea7edef7ff4afd9f60e6451f6743f28a2 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Thu, 2 Nov 2023 15:08:26 +1300 Subject: [PATCH 07/34] Remove pyodbc.pyi from spec --- kart.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/kart.spec b/kart.spec index 4b538c456..8ca7da22f 100644 --- a/kart.spec +++ b/kart.spec @@ -105,7 +105,6 @@ datas = [ ('COPYING', '.'), (f'{BINARY_DIR}/venv/share/gdal', 'share/gdal'), (f'{BINARY_DIR}/venv/share/proj', 'share/proj'), - (f'{BINARY_DIR}/venv/pyodbc.pyi', '.'), (f'{BINARY_DIR}/venv/help', 'help'), ] From d5857aabf566301ef6649cf718f8e27e49b745c2 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Thu, 2 Nov 2023 16:29:44 +1300 Subject: [PATCH 08/34] Set PY_VER to 3.11 --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 42769ae64..20f8a6542 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,7 +4,7 @@ name: Build on: [push, pull_request] env: - PY_VER: "3.10" + PY_VER: "3.11" CMAKE_VERSION: "~3.25.0" FORCE_COLOR: "YES" KART_S3_TEST_DATA_POINT_CLOUD: "s3://kart-bring-your-own-data-poc/auckland-small-laz1.2/*.laz" @@ -748,7 +748,7 @@ jobs: MACOS_PKGSIGN_ID: ${{ secrets.MACOS_PKGSIGN_ID }} MACOS_NOTARIZE_KEYCHAIN_PROFILE: "NOTARIZE_AUTH" # X.Y version needs to match PY_VER: - PY_VER_INSTALLER: "https://www.python.org/ftp/python/3.10.9/python-3.10.9-macos11.pkg" + PY_VER_INSTALLER: "https://www.python.org/ftp/python/3.11.6/python-3.11.6-macos11.pkg" steps: - uses: actions/checkout@v3 From aa327748ebc9de225aae74c1728ac624c2be21f2 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Fri, 3 Nov 2023 10:52:23 +1300 Subject: [PATCH 09/34] make py-requirements --- requirements/docs.txt | 26 ++++++-------------------- requirements/requirements.txt | 2 +- requirements/test.txt | 4 +++- 3 files changed, 10 insertions(+), 22 deletions(-) diff --git a/requirements/docs.txt b/requirements/docs.txt index b1e2501fe..a26efbb5e 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -9,18 +9,13 @@ alabaster==0.7.12 babel==2.11.0 # via sphinx certifi==2022.12.7 - # via - # -c requirements.txt - # requests + # via requests charset-normalizer==2.1.1 # via requests colorama==0.4.6 - # via - # -c test.txt - # sphinx-autobuild + # via sphinx-autobuild docutils==0.17.1 # via - # -c requirements.txt # sphinx # sphinx-rtd-theme idna==3.4 @@ -34,22 +29,15 @@ livereload==2.6.3 markupsafe==2.1.1 # via jinja2 packaging==22.0 - # via - # -c test.txt - # sphinx + # via sphinx pygments==2.13.0 - # via - # -c requirements.txt - # sphinx + # via sphinx pytz==2022.6 # via babel requests==2.31.0 # via sphinx six==1.16.0 - # via - # -c requirements.txt - # -c test.txt - # livereload + # via livereload snowballstemmer==2.2.0 # via sphinx sphinx==5.3.0 @@ -75,6 +63,4 @@ sphinxcontrib-serializinghtml==1.1.5 tornado==6.2 # via livereload urllib3==1.26.16 - # via - # -c requirements.txt - # requests + # via requests diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 0ffb64626..314ca455d 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -30,7 +30,7 @@ docutils==0.17.1 # rst2txt #gdal==3.6.3 # via -r vendor-wheels.txt -greenlet==2.0.1 ; os_name != "posix" +greenlet==3.0.1 # via sqlalchemy jmespath==1.0.1 # via diff --git a/requirements/test.txt b/requirements/test.txt index ca2ba219a..e545f2b98 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -15,7 +15,9 @@ attrs==22.1.0 colorama==0.4.6 # via -r test.in coverage[toml]==6.5.0 - # via pytest-cov + # via + # coverage + # pytest-cov exceptiongroup==1.0.4 # via pytest execnet==1.9.0 From 21e573462f32a9283afb16162bb0c3ab210863ea Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Fri, 3 Nov 2023 10:57:05 +1300 Subject: [PATCH 10/34] Update pyinstaller to 6.1.0 --- cmake/KartBundle.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/KartBundle.cmake b/cmake/KartBundle.cmake index 00c5a734d..ead2736e8 100644 --- a/cmake/KartBundle.cmake +++ b/cmake/KartBundle.cmake @@ -1,7 +1,7 @@ include(PyCreateVirtualEnvironment) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/bundleEnv.requirements.txt - "pyinstaller~=5.6.2\n" "macholib>=1.8;sys_platform=='darwin'\n") + "pyinstaller~=6.1.0\n" "macholib>=1.8;sys_platform=='darwin'\n") createvirtualenvironment(bundleEnv REQUIREMENTS_TXT "bundleEnv.requirements.txt") From d06bc5f0e561af7e629b8b1fdcdfc1acda39d92c Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Fri, 3 Nov 2023 13:12:06 +1300 Subject: [PATCH 11/34] Handle _internal folder in newer pyinstaller --- kart.spec | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/kart.spec b/kart.spec index 8ca7da22f..d5edb41be 100644 --- a/kart.spec +++ b/kart.spec @@ -237,19 +237,38 @@ pyi_app = BUNDLE( }, ) +if is_win: + dist_bin_root = Path(DISTPATH) / 'Kart' +elif is_darwin: + dist_bin_root = Path(DISTPATH) / 'Kart.app' / 'Contents' / 'MacOS' +elif is_linux: + dist_bin_root = Path(DISTPATH) / 'kart' + + +# Pyinstaller now hides most files inside a contents folder, defaults to /_internal/ +# see https://github.com/pyinstaller/pyinstaller/pull/7713 +dist_contents_root = ( + (dist_bin_root / "_internal") + if (dist_bin_root / "_internal").is_dir() + else dist_bin_root +) + +# We want not just the python executable but also the helper executable to be in the root folder. +if USE_CLI_HELPER and dist_contents_root != dist_bin_root: + (dist_contents_root / f"kart{exe_suffix}").rename( + dist_bin_root / f"kart{exe_suffix}" + ) + + # Ideally we'd do this before BUNDLE so it could sign it on macOS, but we # can do that ourselves later. if symlinks: - if is_darwin: - dist_bin_root = Path(DISTPATH) / 'Kart.app' / 'Contents' / 'MacOS' - elif is_linux: - dist_bin_root = Path(DISTPATH) / 'kart' - else: + if is_win: raise RuntimeError("Symlinks don't work well on Windows!") for sl, td in symlinks: sl, td = Path(sl), Path(td) - tp = dist_bin_root / td + tp = dist_contents_root / td st = sl.readlink() From c264082a09a0048c3aade520bd7b6f48abb14607 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Fri, 3 Nov 2023 15:13:07 +1300 Subject: [PATCH 12/34] Possible fix for cpack-wix-patch.xml --- platforms/windows/cpack-wix-patch.xml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/platforms/windows/cpack-wix-patch.xml b/platforms/windows/cpack-wix-patch.xml index ef7871b67..ccfe10409 100644 --- a/platforms/windows/cpack-wix-patch.xml +++ b/platforms/windows/cpack-wix-patch.xml @@ -1,8 +1,12 @@ - - - - + + + + + + + @@ -11,9 +15,4 @@ - - - - - \ No newline at end of file + From 8b20da31169463e768beadf13a734500a47f427a Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Fri, 3 Nov 2023 16:07:58 +1300 Subject: [PATCH 13/34] Find mod_spatialite inside _internal --- tests/scripts/e2e-1.ps1 | 2 +- tests/scripts/e2e-1.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/scripts/e2e-1.ps1 b/tests/scripts/e2e-1.ps1 index 7ff136b75..939cd3ee4 100644 --- a/tests/scripts/e2e-1.ps1 +++ b/tests/scripts/e2e-1.ps1 @@ -44,7 +44,7 @@ If ((Get-Item $KART_PATH).Directory.Name -eq 'Scripts') { Write-Output "Kart is at: ${KART_PATH} (Prefix: ${KART_PREFIX})" # Spatialite -$SPATIALITE=("${KART_PREFIX}\mod_spatialite" -replace '\\', '/').ToLower() +$SPATIALITE=("${KART_PREFIX}\_internal\mod_spatialite" -replace '\\', '/').ToLower() New-Item -ItemType Directory -Path "${TMP_PATH}\test" Push-Location "${TMP_PATH}\test" diff --git a/tests/scripts/e2e-1.sh b/tests/scripts/e2e-1.sh index 40c1747a8..f76096a3b 100755 --- a/tests/scripts/e2e-1.sh +++ b/tests/scripts/e2e-1.sh @@ -57,7 +57,7 @@ kart log kart checkout kart switch -c edit-1 sqlite3 --bail test.gpkg " - SELECT load_extension('${KART_PATH}/mod_spatialite'); + SELECT load_extension('${KART_PATH}/_internal/mod_spatialite'); SELECT EnableGpkgMode(); INSERT INTO mylayer (fid, geom) VALUES (999, GeomFromEWKT('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); " From 04e603a54df32b637526afcb21d2f8050cfce30e Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Fri, 3 Nov 2023 16:12:24 +1300 Subject: [PATCH 14/34] Further kart.spec fixes --- kart.spec | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/kart.spec b/kart.spec index d5edb41be..9fd050576 100644 --- a/kart.spec +++ b/kart.spec @@ -22,7 +22,7 @@ from PyInstaller.depend import dylib from PyInstaller.utils.hooks import collect_data_files BINARY_DIR = os.environ.get("BINARY_DIR", "build") -USE_CLI_HELPER = os.environ.get("USE_CLI_HELPER", "ON") == "ON" +USE_CLI_HELPER = os.environ.get("USE_CLI_HELPER", "ON") == "ON" and not is_win if is_win: lib_suffix_glob = 'dll' @@ -89,10 +89,10 @@ if not is_win: binaries += [ (f'{BINARY_DIR}/venv/bin/git', '.'), ] - if USE_CLI_HELPER: - binaries += [ - (f'{BINARY_DIR}/cli_helper/kart', '.'), - ] +if USE_CLI_HELPER: + binaries += [ + (f'{BINARY_DIR}/cli_helper/kart', '.'), + ] kart_version_file = os.environ.get("KART_VERSION_FILE", "kart/VERSION") @@ -193,12 +193,9 @@ if is_linux or is_darwin: pyi_pyz = PYZ(pyi_analysis.pure, pyi_analysis.zipped_data, cipher=None) -if is_win: - exe_icon = 'platforms/windows/kart.ico' - exe_name = 'kart' -else: - exe_icon = 'platforms/macos/kart.icns' - exe_name = 'kart_cli' if USE_CLI_HELPER else 'kart' + +exe_icon = 'platforms/windows/kart.ico' if is_win else 'platforms/macos/kart.icns' +exe_name = 'kart_cli' if USE_CLI_HELPER else 'kart' pyi_exe = EXE( pyi_pyz, From fc6aad49e9dd0e995f3873d52dede8e27ab10af7 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Fri, 3 Nov 2023 16:46:19 +1300 Subject: [PATCH 15/34] PRAGMA trusted_schema = 1; --- tests/scripts/e2e-1.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/e2e-1.sh b/tests/scripts/e2e-1.sh index f76096a3b..a9b9f1a96 100755 --- a/tests/scripts/e2e-1.sh +++ b/tests/scripts/e2e-1.sh @@ -57,6 +57,7 @@ kart log kart checkout kart switch -c edit-1 sqlite3 --bail test.gpkg " + PRAGMA trusted_schema=1; SELECT load_extension('${KART_PATH}/_internal/mod_spatialite'); SELECT EnableGpkgMode(); INSERT INTO mylayer (fid, geom) VALUES (999, GeomFromEWKT('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); From 7ba7fceee1940f00cc2cd6aaa7412c20241d8c82 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Mon, 6 Nov 2023 11:45:05 +1300 Subject: [PATCH 16/34] Add fail-fast=false for macos matrix --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 20f8a6542..d310e18a4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -718,6 +718,7 @@ jobs: # macOS: strategy: + fail-fast: false matrix: os: - id: macos-12 From a694cd14651050977e17ec695cfaff20d0ddd6ed Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Mon, 6 Nov 2023 11:51:41 +1300 Subject: [PATCH 17/34] Change get-cmake@arm64-win-linux -> @latest --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d310e18a4..7827726f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -71,7 +71,7 @@ jobs: # - name: "setup: cmake & ninja" - uses: lukka/get-cmake@arm64-win-linux + uses: lukka/get-cmake@latest with: cmakeVersion: "${{ env.CMAKE_VERSION }}" @@ -297,7 +297,7 @@ jobs: # setup # - name: "setup: cmake & ninja" - uses: lukka/get-cmake@arm64-win-linux + uses: lukka/get-cmake@latest with: cmakeVersion: "${{ env.CMAKE_VERSION }}" From 9857228101d082a37d314054c8d51b0a43ae1c13 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Mon, 6 Nov 2023 12:15:11 +1300 Subject: [PATCH 18/34] Try pinning run-cmake at v10.6 --- .github/workflows/build.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7827726f6..28dab19c9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -117,7 +117,7 @@ jobs: echo "is_release=$IS_RELEASE" >> $GITHUB_OUTPUT - name: "app: configuration & vendor dependencies" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-linux @@ -127,7 +127,7 @@ jobs: echo "RUNVCPKG_NO_CACHE=1" >> $GITHUB_ENV - name: "app: build" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-linux buildPreset: ci-linux @@ -161,7 +161,7 @@ jobs: mv fienode /usr/local/bin/ - name: "test: unit tests" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-linux testPreset: ci-linux @@ -175,7 +175,7 @@ jobs: # - name: "bundle: assemble" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-linux buildPreset: ci-bundle-linux @@ -186,7 +186,7 @@ jobs: ./build/pyinstaller/dist/kart/kart --version - name: "bundle: e2e tests" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-linux testPreset: ci-e2e-linux @@ -359,7 +359,7 @@ jobs: echo "is_release=$IS_RELEASE" >> $GITHUB_OUTPUT - name: "app: configuration & vendor dependencies" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 env: LD_LIBRARY_PATH: "${{ env.LD_LIBRARY_PATH }}:${{ env.GITHUB_WORKSPACE }}/build/vcpkg_installed/${{ env.ARCH_TRIPLET }}/lib" with: @@ -856,12 +856,12 @@ jobs: fi - name: "app: configuration & vendor dependencies" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-macos - name: "app: build" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-macos buildPreset: ci-macos @@ -890,7 +890,7 @@ jobs: sudo mv clone_checker /usr/local/bin/ - name: "test: unit tests" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-macos testPreset: ci-macos @@ -920,7 +920,7 @@ jobs: --password "$MACOS_NOTARIZE_PW" - name: "bundle: assemble" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-macos buildPreset: ci-bundle-macos @@ -931,7 +931,7 @@ jobs: ./build/pyinstaller/dist/Kart.app/Contents/MacOS/kart --version - name: "bundle: e2e tests" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-macos testPreset: ci-e2e-macos @@ -1085,7 +1085,7 @@ jobs: fi - name: "app: configuration & vendor dependencies" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-windows @@ -1095,7 +1095,7 @@ jobs: echo "RUNVCPKG_NO_CACHE=1" >> $GITHUB_ENV - name: "app: build" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-windows buildPreset: ci-windows @@ -1117,7 +1117,7 @@ jobs: ./build/kart.cmd --version - name: "test: unit tests" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-windows testPreset: ci-windows @@ -1127,7 +1127,7 @@ jobs: # - name: "bundle: assemble" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 env: SIGN_AZURE_VAULT: ${{ secrets.WIN_SIGN_AZURE_VAULT }} SIGN_AZURE_CLIENTID: ${{ secrets.WIN_SIGN_AZURE_CLIENTID }} @@ -1143,7 +1143,7 @@ jobs: ./build/pyinstaller/dist/kart/kart.exe --version - name: "bundle: e2e tests" - uses: lukka/run-cmake@v10 + uses: lukka/run-cmake@v10.6 with: configurePreset: ci-windows testPreset: ci-e2e-windows From d3b7340b4e3f5c62a5a509222f4ed8d8b5332a86 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Mon, 6 Nov 2023 17:03:26 +1300 Subject: [PATCH 19/34] Fix kart.spec for pyinstaller 6 for macos --- kart.spec | 64 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/kart.spec b/kart.spec index 9fd050576..37d8debab 100644 --- a/kart.spec +++ b/kart.spec @@ -235,22 +235,26 @@ pyi_app = BUNDLE( ) if is_win: - dist_bin_root = Path(DISTPATH) / 'Kart' + dist_bin_root = Path(DISTPATH) / "Kart" elif is_darwin: - dist_bin_root = Path(DISTPATH) / 'Kart.app' / 'Contents' / 'MacOS' + dist_bin_root = Path(DISTPATH) / "Kart.app" / "Contents" / "MacOS" elif is_linux: - dist_bin_root = Path(DISTPATH) / 'kart' + dist_bin_root = Path(DISTPATH) / "kart" -# Pyinstaller now hides most files inside a contents folder, defaults to /_internal/ -# see https://github.com/pyinstaller/pyinstaller/pull/7713 -dist_contents_root = ( - (dist_bin_root / "_internal") - if (dist_bin_root / "_internal").is_dir() - else dist_bin_root -) +if is_darwin: + # On macOS, helper executables and libraries are found in Kart.app/Contents/Frameworks + dist_contents_root = Path(DISTPATH) / "Kart.app" / "Contents" / "Frameworks" +else: + # On other platforms Pyinstaller now hides such files inside a contents folder, + # defaults to /_internal/ see https://github.com/pyinstaller/pyinstaller/pull/7713 + dist_contents_root = ( + (dist_bin_root / "_internal") + if (dist_bin_root / "_internal").is_dir() + else dist_bin_root + ) -# We want not just the python executable but also the helper executable to be in the root folder. +# We want not just the python executable but also the helper executable to be in the binary root folder. if USE_CLI_HELPER and dist_contents_root != dist_bin_root: (dist_contents_root / f"kart{exe_suffix}").rename( dist_bin_root / f"kart{exe_suffix}" @@ -262,20 +266,30 @@ if USE_CLI_HELPER and dist_contents_root != dist_bin_root: if symlinks: if is_win: raise RuntimeError("Symlinks don't work well on Windows!") + elif is_darwin: + # On macOS, PyInstaller makes a Frameworks directory for binaries / libraries, + # and a Resources directory for data and populates them accordingly. + # But then it cross symlinks everything so that you can find it in both regardless. + # Now that we're setting up symlinks, that means we just need to set them up in both directories. + dist_resources_root = Path(DISTPATH) / "Kart.app" / "Contents" / "Resources" + dist_contents_roots = [dist_contents_root, dist_resources_root] + else: + dist_contents_roots = [dist_contents_root] for sl, td in symlinks: sl, td = Path(sl), Path(td) - tp = dist_contents_root / td - - st = sl.readlink() - - if sl.name == "git": # git itself - (tp / sl.name).symlink_to("../../git") - elif str(st) == "../../bin/git": # git-foo -> git - (tp / sl.name).symlink_to("../../git") - elif str(st) == st.name: # git-foo -> git-bar - (tp / sl.name).symlink_to(st.name) - else: - raise ValueError( - "Found symlink I don't know how to handle: source={sl} -> {st}; dest={td}/{sl.name} -> ???" - ) + for root in dist_contents_roots: + tp = root / td + + st = sl.readlink() + + if sl.name == "git": # git itself + (tp / sl.name).symlink_to("../../git") + elif str(st) == "../../bin/git": # git-foo -> git + (tp / sl.name).symlink_to("../../git") + elif str(st) == st.name: # git-foo -> git-bar + (tp / sl.name).symlink_to(st.name) + else: + raise ValueError( + "Found symlink I don't know how to handle: source={sl} -> {st}; dest={td}/{sl.name} -> ???" + ) From 4e508c576a6db00e626203829d30c9222323ba9c Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Tue, 7 Nov 2023 10:13:42 +1300 Subject: [PATCH 20/34] Fix codesign on macos --- CMakeLists.txt | 4 +++- cmake/KartBundle.cmake | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a2de6ab1..5a7b4d354 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -355,8 +355,10 @@ if(MACOS) COMMAND ${XCODE_CODESIGN} --display --verbose \"\${CHECK_DIR}/\${CPACK_PACKAGE_FILE_NAME}/Kart.app\" COMMAND_ECHO STDERR COMMAND_ERROR_IS_FATAL ANY) + # codesign --verify --strict=all only works in macOS 15 and later, + # a bug in earlier versions means it fails with 'file not found' execute_process( - COMMAND ${XCODE_CODESIGN} --verify --verbose --deep --strict=all \"\${CHECK_DIR}/\${CPACK_PACKAGE_FILE_NAME}/Kart.app\" + COMMAND ${XCODE_CODESIGN} --verify --verbose --deep \"\${CHECK_DIR}/\${CPACK_PACKAGE_FILE_NAME}/Kart.app\" COMMAND_ECHO STDERR COMMAND_ERROR_IS_FATAL ANY) diff --git a/cmake/KartBundle.cmake b/cmake/KartBundle.cmake index ead2736e8..b25923097 100644 --- a/cmake/KartBundle.cmake +++ b/cmake/KartBundle.cmake @@ -80,7 +80,9 @@ elseif(MACOS AND MACOS_SIGN_BUNDLE) --strict --entitlements ${CMAKE_CURRENT_SOURCE_DIR}/platforms/macos/entitlements.plist -o runtime pyinstaller/dist/Kart.app COMMAND ${XCODE_CODESIGN} --display --verbose pyinstaller/dist/Kart.app - COMMAND ${XCODE_CODESIGN} --verify --verbose --deep --strict=all pyinstaller/dist/Kart.app + # codesign --verify --strict=all only works in macOS 15 and later, + # a bug in earlier versions means it fails with "file not found" + COMMAND ${XCODE_CODESIGN} --verify --verbose --deep pyinstaller/dist/Kart.app COMMAND ${CMAKE_COMMAND} -E touch pyinstaller/codesign.stamp VERBATIM COMMENT "Code-signing macOS bundle") From 42fddb75ade9965e19fba25301ee8aeaa554dcfb Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Tue, 7 Nov 2023 12:31:09 +1300 Subject: [PATCH 21/34] Set spatialite_path from kart --- tests/scripts/e2e-1.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/scripts/e2e-1.sh b/tests/scripts/e2e-1.sh index a9b9f1a96..1ddbf81fb 100755 --- a/tests/scripts/e2e-1.sh +++ b/tests/scripts/e2e-1.sh @@ -38,6 +38,10 @@ export SHELL=/bin/bash KART_PATH=$(dirname "$(realpath "$(command -v kart)")") echo "Kart is at: ${KART_PATH}" + +SPATIALITE_PATH=$(echo 'from kart import spatialite_path; print(spatialite_path)' | kart --post-mortem 2>/dev/null | grep spatialite | awk '{print $2}') +echo "Spatialite is at: ${SPATIALITE_PATH}" + mkdir "${TMP_PATH}/test" cd "${TMP_PATH}/test" set -x @@ -58,7 +62,7 @@ kart checkout kart switch -c edit-1 sqlite3 --bail test.gpkg " PRAGMA trusted_schema=1; - SELECT load_extension('${KART_PATH}/_internal/mod_spatialite'); + SELECT load_extension('${SPATIALITE_PATH}'); SELECT EnableGpkgMode(); INSERT INTO mylayer (fid, geom) VALUES (999, GeomFromEWKT('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); " From 4bbd4fe1be11720556ef4d25d517297c9115a9b9 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Tue, 7 Nov 2023 20:25:41 +1300 Subject: [PATCH 22/34] Add odbc_config dir to path while building pyodbc --- vcpkg-vendor/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vcpkg-vendor/CMakeLists.txt b/vcpkg-vendor/CMakeLists.txt index af618e165..90bd1a02e 100644 --- a/vcpkg-vendor/CMakeLists.txt +++ b/vcpkg-vendor/CMakeLists.txt @@ -283,6 +283,7 @@ list(APPEND WHEEL_LIST ${INSTALL_DIR}/pygit2-${PYGIT2_WHEEL_VER}-${Python3_WHEEL if(NOT WIN32) find_package(unixodbc CONFIG REQUIRED) set(PYODBC_BUILD_DEPENDS UNIX::odbc) + set(ODBC_CONFIG_DIR ${CURRENT_PACKAGES_DIR}/tools/unixodbc/bin) endif() file( @@ -308,7 +309,8 @@ ExternalProject_Add( CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/pyodbc-prefix/setup.cfg BUILD_COMMAND ${CMAKE_COMMAND} -E rm -rf /*.whl - COMMAND ${wheelBuildEnv_PYTHON} -m build --wheel --outdir /dist + COMMAND ${CMAKE_COMMAND} -E env --modify PATH=path_list_prepend:${ODBC_CONFIG_DIR} -- + ${wheelBuildEnv_PYTHON} -m build --wheel --outdir /dist INSTALL_COMMAND ${CMAKE_COMMAND} -E copy /dist/pyodbc-${PYODBC_WHEEL_VER}-${Python3_WHEEL_ID}.whl ) ExternalProject_Get_Property(pyodbc INSTALL_DIR) From 75343a544f65e020f15a200dd09436b1d7c3bd25 Mon Sep 17 00:00:00 2001 From: rcoup Date: Wed, 8 Nov 2023 15:48:17 +0000 Subject: [PATCH 23/34] ci: pin get-cmake action to v3.25.2 in attempt to workaround glibc issue --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 28dab19c9..ed05baeb1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -71,7 +71,7 @@ jobs: # - name: "setup: cmake & ninja" - uses: lukka/get-cmake@latest + uses: lukka/get-cmake@v3.25.2 # workaround for node 20 issue with: cmakeVersion: "${{ env.CMAKE_VERSION }}" @@ -297,7 +297,7 @@ jobs: # setup # - name: "setup: cmake & ninja" - uses: lukka/get-cmake@latest + uses: lukka/get-cmake@v3.25.2 # workaround for node 20 issue with: cmakeVersion: "${{ env.CMAKE_VERSION }}" @@ -633,7 +633,7 @@ jobs: cache-dependency-path: 'requirements/*.txt' - name: "setup: cmake & ninja" - uses: lukka/get-cmake@arm64-win-linux + uses: lukka/get-cmake@v3.25.2 # workaround for node 20 issue with: cmakeVersion: "${{ env.CMAKE_VERSION }}" From 9c13625cbb0ac613a9a07e5605b282d1b92f9e56 Mon Sep 17 00:00:00 2001 From: rcoup Date: Wed, 8 Nov 2023 16:32:41 +0000 Subject: [PATCH 24/34] vendor: Spatialite update Squashed commit of the following: commit 5e4d28adf511d09854ee33ba724e89be36aacf78 Author: Andrew Olsen Date: Wed Nov 8 19:23:10 2023 +1300 Try remove ok-load-permanently.patch commit a6cb28ad0cdda4477fa36cd36b8def02bbddd421 Author: Andrew Olsen Date: Wed Nov 8 16:29:12 2023 +1300 Add our patches to libspatialite 5.1.0 overlay commit 8cc6f6d2f3836f9e492025c56dbf0ad29a58c041 Author: Andrew Olsen Date: Wed Nov 8 15:53:40 2023 +1300 Copy spatialite port into overlays, no changes commit 946c7b379696a88eeb2d18b38c0485fa91fb964f Author: Andrew Olsen Date: Wed Nov 8 15:52:25 2023 +1300 Remove libspatialite overlay --- .../libspatialite/fix-mingw.patch | 15 +-------- .../libspatialite/fix-utf8-source.patch | 32 +++++++++++++++++++ .../libspatialite/ok-load-permanently.patch | 13 -------- .../libspatialite/portfile.cmake | 10 +++--- .../libspatialite/vcpkg.json | 3 +- 5 files changed, 38 insertions(+), 35 deletions(-) create mode 100644 vcpkg-vendor/vcpkg-overlay-ports/libspatialite/fix-utf8-source.patch delete mode 100644 vcpkg-vendor/vcpkg-overlay-ports/libspatialite/ok-load-permanently.patch diff --git a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/fix-mingw.patch b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/fix-mingw.patch index c29b03449..abbe3520a 100644 --- a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/fix-mingw.patch +++ b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/fix-mingw.patch @@ -1,23 +1,10 @@ -diff --git a/src/gaiageo/gg_shape.c b/src/gaiageo/gg_shape.c -index ee2f1cf..01f2571 100644 ---- a/src/gaiageo/gg_shape.c -+++ b/src/gaiageo/gg_shape.c -@@ -58,7 +58,7 @@ the terms of any one of the MPL, the GPL or the LGPL. - #endif - - #ifdef _WIN32 --#include -+#include - #endif - - #if OMIT_ICONV == 0 /* if ICONV is disabled no SHP support is available */ diff --color -ur a/configure.ac b/configure.ac --- a/configure.ac 2022-07-21 17:23:50.490298108 +0200 +++ b/configure.ac 2022-07-21 17:25:45.671489524 +0200 @@ -116,7 +116,6 @@ # 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_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_CHECK_LIB(z,inflateInit_,,AC_MSG_ERROR(['libz' is required but it doesn't seem to be installed on this system.]),-lm) AC_CONFIG_FILES([Makefile \ diff --git a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/fix-utf8-source.patch b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/fix-utf8-source.patch new file mode 100644 index 000000000..76dcf77a5 --- /dev/null +++ b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/fix-utf8-source.patch @@ -0,0 +1,32 @@ +diff --git a/src/srsinit/epsg_inlined_21.c b/src/srsinit/epsg_inlined_21.c +index 94aa9d4..457b38a 100644 +--- a/src/srsinit/epsg_inlined_21.c ++++ b/src/srsinit/epsg_inlined_21.c +@@ -619,9 +619,9 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las + add_srs_wkt (p, 27, + "lic, Chad, Chile, China, Christmas Island, Cocos (Keelin"); + add_srs_wkt (p, 28, +- "g) Islands, Comoros, Congo, Cook Islands, Costa Rica, CĂ"); ++ "g) Islands, Comoros, Congo, Cook Islands, Costa Rica, CĂ´"); + add_srs_wkt (p, 29, +- "´te d'Ivoire (Ivory Coast), Croatia, Cuba, Curacao, Cypr"); ++ "te d'Ivoire (Ivory Coast), Croatia, Cuba, Curacao, Cypr"); + add_srs_wkt (p, 30, + "us, Czechia, Denmark, Djibouti, Dominica, Dominican Repu"); + add_srs_wkt (p, 31, +diff --git a/src/srsinit/epsg_inlined_25.c b/src/srsinit/epsg_inlined_25.c +index 1071eb1..a09cb8c 100644 +--- a/src/srsinit/epsg_inlined_25.c ++++ b/src/srsinit/epsg_inlined_25.c +@@ -3180,9 +3180,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las + add_srs_wkt (p, 26, + "lic, Chad, Chile, China, Christmas Island, Cocos (Keelin"); + add_srs_wkt (p, 27, +- "g) Islands, Comoros, Congo, Cook Islands, Costa Rica, CĂ"); ++ "g) Islands, Comoros, Congo, Cook Islands, Costa Rica, CĂ´"); + add_srs_wkt (p, 28, +- "´te d'Ivoire (Ivory Coast), Croatia, Cuba, Curacao, Cypr"); ++ "te d'Ivoire (Ivory Coast), Croatia, Cuba, Curacao, Cypr"); + add_srs_wkt (p, 29, + "us, Czechia, Denmark, Djibouti, Dominica, Dominican Repu"); + add_srs_wkt (p, 30, diff --git a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/ok-load-permanently.patch b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/ok-load-permanently.patch deleted file mode 100644 index 81c33b7e6..000000000 --- a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/ok-load-permanently.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/spatialite/spatialite.c b/src/spatialite/spatialite.c -index 9d6063d..f3dda37 100644 ---- a/src/spatialite/spatialite.c -+++ b/src/spatialite/spatialite.c -@@ -53439,7 +53439,7 @@ init_spatialite_extension (sqlite3 * db, char **pzErrMsg, - /* setting a timeout handler */ - sqlite3_busy_timeout (db, 5000); - -- return 0; -+ return SQLITE_OK_LOAD_PERMANENTLY; - } - #endif - diff --git a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake index 4b1d0aa35..8a60f9ec5 100644 --- a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake +++ b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake @@ -1,8 +1,7 @@ -set(LIBSPATIALITE_VERSION_STR "5.0.1") vcpkg_download_distfile(ARCHIVE - URLS "https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${LIBSPATIALITE_VERSION_STR}.tar.gz" - FILENAME "libspatialite-${LIBSPATIALITE_VERSION_STR}.tar.gz" - SHA512 c2552994bc30d69d1e80aa274760f048cd384f71e8350a1e48a47cb8222ba71a1554a69c6534eedde9a09dc582c39c089967bcc1c57bf158cc91a3e7b1840ddf + URLS "https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${VERSION}.tar.gz" + FILENAME "libspatialite-${VERSION}.tar.gz" + SHA512 2745b373e31cea58623224def6090c491b58409803bb71231450dfa2cfdf3aafc3fc6f680585d55d085008f8cf362c3062ae67ffc7d80257775a22eb81ef1e57 ) vcpkg_extract_source_archive( @@ -14,7 +13,7 @@ vcpkg_extract_source_archive( fix-linux-configure.patch gaiaconfig-msvc.patch fix-mingw.patch - ok-load-permanently.patch + fix-utf8-source.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS unused @@ -134,7 +133,6 @@ if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) endif() set(infile "${SOURCE_PATH}/spatialite.pc.in") - set(VERSION "${LIBSPATIALITE_VERSION_STR}") set(libdir [[${prefix}/lib]]) set(exec_prefix [[${prefix}]]) list(JOIN pkg_config_modules " " requires_private) diff --git a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/vcpkg.json b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/vcpkg.json index 447ffe993..448e5c7bf 100644 --- a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/vcpkg.json +++ b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/vcpkg.json @@ -1,7 +1,6 @@ { "name": "libspatialite", - "version": "5.0.1", - "port-version": 12, + "version": "5.1.0", "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/gaia-sins/libspatialite-sources", "license": null, From 31c34aaf4053fead83d8868988d1923844ef4323 Mon Sep 17 00:00:00 2001 From: rcoup Date: Wed, 8 Nov 2023 16:36:15 +0000 Subject: [PATCH 25/34] gdal: backport upstream fix wrt spatialite versioning from https://github.com/OSGeo/gdal/commit/37391454a76d1d798e5a872dd2e1d8ee45a7a773 --- .../gdal/fix-find-spatialite.patch | 13 +++++++++++++ .../vcpkg-overlay-ports/gdal/portfile.cmake | 1 + 2 files changed, 14 insertions(+) create mode 100644 vcpkg-vendor/vcpkg-overlay-ports/gdal/fix-find-spatialite.patch diff --git a/vcpkg-vendor/vcpkg-overlay-ports/gdal/fix-find-spatialite.patch b/vcpkg-vendor/vcpkg-overlay-ports/gdal/fix-find-spatialite.patch new file mode 100644 index 000000000..45713e765 --- /dev/null +++ b/vcpkg-vendor/vcpkg-overlay-ports/gdal/fix-find-spatialite.patch @@ -0,0 +1,13 @@ +diff --git a/cmake/modules/packages/FindSPATIALITE.cmake b/cmake/modules/packages/FindSPATIALITE.cmake +index d64daecefbc8..79827d9e19e5 100644 +--- a/cmake/modules/packages/FindSPATIALITE.cmake ++++ b/cmake/modules/packages/FindSPATIALITE.cmake +@@ -64,6 +64,6 @@ if(SPATIALITE_LIBRARY AND SPATIALITE_INCLUDE_DIR + AND NOT SPATIALITE_VERSION_STRING) + file(STRINGS "${SPATIALITE_INCLUDE_DIR}/spatialite.h" _spatialite_h_ver +- REGEX "^[ \t]version[ \t]([0-9]+\\.[0-9]+),.*") +- string(REGEX REPLACE "[ \t]version[ \t]([0-9]+\\.[0-9]+),.*" "\\1" _spatialite_h_ver ${_spatialite_h_ver}) ++ REGEX "^[ \t]version[ \t]([0-9]+\\.[0-9]+)[,.].*") ++ string(REGEX REPLACE "[ \t]version[ \t]([0-9]+\\.[0-9]+)[,.].*" "\\1" _spatialite_h_ver "${_spatialite_h_ver}") + set(SPATIALITE_VERSION_STRING "${_spatialite_h_ver}") + endif() diff --git a/vcpkg-vendor/vcpkg-overlay-ports/gdal/portfile.cmake b/vcpkg-vendor/vcpkg-overlay-ports/gdal/portfile.cmake index d2f8c7aec..9ec71b740 100644 --- a/vcpkg-vendor/vcpkg-overlay-ports/gdal/portfile.cmake +++ b/vcpkg-vendor/vcpkg-overlay-ports/gdal/portfile.cmake @@ -8,6 +8,7 @@ vcpkg_from_github( find-link-libraries.patch fix-gdal-target-interfaces.patch libkml.patch + fix-find-spatialite.patch ) # `vcpkg clean` stumbles over one subdir file(REMOVE_RECURSE "${SOURCE_PATH}/autotest") From ee37d3f26e16260683bf0acf388860ae473a6ce4 Mon Sep 17 00:00:00 2001 From: rcoup Date: Wed, 8 Nov 2023 16:47:29 +0000 Subject: [PATCH 26/34] ci: use run-vcpkg@v11 everywhere Sorts out the iffy binary caching Use v11.1 on Linux until we figure out this node 20/glibc issue --- .github/workflows/build.yml | 33 +++++++-------------------------- 1 file changed, 7 insertions(+), 26 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ed05baeb1..1b5a20ed8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -89,12 +89,11 @@ jobs: echo "/usr/lib/ccache" >> $GITHUB_PATH - name: "setup: vcpkg" - uses: lukka/run-vcpkg@v10 + uses: lukka/run-vcpkg@v11.1 with: vcpkgDirectory: "${{ github.workspace }}/vcpkg-vendor/vcpkg" vcpkgJsonGlob: "**/vcpkg-vendor/vcpkg.json" - prependedCacheKey: "20221110a-ubuntu-22.04" - appendedCacheKey: "C${{ env.CMAKE_VERSION}}:${{ hashFiles('vcpkg-vendor/vcpkg-overlay-triplets/**', 'vcpkg-vendor/vcpkg-overlay-ports/**', 'vcpkg-vendor/vcpkg-toolchain-setup.cmake') }}" + doNotCache: false # do-cache # # App Build @@ -121,11 +120,6 @@ jobs: with: configurePreset: ci-linux - - name: "check for vcpkg errors" - if: "failure() || cancelled()" - run: | - echo "RUNVCPKG_NO_CACHE=1" >> $GITHUB_ENV - - name: "app: build" uses: lukka/run-cmake@v10.6 with: @@ -324,12 +318,11 @@ jobs: fi - name: "setup: vcpkg" - uses: lukka/run-vcpkg@v10 + uses: lukka/run-vcpkg@v11.1 with: - vcpkgDirectory: "vcpkg-vendor/vcpkg" + vcpkgDirectory: "${{ github.workspace }}/vcpkg-vendor/vcpkg" vcpkgJsonGlob: "**/vcpkg-vendor/vcpkg.json" - prependedCacheKey: "20230113a-linux-${{ matrix.os.label }}" - appendedCacheKey: "C${{ env.CMAKE_VERSION}}:${{ hashFiles('vcpkg-vendor/vcpkg-overlay-triplets/**', 'vcpkg-vendor/vcpkg-overlay-ports/**', 'vcpkg-vendor/vcpkg-toolchain-setup.cmake') }}" + doNotCache: false # do-cache - name: "setup: pkgconf" working-directory: /__w/_temp @@ -366,12 +359,6 @@ jobs: configurePreset: ci-linux configurePresetAdditionalArgs: ${{ env.OPTIONS_FOR_CMAKE }} - - name: "check for vcpkg errors" - if: "failure() || cancelled()" - shell: bash - run: | - echo "RUNVCPKG_NO_CACHE=1" >> $GITHUB_ENV - - name: "app: build" shell: bash run: | @@ -1042,12 +1029,11 @@ jobs: cache-dependency-path: 'requirements/*.txt' - name: "setup: vcpkg" - uses: lukka/run-vcpkg@v10 + uses: lukka/run-vcpkg@v11 with: vcpkgDirectory: "${{ github.workspace }}/vcpkg-vendor/vcpkg" vcpkgJsonGlob: "**/vcpkg-vendor/vcpkg.json" - prependedCacheKey: "20221201a" - appendedCacheKey: "C${{ env.CMAKE_VERSION}}:N${{ env.NINJA_VERSION }}:${{ hashFiles('vcpkg-vendor/vcpkg-overlay-triplets/**', 'vcpkg-vendor/vcpkg-overlay-ports/**', 'vcpkg-vendor/vcpkg-toolchain-setup.cmake') }}" + doNotCache: false # do-cache - name: "setup: misc" shell: pwsh @@ -1089,11 +1075,6 @@ jobs: with: configurePreset: ci-windows - - name: "check for vcpkg errors" - if: failure() || cancelled() - run: | - echo "RUNVCPKG_NO_CACHE=1" >> $GITHUB_ENV - - name: "app: build" uses: lukka/run-cmake@v10.6 with: From 7737c6eb226ead8525fe166439833483cbd63b49 Mon Sep 17 00:00:00 2001 From: rcoup Date: Wed, 8 Nov 2023 17:11:01 +0000 Subject: [PATCH 27/34] ci: use AWS docker image mirrors avoids rate limit issues with docker hub --- .github/workflows/build.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1b5a20ed8..cdd2ba615 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -55,7 +55,7 @@ jobs: ports: - 1433:1433 mysql: - image: mysql + image: public.ecr.aws/docker/library/mysql:latest options: >- -e MYSQL_ROOT_PASSWORD=PassWord1 ports: @@ -255,7 +255,7 @@ jobs: ports: - 1433:1433 mysql: - image: mysql + image: public.ecr.aws/docker/library/mysql:latest options: >- -e MYSQL_ROOT_PASSWORD=PassWord1 ports: @@ -473,34 +473,34 @@ jobs: runner: buildjet-2vcpu-ubuntu-2204-arm os: - label: "tgz-ubuntu-22.04" - image: "ubuntu:jammy" + image: "public.ecr.aws/ubuntu/ubuntu:jammy" type: "tgz" - label: "ubuntu-22.04" - image: "ubuntu:jammy" + image: "public.ecr.aws/ubuntu/ubuntu:jammy" type: "deb" - label: "ubuntu-20.04" - image: "ubuntu:focal" + image: "public.ecr.aws/ubuntu/ubuntu:focal" type: "deb" - label: "ubuntu-18.04" - image: "ubuntu:bionic" + image: "public.ecr.aws/ubuntu/ubuntu:bionic" type: "deb" - label: "debian-stable" - image: "debian:stable-slim" + image: "public.ecr.aws/docker/library/debian:stable-slim" type: "deb" - label: "debian-oldstable" - image: "debian:oldstable-slim" + image: "public.ecr.aws/docker/library/debian:oldstable-slim" type: "deb" - label: "amazonlinux-2023" - image: "amazonlinux:2023" + image: "public.ecr.aws/amazonlinux/amazonlinux:2023" type: "rpm" - label: "fedora-latest" - image: "fedora:latest" + image: "public.ecr.aws/docker/library/fedora:latest" type: "rpm" - label: "almalinux-9" - image: "almalinux:9" + image: "public.ecr.aws/docker/library/almalinux:9" type: "rpm" - label: "almalinux-8" - image: "almalinux:8" + image: "public.ecr.aws/docker/library/almalinux:8" type: "rpm" runs-on: ${{ matrix.arch.runner }} From 88e75e5ac0e5f6124e008bdcefcaa5fedf93fb53 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Thu, 9 Nov 2023 14:06:32 +1300 Subject: [PATCH 28/34] Disable proj linkage from spatialite on macos/linux --- vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake index 8a60f9ec5..910db3929 100644 --- a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake +++ b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake @@ -205,6 +205,7 @@ else() ${RTTOPO_OPTION} "--disable-examples" "--disable-minizip" + "--disable-proj" OPTIONS_DEBUG "LIBS=${PKGCONFIG_LIBS_DEBUG} ${SYSTEM_LIBS}" OPTIONS_RELEASE From 3067f2dd7e7c6745e60012165262774c4a4b0d28 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Thu, 9 Nov 2023 14:24:53 +1300 Subject: [PATCH 29/34] Reinstate ok-load-permanently.patch --- .../libspatialite/ok-load-permanently.patch | 13 +++++++++++++ .../libspatialite/portfile.cmake | 1 + 2 files changed, 14 insertions(+) create mode 100644 vcpkg-vendor/vcpkg-overlay-ports/libspatialite/ok-load-permanently.patch diff --git a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/ok-load-permanently.patch b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/ok-load-permanently.patch new file mode 100644 index 000000000..81c33b7e6 --- /dev/null +++ b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/ok-load-permanently.patch @@ -0,0 +1,13 @@ +diff --git a/src/spatialite/spatialite.c b/src/spatialite/spatialite.c +index 9d6063d..f3dda37 100644 +--- a/src/spatialite/spatialite.c ++++ b/src/spatialite/spatialite.c +@@ -53439,7 +53439,7 @@ init_spatialite_extension (sqlite3 * db, char **pzErrMsg, + /* setting a timeout handler */ + sqlite3_busy_timeout (db, 5000); + +- return 0; ++ return SQLITE_OK_LOAD_PERMANENTLY; + } + #endif + diff --git a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake index 910db3929..7b0e4207c 100644 --- a/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake +++ b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake @@ -14,6 +14,7 @@ vcpkg_extract_source_archive( gaiaconfig-msvc.patch fix-mingw.patch fix-utf8-source.patch + ok-load-permanently.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS unused From 82412c1e27f188adb11db15738a514c27fce356d Mon Sep 17 00:00:00 2001 From: rcoup Date: Thu, 9 Nov 2023 11:09:03 +0000 Subject: [PATCH 30/34] update vcpkg: python3: explicitly disable tkinter. https://github.com/microsoft/vcpkg/pull/34998 --- vcpkg-vendor/vcpkg | 2 +- vcpkg-vendor/vcpkg.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vcpkg-vendor/vcpkg b/vcpkg-vendor/vcpkg index 0938e717a..625ba82b9 160000 --- a/vcpkg-vendor/vcpkg +++ b/vcpkg-vendor/vcpkg @@ -1 +1 @@ -Subproject commit 0938e717a39ea1c7ec62498f52fe505636fc5413 +Subproject commit 625ba82b98209eb7e76f335e635e280f2117862f diff --git a/vcpkg-vendor/vcpkg.json b/vcpkg-vendor/vcpkg.json index 462769ea1..f46f451b5 100644 --- a/vcpkg-vendor/vcpkg.json +++ b/vcpkg-vendor/vcpkg.json @@ -1,7 +1,7 @@ { "name": "kart-vendor", "version-string": "0.1.2", - "builtin-baseline": "0938e717a39ea1c7ec62498f52fe505636fc5413", + "builtin-baseline": "625ba82b98209eb7e76f335e635e280f2117862f", "dependencies": [ { "name": "sqlite3", From 456674d8d342902186769018d9a3d0ca0a0c157d Mon Sep 17 00:00:00 2001 From: rcoup Date: Thu, 9 Nov 2023 12:52:14 +0000 Subject: [PATCH 31/34] ci: linux package tests: we're running python3.11 now --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cdd2ba615..a7edc7290 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -280,7 +280,7 @@ jobs: image: ${{ matrix.os.image }} env: ACLOCAL_PATH: "/usr/local/share/aclocal:/usr/share/aclocal" - PATH: "/opt/python/cp310-cp310/bin:/opt/rh/devtoolset-10/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/github/home/.cargo/bin:/opt/mssql-tools/bin" + PATH: "/opt/python/cp311-cp311/bin:/opt/rh/devtoolset-10/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/github/home/.cargo/bin:/opt/mssql-tools/bin" steps: - uses: actions/checkout@v3 @@ -601,7 +601,7 @@ jobs: env: CCACHE_DIR: ${{ github.workspace }}/.cache/ccache CCACHE_COMPRESS: "1" - PY_VER_ID: "cp310-cp310" + PY_VER_ID: "cp311-cp311" steps: - uses: actions/checkout@v3 From 94f73418ff9e9306b649fd8e781dbb76323a10f5 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Fri, 10 Nov 2023 09:21:27 +1300 Subject: [PATCH 32/34] Rebuild py-requirements with python3.11 --- requirements/dev.txt | 6 +----- requirements/docs.txt | 2 +- requirements/requirements.txt | 2 +- requirements/test.txt | 8 +------- 4 files changed, 4 insertions(+), 14 deletions(-) diff --git a/requirements/dev.txt b/requirements/dev.txt index 25ce47b87..a013846ba 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.10 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # "cmake --build build --target py-requirements" @@ -60,10 +60,6 @@ six==1.16.0 # asttokens stack-data==0.6.2 # via ipython -tomli==2.0.1 - # via - # -c test.txt - # ipdb traitlets==5.7.1 # via # ipython diff --git a/requirements/docs.txt b/requirements/docs.txt index a26efbb5e..77c9945ef 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.10 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # "cmake --build build --target py-requirements" diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 314ca455d..fa96f265f 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.10 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # "cmake --build build --target py-requirements" diff --git a/requirements/test.txt b/requirements/test.txt index e545f2b98..918f8ce0f 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.10 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # "cmake --build build --target py-requirements" @@ -18,8 +18,6 @@ coverage[toml]==6.5.0 # via # coverage # pytest-cov -exceptiongroup==1.0.4 - # via pytest execnet==1.9.0 # via pytest-xdist fields==5.0.0 @@ -72,9 +70,5 @@ six==1.16.0 # pytest-profiling termcolor==2.1.1 # via pytest-sugar -tomli==2.0.1 - # via - # coverage - # pytest webencodings==0.5.1 # via html5lib From 090dfb7e98f12bc739e7e106d8c73669ab3bf446 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Fri, 10 Nov 2023 09:27:24 +1300 Subject: [PATCH 33/34] Mostly documentation - python3.10 -> python3.11 --- CONTRIBUTING.md | 24 +++++++++++++----------- cmake/PythonGetABIInfo.cmake | 4 ++-- vcpkg-vendor/cmake-vcpkg-build-linux.sh | 2 +- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1874acf1f..9620db718 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,10 +38,11 @@ $ git submodule update --init --recursive ### Setting Python3 +Python 3.11 is now used (as of Kart v0.15) to build official Kart releases. CMake will try to automatically find a Python3 install on your system with which to build Kart. However, to avoid any issues caused by different Python implementations, it is recommended to force CMake -to use Python 3.10, by supplying the flag `-DPython3_EXECUTABLE` - for example: -`-DPython3_EXECUTABLE=$(command -v python3.10)` +to use Python 3.11 , by supplying the flag `-DPython3_EXECUTABLE` - for example: +`-DPython3_EXECUTABLE=$(command -v python3.11)` When using CI artifacts to build this is not just recommended, but required. @@ -49,7 +50,7 @@ When using CI artifacts to build this is not just recommended, but required. Then configure Kart: ```console -$ cmake -B build -S . -DPython3_EXECUTABLE=/path/to/python3.10 -DUSE_VCPKG=ON +$ cmake -B build -S . -DPython3_EXECUTABLE=/path/to/python3.11 -DUSE_VCPKG=ON ``` Configuration builds all the dependencies using [VCPKG](https://github.com/microsoft/vcpkg) @@ -77,7 +78,7 @@ Kart with `-DCLI_HELPER=ON`. ### Downloading vendor dependencies from CI -If you're having issues with VCPKG in the above, you can download a recent master-branch vendor CI artifact for your platform (eg: `vendor-macos-X64-py3.10.zip`). +If you're having issues with VCPKG in the above, you can download a recent master-branch vendor CI artifact for your platform (eg: `vendor-macos-X64-py3.11.zip`). To do this, take the following steps: 1. Start at the list of recent [successful builds on master](https://github.com/koordinates/kart/actions/workflows/build.yml?query=branch%3Amaster+is%3Asuccess). 1. Select a commit - ideally the commit that you have checked out locally, but if you don't see it, just choosing the top one will generally work. @@ -88,12 +89,12 @@ To do this, take the following steps: Then: ```console -$ cmake -B build -S . -DPython3_EXECUTABLE=/path/to/python3.10 -DVENDOR_ARCHIVE=/path/to/downloaded/vendor-{os}-{arch}-py3.10.zip -DUSE_VCPKG=OFF +$ cmake -B build -S . -DPython3_EXECUTABLE=/path/to/python3.11 -DVENDOR_ARCHIVE=/path/to/downloaded/vendor-{os}-{arch}-py3.11.zip -DUSE_VCPKG=OFF $ cmake --build build $ build/kart --version ``` -Note you'll need to have the same version of Python that Kart CI currently uses (Python 3.10). +Note you'll need to have the same version of Python that Kart CI currently uses (Python 3.11). ### Running the tests @@ -119,10 +120,11 @@ Clone Kart from Github: ### Setting Python3 +Python 3.11 is now used (as of Kart v0.15) to build official Kart releases. CMake will try to automatically find a Python3 install on your system with which to build Kart. However, to avoid any issues caused by different Python implementations, it is recommended to force CMake -to use Python 3.10, by supplying the flag `-DPython3_EXECUTABLE` - for example: -`-DPython3_EXECUTABLE="C:\Program Files\Python310\python.exe"` +to use Python 3.11, by supplying the flag `-DPython3_EXECUTABLE` - for example: +`-DPython3_EXECUTABLE="C:\Program Files\Python311\python.exe"` When using CI artifacts to build this is not just recommended, but required. @@ -151,7 +153,7 @@ $ build\pyinstaller\dist\kart\kart.exe --version ### Downloading vendor dependencies from CI -If you're having issues with VCPKG in the above, you can download a recent master-branch vendor CI artifact for your platform (eg: `vendor-windows-X64-py3.10.zip`). +If you're having issues with VCPKG in the above, you can download a recent master-branch vendor CI artifact for your platform (eg: `vendor-windows-X64-py3.11.zip`). To do this, take the following steps: 1. Start at the list of recent [successful builds on master](https://github.com/koordinates/kart/actions/workflows/build.yml?query=branch%3Amaster+is%3Asuccess). 1. Select a commit - ideally the commit that you have checked out locally, but if you don't see it, just choosing the top one will generally work. @@ -162,12 +164,12 @@ To do this, take the following steps: Then: ```console -> cmake -B build -S . -DPython3_EXECUTABLE=C:\path\to\python310.exe -DVENDOR_ARCHIVE=D:\path\to\downloaded\vendor-windows-X64-py3.10.zip -DUSE_VCPKG=OFF +> cmake -B build -S . -DPython3_EXECUTABLE=C:\path\to\python310.exe -DVENDOR_ARCHIVE=D:\path\to\downloaded\vendor-windows-X64-py3.11.zip -DUSE_VCPKG=OFF > cmake --build build > .\build\venv\Scripts\kart.exe --version ``` -Note you'll need to have the same version of Python that Kart CI currently uses (Python 3.10). +Note you'll need to have the same version of Python that Kart CI currently uses (Python 3.11). ### Running the tests diff --git a/cmake/PythonGetABIInfo.cmake b/cmake/PythonGetABIInfo.cmake index 6476219aa..37bb33665 100644 --- a/cmake/PythonGetABIInfo.cmake +++ b/cmake/PythonGetABIInfo.cmake @@ -12,8 +12,8 @@ Output Variables: Python3_MACOSX_DEPLOYMENT_TARGET: (macOS only) Stores the macOS deployment target Python was built with (eg: 10.9) Python3_PURELIB_REL_PATH: - Relatuve path from a virtualenv root to the site-packages directory - eg: lib/python3.10/site-packages + Relative path from a virtualenv root to the site-packages directory + eg: lib/python3.11/site-packages #]=============================================================================] diff --git a/vcpkg-vendor/cmake-vcpkg-build-linux.sh b/vcpkg-vendor/cmake-vcpkg-build-linux.sh index 065b11d8f..8126856f5 100755 --- a/vcpkg-vendor/cmake-vcpkg-build-linux.sh +++ b/vcpkg-vendor/cmake-vcpkg-build-linux.sh @@ -11,7 +11,7 @@ set -euo pipefail # - quay.io/pypa/manylinux2014_aarch64 # should also work with most other OS images too (eg: ubuntu:jammy, ubuntu:focal) -PYVER=3.10 +PYVER=3.11 APT_DEPENDS=( autoconf build-essential From e174fb588ad7830531b3ebbccdbd55051a1ff818 Mon Sep 17 00:00:00 2001 From: Andrew Olsen Date: Fri, 10 Nov 2023 09:48:55 +1300 Subject: [PATCH 34/34] Update changelog for vcpkg-update --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e18eb5aea..630c010e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ _When adding new entries to the changelog, please include issue/PR numbers where - Adds information on referencing and citing Kart to `CITATION`. [#914](https://github.com/koordinates/kart/pull/914) - Fixes a bug where Kart would misidentify a non-Kart repo as a Kart V1 repo in some circumstances. [#918](https://github.com/koordinates/kart/issues/918) - Improve schema extraction for point cloud datasets. [#924](https://github.com/koordinates/kart/issues/924) +- Now using Python 3.11 to build Kart, and vendored dependencies have been updated to newer versions. [#933](https://github.com/koordinates/kart/pull/933) ## 0.14.2