From f1b54df64766bf9f2cb95f71038a9d9c9579b172 Mon Sep 17 00:00:00 2001 From: wb2osz Date: Sun, 17 Feb 2019 21:04:49 -0500 Subject: [PATCH] Issue 196 - Compatibility with GPSD API 7. --- dwgpsd.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/dwgpsd.c b/dwgpsd.c index 5709497..ff37c68 100644 --- a/dwgpsd.c +++ b/dwgpsd.c @@ -57,7 +57,10 @@ // Debian bug report: direwolf (1.2-1) FTBFS with libgps22 as part of the gpsd transition (#803605): // dwgps.c claims to only support GPSD_API_MAJOR_VERSION 5, but also builds successfully with // GPSD_API_MAJOR_VERSION 6 provided by libgps22 when the attached patch is applied. -#if GPSD_API_MAJOR_VERSION < 5 || GPSD_API_MAJOR_VERSION > 6 + +// Also compatible with API 7 with conditional compilation later. + +#if GPSD_API_MAJOR_VERSION < 5 || GPSD_API_MAJOR_VERSION > 7 #error libgps API version might be incompatible. #endif @@ -257,7 +260,19 @@ static void * read_gpsd_thread (void *arg) /* Fall thru to read which should get error and bail out. */ } +// https://github.com/wb2osz/direwolf/issues/196 +// https://bugzilla.redhat.com/show_bug.cgi?id=1674812 + +// gps_read has two new parameters in API version 7. +// It looks like this could be used to obtain the JSON message from the daemon. +// Specify NULL, instead of message buffer space, if this is not desired. +// Why couldn't they add a new function instead of introducing incompatibility? + +#if GPSD_API_MAJOR_VERSION >= 7 + if (gps_read (&gpsdata, NULL, 0) == -1) { +#else if (gps_read (&gpsdata) == -1) { +#endif text_color_set(DW_COLOR_ERROR); dw_printf ("------------------------------------------\n");