Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Apr 2011 08:44:19 +0200 (CEST)
From:      Christoph Moench-Tegeder <cmt@burggraben.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/156489: [PATCH] fix build of astro/qlandkartegt with astro/gpsd
Message-ID:  <20110419064419.C569BA1029@reindeer.exwg.net>
Resent-Message-ID: <201104190700.p3J70Jo1085654@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         156489
>Category:       ports
>Synopsis:       [PATCH] fix build of astro/qlandkartegt with astro/gpsd
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Apr 19 07:00:19 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Christoph Moench-Tegeder
>Release:        FreeBSD 8.2-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD reindeer.exwg.net 8.2-RELEASE FreeBSD 8.2-RELEASE #7: Thu Feb 17 09:12:56 CET 2011 cmt@reindeer.exwg.net:/usr/obj/usr/src/sys/CMT amd64

  astro/qlandkartegt qlandkartegt-1.1.1
  astro/gpsd         gpsd-2.96

>Description:
  The libgps API changed (i.e. deprecated functions where finally removed)
  in gpsd 2.90 (as of their documentation), which causes the build of
  astro/qlandkartegt to fail with:
  [ 59%] Building CXX object src/CMakeFiles/qlandkartegt.dir/CDBus.cpp.o
  /usr/local/include/gps.h: In member function 'virtual void CGPSDThread::run()':
  /usr/local/include/gps.h:1431: error: too few arguments to function 'int gps_open(const char*, const char*, gps_data_t*)'
  /usr/ports/astro/qlandkartegt/work/qlandkartegt-1.1.1/src/CDeviceGPSD.cpp:152: error: at this point in file
  /usr/ports/astro/qlandkartegt/work/qlandkartegt-1.1.1/src/CDeviceGPSD.cpp:190: error: 'gps_poll' was not declared in this scope

>How-To-Repeat:
  Install astro/gpsd, then try to build astro/qlandkartegt.

>Fix:
  The following patch fixes the API as described in
  http://gpsd.berlios.de/protocol-transition.html . I submitted that patch
  to the qlandkartegt-users mailing list last week, but got no response yet
  http://sourceforge.net/mailarchive/forum.php?thread_name=20110411185343.GB1916%40elch.exwg.net&forum_name=qlandkartegt-users

diff -Nru astro/qlandkartegt.orig/files/patch-src-CDeviceGPSD.cpp astro/qlandkartegt/files/patch-src-CDeviceGPSD.cpp
--- astro/qlandkartegt.orig/files/patch-src-CDeviceGPSD.cpp	1970-01-01 01:00:00.000000000 +0100
+++ astro/qlandkartegt/files/patch-src-CDeviceGPSD.cpp	2011-04-19 08:24:35.000000000 +0200
@@ -0,0 +1,47 @@
+Index: src/CDeviceGPSD.cpp
+===================================================================
+--- src/CDeviceGPSD.cpp	(revision 2719)
++++ src/CDeviceGPSD.cpp	(working copy)
+@@ -138,6 +138,7 @@
+ log_mutex( new QMutex() ),
+ pipe_fd( _pipe_fd )
+ {
++    gpsdata = NULL;
+ }
+ 
+ 
+@@ -149,7 +150,14 @@
+ 
+ void CGPSDThread::run()
+ {
++#if GPSD_API_MAJOR_VERSION >= 5
++	int socket;
++   
++    if( gpsdata = new gps_data_t )
++        socket = gps_open( "localhost", DEFAULT_GPSD_PORT, gpsdata );
++#else
+     gpsdata = gps_open( "localhost", DEFAULT_GPSD_PORT );
++#endif
+     if( !gpsdata )
+     {
+         // TODO: message box (from other thread)
+@@ -187,13 +195,20 @@
+             }                    // if
+             else if( FD_ISSET( gpsdata->gps_fd, &fds ) )
+             {
++#if GPSD_API_MAJOR_VERSION >= 5
++                gps_read( gpsdata );
++#else
+                 gps_poll( gpsdata );
++#endif
+                 if( !decodeData() ) break;
+             }                    // else if
+         }                        // else if
+     }                            // while
+ 
+     gps_close( gpsdata );
++#if GPSD_API_MAJOR_VERSION >= 5
++    delete gpsdata;
++#endif
+     qDebug() << "thread done";
+ }

Regards,
Christoph
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110419064419.C569BA1029>