Skip to content

Commit 0df8251

Browse files
committed
Merge remote-tracking branch 'upstream/master' into issue-11533
2 parents 6694f0f + ba0dc2c commit 0df8251

File tree

515 files changed

+27537
-4821
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

515 files changed

+27537
-4821
lines changed

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@ blank_issues_enabled: false
22

33
contact_links:
44

5+
- name: '"pip install GDAL" does not work'
6+
url: https://gdal.org/en/stable/download.html#conda
7+
about: >
8+
"pip install GDAL" only works if you have the development headers and
9+
library of the native libgdal matching the version of the GDAL python
10+
bindings you want to install. Which may not be easily found, in particular
11+
on Windows. We do not consider the lack of pip binary wheels as a defect.
12+
Our best suggestion is to recommend using GDAL Conda builds instead as
13+
documented at https://gdal.org/en/stable/download.html#conda
14+
515
- name: Question
616
url: https://gis.stackexchange.com/
717
about: >
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
FROM ubuntu:24.04@sha256:6e75a10070b0fcb0bead763c5118a369bc7cc30dfc1b0749c491bbb21f15c3c7
2+
3+
ENV DEBIAN_FRONTEND=noninteractive
4+
ENV TARGET_ARCH=armhf
5+
ENV GCC_TRIPLE=arm-linux-gnueabihf
6+
ENV APT_ARCH_SUFFIX=:armhf
7+
8+
RUN rm -f /etc/apt/sources.list /etc/apt/sources.list.d/ubuntu.sources \
9+
&& echo "deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ noble main restricted universe" >> /etc/apt/sources.list \
10+
&& echo "deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ noble-updates main restricted universe" >> /etc/apt/sources.list \
11+
&& echo "deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ noble-backports main restricted universe" >> /etc/apt/sources.list \
12+
&& echo "deb [arch=amd64] http://security.ubuntu.com/ubuntu noble-security main restricted universe" >> /etc/apt/sources.list \
13+
&& echo "deb [arch=${TARGET_ARCH}] http://ports.ubuntu.com/ubuntu-ports/ noble main restricted universe" >> /etc/apt/sources.list \
14+
&& echo "deb [arch=${TARGET_ARCH}] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main restricted universe" >> /etc/apt/sources.list \
15+
&& echo "deb [arch=${TARGET_ARCH}] http://ports.ubuntu.com/ubuntu-ports/ noble-security main restricted universe" >> /etc/apt/sources.list \
16+
&& dpkg --add-architecture ${TARGET_ARCH} \
17+
&& apt-get update -y \
18+
&& DEBIAN_FRONTEND=noninteractive apt-get install -y g++-13-${GCC_TRIPLE} \
19+
&& ln -s ${GCC_TRIPLE}-gcc-13 /usr/bin/${GCC_TRIPLE}-gcc \
20+
&& ln -s ${GCC_TRIPLE}-g++-13 /usr/bin/${GCC_TRIPLE}-g++
21+
22+
ENV CC=${GCC_TRIPLE}-gcc-13
23+
ENV CXX=${GCC_TRIPLE}-g++-13
24+
25+
RUN apt-get update && \
26+
apt-get install -y --allow-unauthenticated \
27+
bash \
28+
ccache \
29+
cmake \
30+
curl \
31+
ninja-build \
32+
libavif-dev${APT_ARCH_SUFFIX} \
33+
libblosc-dev${APT_ARCH_SUFFIX} \
34+
libboost-dev${APT_ARCH_SUFFIX} \
35+
libcairo2-dev${APT_ARCH_SUFFIX} \
36+
libcfitsio-dev${APT_ARCH_SUFFIX} \
37+
libcrypto++-dev${APT_ARCH_SUFFIX} \
38+
libcurl4-gnutls-dev${APT_ARCH_SUFFIX} \
39+
libexpat-dev${APT_ARCH_SUFFIX} \
40+
libfcgi-dev${APT_ARCH_SUFFIX} \
41+
libfyba-dev${APT_ARCH_SUFFIX} \
42+
libfreexl-dev${APT_ARCH_SUFFIX} \
43+
libgeos-dev${APT_ARCH_SUFFIX} \
44+
libgeotiff-dev${APT_ARCH_SUFFIX} \
45+
libgif-dev${APT_ARCH_SUFFIX} \
46+
libhdf4-alt-dev${APT_ARCH_SUFFIX} \
47+
libhdf5-serial-dev${APT_ARCH_SUFFIX} \
48+
libheif-dev${APT_ARCH_SUFFIX} \
49+
libjpeg-dev${APT_ARCH_SUFFIX} \
50+
libjxl-dev${APT_ARCH_SUFFIX} \
51+
libkml-dev${APT_ARCH_SUFFIX} \
52+
liblz4-dev${APT_ARCH_SUFFIX} \
53+
liblzma-dev${APT_ARCH_SUFFIX} \
54+
libmysqlclient-dev${APT_ARCH_SUFFIX} \
55+
libnetcdf-dev${APT_ARCH_SUFFIX} \
56+
libopenexr-dev${APT_ARCH_SUFFIX} \
57+
libopenjp2-7-dev${APT_ARCH_SUFFIX} \
58+
libpcre3-dev${APT_ARCH_SUFFIX} \
59+
libpng-dev${APT_ARCH_SUFFIX} \
60+
libpoppler-dev${APT_ARCH_SUFFIX} \
61+
libpoppler-private-dev${APT_ARCH_SUFFIX} \
62+
libpq-dev${APT_ARCH_SUFFIX} \
63+
libproj-dev${APT_ARCH_SUFFIX} \
64+
librasterlite2-dev${APT_ARCH_SUFFIX} \
65+
libspatialite-dev${APT_ARCH_SUFFIX} \
66+
libssl-dev${APT_ARCH_SUFFIX} \
67+
libwebp-dev${APT_ARCH_SUFFIX} \
68+
libxerces-c-dev${APT_ARCH_SUFFIX} \
69+
libxml2-dev${APT_ARCH_SUFFIX} \
70+
libxslt-dev${APT_ARCH_SUFFIX} \
71+
libzstd-dev${APT_ARCH_SUFFIX} \
72+
python3-dev${APT_ARCH_SUFFIX} \
73+
python3-numpy${APT_ARCH_SUFFIX} \
74+
python3-setuptools${APT_ARCH_SUFFIX} \
75+
python3-lxml${APT_ARCH_SUFFIX} \
76+
python3-pip \
77+
swig \
78+
unixodbc-dev${APT_ARCH_SUFFIX} \
79+
wget \
80+
zip
81+
82+
COPY requirements.txt /tmp/
83+
RUN PYTHON_CMD=python3 && $PYTHON_CMD -m pip install -U --break-system-packages -r /tmp/requirements.txt

.github/workflows/armhf/build.sh

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/bin/bash
2+
3+
set -eu
4+
5+
CMAKE_ARGS=(
6+
"-GNinja" \
7+
"-DUSE_CCACHE=ON" \
8+
"-DCMAKE_BUILD_TYPE=RelWithDebInfo" \
9+
"-DCMAKE_INSTALL_PREFIX=/usr" \
10+
"-DGDAL_USE_TIFF_INTERNAL=ON" \
11+
"-DGDAL_USE_GEOTIFF_INTERNAL=ON" \
12+
"-DBUILD_CSHARP_BINDINGS=OFF" \
13+
"-DBUILD_JAVA_BINDINGS=OFF"
14+
)
15+
16+
echo "set(CMAKE_SYSTEM_NAME Linux)" > toolchain.cmake
17+
echo "set(CMAKE_SYSTEM_PROCESSOR arm)" >> toolchain.cmake
18+
echo "set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc-13)" >> toolchain.cmake
19+
echo "set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++-13)" >> toolchain.cmake
20+
echo "set(CMAKE_C_FLAGS \"-mfpu=neon -Werror\")" >> toolchain.cmake
21+
echo "set(CMAKE_CXX_FLAGS \"-mfpu=neon -Werror -Wno-psabi\")" >> toolchain.cmake
22+
23+
# Not sure why it fails first time...
24+
cmake ${GDAL_SOURCE_DIR:=..} --toolchain toolchain.cmake \
25+
"${CMAKE_ARGS[@]}" || /bin/true
26+
27+
cmake ${GDAL_SOURCE_DIR:=..} --toolchain toolchain.cmake \
28+
"${CMAKE_ARGS[@]}"
29+
30+
echo "Check that GDAL_ENABLE_ARM_NEON_OPTIMIZATIONS:BOOL=ON"
31+
(grep "GDAL_ENABLE_ARM_NEON_OPTIMIZATIONS:BOOL=ON" CMakeCache.txt > /dev/null && echo "yes") || (echo "Missing" && /bin/false)
32+
33+
ninja
34+

.github/workflows/armhf/test.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
3+
set -eu
4+
5+
source ${GDAL_SOURCE_DIR:=..}/scripts/setdevenv.sh
6+
7+
autotest/cpp/gdal_unit_test --gtest_filter=-test_cpl.CPLSpawn
8+
9+
pytest autotest/alg -k "not test_warp_52 and not test_warp_rpc_source_has_geotransform"
10+
# Excluded tests starting at test_tiff_read_multi_threaded are due to lack of virtual memory
11+
pytest autotest/gcore -k "not transformer and not virtualmem and not test_vrt_protocol_netcdf_component_name and not test_vsicrypt_3 and not test_pixfun_sqrt and not test_rasterio_rms_halfsize_downsampling_float and not test_tiff_read_multi_threaded and not test_tiff_write_35 and not test_tiff_write_137 and not test_tiff_write_compression_create_and_createcopy"
12+
pytest autotest/gdrivers/zarr*.py
13+

.github/workflows/doc_checks.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,19 @@ jobs:
8383
python3 -c 'from osgeo import gdal'
8484
ctest -V -R spelling --output-on-failure
8585
working-directory: build
86+
87+
# ReadTheDocs pull requests do not build PDF, but we can break it though,
88+
# so build it here
89+
- name: PDF build
90+
shell: bash -l {0}
91+
run: |
92+
apt install -y dvipng latexmk texlive-latex-base \
93+
texlive-latex-extra git latex-cjk-all texlive-lang-all tex-gyre
94+
cmake --build . --target latexpdf
95+
working-directory: build
96+
97+
- name: Upload PDF
98+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
99+
with:
100+
name: gdal.pdf
101+
path: build/doc/build/latex/gdal.pdf

.github/workflows/linux_build.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,13 @@ jobs:
147147
test_script: test.sh
148148
os: ubuntu-22.04
149149

150+
- name: Ubuntu 24.04, armhf (32 bit)
151+
id: armhf
152+
container: armhf
153+
build_script: build.sh
154+
test_script: test.sh
155+
os: ubuntu-22.04
156+
150157
name: ${{ matrix.name }}
151158

152159
runs-on: ${{ matrix.os }}

.github/workflows/ubuntu_24.04/build.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,27 @@ cmake ${GDAL_SOURCE_DIR:=..} \
1919
-DGDAL_USE_GEOTIFF_INTERNAL:BOOL=ON \
2020
-DGDAL_USE_TIFF_INTERNAL:BOOL=ON
2121

22+
echo "Test turning GDAL drivers off"
23+
cp CMakeCache.txt CMakeCache.txt.bak
24+
cmake .. -DGDAL_BUILD_OPTIONAL_DRIVERS=OFF > /dev/null
25+
grep GDAL_ENABLE_DRIVER_BMP:BOOL=OFF CMakeCache.txt
26+
grep GDAL_ENABLE_DRIVER_NITF:BOOL=OFF CMakeCache.txt
27+
cmake .. -DGDAL_ENABLE_DRIVER_BMP=ON > /dev/null
28+
grep GDAL_ENABLE_DRIVER_BMP:BOOL=ON CMakeCache.txt
29+
grep GDAL_ENABLE_DRIVER_NITF:BOOL=OFF CMakeCache.txt
30+
mv CMakeCache.txt.bak CMakeCache.txt
31+
32+
echo "Test turning OGR drivers off"
33+
cp CMakeCache.txt CMakeCache.txt.bak
34+
cmake .. -DOGR_BUILD_OPTIONAL_DRIVERS=OFF > /dev/null
35+
grep OGR_ENABLE_DRIVER_SQLITE:BOOL=OFF CMakeCache.txt
36+
grep OGR_ENABLE_DRIVER_GML:BOOL=OFF CMakeCache.txt
37+
cmake .. -DOGR_ENABLE_DRIVER_SQLITE=ON > /dev/null
38+
grep OGR_ENABLE_DRIVER_SQLITE:BOOL=ON CMakeCache.txt
39+
grep OGR_ENABLE_DRIVER_GML:BOOL=OFF CMakeCache.txt
40+
mv CMakeCache.txt.bak CMakeCache.txt
41+
42+
echo "Build original configuration"
43+
cmake .. >/dev/null
2244
make -j$(nproc)
2345
make -j$(nproc) install DESTDIR=/tmp/install-gdal

.github/workflows/ubuntu_24.04/expected_gdalinfo_formats.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ Supported Formats: (ro:read-only, rw:read-write, +:write from scratch, u:update,
5858
WMS -raster- (rwvs): OGC Web Map Service
5959
MSGN -raster- (rov): EUMETSAT Archive native (.nat) (*.nat)
6060
RST -raster- (rw+v): Idrisi Raster A.1 (*.rst)
61+
GSBG -raster- (rw+v): Golden Software Binary Grid (.grd) (*.grd)
6162
GS7BG -raster- (rw+v): Golden Software 7 Binary Grid (.grd) (*.grd)
6263
COSAR -raster- (rov): COSAR Annotated Binary Matrix (TerraSAR-X)
6364
TSX -raster- (rov): TerraSAR-X Product

.github/workflows/windows_conda_expected_gdalinfo_formats.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ Supported Formats: (ro:read-only, rw:read-write, +:write from scratch, u:update,
5959
MSGN -raster- (rov): EUMETSAT Archive native (.nat) (*.nat)
6060
MSG -raster- (ro): MSG HRIT Data
6161
RST -raster- (rw+v): Idrisi Raster A.1 (*.rst)
62+
GSBG -raster- (rw+v): Golden Software Binary Grid (.grd) (*.grd)
6263
GS7BG -raster- (rw+v): Golden Software 7 Binary Grid (.grd) (*.grd)
6364
COSAR -raster- (rov): COSAR Annotated Binary Matrix (TerraSAR-X)
6465
TSX -raster- (rov): TerraSAR-X Product

HOWTO-RELEASE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,3 +368,4 @@ or your message manually approved, with an administrator of the list.
368368
d) Go to https://readthedocs.org/projects/gdal/, and in the "Compile a version" drop-down list,
369369
select the newt "release-X.Y" label and click on the "Compile a version" button
370370
e) Go to https://github.com/OSGeo/gdal/settings/variables/actions/STABLE_BRANCH and update it
371+
f) In the release/X.Y GDAL github branch, update the branch name of "source_file_url_template" in doc/source/conf.py

0 commit comments

Comments
 (0)