Subject: bug#749: initscripts: /etc/init.d/halt calls halt with unsupported options

From: Olaf Meeuwissen <[email-masked]>
Date: Wed, 08 Mar 2023 20:44:01 +0900

Package: initscripts
Version: 3.06-2devuan1
Severity: normal
X-Debbugs-Cc: none, Olaf Meeuwissen <[email-masked]>

Dear Maintainer,

Every time I `poweroff` my machine, I see error message flash by that
complain about `halt` being called with unsupported options.  I think
I have tracked this down to /etc/init.d/halt making blind assumptions
about the options supported by the `halt` command.

Said command may be provided by any of a number of packages.  A quick
`apt-file search sbin/halt` turns up

  $ apt-file search sbin/halt
  bfh-container: /sbin/halt
  finit-sysv: /sbin/halt
  molly-guard: /sbin/halt
  progress-linux-container: /sbin/halt
  runit-init: /sbin/halt
  systemd-sysv: /sbin/halt
  sysvinit-core: /sbin/halt

Mine happens to be

  $ ls -l /sbin/halt
  lrwxrwxrwx 1 root root 19 Feb 10 03:45 /sbin/halt -> /lib/runit/shutdown

where the symlink target is from the runit package.  According to the
manual page, my halt command only supports -f, -w and -n short options.

The /etc/init.d/halt script may invokes the halt command with -d and -f
options and may add any of -i, -p and -h.

BTW, I also have runit-init installed which provides the `poweroff` and
`halt` commands that get executed.  Seeing that runit-init depends on
initscripts one could argue that runit-init should support those options
in which case feel free to forward this to that package (in the Debian
BTS).  From past experience, its maintainer is open to init freedom ;-)

If not a runit-init issue, this may still be worthwhile to upstream to
the Debian BTS for initscripts.  Even the systemd-sysv `halt` does not
claim to support -i or -h options in its manual page :-o

-- System Information:
Architecture: x86_64

Kernel: Linux 6.1.0-3-amd64 (SMP w/16 CPU threads; PREEMPT)
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: runit (via /run/runit.stopit)
LSM: AppArmor: enabled

Versions of packages initscripts depends on:
ii  sysv-rc         3.06-2devuan1
ii  sysvinit-utils  3.06-2devuan1

Versions of packages initscripts recommends:
ii  e2fsprogs  1.46.6-1
pn  psmisc     <none>

initscripts suggests no packages.

-- no debconf information

Hope this helps,
--
Olaf Meeuwissen