diff --git a/community/gdal/PKGBUILD b/community/gdal/PKGBUILD index f05f1348d..5a4ace6c2 100644 --- a/community/gdal/PKGBUILD +++ b/community/gdal/PKGBUILD @@ -8,7 +8,7 @@ pkgname=gdal pkgver=2.2.3 -pkgrel=1 +pkgrel=2 pkgdesc="A translator library for raster geospatial data formats" arch=('x86_64') url="http://www.gdal.org/" @@ -22,9 +22,11 @@ optdepends=('postgresql: postgresql database support' options=('!emptydirs') changelog=$pkgname.changelog source=(http://download.osgeo.org/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.xz - gdal-perl-vendor.patch) + gdal-perl-vendor.patch + gdal-2.2.3_json-c_013.patch) sha256sums=('a328d63d476b3653f5a25b5f7971e87a15cdf8860ab0729d4b1157ba988b8d0b' - '20989e5fa499206b42c92280ce084fdf7b2f661a4233fc349611cc57102fe114') + '20989e5fa499206b42c92280ce084fdf7b2f661a4233fc349611cc57102fe114' + '722f6b3394542635815b07702f88a312a0d32fcf7672abf780360b888fbab4af') prepare() { cd "${srcdir}"/$pkgname-$pkgver @@ -40,6 +42,9 @@ prepare() { # Fix Perl bindings installation path patch -Np1 -i ../gdal-perl-vendor.patch + +# build fix + patch -Np1 -i ../gdal-2.2.3_json-c_013.patch } build() { diff --git a/community/gdal/gdal-2.2.3_json-c_013.patch b/community/gdal/gdal-2.2.3_json-c_013.patch new file mode 100644 index 000000000..95e524053 --- /dev/null +++ b/community/gdal/gdal-2.2.3_json-c_013.patch @@ -0,0 +1,132 @@ +commit 7cab3c2049907fb0be76784c796143fb22dcafea +Author: Bjรถrn Esser +Date: Mon Dec 11 17:01:20 2017 +0100 + + geojson: Adaptions for json-c v0.13 + +Index: gdal-2.2.3-fedora/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp +=================================================================== +--- gdal-2.2.3-fedora.orig/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp ++++ gdal-2.2.3-fedora/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp +@@ -27,12 +27,18 @@ + * DEALINGS IN THE SOFTWARE. + ****************************************************************************/ + ++#define JSON_C_VER_013 (13 << 8) ++ + #include "ogrgeojsonwriter.h" + #include "ogrgeojsonutils.h" + #include "ogr_geojson.h" + #include "ogrgeojsonreader.h" + #include // JSON-C ++ ++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) + #include ++#endif ++ + #include + #include + #include +@@ -1381,13 +1387,26 @@ static int OGR_json_double_with_precisio + { + // TODO(schwehr): Explain this casting. + const int nPrecision = ++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) + static_cast(reinterpret_cast(jso->_userdata)); ++#else ++ static_cast(reinterpret_cast(json_object_get_userdata(jso))); ++#endif + char szBuffer[75] = {}; ++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) + OGRFormatDouble( szBuffer, sizeof(szBuffer), jso->o.c_double, '.', + (nPrecision < 0) ? 15 : nPrecision ); ++#else ++ OGRFormatDouble( szBuffer, sizeof(szBuffer), json_object_get_double(jso), '.', ++ (nPrecision < 0) ? 15 : nPrecision ); ++#endif + if( szBuffer[0] == 't' /*oobig */ ) + { ++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) + CPLsnprintf(szBuffer, sizeof(szBuffer), "%.18g", jso->o.c_double); ++#else ++ CPLsnprintf(szBuffer, sizeof(szBuffer), "%.18g", json_object_get_double(jso)); ++#endif + } + return printbuf_memappend(pb, szBuffer, static_cast(strlen(szBuffer))); + } +@@ -1417,11 +1436,23 @@ OGR_json_double_with_significant_figures + { + char szBuffer[75] = {}; + int nSize = 0; ++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) + if( CPLIsNan(jso->o.c_double)) ++#else ++ if( CPLIsNan(json_object_get_double(jso))) ++#endif + nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), "NaN"); ++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) + else if( CPLIsInf(jso->o.c_double) ) ++#else ++ else if( CPLIsInf(json_object_get_double(jso)) ) ++#endif + { ++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) + if( jso->o.c_double > 0 ) ++#else ++ if( json_object_get_double(jso) > 0 ) ++#endif + nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), "Infinity"); + else + nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), "-Infinity"); +@@ -1429,13 +1460,22 @@ OGR_json_double_with_significant_figures + else + { + char szFormatting[32] = {}; ++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) + const int nSignificantFigures = (int) (GUIntptr_t) jso->_userdata; ++#else ++ const int nSignificantFigures = (int) (GUIntptr_t) json_object_get_userdata(jso); ++#endif + const int nInitialSignificantFigures = + nSignificantFigures >= 0 ? nSignificantFigures : 17; + CPLsnprintf(szFormatting, sizeof(szFormatting), + "%%.%dg", nInitialSignificantFigures); ++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) + nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), + szFormatting, jso->o.c_double); ++#else ++ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), ++ szFormatting, json_object_get_double(jso)); ++#endif + const char* pszDot = NULL; + if( nSize+2 < static_cast(sizeof(szBuffer)) && + (pszDot = strchr(szBuffer, '.')) == NULL ) +@@ -1456,8 +1496,13 @@ OGR_json_double_with_significant_figures + { + CPLsnprintf(szFormatting, sizeof(szFormatting), + "%%.%dg", nInitialSignificantFigures- i); ++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) + nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), + szFormatting, jso->o.c_double); ++#else ++ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), ++ szFormatting, json_object_get_double(jso)); ++#endif + pszDot = strchr(szBuffer, '.'); + if( pszDot != NULL && + strstr(pszDot, "999999") == NULL && +@@ -1471,8 +1516,13 @@ OGR_json_double_with_significant_figures + { + CPLsnprintf(szFormatting, sizeof(szFormatting), + "%%.%dg", nInitialSignificantFigures); ++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013) + nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), + szFormatting, jso->o.c_double); ++#else ++ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), ++ szFormatting, json_object_get_double(jso)); ++#endif + if( nSize+2 < static_cast(sizeof(szBuffer)) && + strchr(szBuffer, '.') == NULL ) + { +