The shell script that supervise uses to start qmail-smtpd (/var/qmail/supervise/qmail-smtpd/run) uses the "source" keyword to extract values from several configuration files. This is a valid keyword in Bash, but the standard Bourne shell keyword is "." (dot). The script has an interpreter trigger of "#!/bin/sh", so it does not extract the configuration values if /bin/sh is not Bash and the service doesn't start.
Steps to Reproduce:
1. merge net-mail/qmail-1.03-r13 and app-shells/ash-1.6
2. make /bin/sh a link to ash
3. attempt to start qmail-smtpd
The qmail-smtpd service will not start and there are lines like the following in
4000000040b2cdb1368ffabc tcpserver: usage: tcpserver [ -461UXpPhHrRoOdDqQv ] [
-c limit ] [ -x rules.cdb ] [ -B banner ] [ -g gid ] [ -u uid ] [ -b b
acklog ] [ -l localname ] [ -t timeout ] [ -I interface ] host port program
The qmail-smtpd service should have started.
Created attachment 31978 [details, diff]
A patch to /var/qmail/supervise/qmail-smtpd/run to replace "source" with "."
This patch seems to make the script work properly with ash installed as
/bin/sh. An alternative would be to simply change the "#!/bin/sh" to
i'm going to change to doing /bin/bash, as I do use a lot of other bashisms in some of the scripts.
clearing up my bug tracking
Fixed in CVS, could you test it, please?