diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3a62dd42..042daeb4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -106,17 +106,20 @@ jobs: container: "ci/manylinux2014_x86_64-vcpkg-gdal.Dockerfile" os: ubuntu-latest arch: x86_64 + vcpkg_logs: "/usr/local/share/vcpkg/buildtrees/**/*.log" # use manylinux_2_28 for any platforms with glibc>=2.28 - wheel_name: "pyogrio-wheel-linux-manylinux_2_28_x86_64" container: "ci/manylinux_2_28_x86_64-vcpkg-gdal.Dockerfile" os: ubuntu-latest arch: x86_64 + vcpkg_logs: "/usr/local/share/vcpkg/buildtrees/**/*.log" - wheel_name: "pyogrio-wheel-linux-manylinux_2_28_aarch64" container: "ci/manylinux_2_28_aarch64-vcpkg-gdal.Dockerfile" os: ubuntu-24.04-arm arch: aarch64 + vcpkg_logs: "/usr/local/share/vcpkg/buildtrees/**/*.log" steps: - name: Checkout @@ -137,7 +140,7 @@ jobs: with: context: . file: ${{ matrix.container }} - tags: manylinux-${{ matrix.arch }}-vcpkg-gdal:latest + tags: manylinux-${{ matrix.arch }}-vcpkg-gdal-latest push: false load: true cache-from: type=gha @@ -145,6 +148,23 @@ jobs: env: BUILDKIT_PROGRESS: plain + - name: Upload artifacts + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + pattern: "!*.dockerbuild" + + - name: Display structure of downloaded files + run: ls -R + + - name: Upload vcpkg build logs + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: pyogrio-vcpkg-logs-${{ matrix.wheel_name }} + path: ~/*.log + retention-days: 10 + - name: Build wheels uses: pypa/cibuildwheel@v2.23.3 @@ -173,7 +193,7 @@ jobs: vcpkg_cache: "/Users/runner/.cache/vcpkg/archives" vcpkg_logs: "/usr/local/share/vcpkg/buildtrees/**/*.log" - - os: "windows-2019" + - os: "windows-latest" triplet: "x64-windows-dynamic-release" arch: AMD64 # windows requires windows-specific paths diff --git a/ci/manylinux2014_x86_64-vcpkg-gdal.Dockerfile b/ci/manylinux2014_x86_64-vcpkg-gdal.Dockerfile index 0df57ceb..d993a59f 100644 --- a/ci/manylinux2014_x86_64-vcpkg-gdal.Dockerfile +++ b/ci/manylinux2014_x86_64-vcpkg-gdal.Dockerfile @@ -6,11 +6,11 @@ RUN yum install -y curl unzip zip tar perl-IPC-Cmd # require python >= 3.7 (python 3.6 is default on base image) for meson RUN ln -s /opt/python/cp38-cp38/bin/python3 /usr/bin/python3 -RUN git clone https://github.com/Microsoft/vcpkg.git /opt/vcpkg && \ - git -C /opt/vcpkg checkout 66c1c9852bb30bd87285e77cc775072046d51fc6 +RUN git clone https://github.com/Microsoft/vcpkg.git /usr/local/share/vcpkg && \ + git -C /usr/local/share/vcpkg checkout 66c1c9852bb30bd87285e77cc775072046d51fc6 -ENV VCPKG_INSTALLATION_ROOT="/opt/vcpkg" -ENV PATH="${PATH}:/opt/vcpkg" +ENV VCPKG_INSTALLATION_ROOT="/usr/local/share/vcpkg" +ENV PATH="${PATH}:/usr/local/share/vcpkg" ENV VCPKG_DEFAULT_TRIPLET="x64-linux-dynamic-release" @@ -21,16 +21,16 @@ RUN bootstrap-vcpkg.sh && \ vcpkg integrate install && \ vcpkg integrate bash -COPY ci/custom-triplets/x64-linux-dynamic-release.cmake opt/vcpkg/custom-triplets/x64-linux-dynamic-release.cmake -COPY ci/vcpkg-custom-ports/ opt/vcpkg/custom-ports/ -COPY ci/vcpkg.json opt/vcpkg/ +COPY ci/custom-triplets/x64-linux-dynamic-release.cmake /usr/local/share/vcpkg/custom-triplets/x64-linux-dynamic-release.cmake +COPY ci/vcpkg-custom-ports/ /usr/local/share/vcpkg/custom-ports/ +COPY ci/vcpkg.json /usr/local/share/vcpkg/ -ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/opt/vcpkg/installed/x64-linux-dynamic-release/lib" -RUN vcpkg install --overlay-triplets=opt/vcpkg/custom-triplets \ - --overlay-ports=opt/vcpkg/custom-ports \ +ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/share/vcpkg/installed/x64-linux-dynamic-release/lib" +RUN vcpkg install --overlay-triplets=/usr/local/share/vcpkg/custom-triplets \ + --overlay-ports=/usr/local/share/vcpkg/custom-ports \ --feature-flags="versions,manifests" \ - --x-manifest-root=opt/vcpkg \ - --x-install-root=opt/vcpkg/installed && \ + --x-manifest-root=/usr/local/share/vcpkg \ + --x-install-root=/usr/local/share/vcpkg/installed && \ vcpkg list # setting git safe directory is required for properly building wheels when diff --git a/ci/manylinux_2_28_aarch64-vcpkg-gdal.Dockerfile b/ci/manylinux_2_28_aarch64-vcpkg-gdal.Dockerfile index 28a65011..616fd0ca 100644 --- a/ci/manylinux_2_28_aarch64-vcpkg-gdal.Dockerfile +++ b/ci/manylinux_2_28_aarch64-vcpkg-gdal.Dockerfile @@ -3,11 +3,11 @@ FROM quay.io/pypa/manylinux_2_28_aarch64:2025-01-11-3165879 # building openssl needs IPC-Cmd (https://github.com/microsoft/vcpkg/issues/24988) RUN dnf -y install curl zip unzip tar ninja-build perl-IPC-Cmd -RUN git clone https://github.com/Microsoft/vcpkg.git /opt/vcpkg && \ - git -C /opt/vcpkg checkout 66c1c9852bb30bd87285e77cc775072046d51fc6 +RUN git clone https://github.com/Microsoft/vcpkg.git /usr/local/share/vcpkg && \ + git -C /usr/local/share/vcpkg checkout 66c1c9852bb30bd87285e77cc775072046d51fc6 -ENV VCPKG_INSTALLATION_ROOT="/opt/vcpkg" -ENV PATH="${PATH}:/opt/vcpkg" +ENV VCPKG_INSTALLATION_ROOT="/usr/local/share/vcpkg" +ENV PATH="${PATH}:/usr/local/share/vcpkg" ENV VCPKG_DEFAULT_TRIPLET="arm64-linux-dynamic-release" # pkgconf fails to build with default debug mode of arm64-linux host @@ -23,14 +23,14 @@ RUN bootstrap-vcpkg.sh && \ vcpkg integrate install && \ vcpkg integrate bash -COPY ci/custom-triplets/arm64-linux-dynamic-release.cmake opt/vcpkg/custom-triplets/arm64-linux-dynamic-release.cmake -COPY ci/vcpkg.json opt/vcpkg/ +COPY ci/custom-triplets/arm64-linux-dynamic-release.cmake /usr/local/share/vcpkg/custom-triplets/arm64-linux-dynamic-release.cmake +COPY ci/vcpkg.json /usr/local/share/vcpkg/ -ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/opt/vcpkg/installed/arm64-linux-dynamic-release/lib" -RUN vcpkg install --overlay-triplets=opt/vcpkg/custom-triplets \ +ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/share/vcpkg/installed/arm64-linux-dynamic-release/lib" +RUN vcpkg install --overlay-triplets=/usr/local/share/vcpkg/custom-triplets \ --feature-flags="versions,manifests" \ - --x-manifest-root=opt/vcpkg \ - --x-install-root=opt/vcpkg/installed && \ + --x-manifest-root=/usr/local/share/vcpkg/ \ + --x-install-root=/usr/local/share/vcpkg/installed && \ vcpkg list # setting git safe directory is required for properly building wheels when diff --git a/ci/manylinux_2_28_x86_64-vcpkg-gdal.Dockerfile b/ci/manylinux_2_28_x86_64-vcpkg-gdal.Dockerfile index 9966903c..c37e2188 100644 --- a/ci/manylinux_2_28_x86_64-vcpkg-gdal.Dockerfile +++ b/ci/manylinux_2_28_x86_64-vcpkg-gdal.Dockerfile @@ -3,11 +3,11 @@ FROM quay.io/pypa/manylinux_2_28_x86_64:2025-01-11-3165879 # building openssl needs IPC-Cmd (https://github.com/microsoft/vcpkg/issues/24988) RUN dnf -y install curl zip unzip tar ninja-build perl-IPC-Cmd -RUN git clone https://github.com/Microsoft/vcpkg.git /opt/vcpkg && \ - git -C /opt/vcpkg checkout 66c1c9852bb30bd87285e77cc775072046d51fc6 +RUN git clone https://github.com/Microsoft/vcpkg.git /usr/local/share/vcpkg && \ + git -C /usr/local/share/vcpkg checkout 66c1c9852bb30bd87285e77cc775072046d51fc6 -ENV VCPKG_INSTALLATION_ROOT="/opt/vcpkg" -ENV PATH="${PATH}:/opt/vcpkg" +ENV VCPKG_INSTALLATION_ROOT="/usr/local/share/vcpkg" +ENV PATH="${PATH}:/usr/local/share/vcpkg" ENV VCPKG_DEFAULT_TRIPLET="x64-linux-dynamic-release" @@ -18,14 +18,14 @@ RUN bootstrap-vcpkg.sh && \ vcpkg integrate install && \ vcpkg integrate bash -COPY ci/custom-triplets/x64-linux-dynamic-release.cmake opt/vcpkg/custom-triplets/x64-linux-dynamic-release.cmake -COPY ci/vcpkg.json opt/vcpkg/ +COPY ci/custom-triplets/x64-linux-dynamic-release.cmake /usr/local/share/vcpkg/custom-triplets/x64-linux-dynamic-release.cmake +COPY ci/vcpkg.json /usr/local/share/vcpkg/ -ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/opt/vcpkg/installed/x64-linux-dynamic-release/lib" -RUN vcpkg install --overlay-triplets=opt/vcpkg/custom-triplets \ +ENV LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/share/vcpkg/installed/x64-linux-dynamic-release/lib" +RUN vcpkg install --overlay-triplets=/usr/local/share/vcpkg/custom-triplets \ --feature-flags="versions,manifests" \ - --x-manifest-root=opt/vcpkg \ - --x-install-root=opt/vcpkg/installed && \ + --x-manifest-root=/usr/local/share/vcpkg \ + --x-install-root=/usr/local/share/vcpkg/installed && \ vcpkg list # setting git safe directory is required for properly building wheels when diff --git a/ci/vcpkg.json b/ci/vcpkg.json index 34c6f997..4b0a9702 100644 --- a/ci/vcpkg.json +++ b/ci/vcpkg.json @@ -2,10 +2,24 @@ "name": "pyogrio", "version": "0.11.0", "dependencies": [ + { + "name": "libspatialite", + "default-features": false, + "features": [ + "rttopo" + ] + }, { "name": "gdal", "default-features": false, - "features": ["recommended-features", "curl", "geos", "iconv", "openssl"] + "features": [ + "recommended-features", + "curl", + "geos", + "iconv", + "openssl", + "libkml" + ] } ], "builtin-baseline": "66c1c9852bb30bd87285e77cc775072046d51fc6"