Skip to content
Commits on Source (43)
......@@ -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.3+dfsg-1~exp2) UNRELEASED; urgency=medium
gdal (2.2.4~rc1+dfsg-1~exp1) experimental; urgency=medium
* Update symbols for alpha & m68k.
* 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.
Thanks to pabs for spotting this one.
* Update C++ symbols files.
* Move from experimental to unstable.
-- Bas Couwenberg <sebastic@debian.org> Tue, 06 Feb 2018 07:39:14 +0100
gdal (2.2.3+dfsg-2~exp1) experimental; urgency=medium
[ Francesco Paolo Lovergine ]
* Added a couple of missing build-dep to correctly generate Perl binding
documentation.
* New patch perl-doxygen added to get the full classes documentation in
Perl binding, due to current doxygen implementation.
* The doxygen jquery is currently a fork of jquery in minified form, and it
is not compatible with the modern one. Replacement with the libjsquery
provided now removed.
* autotools_dev plugin is deprecated since debhelper >= 9.20160114 and now
no more supported.
[ Bas Couwenberg ]
* Strip trailing whitespace form changelog and patch header.
* Reorder build dependencies (sorted by name).
* Remove jquery symlinks and dependencies.
* Update copyright-format URL to use HTTPS.
* Add upstream patch to avoid potential issue with CPL circular buffers.
* Bump Standards-Version to 4.1.3, no changes.
* Update symbols for powerpcspe.
* Move libgdal-perl documentation to separate arch:all package.
* Add lintian override for pkg-config-unavailable-for-cross-compilation.
* Add patch to fix spelling errors.
-- Bas Couwenberg <sebastic@debian.org> Mon, 29 Jan 2018 22:45:49 +0100
gdal (2.2.3+dfsg-1) unstable; urgency=medium
* Update symbols for alpha, hurd-i386 & m68k.
* Bump Standards-Version to 4.1.2, no changes.
* Move from experimental to unstable.
-- Bas Couwenberg <sebastic@debian.org> Sat, 25 Nov 2017 17:54:47 +0100
-- Bas Couwenberg <sebastic@debian.org> Sun, 17 Dec 2017 11:21:25 +0100
gdal (2.2.3+dfsg-1~exp1) experimental; urgency=medium
......
......@@ -4,7 +4,7 @@ Uploaders: Francesco Paolo Lovergine <frankie@debian.org>,
Bas Couwenberg <sebastic@debian.org>
Section: science
Priority: optional
Build-Depends: debhelper (>= 9),
Build-Depends: debhelper (>= 9.20160114),
dh-autoreconf,
dh-python,
d-shlibs,
......@@ -12,11 +12,11 @@ Build-Depends: debhelper (>= 9),
doxygen,
graphviz,
ant,
autotools-dev,
chrpath,
libarmadillo-dev,
libcurl4-gnutls-dev | libcurl-ssl-dev,
libdap-dev,
libdoxygen-filter-perl,
libepsilon-dev (>= 0.9.1-1~),
libexpat1-dev,
libfreexl-dev (>= 1.0.0),
......@@ -30,6 +30,7 @@ Build-Depends: debhelper (>= 9),
libjson-c-dev,
libkml-dev (>= 1.3.0~rc0-3),
liblzma-dev,
libmodern-perl-perl,
default-libmysqlclient-dev,
libnetcdf-dev (>= 1:4.0.0),
libogdi3.2-dev,
......@@ -58,7 +59,7 @@ Build-Depends: debhelper (>= 9),
zlib1g-dev
Build-Conflicts: automake1.11,
python-setuptools
Standards-Version: 4.1.1
Standards-Version: 4.1.3
Vcs-Browser: https://anonscm.debian.org/cgit/pkg-grass/gdal.git
Vcs-Git: https://anonscm.debian.org/git/pkg-grass/gdal.git -b experimental
Homepage: http://www.gdal.org/
......@@ -158,8 +159,7 @@ Package: libgdal-doc
Architecture: all
Multi-Arch: foreign
Section: doc
Depends: libjs-jquery,
${misc:Depends}
Depends: ${misc:Depends}
Suggests: libgdal20
Description: Documentation for the Geospatial Data Abstraction Library
GDAL is a translator library for raster geospatial data formats.
......@@ -289,10 +289,10 @@ Description: Python 3 bindings to the Geospatial Data Abstraction Library
Package: libgdal-perl
Architecture: any
Section: perl
Depends: libjs-jquery,
${perl:Depends},
Depends: ${perl:Depends},
${shlibs:Depends},
${misc:Depends}
Suggests: libgdal-perl-doc
Description: Perl bindings to the Geospatial Data Abstraction Library
GDAL is a translator library for raster geospatial data formats.
As a library, it presents a single abstract data model to the
......@@ -312,6 +312,31 @@ Description: Perl bindings to the Geospatial Data Abstraction Library
.
This package contains Perl bindings for GDAL/OGR library.
Package: libgdal-perl-doc
Architecture: all
Depends: ${misc:Depends}
Breaks: libgdal-perl (<< 2.2.3+dfsg-2~exp1)
Replaces: libgdal-perl (<< 2.2.3+dfsg-2~exp1)
Section: doc
Description: Documentation for GDAL Perl bindings
As a library, it presents a single abstract data model to the
calling application for all supported formats. The related OGR
library (which lives within the GDAL source tree) provides
a similar capability for simple features vector data.
.
GDAL supports 40+ popular data formats, including commonly used
ones (GeoTIFF, JPEG, PNG and more) as well as the ones used in
GIS and remote sensing software packages (ERDAS Imagine,
ESRI Arc/Info, ENVI, PCI Geomatics). Also supported many remote
sensing and scientific data distribution formats such as HDF,
EOS FAST, NOAA L1B, NetCDF, FITS.
.
OGR library supports popular vector formats like ESRI Shapefile,
TIGER data, S57, MapInfo File, DGN, GML and more.
.
This package contains the documentation of the Perl bindings for
GDAL/OGR library.
Package: libgdal-java
Architecture: any
Section: java
......
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: GDAL/OGR
Upstream-Contact: The GDAL/OGR project team, Frank Warmerdam <warmerdam@pobox.com>
Source: http://www.gdal.org/
......
......@@ -4,3 +4,6 @@ libgdal-dev: hyphen-used-as-minus-sign
# False positive on: "(319) 369-3131"
libgdal-dev: copyright-year-in-future 3131 *
# GDAL doesn't use Multi-Arch, it breaks too many rdeps
libgdal-dev: pkg-config-unavailable-for-cross-compilation usr/lib/pkgconfig/gdal.pc
usr/share/javascript/jquery/jquery.js usr/share/doc/libgdal-doc/gdal/jquery.js
......@@ -4,5 +4,5 @@ Abstract: This manual describes the GDAL Perl API.
Section: Science/Geoscience
Format: HTML
Index: /usr/share/doc/libgdal-perl/html/index.html
Files: /usr/share/doc/libgdal-perl/html/*.html
Index: /usr/share/doc/libgdal-perl-doc/html/index.html
Files: /usr/share/doc/libgdal-perl-doc/html/*.html