alias in maintainer scripts?
Hi,
should we really allow for the usage of alias in maintainer scripts?
Policy 10.4 says that /bin/sh scripts may assume an interpreter
that implements the POSIX standard, plus some additional features
listed in the policy. And the POSIX standards describes alias
substitution in shell scripts [1], so it seems we currently do
allow for it.
However, /bin/sh may be linked to bash, and bash does alias substitution
only when in interactive mode but not in batch mode [2]. That is, unless
a special bash option is set.
Hence, maintainer scripts relying on alias substitution will not work
correctly when /bin/sh is bash. I think we should
- state in the policy that /bin/sh maintainer scripts must not use
the alias buildin. We might suggest to use a shell function instead.
- file bug reports against packages that use alias in their maintainer
scripts. Luckily, there currently seem to be only two such packages,
namely logdata-anomaly-miner and exim4-config.
Opinions? -Ralf.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_03_01
[2] https://www.gnu.org/software/bash/manual/html_node/Aliases.html
Reply to: