Many package place emacs configuration scripts in /etc/emacs/site-start.d (and the emacs-version specific directories too).
Some of these packages specify the scripts they add as conffiles. I believe this is incorrect; it causes a problem when the package is removed. Specifically, because the files are conffiles, they are not removed when the package is removed, and so the files stay around to continue to affect the behavior of emacs. This happened to me with the user-de and user-es packages, which I installed long ago, and long ago removed. But the scripts they install have a bug on current emacs20, and because the scripts are conffiles, they didn't get deleted. I think we should specify that programs should not install conffiles which change the behavior of different packages, because it has this problem: deleting the package causes the other program to still have its behavior changed. It should not be necessary to purge in this circumstance; apt doesn't even support purge. That leaves open the question: what if the reason for a conffile (that a user or sysadmin needs to modify it) applies to such a file? In that case, the thing to modify should go in a separate file, marked a conffile, and the other-package-behavior-modifying part should go in the normal place, not as a conffile, but contain a callout to the new separate conffile. To spell out: suppose we have a script 20frob.el in the frob package. This is a file that changes the behavior of the emacs20 package, and so under my proposal it would not be allowed to be a conffile. But it happens that 20frob.el needs to be a conffile, because it contains the following line, that sysadmins often need to change: (setq default-frobnication-host "localhost") My proposal is that the frob package install *two* files. The 20frob.el file would not be a conffile and would not contain that line, but would instead say (load-file "/usr/share/frob/emacs-frob-config.el") The /usr/share/frob/emacs-frob-config.el file *would* be a conffile, and would contain (setq default-frobnication-host "localhost") Now, if the user deletes the frob package, the right thing happens: any customizations to the default-frobnication-host are preserved across the removal, but once the package is removed it stops affecting the behavior of emacs. Thomas

