diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index b15a9c3f9..a7edc7290 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"
@@ -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:
@@ -71,7 +71,7 @@ jobs:
#
- 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 }}"
@@ -84,17 +84,16 @@ 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
- 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
@@ -117,17 +116,12 @@ 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
- - name: "check for vcpkg errors"
- if: "failure() || cancelled()"
- run: |
- 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 +155,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 +169,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 +180,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
@@ -261,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:
@@ -286,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
@@ -297,7 +291,7 @@ jobs:
# setup
#
- 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 }}"
@@ -313,7 +307,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/
@@ -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
@@ -359,19 +352,13 @@ 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:
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: |
@@ -486,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 }}
@@ -614,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
@@ -633,7 +620,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 }}"
@@ -646,7 +633,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
@@ -718,6 +705,7 @@ jobs:
#
macOS:
strategy:
+ fail-fast: false
matrix:
os:
- id: macos-12
@@ -748,7 +736,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
@@ -855,12 +843,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
@@ -889,7 +877,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
@@ -919,7 +907,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
@@ -930,7 +918,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
@@ -1041,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
@@ -1084,17 +1071,12 @@ jobs:
fi
- name: "app: configuration & vendor dependencies"
- uses: lukka/run-cmake@v10
+ uses: lukka/run-cmake@v10.6
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
+ uses: lukka/run-cmake@v10.6
with:
configurePreset: ci-windows
buildPreset: ci-windows
@@ -1116,7 +1098,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
@@ -1126,7 +1108,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 }}
@@ -1142,7 +1124,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
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/CHANGELOG.md b/CHANGELOG.md
index a083d37cf..6d1903248 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ _When adding new entries to the changelog, please include issue/PR numbers where
- 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)
- Some tweaks to `--dry-run` output of Kart LFS commands. [#932](https://github.com/koordinates/kart/pull/932)
+- 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
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/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/KartBundle.cmake b/cmake/KartBundle.cmake
index 00c5a734d..b25923097 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")
@@ -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")
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/kart.spec b/kart.spec
index 4b538c456..37d8debab 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")
@@ -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'),
]
@@ -194,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,
@@ -238,29 +234,62 @@ 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"
+
+
+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 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}"
+ )
+
+
# 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!")
+ 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_bin_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} -> ???"
+ )
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
+
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 b1e2501fe..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"
@@ -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 ecea1c277..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"
@@ -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
@@ -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
@@ -52,11 +52,11 @@ 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
-#pysqlite3==0.4.5
+#pysqlite3==0.5.2
# via -r vendor-wheels.txt
python-dateutil==2.8.2
# via botocore
diff --git a/requirements/test.txt b/requirements/test.txt
index ca2ba219a..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"
@@ -15,9 +15,9 @@ attrs==22.1.0
colorama==0.4.6
# via -r test.in
coverage[toml]==6.5.0
- # via pytest-cov
-exceptiongroup==1.0.4
- # via pytest
+ # via
+ # coverage
+ # pytest-cov
execnet==1.9.0
# via pytest-xdist
fields==5.0.0
@@ -70,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
diff --git a/requirements/vendor-wheels.txt b/requirements/vendor-wheels.txt
index 29c2690f6..d943d3ac1 100644
--- a/requirements/vendor-wheels.txt
+++ b/requirements/vendor-wheels.txt
@@ -1,8 +1,8 @@
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==4.0.32
-pysqlite3==0.4.5
+pyodbc==5.0.1
+pysqlite3==0.5.2
reflink==0.2.1
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..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
@@ -57,7 +61,8 @@ kart log
kart checkout
kart switch -c edit-1
sqlite3 --bail test.gpkg "
- SELECT load_extension('${KART_PATH}/mod_spatialite');
+ PRAGMA trusted_schema=1;
+ 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))'));
"
diff --git a/vcpkg-vendor/CMakeLists.txt b/vcpkg-vendor/CMakeLists.txt
index ad7238b55..90bd1a02e 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
@@ -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(
@@ -294,12 +295,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}
@@ -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)
@@ -328,7 +330,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
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
diff --git a/vcpkg-vendor/vcpkg b/vcpkg-vendor/vcpkg
index 09cbbcd67..625ba82b9 160000
--- a/vcpkg-vendor/vcpkg
+++ b/vcpkg-vendor/vcpkg
@@ -1 +1 @@
-Subproject commit 09cbbcd678a3a5e21b099347147e36dd7b321967
+Subproject commit 625ba82b98209eb7e76f335e635e280f2117862f
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")
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/portfile.cmake b/vcpkg-vendor/vcpkg-overlay-ports/libspatialite/portfile.cmake
index 4b1d0aa35..7b0e4207c 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,6 +13,7 @@ vcpkg_extract_source_archive(
fix-linux-configure.patch
gaiaconfig-msvc.patch
fix-mingw.patch
+ fix-utf8-source.patch
ok-load-permanently.patch
)
@@ -134,7 +134,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)
@@ -207,6 +206,7 @@ else()
${RTTOPO_OPTION}
"--disable-examples"
"--disable-minizip"
+ "--disable-proj"
OPTIONS_DEBUG
"LIBS=${PKGCONFIG_LIBS_DEBUG} ${SYSTEM_LIBS}"
OPTIONS_RELEASE
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,
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"
- ]
- }
- }
-}
diff --git a/vcpkg-vendor/vcpkg.json b/vcpkg-vendor/vcpkg.json
index c773b9569..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": "09cbbcd678a3a5e21b099347147e36dd7b321967",
+ "builtin-baseline": "625ba82b98209eb7e76f335e635e280f2117862f",
"dependencies": [
{
"name": "sqlite3",