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


Ignore:
Timestamp:
May 2, 2019, 9:04:28 AM (5 years ago)
Author:
Even Rouault
Comment:

3.0.0 news page

Legend:

Unmodified
Added
Removed
Modified
  • Release/3.0.0-News

    v1 v1  
     1= GDAL/OGR 3.0.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 3.0.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 3.0.0 - 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 * gdal_contour: remove explicit width/precision=12/3 of the elev field (#1487)
     95 * gdaldem hillshade: add -igor option (#1330)
     96 * 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)
     97 * 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)
     98 * gdal2tiles: give local tile layer and basemap layers same min/max zoom levels as generated tile cache
     99 * gdal2tiles: fix breakage of openlayers.html getURL() javascript function, introduced in GDAL 2.3.3 / 2.4.0 (#1127)
     100 * gdal2tiles: prevent accidental copy of full GeoTIFF into temporary .vrt file
     101  gdal2tiles: Refactor and fix multiprocessing completion handling
     102 * gdal_fillnodata.py: preserve color interpretation and table
     103 * gdal_fillnodata.py: do not set geotransform if source doesn't have one
     104 * gdalsrsinfo: do not silence errors when calling SetFromUserInput()
     105 * gdal_retile: Use nodata value from origin dataset
     106 * gdal_edit.py: allow setting band-specific scale and offset values (#1444)
     107 * validate_cloud_optimized_geotiff.py: check if file is only greater than 512px (#1403)
     108 * validate_cloud_optimized_geotiff.py: report headers size
     109
     110Multidriver fixes:
     111  * GTiff, GPKG, MBTiles, PostgisRaster drivers: ensure that main dataset and overviews share the same lock, so as to avoid crashing concurrent access (#1488)
     112
     113ADRG driver:
     114 * modified to ensure that there is no confliction between ADRG and SRP when opening a .gen file (#953)
     115
     116AIGRID / AVCBin:
     117 * fix filename case adjustment that failed on /vsi filesystems (#1385)
     118
     119BAG driver:
     120 * fix potential nullptr deref on corrupted file
     121
     122COSAR driver:
     123 * avoid out-of-bound write on corrupted dataset. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12360.
     124
     125EEDA driver:
     126 * report 'path' metdata in 'path' field
     127
     128GPKG driver:
     129 * allow negative srs_id values in gpkg_spatial_ref_sys
     130 * reduce memory requirements for cached tiles
     131
     132GTiff diver:
     133 * supports tiles/strips larger than 2GB
     134 * add APPEND_SUBDATASET=YES capability to create subdataset / new TIFF page to an existing file
     135 * 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)
     136 * TIFF Lerc: properly initialize state after Create() so that BuildOverviews() succeed (#1257)
     137 * emit merged consecutive multi-range reads (#1297)
     138 * 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)
     139 * do not generate a TIFFTAG_GDAL_METADATA with color interpretation information for JPEG YCbCr compression
     140 * Internal libtiff and libgeotiff: resync with upstream
     141
     142FITS driver:
     143 * new functions for Scale Offset and FITS World Coordinate System read and write (#1298)
     144
     145GeoRaster driver:
     146 * Fix memory leaks
     147
     148HDF5 driver:
     149 * support reading blocks larger than 2GB
     150 * fix handling of attributes of type SCHAR, UCHAR, USHORT and UINT (https://github.com/mapbox/rasterio/issues/1663)
     151 * detect nodata from netCDF _FillValue (#1451)
     152 * add more strict checks for accepting datasets for GCP, and handle nodata in GCP too (#1451)
     153
     154IGNFHeightAsciiGrid driver:
     155 * add support for RAF18.mnt
     156
     157JPEG driver:
     158 * fix GDAL 2.3.0 performance regression when decoding JPEG (or GPKG using JPEG) images (#1324)
     159
     160KEA driver:
     161 * add support for /vsi file systems
     162
     163KMLSuperOverlay driver:
     164 * report color table of single overlay datasets, and also handle some variation in the KML structure (https://issues.qgis.org/issues/20173)
     165
     166MRF driver:
     167 * sparse index and internal resampling fixes
     168 * fix integer overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13974
     169
     170MrSID driver:
     171 * fix potential crash when a zoom level cannot be opened
     172
     173netCDF driver:
     174 * implement support for NetCDF-4 groups on reading (#1180)
     175 * support complex data types (#1218)
     176 * fix crash when opening a dataset with an attribute of length 0 (#1303)
     177 * fix IWriteBlock() to support non-scanline blocks, and use the chunk size
     178 * better deal with datasets indexed with unusual order for x/y dimensions
     179 * avoid inappropriate shift by -360 when attribute axis=X is set (#1440)
     180
     181NGW driver:
     182 * Add CreateCopy function
     183
     184NITF driver:
     185 * avoid harmless floating point division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12844.
     186
     187PCIDSK driver:
     188 * avoid uint overflow and too big memory allocation attempt. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12893
     189
     190PDF driver:
     191 * Add a COMPOSITION_FILE creation option to generate a complex document
     192 * And a gdal_create_pdf.py sample script
     193 * Fix selection of Poppler PDF layers with duplicate names (#1477)
     194 * 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
     195
     196PDS3:
     197 * fix decoding of band interleaved images (such as for CRISM HSP) (#1239)
     198 * add support for ENCODING_TYPE=DCT_DECOMPRESSED (#1457)
     199
     200PDS4 driver:
     201 * add subdataset creation support, and getting/setting the band unit
     202 * update template and code to PDS v1B00 schema versions
     203
     204VRT driver:
     205 * Python pixel functions: add shared object name for python 3.7
     206 * 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.
     207
     208WCS driver:
     209 * avoid potential out-of-bound access
     210
     211WMS driver:
     212 * use proper JSon parsing for ESRI MapServer document (#1416)
     213 * Add url parameters escaping to ArcGIS Server minidriver
     214 * avoid warning when a wms cache doesn't exist
     215
     216XPM driver:
     217 * fix read heap buffer overflow on corrupted image. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13455.
     218
     219XYZ driver:
     220 * add creation options DECIMAL_PRECISION and SIGNIFICANT_DIGITS like with AAIGrid
     221 * fix regression regarding header lines that are not X,Y,Z (#1472)
     222
     223== OGR 3.0.0 - Overview of Changes ==
     224
     225Core:
     226 * Add OGR_G_MakeValid() (requires GEOS 3.8)
     227 * change prototye of OGRFeature::SetField( int iField, int nBytes, GByte *pabyData ) to ( ... , const void* pabyData), and same for OGR_F_SetFieldBinary().
     228 * Polyhedral surface: fix importFromWKT to properly fix Z/M flag
     229 * OGRBuildPolygonFromLines: avoid generating effectively duplicate points
     230 * OGRBuildPolygonFromEdges(): improve performance. https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13798
     231 * OGRGeometryFactory::transformWithOptions(): if WRAPDATELINE=YES, test that the geometry SRS is geographic
     232 * OGRGeometryFactory::GetCurveParmeters(): fix assertion when coordinates are very near 0
     233 * Expat XML parsing: add OGR_EXPAT_UNLIMITED_MEM_ALLOC=YES config option to workaround failure for very specific cases
     234 * OGRLineString::segmentize(): fix issues when segment length is divisible by maxlength (#1341)
     235 * OGR SQL: limit recursion in swq_expr_node::Check(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13540
     236 * OGRGeometry / SFCGAL: fix dead code, memory leaks and potential nullptr deref.
     237
     238OGRSpatialReference:
     239 * Deep rework due to RFC 73 integration
     240 * SRS_WKT_WGS84 macro replaced by SRS_WKT_WGS84_LAT_LONG
     241 * Add OSRSetPROJSearchPaths(), OSRExportToWktEx(), OSRGetName(), OSRIsSameEx(), OSRGetCRSInfoListFromDatabase(), OSRGetAreaOfUse(),OSRGetAxisMappingStrategy(), OSRSetAxisMappingStrategy(), OSRGetDataAxisToSRSAxisMapping()
     242 * Add OCTNewCoordinateTransformationOptions(), OCTCoordinateTransformationOptionsSetOperation(), OCTCoordinateTransformationOptionsSetAreaOfInterest(), OCTDestroyCoordinateTransformationOptions(), OCTNewCoordinateTransformationEx(), OCTTransform4D()
     243 * Remove OSRFixupOrdering(), OSRFixup(), OSRStripCTParms(), OCTProj4Normalize(), OCTCleanupProjMutex(), OPTGetProjectionMethods(), OPTGetParameterList(), OPTGetParameterInfo()
     244
     245Utilities:
     246 * ogrinfo: report TITLE metadata in summary layer listing
     247 * ogr2ogr: for drivers supporting ODsCCreateGeomFieldAfterCreateLayer, do not create geometry column if -nlt none
     248 * ogrmerge.py: add shared='1' to speed-up -single mode with many layers
     249
     250CARTO driver:
     251 * Overwrite tables in single transactions
     252 * Improve documentation and warnings around CARTODBFY (#1445)
     253
     254CSW driver:
     255 * fix crash when geometry parsing fails (#1248)
     256
     257DODS driver:
     258 * fixes related to memory leaks and null pointer dereferences
     259
     260DXF driver:
     261 * support RGB true color values
     262 * fix the coloring of ByBlock entities inserted via a ByLayer INSERT
     263 * fix double-free issue in case of writing error. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13516.
     264
     265FileGDB/OpenFileGDB drivers:
     266 * be robust when winding order of outer ring is incorrect (#1369)
     267
     268Elasticsearch driver:
     269 * Fixed index comparison bug when a index have at least one mapping
     270 * Fix _mapping url for Elasticsearch 7 compatibility
     271
     272GeoJSON driver:
     273 * 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)
     274 * report 3D layer geometry types (#1495)
     275
     276GeoJSONSeq driver:
     277 * 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.
     278
     279GML driver:
     280 * write SRSName element in .gfs when parsing a GML file with srsName only on top-level boundedBy element (#1210)
     281 * Add "FeatureType" to list of suffixes recognized by XSD parser (#1313)
     282 * GML/WFS: add minimum support for 'hexBinary' type (as string) (#1375)
     283
     284GMLAS driver:
     285 * avoid null pointer dereference on some schemas
     286 * do not use space as separator for schema filename in XSD open option (#1452)
     287
     288GMT driver:
     289 * use file extension based detection to accept files without header (#1461)
     290
     291MongoDB driver:
     292 * fix releated to filters in GetFeature()
     293
     294MITAB driver:
     295 * Add encode/decode feature labels to/from UTF-8 encoding while MIF file read/write (#1151)
     296 * .tab: fix deleting a feature without geometry (#1232)
     297 * adapt dynamically default projection bounds to false_easting/false_northing values (#1316)
     298 * avoid potential assertion or stack buffer overflow on corrupted .ind files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11999
     299 * prevent potential infinite recursion on broken indexes. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12739.
     300 * TAB_CSLLoad(): fix performance issue. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13588
     301 * avoid long processing on corrupted .mif files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13152
     302
     303MSSQLSpatial driver:
     304 * Add support for curve geometries (#1299)
     305 * Add option to expose the FID column as a feature attribute (#1227)
     306 * Adding improved extent queries
     307 * Fix extent calculation for geography type, take care of invalid geometries
     308
     309NGW driver:
     310 * Fix get children API. Add authorization support to create dataset options
     311 * Add support for feature extensions in OGRFeature native data
     312 * Add feature query via chunks, attribute and spatial filter support
     313 * Add resource type and parent identifier to metadata
     314 * Fix batch update features
     315 * Add JSON_DEPTH open option
     316 * Add check forbidden field names, check duplicate field names.
     317
     318OCI driver:
     319 * Add MULTI_LOAD to open options (#1233)
     320 * Fix memory leaks
     321
     322ODS driver:
     323 * allow opening tables with empty cells with huge values of columns-repeated attribute at end of line (#1243)
     324 * avoid potential null pointer dereference when writing to corrupted filename. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12976.
     325
     326OGDI driver:
     327 * switch incorrect order for east/west bounds of spatial filter
     328
     329PDS4 driver:
     330 * add read/write support for tables (vector support)
     331
     332PGDump driver:
     333 * in WRITE_EWKT_GEOM=YES non-default mode, export geometries to ISO WKT so as to be able to export XYZM (#1327)
     334 * Fix emitted SQL when UNLOGGED=ON
     335
     336PLScenes driver:
     337 * update plscenesconf.json with SkySatCollect and add missing fields for PSOrthoTile
     338
     339SDTS driver:
     340 * 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.
     341
     342Selafin driver:
     343 * avoid null pointer dereference on corrupted files. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12356.
     344
     345Shapefile driver:
     346* DeleteLayer(): make it delete .cpg, .sbn, .sbx, .qpj and other sidecar files (#1405)
     347 * speed-up creation of lots of fields with name collisions. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13065
     348
     349SQLite driver:
     350 * set sqlite3_busy_timeout, handle SQLITE_BUSY during tile read (#1370)
     351 * close database before freeing the spatialite context. Fix crashes on dataset closing, with VirtualShape and recent spatialite versions
     352 * Spatialite: fix update of geometry_columns_statistics when extent goes to infinity (#1438)
     353
     354S57 driver:
     355 * avoid long procession on corrupted datasets. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=13238
     356
     357SXF driver:
     358 * Fix wrong EPSG codes range (#1278)
     359 * Fix memory leaks in SetVertCS()
     360
     361VFK driver:
     362 * fix curved geometries being ignored (#1351)
     363
     364WFS3 driver:
     365 * handle paging wth missing type for rel:next, and better deal with user:pwd in URL
     366 * use 'id' attribute of collection items, if 'name' not available
     367
     368== SWIG Language Bindings ==
     369
     370All bindings:
     371 * add Geometry::MakeValid()
     372
     373Python bindings:
     374 * fix Dataset.ReadAsRaster() on CInt16 data type (#82)
     375 * adding overviewLevel option to WarpOptions
     376 * add noGCP options to gdal.Translate()