import gpsd-3.25-16.el10

i10c-beta changed/i10c-beta/gpsd-3.25-16.el10
MSVSphere Packaging Team 3 months ago
commit a47fd2d279
Signed by: sys_gitsync
GPG Key ID: B2B0B9F29E528FE8

2
.gitignore vendored

@ -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…
Cancel
Save