Changes between Initial Version and Version 1 of Release/2.5.0-News


Ignore:
Timestamp:
Apr 26, 2019, 7:41:26 AM (5 years ago)
Author:
Even Rouault
Comment:

2.5.0 news page

Legend:

Unmodified
Added
Removed
Modified
  • Release/2.5.0-News

    v1 v1  
     1= GDAL/OGR 2.5.0 Release Notes =
     2
     3== In a nutshell... ==
     4
     5 * Implement RFC 73: Integration of PROJ6 for WKT2, late binding capabilities, time-support and unified CRS database. PROJ >= 6 is now a build requirement
     6    https://trac.osgeo.org/gdal/wiki/rfc73_proj6_wkt2_srsbarn
     7 * New GDAL drivers:
     8  - DAAS: read driver for Airbus DS Intelligence Data As A Service
     9  - TileDB: read/write driver for https://www.tiledb.io (#1402)
     10 * New OGR drivers:
     11  - MongoDBv3: read/write driver using libmongocxx v3.4.0 client (for MongoDB >= 4.0)
     12 * Improved drivers:
     13   - FITS: read/write support for scale, offset and CRS
     14   - netCDF: read support for groups
     15   - PDF: add a COMPOSITION_FILE creation option to generate a complex document
     16   - PDS4: subdataset creation support, read/write table/vector support
     17 * Support for minimal builds on Unix (#1250)
     18 * Add a docker/ directory with Dockerfile for different configurations
     19 * Continued code linting
     20
     21== New installed files ==
     22
     23 * Resource file: pdfcomposition.xsd
     24
     25== Removed installed files ==
     26
     27 * Removal of resource files related to EPSG and ESRI CRS databases: compdcs.csv, coordinate_axis.csv, datum_shift.csv, ellipsoid.csv, esri_epsg.wkt, esri_extra.wkt, esri_Wisconsin_extra.wkt, gcs.csv, gcs.override.csv, gdal_datum.csv, geoccs.csv, pcs.csv, pcs.override.csv, prime_meridian.csv, projop_wparm.csv, unit_of_measure.csv, vertcs.csv, vertcs.override.csv
     28
     29== Backward compatibility issues ==
     30
     31See MIGRATION_GUIDE.txt
     32
     33== GDAL/OGR 2.5.0 - General Changes ==
     34
     35Build(Unix):
     36 * Allow internal drivers to be disabled (#1250)
     37 * Fix build with OpenBSD which doesn't support RLIMIT_AS (#1163)
     38 * Fix MacOS build failures due to json-c
     39 * Poppler: require pkg-config
     40 * PostgreSQL: Switch from pg_config to pkg-config (#1418)
     41 * fix build --without-lerc (#1224)
     42 * fix netcdf_mem.h detection in netcdf 4.6.2 (#1328)
     43 * Fix build --with-curl --without-threads (#1386)
     44
     45Build(Windows):
     46 * nmake.opt: remove unicode character at line starting with '# 4275' that apparently cause build issues with some MSVC versions (#1169)
     47
     48All:
     49 * PROJ >= 6.0 is a required external dependency
     50 * libgeotiff >= 1.5 should be used for builds with external libgeotiff
     51 * Poppler: drop support for Poppler older than 0.23.0
     52 * Poppler: add support for 0.72.0, 0.73.0, 0.75.0, 0.76.0
     53
     54== GDAL X.Y.Z - Overview of Changes ==
     55
     56Port:
     57 * Add capability to define external VSI virtual file systems from C API (#1289)
     58 * MiniXML: Fix wrong node order when calling CPLAddXMLAttributeAndValue() after CPLCreateXMLElementAndValue()
     59 * /vsicurl/: ReadMultiRange(): use default implementation if there is a single range (#1206)
     60 * /vsicurl/: ignore proxy CONNECT response headers (#1211)
     61 * /vsicurl/: automatically detect signed URLs where host ends with a port number; also detect signed URLs as created with the AWS4-HMAC-SHA256 method (#1456)
     62 * /vsizip/: Add config option to create zip64 extra fields by default (#1267)
     63 * /vsis3/, /vsigs/, /vsiaz/: add HTTP retry logic in writing code paths
     64 * Fix data race in VSIFileManager::Get
     65 * cpl_zipOpenNewFileInZip3: fix memory leak in error code path. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13103.
     66 * VSIGZipWriteHandleMT: avoid potential deadlock in case of error
     67 * Fix assertion in CPLGetValueType when testing non-ASCII chars
     68 * /vsihdfs/: fix Read() when more than one hdfsRead call is needed (#1349)
     69 * Fix potential buffer overflow in CPLODBCSession::Failed (#1390)
     70 * /vsitar/: handle .tar file header with space padding instead of 0 for file size (#1396)
     71
     72Core:
     73 * Support blocks larger than 2 billion pixels/bytes
     74 * Make CPLHaveRuntimeSSSE3() and CPLHaveRuntimeAVX() use GCC constructor functions
     75 * Move RawDataset base class to gcore/ (#1268)
     76 * RasterBand/Dataset::RasterIO(): enforce access mode on write
     77 * PAM: preserve existing metadata when setting new one (#1430)
     78 * RawDataset: use generic RasterIO() implementation when non-nearest resampling is asked (#1301)
     79 * DumpJPK2CodeStream(): dump PLT and POC markers
     80
     81Algorithms:
     82 * RPC transformer: test success code of GDALRPCTransform() in GDALCreateRPCTransformer()
     83 * RPC transformer: add a RPC_FOOTPRINT transformer option to provide a polygon in long/lat space where the RPC is valid, and also make gdalwarp use GDALSuggestedWarpOutput2() to restrict the bounding box of the output dataset
     84 * GDALFillNodata(): fix wrong comparison in QUAD_CHECK() macro: nNoDataVal is only assigned to target_y values (#1228)
     85 * GDALFillNodata(): reinitialize panLastY array to nNoDataVal before bottom to top pass (#1228)
     86 * GDALFillNodata(): do an extra iteration to reach the maximum search distance in all quadrants (#1228)
     87 * GDALRasterizeLayersBuf():support any GDAL data type for buffer,and pixel and line spaceing arguments
     88 * GDALResampleChunk32R_Mode: performance improvement
     89 * Rasterize with MERGE_ALG=ADD: avoid burning several times intermediate points of linestrings (#1307)
     90 * rasterize: fix crash when working buffer is larger than 2GB (#1338)
     91
     92Utilities:
     93 * gdal_translate: add "-nogcp" option (#1469)
     94 * gdaldem hillshade: add -igor option (#1330)
     95 * gdalwarp -crop_to_cutline: do not round computed target extent to be aligned on the grid of the source raster if -tr is set (restore partially pre 2.4 behaviour) (#1173)
     96 * gdalwarp: assume -tap when using -crop_to_cutline, -tr and -wo CUTLINE_ALL_TOUCHED=TRUE, so as to avoid issues with polygons smaller than 1x1 pixels (#1360)
     97 * gdal2tiles: give local tile layer and basemap layers same min/max zoom levels as generated tile cache
     98 * gdal2tiles: fix breakage of openlayers.html getURL() javascript function, introduced in GDAL 2.3.3 / 2.4.0 (#1127)
     99 * gdal2tiles: prevent accidental copy of full GeoTIFF into temporary .vrt file
     100  gdal2tiles: Refactor and fix multiprocessing completion handling
     101 * gdal_fillnodata.py: preserve color interpretation and table
     102 * gdal_fillnodata.py: do not set geotransform if source doesn't have one
     103 * gdalsrsinfo: do not silence errors when calling SetFromUserInput()
     104 * gdal_retile: Use nodata value from origin dataset
     105 * gdal_edit.py: allow setting band-specific scale and offset values (#1444)
     106 * validate_cloud_optimized_geotiff.py: check if file is only greater than 512px (#1403)
     107 * validate_cloud_optimized_geotiff.py: report headers size
     108
     109ADRG driver:
     110 * modified to ensure that there is no confliction between ADRG and SRP when opening a .gen file (#953)
     111
     112AIGRID / AVCBin:
     113 * fix filename case adjustment that failed on /vsi filesystems (#1385)
     114
     115BAG driver:
     116 * fix potential nullptr deref on corrupted file
     117
     118COSAR driver:
     119 * avoid out-of-bound write on corrupted dataset. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12360.
     120
     121EEDA driver:
     122 * report 'path' metdata in 'path' field
     123
     124GPKG driver:
     125 * allow negative srs_id values in gpkg_spatial_ref_sys
     126 * reduce memory requirements for cached tiles
     127
     128GTiff diver:
     129 * supports tiles/strips larger than 2GB
     130 * add APPEND_SUBDATASET=YES capability to create subdataset / new TIFF page to an existing file
     131 * only report scale/offset deduced from ModelTiepointTag and ModelPixelScaleTag if the SRS has a vertical component (and thus currently if GTIFF_REPORT_COMPD_CS is set) (https://issues.qgis.org/issues/20493)
     132 * TIFF Lerc: properly initialize state after Create() so that BuildOverviews() succeed (#1257)
     133 * emit merged consecutive multi-range reads (#1297)
     134 * add warnings when using unsupported combination of internal mask+external overview, and fix COPY_SRC_OVERVIEWS=YES so that it does not copy ALL_VALID masks (#1455)
     135 * Internal libtiff and libgeotiff: resync with upstream
     136
     137FITS driver:
     138 * new functions for Scale Offset and FITS World Coordinate System read and write (#1298)
     139
     140GeoRaster driver:
     141 * Fix memory leaks
     142
     143HDF5 driver:
     144 * support reading blocks larger than 2GB
     145 * fix handling of attributes of type SCHAR, UCHAR, USHORT and UINT (https://github.com/mapbox/rasterio/issues/1663)
     146 * detect nodata from netCDF _FillValue (#1451)
     147 * add more strict checks for accepting datasets for GCP, and handle nodata in GCP too (#1451)
     148
     149IGNFHeightAsciiGrid driver:
     150 * add support for RAF18.mnt
     151
     152JPEG driver:
     153 * fix GDAL 2.3.0 performance regression when decoding JPEG (or GPKG using JPEG) images (#1324)
     154
     155KEA driver:
     156 * add support for /vsi file systems
     157
     158KMLSuperOverlay driver:
     159 * report color table of single overlay datasets, and also handle some variation in the KML structure (https://issues.qgis.org/issues/20173)
     160
     161MRF driver:
     162 * sparse index and internal resampling fixes
     163 * fix integer overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13974
     164
     165MrSID driver:
     166 * fix potential crash when a zoom level cannot be opened
     167
     168netCDF driver:
     169 * implement support for NetCDF-4 groups on reading (#1180)
     170 * support complex data types (#1218)
     171 * fix crash when opening a dataset with an attribute of length 0 (#1303)
     172 * fix IWriteBlock() to support non-scanline blocks, and use the chunk size
     173 * better deal with datasets indexed with unusual order for x/y dimensions
     174 * avoid inappropriate shift by -360 when attribute axis=X is set (#1440)
     175
     176NGW driver:
     177 * Add CreateCopy function
     178
     179NITF driver:
     180 * avoid harmless floating point division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12844.
     181
     182PCIDSK driver:
     183 * avoid uint overflow and too big memory allocation attempt. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12893
     184
     185PDF driver:
     186 * Add a COMPOSITION_FILE creation option to generate a complex document
     187 * And a gdal_create_pdf.py sample script
     188 * Fix selection of Poppler PDF layers with duplicate names (#1477)
     189 * avoid division by zero when generating from vector content whose bounding box is almost a horizontal or vertical line. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13408
     190
     191PDS3:
     192 * fix decoding of band interleaved images (such as for CRISM HSP) (#1239)
     193 * add support for ENCODING_TYPE=DCT_DECOMPRESSED (#1457)
     194
     195PDS4 driver:
     196 * add subdataset creation support, and getting/setting the band unit
     197 * update template and code to PDS v1B00 schema versions
     198
     199VRT driver:
     200 * Python pixel functions: add shared object name for python 3.7
     201 * VRT: in case of no SourceProperties, do not use global shared datasets, but only shared to the owning VRTDataset, to avoid potential reference cycles and annoying related issues. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13476.
     202
     203WCS driver:
     204 * avoid potential out-of-bound access
     205
     206WMS driver:
     207 * use proper JSon parsing for ESRI MapServer document (#1416)
     208 * Add url parameters escaping to ArcGIS Server minidriver
     209 * avoid warning when a wms cache doesn't exist
     210
     211XPM driver:
     212 * fix read heap buffer overflow on corrupted image. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13455.
     213
     214XYZ driver:
     215 * add creation options DECIMAL_PRECISION and SIGNIFICANT_DIGITS like with AAIGrid
     216 * fix regression regarding header lines that are not X,Y,Z (#1472)
     217
     218== OGR X.Y.Z - Overview of Changes ==
     219
     220Core:
     221 * Add OGR_G_MakeValid() (requires GEOS 3.8)
     222 * change prototye of OGRFeature::SetField( int iField, int nBytes, GByte *pabyData ) to ( ... , const void* pabyData), and same for OGR_F_SetFieldBinary().
     223 * Polyhedral surface: fix importFromWKT to properly fix Z/M flag
     224 * OGRBuildPolygonFromLines: avoid generating effectively duplicate points
     225 * OGRBuildPolygonFromEdges(): improve performance. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13798
     226 * OGRGeometryFactory::transformWithOptions(): if WRAPDATELINE=YES, test that the geometry SRS is geographic
     227 * OGRGeometryFactory::GetCurveParmeters(): fix assertion when coordinates are very near 0
     228 * Expat XML parsing: add OGR_EXPAT_UNLIMITED_MEM_ALLOC=YES config option to workaround failure for very specific cases
     229 * OGRLineString::segmentize(): fix issues when segment length is divisible by maxlength (#1341)
     230 * OGR SQL: limit recursion in swq_expr_node::Check(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13540
     231 * OGRGeometry / SFCGAL: fix dead code, memory leaks and potential nullptr deref.
     232
     233OGRSpatialReference:
     234 * Deep rework due to RFC 73 integration
     235 * SRS_WKT_WGS84 macro replaced by SRS_WKT_WGS84_LAT_LONG
     236 * Add OSRSetPROJSearchPaths(), OSRExportToWktEx(), OSRGetName(), OSRIsSameEx(), OSRGetCRSInfoListFromDatabase(), OSRGetAreaOfUse(),OSRGetAxisMappingStrategy(), OSRSetAxisMappingStrategy(), OSRGetDataAxisToSRSAxisMapping()
     237 * Add OCTNewCoordinateTransformationOptions(), OCTCoordinateTransformationOptionsSetOperation(), OCTCoordinateTransformationOptionsSetAreaOfInterest(), OCTDestroyCoordinateTransformationOptions(), OCTNewCoordinateTransformationEx(), OCTTransform4D()
     238 * Remove OSRFixupOrdering(), OSRFixup(), OSRStripCTParms(), OCTProj4Normalize(), OCTCleanupProjMutex(), OPTGetProjectionMethods(), OPTGetParameterList(), OPTGetParameterInfo()
     239
     240Utilities:
     241 * ogrinfo: report TITLE metadata in summary layer listing
     242 * ogr2ogr: for drivers supporting ODsCCreateGeomFieldAfterCreateLayer, do not create geometry column if -nlt none
     243 * ogrmerge.py: add shared='1' to speed-up -single mode with many layers
     244
     245CARTO driver:
     246 * Overwrite tables in single transactions
     247 * Improve documentation and warnings around CARTODBFY (#1445)
     248
     249CSW driver:
     250 * fix crash when geometry parsing fails (#1248)
     251
     252DODS driver:
     253 * fixes related to memory leaks and null pointer dereferences
     254
     255DXF driver:
     256 * support RGB true color values
     257 * fix the coloring of ByBlock entities inserted via a ByLayer INSERT
     258 * fix double-free issue in case of writing error. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13516.
     259
     260FileGDB/OpenFileGDB drivers:
     261 * be robust when winding order of outer ring is incorrect (#1369)
     262
     263Elasticsearch driver:
     264 * Fixed index comparison bug when a index have at least one mapping
     265 * Fix _mapping url for Elasticsearch 7 compatibility
     266
     267GeoJSON driver:
     268 * speed-up random reading with GetFeature() by storing a map FID->(start,size) to retrieve performance similar to GDAL 2.2 or before (https://issues.qgis.org/issues/21085)
     269
     270GeoJSONSeq driver:
     271 * be more robust to invalid objects, and fixes performance issue on corrupted files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13770.
     272
     273GML driver:
     274 * write SRSName element in .gfs when parsing a GML file with srsName only on top-level boundedBy element (#1210)
     275 * Add "FeatureType" to list of suffixes recognized by XSD parser (#1313)
     276 * GML/WFS: add minimum support for 'hexBinary' type (as string) (#1375)
     277
     278GMLAS driver:
     279 * avoid null pointer dereference on some schemas
     280 * do not use space as separator for schema filename in XSD open option (#1452)
     281
     282GMT driver:
     283 * use file extension based detection to accept files without header (#1461)
     284
     285MongoDB driver:
     286 * fix releated to filters in GetFeature()
     287
     288MITAB driver:
     289 * Add encode/decode feature labels to/from UTF-8 encoding while MIF file read/write (#1151)
     290 * .tab: fix deleting a feature without geometry (#1232)
     291 * adapt dynamically default projection bounds to false_easting/false_northing values (#1316)
     292 * avoid potential assertion or stack buffer overflow on corrupted .ind files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11999
     293 * prevent potential infinite recursion on broken indexes. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12739.
     294 * TAB_CSLLoad(): fix performance issue. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13588
     295 * avoid long processing on corrupted .mif files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13152
     296
     297MSSQLSpatial driver:
     298 * Add support for curve geometries (#1299)
     299 * Add option to expose the FID column as a feature attribute (#1227)
     300 * Adding improved extent queries
     301 * Fix extent calculation for geography type, take care of invalid geometries
     302
     303NGW driver:
     304 * Fix get children API. Add authorization support to create dataset options
     305 * Add support for feature extensions in OGRFeature native data
     306 * Add feature query via chunks, attribute and spatial filter support
     307 * Add resource type and parent identifier to metadata
     308 * Fix batch update features
     309 * Add JSON_DEPTH open option
     310 * Add check forbidden field names, check duplicate field names.
     311
     312OCI driver:
     313 * Add MULTI_LOAD to open options (#1233)
     314 * Fix memory leaks
     315
     316ODS driver:
     317 * allow opening tables with empty cells with huge values of columns-repeated attribute at end of line (#1243)
     318 * avoid potential null pointer dereference when writing to corrupted filename. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12976.
     319
     320OGDI driver:
     321 * switch incorrect order for east/west bounds of spatial filter
     322
     323PDS4 driver:
     324 * add read/write support for tables (vector support)
     325
     326PGDump driver:
     327 * in WRITE_EWKT_GEOM=YES non-default mode, export geometries to ISO WKT so as to be able to export XYZM (#1327)
     328 * Fix emitted SQL when UNLOGGED=ON
     329
     330PLScenes driver:
     331 * update plscenesconf.json with SkySatCollect and add missing fields for PSOrthoTile
     332
     333SDTS driver:
     334 * error out if too many errors are raised to avoid timeout in oss-fuzz. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13819.
     335
     336Selafin driver:
     337 * avoid null pointer dereference on corrupted files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12356.
     338
     339Shapefile driver:
     340* DeleteLayer(): make it delete .cpg, .sbn, .sbx, .qpj and other sidecar files (#1405)
     341 * speed-up creation of lots of fields with name collisions. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13065
     342
     343SQLite driver:
     344 * set sqlite3_busy_timeout, handle SQLITE_BUSY during tile read (#1370)
     345 * close database before freeing the spatialite context. Fix crashes on dataset closing, with VirtualShape and recent spatialite versions
     346 * Spatialite: fix update of geometry_columns_statistics when extent goes to infinity (#1438)
     347
     348S57 driver:
     349 * avoid long procession on corrupted datasets. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13238
     350
     351SXF driver:
     352 * Fix wrong EPSG codes range (#1278)
     353 * Fix memory leaks in SetVertCS()
     354
     355VFK driver:
     356 * fix curved geometries being ignored (#1351)
     357
     358WFS3 driver:
     359 * handle paging wth missing type for rel:next, and better deal with user:pwd in URL
     360 * use 'id' attribute of collection items, if 'name' not available
     361
     362== SWIG Language Bindings ==
     363
     364All bindings:
     365 * add Geometry::MakeValid()
     366
     367Python bindings:
     368 * fix Dataset.ReadAsRaster() on CInt16 data type (#82)
     369 * adding overviewLevel option to WarpOptions
     370 * add noGCP options to gdal.Translate()