Skip to content

Commit d92f03a

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 84b16fe + 7b610c0 commit d92f03a

30 files changed

+737
-153
lines changed

NEWS.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,97 @@
1+
# GDAL/OGR 3.11.3 Release Notes
2+
3+
GDAL 3.11.3 is a bugfix release.
4+
5+
PG driver:
6+
* restore string truncation that was broken in 3.11.1
7+
8+
# GDAL/OGR 3.11.2 Release Notes
9+
10+
GDAL 3.11.2 is a bugfix release.
11+
12+
## Build
13+
14+
* sqlite_rtree_bulk_load.c: add missing stdlib.h include
15+
16+
## GDAL 3.11.2
17+
18+
### Port
19+
20+
* Unix/Win32/Sparse/Archive VSI: make sure that Close() can be called multiple
21+
times, and is called by destructor
22+
* /vsizip/: fix memory leak when opening a SOZip-enabled file (pyogrio#545)
23+
24+
### Core
25+
26+
* GDALAlgorithmArg::Serialize(): fix serialization of list arguments with
27+
SetPackedValuesAllowed(false)
28+
* GetHistogram(), ComputeRasterMinMax(), ComputeStatistics(): fix wrong use of
29+
GetLockedBlockRef() that could cause crashes with the MEM driver
30+
* Statistics computation: avoid warnings with large Int64/UInt64 nodata value
31+
not exactly representable as double (#12628)
32+
33+
### Raster utilities
34+
35+
* gdalwarp: fix reprojecting to COG (3.11.0 regression)
36+
* gdallocationinfo: handle properly nodata values (3.10.0 regression fix)
37+
38+
### Raster drivers
39+
40+
AAIGrid/GRASSASCII/ISG drivers:
41+
* avoid excessive memory allocation on truncated/corrupted/hostile file
42+
(#12648)
43+
44+
BMP driver:
45+
* Create(): avoid nullptr dereference on too wide image
46+
47+
GSAG driver:
48+
* re-added (#12695)
49+
50+
GSBG/GS7BG drivers:
51+
* Create/CreateCopy(): stricter validation of raster dimension, to avoid int
52+
overflow (GS7BG), or floating-point division by zero (both)
53+
54+
LIBERTIFF driver:
55+
* fix reading WEBP-compressed RGBA images where at least one tile/
56+
strip has the alpha component omitted due to being fully opaque
57+
58+
netCDF driver:
59+
* properly recognize axis of 'rhos' variable for PACE OCI products
60+
* improve detection of X,Y axis in 3D variables thanks to the presence of a
61+
geolocation array
62+
63+
PNG driver:
64+
* fix caching of other bands that only worked if reading band 1 (#12713)
65+
66+
VRT driver:
67+
* expose all overviews of a single-source dataset, whatever their size
68+
(#12690)
69+
* VRTPansharpen: make virtual overview generation more tolerant to different
70+
number of overviews in source bands
71+
72+
## OGR 3.11.2
73+
74+
### Core
75+
76+
* OGRParseDate(): do not round second=59.999999 to 60.0 but 59.999
77+
* OGRParseDate(): avoid potential out-of-bounds read in OGRPARSEDATE_OPTION_LAX
78+
mode (#12720)
79+
80+
### OGRSpatialReference
81+
82+
* Coordinate transformation: fix when one of the CRS has an EPSG code that is
83+
actually a ESRI one
84+
85+
### Vector utilities
86+
87+
* ogrinfo/ogr2ogr/gdal vector sql/etc.: raise the max size of a @filename
88+
argument from 1 MB to 10 MB (#12672)
89+
90+
### Vector drivers
91+
92+
S57 driver:
93+
* fix nullptr dereference on invalid dataset when GDAL_DATA not set
94+
195
# GDAL/OGR 3.11.1 Release Notes
296

397
GDAL 3.11.1 is a bugfix release.
42.8 KB
Binary file not shown.

autotest/ogr/data/dxf/README.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Files bin_dxf_r12.dxf and bin_dxf_r2000.dxf come from https://github.com/mozman/ezdxf/tree/master/integration_tests/data (project is MIT licensed)
3.67 KB
Binary file not shown.
11.3 KB
Binary file not shown.

autotest/ogr/ogr_dxf.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4323,3 +4323,71 @@ def test_ogr_dxf_insert_col_count_zero():
43234323
with ogr.Open("data/dxf/insert_only_col_count_zero.dxf") as ds:
43244324
lyr = ds.GetLayerByName("blocks")
43254325
assert lyr.GetFeatureCount() == 1
4326+
4327+
4328+
###############################################################################
4329+
4330+
4331+
@gdaltest.enable_exceptions()
4332+
def test_ogr_dxf_read_binary_dxf_r12():
4333+
4334+
with ogr.Open("data/dxf/bin_dxf_r12.dxf") as ds:
4335+
lyr = ds.GetLayer(0)
4336+
assert lyr.GetFeatureCount() == 3
4337+
4338+
4339+
###############################################################################
4340+
4341+
4342+
@gdaltest.enable_exceptions()
4343+
def test_ogr_dxf_read_binary_dxf_r2000():
4344+
4345+
with ogr.Open("data/dxf/bin_dxf_r2000.dxf") as ds:
4346+
lyr = ds.GetLayer(0)
4347+
assert lyr.GetFeatureCount() == 1
4348+
4349+
4350+
###############################################################################
4351+
4352+
4353+
@gdaltest.enable_exceptions()
4354+
def test_ogr_dxf_convert_from_binary_dxf_r12(tmp_vsimem):
4355+
4356+
gdal.VectorTranslate(tmp_vsimem / "out.dxf", "data/dxf/bin_dxf_r12.dxf")
4357+
with ogr.Open(tmp_vsimem / "out.dxf") as ds:
4358+
lyr = ds.GetLayer(0)
4359+
assert lyr.GetFeatureCount() == 3
4360+
4361+
4362+
###############################################################################
4363+
4364+
4365+
@gdaltest.enable_exceptions()
4366+
def test_ogr_dxf_convert_from_binary_dxf_r2000(tmp_vsimem):
4367+
4368+
gdal.VectorTranslate(tmp_vsimem / "out.dxf", "data/dxf/bin_dxf_r2000.dxf")
4369+
with ogr.Open(tmp_vsimem / "out.dxf") as ds:
4370+
lyr = ds.GetLayer(0)
4371+
assert lyr.GetFeatureCount() == 1
4372+
4373+
4374+
###############################################################################
4375+
4376+
4377+
@gdaltest.enable_exceptions()
4378+
def test_ogr_dxf_read_wipeout_binary():
4379+
4380+
ds = ogr.Open("data/dxf/BINARY_wipeout.dxf")
4381+
lyr = ds.GetLayer(0)
4382+
4383+
feat = lyr.GetNextFeature()
4384+
ogrtest.check_feature_geometry(
4385+
feat,
4386+
"POLYGON ((448381.028869725 6913933.17804321,448381.232017696 6913933.39891582,448380.807997101 6913933.38119118,448381.028869725 6913933.17804321,448381.011145071 6913933.6020638,448381.232017696 6913933.39891582,448381.028869725 6913933.17804321))",
4387+
)
4388+
4389+
feat = lyr.GetNextFeature()
4390+
ogrtest.check_feature_geometry(
4391+
feat,
4392+
"POLYGON ((448380.538954307 6913930.73282502,448380.538954307 6913930.73282502,448380.538954307 6913931.73282502,448381.538954307 6913931.73282502,448381.538954307 6913930.73282502,448380.538954307 6913930.73282502))",
4393+
)

autotest/ogr/ogr_pg.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6352,3 +6352,27 @@ def test_ogr_pg_gdal_vector_pipeline(pg_ds):
63526352
},
63536353
) as alg:
63546354
assert alg.Output().GetLayerCount() == 1
6355+
6356+
6357+
###############################################################################
6358+
# Test field content truncation related to SetWidth()
6359+
6360+
6361+
@gdaltest.enable_exceptions()
6362+
@only_without_postgis
6363+
def test_ogr_pg_field_truncation(pg_ds):
6364+
6365+
lyr = pg_ds.CreateLayer("test")
6366+
fld_defn = ogr.FieldDefn("field", ogr.OFTString)
6367+
fld_defn.SetWidth(5)
6368+
lyr.CreateField(fld_defn)
6369+
6370+
ds = reconnect(pg_ds, update=1)
6371+
lyr = ds.GetLayerByName("test")
6372+
6373+
f = ogr.Feature(lyr.GetLayerDefn())
6374+
f["field"] = b"abcd\xc3\xa9f".decode("UTF-8")
6375+
lyr.CreateFeature(f)
6376+
lyr.ResetReading()
6377+
f = lyr.GetNextFeature()
6378+
assert f["field"] == b"abcd\xc3\xa9".decode("UTF-8")

doc/source/about.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ What is GDAL?
66

77
.. descriptionstartshere
88
9-
GDAL is a translator library for raster and vector geospatial data formats that is released under an MIT style Open Source :ref:`license` by the `Open Source Geospatial Foundation`_. As a library, it presents a single raster abstract data model and single vector abstract data model to the calling application for all supported formats. It also comes with a variety of useful command line utilities for data translation and processing. The `NEWS`_ page describes the June 2025 GDAL/OGR 3.11.1 release.
9+
GDAL is a translator library for raster and vector geospatial data formats that is released under an MIT style Open Source :ref:`license` by the `Open Source Geospatial Foundation`_. As a library, it presents a single raster abstract data model and single vector abstract data model to the calling application for all supported formats. It also comes with a variety of useful command line utilities for data translation and processing. The `NEWS`_ page describes the July 2025 GDAL/OGR 3.11.3 release.
1010

1111
.. only:: html
1212

@@ -17,7 +17,7 @@ GDAL is a translator library for raster and vector geospatial data formats that
1717
:target: `Open Source Geospatial Foundation`_
1818

1919
.. _`Open Source Geospatial Foundation`: http://www.osgeo.org/
20-
.. _`NEWS`: https://github.com/OSGeo/gdal/blob/v3.11.1/NEWS.md
20+
.. _`NEWS`: https://github.com/OSGeo/gdal/blob/v3.11.3/NEWS.md
2121

2222
See :ref:`software_using_gdal`
2323

doc/source/download.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ Source Code
1818
Current Release
1919
...............
2020

21-
* **2025-06-26** `gdal-3.11.1.tar.gz`_ `3.11.1 Release Notes`_ (`3.11.1 md5`_)
21+
* **2025-07-12** `gdal-3.11.3.tar.gz`_ `3.11.3 Release Notes`_ (`3.11.3 md5`_)
2222

23-
.. _`3.11.1 Release Notes`: https://github.com/OSGeo/gdal/blob/v3.11.1/NEWS.md
24-
.. _`gdal-3.11.1.tar.gz`: https://github.com/OSGeo/gdal/releases/download/v3.11.1/gdal-3.11.1.tar.gz
25-
.. _`3.11.1 md5`: https://github.com/OSGeo/gdal/releases/download/v3.11.1/gdal-3.11.1.tar.gz.md5
23+
.. _`3.11.3 Release Notes`: https://github.com/OSGeo/gdal/blob/v3.11.3/NEWS.md
24+
.. _`gdal-3.11.3.tar.gz`: https://github.com/OSGeo/gdal/releases/download/v3.11.3/gdal-3.11.3.tar.gz
25+
.. _`3.11.3 md5`: https://github.com/OSGeo/gdal/releases/download/v3.11.3/gdal-3.11.3.tar.gz.md5
2626

2727
Past Releases
2828
.............

doc/source/download_past.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,18 @@
55
Past Releases
66
=============
77

8+
* **2025-07-11** `gdal-3.11.2.tar.gz`_ `3.11.2 Release Notes`_ (`3.11.2 md5`_)
9+
10+
.. _`3.11.2 Release Notes`: https://github.com/OSGeo/gdal/blob/v3.11.2/NEWS.md
11+
.. _`gdal-3.11.2.tar.gz`: https://github.com/OSGeo/gdal/releases/download/v3.11.2/gdal-3.11.2.tar.gz
12+
.. _`3.11.2 md5`: https://github.com/OSGeo/gdal/releases/download/v3.11.2/gdal-3.11.2.tar.gz.md5
13+
14+
* **2025-06-26** `gdal-3.11.1.tar.gz`_ `3.11.1 Release Notes`_ (`3.11.1 md5`_)
15+
16+
.. _`3.11.1 Release Notes`: https://github.com/OSGeo/gdal/blob/v3.11.1/NEWS.md
17+
.. _`gdal-3.11.1.tar.gz`: https://github.com/OSGeo/gdal/releases/download/v3.11.1/gdal-3.11.1.tar.gz
18+
.. _`3.11.1 md5`: https://github.com/OSGeo/gdal/releases/download/v3.11.1/gdal-3.11.1.tar.gz.md5
19+
820
* **2025-05-06** `gdal-3.11.0.tar.gz`_ `3.11.0 "Eganville" Release Notes`_ (`3.11.0 md5`_)
921

1022
.. _`3.11.0 "Eganville" Release Notes`: https://github.com/OSGeo/gdal/blob/v3.11.0/NEWS.md

0 commit comments

Comments
 (0)