818da8daf7
- Update to version 3.19 * Rearrange rawdata_t. Bump the API because gps_data_t changed. * Report sequence-ID fields in type 7 and 13 AIS messages. * Preliminary support for SiRFstar V * Improve error modeling. * Update pseudo NMEA to v3.0, with fractional time. * Improve cycle detection, mostly for NMEA. * Move epe from gps_data_t to be near its friends in gps_fix_t. * Preliminary u-blox 9 support. * Add qErr in gps_data_t to store PPS quantization error. * Add Android (AOSP) support * Improved multi gnss and multi signal support. * NMEA 4.10 multi gnss multi signal support. * The arguments to "ubxtool -p P" have been expanded and changed. * New options, -g, -x, -z, added to ubxtool for u-blox 9 support. - Drop gpsd-declaration-in-for-loop.patch OBS-URL: https://build.opensuse.org/request/show/731583 OBS-URL: https://build.opensuse.org/package/show/Application:Geo/gpsd?expand=0&rev=126
370 lines
12 KiB
RPMSpec
370 lines
12 KiB
RPMSpec
#
|
|
# spec file for package gpsd
|
|
#
|
|
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define sover 25
|
|
%define libgps libgps%{sover}
|
|
%define libQgps libQgpsmm%{sover}
|
|
%define _udevdir %(pkg-config --variable udevdir udev)
|
|
Name: gpsd
|
|
Version: 3.19
|
|
Release: 0
|
|
Summary: Service daemon for mediating access to a GPS
|
|
License: BSD-3-Clause
|
|
Group: Hardware/Other
|
|
URL: http://www.catb.org/gpsd/
|
|
Source0: http://download-mirror.savannah.gnu.org/releases/gpsd/%{name}-%{version}.tar.gz
|
|
Source1: rules.gpsd
|
|
Source2: udev.gpsd
|
|
Source3: sysconfig.gpsd
|
|
Source98: http://download-mirror.savannah.gnu.org/releases/gpsd/%{name}-%{version}.tar.gz.sig
|
|
Source99: %{name}.keyring
|
|
BuildRequires: chrpath
|
|
BuildRequires: fdupes
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: hicolor-icon-theme
|
|
BuildRequires: libcap-devel
|
|
BuildRequires: ncurses-devel
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: python3-cairo-devel
|
|
BuildRequires: python3-gobject-devel
|
|
BuildRequires: python3-pyserial
|
|
BuildRequires: scons >= 2.3.0
|
|
BuildRequires: systemd-rpm-macros
|
|
BuildRequires: update-desktop-files
|
|
BuildRequires: xmlto
|
|
BuildRequires: pkgconfig(Qt5Core)
|
|
BuildRequires: pkgconfig(Qt5Network)
|
|
BuildRequires: pkgconfig(Qt5Widgets)
|
|
BuildRequires: pkgconfig(bluez)
|
|
BuildRequires: pkgconfig(dbus-1)
|
|
BuildRequires: pkgconfig(libusb-1.0)
|
|
BuildRequires: pkgconfig(python2)
|
|
BuildRequires: pkgconfig(python3)
|
|
BuildRequires: pkgconfig(udev)
|
|
Requires: udev
|
|
Requires(pre): %fillup_prereq
|
|
Requires(pre): coreutils
|
|
%{?systemd_requires}
|
|
%if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120200
|
|
BuildRequires: pps-tools-devel
|
|
%endif
|
|
|
|
%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 wardriving 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. A client library is provided for applications.
|
|
|
|
After installing this RPM, gpsd will automatically connect to USB GPSes
|
|
when they are plugged in and requires no configuration. For serial
|
|
GPSes, you will need to start gpsd by hand. Once connected, the daemon
|
|
automatically discovers the correct baudrate, stop bits, and protocol.
|
|
The daemon will be quiescent when there are no clients asking for
|
|
location information, and copes gracefully when the GPS is unplugged
|
|
and replugged.
|
|
|
|
%package devel
|
|
Summary: Client libraries in C and Python for talking to a running gpsd or GPS
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{libQgps}
|
|
Requires: %{libgps}
|
|
Requires: %{name} = %{version}
|
|
Requires: pkgconfig
|
|
Requires: python3-curses
|
|
Requires: python3-gpsd = %{version}
|
|
|
|
%description devel
|
|
This package provides C header files for the gpsd shared libraries that
|
|
manage access to a GPS for applications and debugging tools. You will
|
|
need to have gpsd installed for it to work.
|
|
|
|
%package -n %{libgps}
|
|
Summary: Shared library for GPS applications
|
|
Group: System/Libraries
|
|
|
|
%description -n %{libgps}
|
|
This package provides the shared library for gpsd and other GPS aware
|
|
applications.
|
|
|
|
%package -n %{libQgps}
|
|
Summary: Shared Qt library for GPS applications
|
|
Group: System/Libraries
|
|
|
|
%description -n %{libQgps}
|
|
This package provides the shared Qt library for gpsd and other GPS aware
|
|
applications.
|
|
|
|
%package -n python2-gpsd
|
|
Summary: Client libraries in C and Python for talking to a running gpsd or GPS
|
|
Group: Development/Libraries/Python
|
|
Requires: %{name} = %{version}
|
|
Provides: python-gpsd = %{version}-%{release}
|
|
Obsoletes: python-gpsd < %{version}-%{release}
|
|
|
|
%description -n python2-gpsd
|
|
This package provides python modules and tools for the gpsd shared libraries.
|
|
You will need to have gpsd installed for it to work.
|
|
|
|
%package -n python3-gpsd
|
|
Summary: Client libraries in C and Python3 for talking to a running gpsd or GPS
|
|
Group: Development/Libraries/Python
|
|
Requires: %{name} = %{version}
|
|
|
|
%description -n python3-gpsd
|
|
This package provides python3 modules and tools for the gpsd shared libraries.
|
|
You will need to have gpsd installed for it to work.
|
|
|
|
%package clients
|
|
Summary: Example clients for gpsd
|
|
Group: Hardware/Other
|
|
Requires: python3-cairo
|
|
Requires: python3-gobject
|
|
Requires: python3-gobject-Gdk
|
|
Requires: python3-gpsd
|
|
Requires: python3-serial
|
|
|
|
%description clients
|
|
xgps is a simple test client for gpsd with an X interface. It displays
|
|
current GPS position/time/velocity information and (for GPSes that
|
|
support the feature) the locations of accessible satellites.
|
|
|
|
xgpsspeed is a speedometer that uses position information from the GPS.
|
|
It accepts an -h option and optional argument as for gps, or a -v
|
|
option to dump the package version and exit. Additionally, it accepts
|
|
-rv (reverse video) and -nc (needle color) options.
|
|
|
|
cgps resembles xgps, but without the pictorial satellite display. It
|
|
can run on a serial terminal or terminal emulator.
|
|
|
|
%prep
|
|
mkdir -p %{name}-%{version}/python2
|
|
mkdir -p %{name}-%{version}/python3
|
|
tar -xf %{SOURCE0} -C %{name}-%{version}/python2
|
|
tar -xf %{SOURCE0} -C %{name}-%{version}/python3
|
|
cd %{name}-%{version}
|
|
|
|
# fix systemd path
|
|
sed -i 's|systemd_dir =.*|systemd_dir = '\'%{_unitdir}\''|' python*/%{name}-%{version}/SConstruct
|
|
|
|
# don't try reloading systemd when installing in the build root
|
|
sed -i 's|systemctl daemon-reload|true|' python*/%{name}-%{version}/SConstruct
|
|
|
|
# don't set RPATH
|
|
sed -i 's|env.Prepend.*RPATH.*|pass #\0|' python*/%{name}-%{version}/SConstruct
|
|
|
|
# fix gpsd path
|
|
sed -i 's|ExecStart=.*/gpsd|ExecStart=%{_sbindir}/gpsd|' python*/%{name}-%{version}/systemd/gpsd.service
|
|
|
|
%build
|
|
# The SCons description does not handle CXXFLAGS correctly, pass C++ flags also in CFLAGS
|
|
export CFLAGS="%{optflags}"
|
|
export CXXFLAGS="%{optflags}"
|
|
export CPPFLAGS="%{optflags}"
|
|
|
|
pyversions=( python2 python3 )
|
|
pylibdir=( %{python2_sitearch} %{python3_sitearch} )
|
|
|
|
for i in 0 1
|
|
do
|
|
pushd %{name}-%{version}/${pyversions[i]}/%{name}-%{version}
|
|
|
|
# breaks with %{?_smp_mflags}
|
|
scons \
|
|
dbus_export=yes \
|
|
systemd=yes \
|
|
libQgpsmm=yes \
|
|
qt=yes \
|
|
qt_versioned=5 \
|
|
leapfetch=no \
|
|
prefix="" \
|
|
sysconfdif=%{_sysconfdir} \
|
|
bindir=%{_bindir} \
|
|
includedir=%{_includedir} \
|
|
libdir=%{_libdir} \
|
|
sbindir=%{_sbindir} \
|
|
mandir=%{_mandir} \
|
|
docdir=%{_docdir} \
|
|
pkgconfigdir=%{_libdir}/pkgconfig \
|
|
udevdir=$(dirname %{_udevrulesdir}) \
|
|
target_python=${pyversions[i]} \
|
|
python_libdir=${pylibdir[i]} \
|
|
build
|
|
|
|
# Fix python interpreter path.
|
|
sed -e "s,#!%{_bindir}/\(python[23]\?\|env \+python[23]\?\),#!%{_bindir}/${pyversions[i]},g" -i \
|
|
gegps gpscat gpsfake xgps xgpsspeed gpsprof ubxtool zerk gps/*.py
|
|
|
|
popd
|
|
done
|
|
|
|
%install
|
|
# The SCons description does not handle CXXFLAGS correctly, pass C++ flags also in CFLAGS
|
|
export CFLAGS="%{optflags}"
|
|
export CXXFLAGS="%{optflags}"
|
|
export CPPFLAGS="%{optflags}"
|
|
# Install python2 first
|
|
pushd %{name}-%{version}/python2/%{name}-%{version}
|
|
|
|
DESTDIR=%{buildroot} scons nostrip=True install
|
|
|
|
# Now delete all the installed files except the python2 files
|
|
find %{buildroot} \( -not -type d -a -not -path "*/python2.*/*" \) -delete
|
|
|
|
popd
|
|
pushd %{name}-%{version}/python3/%{name}-%{version}
|
|
|
|
DESTDIR=%{buildroot} scons nostrip=True install
|
|
|
|
install -d -m 755 %{buildroot}%{_udevdir}
|
|
install -d -m 755 %{buildroot}%{_udevdir}/rules.d
|
|
install -d -m 755 %{buildroot}%{_fillupdir}
|
|
install -d -m 755 %{buildroot}%{_datadir}/applications
|
|
install -m 644 %{SOURCE1} %{buildroot}%{_udevdir}/rules.d/51-gpsd.rules
|
|
install -m 755 %{SOURCE2} %{buildroot}%{_udevdir}/gpsd.sh
|
|
install -m 644 %{SOURCE3} %{buildroot}%{_fillupdir}
|
|
# install desktop entries
|
|
install -D -m 644 -t %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/ packaging/X11/gpsd-logo.png
|
|
install -D -m 644 -t %{buildroot}%{_datadir}/applications/ packaging/X11/xgps.desktop
|
|
install -D -m 644 -t %{buildroot}%{_datadir}/applications/ packaging/X11/xgpsspeed.desktop
|
|
install -D -m 644 systemd/gpsd.service %{buildroot}/%{_unitdir}/gpsd.service
|
|
install -D -m 644 systemd/gpsd.socket %{buildroot}/%{_unitdir}/gpsd.socket
|
|
install -D -m 644 systemd/gpsdctl@.service %{buildroot}/%{_unitdir}/gpsdctl@.service
|
|
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcgpsd
|
|
|
|
%fdupes -s %{buildroot}%{_mandir}
|
|
|
|
# strip absolute path and suffix
|
|
sed -i -e 's#Icon=.*/\([^/]\+\)\(\..\+\)#Icon=\1#' %{buildroot}%{_datadir}/applications/xgps{,speed}.desktop
|
|
%suse_update_desktop_file -r xgpsspeed System Monitor
|
|
%suse_update_desktop_file -r xgps System Monitor
|
|
|
|
%pre
|
|
%service_add_pre gpsd.service gpsdctl@.service gpsd.socket
|
|
|
|
%post
|
|
/sbin/ldconfig
|
|
%fillup_only -n gpsd
|
|
%service_add_post gpsd.service gpsdctl@.service gpsd.socket
|
|
%udev_rules_update
|
|
|
|
%preun
|
|
%service_del_preun gpsd.service gpsdctl@.service gpsd.socket
|
|
|
|
%postun
|
|
/sbin/ldconfig
|
|
%service_del_postun gpsd.service gpsdctl@.service gpsd.socket
|
|
|
|
%post -n %{libgps} -p /sbin/ldconfig
|
|
%postun -n %{libgps} -p /sbin/ldconfig
|
|
%post -n %{libQgps} -p /sbin/ldconfig
|
|
%postun -n %{libQgps} -p /sbin/ldconfig
|
|
|
|
%files
|
|
%license %{name}-%{version}/python3/%{name}-%{version}/COPYING
|
|
%doc %{name}-%{version}/python3/%{name}-%{version}/README
|
|
%{_mandir}/man?/gpsd.*
|
|
%{_mandir}/man?/gpsdctl.*
|
|
%{_mandir}/man?/gpsctl.*
|
|
%{_mandir}/man?/gpsinit.*
|
|
%{_udevdir}/gpsd.sh
|
|
%{_udevdir}/rules.d/*
|
|
%{_unitdir}/gpsd.service
|
|
%{_unitdir}/gpsd.socket
|
|
%{_unitdir}/gpsdctl@.service
|
|
%{_sbindir}/rcgpsd
|
|
%{_sbindir}/gpsd
|
|
%{_sbindir}/gpsdctl
|
|
%{_bindir}/gpsctl
|
|
%{_fillupdir}/sysconfig.gpsd
|
|
|
|
%files -n %{libgps}
|
|
%{_libdir}/libgps.so.*
|
|
|
|
%files -n %{libQgps}
|
|
%{_libdir}/libQgpsmm.so.*
|
|
|
|
%files devel
|
|
%doc %{name}-%{version}/python3/%{name}-%{version}/TODO
|
|
%{_mandir}/man?/gpsfake.*
|
|
%{_mandir}/man?/gpscat.*
|
|
%{_mandir}/man?/libgps.*
|
|
%{_mandir}/man?/libgpsmm.*
|
|
%{_mandir}/man?/srec*
|
|
%{_mandir}/man?/gpsdecode.*
|
|
%{_mandir}/man?/gpsd_json.*
|
|
%{_mandir}/man?/gpsprof.*
|
|
%{_bindir}/gpsfake
|
|
%{_bindir}/gpscat
|
|
%{_bindir}/gpsdecode
|
|
%{_bindir}/gpsprof
|
|
%{_includedir}/gps.h
|
|
%{_includedir}/libgpsmm.h
|
|
%{_libdir}/libgps.so
|
|
%{_libdir}/pkgconfig/libgps.pc
|
|
%{_libdir}/libQgpsmm.so
|
|
%{_libdir}/libQgpsmm.prl
|
|
%{_libdir}/pkgconfig/Qgpsmm.pc
|
|
%{_mandir}/man?/libQgps*
|
|
|
|
%files -n python2-gpsd
|
|
%{python_sitearch}/gps/
|
|
%{python_sitearch}/gps-%{version}.*
|
|
|
|
%files -n python3-gpsd
|
|
%{python3_sitearch}/gps/
|
|
%{python3_sitearch}/gps-%{version}.*
|
|
|
|
%files clients
|
|
%{_mandir}/man?/gps.*
|
|
%{_mandir}/man?/gegps.*
|
|
%{_mandir}/man?/cgps.*
|
|
%{_mandir}/man?/lcdgps.*
|
|
%{_mandir}/man?/xgps.*
|
|
%{_mandir}/man?/xgpsspeed.*
|
|
%{_mandir}/man?/gpspipe.*
|
|
%{_mandir}/man?/gpsmon.*
|
|
%{_mandir}/man?/gps2udp.*
|
|
%{_mandir}/man?/ntpshmmon.*
|
|
%{_mandir}/man?/ppscheck.*
|
|
%{_mandir}/man?/gpxlogger.*
|
|
%{_mandir}/man?/ubxtool.*
|
|
%{_mandir}/man?/zerk.*
|
|
%{_mandir}/man?/gpsrinex.*
|
|
%{_bindir}/gegps
|
|
%{_bindir}/xgps
|
|
%{_bindir}/xgpsspeed
|
|
%{_bindir}/cgps
|
|
%{_bindir}/lcdgps
|
|
%{_bindir}/gpsmon
|
|
%{_bindir}/gpspipe
|
|
%{_bindir}/gps2udp
|
|
%{_bindir}/gpxlogger
|
|
%{_bindir}/ntpshmmon
|
|
%{_bindir}/ppscheck
|
|
%{_bindir}/ubxtool
|
|
%{_bindir}/zerk
|
|
%{_bindir}/gpsrinex
|
|
%{_datadir}/applications/*.desktop
|
|
%{_datadir}/icons/hicolor/*/apps/*
|
|
|
|
%changelog
|