summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2017-12-20 20:52:25 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2017-12-20 21:08:23 +0100
commit6c20ca938f7f64f9882ad152877ee209fcb5dc18 (patch)
tree1a27880d1d4fdb1c6d88ea2424f1468f35c9f11a /sci-libs/gdal/files
parentsys-kernel/aufs-sources: Bump to latest genpatches and linux release (diff)
downloadgentoo-6c20ca938f7f64f9882ad152877ee209fcb5dc18.tar.gz
gentoo-6c20ca938f7f64f9882ad152877ee209fcb5dc18.tar.bz2
gentoo-6c20ca938f7f64f9882ad152877ee209fcb5dc18.zip
sci-libs/gdal: Fix build w/ >=dev-libs/json-c-0.13
Thanks-to: Attila Tóth <atoth@atoth.sote.hu> Closes: https://bugs.gentoo.org/641658 Package-Manager: Portage-2.3.19, Repoman-2.3.6
Diffstat (limited to 'sci-libs/gdal/files')
-rw-r--r--sci-libs/gdal/files/gdal-2.2.3-json-c-0.13.patch84
1 files changed, 84 insertions, 0 deletions
diff --git a/sci-libs/gdal/files/gdal-2.2.3-json-c-0.13.patch b/sci-libs/gdal/files/gdal-2.2.3-json-c-0.13.patch
new file mode 100644
index 00000000000..bbee77b51c7
--- /dev/null
+++ b/sci-libs/gdal/files/gdal-2.2.3-json-c-0.13.patch
@@ -0,0 +1,84 @@
+Index: gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp
+===================================================================
+--- a/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp (revision 41042)
++++ b/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp (revision 41043)
+@@ -28,4 +28,6 @@
+ ****************************************************************************/
+
++#define JSON_C_VER_013 (13 << 8)
++
+ #include "ogrgeojsonwriter.h"
+ #include "ogrgeojsonutils.h"
+@@ -33,5 +35,9 @@
+ #include "ogrgeojsonreader.h"
+ #include <json.h> // JSON-C
++
++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013)
+ #include <json_object_private.h>
++#endif
++
+ #include <printbuf.h>
+ #include <ogr_api.h>
+@@ -1382,11 +1388,15 @@
+ // TODO(schwehr): Explain this casting.
+ const int nPrecision =
++#if (!defined(JSON_C_VERSION_NUM)) || (JSON_C_VERSION_NUM < JSON_C_VER_013)
+ static_cast<int>(reinterpret_cast<GUIntptr_t>(jso->_userdata));
++#else
++ static_cast<int>(reinterpret_cast<GUIntptr_t>(json_object_get_userdata(jso)));
++#endif
+ char szBuffer[75] = {};
+- OGRFormatDouble( szBuffer, sizeof(szBuffer), jso->o.c_double, '.',
++ OGRFormatDouble( szBuffer, sizeof(szBuffer), json_object_get_double(jso), '.',
+ (nPrecision < 0) ? 15 : nPrecision );
+ if( szBuffer[0] == 't' /*oobig */ )
+ {
+- CPLsnprintf(szBuffer, sizeof(szBuffer), "%.18g", jso->o.c_double);
++ CPLsnprintf(szBuffer, sizeof(szBuffer), "%.18g", json_object_get_double(jso));
+ }
+ return printbuf_memappend(pb, szBuffer, static_cast<int>(strlen(szBuffer)));
+@@ -1418,9 +1428,9 @@
+ char szBuffer[75] = {};
+ int nSize = 0;
+- if( CPLIsNan(jso->o.c_double))
++ if( CPLIsNan(json_object_get_double(jso)))
+ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), "NaN");
+- else if( CPLIsInf(jso->o.c_double) )
+- {
+- if( jso->o.c_double > 0 )
++ else if( CPLIsInf(json_object_get_double(jso)) )
++ {
++ if( json_object_get_double(jso) > 0 )
+ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer), "Infinity");
+ else
+@@ -1430,5 +1440,9 @@
+ {
+ 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;
+@@ -1436,5 +1450,5 @@
+ "%%.%dg", nInitialSignificantFigures);
+ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer),
+- szFormatting, jso->o.c_double);
++ szFormatting, json_object_get_double(jso));
+ const char* pszDot = NULL;
+ if( nSize+2 < static_cast<int>(sizeof(szBuffer)) &&
+@@ -1458,5 +1472,5 @@
+ "%%.%dg", nInitialSignificantFigures- i);
+ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer),
+- szFormatting, jso->o.c_double);
++ szFormatting, json_object_get_double(jso));
+ pszDot = strchr(szBuffer, '.');
+ if( pszDot != NULL &&
+@@ -1473,5 +1487,5 @@
+ "%%.%dg", nInitialSignificantFigures);
+ nSize = CPLsnprintf(szBuffer, sizeof(szBuffer),
+- szFormatting, jso->o.c_double);
++ szFormatting, json_object_get_double(jso));
+ if( nSize+2 < static_cast<int>(sizeof(szBuffer)) &&
+ strchr(szBuffer, '.') == NULL )