From 04176b7abddec7716d2f0f4bc1027077add19246 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 7 Oct 2024 17:50:53 +0200 Subject: [PATCH] Prepare for GDAL 3.9.3 --- CITATION.cff | 4 +- NEWS.md | 165 ++++++++++++++++++ VERSION | 2 +- gcore/gdal_version.h.in | 6 +- scripts/fix_typos.sh | 1 + swig/python/README.rst | 2 +- .../python/gdal-utils/osgeo_utils/__init__.py | 2 +- 7 files changed, 174 insertions(+), 8 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index e89453ce2119..f055069cfd12 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -2,8 +2,8 @@ cff-version: 1.2.0 message: Please cite this software using these metadata or in the CITATION file. type: software title: GDAL -version: 3.9.2 -date-released: 2024-08-13 +version: 3.9.3 +date-released: 2024-10-07 doi: 10.5281/zenodo.5884351 abstract: GDAL is a translator library for raster and vector geospatial data formats that is released under an MIT style Open Source License by the Open diff --git a/NEWS.md b/NEWS.md index de02c4ee5ef3..31e412e97397 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,168 @@ +# GDAL/OGR 3.9.3 Release Notes + +GDAL 3.9.3 is a bugfix release. + +## Build + +* Java bindings: remove unneeded dependency on Java AWT +* Use the right header for std::endian cpl_conv.cpp (C++20 compilation) +* Fix build failure with upstream netcdf caused by _FillValue macro renaming + +## GDAL 3.9.3 + +### Port + +* /vsitar/: fix support of /vsitar/ of /vsitar/ (#10821) +* CPLGetValueType(): do not recognize '01' as integer, but as string + (Toblerity/Fiona#1454) + +### Algorithms + +* Geoloc array: fix bad usage of path API that resulted in temporary files + not being created where expected (#10671) +* GDALCreateGeoLocTransformer(): fix inverted logic to decide for a debug + message +* GDALCreateGeoLocTransformer(): increase threshold to use GTiff geoloc + working datasets to 24 megapixels (#10809) +* GDALGeoLocDatasetAccessors: use smaller, but more, cached tiles (#10809) +* Warper: fix too lax heuristics about antimeridian warping for Avg/Sum/Q1/ + Q3/Mode algorithms (#10892) + +### Core + +* Fix GDALDataTypeUnion() to check that the provided value fits into eDT +* GDALRegenerateOverviewsMultiBand(): make sure than when computing large + reduction factors (like > 1024) on huge rasters does not lead to excessive + memory requirements +* Overview: fix nearest resampling to be exact with all data types (#10758). + Also make sure that for other resampling methods, the working data type + is large enough (e.g using Float64 for Int32/UInt32/Int64/UInt64). + +### Raster utilities + +* gdal_translate/GDALOverviewDataset: fix half-pixel shift issue when + rescaling RPC (#10600) +* gdaldem color-relief: fix issues with entry at 0 and -exact_color_entry + mode, and other issues +* gdalwarp: fix crash/infinite loop when using -tr one a 1x1 blank raster + (3.8.0 regression) +* gdalwarp: be more robust to numerical instability when selecting overviews + (#10873) +* gdal_contour: Fix regression when fixed level == raster max (#10854) + +### Raster drivers + +DIMAP driver: + * emit verbose error message if not able to open image file (#10928) + +GeoRaster driver: + * Preserve quote in the connection string to the GeoRaster driver so that + Oracle Database wallet can be supported (#10869) + +GRIB: + * adjust longitude range from \[180, xxx\] to \[-180, xxx\] (#10655) + +GTiff driver: + * do not query TIFFTAG_TRANSFERFUNCTION if m_nBitsPerSample > 24 (#10875) + * fix to not delete DIMAP XML files when cleaning overviews on a DIMAP2 + GeoTIFF file with external overviews + +JPEG driver: + * Fix inverted handling of GDAL_ERROR_ON_LIBJPEG_WARNING + +JP2KAK driver: + * fix data corruption when creating multi-band tiled with the stripe + compressor code path (#10598) + +KEA driver: + * fix overview writing + +MrSID driver: + * prevent infinite recursion in IRasterIO() in some cases (#10697) + +netCDF driver: + * honour BAND_NAMES creation option in CreateCopy() (#10646) + +NITF driver: + * properly take into account comma-separated list of values for JPEG2000 + QUALITY when JPEG2000_DRIVER=JP2OpenJPEG (#10927) + * fix parsing of CSCSDB DES + +OpenFileGDB raster: + * do not generate debug 'tmp.jpg' file when reading JPEG tiles + +PDF driver: + * avoid 'Non closed ring detected' warning when reading neatlines from OGC + Best Practice encoding + +TileDB driver: + * make Identify() method return false if passed object is not a directory + +VRT driver: + * VRTSourcedRasterBand::IRasterIO(): initialize output buffer to nodata + value if VRT band type is Int64 or UInt64 + * VRTComplexSource::RasterIO(): use double working data type for more + source or VRT data types + * VRTComplexSource::RasterIO(): speed-up pixel copy in more cases (#10809) + * VRTProcessedDataset: fix issue when computing RasterIO window on + auxiliary datasets on right-most/bottom-most tiles + +## OGR 3.9.3 + +### Core + +* Make OGRSFDriver::TestCapability(ODrCCreateDataSource) work with + defered-loaded drivers (#10783) +* MEM layer: fix UpdateFeature() that didn't mark the layer as updated, + which caused GeoJSON files to not be updated (qgis/QGIS#57736) + +### Vector drivers + +FlatGeobuf driver: + * Fix reading of conformant single-part MultiLineString (#10774) + +GeoPackage driver: + * OGR_GPKG_FillArrowArray_Step(): more rigorous locking + +GMLAS driver: + * make it robust to XML billion laugh attack + +JSONFG driver: + * accept coordRefSys starting with https://www.opengis.net/def/crs/ + +NAS driver: + * make it robust to XML billion laugh attack + +OpenFileGDB driver: + * add missing GetIndexCount() in FileGDBTable::CreateIndex + * fix writing a Int32 field with value -21121 + * exclude straight line segments when parsing arcs (#10763) + +Parquet driver: + * fix crash when using SetIgnoredFields() + SetSpatialFilter() on + GEOMETRY_ENCODING=GEOARROW layers with a covering bounding box + (qgis/QGIS#58086) + +PostgreSQL/PGDump drivers: + * properly truncates identifiers exactly of 64 characters (#10907) + +PostgreSQL driver: + * ensure current user has superuser privilege beore attemption to create + event trigger for metadata table (#10925) + +Shapefile driver: + * Add new shapelib API functions to the symbol rename header + +SQLite/GPKG drivers: + * fix potential double-free issue when concurrently closing datasets when + Spatialite is available + +## Python bindings + +* Silence SWIG 'detected a memory leak' message (#4907) +* fix passing a dict value to the transformerOptions argument of gdal.Warp() + (#10919) + # GDAL/OGR 3.9.2 Release Notes GDAL 3.9.2 is a bugfix release. diff --git a/VERSION b/VERSION index 2009c7dfad99..820476af9418 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.9.2 +3.9.3 diff --git a/gcore/gdal_version.h.in b/gcore/gdal_version.h.in index 83feaa18c48d..6d431875071b 100644 --- a/gcore/gdal_version.h.in +++ b/gcore/gdal_version.h.in @@ -7,7 +7,7 @@ #ifndef GDAL_VERSION_MAJOR # define GDAL_VERSION_MAJOR 3 # define GDAL_VERSION_MINOR 9 -# define GDAL_VERSION_REV 2 +# define GDAL_VERSION_REV 3 # define GDAL_VERSION_BUILD 0 #endif @@ -24,9 +24,9 @@ #if !defined(DO_NOT_DEFINE_GDAL_DATE_NAME) #ifndef GDAL_RELEASE_DATE -# define GDAL_RELEASE_DATE 20240813 +# define GDAL_RELEASE_DATE 20241007 #endif #ifndef GDAL_RELEASE_NAME -# define GDAL_RELEASE_NAME "3.9.2" +# define GDAL_RELEASE_NAME "3.9.3" #endif #endif diff --git a/scripts/fix_typos.sh b/scripts/fix_typos.sh index f52f92c9c00e..8747acb37741 100755 --- a/scripts/fix_typos.sh +++ b/scripts/fix_typos.sh @@ -127,6 +127,7 @@ AUTHORIZED_LIST="$AUTHORIZED_LIST,CURLE_FILE_COULDNT_READ_FILE" AUTHORIZED_LIST="$AUTHORIZED_LIST,nParms,ProjParm,ProjParmId,GTIFFetchProjParms,gdal_GTIFFetchProjParms" # API of libgeotiff AUTHORIZED_LIST="$AUTHORIZED_LIST,lon,Lon,LON" AUTHORIZED_LIST="$AUTHORIZED_LIST,MM_MARCA_VERSIO_1_DBF_ESTESA,MM_PERIMETRE_INIT_SIZE,MM_PERIMETRE_DECIMALS_SIZE,szMMNomCampPerimetreDefecte,MM_CAMP_ES_PERIMETRE,szMMNomCampNPoligonsDefecte,MM_CAMP_MOSTRABLE_QUAN_TE_CONTINGUT,MM_CAMP_ES_PERIMETRE_3D,SECTION_VERSIO" +AUTHORIZED_LIST="$AUTHORIZED_LIST,ADJ_PARM,NUM_ADJ_PARM,ADJ_PARM_ID,UE_FLAG" python3 fix_typos/codespell/codespell.py -w -i 3 -q 2 -S "$EXCLUDED_FILES,./autotest/*,./build*/*" \ -x scripts/typos_allowlist.txt --words-white-list=$AUTHORIZED_LIST \ diff --git a/swig/python/README.rst b/swig/python/README.rst index 60ea7513c0eb..246a443cc26d 100644 --- a/swig/python/README.rst +++ b/swig/python/README.rst @@ -13,7 +13,7 @@ reference documentation, but the https://gdal.org/api/python_bindings.html#tutor Dependencies ------------ - * libgdal (3.9.2 or greater) and header files (gdal-devel) + * libgdal (3.9.3 or greater) and header files (gdal-devel) * numpy (1.0.0 or greater) and header files (numpy-devel) (not explicitly required, but many examples and utilities will not work without it) diff --git a/swig/python/gdal-utils/osgeo_utils/__init__.py b/swig/python/gdal-utils/osgeo_utils/__init__.py index ae03c975a3dd..953730720892 100644 --- a/swig/python/gdal-utils/osgeo_utils/__init__.py +++ b/swig/python/gdal-utils/osgeo_utils/__init__.py @@ -1,5 +1,5 @@ __package_name__ = "gdal-utils" -gdal_utils_version = (3, 9, 2, 0) +gdal_utils_version = (3, 9, 3, 0) __version__ = ".".join(str(i) for i in gdal_utils_version) __author__ = "Frank Warmerdam" __author_email__ = "warmerdam@pobox.com"