Hello Craig,

Thank you for your report!


Am Thu, 19 Mar 2020 14:14:42 +1100
schrieb Craig Sanders <c...@taz.net.au>:

> Package: munin
> Version: 2.0.57-1
> 
> At the bottom of the /etc/init.d/munin script are two lines:
> 
>     do_stop_cmd_override() true
>     do_start_cmd_override() true
> 
> This is **NOT** how you define a shell function.

indeed - how embarrassing :(
(but see below for details)


> Without this patch (attached), upgrading munin to 2.0.57-1 leaves the package
> in a broken (installed/Failed-config, or "iF") state and results in the
> following:
> [..]

I am very confused, that this did not fail during munin's autopkgtest (or on my
system).
After digging around for a while (including successful fresh installations or
upgrades on systemd-based hosts), I think I found the issue:

  $ dash -c "foo() true"; echo $?
  0
  $ bash -c "foo() true"; echo $?
  bash: -c: line 0: syntax error near unexpected token `true'
  bash: -c: line 0: `foo() true'
  1

After taking a closer look at the man pages of both shell implementations, this
seems to be in line with their respective documentations:

1) dash
Syntax: name () command
Thus *any* command is allowed (including "true").

2) bash
Syntax: name () compound-command
Here "compound-command" means any non-trivial command, e.g. surrounded by
braces or "if ...; fi" and so on. A single command ("true") is not explicitly
mentioned and obviously is rejected.


Thus I assume, that you are using bash as your "sh" implementation?


I will fix this issue in the next packaging update. Thank you!

Cheers,
Lars

Reply via email to