%global with_qt 1 Name: gpsd Version: 3.25 Release: 1 Epoch: 1 Summary: Service daemon for mediating access to a GPS License: BSD URL: http://catb.org/gpsd/ Source0: https://download-mirror.savannah.gnu.org/releases/gpsd/%{name}-%{version}.tar.gz Source11: gpsd.sysconfig # Compatibility patch Patch1: gpsd-apistatus.patch BuildRequires: gcc BuildRequires: dbus-devel BuildRequires: ncurses-devel BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: gtk3-devel BuildRequires: python3-scons BuildRequires: python3-gobject BuildRequires: python3-cairo BuildRequires: python3-pyserial BuildRequires: desktop-file-utils BuildRequires: bluez-libs-devel BuildRequires: pps-tools-devel BuildRequires: systemd %if %{with_qt} BuildRequires: gcc-c++ BuildRequires: qt-devel %endif BuildRequires: libusb1-devel Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: udev %{?systemd_requires} %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. %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 -n python3-%{name} Summary: Python libraries and modules for use with gpsd Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} 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 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 %if %{with_qt} %package qt Summary: C++/Qt5 bindings for the gpsd library Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} %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}-libs%{?_isa} = %{epoch}:%{version}-%{release} 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 clients Summary: Clients for gpsd Requires: python3-%{name} = %{epoch}:%{version}-%{release} Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} %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 # split from clients package Conflicts: gpsd-clients < 1:3.25-1 %description xclients This package contains X clients using gpsd. %prep %setup -q %patch1 -p1 -b .apistatus sed -i 's|systemctl daemon-reload|true|' SConscript %build %ifarch riscv64 export CCFLAGS="%{optflags} -Wno-format-security" %else export CCFLAGS="%{optflags}" %endif 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 %ifarch riscv64 export CCFLAGS="%{optflags} -Wno-format-security" %else export CCFLAGS="%{optflags}" %endif 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 \ packaging/X11/xgps.desktop desktop-file-install \ --dir %{buildroot}%{_datadir}/applications \ packaging/X11/xgpsspeed.desktop # Missed in scons install %{__install} -p -m 0755 gpsinit %{buildroot}%{_sbindir} # Fix permissions chmod 644 %{buildroot}%{python3_sitearch}/gps/gps.py rm -f %{buildroot}%{_libdir}/libgpsdpacket.so # If qt build was disabled, clean up the files that may have been installed # anyway %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 %ldconfig_scriptlets libs %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* %files libs %{_libdir}/libgps.so.30* %files -n python3-%{name} %{_libdir}/libgpsdpacket.so* %{python3_sitearch}/gps* %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* %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 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 Aug 29 2023 misaka00251 - 1:3.25-1 - Upgrade to 3.25 * Fri Jul 15 2022 misaka00251 - 1:3.24-1 - Init package