This is a public service announcement about Debian Policy section 10.4, which states in part: The standard shell interpreter `/bin/sh' can be a symbolic link to any POSIX compatible shell, if `echo -n' does not generate a newline.[1] Thus, shell scripts specifying `/bin/sh' as interpreter should only use POSIX features. If a script requires non-POSIX features from the shell interpreter, the appropriate shell must be specified in the first line of the script (e.g., `#!/bin/bash') and the package must depend on the package providing the shell (unless the shell package is marked "Essential", as in the case of `bash'). I have found no less than four packages which break with /bin/posh as /bin/sh, including one that refuses to be removed because of its brokenness. I am expecting many more. I suggest that all maintainers test their packages with /bin/sh as /bin/posh as well as _POSIX2_VERSION=200112 in their configuration files. Please be aware that due to debconf brokenness that is caused by non-POSIX features, if you do set /bin/sh as /bin/posh, you may not be able to undo this without manually patching debconf or waiting for it to be fixed. Bugs have already been filed about this (not by me). I would like to point out that the following are not POSIX features: local test -o test -a You may fix these bugs by specifying "#!/bin/bash" as the first line of your script, or you may simply remove these non-POSIX extensions. I would also like to point out that these bugs are severity not less than important, so you may want to fix these bugs if they occur in your packages, even if they have not been filed in the BTS yet. This ends the public service announcement. Thank you for your attention to this matter. Have a nice day. -- ($_,$a)=split/\t/,join'',map{unpack'u',$_}<DATA>;eval$a;print;__DATA__ M961H<F$@8FAM;"!U<F%O<G-U(#QU<F%O<G-U0&=D:75M<&UC8VUL=G)U;6LN M<FUL+F=Y/@H)>2QA8F-D969G:&EJ:VQM;F]P<7)S='5V=WAY>BQN=V]R8FMC 5:75Q96AT9V1Y>F%L=G-P;6IX9BP)
Attachment:
signature.asc
Description: This is a digitally signed message part