Wandering Thoughts archives


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 to report:

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.)

linux/ToolPackagesVsPolicy written at 01:30:17; Add Comment

Page tools: See As Normal.
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.