|
| 1 | +# GDAL/OGR 3.8.4 Release Notes |
| 2 | + |
| 3 | +GDAL 3.8.4 is a bugfix release. |
| 4 | + |
| 5 | +## Build |
| 6 | + |
| 7 | +* FindECW.cmake: make it work for Windows 32-bit builds (#9106) |
| 8 | +* Restore use of gmtime_r and localtime_r; extend to ctime_r; use Windows |
| 9 | + variants too |
| 10 | +* FindSQLite3.cmake: improve detection of static libsqlite3.a (#9096) |
| 11 | +* bash_completion installation: Allow the project_binary_dir to contain a |
| 12 | + whitespace |
| 13 | + |
| 14 | +## Docker build recipes |
| 15 | + |
| 16 | +* docker/ubuntu-full/Dockerfile: update to Arrow 15.0.0 |
| 17 | +* docker/ubuntu-full/Dockerfile: pin libarrow-acero-dev version (#9183) |
| 18 | +* docker/ubuntu-full/Dockerfile: disable AVX2 when building TileDB |
| 19 | + |
| 20 | +## GDAL 3.8.4 |
| 21 | + |
| 22 | +### Port |
| 23 | + |
| 24 | +* /vsisparse/: fix Stat() on files larger than 4 GB on 32-bit builds |
| 25 | +* CPLAtof()/CPLStrtod(): recognize again INF and -INF |
| 26 | +* /vsicurl/: fix potential multithreaded crash when downloading the same region |
| 27 | + in parallel and that the download fails |
| 28 | + |
| 29 | +### Core |
| 30 | + |
| 31 | +* PAM: only unset GPF_DIRTY flag |
| 32 | +* GDALOverviewDataset: avoid setting SetEnableOverviews(false) during lifetime |
| 33 | + of object. Just do it transiently |
| 34 | + |
| 35 | +### Utilities |
| 36 | + |
| 37 | +* gdalinfo: do not emit errors if corner coordinate reprojection fails |
| 38 | +* gdalwarp: do not enable blank line detection when -tap and -te are specified |
| 39 | + (#9059) |
| 40 | + |
| 41 | +### Raster drivers |
| 42 | + |
| 43 | +BMP driver: |
| 44 | + * fix reading images larger than 4GB (3.4.0 regression) |
| 45 | + |
| 46 | +EEDA/EEDAI driver: |
| 47 | + * use 'crsWkt' element |
| 48 | + |
| 49 | +GRIB driver: |
| 50 | + * degrib: use gmtime_r() or gmtime_s() when possible |
| 51 | + |
| 52 | +netCDF driver: |
| 53 | + * use VSILocalTime() |
| 54 | + |
| 55 | +PCIDSK driver: |
| 56 | + * PCIDSK SDK: use ctime_r() or ctime_s() when possible |
| 57 | + |
| 58 | +PDF driver: |
| 59 | + * correctly initialize PAM when opening a subdataset (specific page for |
| 60 | + example) |
| 61 | + |
| 62 | +VRT driver: |
| 63 | + * VRTPansharpenedRasterBand::GetOverviewCount(): robustify against potential |
| 64 | + failure of GDALCreateOverviewDataset() |
| 65 | + |
| 66 | +WMS driver: |
| 67 | + * fix nullptr dereference on invalid document (ossfuzz #65772) |
| 68 | + |
| 69 | +## OGR 3.8.4 |
| 70 | + |
| 71 | +### Core |
| 72 | + |
| 73 | +* ExecuteSQL(dialect=SQLite): support 'SELECT\n' for example (#9093) |
| 74 | +* OGRGeometryFactory::createGeometry(): do not assert on wkbUnknown input |
| 75 | + |
| 76 | +### Utilities |
| 77 | + |
| 78 | +* ogr2ogr: Arrow code path: take into account -limit parameter for |
| 79 | + MAX_FEATURES_IN_BATCH |
| 80 | + |
| 81 | +### Vector drivers |
| 82 | + |
| 83 | +GeoRSS, GPX, JML, KML, LVBAG, SVG, XLSX drivers: |
| 84 | + * harmonize on a 8192 byte large parsing buffer on all platforms |
| 85 | + |
| 86 | +Arrow/Parquet driver: |
| 87 | + * add (minimum) support for libarrow 15.0 |
| 88 | + * MapArrowTypeToOGR(): make the code robust to potentially new entries in the |
| 89 | + arrow::Type enumeration |
| 90 | + |
| 91 | +CAD driver: |
| 92 | + * Internal libopencad: use localtime_r() or localtime_s() when possible |
| 93 | + |
| 94 | +CSV driver: |
| 95 | + * do not quote numeric fields even if STRING_QUOTING=ALWAYS (3.8.1 regression) |
| 96 | + (#55808) |
| 97 | + |
| 98 | +GMLAS driver: |
| 99 | + * recognize GeometricPrimitivePropertyType |
| 100 | + |
| 101 | +LIBKML driver: |
| 102 | + * fix crash on a gx:Track without when subelements (qgis/qgis#55963) |
| 103 | + |
| 104 | +MSSQLSpatial driver: |
| 105 | + * Fix BCP performance problem (#9112) |
| 106 | + |
| 107 | +MySQL driver: |
| 108 | + * fix/workaround server-side spatial filtering when SRS is geographic with |
| 109 | + MySQL >= 8 (qgis/QGIS#55463) |
| 110 | + |
| 111 | +ODS driver: |
| 112 | + * fix parsing of large cells on Windows (at least with mingw64) with recent |
| 113 | + expat 2.6.0 release |
| 114 | + |
| 115 | +PDF driver: |
| 116 | + * vector stream parser: correctly parse structures like "[3 3.5] 0 d" |
| 117 | + |
| 118 | +PDS driver: |
| 119 | + * fix compilation with Emscripten version 3.1.7 |
| 120 | + |
| 121 | +SQLite driver: |
| 122 | + * OGR2SQLITE_Setup(): robustify against potential crashing scenario |
| 123 | + |
| 124 | +### Python bindings |
| 125 | + |
| 126 | +* remove run of 'python -m lib2to3' that is a no-op, given that lib2to3 is |
| 127 | + removed in python 3.13 (#9173) |
| 128 | + |
| 129 | +# GDAL/OGR 3.8.3 Release Notes |
| 130 | + |
| 131 | +GDAL 3.8.3 is a bugfix release. |
| 132 | + |
| 133 | +## Build |
| 134 | + |
| 135 | +* infback9: fix various build issues with clang 17 |
| 136 | +* fix build with sqlite 3.36.x (#9021) |
| 137 | +* fix build of optional utility gdal2ogr |
| 138 | + |
| 139 | +## GDAL 3.8.3 |
| 140 | + |
| 141 | +### Port |
| 142 | + |
| 143 | +* AWS S3: add explicit error message when IMDS fails and we know we are on EC2 |
| 144 | + |
| 145 | +### Utilities |
| 146 | + |
| 147 | +* gdalbuildvrt: in -separate mode, only use ComplexSource if needed |
| 148 | + |
| 149 | +### Raster drivers |
| 150 | + |
| 151 | +VRT driver: |
| 152 | +* VRTDerivedRasterBand::IRasterIO(): fix potential multiplication overflow |
| 153 | + |
| 154 | +## OGR 3.8.3 |
| 155 | + |
| 156 | +### OGRSpatialReference |
| 157 | + |
| 158 | +* CoordinateTransformation::TransformBounds(): fix polar stereographic ( |
| 159 | + including pole) to Web Mercator (#8996) |
| 160 | + |
| 161 | +### Utilities |
| 162 | + |
| 163 | +* ogr2ogr: do not use ArrowArray interface if -clipsrc, -clipdst, -gcp or |
| 164 | + -wrapdateline are specified (#9013) |
| 165 | + |
| 166 | +### Vector drivers |
| 167 | + |
| 168 | +* OGRArrowArrayHelper::SetBoolOn(): fix wrong bit shift computation. |
| 169 | + Affects ogr2ogr from GPKG/FlatGeoBuf to something else) (#8998) |
| 170 | + |
| 171 | +GPKG driver: |
| 172 | + * Fix error message that sometimes occurred with multi-threaded ArrowArray |
| 173 | + interface, and add OGR_GPKG_NUM_THREADS config option. (#9018, 9030) |
| 174 | + |
| 175 | +GeoJSON driver: |
| 176 | + * Internal libjson: resync random_seed.c with upstream, and use getrandom() |
| 177 | + implementation when available (#9024) |
| 178 | + |
| 179 | +# GDAL/OGR 3.8.2 Release Notes |
| 180 | + |
| 181 | +GDAL 3.8.2 is a bugfix release. |
| 182 | + |
| 183 | +## GDAL 3.8.2 |
| 184 | + |
| 185 | +### Port |
| 186 | + |
| 187 | +* /vsis3/: takes into account AWS_CONTAINER_CREDENTIALS_FULL_URI environment |
| 188 | + variable (#8858) |
| 189 | +* cpl_safemaths.hpp: fix compilation with clang targeting Windows (#8898) |
| 190 | +* CPLGetPhysicalRAM(): fix getting right value when running inside Docker on a |
| 191 | + cgroups v1 system (like Amazon Linux 2) (#8968) |
| 192 | + |
| 193 | +### Algorithms |
| 194 | + |
| 195 | +* Rasterization: avoid burning pixel that we only touch (with an empty |
| 196 | + intersection) (#8918) |
| 197 | + |
| 198 | +### Utilities |
| 199 | + |
| 200 | +* gdal_footprint: return an error if the requested output layer doesn't exist |
| 201 | +* gdal_translate: avoid useless extra GDALOpen() call on a target GeoRaster |
| 202 | +* pct2rgb.py: emit explicit exception when source file has no color table (#8793) |
| 203 | + |
| 204 | +### Raster drivers |
| 205 | + |
| 206 | +HDF5 driver: |
| 207 | + * classic 2D API: handle char,ushort,uint,int64,uint64 attributes when |
| 208 | + reading them as double |
| 209 | + * multidim: better warning when nodata value is out of range |
| 210 | + |
| 211 | +JPEGXL driver: |
| 212 | + * add compatibility with latest libjxl git HEAD |
| 213 | + |
| 214 | +NGSGEOID driver: |
| 215 | + * make dataset identification robust to NaN values (#8879) |
| 216 | + |
| 217 | +OGCAPI driver: |
| 218 | + * make it robust to missing 'type' on 'self' link (#8912) |
| 219 | + |
| 220 | +STACTA driver: |
| 221 | + * use GDAL_DISABLE_READDIR_ON_OPEN=EMPTY_DIR instead of |
| 222 | + CPL_VSIL_CURL_ALLOWED_EXTENSIONS |
| 223 | + * use STAC Raster extension to get number of bands, their data type, nodata |
| 224 | + value, scale/offset, units, and avoid fetching a metatile |
| 225 | + * add support for upcoming STAC 1.1 which merges eo:bands and raster:bands |
| 226 | + into bands |
| 227 | + |
| 228 | +netCDF, HDF4, HDF5: |
| 229 | + * SubdatasetInfo API: fix various issues (#8869, #8881) |
| 230 | + |
| 231 | +VRT driver: |
| 232 | + * VRTComplexSource: fix excessive RAM usage with many sources (#8967, 3.8.0 regression) |
| 233 | + |
| 234 | +### OGR 3.8.2 |
| 235 | + |
| 236 | +### Core |
| 237 | + |
| 238 | +* OGRGeometryFactory::transformWithOptions(): fix WRAPDATELINE=YES on |
| 239 | + multipoint geometries (#8889) |
| 240 | +* OGRSpatialReference::importFromUrl(): changes to no longer use a |
| 241 | + 'Accept: application/x-ogcwkt' header |
| 242 | +* OSRPJContextHolder: call pthread_atfork() once for the process, and |
| 243 | + re-enable it for MacOS |
| 244 | +* OGRWKBIntersectsPessimisticFixture: handle all geometry types |
| 245 | + |
| 246 | +### Utilities |
| 247 | + |
| 248 | +* ogrinfo: really honours -if (refs #8590) |
| 249 | +* ogr2ogr: implement -if |
| 250 | + |
| 251 | +### Vector drivers |
| 252 | + |
| 253 | +* PMTiles: Correct extension for temporary mbtiles file |
| 254 | + |
| 255 | +## Python bindings |
| 256 | + |
| 257 | +* gdal.Footprint(): add a minRingArea option |
| 258 | +* fix build/install when there's a gdal-config from a pre-installed version in |
| 259 | + the PATH (#8882) |
| 260 | +* add missing reference increment on Py_None in error case of |
| 261 | + Geometry.GetPoints() (#8945) |
| 262 | + |
1 | 263 | # GDAL/OGR 3.8.1 Release Notes
|
2 | 264 |
|
3 | 265 | GDAL 3.8.1 is a bugfix release.
|
|
0 commit comments