#717595 lintian: Please check for update-rc.d "start" and "stop" argument usage

#717595#5
Date:
2013-07-22 20:09:42 UTC
From:
To:
Hi,

As you're undoubtedly aware, we've been using LSB headers in place of
static sequence numbers for a good couple of releases now.  With
wheezy, we migrated completely away from static ordering to dynamic
ordering.  This means that the "start nn n n" and "stop nn n n"
parameters are now essentially pointless--update-rc.d has long
ignored them when dependency-based boot was in use.  For wheezy in
practice it will always ignore them since dependency-based boot is
required.  In jessie we removed start and stop entirely; they still
exist internally, but are just aliases for "defaults", and issue a
warning if used; all runlevel information is obtained from the LSB
headers.

It would be really great if lintian could check for and warn if the
a package calls update-rc.d in its maintainer scripts with "start"
or "stop" arguments.  Likewise for dh_installinit which passes
start and stop arguments to update-rc.d.

Regular expressions which could be used:

  update-rc.d.*[[:space:]]start[[:space:]]
  update-rc.d.*[[:space:]]stop[[:space:]]

  example packages: rsync, nfs-common

This doesn't handle quoting of start or stop in the scripts, but I've
not seen any in practice on my system.

And in debian/rules:

  dh_installinit.*--.*[[:space:]]start[[:space:]]
  dh_installinit.*--.*[[:space:]]start[[:space:]]

  example package: cron rpcbind

I can provide some explanatory text if needed.  Essentially, the
update-rc.d "start" and "stop" arguments are obsoleted and replaced by
the "defaults" argument.  It is no longer possible to specify start
and stop runlevel and sequence numbers; these must be provided by the
LSB header of every init script.  If start and/or stop arguments are
provided, these now act as if "defaults" had been used instead, and
the extra runlevel and sequence information is discarded, and a
warning will be issued.

If there are checks for LSB init script headers, and it's not already
a hard requirement to provide an LSB header, this is a fatal error,
since update-rc.d requires all scripts to have a header.



Many thanks,
Roger

#717595#10
Date:
2013-12-17 09:10:58 UTC
From:
To:
control: tags -1 + moreinfo

I am willing to implement this test but could you please provide a description

#717595#21
Date:
2019-11-02 02:41:18 UTC
From:
To:
Since this problem is still an issue with packages in the archive (like
x11-common), it would be nice to have lintian warn about the issues.

A reasonable description was already provided in the mail:

   The update-rc.d "start" and "stop" arguments are obsoleted and
   replaced by the "defaults" argument.  It is no longer possible to
   specify start and stop runlevel and sequence numbers; these must be
   provided by the LSB header of every init script.  If start and/or
   stop arguments are provided, these now act as if "defaults" had been
   used instead, and the extra runlevel and sequence information is
   discarded, and a warning will be issued.