| 1 | = GDAL/OGR 2.0.2 Release Notes = |
| 2 | |
| 3 | The 2.0.2 release is a bug fix release. |
| 4 | |
| 5 | == Build(Windows) == |
| 6 | * Fix linking error with MSVC_VER=1900 (VS 2015) (#6255) |
| 7 | |
| 8 | == Build(Unix) == |
| 9 | * 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) |
| 10 | * gdalserver.c: Add include of signal.h for SIGPIPE and signal() (#6193) |
| 11 | |
| 12 | == Port == |
| 13 | * CPLGetValueType(): improve heuristics to avoid detecting some WKB strings as real numbers (#6128) |
| 14 | * Fix CPLGetValueType() to recognize D1 as a string and not a real number (#6305) |
| 15 | * /vsistdout/: flush when closing the handle (#6149) |
| 16 | * CPLFormFilename(): use '/' directory separator on Windows on /vsicurl_streaming/ files (#6310) |
| 17 | |
| 18 | == GDAL Core == |
| 19 | * Fix memory leaks if GDALAllRegister is not called (#6139) |
| 20 | * Make private member of GDALDataset really opaque so as to be able to extend it without breaking the C++ ABI (#6163) |
| 21 | * Avoid deadlock when writing 2 datasets in 2 threads (#6163) |
| 22 | * Block cache: fix excessive memory consumption when dealing with datasets with different block sizes (#6226) |
| 23 | * Fix leak in GetMetadataItem() on GDALProxyPoolDataset (#6238) |
| 24 | * MDReader: do no attempt reading side-car files on /vsisubfile/ (#6241) |
| 25 | * Fix potential buffer overflow in PamHistogramToXMLTree() (#6266) |
| 26 | |
| 27 | == GDAL Algorithms == |
| 28 | * Warp: avoid really excessive processing time for some warping with target areas completely off the source raster (especially when involving RPC) (#6182) |
| 29 | |
| 30 | == Utilities == |
| 31 | * ogr2ogr: prevent from the gt setting to override transaction group size of 1 set by skipfailures earlier (#2409) |
| 32 | * gdalmove.py: fix to run with GDAL 2.0 gdal.InvGeoTransform() signature (#6173) |
| 33 | * gdaladdo: emit error message if passed an invalid dataset name (#6240) |
| 34 | * gdalwarp: fix -srcnodata to not put garbage values as target dstnodata (#6315) |
| 35 | |
| 36 | == GDAL drivers == |
| 37 | |
| 38 | BSB driver: |
| 39 | * remove broken and useless logic to deal with extension lines in headers (#6307) |
| 40 | |
| 41 | ECRG driver: |
| 42 | * fix base34 decoding and Windows filename handling (#6271) |
| 43 | |
| 44 | GTiff driver: |
| 45 | * [2.0 regression] fix problem with implicit overviews of JPEG-compressed files (#6308) |
| 46 | * fix potential memleak in GTiffDataset::GetJPEGOverviewCount() (#6318) |
| 47 | * call XTIFFInitialize() in LibgeotiffOneTimeInit() as the former isn't thread-safe, so better call it from the later which is thread-safe (#6163) |
| 48 | * fix writing other angular units than degree (namely arc-second, arc-minute, grad, gon and radian) (#6171) |
| 49 | * fix reading angular unit value for angular units than degree (#6171) |
| 50 | * do not use VirtualMemIO optimization on compressed /vsimem/ files (#6195) |
| 51 | * fix DirectIO() mode with complex types and inverted endianness (#6198) |
| 52 | * correctly set GTRasterTypeGeoKey=RasterPixelIsPoint if AREA_OR_POINT=Point but there is no SRS set (#6225) |
| 53 | * do not read large 'one row' JBIG compressed files with the scanline API (#6264) |
| 54 | * fix SetMetadata() to properly clear existing PAM metadata (complement to #5807) |
| 55 | * prevent potential out of bounds read to TIFFTAG_EXTRASAMPLES (#6282) |
| 56 | * do not use first directory as potential mask, to avoid assertion in GTiffDataset::SetDirectory() (#6287) |
| 57 | * reject files with strips/tiles/scanlines bigger than 2 GB to avoid 32 bit integer overflow. |
| 58 | 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) |
| 59 | |
| 60 | GPKG driver: |
| 61 | * 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) |
| 62 | |
| 63 | HFA driver: |
| 64 | * fix crash when nNumRuns = 0 with RLE compression (#6208) |
| 65 | * avoid potential out-of-bounds buffer write (#6286) |
| 66 | |
| 67 | KMLSuperoverlay driver: |
| 68 | * [2.0 regression] fix errors happening with some RasterIO() requests involving resampling (#6311) |
| 69 | |
| 70 | netCDF driver: |
| 71 | * fix one byte heap write overflow in NCDFTokenizeArray() (#6231) |
| 72 | * fix potential buffer overflows with uses of nc_inq_varname(), nc_inq_attname() and nc_get_att_text() (#6227) |
| 73 | * validate that gridmapping:GeoTransform has 6 values (#6244) |
| 74 | * NCDFIsGDALVersionGTE(): validate content of NC_GLOBAL#GDAL variable (#6245) |
| 75 | |
| 76 | NITF driver: |
| 77 | * 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) |
| 78 | |
| 79 | PDF driver: |
| 80 | * correctly take into account non-meter linear units with OGC BP encoding, and add support for US FOOT (#6292) |
| 81 | |
| 82 | PDS driver: |
| 83 | * change default values of PDS_SampleProjOffset_Shift and PDS_LineProjOffset_Shift to 0.5 (#5941) |
| 84 | |
| 85 | USGSDEM driver: |
| 86 | * fix CreateCopy() with VS 2015 (#6257) |
| 87 | |
| 88 | VICAR driver: |
| 89 | * change PDS_SampleProjOffset_Shift and PDS_LineProjOffset_Shift default values to 0.5 (#5941) |
| 90 | * VICARKeywordHandler::Ingest(): fix potential buffer overflows (#6256) |
| 91 | * be robust to truncated files (#6321) |
| 92 | |
| 93 | VRT driver: |
| 94 | * serialize NODATA and NoDataValue items with %.16g, e.g. so as to be able to hold large int32 nodata values (#6151) |
| 95 | * VRT raw: don't truncate last figure of ImageOffset if there are left space padding (#6290) |
| 96 | |
| 97 | WMS driver: |
| 98 | * limit number of zoom levels for ArcGIS MapServer JSon (#6186) |
| 99 | |
| 100 | XPM driver: |
| 101 | * fix vulnerabilities in reading (#6253) |
| 102 | |
| 103 | == OGR core == |
| 104 | * OGRSQL: correctly sort NULL values in first positions (#6155) |
| 105 | * OGRLayer::SetIgnoredFields(): properly reset state of non first geometry fields (#6283) |
| 106 | * Make OGRLayer::SetSpatialFilter(GetSpatialFilter()) work with non empty spatial filter (#6284) |
| 107 | * OGRLayer::Erase(): do not discard input geometries that have no intersection with method layer (#6322) |
| 108 | * OGRFeature::SetGeometry()/SetGeometryDirectly(): make it work when passed geometry is the currently installed geometry (#6312) |
| 109 | |
| 110 | == OGRSpatialReference == |
| 111 | * morphFromESRI(): map Mercator_Auxiliary_Sphere to EPSG:3857 (#5924) |
| 112 | * morphFromESRI(): special case with PROJCS name 'WGS_84_Pseudo_Mercator' (#6134) |
| 113 | * OSR C API: fix declarations of OSRSetAxes() and OSRSetWagner(), and add missing OSRSetHOMAC(), OSRSetMercator2SP() and OSRSetTPED() (#6183) |
| 114 | |
| 115 | == OGR drivers == |
| 116 | |
| 117 | CSV driver: |
| 118 | * Make OGRCSVLayer::CreateGeomField() returns OGRERR_NONE in case of success instead of OGRERR_FAILURE (#6280) |
| 119 | |
| 120 | GeoJSON driver: |
| 121 | * [2.0 regression] fix crash on null / non-json object features (#6166) |
| 122 | * make sure there's enough space to write the FeatureCollection bbox (#6262) |
| 123 | |
| 124 | GML driver: |
| 125 | * serialize in .gfs file the name of the geometry element when it is 'geometry' since this is a particular case (#6247) |
| 126 | * fix logic error in BuildJointClassFromScannedSchema() (#6302) |
| 127 | * VFR: fix broken processing VFR ST_UVOH files (#6248) |
| 128 | * VFR: fix reading ZpusobOchrany attributes (#6258) |
| 129 | |
| 130 | GPX driver: |
| 131 | * [2.0 regression] fix crash when parsing a 'time' extension element at route/track level (#6237) |
| 132 | |
| 133 | ILI driver: |
| 134 | * Support for Surface polygon rings spread over multiple geometry records (#5099) |
| 135 | |
| 136 | MITAB driver: |
| 137 | * add support for block sizes other than 512 bytes in .map files, for MapInfo 15.2 compatibility (#6298) |
| 138 | * read MID files with TAB delimiter and empty first field (#5405) |
| 139 | * use projection code 29 when exporting non-Polar Lambert Azimuthal Equal Area (#5220) |
| 140 | * fix segfault when parsing a Region 0 (#6273) |
| 141 | * TABPolyline::ReadGeometryFromMIFFile(): fix segfaults on invalid geometries (#6273) |
| 142 | * TABRectangle::ReadGeometryFromMIFFile(): fix crash on malformed ROUNDRECT (#6273) |
| 143 | |
| 144 | MSSQLSpatial driver: |
| 145 | * do not treat a primary key that is not of integer type as the FID (#6235) |
| 146 | |
| 147 | NTF driver: |
| 148 | * fix potential buffer overflows when reading too short lines (#6277) |
| 149 | |
| 150 | OpenFileGDB driver: |
| 151 | * fix min/max on columns without indices (#6150) |
| 152 | |
| 153 | PG driver: |
| 154 | * fix memleak in ExecuteSQL() (#6179) |
| 155 | * avoid reseting error potentially emitted by ExecuteSQL() (#6194) |
| 156 | |
| 157 | PGDump driver: |
| 158 | * 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) |
| 159 | |
| 160 | Shape driver: |
| 161 | * fix REPACK crash on shapefile without .dbf (#6274) |
| 162 | * fix crash on MultiLineStringM shapes that have no M component (#6317) |
| 163 | |
| 164 | VRT driver: |
| 165 | * fix editing with 'direct' geometry mode which could cause attribute column to be empty (#6289) |
| 166 | |
| 167 | == SWIG Language Bindings == |
| 168 | |
| 169 | Perl bindings: |
| 170 | * Fix incorrect signature in "shadow" feature of Geo::OGR::Feature new (#6181) |
| 171 | * Add missing osr.t to MANIFEST. Update Makefile.PL to the one in CPAN version. |
| 172 | |
| 173 | Java bindings: |
| 174 | * GNUmakefile: add support for all hardening buildflags (#5998) |