commit
a47fd2d279
@ -0,0 +1,2 @@
|
|||||||
|
SOURCES/gpsd-3.25.tar.gz
|
||||||
|
SOURCES/scons-4.6.0.tar.gz
|
@ -0,0 +1,2 @@
|
|||||||
|
81965943f81484da80d8adb0547572fe9f0e8ebc SOURCES/gpsd-3.25.tar.gz
|
||||||
|
189734458616309055eeaf7e65dd461e3c756869 SOURCES/scons-4.6.0.tar.gz
|
@ -0,0 +1,84 @@
|
|||||||
|
commit e5ba7aa2af74fd22ebbd5c4a6624edcf983863de
|
||||||
|
Author: Michal Schmidt <mschmidt@redhat.com>
|
||||||
|
Date: Fri Aug 4 16:53:01 2023 +0200
|
||||||
|
|
||||||
|
gps/gps.py.in: no busy-waiting when reading from gpsd socket
|
||||||
|
|
||||||
|
ubxtool keeps one CPU 100% busy while it waits for data to read from the
|
||||||
|
gpsd socket. Running it under strace showed that it calls select() with
|
||||||
|
zero timeout in a loop:
|
||||||
|
|
||||||
|
...
|
||||||
|
11:02:34.049629 pselect6(4, [3], [], [], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout)
|
||||||
|
11:02:34.049649 pselect6(4, [3], [], [], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout)
|
||||||
|
11:02:34.049670 pselect6(4, [3], [], [], {tv_sec=0, tv_nsec=0}, NULL) = 0 (Timeout)
|
||||||
|
...
|
||||||
|
|
||||||
|
The busy waiting can be eliminated by passing the actual timeout value
|
||||||
|
to select(). In the reading loop in gps.py, the remaining time can be
|
||||||
|
easily calculated and passed as the argument to the self.ser.waiting()
|
||||||
|
function (which is basically a select() wrapper).
|
||||||
|
|
||||||
|
Fixing this problem exposed a bug in how the received bytes are decoded.
|
||||||
|
decode_func may not consume all input at once. Consumable input may be
|
||||||
|
left in self.out until decode_func returns zero, indicating that it
|
||||||
|
could not process any more input. So decode_func must be called in a
|
||||||
|
loop each time a buffer is received from the socket. The busy waiting
|
||||||
|
was hiding this issue, because decode_func was being called all the
|
||||||
|
time.
|
||||||
|
|
||||||
|
The "elif self.input_is_device:" branch probably needs similar
|
||||||
|
treatment, but I am testing only the gpsd usecase.
|
||||||
|
|
||||||
|
diff --git a/gps/gps.py.in b/gps/gps.py.in
|
||||||
|
index 623a750a0..14d7707ab 100644
|
||||||
|
--- a/gps/gps.py.in
|
||||||
|
+++ b/gps/gps.py.in
|
||||||
|
@@ -384,10 +384,11 @@ class gps_io(object):
|
||||||
|
if self.gpsd_host is not None:
|
||||||
|
# gpsd input
|
||||||
|
start = monotonic()
|
||||||
|
- while (monotonic() - start) < input_wait:
|
||||||
|
+ remaining_time = input_wait
|
||||||
|
+ while remaining_time > 0:
|
||||||
|
# First priority is to be sure the input buffer is read.
|
||||||
|
# This is to prevent input buffer overuns
|
||||||
|
- if 0 < self.ser.waiting():
|
||||||
|
+ if 0 < self.ser.waiting(remaining_time):
|
||||||
|
# We have serial input waiting, get it
|
||||||
|
# No timeout possible
|
||||||
|
# RTCM3 JSON can be over 4.4k long, so go big
|
||||||
|
@@ -397,17 +398,22 @@ class gps_io(object):
|
||||||
|
raw_fd.write(polybytes(new_out))
|
||||||
|
self.out += new_out
|
||||||
|
|
||||||
|
- consumed = decode_func(self.out)
|
||||||
|
- # TODO: the decoder shall return a some current
|
||||||
|
- # statement_identifier # to fill last_statement_identifier
|
||||||
|
- last_statement_identifier = None
|
||||||
|
- #
|
||||||
|
- self.out = self.out[consumed:]
|
||||||
|
- if ((expect_statement_identifier and
|
||||||
|
- (expect_statement_identifier ==
|
||||||
|
- last_statement_identifier))):
|
||||||
|
- # Got what we were waiting for. Done?
|
||||||
|
- ret_code = 0
|
||||||
|
+ while True:
|
||||||
|
+ consumed = decode_func(self.out)
|
||||||
|
+ if consumed == 0:
|
||||||
|
+ break
|
||||||
|
+ # TODO: the decoder shall return a some current
|
||||||
|
+ # statement_identifier # to fill last_statement_identifier
|
||||||
|
+ last_statement_identifier = None
|
||||||
|
+ #
|
||||||
|
+ self.out = self.out[consumed:]
|
||||||
|
+ if ((expect_statement_identifier and
|
||||||
|
+ (expect_statement_identifier ==
|
||||||
|
+ last_statement_identifier))):
|
||||||
|
+ # Got what we were waiting for. Done?
|
||||||
|
+ ret_code = 0
|
||||||
|
+
|
||||||
|
+ remaining_time = start + input_wait - monotonic()
|
||||||
|
|
||||||
|
elif self.input_is_device:
|
||||||
|
# input is a serial device
|
@ -0,0 +1,356 @@
|
|||||||
|
commit 5c080c35fc3d981172a5e4af34d0d92854a5433a
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Tue Jul 25 11:01:14 2023 +0200
|
||||||
|
|
||||||
|
libgps/netlib.c: Rework enabling non-block and make binding configurable.
|
||||||
|
|
||||||
|
Instead of accepting SOCK_NONBLOCK as flags in netlib_connectsock1()
|
||||||
|
specify if the non-blocking mode should be enabled after or before
|
||||||
|
connect().
|
||||||
|
|
||||||
|
Also add a boolean parameter to the function to select between connect()
|
||||||
|
and bind() instead of hardcoding it for TCP vs UDP, which will allow
|
||||||
|
connecting to UDP ports in gps2udp.
|
||||||
|
|
||||||
|
diff --git a/gpsd/libgpsd_core.c b/gpsd/libgpsd_core.c
|
||||||
|
index 47ee5d57e..341e8b80c 100644
|
||||||
|
--- a/gpsd/libgpsd_core.c
|
||||||
|
+++ b/gpsd/libgpsd_core.c
|
||||||
|
@@ -561,7 +561,6 @@ int gpsd_open(struct gps_device_t *session)
|
||||||
|
char server[GPS_PATH_MAX], *host, *port, *device;
|
||||||
|
socket_t dsock;
|
||||||
|
char addrbuf[50]; // INET6_ADDRSTRLEN
|
||||||
|
- int sock_opt;
|
||||||
|
|
||||||
|
session->sourcetype = SOURCE_TCP;
|
||||||
|
(void)strlcpy(server, session->gpsdata.dev.path + 6, sizeof(server));
|
||||||
|
@@ -576,15 +575,9 @@ int gpsd_open(struct gps_device_t *session)
|
||||||
|
GPSD_LOG(LOG_PROG, &session->context->errout,
|
||||||
|
"CORE: opening TCP feed at %s, port %s.\n", host,
|
||||||
|
port);
|
||||||
|
-#if defined(SOCK_NONBLOCK)
|
||||||
|
- sock_opt = SOCK_NONBLOCK;
|
||||||
|
-#else
|
||||||
|
- // macOS has no SOCK_NONBLOCK
|
||||||
|
- sock_opt = 0;
|
||||||
|
-#endif
|
||||||
|
// open non-blocking
|
||||||
|
dsock = netlib_connectsock1(AF_UNSPEC, host, port, "tcp",
|
||||||
|
- sock_opt, addrbuf, sizeof(addrbuf));
|
||||||
|
+ 1, false, addrbuf, sizeof(addrbuf));
|
||||||
|
if (0 > dsock) {
|
||||||
|
GPSD_LOG(LOG_ERROR, &session->context->errout,
|
||||||
|
"CORE: TCP %s IP %s, open error %s(%d).\n",
|
||||||
|
@@ -614,7 +607,8 @@ int gpsd_open(struct gps_device_t *session)
|
||||||
|
GPSD_LOG(LOG_PROG, &session->context->errout,
|
||||||
|
"CORE: opening UDP feed at %s, port %s.\n", host,
|
||||||
|
port);
|
||||||
|
- if (0 > (dsock = netlib_connectsock(AF_UNSPEC, host, port, "udp"))) {
|
||||||
|
+ if (0 > (dsock = netlib_connectsock1(AF_UNSPEC, host, port, "udp",
|
||||||
|
+ 0, true, NULL, 0))) {
|
||||||
|
GPSD_LOG(LOG_ERROR, &session->context->errout,
|
||||||
|
"CORE: UDP device open error %s(%d).\n",
|
||||||
|
netlib_errstr(dsock), dsock);
|
||||||
|
diff --git a/gpsd/net_ntrip.c b/gpsd/net_ntrip.c
|
||||||
|
index 8241995ae..d89bdc1f9 100644
|
||||||
|
--- a/gpsd/net_ntrip.c
|
||||||
|
+++ b/gpsd/net_ntrip.c
|
||||||
|
@@ -856,7 +856,8 @@ static int ntrip_reconnect(struct gps_device_t *device)
|
||||||
|
device->gpsdata.dev.path);
|
||||||
|
dsock = netlib_connectsock1(AF_UNSPEC, device->ntrip.stream.host,
|
||||||
|
device->ntrip.stream.port,
|
||||||
|
- "tcp", SOCK_NONBLOCK, addrbuf, sizeof(addrbuf));
|
||||||
|
+ "tcp", 1, false,
|
||||||
|
+ addrbuf, sizeof(addrbuf));
|
||||||
|
device->gpsdata.gps_fd = dsock;
|
||||||
|
// nonblocking means we have the fd, but the connection is not
|
||||||
|
// finished yet. Connection may fail, later.
|
||||||
|
diff --git a/include/gpsd.h b/include/gpsd.h
|
||||||
|
index 0f6b731eb..2f3260c1e 100644
|
||||||
|
--- a/include/gpsd.h
|
||||||
|
+++ b/include/gpsd.h
|
||||||
|
@@ -1002,7 +1002,7 @@ extern void gpsd_clear_data(struct gps_device_t *);
|
||||||
|
extern socket_t netlib_connectsock(int, const char *, const char *,
|
||||||
|
const char *);
|
||||||
|
extern socket_t netlib_connectsock1(int, const char *, const char *,
|
||||||
|
- const char *, int,
|
||||||
|
+ const char *, int, bool,
|
||||||
|
char *, size_t);
|
||||||
|
// end FIXME
|
||||||
|
extern socket_t netlib_localsocket(const char *, int);
|
||||||
|
diff --git a/libgps/netlib.c b/libgps/netlib.c
|
||||||
|
index e4e763025..5f553fe10 100644
|
||||||
|
--- a/libgps/netlib.c
|
||||||
|
+++ b/libgps/netlib.c
|
||||||
|
@@ -55,8 +55,10 @@
|
||||||
|
* host - host to connect to
|
||||||
|
* service -- aka port
|
||||||
|
* protocol
|
||||||
|
- * flags -- can be SOCK_NONBLOCK for non-blocking connect
|
||||||
|
- * Note: macOS does not have SOCK_NONBLOCK
|
||||||
|
+ * nonblock -- 1 sets the socket as non-blocking before connect() if
|
||||||
|
+ * SOCK_NONBLOCK is supported,
|
||||||
|
+ * >1 sets the socket as non-blocking after connect()
|
||||||
|
+ * bind_me -- call bind() on the socket instead of connect()
|
||||||
|
* addrbuf -- 50 char buf to put string of IP address conencting
|
||||||
|
* INET6_ADDRSTRLEN
|
||||||
|
* addrbuf_sz -- sizeof(adddrbuf)
|
||||||
|
@@ -70,16 +72,15 @@
|
||||||
|
* less than zero on error (NL_*)
|
||||||
|
*/
|
||||||
|
socket_t netlib_connectsock1(int af, const char *host, const char *service,
|
||||||
|
- const char *protocol, int flags,
|
||||||
|
+ const char *protocol, int nonblock, bool bind_me,
|
||||||
|
char *addrbuf, size_t addrbuf_sz)
|
||||||
|
{
|
||||||
|
struct protoent *ppe;
|
||||||
|
struct addrinfo hints;
|
||||||
|
struct addrinfo *result = NULL;
|
||||||
|
struct addrinfo *rp;
|
||||||
|
- int ret, type, proto, one;
|
||||||
|
+ int ret, flags, type, proto, one;
|
||||||
|
socket_t s;
|
||||||
|
- bool bind_me;
|
||||||
|
|
||||||
|
if (NULL != addrbuf) {
|
||||||
|
addrbuf[0] = '\0';
|
||||||
|
@@ -97,9 +98,6 @@ socket_t netlib_connectsock1(int af, const char *host, const char *service,
|
||||||
|
return NL_NOPROTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
- /* we probably ought to pass this in as an explicit flag argument */
|
||||||
|
- bind_me = (SOCK_DGRAM == type);
|
||||||
|
-
|
||||||
|
memset(&hints, 0, sizeof(struct addrinfo));
|
||||||
|
hints.ai_family = af;
|
||||||
|
hints.ai_socktype = type;
|
||||||
|
@@ -107,6 +105,15 @@ socket_t netlib_connectsock1(int af, const char *host, const char *service,
|
||||||
|
if (bind_me) {
|
||||||
|
hints.ai_flags = AI_PASSIVE;
|
||||||
|
}
|
||||||
|
+#if defined(SOCK_NONBLOCK)
|
||||||
|
+ flags = nonblock == 1 ? SOCK_NONBLOCK : 0;
|
||||||
|
+#else
|
||||||
|
+ // macOS has no SOCK_NONBLOCK
|
||||||
|
+ flags = 0;
|
||||||
|
+ if (nonblock == 1)
|
||||||
|
+ nonblock = 2;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
// FIXME: need a way to bypass these DNS calls if host is an IP.
|
||||||
|
if ((ret = getaddrinfo(host, service, &hints, &result))) {
|
||||||
|
// result is unchanged on error, so we need to have set it to NULL
|
||||||
|
@@ -219,13 +226,15 @@ socket_t netlib_connectsock1(int af, const char *host, const char *service,
|
||||||
|
sizeof(one));
|
||||||
|
}
|
||||||
|
|
||||||
|
- // set socket to noblocking
|
||||||
|
+ if (nonblock > 1) {
|
||||||
|
+ // set socket to noblocking
|
||||||
|
#ifdef HAVE_FCNTL
|
||||||
|
- (void)fcntl(s, F_SETFL, fcntl(s, F_GETFL) | O_NONBLOCK);
|
||||||
|
+ (void)fcntl(s, F_SETFL, fcntl(s, F_GETFL) | O_NONBLOCK);
|
||||||
|
#elif defined(HAVE_WINSOCK2_H)
|
||||||
|
- u_long one1 = 1;
|
||||||
|
- (void)ioctlsocket(s, FIONBIO, &one1);
|
||||||
|
+ u_long one1 = 1;
|
||||||
|
+ (void)ioctlsocket(s, FIONBIO, &one1);
|
||||||
|
#endif
|
||||||
|
+ }
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -235,7 +244,7 @@ socket_t netlib_connectsock1(int af, const char *host, const char *service,
|
||||||
|
socket_t netlib_connectsock(int af, const char *host, const char *service,
|
||||||
|
const char *protocol)
|
||||||
|
{
|
||||||
|
- return netlib_connectsock1(af, host, service, protocol, 0, NULL, 0);
|
||||||
|
+ return netlib_connectsock1(af, host, service, protocol, 2, false, NULL, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert NL_* error code to a string
|
||||||
|
|
||||||
|
commit fd6682a6ffd0a5d4d640839422274b582ba38e72
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Tue Jul 25 11:08:19 2023 +0200
|
||||||
|
|
||||||
|
clients/gps2udp.c: Switch to netlib_connectsock1().
|
||||||
|
|
||||||
|
Use netlib_connectsock1() to avoid using obsolete gethostbyname() and
|
||||||
|
support IPv6.
|
||||||
|
|
||||||
|
diff --git a/clients/gps2udp.c b/clients/gps2udp.c
|
||||||
|
index 2d9c6033d..541054d8f 100644
|
||||||
|
--- a/clients/gps2udp.c
|
||||||
|
+++ b/clients/gps2udp.c
|
||||||
|
@@ -21,7 +21,6 @@
|
||||||
|
#ifdef HAVE_GETOPT_LONG
|
||||||
|
#include <getopt.h> // for getopt_long()
|
||||||
|
#endif
|
||||||
|
-#include <netdb.h> /* for gethostbyname() */
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
@@ -50,7 +49,6 @@ static struct gps_data_t gpsdata;
|
||||||
|
|
||||||
|
/* UDP socket variables */
|
||||||
|
#define MAX_UDP_DEST 5
|
||||||
|
-static struct sockaddr_in remote[MAX_UDP_DEST];
|
||||||
|
static int sock[MAX_UDP_DEST];
|
||||||
|
static int udpchannel;
|
||||||
|
|
||||||
|
@@ -128,12 +126,10 @@ static int send_udp(char *nmeastring, size_t ind)
|
||||||
|
|
||||||
|
// send message on udp channel
|
||||||
|
for (channel=0; channel < udpchannel; channel ++) {
|
||||||
|
- ssize_t status = sendto(sock[channel],
|
||||||
|
- buffer,
|
||||||
|
- ind,
|
||||||
|
- 0,
|
||||||
|
- (struct sockaddr *)&remote[channel],
|
||||||
|
- (int)sizeof(remote));
|
||||||
|
+ ssize_t status = send(sock[channel],
|
||||||
|
+ buffer,
|
||||||
|
+ ind,
|
||||||
|
+ 0);
|
||||||
|
if (status < (ssize_t)ind) {
|
||||||
|
(void)fprintf(stderr, "gps2udp: failed to send [%s] \n",
|
||||||
|
buffer);
|
||||||
|
@@ -152,9 +148,6 @@ static int open_udp(char **hostport)
|
||||||
|
for (channel = 0; channel < udpchannel; channel++) {
|
||||||
|
char *hostname = NULL;
|
||||||
|
char *portname = NULL;
|
||||||
|
- char *endptr = NULL;
|
||||||
|
- int portnum;
|
||||||
|
- struct hostent *hp;
|
||||||
|
|
||||||
|
if (NULL == hostport[channel]) {
|
||||||
|
// pacify coverity
|
||||||
|
@@ -171,32 +164,13 @@ static int open_udp(char **hostport)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
- errno = 0;
|
||||||
|
- portnum = (int)strtol(portname, &endptr, 10);
|
||||||
|
- if (1 > portnum || 65535 < portnum || '\0' != *endptr || 0 != errno) {
|
||||||
|
- (void)fprintf(stderr, "gps2udp: syntax is [-u hostname:port] "
|
||||||
|
- "[%s] is not a valid port number\n", portname);
|
||||||
|
- return -1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- sock[channel]= socket(AF_INET, SOCK_DGRAM, 0);
|
||||||
|
+ sock[channel] = netlib_connectsock1(AF_UNSPEC, hostname, portname, "udp",
|
||||||
|
+ 0, false, NULL, 0);
|
||||||
|
if (0 > sock[channel]) {
|
||||||
|
- (void)fprintf(stderr, "gps2udp: error creating UDP socket\n");
|
||||||
|
+ (void)fprintf(stderr, "gps2udp: error creating UDP socket: %s\n",
|
||||||
|
+ netlib_errstr(sock[channel]));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- remote[channel].sin_family = (sa_family_t)AF_INET;
|
||||||
|
- hp = gethostbyname(hostname);
|
||||||
|
- if (NULL == hp) {
|
||||||
|
- (void)fprintf(stderr,
|
||||||
|
- "gps2udp: syntax is [-u hostname:port] [%s]"
|
||||||
|
- " is not a valid hostname\n",
|
||||||
|
- hostname);
|
||||||
|
- return -1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- memcpy( &remote[channel].sin_addr, hp->h_addr_list[0], hp->h_length);
|
||||||
|
- remote[channel].sin_port = htons((in_port_t)portnum);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
commit 749be8acce27f16d74ba727f4819f3e49602882a
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Tue Jul 25 11:10:39 2023 +0200
|
||||||
|
|
||||||
|
clients/lcdgps.c: Switch to netlib_connectsock1().
|
||||||
|
|
||||||
|
Use netlib_connectsock1() to avoid using obsolete gethostbyname() and
|
||||||
|
support IPv6.
|
||||||
|
|
||||||
|
diff --git a/clients/lcdgps.c b/clients/lcdgps.c
|
||||||
|
index 7d0ee6bc8..b311882b0 100644
|
||||||
|
--- a/clients/lcdgps.c
|
||||||
|
+++ b/clients/lcdgps.c
|
||||||
|
@@ -21,11 +21,12 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LCDDHOST "localhost"
|
||||||
|
-#define LCDDPORT 13666
|
||||||
|
+#define LCDDPORT "13666"
|
||||||
|
|
||||||
|
#define CLIMB 3
|
||||||
|
|
||||||
|
#include "../include/gpsd_config.h" /* must be before all includes */
|
||||||
|
+#include "../include/gpsd.h"
|
||||||
|
|
||||||
|
#include <arpa/inet.h>
|
||||||
|
#include <errno.h>
|
||||||
|
@@ -33,7 +34,6 @@
|
||||||
|
#include <getopt.h> // for getopt_long()
|
||||||
|
#endif
|
||||||
|
#include <math.h>
|
||||||
|
-#include <netdb.h> /* for gethostbyname() */
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
@@ -259,9 +259,6 @@ static void usage( char *prog)
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
- int rc;
|
||||||
|
- struct sockaddr_in localAddr, servAddr;
|
||||||
|
- struct hostent *h;
|
||||||
|
const char *optstring = "?hl:su:V";
|
||||||
|
int n;
|
||||||
|
#ifdef HAVE_GETOPT_LONG
|
||||||
|
@@ -390,41 +387,10 @@ int main(int argc, char *argv[])
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Connect to LCDd */
|
||||||
|
- h = gethostbyname(LCDDHOST);
|
||||||
|
- if (h==NULL) {
|
||||||
|
- printf("%s: unknown host '%s'\n",argv[0],LCDDHOST);
|
||||||
|
- exit(EXIT_FAILURE);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- servAddr.sin_family = h->h_addrtype;
|
||||||
|
- memcpy((char *) &servAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length);
|
||||||
|
- servAddr.sin_port = htons(LCDDPORT);
|
||||||
|
-
|
||||||
|
- /* create socket */
|
||||||
|
- sd = socket(AF_INET, SOCK_STREAM, 0);
|
||||||
|
- if (BAD_SOCKET(sd)) {
|
||||||
|
- perror("cannot open socket ");
|
||||||
|
- exit(EXIT_FAILURE);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- /* bind any port number */
|
||||||
|
- localAddr.sin_family = AF_INET;
|
||||||
|
- localAddr.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||||
|
- localAddr.sin_port = htons(0);
|
||||||
|
-
|
||||||
|
- /* coverity[uninit_use_in_call] */
|
||||||
|
- rc = bind(sd, (struct sockaddr *) &localAddr, sizeof(localAddr));
|
||||||
|
- if (rc == -1) {
|
||||||
|
- printf("%s: cannot bind port TCP %d\n",argv[0],LCDDPORT);
|
||||||
|
- perror("error ");
|
||||||
|
- exit(EXIT_FAILURE);
|
||||||
|
- }
|
||||||
|
+ sd = netlib_connectsock1(AF_UNSPEC, LCDDHOST, LCDDPORT, "tcp", 0, false, NULL, 0);
|
||||||
|
+ if (0 > sd) {
|
||||||
|
|
||||||
|
- /* connect to server */
|
||||||
|
- /* coverity[uninit_use_in_call] */
|
||||||
|
- rc = connect(sd, (struct sockaddr *) &servAddr, sizeof(servAddr));
|
||||||
|
- if (rc == -1) {
|
||||||
|
- perror("cannot connect ");
|
||||||
|
+ (void)fprintf(stderr, "lcdgps: cannot connect: %s\n", netlib_errstr(sd));
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,188 @@
|
|||||||
|
commit 651d505d2b075b9bd87729d2d5d155c29c03fbc1
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Mon Jul 31 15:46:16 2023 +0200
|
||||||
|
|
||||||
|
devtools/tablegen.py: Fix typo in structname.
|
||||||
|
|
||||||
|
diff --git a/devtools/tablegen.py b/devtools/tablegen.py
|
||||||
|
index 7851fceca..3feb64b9e 100755
|
||||||
|
--- a/devtools/tablegen.py
|
||||||
|
+++ b/devtools/tablegen.py
|
||||||
|
@@ -129,7 +129,7 @@ def make_driver_code(wfp):
|
||||||
|
continue
|
||||||
|
offset = offsets[i].split('-')[0]
|
||||||
|
if arrayname:
|
||||||
|
- target = "%s.%s[i].%s" % (structnme, arrayname, name)
|
||||||
|
+ target = "%s.%s[i].%s" % (structname, arrayname, name)
|
||||||
|
offset = "a + " + offset
|
||||||
|
else:
|
||||||
|
target = "%s.%s" % (structname, name)
|
||||||
|
|
||||||
|
commit db2a00f7ee4e66ee57ff66e84cec664444c26d8f
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Mon Jul 31 15:47:10 2023 +0200
|
||||||
|
|
||||||
|
gpsd/net_dgpsip.c: Fix socket check.
|
||||||
|
|
||||||
|
diff --git a/gpsd/net_dgpsip.c b/gpsd/net_dgpsip.c
|
||||||
|
index d6e123b67..8e218ba41 100644
|
||||||
|
--- a/gpsd/net_dgpsip.c
|
||||||
|
+++ b/gpsd/net_dgpsip.c
|
||||||
|
@@ -42,7 +42,7 @@ socket_t dgpsip_open(struct gps_device_t *device, const char *dgpsserver)
|
||||||
|
}
|
||||||
|
|
||||||
|
dsock = netlib_connectsock(AF_UNSPEC, dgpsserver, dgpsport, "tcp");
|
||||||
|
- if (0 <= dsock) {
|
||||||
|
+ if (0 > dsock) {
|
||||||
|
GPSD_LOG(LOG_ERROR, &device->context->errout,
|
||||||
|
"DGPS: can't connect to DGPS server %s, netlib error %s(%d).\n",
|
||||||
|
dgpsserver, netlib_errstr(dsock), dsock);
|
||||||
|
|
||||||
|
commit 60bc3595dbb74f8904037ad64b2a0820c408996b
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Mon Jul 31 15:50:32 2023 +0200
|
||||||
|
|
||||||
|
clients/gpsdebuginfo: Fix issues reported by shellcheck.
|
||||||
|
|
||||||
|
diff --git a/clients/gpsdebuginfo b/clients/gpsdebuginfo
|
||||||
|
index fa970dad9..38a1540b2 100755
|
||||||
|
--- a/clients/gpsdebuginfo
|
||||||
|
+++ b/clients/gpsdebuginfo
|
||||||
|
@@ -7,7 +7,7 @@ exec 2>&1
|
||||||
|
|
||||||
|
# print what we do
|
||||||
|
set -x
|
||||||
|
-if [ 0 != $(id -u) ]; then
|
||||||
|
+if [ 0 != "$(id -u)" ]; then
|
||||||
|
echo "Please run as root"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
@@ -63,9 +63,9 @@ ls -l /dev/pps* /dev/tty[ASTU]* /dev/gps*
|
||||||
|
if command -v lsusb; then
|
||||||
|
lsusb
|
||||||
|
fi
|
||||||
|
-echo PYTHONPATH $PYTHONPATH
|
||||||
|
+echo PYTHONPATH "$PYTHONPATH"
|
||||||
|
if command -v gpscat; then
|
||||||
|
- head -n 1 `command -v gpscat`
|
||||||
|
+ head -n 1 "$(command -v gpscat)"
|
||||||
|
fi
|
||||||
|
if command -v python; then
|
||||||
|
python -V
|
||||||
|
|
||||||
|
commit e12265d591f07a50d6de54af83ae6246326460ef
|
||||||
|
Author: Miroslav Lichvar <mlichvar@redhat.com>
|
||||||
|
Date: Mon Jul 31 15:50:58 2023 +0200
|
||||||
|
|
||||||
|
gpsinit: Fix issues reported by shellcheck.
|
||||||
|
|
||||||
|
diff --git a/gpsinit b/gpsinit
|
||||||
|
index 5c14f3374..8fc6c92ec 100755
|
||||||
|
--- a/gpsinit
|
||||||
|
+++ b/gpsinit
|
||||||
|
@@ -6,26 +6,23 @@
|
||||||
|
# SPDX-License-Identifier: BSD-2-clause
|
||||||
|
#
|
||||||
|
|
||||||
|
-speed=38400
|
||||||
|
net=0
|
||||||
|
|
||||||
|
version()
|
||||||
|
{
|
||||||
|
- echo `basename $0`" : Version v0.21";
|
||||||
|
+ echo "$(basename "$0") : Version v0.21";
|
||||||
|
}
|
||||||
|
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
version; echo;
|
||||||
|
- echo "usage :" `basename $0` "[-n <netnumber>] [-s <serial speed>] <can_module_name> [<interface_name>]";
|
||||||
|
- echo " :" `basename $0` "-V";
|
||||||
|
- echo " :" `basename $0` "-h";
|
||||||
|
+ echo "usage : $(basename "$0") [-n <netnumber>] <can_module_name> [<interface_name>]";
|
||||||
|
+ echo " : $(basename "$0") -V";
|
||||||
|
+ echo " : $(basename "$0") -h";
|
||||||
|
echo " Options include:";
|
||||||
|
echo " -? = Print this help message and exit.";
|
||||||
|
echo " -h = Print this help message and exit.";
|
||||||
|
echo " -n = CAN network number, 0 if not given.";
|
||||||
|
- echo " -s = Speed of the slcan hardware port, 38400 if not given.";
|
||||||
|
- echo " = Needed for some slcan modules only.";
|
||||||
|
echo " -V = Print version of this script and exit.";
|
||||||
|
echo " can_module_name = One out of plx_pci, esd_usb2, usb_8dev, vcan, slcan, beaglebone.";
|
||||||
|
echo " interface_name = The interface, the SLCAN module is connected to, i.e. /dev/ttyS0 or /dev/ttyUSB0.";
|
||||||
|
@@ -34,19 +31,19 @@ usage()
|
||||||
|
}
|
||||||
|
|
||||||
|
# -v for version is deprecated 2020
|
||||||
|
-while getopts :n:s:vh opt
|
||||||
|
+while getopts :n:s:vVh opt
|
||||||
|
do
|
||||||
|
case ${opt} in
|
||||||
|
h) usage; exit 0;;
|
||||||
|
n) net=${OPTARG};;
|
||||||
|
- s) speed=${OPTARG};;
|
||||||
|
+ s) ;; # unused
|
||||||
|
\?) usage; exit 1;;
|
||||||
|
v) version; exit 0;;
|
||||||
|
V) version; exit 0;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
-shift $((${OPTIND} - 1))
|
||||||
|
+shift $((OPTIND - 1))
|
||||||
|
|
||||||
|
candevice=$1
|
||||||
|
|
||||||
|
@@ -54,38 +51,38 @@ case ${candevice} in
|
||||||
|
plx_pci)
|
||||||
|
# For the SJA1000 based PCI or PCI-Express CAN interface
|
||||||
|
modprobe plx_pci;
|
||||||
|
- ip link set can${net} type can tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1;
|
||||||
|
- ip link set can${net} up;;
|
||||||
|
+ ip link set "can${net}" type can tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1;
|
||||||
|
+ ip link set "can${net}" up;;
|
||||||
|
esd_usb2)
|
||||||
|
# For an esd usb/2 CAN interface
|
||||||
|
modprobe esd_usb2;
|
||||||
|
- ip link set can${net} type can tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1;
|
||||||
|
- ip link set can${net} up;;
|
||||||
|
+ ip link set "can${net}" type can tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1;
|
||||||
|
+ ip link set "can${net}" up;;
|
||||||
|
usb_8dev)
|
||||||
|
# For an 8devices usb2can CAN interface
|
||||||
|
modprobe usb_8dev;
|
||||||
|
- ip link set can${net} type can tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1;
|
||||||
|
- ip link set can${net} up;;
|
||||||
|
+ ip link set "can${net}" type can tq 250 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1;
|
||||||
|
+ ip link set "can${net}" up;;
|
||||||
|
vcan)
|
||||||
|
# With this setup, CAN frames can be injected into vcan0 by a test
|
||||||
|
modprobe vcan;
|
||||||
|
ip link add type vcan;
|
||||||
|
- ip link set vcan${net} up;;
|
||||||
|
+ ip link set "vcan${net}" up;;
|
||||||
|
slcan)
|
||||||
|
# For a serial line CAN device
|
||||||
|
# No support for devices, that need a setup of the baudrate yet
|
||||||
|
device=${2:-/dev/ttyUSB0};
|
||||||
|
modprobe slcan;
|
||||||
|
- slcan_attach -f -s5 -o ${device};
|
||||||
|
- slcand `basename ${device}`;
|
||||||
|
- ip link set slcan${net} up;;
|
||||||
|
+ slcan_attach -f -s5 -o "${device}";
|
||||||
|
+ slcand "$(basename "${device}")";
|
||||||
|
+ ip link set "slcan${net}" up;;
|
||||||
|
beaglebone)
|
||||||
|
# For CAN interface on a BeagleBone
|
||||||
|
# The d_can driver is part of the kernel
|
||||||
|
- ip link set can${net} type can bitrate 250000 sjw 1;
|
||||||
|
- ip link set can${net} up;;
|
||||||
|
+ ip link set "can${net}" type can bitrate 250000 sjw 1;
|
||||||
|
+ ip link set "can${net}" up;;
|
||||||
|
*)
|
||||||
|
- echo `basename ${0}` ": invalid CAN interface ${1} net${net} device ${2:-(none)}"
|
||||||
|
+ echo "$(basename "$0") : invalid CAN interface ${1} net${net} device ${2:-(none)}"
|
||||||
|
echo;
|
||||||
|
usage;
|
||||||
|
exit 1
|
@ -0,0 +1,22 @@
|
|||||||
|
diff -up gpsd-3.25/SConscript.sconsflags gpsd-3.25/SConscript
|
||||||
|
--- gpsd-3.25/SConscript.sconsflags 2024-04-22 15:14:25.672775265 +0200
|
||||||
|
+++ gpsd-3.25/SConscript 2024-04-22 15:18:33.935960954 +0200
|
||||||
|
@@ -619,12 +619,15 @@ for i in ["ARFLAGS",
|
||||||
|
"SHLINKFLAGS",
|
||||||
|
]:
|
||||||
|
if i in os.environ:
|
||||||
|
- env.MergeFlags(Split(os.getenv(i)))
|
||||||
|
+ t = i
|
||||||
|
+ if t == "LDFLAGS":
|
||||||
|
+ t = "LINKFLAGS"
|
||||||
|
+ env.MergeFlags({t: Split(os.getenv(i))})
|
||||||
|
|
||||||
|
|
||||||
|
-# Keep scan-build options in the environment
|
||||||
|
+# Keep scan-build and rpm options in the environment
|
||||||
|
for key, value in os.environ.items():
|
||||||
|
- if key.startswith('CCC_'):
|
||||||
|
+ if key.startswith('CCC_') or key.startswith('RPM_'):
|
||||||
|
env.Append(ENV={key: value})
|
||||||
|
|
||||||
|
# Placeholder so we can kluge together something like VPATH builds.
|
@ -0,0 +1,4 @@
|
|||||||
|
# Options for gpsd, including serial devices
|
||||||
|
OPTIONS=""
|
||||||
|
# Set to 'true' to add USB devices automatically via udev
|
||||||
|
USBAUTO="true"
|
@ -0,0 +1,833 @@
|
|||||||
|
%if 0%{?rhel} >= 10
|
||||||
|
# libgps ABI changes too frequently to be provided for other applications
|
||||||
|
%global with_libs 0
|
||||||
|
%global with_qt 0
|
||||||
|
%else
|
||||||
|
%global with_libs 1
|
||||||
|
%global with_qt 1
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%global scons_ver 4.6.0
|
||||||
|
%global scons python3 scons-%{scons_ver}/scripts/scons.py
|
||||||
|
%global note1 The Red Hat support for this package is limited. See
|
||||||
|
%global note2 https://access.redhat.com/support/policy/gpsd-support for more details.
|
||||||
|
|
||||||
|
Name: gpsd
|
||||||
|
Version: 3.25
|
||||||
|
Release: 16%{?dist}
|
||||||
|
Epoch: 1
|
||||||
|
Summary: Service daemon for mediating access to a GPS
|
||||||
|
|
||||||
|
License: BSD-2-Clause
|
||||||
|
URL: https://gpsd.gitlab.io/gpsd/index.html
|
||||||
|
Source0: https://download-mirror.savannah.gnu.org/releases/gpsd/%{name}-%{version}.tar.gz
|
||||||
|
# used only for building
|
||||||
|
Source1: https://github.com/SCons/scons/archive/%{scons_ver}/scons-%{scons_ver}.tar.gz
|
||||||
|
Source11: gpsd.sysconfig
|
||||||
|
|
||||||
|
# add missing IPv6 support
|
||||||
|
Patch1: gpsd-ipv6.patch
|
||||||
|
# fix some issues reported by coverity and shellcheck
|
||||||
|
Patch2: gpsd-scanfixes.patch
|
||||||
|
# fix busy wait when reading from gpsd socket
|
||||||
|
Patch3: gpsd-busywait.patch
|
||||||
|
# don't ignore unrecognized options in CFLAGS/LDFLAGS
|
||||||
|
Patch4: gpsd-sconsflags.patch
|
||||||
|
|
||||||
|
BuildRequires: gcc
|
||||||
|
BuildRequires: dbus-devel
|
||||||
|
BuildRequires: ncurses-devel
|
||||||
|
BuildRequires: python3-devel
|
||||||
|
BuildRequires: python3-setuptools
|
||||||
|
BuildRequires: gtk3-devel
|
||||||
|
BuildRequires: python3-gobject
|
||||||
|
BuildRequires: python3-cairo
|
||||||
|
BuildRequires: python3-pyserial
|
||||||
|
BuildRequires: desktop-file-utils
|
||||||
|
BuildRequires: bluez-libs-devel
|
||||||
|
BuildRequires: pps-tools-devel
|
||||||
|
BuildRequires: systemd-rpm-macros
|
||||||
|
%if %{with_qt}
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: qt-devel
|
||||||
|
%endif
|
||||||
|
BuildRequires: libusb1-devel
|
||||||
|
|
||||||
|
Requires: udev
|
||||||
|
%{?systemd_requires}
|
||||||
|
|
||||||
|
%if !%{with_libs}
|
||||||
|
Obsoletes: gpsd-libs < %{epoch}:%{version}-%{release}
|
||||||
|
Obsoletes: gpsd-devel < %{epoch}:%{version}-%{release}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
Obsoletes: gpsd-minimal
|
||||||
|
|
||||||
|
%description
|
||||||
|
gpsd is a service daemon that mediates access to a GPS sensor
|
||||||
|
connected to the host computer by serial or USB interface, making its
|
||||||
|
data on the location/course/velocity of the sensor available to be
|
||||||
|
queried on TCP port 2947 of the host computer. With gpsd, multiple
|
||||||
|
GPS client applications (such as navigational and war-driving software)
|
||||||
|
can share access to a GPS without contention or loss of data. Also,
|
||||||
|
gpsd responds to queries with a format that is substantially easier to
|
||||||
|
parse than NMEA 0183.
|
||||||
|
|
||||||
|
%if %{with_libs}
|
||||||
|
%package libs
|
||||||
|
Summary: Client libraries in C for talking to a running gpsd or GPS
|
||||||
|
|
||||||
|
%description libs
|
||||||
|
This package contains the gpsd libraries that manage access
|
||||||
|
to a GPS for applications.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Development files for the gpsd library
|
||||||
|
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
This package provides C header files for the gpsd shared libraries that
|
||||||
|
manage access to a GPS for applications
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with_qt}
|
||||||
|
%package qt
|
||||||
|
Summary: C++/Qt5 bindings for the gpsd library
|
||||||
|
%if %{with_libs}
|
||||||
|
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description qt
|
||||||
|
This package provide C++ and Qt bindings for use with the libgps library from
|
||||||
|
gpsd.
|
||||||
|
|
||||||
|
%package qt-devel
|
||||||
|
Summary: Development files for the C++/Qt5 bindings for the gpsd library
|
||||||
|
Requires: %{name}-qt%{?_isa} = %{epoch}:%{version}-%{release}
|
||||||
|
|
||||||
|
%description qt-devel
|
||||||
|
This package provides the development files for the C++ and Qt bindings for use
|
||||||
|
with the libgps library from gpsd.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%package -n python3-%{name}
|
||||||
|
Summary: Python libraries and modules for use with gpsd
|
||||||
|
%if %{with_libs}
|
||||||
|
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
|
||||||
|
%endif
|
||||||
|
Requires: python3-pyserial
|
||||||
|
%{?python_provide:%python_provide python3-%{name}}
|
||||||
|
|
||||||
|
%description -n python3-%{name}
|
||||||
|
This package contains the python3 modules that manage access to a GPS for
|
||||||
|
applications.
|
||||||
|
|
||||||
|
%package clients
|
||||||
|
Summary: Clients for gpsd
|
||||||
|
Requires: python3-%{name} = %{epoch}:%{version}-%{release}
|
||||||
|
%if %{with_libs}
|
||||||
|
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
|
||||||
|
%endif
|
||||||
|
Obsoletes: gpsd-minimal-clients
|
||||||
|
|
||||||
|
%description clients
|
||||||
|
This package contains various clients using gpsd.
|
||||||
|
|
||||||
|
%package xclients
|
||||||
|
Summary: Graphical clients for gpsd
|
||||||
|
Requires: python3-%{name} = %{epoch}:%{version}-%{release}
|
||||||
|
Requires: python3-cairo
|
||||||
|
Requires: python3-gobject
|
||||||
|
Requires: gtk3
|
||||||
|
# subpackage split
|
||||||
|
Conflicts: gpsd-clients < 1:3.25-6
|
||||||
|
|
||||||
|
%description xclients
|
||||||
|
This package contains X clients using gpsd.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -a 1
|
||||||
|
%patch -P 1 -p1 -b .ipv6
|
||||||
|
%patch -P 2 -p1 -b .scanfixes
|
||||||
|
%patch -P 3 -p1 -b .busywait
|
||||||
|
%patch -P 4 -p1 -b .sconsflags
|
||||||
|
|
||||||
|
# add note to man pages about limited support
|
||||||
|
sed -i ':a;$!{N;ba};s|\(\.SH "[^"]*"\)|.SH "NOTE"\n%{note1}\n%{note2}\n\1|3' \
|
||||||
|
man/*.{1,8}
|
||||||
|
|
||||||
|
# don't try reloading systemd when installing in the build root
|
||||||
|
sed -i 's|systemctl daemon-reload|true|' SConscript
|
||||||
|
|
||||||
|
iconv -f iso8859-1 -t utf8 NEWS > NEWS_ && mv NEWS_ NEWS
|
||||||
|
|
||||||
|
%build
|
||||||
|
export CCFLAGS="%{optflags}"
|
||||||
|
# scons ignores LDFLAGS. LINKFLAGS partially work (some flags like
|
||||||
|
# -spec=... are filtered)
|
||||||
|
export LINKFLAGS="%{__global_ldflags}"
|
||||||
|
|
||||||
|
# breaks with %%{_smp_mflags}
|
||||||
|
%{scons} \
|
||||||
|
dbus_export=yes \
|
||||||
|
systemd=yes \
|
||||||
|
%if %{with_qt}
|
||||||
|
qt=yes \
|
||||||
|
%else
|
||||||
|
qt=no \
|
||||||
|
%endif
|
||||||
|
debug=yes \
|
||||||
|
leapfetch=no \
|
||||||
|
manbuild=no \
|
||||||
|
prefix="" \
|
||||||
|
sysconfdif=%{_sysconfdir} \
|
||||||
|
bindir=%{_bindir} \
|
||||||
|
includedir=%{_includedir} \
|
||||||
|
libdir=%{_libdir} \
|
||||||
|
sbindir=%{_sbindir} \
|
||||||
|
mandir=%{_mandir} \
|
||||||
|
mibdir=%{_docdir}/gpsd \
|
||||||
|
docdir=%{_docdir}/gpsd \
|
||||||
|
pkgconfigdir=%{_libdir}/pkgconfig \
|
||||||
|
icondir=%{_datadir}/gpsd \
|
||||||
|
udevdir=$(dirname %{_udevrulesdir}) \
|
||||||
|
unitdir=%{_unitdir} \
|
||||||
|
target_python=python3 \
|
||||||
|
python_shebang=%{python3} \
|
||||||
|
python_libdir=%{python3_sitearch} \
|
||||||
|
build
|
||||||
|
|
||||||
|
%install
|
||||||
|
# avoid rebuilding
|
||||||
|
export CCFLAGS="%{optflags}"
|
||||||
|
export LINKFLAGS="%{__global_ldflags}"
|
||||||
|
|
||||||
|
DESTDIR=%{buildroot} %{scons} install systemd_install udev-install
|
||||||
|
|
||||||
|
# use the old name for udev rules
|
||||||
|
mv %{buildroot}%{_udevrulesdir}/{25,99}-gpsd.rules
|
||||||
|
|
||||||
|
install -d -m 0755 %{buildroot}%{_sysconfdir}/sysconfig
|
||||||
|
install -p -m 0644 %{SOURCE11} \
|
||||||
|
%{buildroot}%{_sysconfdir}/sysconfig/gpsd
|
||||||
|
|
||||||
|
# Install the .desktop files
|
||||||
|
desktop-file-install \
|
||||||
|
--dir %{buildroot}%{_datadir}/applications \
|
||||||
|
gpsd-%{version}/packaging/X11/xgps.desktop
|
||||||
|
desktop-file-install \
|
||||||
|
--dir %{buildroot}%{_datadir}/applications \
|
||||||
|
gpsd-%{version}/packaging/X11/xgpsspeed.desktop
|
||||||
|
|
||||||
|
# Missed in scons install
|
||||||
|
install -p -m 0755 gpsinit %{buildroot}%{_sbindir}
|
||||||
|
|
||||||
|
# Remove shebang and fix permissions
|
||||||
|
sed -i '/^#!.*python/d' %{buildroot}%{python3_sitearch}/gps/{aio,}gps.py
|
||||||
|
chmod 644 %{buildroot}%{python3_sitearch}/gps/gps.py
|
||||||
|
|
||||||
|
rm -f %{buildroot}%{_libdir}/libgpsdpacket.so
|
||||||
|
|
||||||
|
# Remove unpackaged files
|
||||||
|
%if !%{with_libs}
|
||||||
|
rm -f %{buildroot}%{_libdir}/lib{gps*.so,gps.so.*}
|
||||||
|
rm -rf %{buildroot}%{_libdir}/pkgconfig
|
||||||
|
rm -rf %{buildroot}%{_includedir}
|
||||||
|
rm -rf %{buildroot}%{_mandir}/man{3,5}
|
||||||
|
%endif
|
||||||
|
%if !%{with_qt}
|
||||||
|
rm -f %{buildroot}%{_libdir}/libQgpsmm* \
|
||||||
|
%{buildroot}%{_libdir}/pkgconfig/Qgpsmm* \
|
||||||
|
%{buildroot}%{_mandir}/man3/libQgpsmm.3*
|
||||||
|
%endif
|
||||||
|
rm -rf %{buildroot}%{_docdir}/gpsd
|
||||||
|
|
||||||
|
%post
|
||||||
|
%systemd_post gpsd.service gpsd.socket
|
||||||
|
|
||||||
|
%preun
|
||||||
|
%systemd_preun gpsd.service gpsd.socket
|
||||||
|
|
||||||
|
%postun
|
||||||
|
# Don't restart the service
|
||||||
|
%systemd_postun gpsd.service gpsd.socket
|
||||||
|
|
||||||
|
%if %{with_libs}
|
||||||
|
%ldconfig_scriptlets libs
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with_qt}
|
||||||
|
%ldconfig_scriptlets qt
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%files
|
||||||
|
%doc README.adoc NEWS
|
||||||
|
%license COPYING
|
||||||
|
%config(noreplace) %{_sysconfdir}/sysconfig/%{name}
|
||||||
|
%{_sbindir}/gpsd
|
||||||
|
%{_sbindir}/gpsdctl
|
||||||
|
%{_sbindir}/gpsinit
|
||||||
|
%{_bindir}/gpsmon
|
||||||
|
%{_bindir}/gpsctl
|
||||||
|
%{_bindir}/ntpshmmon
|
||||||
|
%{_bindir}/ppscheck
|
||||||
|
%{_unitdir}/gpsd.service
|
||||||
|
%{_unitdir}/gpsd.socket
|
||||||
|
%{_unitdir}/gpsdctl@.service
|
||||||
|
%{_udevrulesdir}/*.rules
|
||||||
|
%{_mandir}/man8/gpsd.8*
|
||||||
|
%{_mandir}/man8/gpsdctl.8*
|
||||||
|
%{_mandir}/man8/gpsinit.8*
|
||||||
|
%{_mandir}/man8/ppscheck.8*
|
||||||
|
%{_mandir}/man1/gpsmon.1*
|
||||||
|
%{_mandir}/man1/gpsctl.1*
|
||||||
|
%{_mandir}/man1/ntpshmmon.1*
|
||||||
|
|
||||||
|
%if %{with_libs}
|
||||||
|
%files libs
|
||||||
|
%{_libdir}/libgps.so.30*
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%doc TODO HACKING
|
||||||
|
%{_libdir}/libgps.so
|
||||||
|
%{_libdir}/pkgconfig/libgps.pc
|
||||||
|
%{_includedir}/gps.h
|
||||||
|
%{_includedir}/libgpsmm.h
|
||||||
|
%{_mandir}/man3/libgps.3*
|
||||||
|
%{_mandir}/man3/libgpsmm.3*
|
||||||
|
%{_mandir}/man5/gpsd_json.5*
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with_qt}
|
||||||
|
%files qt
|
||||||
|
%{_libdir}/libQgpsmm.so.30*
|
||||||
|
|
||||||
|
%files qt-devel
|
||||||
|
%{_libdir}/libQgpsmm.so
|
||||||
|
%{_libdir}/libQgpsmm.prl
|
||||||
|
%{_libdir}/pkgconfig/Qgpsmm.pc
|
||||||
|
%{_mandir}/man3/libQgpsmm.3*
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%files -n python3-%{name}
|
||||||
|
%license COPYING
|
||||||
|
%{_libdir}/libgpsdpacket.so*
|
||||||
|
%{python3_sitearch}/gps*
|
||||||
|
|
||||||
|
%files clients
|
||||||
|
%{_bindir}/cgps
|
||||||
|
%{_bindir}/gegps
|
||||||
|
%{_bindir}/gps2udp
|
||||||
|
%{_bindir}/gpscat
|
||||||
|
%{_bindir}/gpscsv
|
||||||
|
%{_bindir}/gpsdebuginfo
|
||||||
|
%{_bindir}/gpsdecode
|
||||||
|
%{_bindir}/gpspipe
|
||||||
|
%{_bindir}/gpsplot
|
||||||
|
%{_bindir}/gpsprof
|
||||||
|
%{_bindir}/gpsrinex
|
||||||
|
%{_bindir}/gpssnmp
|
||||||
|
%{_bindir}/gpssubframe
|
||||||
|
%{_bindir}/gpxlogger
|
||||||
|
%{_bindir}/lcdgps
|
||||||
|
%{_bindir}/gpsfake
|
||||||
|
%{_bindir}/ubxtool
|
||||||
|
%{_bindir}/zerk
|
||||||
|
%{_mandir}/man1/gegps.1*
|
||||||
|
%{_mandir}/man1/gps.1*
|
||||||
|
%{_mandir}/man1/gps2udp.1*
|
||||||
|
%{_mandir}/man1/gpscsv.1*
|
||||||
|
%{_mandir}/man1/gpsdebuginfo.1*
|
||||||
|
%{_mandir}/man1/gpsdecode.1*
|
||||||
|
%{_mandir}/man1/gpspipe.1*
|
||||||
|
%{_mandir}/man1/gpsplot.1*
|
||||||
|
%{_mandir}/man1/gpsprof.1*
|
||||||
|
%{_mandir}/man1/gpsrinex.1*
|
||||||
|
%{_mandir}/man1/gpssnmp.1*
|
||||||
|
%{_mandir}/man1/gpssubframe.1*
|
||||||
|
%{_mandir}/man1/gpxlogger.1*
|
||||||
|
%{_mandir}/man1/lcdgps.1*
|
||||||
|
%{_mandir}/man1/cgps.1*
|
||||||
|
%{_mandir}/man1/gpscat.1*
|
||||||
|
%{_mandir}/man1/gpsfake.1*
|
||||||
|
%{_mandir}/man1/ubxtool.1*
|
||||||
|
%{_mandir}/man1/zerk.1*
|
||||||
|
|
||||||
|
%files xclients
|
||||||
|
%{_bindir}/xgps
|
||||||
|
%{_bindir}/xgpsspeed
|
||||||
|
%{_datadir}/applications/*.desktop
|
||||||
|
%dir %{_datadir}/gpsd
|
||||||
|
%{_datadir}/gpsd/gpsd-logo.png
|
||||||
|
%{_mandir}/man1/xgps.1*
|
||||||
|
%{_mandir}/man1/xgpsspeed.1*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue Nov 26 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 1:3.25-16
|
||||||
|
- Rebuilt for MSVSphere 10
|
||||||
|
|
||||||
|
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1:3.25-16
|
||||||
|
- Bump release for June 2024 mass rebuild
|
||||||
|
|
||||||
|
* Thu Apr 25 2024 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.25-15
|
||||||
|
- fix icon path in desktop files (RHEL-34158)
|
||||||
|
- replace gpsd-minimal conflicts with obsoletes (RHEL-33651)
|
||||||
|
|
||||||
|
* Tue Apr 23 2024 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.25-14
|
||||||
|
- fix annobin coverage (RHEL-33496)
|
||||||
|
- add conflicts for gpsd-minimal (RHEL-33651)
|
||||||
|
- drop compat subpackage (RHEL-33651)
|
||||||
|
|
||||||
|
* Tue Apr 16 2024 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.25-13
|
||||||
|
- fix dependencies for build without libs
|
||||||
|
|
||||||
|
* Mon Apr 15 2024 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.25-12
|
||||||
|
- rebuild
|
||||||
|
|
||||||
|
* Tue Feb 20 2024 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.25-11
|
||||||
|
- internalize scons (RHEL-14750)
|
||||||
|
- add missing IPv6 support
|
||||||
|
- add note about limited Red Hat support
|
||||||
|
- drop unneeded API-compatibility patch
|
||||||
|
- fix busy wait when reading from gpsd socket
|
||||||
|
- fix some issues reported by coverity and shellcheck
|
||||||
|
|
||||||
|
* Wed Jan 24 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.25-10
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jan 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.25-9
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Oct 03 2023 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.25-8
|
||||||
|
- disable libs and devel subpackages on RHEL
|
||||||
|
- don't require libs in main package
|
||||||
|
|
||||||
|
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.25-7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jul 17 2023 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.25-6
|
||||||
|
- split X clients to separate subpackage
|
||||||
|
- add missing dependencies for python clients
|
||||||
|
- add explicit gcc dependency
|
||||||
|
- drop xmlto from build dependencies
|
||||||
|
- enable libusb1-devel on s390x
|
||||||
|
- fix qt build option
|
||||||
|
- fix spec indentation
|
||||||
|
|
||||||
|
* Thu Jun 15 2023 Python Maint <python-maint@redhat.com> - 1:3.25-5
|
||||||
|
- Rebuilt for Python 3.12
|
||||||
|
|
||||||
|
* Thu May 11 2023 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.25-4
|
||||||
|
- convert NEWS to UTF-8
|
||||||
|
- remove shebang in python module files and fix permissions
|
||||||
|
- remove unnecessary .so symlink
|
||||||
|
- update URL
|
||||||
|
|
||||||
|
* Sun Mar 12 2023 Tim Orling <ticotimo@gmail.com> - 1:3.25-3
|
||||||
|
- migrated to SPDX license
|
||||||
|
|
||||||
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.25-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jan 11 2023 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.25-1
|
||||||
|
- update to 3.25
|
||||||
|
|
||||||
|
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.24-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1:3.24-2
|
||||||
|
- Rebuilt for Python 3.11
|
||||||
|
|
||||||
|
* Wed May 04 2022 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.24-1
|
||||||
|
- update to 3.24
|
||||||
|
|
||||||
|
* Sat Feb 12 2022 Jeff Law <jeffreyalaw@gmail.com> - 1:3.23.1-3
|
||||||
|
- Re-enable LTO
|
||||||
|
|
||||||
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.23.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Sep 27 2021 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.23.1-1
|
||||||
|
- update to 3.23.1
|
||||||
|
- add old status names to gps.h for compatibility
|
||||||
|
|
||||||
|
* Wed Aug 11 2021 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.23-1
|
||||||
|
- update to 3.23
|
||||||
|
|
||||||
|
* Wed Aug 11 2021 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.22-5
|
||||||
|
- fix handling of GPS weeks after 2180 (#1989379)
|
||||||
|
|
||||||
|
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.22-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1:3.22-3
|
||||||
|
- Rebuilt for Python 3.10
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.22-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jan 12 2021 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.22-1
|
||||||
|
- update to 3.22
|
||||||
|
- keep all python modules in python subpackage
|
||||||
|
- move gpsprof to clients subpackage
|
||||||
|
- disable LTO on aarch64
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.20-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jun 18 2020 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.20-1
|
||||||
|
- update to 3.20
|
||||||
|
|
||||||
|
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1:3.19-6
|
||||||
|
- Rebuilt for Python 3.9
|
||||||
|
|
||||||
|
* Mon Feb 03 2020 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.19-5
|
||||||
|
- fix missing epoch in dependencies (#1797370)
|
||||||
|
|
||||||
|
* Fri Jan 31 2020 Dan Horák <dan[at]danny.cz> - 1:3.19-2
|
||||||
|
- all Requires must use Epoch too
|
||||||
|
|
||||||
|
* Tue Jan 28 2020 Miroslav Lichvar <mlichvar@redhat.com> - 1:3.19-1
|
||||||
|
- revert to 3.19 (#1787784)
|
||||||
|
|
||||||
|
* Tue Jan 21 2020 Fabian Affolter <mail@fabian-affolter.ch> - 3.20-2
|
||||||
|
- Update to latest upstream release 3.20
|
||||||
|
|
||||||
|
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 3.19-4
|
||||||
|
- Rebuilt for Python 3.8.0rc1 (#1748018)
|
||||||
|
|
||||||
|
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 3.19-3
|
||||||
|
- Rebuilt for Python 3.8
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.19-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 02 2019 Miroslav Lichvar <mlichvar@redhat.com> - 3.19-1
|
||||||
|
- update to 3.19
|
||||||
|
- fix systemd scriptlet (#1716467)
|
||||||
|
|
||||||
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.18.1-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Oct 24 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.18.1-1
|
||||||
|
- update to 3.18.1
|
||||||
|
|
||||||
|
* Tue Oct 09 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.18-3
|
||||||
|
- fix paths in systemd unit files
|
||||||
|
|
||||||
|
* Tue Oct 09 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.18-2
|
||||||
|
- use python3 scons and fix build requirements for xgps
|
||||||
|
|
||||||
|
* Thu Oct 04 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.18-1
|
||||||
|
- update to 3.18
|
||||||
|
- drop python2 subpackage (#1633793)
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.17-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 3.17-4
|
||||||
|
- Rebuilt for Python 3.7
|
||||||
|
|
||||||
|
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.17-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jan 30 2018 Miroslav Lichvar <mlichvar@redhat.com> - 3.17-2
|
||||||
|
- use macro for systemd scriptlet dependencies
|
||||||
|
- use macro for ldconfig scriptlets
|
||||||
|
|
||||||
|
* Fri Sep 08 2017 Troy Curtis, Jr <troycurtisjr@gmail.com> - 3.17-1
|
||||||
|
- Update to 3.17
|
||||||
|
- Build both python2 and python3 files and install into separate subpackages
|
||||||
|
- Add Qt5 subpackage
|
||||||
|
|
||||||
|
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.16-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.16-5
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 3.16-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.16-3
|
||||||
|
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
|
||||||
|
|
||||||
|
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 3.16-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jan 11 2016 Miroslav Lichvar <mlichvar@redhat.com> - 3.16-1
|
||||||
|
- update to 3.16
|
||||||
|
|
||||||
|
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.15-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Jun 05 2015 Miroslav Lichvar <mlichvar@redhat.com> - 3.15-1
|
||||||
|
- update to 3.15
|
||||||
|
|
||||||
|
* Tue Apr 21 2015 Miroslav Lichvar <mlichvar@redhat.com> - 3.14-1
|
||||||
|
- update to 3.14
|
||||||
|
|
||||||
|
* Fri Mar 06 2015 Rex Dieter <rdieter@fedoraproject.org> 3.13-2
|
||||||
|
- track library sonames and api files closer, so bumps aren't a surprise
|
||||||
|
|
||||||
|
* Mon Mar 02 2015 Miroslav Lichvar <mlichvar@redhat.com> - 3.13-1
|
||||||
|
- update to 3.13
|
||||||
|
|
||||||
|
* Mon Aug 25 2014 Miroslav Lichvar <mlichvar@redhat.com> - 3.11-1
|
||||||
|
- update to 3.11
|
||||||
|
|
||||||
|
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10-6.20140524gitd6b65b
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Jul 02 2014 Miroslav Lichvar <mlichvar@redhat.com> - 3.10-5.20140524gitd6b65b
|
||||||
|
- update to 20140524gitd6b65b
|
||||||
|
- fix PPS with large offsets
|
||||||
|
- set gpsd revision string to include package revision
|
||||||
|
|
||||||
|
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.10-4.20140127gitf2753b
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Feb 20 2014 Miroslav Lichvar <mlichvar@redhat.com> - 3.10-3.20140127gitf2753b
|
||||||
|
- update to 20140127gitf2753b
|
||||||
|
- replace udev hotplug script with gpsdctl service (#909563)
|
||||||
|
- add dependency on gpsd.socket to gpsd.service
|
||||||
|
- reenable dbus export
|
||||||
|
|
||||||
|
* Fri Dec 20 2013 Miroslav Lichvar <mlichvar@redhat.com> - 3.10-2
|
||||||
|
- use systemd socket activation (#909563)
|
||||||
|
- don't use -n in default gpsd service options
|
||||||
|
- update gpsd service file
|
||||||
|
|
||||||
|
* Mon Nov 25 2013 Miroslav Lichvar <mlichvar@redhat.com> - 3.10-1
|
||||||
|
- update to 3.10
|
||||||
|
- move udev rules from /etc to /usr/lib (#971851)
|
||||||
|
- enable hardened build (#1000643)
|
||||||
|
- drop also supplementary groups when dropping privileges
|
||||||
|
- set time stamp in chrony SOCK sample correctly
|
||||||
|
- remove RPATH from all files
|
||||||
|
- don't package INSTALL file
|
||||||
|
|
||||||
|
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.9-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu May 02 2013 Miroslav Lichvar <mlichvar@redhat.com> - 3.9-1
|
||||||
|
- update to 3.9
|
||||||
|
- move files from /lib
|
||||||
|
|
||||||
|
* Wed Feb 27 2013 Miroslav Lichvar <mlichvar@redhat.com> - 3.8-1
|
||||||
|
- update to 3.8
|
||||||
|
- use systemd macros (#850135)
|
||||||
|
- don't set vendor for desktop files
|
||||||
|
- make some dependencies arch-specific
|
||||||
|
- remove obsolete macros
|
||||||
|
|
||||||
|
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.5-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Apr 30 2012 Miroslav Lichvar <mlichvar@redhat.com> - 3.5-1
|
||||||
|
- update to 3.5
|
||||||
|
|
||||||
|
* Thu Jan 26 2012 Miroslav Lichvar <mlichvar@redhat.com> - 3.4-1
|
||||||
|
- update to 3.4
|
||||||
|
|
||||||
|
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Oct 31 2011 Miroslav Lichvar <mlichvar@redhat.com> - 3.3-1
|
||||||
|
- update to 3.3
|
||||||
|
|
||||||
|
* Mon Aug 29 2011 Miroslav Lichvar <mlichvar@redhat.com> - 3.1-1
|
||||||
|
- update to 3.1
|
||||||
|
|
||||||
|
* Tue Aug 23 2011 Miroslav Lichvar <mlichvar@redhat.com> - 3.0-1
|
||||||
|
- update to 3.0
|
||||||
|
- enable PPSAPI support
|
||||||
|
- fix PPS without -N
|
||||||
|
- change service type to simple
|
||||||
|
- start after chrony
|
||||||
|
- fix permissions of systemd unit file
|
||||||
|
- fix ldconfig scriptlets
|
||||||
|
- package client-howto.txt
|
||||||
|
|
||||||
|
* Tue Jul 26 2011 Miroslav Lichvar <mlichvar@redhat.com> - 2.95-7
|
||||||
|
- make -libs subpackage (#663124)
|
||||||
|
- replace SysV initscript with systemd service (#717419)
|
||||||
|
- explicitly set USBAUTO=true in sysconfig file
|
||||||
|
|
||||||
|
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.95-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
||||||
|
|
||||||
|
* Wed Sep 29 2010 jkeating - 2.95-5
|
||||||
|
- Rebuilt for gcc bug 634757
|
||||||
|
|
||||||
|
* Tue Sep 14 2010 Miroslav Lichvar <mlichvar@redhat.com> - 2.95-4
|
||||||
|
- don't crash in gpscat when started without arguments (#633117)
|
||||||
|
|
||||||
|
* Fri Aug 27 2010 Dan Horák <dan[at]danny.cz> - 2.95-3
|
||||||
|
- no USB on s390(x)
|
||||||
|
|
||||||
|
* Wed Jul 21 2010 David Malcolm <dmalcolm@redhat.com> - 2.95-2
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild
|
||||||
|
|
||||||
|
* Thu Jul 15 2010 Miroslav Lichvar <mlichvar@redhat.com> - 2.95-1
|
||||||
|
- update to 2.95
|
||||||
|
- add /usr/sbin to PATH in gpsd.hotplug.wrapper
|
||||||
|
- pass sysconfig variables to gpsd started from udev
|
||||||
|
- enable libusb support
|
||||||
|
|
||||||
|
* Thu May 06 2010 Miroslav Lichvar <mlichvar@redhat.com> - 2.94-1
|
||||||
|
- update to 2.94 (#556642)
|
||||||
|
|
||||||
|
* Tue Mar 02 2010 Miroslav Lichvar <mlichvar@redhat.com> - 2.39-7
|
||||||
|
- don't use deprecated SYSFS{} in udev rules (#569089)
|
||||||
|
- fix init script LSB compliance
|
||||||
|
|
||||||
|
* Mon Feb 15 2010 Miroslav Lichvar <mlichvar@redhat.com> - 2.39-6
|
||||||
|
- fix linking with --no-add-needed (#564662)
|
||||||
|
- use %%global macro instead of %%define
|
||||||
|
|
||||||
|
* Wed Aug 12 2009 Marek Mahut <mmahut@fedoraproject.org> - 2.39-5
|
||||||
|
- RHBZ#505588: gpsd has a broken initscript that fails to launch daemon
|
||||||
|
|
||||||
|
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.39-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Mar 31 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 2.39-3
|
||||||
|
- some of the gpsd client bits went into gpsdclient.h, but that file wasn't getting installed
|
||||||
|
specifically, viking needs that header to build.
|
||||||
|
|
||||||
|
* Wed Mar 25 2009 Douglas E. Warner <silfreed@silfreed.net> - 2.39-2
|
||||||
|
- adding patch to try to fix parallel make errors
|
||||||
|
|
||||||
|
* Thu Mar 19 2009 Douglas E. Warner <silfreed@silfreed.net> - 2.39-1
|
||||||
|
- updating to 2.39
|
||||||
|
- fixed potential core dump in C client handling of "K" responses
|
||||||
|
- Made device hotplugging work again; had been broken by changes in udev
|
||||||
|
- Introduced major and minor API version symbols into the public interfaces
|
||||||
|
- The sirfmon utility is gone, replaced by gpsmon which does the same job
|
||||||
|
for multiple GPS types
|
||||||
|
- Fixed a two-year old error in NMEA parsing that nobody noticed because its
|
||||||
|
only effect was to trash VDOP values from GSA sentences, and gpsd computes
|
||||||
|
those with an internal error model when they look wonky
|
||||||
|
- cgpxlogger has been merged into gpxlogger
|
||||||
|
- Speed-setting commands now allow parity and stop-bit setting if the GPS
|
||||||
|
chipset and adaptor can support it
|
||||||
|
- Specfile and other packaging paraphenalia now live in a packaging
|
||||||
|
subdirectory
|
||||||
|
- rtcmdecode becomes gpsdecode and can now de-armor and dump AIDVM packets
|
||||||
|
- The client library now work correctly in locales where the decimal separator
|
||||||
|
is not a period
|
||||||
|
|
||||||
|
* Mon Mar 16 2009 Douglas E. Warner <silfreed@silfreed.net> - 2.38-1
|
||||||
|
- updating to 2.38
|
||||||
|
- creating init script and sysconfig files
|
||||||
|
- migrating hotplug rules to udev + hotplug wrapper script from svn r5147
|
||||||
|
- updating pyexecdir patch
|
||||||
|
- fixing udev rule subsystem match
|
||||||
|
- Regression test load for RoyalTek RGM3800 and Blumax GPS-009 added
|
||||||
|
- Scaling on E error-estimate fields fixed to match O
|
||||||
|
- Listen on localhost only by default to avoid security problems; this can be
|
||||||
|
overridden with the -G command-line option
|
||||||
|
- The packet-state machine can now recognize RTCM3 packets, though support is
|
||||||
|
not yet complete
|
||||||
|
- Added support for ublox5 and mkt-3301 devices
|
||||||
|
- Add a wrapper around gpsd_hexdump to save CPU
|
||||||
|
- Lots of little fixes to various packet parsers
|
||||||
|
- Always keep the device open: "-n" is not optional any more
|
||||||
|
- xgpsspeed no longer depends on Motif
|
||||||
|
- gpsctl can now ship arbitrary payloads to a device;
|
||||||
|
It's possible to send binary through the control channel with the
|
||||||
|
new "&" command
|
||||||
|
- Experimental new driver for Novatel SuperStarII
|
||||||
|
- The 'g' mode switch command now requires, and returns, 'rtcm104v2' rather
|
||||||
|
than 'rtcm104'; this is design forward for when RTCM104v2 is fully working
|
||||||
|
|
||||||
|
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.37-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Nov 29 2008 Ignacio Vazquez-Abrams <ivazqueznet+rpm@gmail.com> - 2.37-3
|
||||||
|
- Rebuild for Python 2.6
|
||||||
|
|
||||||
|
* Wed Mar 19 2008 Douglas E. Warner <silfreed@silfreed.net> - 2.37-2
|
||||||
|
- moving gpspacket.so python lib to main package
|
||||||
|
|
||||||
|
* Wed Feb 27 2008 Douglas E. Warner <silfreed@silfreed.net> - 2.37-1
|
||||||
|
- update to 2.37
|
||||||
|
- removed install-gpsd_config.h.patch
|
||||||
|
- installed pkgconfig files in devel package
|
||||||
|
- added patch to install python modules in sitearch
|
||||||
|
- removing rpath from inclucded libtool
|
||||||
|
- moving X11 app-defaults to datadir
|
||||||
|
- using macros for commands in install; using install instead of cp and mkdir
|
||||||
|
- cleaning up spaces/tabs for rpmlint
|
||||||
|
|
||||||
|
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.34-9
|
||||||
|
- Autorebuild for GCC 4.3
|
||||||
|
|
||||||
|
* Sun Aug 19 2007 Matthew Truch <matt at truch.net> - 2.34-8
|
||||||
|
- Patch Makefile to also install gpsd_config.h as needed by
|
||||||
|
libgpsmm.h. Redhat BZ 253433.
|
||||||
|
|
||||||
|
* Sat Jun 30 2007 Matthew Truch <matt at truch.net> - 2.34-7
|
||||||
|
- Make sure the logo is actually included (via the spec file).
|
||||||
|
I need to wake up before I try even trivial updates.
|
||||||
|
|
||||||
|
* Sat Jun 30 2007 Matthew Truch <matt at truch.net> - 2.34-6
|
||||||
|
- Learn how to use search and replace (aka fix all instances of
|
||||||
|
gpsd-logo.png spelled incorrectly as gspd-logo.png).
|
||||||
|
|
||||||
|
* Sat Jun 30 2007 Matthew Truch <matt at truch.net> - 2.34-5
|
||||||
|
- Fix desktop file and logo file name.
|
||||||
|
|
||||||
|
* Sat Jun 30 2007 Matthew Truch <matt at truch.net> - 2.34-4
|
||||||
|
- Include icon for .desktop files per BZ 241428
|
||||||
|
|
||||||
|
* Tue Mar 20 2007 Michael Schwendt <mschwendt[AT]users.sf.net> - 2.34-3
|
||||||
|
- Bump release for FE5 -> Fedora 7 upgrade path.
|
||||||
|
|
||||||
|
* Tue Feb 27 2007 Matthew Truch <matt at truch.net> - 2.34-2
|
||||||
|
- BR python-devel instead of python to make it build.
|
||||||
|
|
||||||
|
* Tue Feb 27 2007 Matthew Truch <matt at truch.net> - 2.34-1
|
||||||
|
- Upgrade to 2.34.
|
||||||
|
- Get rid of %%makeinstall (which was never needed).
|
||||||
|
- Possibly fix hotplug issuses (BZ 219750).
|
||||||
|
- Use %%python_sitelib for python site-files stuff.
|
||||||
|
|
||||||
|
* Sat Dec 9 2006 Matthew Truch <matt at truch.net> - 2.33-6
|
||||||
|
- Rebuild to pull in new version of python.
|
||||||
|
|
||||||
|
* Tue Sep 26 2006 Matthew Truch <matt at truch.net> - 2.33-5
|
||||||
|
- Remove openmotif requirment, and switch to lesstif.
|
||||||
|
|
||||||
|
* Mon Aug 28 2006 Matthew Truch <matt at truch.net> - 2.33-4
|
||||||
|
- Bump release for rebuild in prep. for FC6.
|
||||||
|
|
||||||
|
* Thu Jul 20 2006 Matthew Truch <matt at truch.net> - 2.33-3
|
||||||
|
- Actually, was a missing BR glib-dbus-devel. Ooops.
|
||||||
|
|
||||||
|
* Thu Jul 20 2006 Matthew Truch <matt at truch.net> - 2.33-2
|
||||||
|
- Missing BR glib-devel
|
||||||
|
|
||||||
|
* Thu Jul 20 2006 Matthew Truch <matt at truch.net> - 2.33-1
|
||||||
|
- Update to version 2.33
|
||||||
|
|
||||||
|
* Wed Apr 19 2006 Matthew Truch <matt at truch.net> - 2.32-5
|
||||||
|
- Don't --enable-tnt in build as it causes some gpses to not work
|
||||||
|
properly with sattelite view mode. See bugzilla bug 189220.
|
||||||
|
|
||||||
|
* Thu Apr 13 2006 Matthew Truch <matt at truch.net> - 2.32-4
|
||||||
|
- Add dbus-glib to BuildRequires as needed for build.
|
||||||
|
|
||||||
|
* Sun Apr 9 2006 Matthew Truch <matt at truch.net> - 2.32-3
|
||||||
|
- Include xmlto and python in buildrequires so things build right.
|
||||||
|
- Don't package static library file.
|
||||||
|
|
||||||
|
* Wed Apr 5 2006 Matthew Truch <matt at truch.net> - 2.32-2
|
||||||
|
- Use ye olde %%{?dist} tag.
|
||||||
|
|
||||||
|
* Wed Apr 5 2006 Matthew Truch <matt at truch.net> - 2.32-1
|
||||||
|
- Initial Fedora Extras specfile
|
Loading…
Reference in new issue