Package: obdgpslogger Version: 0.16-1.1 Followup-For: Bug #648495 Dear Maintainer, I am submitting a patch which proposes to allow obdgpslogger to build against libgps with the protocol as it is in Testing
-- System Information: Debian Release: wheezy/sid APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'testing'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages obdgpslogger depends on: ii libc6 2.13-33 ii libfltk1.1 1.1.10-13 ii libgcc1 1:4.7.0-8 pn libgps19 <none> ii libice6 2:1.0.8-2 ii libsm6 2:1.2.1-2 ii libsqlite3-0 3.7.12.1-1 ii libstdc++6 4.7.0-8 ii libx11-6 2:1.4.99.901-2 ii libxext6 2:1.3.1-2 ii zlib1g 1:1.2.7.dfsg-11 Versions of packages obdgpslogger recommends: ii gpsd 3.6-3 obdgpslogger suggests no packages.
diff -Naur obdgpslogger-0.16/src/gui/convertwindow.fl obdgpslogger-0.16_gpsv3/src/gui/convertwindow.fl --- obdgpslogger-0.16/src/gui/convertwindow.fl 2010-05-01 19:24:44.000000000 -0400 +++ obdgpslogger-0.16_gpsv3/src/gui/convertwindow.fl 2012-06-22 19:53:00.208000024 -0400 @@ -102,8 +102,6 @@ } code {mMainui = obdui;} {} } - Function {~obdconvertwindow()} {open - } {} decl {OBDUI *mMainui;} {} decl {enum obd_convert_type mConvertType;} {} Function {show()} {open diff -Naur obdgpslogger-0.16/src/logger/gpscomm.c obdgpslogger-0.16_gpsv3/src/logger/gpscomm.c --- obdgpslogger-0.16/src/logger/gpscomm.c 2011-04-28 23:31:09.000000000 -0400 +++ obdgpslogger-0.16_gpsv3/src/logger/gpscomm.c 2012-06-22 20:20:08.472000027 -0400 @@ -23,16 +23,21 @@ #ifdef HAVE_GPSD +#include <stdlib.h> #include <gps.h> struct gps_data_t *opengps(char *server, char *port) { +#ifdef HAVE_GPSD_V3 + int ret = 0; + struct gps_data_t *g = malloc(sizeof(struct gps_data_t)); + if (ret = gps_open(server, port, g) == -1) + return NULL; + gps_stream(g, WATCH_ENABLE|WATCH_NEWSTYLE, NULL); +#else struct gps_data_t *g = gps_open(server,port); if(NULL == g) return NULL; -#ifdef HAVE_GPSD_V3 - gps_stream(g, WATCH_ENABLE|WATCH_NEWSTYLE, NULL); -#else gps_query(g, "o"); #endif //HAVE_GPSD_V3 @@ -40,6 +45,11 @@ } void closegps(struct gps_data_t *g) { +#ifdef HAVE_GPSD_V3 + gps_stream(g, WATCH_DISABLE, NULL); + free(g); + g = NULL; +#endif //HAVE_GPSD_V3 gps_close(g); } @@ -58,7 +68,7 @@ count = select(g->gps_fd + 1, &fds, NULL, NULL, &timeout); if(count > 0) { #ifdef HAVE_GPSD_V3 - gps_poll(g); + gps_read(g); #else gps_query(g, "o"); #endif //HAVE_GPSD_V3