mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Ladislav Michl <ladis@linux-mips.org>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH] gpsd: fix gpsdctl@.service
Date: Mon, 3 Aug 2020 11:36:55 +0200	[thread overview]
Message-ID: <20200803093655.GA1566721@lenoch> (raw)
In-Reply-To: <20200803090319.GN17724@pengutronix.de>

On Mon, Aug 03, 2020 at 11:03:19AM +0200, Michael Olbrich wrote:
> On Mon, Aug 03, 2020 at 10:35:52AM +0200, Ladislav Michl wrote:
> > On Mon, Aug 03, 2020 at 08:36:06AM +0200, Michael Olbrich wrote:
> > > On Sun, Aug 02, 2020 at 07:46:09PM +0200, Ladislav Michl wrote:
> > > > gpsdctl@.service is supposed to call gpsdctl which is not installed
> > > > at all. Also fix gpsctl vs gpsdctl confusion.
> > > > 
> > > > Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
> > > > ---
> > > >  projectroot/usr/lib/systemd/system/gpsdctl@.service | 4 ++--
> > > >  rules/gpsd.in                                       | 9 +++++++++
> > > >  rules/gpsd.make                                     | 8 +++++---
> > > >  3 files changed, 16 insertions(+), 5 deletions(-)
> > > > 
> > > > diff --git a/projectroot/usr/lib/systemd/system/gpsdctl@.service b/projectroot/usr/lib/systemd/system/gpsdctl@.service
> > > > index 24d291408..6266fd8b8 100644
> > > > --- a/projectroot/usr/lib/systemd/system/gpsdctl@.service
> > > > +++ b/projectroot/usr/lib/systemd/system/gpsdctl@.service
> > > > @@ -8,5 +8,5 @@ After=dev-%i.device
> > > >  Type=oneshot
> > > >  Environment="GPSD_SOCKET=/var/run/gpsd.sock"
> > > >  RemainAfterExit=yes
> > > > -ExecStart=/usr/bin/gpsdctl add /dev/%I
> > > > -ExecStop=/usr/bin/gpsdctl remove /dev/%I
> > > > +ExecStart=/usr/sbin/gpsdctl add /dev/%I
> > > > +ExecStop=/usr/sbin/gpsdctl remove /dev/%I
> > > > diff --git a/rules/gpsd.in b/rules/gpsd.in
> > > > index b69570af0..b69accac3 100644
> > > > --- a/rules/gpsd.in
> > > > +++ b/rules/gpsd.in
> > > > @@ -260,10 +260,19 @@ menu "install options"
> > > >  		  queries with a format that is substantially easier to
> > > >  		  parse than the NMEA 0183 emitted by most GPS receivers.
> > > >  
> > > > +	config GPSD_GPSDCTL
> > > > +		bool
> > > > +		prompt "gpdsctl"
> > > > +		help
> > > > +		  gpdsctl is a tool for sending commands to an instance of
> > > > +		  gpsd over its control socket to add or remove devices from
> > > > +		  the daemon's device list.
> > > > +
> > > >  	config GPSD_SYSTEMD_UNIT
> > > >  		bool
> > > >  		default y
> > > >  		depends on INITMETHOD_SYSTEMD && GPSD_GPSD
> > > > +		select GPSD_GPSDCTL
> > > >  		prompt "systemd unit files for gpsd"
> > > >  
> > > >  	config GPSD_GPSD_ARGS
> > > > diff --git a/rules/gpsd.make b/rules/gpsd.make
> > > > index 7f7e369f3..48bb643bc 100644
> > > > --- a/rules/gpsd.make
> > > > +++ b/rules/gpsd.make
> > > > @@ -43,7 +43,8 @@ GPSD_PROGS-$(PTXCONF_GPSD_GPSMON)	+= gpsmon
> > > >  GPSD_PROGS-$(PTXCONF_GPSD_NTPSHMMON)	+= ntpshmmon
> > > >  GPSD_PROGS-$(PTXCONF_GPSD_PPSCHECK)	+= ppscheck
> > > >  
> > > > -GPSD_BUILD_CLIENTS := $(if $(strip $(GPSD_PROGS-y)),yes,no)
> > > > +GPSD_BUILD_CLIENTS := $(call ptx/ifdef, PTXCONF_GPSD_GPSDCTL, yes, \
> > > > +			$(if $(strip $(GPSD_PROGS-y)), yes, no))
> > > >  
> > > >  # Python programs
> > > >  GPSD_PROGS-$(PTXCONF_GPSD_GEGPS)	+= gegps
> > > > @@ -160,6 +161,9 @@ $(STATEDIR)/gpsd.targetinstall:
> > > >  ifdef PTXCONF_GPSD_GPSD
> > > >  	@$(call install_copy, gpsd, 0, 0, 0755, -, /usr/sbin/gpsd)
> > > >  endif
> > > > +ifdef PTXCONF_GPSD_GPSDCTL
> > > > +	@$(call install_copy, gpsd, 0, 0, 0755, -, /usr/sbin/gpsdctl)
> > > > +endif
> > > >  ifdef PTXCONF_GPSD_SYSTEMD_UNIT
> > > >  	@$(call install_alternative, gpsd, 0, 0, 644, \
> > > >  		/usr/lib/systemd/system/gpsd.service)
> > > > @@ -172,11 +176,9 @@ ifdef PTXCONF_GPSD_SYSTEMD_UNIT
> > > >  		/usr/lib/systemd/system/gpsd.socket)
> > > >  	@$(call install_link, gpsd, ../gpsd.socket, \
> > > >  		/usr/lib/systemd/system/sockets.target.wants/gpsd.socket)
> > > > -ifdef PTXCONF_GPSD_GPSCTL
> > > 
> > > So, I don't know a lot about gpsd. So I need some clarification here.
> > > 
> > > There is a gpsd.service and the gpsdctl@.service template. What do they do?
> > > Does gpsd.service do anything useful without gpsdctl@.service?
> > 
> > gpsd.service just starts gpsd as a daemon on a device passed as its
> > argument (GPSD_GPSD_ARGS). But GPS receiver could be hotplugged as well
> > and that's when gpsdctl@.service comes to action.
> 
> So with a static setup gpsdctl@.service and gpsdctl are not needed, right?

Yes.

> > > If yes then we should probably install gpsdctl@.service separately and not
> > > add the 'select GPSD_GPSDCTL' dependency above.
> > 
> > As gpsdctl@.service calls gpsdctl, which is installed once GPSD_GPSDCTL
> > selected, that dependency is needed.
> 
> Or 'ifdef PTXCONF_GPSD_GPSDCTL' to install gpsdctl@.service only if gpsdctl
> is actually installed.
> 
> This way we can either run a gpsd.service without gpsdctl at all or use the
> two together.

Something like this?

--- >8 ---

From: Ladislav Michl <ladis@linux-mips.org>
Subject: [PATCH v2] gpsd: fix gpsdctl@.service

gpsdctl@.service is supposed to call gpsdctl which is not installed
at all. Also fix gpsctl vs gpsdctl confusion.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
---
 projectroot/usr/lib/systemd/system/gpsdctl@.service | 4 ++--
 rules/gpsd.in                                       | 8 ++++++++
 rules/gpsd.make                                     | 8 ++++++--
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/projectroot/usr/lib/systemd/system/gpsdctl@.service b/projectroot/usr/lib/systemd/system/gpsdctl@.service
index 24d291408..6266fd8b8 100644
--- a/projectroot/usr/lib/systemd/system/gpsdctl@.service
+++ b/projectroot/usr/lib/systemd/system/gpsdctl@.service
@@ -8,5 +8,5 @@ After=dev-%i.device
 Type=oneshot
 Environment="GPSD_SOCKET=/var/run/gpsd.sock"
 RemainAfterExit=yes
-ExecStart=/usr/bin/gpsdctl add /dev/%I
-ExecStop=/usr/bin/gpsdctl remove /dev/%I
+ExecStart=/usr/sbin/gpsdctl add /dev/%I
+ExecStop=/usr/sbin/gpsdctl remove /dev/%I
diff --git a/rules/gpsd.in b/rules/gpsd.in
index b69570af0..eb85305dc 100644
--- a/rules/gpsd.in
+++ b/rules/gpsd.in
@@ -260,6 +260,14 @@ menu "install options"
 		  queries with a format that is substantially easier to
 		  parse than the NMEA 0183 emitted by most GPS receivers.
 
+	config GPSD_GPSDCTL
+		bool
+		prompt "gpdsctl"
+		help
+		  gpdsctl is a tool for sending commands to an instance of
+		  gpsd over its control socket to add or remove devices from
+		  the daemon's device list.
+
 	config GPSD_SYSTEMD_UNIT
 		bool
 		default y
diff --git a/rules/gpsd.make b/rules/gpsd.make
index 7f7e369f3..a6739e37e 100644
--- a/rules/gpsd.make
+++ b/rules/gpsd.make
@@ -43,7 +43,8 @@ GPSD_PROGS-$(PTXCONF_GPSD_GPSMON)	+= gpsmon
 GPSD_PROGS-$(PTXCONF_GPSD_NTPSHMMON)	+= ntpshmmon
 GPSD_PROGS-$(PTXCONF_GPSD_PPSCHECK)	+= ppscheck
 
-GPSD_BUILD_CLIENTS := $(if $(strip $(GPSD_PROGS-y)),yes,no)
+GPSD_BUILD_CLIENTS := $(call ptx/ifdef, PTXCONF_GPSD_GPSDCTL, yes, \
+			$(if $(strip $(GPSD_PROGS-y)), yes, no))
 
 # Python programs
 GPSD_PROGS-$(PTXCONF_GPSD_GEGPS)	+= gegps
@@ -160,6 +161,9 @@ $(STATEDIR)/gpsd.targetinstall:
 ifdef PTXCONF_GPSD_GPSD
 	@$(call install_copy, gpsd, 0, 0, 0755, -, /usr/sbin/gpsd)
 endif
+ifdef PTXCONF_GPSD_GPSDCTL
+	@$(call install_copy, gpsd, 0, 0, 0755, -, /usr/sbin/gpsdctl)
+endif
 ifdef PTXCONF_GPSD_SYSTEMD_UNIT
 	@$(call install_alternative, gpsd, 0, 0, 644, \
 		/usr/lib/systemd/system/gpsd.service)
@@ -172,7 +176,7 @@ ifdef PTXCONF_GPSD_SYSTEMD_UNIT
 		/usr/lib/systemd/system/gpsd.socket)
 	@$(call install_link, gpsd, ../gpsd.socket, \
 		/usr/lib/systemd/system/sockets.target.wants/gpsd.socket)
-ifdef PTXCONF_GPSD_GPSCTL
+ifdef PTXCONF_GPSD_GPSDCTL
 	@$(call install_alternative, gpsd, 0, 0, 644, \
 		/usr/lib/systemd/system/gpsdctl@.service)
 endif
-- 
2.28.0


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

  reply	other threads:[~2020-08-03  9:36 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-02 17:46 Ladislav Michl
2020-08-03  6:36 ` Michael Olbrich
2020-08-03  8:35   ` Ladislav Michl
2020-08-03  9:03     ` Michael Olbrich
2020-08-03  9:36       ` Ladislav Michl [this message]
2020-08-03 14:18         ` Roland Hieber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200803093655.GA1566721@lenoch \
    --to=ladis@linux-mips.org \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox