diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2a495755..e2eb674d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -54,7 +54,7 @@ jobs: needs: [build-sdist] runs-on: ubuntu-latest container: - image: "ghcr.io/osgeo/gdal:ubuntu-small-3.10.3" + image: "ghcr.io/osgeo/gdal:ubuntu-small-3.11.3" steps: - name: Install packages @@ -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,17 @@ jobs: env: BUILDKIT_PROGRESS: plain + - 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@v3.0.1 @@ -193,7 +207,7 @@ jobs: path: | ${{ matrix.vcpkg_cache }} # bump the last digit to avoid using previous build cache - key: ${{ matrix.os }}-${{ matrix.arch }}-vcpkg-gdal3.10.3-cache0 + key: ${{ matrix.os }}-${{ matrix.arch }}-vcpkg-gdal3.11.3-cache0 # MacOS build requires aclocal, which is part of automake, but appears # to be missing in default image diff --git a/ci/manylinux2014_x86_64-vcpkg-gdal.Dockerfile b/ci/manylinux2014_x86_64-vcpkg-gdal.Dockerfile index b05e6898..64d39f8d 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-manylinux2014.json opt/vcpkg/vcpkg.json +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-manylinux2014.json /usr/local/share/vcpkg/vcpkg.json -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 093b1e3a..26ba740a 100644 --- a/ci/vcpkg.json +++ b/ci/vcpkg.json @@ -1,7 +1,14 @@ { "name": "pyogrio", - "version": "0.11.0", + "version": "0.12.0", "dependencies": [ + { + "name": "libspatialite", + "default-features": false, + "features": [ + "rttopo" + ] + }, { "name": "gdal", "default-features": false,