= GDAL/OGR 2.0.2 Release Notes = The 2.0.2 release is a bug fix release. == Build(Windows) == * Fix linking error with MSVC_VER=1900 (VS 2015) (#6255) == Build(Unix) == * Add pkg-config support for libkml fork, in addition to the old detection method. The libkml/libkml fork on GitHub supports pkg-config and no longer includes the third_party libraries. (#6077) * gdalserver.c: Add include of signal.h for SIGPIPE and signal() (#6193) * fix detection of FreeXL on MinGW/MSYS (#6330) == Port == * CPLGetValueType(): improve heuristics to avoid detecting some WKB strings as real numbers (#6128) * Fix CPLGetValueType() to recognize D1 as a string and not a real number (#6305) * /vsistdout/: flush when closing the handle (#6149) * CPLFormFilename(): use '/' directory separator on Windows on /vsicurl_streaming/ files (#6310) == GDAL Core == * Fix memory leaks if GDALAllRegister is not called (#6139) * Make private member of GDALDataset really opaque so as to be able to extend it without breaking the C++ ABI (#6163) * Avoid deadlock when writing 2 datasets in 2 threads (#6163) * Block cache: fix excessive memory consumption when dealing with datasets with different block sizes (#6226) * Fix leak in GetMetadataItem() on GDALProxyPoolDataset (#6238) * MDReader: do no attempt reading side-car files on /vsisubfile/ (#6241) * Fix potential buffer overflow in PamHistogramToXMLTree() (#6266) == GDAL Algorithms == * Warp: avoid really excessive processing time for some warping with target areas completely off the source raster (especially when involving RPC) (#6182) == Utilities == * ogr2ogr: prevent from the gt setting to override transaction group size of 1 set by skipfailures earlier (#2409) * ogr2ogr: fix -skip mode to rollback current transaction in case of failed insertion (#6328) * gdalmove.py: fix to run with GDAL 2.0 gdal.InvGeoTransform() signature (#6173) * gdaladdo: emit error message if passed an invalid dataset name (#6240) * gdalwarp: fix -srcnodata to not put garbage values as target dstnodata (#6315) == GDAL drivers == BSB driver: * remove broken and useless logic to deal with extension lines in headers (#6307) ECRG driver: * fix base34 decoding and Windows filename handling (#6271) GTiff driver: * [2.0 regression] fix problem with implicit overviews of JPEG-compressed files (#6308) * fix potential memleak in GTiffDataset::GetJPEGOverviewCount() (#6318) * call XTIFFInitialize() in LibgeotiffOneTimeInit() as the former isn't thread-safe, so better call it from the later which is thread-safe (#6163) * fix writing other angular units than degree (namely arc-second, arc-minute, grad, gon and radian) (#6171) * fix reading angular unit value for angular units than degree (#6171) * do not use VirtualMemIO optimization on compressed /vsimem/ files (#6195) * fix DirectIO() mode with complex types and inverted endianness (#6198) * correctly set GTRasterTypeGeoKey=RasterPixelIsPoint if AREA_OR_POINT=Point but there is no SRS set (#6225) * do not read large 'one row' JBIG compressed files with the scanline API (#6264) * fix SetMetadata() to properly clear existing PAM metadata (complement to #5807) * prevent potential out of bounds read to TIFFTAG_EXTRASAMPLES (#6282) * do not use first directory as potential mask, to avoid assertion in GTiffDataset::SetDirectory() (#6287) * reject files with strips/tiles/scanlines bigger than 2 GB to avoid 32 bit integer overflow. Also in case of files with Contig PlanarConfiguration do not make reading one block for band 2 OK when reading for band 1 issued an error (#6288) GPKG driver: * fix various issues in update scenarios when interacting with the GDAL block cache that could result in lost/corrupted band data to be written in tiles (#6309) * fix potential use of freed sqlite temporary DB handle when generating overviews with partial tiles (#6335) HFA driver: * fix crash when nNumRuns = 0 with RLE compression (#6208) * avoid potential out-of-bounds buffer write (#6286) KMLSuperoverlay driver: * [2.0 regression] fix errors happening with some RasterIO() requests involving resampling (#6311) netCDF driver: * fix one byte heap write overflow in NCDFTokenizeArray() (#6231) * fix potential buffer overflows with uses of nc_inq_varname(), nc_inq_attname() and nc_get_att_text() (#6227) * validate that gridmapping:GeoTransform has 6 values (#6244) * NCDFIsGDALVersionGTE(): validate content of NC_GLOBAL#GDAL variable (#6245) NITF driver: * fix TRE parser to properly deal with variable length items not in first nesting level, such as ENGRDA (not added in nitf_spec.xml in this changeset) (#6285) PDF driver: * correctly take into account non-meter linear units with OGC BP encoding, and add support for US FOOT (#6292) PDS driver: * change default values of PDS_SampleProjOffset_Shift and PDS_LineProjOffset_Shift to 0.5 (#5941) USGSDEM driver: * fix CreateCopy() with VS 2015 (#6257) VICAR driver: * change PDS_SampleProjOffset_Shift and PDS_LineProjOffset_Shift default values to 0.5 (#5941) * VICARKeywordHandler::Ingest(): fix potential buffer overflows (#6256) * be robust to truncated files (#6321) VRT driver: * serialize NODATA and NoDataValue items with %.16g, e.g. so as to be able to hold large int32 nodata values (#6151) * VRT raw: don't truncate last figure of ImageOffset if there are left space padding (#6290) WMS driver: * limit number of zoom levels for ArcGIS MapServer JSon (#6186) XPM driver: * fix vulnerabilities in reading (#6253) == OGR core == * OGRSQL: correctly sort NULL values in first positions (#6155) * OGRLayer::SetIgnoredFields(): properly reset state of non first geometry fields (#6283) * Make OGRLayer::SetSpatialFilter(GetSpatialFilter()) work with non empty spatial filter (#6284) * OGRLayer::Erase(): do not discard input geometries that have no intersection with method layer (#6322) * OGRFeature::SetGeometry()/SetGeometryDirectly(): make it work when passed geometry is the currently installed geometry (#6312) == OGRSpatialReference == * morphFromESRI(): map Mercator_Auxiliary_Sphere to EPSG:3857 (#5924) * morphFromESRI(): special case with PROJCS name 'WGS_84_Pseudo_Mercator' (#6134) * OSR C API: fix declarations of OSRSetAxes() and OSRSetWagner(), and add missing OSRSetHOMAC(), OSRSetMercator2SP() and OSRSetTPED() (#6183) == OGR drivers == CSV driver: * Make OGRCSVLayer::CreateGeomField() returns OGRERR_NONE in case of success instead of OGRERR_FAILURE (#6280) GeoJSON driver: * [2.0 regression] fix crash on null / non-json object features (#6166) * make sure there's enough space to write the FeatureCollection bbox (#6262) GML driver: * serialize in .gfs file the name of the geometry element when it is 'geometry' since this is a particular case (#6247) * fix logic error in BuildJointClassFromScannedSchema() (#6302) * VFR: fix broken processing VFR ST_UVOH files (#6248) * VFR: fix reading ZpusobOchrany attributes (#6258) GPX driver: * [2.0 regression] fix crash when parsing a 'time' extension element at route/track level (#6237) ILI driver: * Support for Surface polygon rings spread over multiple geometry records (#5099) MITAB driver: * add support for block sizes other than 512 bytes in .map files, for MapInfo 15.2 compatibility (#6298) * read MID files with TAB delimiter and empty first field (#5405) * use projection code 29 when exporting non-Polar Lambert Azimuthal Equal Area (#5220) * fix segfault when parsing a Region 0 (#6273) * TABPolyline::ReadGeometryFromMIFFile(): fix segfaults on invalid geometries (#6273) * TABRectangle::ReadGeometryFromMIFFile(): fix crash on malformed ROUNDRECT (#6273) MSSQLSpatial driver: * do not treat a primary key that is not of integer type as the FID (#6235) NTF driver: * fix potential buffer overflows when reading too short lines (#6277) OpenFileGDB driver: * fix min/max on columns without indices (#6150) * fix import of MultiLineString Z geometries with several parts (#6332) PG driver: * fix memleak in ExecuteSQL() (#6179) * avoid reseting error potentially emitted by ExecuteSQL() (#6194) PGDump driver: * fix issue with case of ogc_fid field in case the FID layer creation option is not set by user or by ogr2ogr (related to #6232) Shape driver: * fix REPACK crash on shapefile without .dbf (#6274) * fix crash on MultiLineStringM shapes that have no M component (#6317) VRT driver: * fix editing with 'direct' geometry mode which could cause attribute column to be empty (#6289) == SWIG Language Bindings == Perl bindings: * Fix incorrect signature in "shadow" feature of Geo::OGR::Feature new (#6181) * Add missing osr.t to MANIFEST. Update Makefile.PL to the one in CPAN version. Java bindings: * GNUmakefile: add support for all hardening buildflags (#5998)