Packages should not contain both tools and policies
If you install the Ubuntu
mdadm package on a machine with no
software RAID arrays, it will 'helpfully' email you every day
checkarray: W: no active MD arrays found.
checkarray: W: (maybe uninstall the mdadm package?)
(The message comes from the
/usr/share/mdadm/checkarray shell script.)
This is a terrible idea, for reasons beyond that it's not an error. (It might be an error if the script bothered to check to see if there were configured arrays that weren't active, but it doesn't.)
The larger issue is that it means that Ubuntu is forcibly joining
together tools (the
mdadm program and its manpage) with administrative
policy (complaining if there are no active arrays). This is a serious
mistake, because it forces your administrative policy down the throats
of people who just want the tools. Administrative policies are not 'one
size fits all'; they do not come anywhere near close to working for
everyone. The more you forcibly join your administrative policies to
the tools in your packaging system, the more you force people who want
the tools but not your policy to step outside the packaging system,
which is a terrible idea for all sorts of reasons.
(Also, you don't know all of the reasons that people have to install tools to start with. To feed my particular pet peeve, in a multi-machine environment there are any number of reasons to have 'inapplicable' packages installed on machines, starting with that it's nice to not have to worry about logging in to a specific machine just in order to read a manpage.)
The right way is to take one of two approaches: either put the tools in one package and your policies in a second one, or remove policy from your packages and just ship things that quietly work right. (Yes, you may miss some obscure corner cases, but people with obscure corner cases always have to do some work themselves.)
Comments on this page:Written on 21 July 2009.