Change in osmo-bts[master]: sysmobts_mgr: Add support for gpsd < 2.96

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Pau Espin Pedrol gerrit-no-reply at lists.osmocom.org
Tue Dec 18 20:54:25 UTC 2018


Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/12340 )

Change subject: sysmobts_mgr: Add support for gpsd < 2.96
......................................................................

sysmobts_mgr: Add support for gpsd < 2.96

This allows running sysmobts-mgr on systems with old gpsd releases
(which may have other software depending on such old release).

GPSD_API_MAJOR_VERSION define was first added in gpsd 2.39, before that
it didn't exist (but this code is known to work against 2.38).

GPSD_API_MAJOR_VERSION == 5 was set in version 2.96.

Related gpsd commits:
3771dba081bd1175adab6096d7b6270d3822aaa1
e69bcb6b01af6b25c6a525fb1961b92ac04f5213

Related: SYS#4290
Change-Id: If3c35021a020a61d5fa3cde5eebcd09908db822b
---
M src/osmo-bts-sysmo/misc/sysmobts_mgr.h
M src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c
2 files changed, 21 insertions(+), 2 deletions(-)

Approvals:
  Jenkins Builder: Verified
  Stefan Sperling: Looks good to me, but someone else must approve
  Pau Espin Pedrol: Looks good to me, approved



diff --git a/src/osmo-bts-sysmo/misc/sysmobts_mgr.h b/src/osmo-bts-sysmo/misc/sysmobts_mgr.h
index b62707c..668263d 100644
--- a/src/osmo-bts-sysmo/misc/sysmobts_mgr.h
+++ b/src/osmo-bts-sysmo/misc/sysmobts_mgr.h
@@ -9,6 +9,10 @@
 
 #include <gps.h>
 
+#if !defined(GPSD_API_MAJOR_VERSION) || GPSD_API_MAJOR_VERSION < 5
+#define USE_GPSD2_API 1
+#endif
+
 #include <stdint.h>
 
 enum {
@@ -97,7 +101,9 @@
 		int gps_open;
 		struct osmo_fd gpsfd;
 		struct gps_data_t *gpsdata;
+#if !USE_GPSD2_API
 		struct gps_data_t gpsdata_buf;
+#endif
 		struct osmo_timer_list fix_timeout;
 
 		/* Loop/Re-try control */
diff --git a/src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c b/src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c
index c3e821e..a0ba649 100644
--- a/src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c
+++ b/src/osmo-bts-sysmo/misc/sysmobts_mgr_calib.c
@@ -59,8 +59,10 @@
 
 static inline int compat_gps_read(struct gps_data_t *data)
 {
+#if USE_GPSD2_API
+	return gps_poll(data);
 /* API break in gpsd 6bba8b329fc7687b15863d30471d5af402467802 */
-#if GPSD_API_MAJOR_VERSION >= 7 && GPSD_API_MINOR_VERSION >= 0
+#elif GPSD_API_MAJOR_VERSION >= 7 && GPSD_API_MINOR_VERSION >= 0
 	return gps_read(data, NULL, 0);
 #else
 	return gps_read(data);
@@ -87,7 +89,9 @@
 
 	osmo_fd_unregister(&mgr->calib.gpsfd);
 	gps_close(mgr->calib.gpsdata);
+#if !USE_GPSD2_API
 	memset(mgr->calib.gpsdata, 0, sizeof(*(mgr->calib.gpsdata)));
+#endif
 	mgr->calib.gps_open = 0;
 }
 
@@ -143,8 +147,13 @@
 {
 	int rc;
 
+#if USE_GPSD2_API
+	mgr->calib.gpsdata = gps_open("localhost", DEFAULT_GPSD_PORT);
+	rc = mgr->calib.gpsdata ? 0 : -1;
+#else
 	mgr->calib.gpsdata = &mgr->calib.gpsdata_buf;
 	rc = gps_open("localhost", DEFAULT_GPSD_PORT, mgr->calib.gpsdata);
+#endif
 	if (rc != 0) {
 		LOGP(DCALIB, LOGL_ERROR, "Failed to connect to GPS %d\n", rc);
 		calib_state_reset(mgr, CALIB_FAIL_GPS);
@@ -152,8 +161,12 @@
 	}
 
 	mgr->calib.gps_open = 1;
-	gps_stream(mgr->calib.gpsdata, WATCH_ENABLE, NULL);
 
+#if USE_GPSD2_API
+	gps_query(mgr->calib.gpsdata, "w+x");
+#else
+	gps_stream(mgr->calib.gpsdata, WATCH_ENABLE, NULL);
+#endif
 	mgr->calib.gpsfd.data = mgr;
 	mgr->calib.gpsfd.cb = mgr_gps_read;
 	mgr->calib.gpsfd.when = BSC_FD_READ | BSC_FD_EXCEPT;

-- 
To view, visit https://gerrit.osmocom.org/12340
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: If3c35021a020a61d5fa3cde5eebcd09908db822b
Gerrit-Change-Number: 12340
Gerrit-PatchSet: 5
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder (1000002)
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Stefan Sperling <stsp at stsp.name>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181218/14a49084/attachment.htm>


More information about the gerrit-log mailing list