Skip to content
Commits on Source (19)
......@@ -120,7 +120,7 @@ GDAL_INCLUDE = -I$(GDAL_ROOT)/port -I$(GDAL_ROOT)/gcore \
# libtool targets and help variables
LIBGDAL := libgdal.la
LIBGDAL_CURRENT := 23
LIBGDAL_REVISION := 2
LIBGDAL_REVISION := 3
LIBGDAL_AGE := 3
# native build targets and variables
......
= GDAL/OGR 2.2.4 Release Notes =
The 2.2.4 release is a bug fix release.
== Build ==
* configure: add support for ECW SDK 5.4, by detecting if we must link against the newabi or oldabi link
== Port ==
* CPLSetErrorHandler(): avoid later crashes when passing a null callback (https://github.com/OSGeo/gdal/pull/298)
== GDAL utilities ==
* gdalinfo: make sure to display geodetic coordinates always in degree (and not potentially in another unit such as grad) (#4198)
* gdalinfo / VRT: fix crash with implicit overviews on per-dataset mask band (https://github.com/mapbox/rasterio/issues/1266#issuecomment-367233149)
* gdalwarp: fix when several input datasets with different SRS are specified, and no explicit target SRS is provided (#7170)
* gdal_rasterize: fix crash in some situations with ALL_TOUCHED option (#7176)
== GDAL algorithms ==
* Warping: use panSrcBands[0] in the single band case (regression fix, https://github.com/OSGeo/gdal/pull/295)
== GDAL drivers ==
AirSAR driver:
* fix computation of imaginary part in C23 case (#7222)
EHdr driver:
* fix read heap buffer overflow with nbits < 8. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6724. Credit to OSS Fuzz
GTiff driver:
* use consistently multiplication/division by 257 when converting between GDAL [0,255] range to TIFF [0,65535] range for color map values (#2213)
netCDF driver:
* behave correctly when an extra dimension of a variable has a corresponding 1D variable of different names (#7165)
NITF driver:
* fix swapped lines and samples in IMRFCA (https://github.com/OSGeo/gdal/pull/289)
PCRaster driver:
* fix fseek/ftell for large files on Windows (#7255)
RRASTER driver:
* fix wrong declaration of PIXELTYPE=SIGNEDBYTE for datatype=INT1S
* fix reading empty nodatavalue keyword
Sentinel2 driver:
* make sure that the True Color Image subdatset really uses the R,G,B bands and not the R,R,R (#7251)
VRT driver:
* VRTDerivedRasterBand: fix detection of Python runtime already loaded when more than 100 modules are linked. Fixes QGIS3 use case (#7213)
== OGR core ==
* Fixed memory leak in OGRPolygon::PointOnSurface method (https://github.com/OSGeo/gdal/pull/269)
* OGRCT: make sure to free the proj4 context after freeing the projection objects, to avoid crashes
== OGR utilities ==
* ogr2ogr: honour -select when using -addfiels; fix converting from Memory to Memory datasources (#7217)
== OGR drivers ==
Carto driver:
* fix append mode by retrieving the sequence name for the primary key (#7203)
* fix insertion with ogr2ogr -preserve_fid (#7216)
* fix missing features when iterating over a SQL result layer with pagination (#6880)
GeoJSON driver:
* fix writing of id with RFC7946=YES (#7194)
* Add support for json-c v0.13 (#7195)
GPKG driver:
* fix incorrect rtree_<t>_<c>_update3 trigger statement, as found in https://github.com/opengeospatial/geopackage/issues/414
LIBKML driver:
* workaround Windows specific issue with libkml (at least the version used by OSGeo4W at time of writing), where tabulations as coordinate separators aren't properly handled (#7231)
* workaround Windows specific issue if the content of <coordinates> is non-empty and does not contain any digit (#7232)
MITAB driver:
* fix crash on reading TAB views (#7171)
* add support for SWEREF99 datum (#7256)
NAS driver:
* also accept unqualified attribute name in wfs:Update
* fix memory leak and potential assertion. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2661. Credit to OSS Fuzz
NTF driver:
* fix regression introduced by fix for https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2166 causing some valid records to be skipped (#7204)
Shapefile driver:
* fix write heap buffer overflow when provided with empty string filename. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6992. Credit to OSS Fuzz
* fix potential read heap buffer overflow in single-point polygon in SHPRewindObject(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6993. Credit to OSS Fuzz
ODBC driver:
* deal with table names that require double quoting (#7242)
XLSX driver:
* fix updating multi layer document where existing layers where dropped (#7225)
* on writing, use %.16g formatting for floating point numbers (#7230)
== GNM ==
* avoid potential issue with CPL circular buffers (can happen if there are extra drivers that use CPLGet....() functions)
== SWIG bindings ==
* Fix potential null pointer dereference in Python/Perl Dataset.WriteRaster() and Perl Dataset.ReadRaster() when buffer type is not specified and there is a single band
* Python bindings: add addFields and forceNullable options to gdal.VectorTranslate() (#7217)
* Python bindings: fix build when CC variable is made of serveral words
= GDAL/OGR 2.2.3 Release Notes =
The 2.2.3 release is a bug fix release.
......@@ -113,8 +224,6 @@ GPKG driver:
GTM driver:
* fix null pointer dereference in case of read error (https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4047)
KML / LIBKML drivers:
MDB driver:
* fix multi-thread support (https://issues.qgis.org/issues/16039)
......
......@@ -49,7 +49,7 @@
#include "ogr_api.h"
#include "ogr_core.h"
CPL_CVSID("$Id: gdalwarpoperation.cpp 39828 2017-08-16 08:07:41Z rouault $");
CPL_CVSID("$Id: gdalwarpoperation.cpp 41328 2018-01-24 21:57:56Z rouault $");
struct _GDALWarpChunk {
int dx, dy, dsx, dsy;
......@@ -1776,7 +1776,7 @@ CPLErr GDALWarpOperation::WarpRegionToBuffer(
if( psOptions->nBandCount == 1 )
{
// Particular case to simplify the stack a bit.
eErr = poSrcDS->GetRasterBand(psOptions->panDstBands[0])->RasterIO(
eErr = poSrcDS->GetRasterBand(psOptions->panSrcBands[0])->RasterIO(
GF_Read,
nSrcXOff, nSrcYOff, nSrcXSize, nSrcYSize,
oWK.papabySrcImage[0], nSrcXSize, nSrcYSize,
......
......@@ -39,7 +39,7 @@
#include "gdal_alg.h"
CPL_CVSID("$Id: llrasterize.cpp 38818 2017-06-02 12:08:07Z rouault $");
CPL_CVSID("$Id: llrasterize.cpp 41013 2017-12-12 12:05:53Z rouault $");
static int llCompareInt(const void *a, const void *b)
{
......@@ -452,7 +452,7 @@ GDALdllImageLineAllTouched( int nRasterXSize, int nRasterYSize,
int iY = static_cast<int>(floor(dfY));
int iYEnd = (int) floor(dfYEnd);
if( iX >= nRasterXSize )
if( iX < 0 || iX >= nRasterXSize )
continue;
double dfDeltaVariant = 0.0;
......@@ -495,7 +495,7 @@ GDALdllImageLineAllTouched( int nRasterXSize, int nRasterYSize,
const int iY = static_cast<int>(floor(dfY));
int iXEnd = (int) floor(dfXEnd);
if( iY >= nRasterYSize )
if( iY < 0 || iY >= nRasterYSize )
continue;
// Clip to the borders of the target region.
......
......@@ -57,7 +57,7 @@
#include "cpl_error.h"
#include "cpl_vsi.h"
CPL_CVSID("$Id: thinplatespline.cpp 37119 2017-01-12 12:22:02Z rouault $");
CPL_CVSID("$Id: thinplatespline.cpp 41859 2018-03-17 23:39:06Z rouault $");
//////////////////////////////////////////////////////////////////////////////
//// vizGeorefSpline2D
......@@ -435,13 +435,13 @@ static void VizGeorefSpline2DBase_func4( double* res,
const double* xr, const double* yr )
{
double dist0 = SQ( xr[0] - pxy[0] ) + SQ( yr[0] - pxy[1] );
res[0] = dist0 ? dist0 * log(dist0) : 0.0;
res[0] = dist0 != 0.0 ? dist0 * log(dist0) : 0.0;
double dist1 = SQ( xr[1] - pxy[0] ) + SQ( yr[1] - pxy[1] );
res[1] = dist1 ? dist1 * log(dist1) : 0.0;
res[1] = dist1 != 0.0 ? dist1 * log(dist1) : 0.0;
double dist2 = SQ( xr[2] - pxy[0] ) + SQ( yr[2] - pxy[1] );
res[2] = dist2 ? dist2 * log(dist2) : 0.0;
res[2] = dist2 != 0.0 ? dist2 * log(dist2) : 0.0;
double dist3 = SQ( xr[3] - pxy[0] ) + SQ( yr[3] - pxy[1] );
res[3] = dist3 ? dist3 * log(dist3) : 0.0;
res[3] = dist3 != 0.0 ? dist3 * log(dist3) : 0.0;
}
#endif // defined(USE_OPTIMIZED_VizGeorefSpline2DBase_func4)
......
......@@ -55,12 +55,13 @@
#include "ogr_api.h"
#include "ogr_json_header.h"
#include "ogr_srs_api.h"
#include "ogr_spatialref.h"
#include "ogrgeojsonreader.h"
#include "ogrgeojsonwriter.h"
using std::vector;
CPL_CVSID("$Id: gdalinfo_lib.cpp 38115 2017-04-23 07:24:41Z rouault $");
CPL_CVSID("$Id: gdalinfo_lib.cpp 41753 2018-03-12 15:58:55Z rouault $");
/*! output format */
typedef enum {
......@@ -591,6 +592,20 @@ char *GDALInfo( GDALDatasetH hDataset, const GDALInfoOptions *psOptions )
else
{
hLatLong = OSRCloneGeogCS( hProj );
if( hLatLong )
{
// Drop GEOGCS|UNIT child to be sure to output as degrees
OGRSpatialReference* poLatLong = reinterpret_cast<
OGRSpatialReference*>(hLatLong);
OGR_SRSNode *poGEOGCS = poLatLong->GetRoot();
if( poGEOGCS )
{
const int iUnitChild =
poGEOGCS->FindChild("UNIT");
if( iUnitChild != -1 )
poGEOGCS->DestroyChild(iUnitChild);
}
}
}
}
......@@ -1181,7 +1196,9 @@ char *GDALInfo( GDALDatasetH hDataset, const GDALInfoOptions *psOptions )
iOverview < GDALGetOverviewCount(hMaskBand);
iOverview++ )
{
GDALRasterBandH hOverview;
GDALRasterBandH hOverview = GDALGetOverview( hMaskBand, iOverview );
if( !hOverview )
break;
json_object *poMaskOverview = NULL;
json_object *poMaskOverviewSize = NULL;
......@@ -1196,7 +1213,6 @@ char *GDALInfo( GDALDatasetH hDataset, const GDALInfoOptions *psOptions )
Concat(osStr, psOptions->bStdoutOutput, ", " );
}
hOverview = GDALGetOverview( hMaskBand, iOverview );
if(bJson)
{
json_object *poMaskOverviewSizeX =
......
......@@ -59,7 +59,7 @@
#include "ogr_srs_api.h"
#include "vrtdataset.h"
CPL_CVSID("$Id: gdalwarp_lib.cpp 40601 2017-11-01 10:47:26Z rouault $");
CPL_CVSID("$Id: gdalwarp_lib.cpp 40943 2017-12-04 13:20:48Z rouault $");
/************************************************************************/
/* GDALWarpAppOptions */
......@@ -2012,6 +2012,8 @@ GDALWarpCreateOutput( int nSrcCount, GDALDatasetH *pahSrcDS, const char *pszFile
osThisTargetSRS = pszThisTargetSRS;
}
CPLStringList aoTOList(papszTO, FALSE);
for( iSrc = 0; iSrc < nSrcCount; iSrc++ )
{
const char *pszThisSourceSRS = CSLFetchNameValue(papszTO,"SRC_SRS");
......@@ -2062,9 +2064,10 @@ GDALWarpCreateOutput( int nSrcCount, GDALDatasetH *pahSrcDS, const char *pszFile
}
/* -------------------------------------------------------------------- */
/* Get the sourcesrs from the dataset, if not set already. */
/* If we are processing the first file, get the source srs from */
/* dataset, if not set already. */
/* -------------------------------------------------------------------- */
if( pszThisSourceSRS == NULL )
if( iSrc == 0 && osThisTargetSRS.empty() )
{
const char *pszMethod = CSLFetchNameValue( papszTO, "METHOD" );
......@@ -2082,17 +2085,20 @@ GDALWarpCreateOutput( int nSrcCount, GDALDatasetH *pahSrcDS, const char *pszFile
pszThisSourceSRS = SRS_WKT_WGS84;
else
pszThisSourceSRS = "";
}
if( osThisTargetSRS.empty() )
if( pszThisSourceSRS != NULL && pszThisSourceSRS[0] != '\0' )
{
osThisTargetSRS = pszThisSourceSRS;
aoTOList.SetNameValue("DST_SRS", pszThisSourceSRS);
}
}
/* -------------------------------------------------------------------- */
/* Create a transformation object from the source to */
/* destination coordinate system. */
/* -------------------------------------------------------------------- */
hTransformArg =
GDALCreateGenImgProjTransformer2( pahSrcDS[iSrc], NULL, papszTO );
GDALCreateGenImgProjTransformer2( pahSrcDS[iSrc], NULL, aoTOList.List() );
if( hTransformArg == NULL )
{
......
......@@ -61,7 +61,7 @@
#include "ogrlayerdecorator.h"
#include "ogrsf_frmts.h"
CPL_CVSID("$Id: ogr2ogr_lib.cpp 39771 2017-08-07 19:33:50Z rouault $");
CPL_CVSID("$Id: ogr2ogr_lib.cpp 41373 2018-02-01 10:09:27Z rouault $");
typedef enum
{
......@@ -2057,6 +2057,7 @@ GDALDatasetH GDALVectorTranslate( const char *pszDest, GDALDatasetH hDstDS, int
/* Various tests to avoid overwriting the source layer(s) */
/* or to avoid appending a layer to itself */
if( bUpdate && strcmp(osDestFilename, poDS->GetDescription()) == 0 &&
!EQUAL(poDS->GetDriverName(), "Memory") &&
(bOverwrite || bAppend) )
{
bool bError = false;
......@@ -3865,8 +3866,30 @@ TargetLayerInfo* SetupTargetLayer::Setup(OGRLayer* poSrcLayer,
const char* pszFIDColumn = poDstLayer->GetFIDColumn();
std::vector<int> anSrcFieldIndices;
if( m_papszSelFields )
{
for( int iField=0; m_papszSelFields[iField] != NULL; iField++)
{
const int iSrcField =
poSrcFDefn->GetFieldIndex(m_papszSelFields[iField]);
if (iSrcField >= 0)
{
anSrcFieldIndices.push_back(iSrcField);
}
}
}
else
{
for( int iField = 0; iField < nSrcFieldCount; iField++ )
{
anSrcFieldIndices.push_back(iField);
}
}
for( size_t i = 0; i < anSrcFieldIndices.size(); i++ )
{
const int iField = anSrcFieldIndices[i];
OGRFieldDefn* poSrcFieldDefn = poSrcFDefn->GetFieldDefn(iField);
OGRFieldDefn oFieldDefn( poSrcFieldDefn );
......
......@@ -38,6 +38,7 @@ cd ..
cd ogr
python ogr_pgeo.py
mv ogr_pgeo.* disabled
mv ogr_mongodb.* disabled
cd ..
# Run all the Python autotests
GDAL_SKIP="JP2ECW ECW" python run_all.py
......@@ -51,6 +52,7 @@ cd ..
git checkout ogr/ogr_fgdb.py
git checkout ogr/ogr_pgeo.py
git checkout ogr/ogr_mongodb.py
if test `git diff | wc -l` != "0"; then
echo "Files have been modified duing testsuite run:"
git diff
......
......@@ -37,6 +37,7 @@ cd ..
cd ogr
python3 ogr_pgeo.py
mv ogr_pgeo.* disabled
mv ogr_mongodb.* disabled
cd ..
# Run all the Python autotests
GDAL_SKIP="JP2ECW ECW" python3 run_all.py
......
......@@ -25561,6 +25561,7 @@ FGDB_INC=$FGDB_INC
ECW_FLAGS=
ECW_LIBS=
ECW_INCLUDE=
ECW_54=
 
 
# Check whether --with-ecw was given.
......@@ -25715,14 +25716,55 @@ $as_echo "found libecwj2 in $with_ecw/lib." >&6; }
 
# ECW SDK 5.0 style and also for the case where license type is included in path i.e. specific license type is requested.
elif test -r $with_ecw/lib/$ECW_ARCH/$ECW_CONF/libNCSEcw.a ; then
# Test if we must use the newabi version (SDK 5.4)
if test -r $with_ecw/lib/newabi/$ECW_ARCH/$ECW_CONF/libNCSEcw.a; then
echo "#include <string>" > testnewabi.cpp
echo "namespace NCS { class CString { public: static std::wstring Utf8Decode (const std::string &sUtf8); }; }" >> testnewabi.cpp
echo "int main() { return static_cast<int>(NCS::CString::Utf8Decode(std::string()).size()); }" >> testnewabi.cpp
if test -z "`${CXX} ${CPPFLAGS} testnewabi.cpp -L$with_ecw/lib/newabi/$ECW_ARCH/$ECW_CONF -lNCSEcw -o testnewabi 2>&1`" ; then
ECW_LIBDIR=$with_ecw/lib/newabi/$ECW_ARCH/$ECW_CONF
ECW_LIBS="-L$ECW_LIBDIR -lNCSEcw $ECW_FRAMEWORK_COCOA"
with_ecw=$with_ecw/$ecw_license_type
ECW_54="yes"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: found Intergraph 5.4+ SDK with newabi in ${ECW_LIBDIR}." >&5
$as_echo "found Intergraph 5.4+ SDK with newabi in ${ECW_LIBDIR}." >&6; }
rm -f testnewabi.*
rm -f testnewabi
break
fi
rm -f testnewabi.*
rm -f testnewabi
fi
if test "$ECW_LIBS" = ""; then
ECW_LIBDIR=$with_ecw/lib/$ECW_ARCH/$ECW_CONF
ECW_LIBS="-L$ECW_LIBDIR -lNCSEcw $ECW_FRAMEWORK_COCOA"
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: found Intergraph 5.x+ SDK in ${ECW_LIBDIR}." >&5
$as_echo "found Intergraph 5.x+ SDK in ${ECW_LIBDIR}." >&6; }
fi
# ECWJP2 SDK 5.1 style
elif test -d $with_ecw; then
for ecw_license_type in "Desktop_Read-Write" "Server_Read-Only_EndUser" "Server_Read-Only" "Server_Read-Write" "Desktop_Read-Only"
do
# Test if we must use the newabi version (SDK 5.4)
if test -r $with_ecw/$ecw_license_type/lib/newabi/$ECW_ARCH/$ECW_CONF/libNCSEcw.a; then
echo "#include <string>" > testnewabi.cpp
echo "namespace NCS { class CString { public: static std::wstring Utf8Decode (const std::string &sUtf8); }; }" >> testnewabi.cpp
echo "int main() { return static_cast<int>(NCS::CString::Utf8Decode(std::string()).size()); }" >> testnewabi.cpp
if test -z "`${CXX} ${CPPFLAGS} testnewabi.cpp -L$with_ecw/$ecw_license_type/lib/newabi/$ECW_ARCH/$ECW_CONF -lNCSEcw -o testnewabi 2>&1`" ; then
ECW_LIBDIR=$with_ecw/$ecw_license_type/lib/newabi/$ECW_ARCH/$ECW_CONF
ECW_LIBS="-L$ECW_LIBDIR -lNCSEcw $ECW_FRAMEWORK_COCOA"
with_ecw=$with_ecw/$ecw_license_type
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: found Intergraph 5.4+ SDK with newabi in ${ECW_LIBDIR}." >&5
$as_echo "found Intergraph 5.4+ SDK with newabi in ${ECW_LIBDIR}." >&6; }
ECW_54="yes"
rm -f testnewabi.*
rm -f testnewabi
break
fi
rm -f testnewabi.*
rm -f testnewabi
fi
if test "$ECW_LIBS" = ""; then
ECW_LIBDIR=$with_ecw/$ecw_license_type/lib/$ECW_ARCH/$ECW_CONF
if test -r $ECW_LIBDIR/libNCSEcw.a; then
ECW_LIBS="-L$ECW_LIBDIR -lNCSEcw $ECW_FRAMEWORK_COCOA"
......@@ -25731,6 +25773,7 @@ $as_echo "found Intergraph 5.x+ SDK in ${ECW_LIBDIR}." >&6; }
$as_echo "found Intergraph 5.x+ SDK in ${ECW_LIBDIR}." >&6; }
break
fi
fi
done
else
as_fn_error $? "not found in $with_ecw." "$LINENO" 5
......@@ -36854,3 +36897,8 @@ if test "$PROJ_STATIC" = "no" -a "$FGDB_ENABLED" = "yes" -a "$FGDB_HAS_PROJ4" =
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --without-static-proj and --with-fgdb are both available. There might be some incompatibility between system libproj and the embedded copy within libFileGDBAPI" >&5
$as_echo "$as_me: WARNING: --without-static-proj and --with-fgdb are both available. There might be some incompatibility between system libproj and the embedded copy within libFileGDBAPI" >&2;}
fi
if test "$HAVE_TEIGHA" = "yes" -a "$ECW_54" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Both Teigha SDK and ECW SDK >= 5.4 found. This was found to cause crashes in ECW driver." >&5
$as_echo "$as_me: WARNING: Both Teigha SDK and ECW SDK >= 5.4 found. This was found to cause crashes in ECW driver." >&2;}
fi
dnl ***************************************************************************
dnl $Id: configure.ac 40330 2017-10-05 12:56:50Z rouault $
dnl $Id: configure.ac 41784 2018-03-13 20:20:56Z rouault $
dnl
dnl Project: GDAL
dnl Purpose: Configure source file.
......@@ -2682,6 +2682,7 @@ dnl ---------------------------------------------------------------------------
ECW_FLAGS=
ECW_LIBS=
ECW_INCLUDE=
ECW_54=
AC_ARG_WITH(ecw,[ --with-ecw[=ARG] Include ECW support (ARG=ECW SDK Path, yes or no)],,)
......@@ -2744,13 +2745,52 @@ else
# ECW SDK 5.0 style and also for the case where license type is included in path i.e. specific license type is requested.
elif test -r $with_ecw/lib/$ECW_ARCH/$ECW_CONF/libNCSEcw.a ; then
# Test if we must use the newabi version (SDK 5.4)
if test -r $with_ecw/lib/newabi/$ECW_ARCH/$ECW_CONF/libNCSEcw.a; then
echo "#include <string>" > testnewabi.cpp
echo "namespace NCS { class CString { public: static std::wstring Utf8Decode (const std::string &sUtf8); }; }" >> testnewabi.cpp
echo "int main() { return static_cast<int>(NCS::CString::Utf8Decode(std::string()).size()); }" >> testnewabi.cpp
if test -z "`${CXX} ${CPPFLAGS} testnewabi.cpp -L$with_ecw/lib/newabi/$ECW_ARCH/$ECW_CONF -lNCSEcw -o testnewabi 2>&1`" ; then
ECW_LIBDIR=$with_ecw/lib/newabi/$ECW_ARCH/$ECW_CONF
ECW_LIBS="-L$ECW_LIBDIR -lNCSEcw $ECW_FRAMEWORK_COCOA"
with_ecw=$with_ecw/$ecw_license_type
ECW_54="yes"
AC_MSG_RESULT([found Intergraph 5.4+ SDK with newabi in ${ECW_LIBDIR}.])
rm -f testnewabi.*
rm -f testnewabi
break
fi
rm -f testnewabi.*
rm -f testnewabi
fi
if test "$ECW_LIBS" = ""; then
ECW_LIBDIR=$with_ecw/lib/$ECW_ARCH/$ECW_CONF
ECW_LIBS="-L$ECW_LIBDIR -lNCSEcw $ECW_FRAMEWORK_COCOA"
AC_MSG_RESULT([found Intergraph 5.x+ SDK in ${ECW_LIBDIR}.])
fi
# ECWJP2 SDK 5.1 style
elif test -d $with_ecw; then
for ecw_license_type in "Desktop_Read-Write" "Server_Read-Only_EndUser" "Server_Read-Only" "Server_Read-Write" "Desktop_Read-Only"
do
# Test if we must use the newabi version (SDK 5.4)
if test -r $with_ecw/$ecw_license_type/lib/newabi/$ECW_ARCH/$ECW_CONF/libNCSEcw.a; then
echo "#include <string>" > testnewabi.cpp
echo "namespace NCS { class CString { public: static std::wstring Utf8Decode (const std::string &sUtf8); }; }" >> testnewabi.cpp
echo "int main() { return static_cast<int>(NCS::CString::Utf8Decode(std::string()).size()); }" >> testnewabi.cpp
if test -z "`${CXX} ${CPPFLAGS} testnewabi.cpp -L$with_ecw/$ecw_license_type/lib/newabi/$ECW_ARCH/$ECW_CONF -lNCSEcw -o testnewabi 2>&1`" ; then
ECW_LIBDIR=$with_ecw/$ecw_license_type/lib/newabi/$ECW_ARCH/$ECW_CONF
ECW_LIBS="-L$ECW_LIBDIR -lNCSEcw $ECW_FRAMEWORK_COCOA"
with_ecw=$with_ecw/$ecw_license_type
AC_MSG_RESULT([found Intergraph 5.4+ SDK with newabi in ${ECW_LIBDIR}.])
ECW_54="yes"
rm -f testnewabi.*
rm -f testnewabi
break
fi
rm -f testnewabi.*
rm -f testnewabi
fi
if test "$ECW_LIBS" = ""; then
ECW_LIBDIR=$with_ecw/$ecw_license_type/lib/$ECW_ARCH/$ECW_CONF
if test -r $ECW_LIBDIR/libNCSEcw.a; then
ECW_LIBS="-L$ECW_LIBDIR -lNCSEcw $ECW_FRAMEWORK_COCOA"
......@@ -2758,6 +2798,7 @@ else
AC_MSG_RESULT([found Intergraph 5.x+ SDK in ${ECW_LIBDIR}.])
break
fi
fi
done
else
AC_MSG_ERROR([not found in $with_ecw.])
......@@ -5576,3 +5617,7 @@ dnl FileGDB v1.5
if test "$PROJ_STATIC" = "no" -a "$FGDB_ENABLED" = "yes" -a "$FGDB_HAS_PROJ4" = "yes"; then
AC_MSG_WARN([--without-static-proj and --with-fgdb are both available. There might be some incompatibility between system libproj and the embedded copy within libFileGDBAPI])
fi
if test "$HAVE_TEIGHA" = "yes" -a "$ECW_54" = "yes"; then
AC_MSG_WARN([Both Teigha SDK and ECW SDK >= 5.4 found. This was found to cause crashes in ECW driver.])
fi
gdal (2.2.4+dfsg-1) unstable; urgency=medium
* New upstream release.
* Update watch file for final releases.
* Simplify overrides for vcs-deprecated-in-debian-infrastructure.
* Add python3-distutils to build dependencies.
* Move from experimental to unstable.
-- Bas Couwenberg <sebastic@debian.org> Wed, 21 Mar 2018 16:14:53 +0100
gdal (2.2.4~rc1+dfsg-1~exp1) experimental; urgency=medium
* New upstream release candidate.
* Update watch file for 2.2.4 (pre-)releases.
* Drop patches included upstream. Refresh remaining patches.
* Update C++ symbols files.
* Add lintian overrides for vcs-deprecated-in-debian-infrastructure.
-- Bas Couwenberg <sebastic@debian.org> Mon, 19 Mar 2018 15:35:59 +0100
gdal (2.2.3+dfsg-2) unstable; urgency=medium
* Update spelling-errors.patch to also fix 'Altitude' typo.
......
......@@ -54,6 +54,7 @@ Build-Depends: debhelper (>= 9.20160114),
python-numpy,
python3-all-dev,
python3-numpy,
python3-distutils,
swig,
unixodbc-dev (>= 2.2.11),
zlib1g-dev
......
......@@ -3839,5 +3839,5 @@ libgdal.so.20 libgdal20 #MINVER#
(c++)"vtable for OGRLayer@Base" 1.10.1 1
(c++)"vtable for OGRPoint@Base" 1.10.1 1
(c++)"vtable for VRTSource@Base" 1.11.0 1
(c++)"CPLErr VRTComplexSource::RasterIOInternal<double>(int, int, int, int, void*, int, int, GDALDataType, long long, long long, GDALRasterIOExtraArg*, GDALDataType)::bHasWarned@Base" 2.1.3 1
(c++)"CPLErr VRTComplexSource::RasterIOInternal<float>(int, int, int, int, void*, int, int, GDALDataType, long long, long long, GDALRasterIOExtraArg*, GDALDataType)::bHasWarned@Base" 2.1.3 1
(c++)"VRTComplexSource::RasterIOInternal<double>(int, int, int, int, void*, int, int, GDALDataType, long long, long long, GDALRasterIOExtraArg*, GDALDataType)::bHasWarned@Base" 2.2.3 1
(c++)"VRTComplexSource::RasterIOInternal<float>(int, int, int, int, void*, int, int, GDALDataType, long long, long long, GDALRasterIOExtraArg*, GDALDataType)::bHasWarned@Base" 2.2.3 1
......@@ -3169,6 +3169,7 @@ libgdal.so.20 libgdal20 #MINVER#
(c++)"std::vector<S57AttrInfo*, std::allocator<S57AttrInfo*> >::_M_default_append(unsigned int)@Base" 2.1.3 1
(c++)"void std::vector<OGRFieldDefn*, std::allocator<OGRFieldDefn*> >::emplace_back<OGRFieldDefn*>(OGRFieldDefn*&&)@Base" 2.1.3 1
(c++)"void std::vector<OGRFieldDefn*, std::allocator<OGRFieldDefn*> >::_M_realloc_insert<OGRFieldDefn* const&>(__gnu_cxx::__normal_iterator<OGRFieldDefn**, std::vector<OGRFieldDefn*, std::allocator<OGRFieldDefn*> > >, OGRFieldDefn* const&)@Base" 2.2.2 1
(c++)"void std::vector<OGRFieldDefn*, std::allocator<OGRFieldDefn*> >::_M_realloc_insert<OGRFieldDefn*>(__gnu_cxx::__normal_iterator<OGRFieldDefn**, std::vector<OGRFieldDefn*, std::allocator<OGRFieldDefn*> > >, OGRFieldDefn*&&)@Base" 2.2.3 1
(c++)"void std::vector<OGRDataSource*, std::allocator<OGRDataSource*> >::_M_realloc_insert<OGRDataSource* const&>(__gnu_cxx::__normal_iterator<OGRDataSource**, std::vector<OGRDataSource*, std::allocator<OGRDataSource*> > >, OGRDataSource* const&)@Base" 2.2.2 1
(c++)"void std::vector<OGRLinearRing*, std::allocator<OGRLinearRing*> >::_M_realloc_insert<OGRLinearRing* const&>(__gnu_cxx::__normal_iterator<OGRLinearRing**, std::vector<OGRLinearRing*, std::allocator<OGRLinearRing*> > >, OGRLinearRing* const&)@Base" 2.2.2 1
(c++)"void std::vector<OGRLinearRing*, std::allocator<OGRLinearRing*> >::_M_realloc_insert<OGRLinearRing*>(__gnu_cxx::__normal_iterator<OGRLinearRing**, std::vector<OGRLinearRing*, std::allocator<OGRLinearRing*> > >, OGRLinearRing*&&)@Base" 2.2.2 1
......@@ -3183,6 +3184,7 @@ libgdal.so.20 libgdal20 #MINVER#
(c++)"void std::vector<OGRSpatialReference*, std::allocator<OGRSpatialReference*> >::_M_realloc_insert<OGRSpatialReference*>(__gnu_cxx::__normal_iterator<OGRSpatialReference**, std::vector<OGRSpatialReference*, std::allocator<OGRSpatialReference*> > >, OGRSpatialReference*&&)@Base" 2.2.2 1
(c++)"void std::vector<GMLGeometryPropertyDefn*, std::allocator<GMLGeometryPropertyDefn*> >::_M_realloc_insert<GMLGeometryPropertyDefn* const&>(__gnu_cxx::__normal_iterator<GMLGeometryPropertyDefn**, std::vector<GMLGeometryPropertyDefn*, std::allocator<GMLGeometryPropertyDefn*> > >, GMLGeometryPropertyDefn* const&)@Base" 2.2.2 1
(c++)"void std::vector<OGRCoordinateTransformation*, std::allocator<OGRCoordinateTransformation*> >::_M_realloc_insert<OGRCoordinateTransformation* const&>(__gnu_cxx::__normal_iterator<OGRCoordinateTransformation**, std::vector<OGRCoordinateTransformation*, std::allocator<OGRCoordinateTransformation*> > >, OGRCoordinateTransformation* const&)@Base" 2.2.2 1
(c++)"void std::vector<OGRCoordinateTransformation*, std::allocator<OGRCoordinateTransformation*> >::_M_realloc_insert<OGRCoordinateTransformation*>(__gnu_cxx::__normal_iterator<OGRCoordinateTransformation**, std::vector<OGRCoordinateTransformation*, std::allocator<OGRCoordinateTransformation*> > >, OGRCoordinateTransformation*&&)@Base" 2.2.3 1
(c++)"void std::vector<OGRCurve*, std::allocator<OGRCurve*> >::_M_realloc_insert<OGRCurve* const&>(__gnu_cxx::__normal_iterator<OGRCurve**, std::vector<OGRCurve*, std::allocator<OGRCurve*> > >, OGRCurve* const&)@Base" 2.2.2 1
(c++)"std::vector<OGRCurve*, std::allocator<OGRCurve*> >::_M_erase(__gnu_cxx::__normal_iterator<OGRCurve**, std::vector<OGRCurve*, std::allocator<OGRCurve*> > >)@Base" 2.1.3 1
(c++)"void std::vector<OGRLayer*, std::allocator<OGRLayer*> >::emplace_back<OGRLayer*>(OGRLayer*&&)@Base" 2.1.3 1
......@@ -3263,7 +3265,7 @@ libgdal.so.20 libgdal20 #MINVER#
(c++)"std::vector<double, std::allocator<double> >::operator=(std::vector<double, std::allocator<double> > const&)@Base" 2.1.3 1
(c++)"void std::vector<unsigned char, std::allocator<unsigned char> >::emplace_back<unsigned char>(unsigned char&&)@Base" 2.2.0 1
(c++)"std::vector<unsigned char, std::allocator<unsigned char> >::_M_default_append(unsigned int)@Base" 2.1.3 1
(c++)"void std::vector<unsigned char, std::allocator<unsigned char> >::_M_realloc_insert<unsigned char const&>(__gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator<unsigned char> > >, unsigned char const&)@Base" 2.2.2 1
(c++)"std::vector<unsigned char, std::allocator<unsigned char> >::operator=(std::vector<unsigned char, std::allocator<unsigned char> > const&)@Base" 2.2.3 1
(c++)"void std::vector<int, std::allocator<int> >::emplace_back<int>(int&&)@Base" 2.1.3 1
(c++)"std::vector<int, std::allocator<int> >::_M_fill_insert(__gnu_cxx::__normal_iterator<int*, std::vector<int, std::allocator<int> > >, unsigned int, int const&)@Base" 2.1.3 1
(c++)"std::vector<int, std::allocator<int> >::_M_default_append(unsigned int)@Base" 2.1.3 1
......@@ -3909,5 +3911,5 @@ libgdal.so.20 libgdal20 #MINVER#
(c++)"vtable for OGRLayer@Base" 2.1.3 1
(c++)"vtable for OGRPoint@Base" 2.1.3 1
(c++)"vtable for VRTSource@Base" 2.1.3 1
(c++)"CPLErr VRTComplexSource::RasterIOInternal<double>(int, int, int, int, void*, int, int, GDALDataType, long long, long long, GDALRasterIOExtraArg*, GDALDataType)::bHasWarned@Base" 2.1.3 1
(c++)"CPLErr VRTComplexSource::RasterIOInternal<float>(int, int, int, int, void*, int, int, GDALDataType, long long, long long, GDALRasterIOExtraArg*, GDALDataType)::bHasWarned@Base" 2.1.3 1
(c++)"VRTComplexSource::RasterIOInternal<double>(int, int, int, int, void*, int, int, GDALDataType, long long, long long, GDALRasterIOExtraArg*, GDALDataType)::bHasWarned@Base" 2.2.3 1
(c++)"VRTComplexSource::RasterIOInternal<float>(int, int, int, int, void*, int, int, GDALDataType, long long, long long, GDALRasterIOExtraArg*, GDALDataType)::bHasWarned@Base" 2.2.3 1
......@@ -2,9 +2,10 @@ Description: Fix generation of classes documentation in Perl bindings doxygen st
Author: Francesco Paolo Lovergine <frankie@debian.org>
Last-Update: 2018-01-02
Forwarded: https://github.com/ajolma/Geo-GDAL-2.02/pull/1
Applied-Upstream: https://github.com/ajolma/Geo-GDAL-2.02/commit/cf17a59dc1f6f14ef42047051d8efd10ffe266cc
--- gdal.orig/swig/perl/Doxyfile
+++ gdal/swig/perl/Doxyfile
--- a/swig/perl/Doxyfile
+++ b/swig/perl/Doxyfile
@@ -280,7 +280,7 @@ OPTIMIZE_OUTPUT_VHDL = NO
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
# the files are not read by doxygen.
......
......@@ -10,5 +10,4 @@ perl-vendor
privacy-breach-logo.patch
privacy-breach-generic.patch
perl-doxyfile
svn-r41303_gnm-avoid-potential-issue-with-CPL-circular-buffers.patch
spelling-errors.patch
......@@ -5,7 +5,7 @@ Forwarded: not-needed
--- a/configure
+++ b/configure
@@ -28977,7 +28977,7 @@ if ${ac_cv_lib_spatialite_spatialite_ini
@@ -29020,7 +29020,7 @@ if ${ac_cv_lib_spatialite_spatialite_ini
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
......@@ -14,7 +14,7 @@ Forwarded: not-needed
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -29041,7 +29041,7 @@ if ${ac_cv_lib_spatialite_spatialite_ini
@@ -29084,7 +29084,7 @@ if ${ac_cv_lib_spatialite_spatialite_ini
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
......@@ -23,7 +23,7 @@ Forwarded: not-needed
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -29431,7 +29431,7 @@ if ${ac_cv_lib_spatialite_spatialite_tar
@@ -29474,7 +29474,7 @@ if ${ac_cv_lib_spatialite_spatialite_tar
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
......