[gpsd] update to 3.11

Miroslav Lichvar mlichvar at fedoraproject.org
Mon Aug 25 10:52:54 UTC 2014


commit 1c437f3e86454fefad5f19d28dfc079c8e966dd1
Author: Miroslav Lichvar <mlichvar at redhat.com>
Date:   Mon Aug 25 10:57:45 2014 +0200

    update to 3.11

 .gitignore           |    1 +
 gpsd-ppsoffset.patch |  140 --------------------------------------------------
 gpsd-systemd.patch   |   50 ++++++++++++++++++
 gpsd.spec            |   47 ++++++-----------
 sources              |    2 +-
 5 files changed, 68 insertions(+), 172 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index abd9f38..0189fb4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,4 @@
 /gpsd-3.10.tar.gz
 /gpsd-20140127gitf2753b.tar.gz
 /gpsd-20140524gitd6b65b.tar.gz
+/gpsd-3.11.tar.gz
diff --git a/gpsd-systemd.patch b/gpsd-systemd.patch
new file mode 100644
index 0000000..2a16bf0
--- /dev/null
+++ b/gpsd-systemd.patch
@@ -0,0 +1,50 @@
+From 86a8f7ecbb7040236602ffb08711ef87bcdb74f7 Mon Sep 17 00:00:00 2001
+From: Miroslav Lichvar <mlichvar at redhat.com>
+Date: Mon, 25 Aug 2014 11:52:59 +0200
+Subject: [PATCH] Update systemd files.
+
+- use $OPTIONS and include /etc/sysconfig/gpsd to make it compatible
+  with current Fedora packaging
+- start gpsd after chronyd service to allow connecting to SOCK
+- allow enabling gpsd as a normal service not requiring socket
+  activation
+---
+ systemd/gpsd.service     | 5 ++++-
+ systemd/gpsdctl at .service | 1 +
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/systemd/gpsd.service b/systemd/gpsd.service
+index ef760a1..ad4be79 100644
+--- a/systemd/gpsd.service
++++ b/systemd/gpsd.service
+@@ -1,11 +1,14 @@
+ [Unit]
+ Description=GPS (Global Positioning System) Daemon
+ Requires=gpsd.socket
++# Needed with chrony SOCK refclock
++After=chronyd.service
+ 
+ [Service]
+ EnvironmentFile=-/etc/default/gpsd
+ EnvironmentFile=-/etc/sysconfig/gpsd
+-ExecStart=/usr/sbin/gpsd -N $GPSD_OPTIONS $DEVICES
++ExecStart=/usr/sbin/gpsd -N $GPSD_OPTIONS $OPTIONS $DEVICES
+ 
+ [Install]
++WantedBy=multi-user.target
+ Also=gpsd.socket
+diff --git a/systemd/gpsdctl at .service b/systemd/gpsdctl at .service
+index 58c5176..26e49a2 100644
+--- a/systemd/gpsdctl at .service
++++ b/systemd/gpsdctl at .service
+@@ -8,6 +8,7 @@ After=dev-%i.device
+ Type=oneshot
+ Environment="GPSD_SOCKET=/var/run/gpsd.sock"
+ EnvironmentFile=-/etc/default/gpsd
++EnvironmentFile=-/etc/sysconfig/gpsd
+ RemainAfterExit=yes
+ ExecStart=/bin/sh -c "[ \"$USBAUTO\" = true ] && /usr/sbin/gpsdctl add /dev/%I || :"
+ ExecStop=/bin/sh -c "[ \"$USBAUTO\" = true ] && /usr/sbin/gpsdctl remove /dev/%I || :"
+-- 
+1.9.3
+
diff --git a/gpsd.spec b/gpsd.spec
index d0b16a9..18baab3 100644
--- a/gpsd.spec
+++ b/gpsd.spec
@@ -1,22 +1,18 @@
 %global _hardened_build 1
-%global gitrev 20140524gitd6b65b
 
 Name: gpsd
-Version: 3.10
-Release: 6.%{gitrev}%{?dist}
+Version: 3.11
+Release: 1%{?dist}
 Summary: Service daemon for mediating access to a GPS
 
 Group: System Environment/Daemons
 License: BSD
 URL: http://catb.org/gpsd/
-#Source0: http://download.savannah.gnu.org/releases/gpsd/%{name}-%{version}.tar.gz
-Source0: gpsd-%{gitrev}.tar.gz
-Source10: gpsd.service
+Source0: http://download.savannah.gnu.org/releases/gpsd/%{name}-%{version}.tar.gz
 Source11: gpsd.sysconfig
-Source12: gpsdctl.service
 
-# Fix PPS with large offsets
-Patch1: gpsd-ppsoffset.patch
+# Update systemd files
+Patch1: gpsd-systemd.patch
 
 BuildRequires: dbus-devel dbus-glib-devel ncurses-devel xmlto python-devel
 BuildRequires: scons desktop-file-utils bluez-libs-devel pps-tools-devel
@@ -77,15 +73,18 @@ can run on a serial terminal or terminal emulator.
 
 
 %prep
-%setup -q -n %{name}
-%patch1 -p1 -b .ppsoffset
+%setup -q
+%patch1 -p1 -b .systemd
 
 # set gpsd revision string to include package revision
 sed -i 's|^revision=.*REVISION.*$|revision='\'\
 '#define REVISION "%{version}-%{release}'\"\'\| SConstruct
 
-# fix RPATH
-sed -i 's|sysrpath =.*|sysrpath = ["%{_libdir}"]|' SConstruct
+# fix systemd path
+sed -i 's|systemd_dir =.*|systemd_dir = '\'%{_unitdir}\''|' SConstruct
+
+# don't set RPATH
+sed -i 's|env.Prepend.*RPATH.*|pass #\0|' SConstruct
 
 %build
 export CCFLAGS="%{optflags}"
@@ -106,6 +105,7 @@ scons \
 	mandir=%{_mandir} \
 	docdir=%{_docdir} \
 	pkgconfigdir=%{_libdir}/pkgconfig \
+	udevdir=$(dirname %{_udevrulesdir}) \
 	build
 
 
@@ -113,30 +113,15 @@ scons \
 # avoid rebuilding
 export CCFLAGS="%{optflags}"
 export LINKFLAGS="%{__global_ldflags}"
-DESTDIR=%{buildroot} scons install
+DESTDIR=%{buildroot} scons install systemd_install udev-install
 
-# service files
-%{__install} -d -m 0755 %{buildroot}%{_unitdir}
-%{__install} -p -m 0644 %{SOURCE10} \
-	%{buildroot}%{_unitdir}/gpsd.service
-%{__install} -p -m 0644 %{SOURCE12} \
-	%{buildroot}%{_unitdir}/gpsdctl at .service
-%{__install} -p -m 0644 systemd/gpsd.socket \
-	%{buildroot}%{_unitdir}/gpsd.socket
+# 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
 
-# udev rules
-%{__install} -d -m 0755 %{buildroot}%{_udevrulesdir}
-%{__install} -p -m 0644 gpsd.rules \
-	%{buildroot}%{_udevrulesdir}/99-gpsd.rules
-
-# Use gpsdctl service instead of hotplug script
-sed -i 's|RUN+="/lib/udev/gpsd.hotplug"|TAG+="systemd", ENV{SYSTEMD_WANTS}="gpsdctl@%k.service"|' \
-	%{buildroot}%{_udevrulesdir}/99-gpsd.rules
-
 # Install the .desktop files
 desktop-file-install \
 	--dir %{buildroot}%{_datadir}/applications \
diff --git a/sources b/sources
index 85cdd43..d682fc8 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-4c358386ebbfdb1629a3ffaabce4a1b7  gpsd-20140524gitd6b65b.tar.gz
+ba28369992886fccb85ce560e4727e20  gpsd-3.11.tar.gz


More information about the scm-commits mailing list