summaryrefslogtreecommitdiff
path: root/sci-geosciences/foxtrotgps/files/foxtrotgps-1.2.2-gpsd-api9.patch
diff options
context:
space:
mode:
Diffstat (limited to 'sci-geosciences/foxtrotgps/files/foxtrotgps-1.2.2-gpsd-api9.patch')
-rw-r--r--sci-geosciences/foxtrotgps/files/foxtrotgps-1.2.2-gpsd-api9.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/sci-geosciences/foxtrotgps/files/foxtrotgps-1.2.2-gpsd-api9.patch b/sci-geosciences/foxtrotgps/files/foxtrotgps-1.2.2-gpsd-api9.patch
new file mode 100644
index 000000000000..87e973c47c8f
--- /dev/null
+++ b/sci-geosciences/foxtrotgps/files/foxtrotgps-1.2.2-gpsd-api9.patch
@@ -0,0 +1,37 @@
+diff -ur a/src/gps_functions.c b/src/gps_functions.c
+--- a/src/gps_functions.c
++++ b/src/gps_functions.c
+@@ -753,12 +753,20 @@
+ {
+ gpsdata->satellites_used = libgps_gpsdata.satellites_used;
+ gpsdata->hdop = libgps_gpsdata.dop.hdop;
++#if GPSD_API_MAJOR_VERSION >= 9 /* API change. gpsd version 3.20 and subsequent. */
++ gpsdata->fix.time = libgps_gpsdata.fix.time.tv_sec + (libgps_gpsdata.fix.time.tv_nsec*1e-9);
++#else
+ gpsdata->fix.time = libgps_gpsdata.fix.time;
++#endif
+ if (isnan(gpsdata->fix.time))
+ {
+ gpsdata->fix.time = (time_t) 0;
+ }
++#if GPSD_API_MAJOR_VERSION >= 9
++ gpsdata->valid = (libgps_gpsdata.fix.status != STATUS_NO_FIX);
++#else
+ gpsdata->valid = (libgps_gpsdata.status != STATUS_NO_FIX);
++#endif
+ if (gpsdata->valid)
+ {
+ gpsdata->seen_valid = TRUE;
+@@ -767,7 +775,11 @@
+ gpsdata->fix.longitude = libgps_gpsdata.fix.longitude;
+ gpsdata->fix.speed = libgps_gpsdata.fix.speed;
+ gpsdata->fix.heading = libgps_gpsdata.fix.track;
++#if GPSD_API_MAJOR_VERSION >= 9
++ gpsdata->fix.altitude = libgps_gpsdata.fix.altMSL;
++#else
+ gpsdata->fix.altitude = libgps_gpsdata.fix.altitude;
++#endif
+ }
+
+ g_source_remove(watchdog);
+