<p>Pau Espin Pedrol <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/12340">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Stefan Sperling: Looks good to me, but someone else must approve
  Pau Espin Pedrol: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">sysmobts_mgr: Add support for gpsd < 2.96<br><br>This allows running sysmobts-mgr on systems with old gpsd releases<br>(which may have other software depending on such old release).<br><br>GPSD_API_MAJOR_VERSION define was first added in gpsd 2.39, before that<br>it didn't exist (but this code is known to work against 2.38).<br><br>GPSD_API_MAJOR_VERSION == 5 was set in version 2.96.<br><br>Related gpsd commits:<br>3771dba081bd1175adab6096d7b6270d3822aaa1<br>e69bcb6b01af6b25c6a525fb1961b92ac04f5213<br><br>Related: SYS#4290<br>Change-Id: If3c35021a020a61d5fa3cde5eebcd09908db822b<br>---<br>M src/osmo-bts-sysmo/misc/sysmobts_mgr.h<br>M src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c<br>2 files changed, 21 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/osmo-bts-sysmo/misc/sysmobts_mgr.h b/src/osmo-bts-sysmo/misc/sysmobts_mgr.h</span><br><span>index b62707c..668263d 100644</span><br><span>--- a/src/osmo-bts-sysmo/misc/sysmobts_mgr.h</span><br><span>+++ b/src/osmo-bts-sysmo/misc/sysmobts_mgr.h</span><br><span>@@ -9,6 +9,10 @@</span><br><span> </span><br><span> #include <gps.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#if !defined(GPSD_API_MAJOR_VERSION) || GPSD_API_MAJOR_VERSION < 5</span><br><span style="color: hsl(120, 100%, 40%);">+#define USE_GPSD2_API 1</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #include <stdint.h></span><br><span> </span><br><span> enum {</span><br><span>@@ -97,7 +101,9 @@</span><br><span>             int gps_open;</span><br><span>                struct osmo_fd gpsfd;</span><br><span>                struct gps_data_t *gpsdata;</span><br><span style="color: hsl(120, 100%, 40%);">+#if !USE_GPSD2_API</span><br><span>              struct gps_data_t gpsdata_buf;</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>               struct osmo_timer_list fix_timeout;</span><br><span> </span><br><span>              /* Loop/Re-try control */</span><br><span>diff --git a/src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c b/src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c</span><br><span>index c3e821e..a0ba649 100644</span><br><span>--- a/src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c</span><br><span>+++ b/src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c</span><br><span>@@ -59,8 +59,10 @@</span><br><span> </span><br><span> static inline int compat_gps_read(struct gps_data_t *data)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+#if USE_GPSD2_API</span><br><span style="color: hsl(120, 100%, 40%);">+ return gps_poll(data);</span><br><span> /* API break in gpsd 6bba8b329fc7687b15863d30471d5af402467802 */</span><br><span style="color: hsl(0, 100%, 40%);">-#if GPSD_API_MAJOR_VERSION >= 7 && GPSD_API_MINOR_VERSION >= 0</span><br><span style="color: hsl(120, 100%, 40%);">+#elif GPSD_API_MAJOR_VERSION >= 7 && GPSD_API_MINOR_VERSION >= 0</span><br><span>       return gps_read(data, NULL, 0);</span><br><span> #else</span><br><span>     return gps_read(data);</span><br><span>@@ -87,7 +89,9 @@</span><br><span> </span><br><span>       osmo_fd_unregister(&mgr->calib.gpsfd);</span><br><span>        gps_close(mgr->calib.gpsdata);</span><br><span style="color: hsl(120, 100%, 40%);">+#if !USE_GPSD2_API</span><br><span>        memset(mgr->calib.gpsdata, 0, sizeof(*(mgr->calib.gpsdata)));</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>  mgr->calib.gps_open = 0;</span><br><span> }</span><br><span> </span><br><span>@@ -143,8 +147,13 @@</span><br><span> {</span><br><span>     int rc;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#if USE_GPSD2_API</span><br><span style="color: hsl(120, 100%, 40%);">+        mgr->calib.gpsdata = gps_open("localhost", DEFAULT_GPSD_PORT);</span><br><span style="color: hsl(120, 100%, 40%);">+   rc = mgr->calib.gpsdata ? 0 : -1;</span><br><span style="color: hsl(120, 100%, 40%);">+#else</span><br><span>  mgr->calib.gpsdata = &mgr->calib.gpsdata_buf;</span><br><span>      rc = gps_open("localhost", DEFAULT_GPSD_PORT, mgr->calib.gpsdata);</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>      if (rc != 0) {</span><br><span>               LOGP(DCALIB, LOGL_ERROR, "Failed to connect to GPS %d\n", rc);</span><br><span>             calib_state_reset(mgr, CALIB_FAIL_GPS);</span><br><span>@@ -152,8 +161,12 @@</span><br><span>       }</span><br><span> </span><br><span>        mgr->calib.gps_open = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-     gps_stream(mgr->calib.gpsdata, WATCH_ENABLE, NULL);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#if USE_GPSD2_API</span><br><span style="color: hsl(120, 100%, 40%);">+ gps_query(mgr->calib.gpsdata, "w+x");</span><br><span style="color: hsl(120, 100%, 40%);">+#else</span><br><span style="color: hsl(120, 100%, 40%);">+     gps_stream(mgr->calib.gpsdata, WATCH_ENABLE, NULL);</span><br><span style="color: hsl(120, 100%, 40%);">+#endif</span><br><span>       mgr->calib.gpsfd.data = mgr;</span><br><span>      mgr->calib.gpsfd.cb = mgr_gps_read;</span><br><span>       mgr->calib.gpsfd.when = BSC_FD_READ | BSC_FD_EXCEPT;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12340">change 12340</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/12340"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-bts </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: If3c35021a020a61d5fa3cde5eebcd09908db822b </div>
<div style="display:none"> Gerrit-Change-Number: 12340 </div>
<div style="display:none"> Gerrit-PatchSet: 5 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder (1000002) </div>
<div style="display:none"> Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Pau Espin Pedrol <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Stefan Sperling <stsp@stsp.name> </div>