[Pkg-mailman-hackers] Bug#502263: mailman: policy violation (9.1.1): writes to /usr when config changes

Lionel Elie Mamane lionel at mamane.lu
Tue Feb 10 19:20:26 UTC 2009


On Wed, Oct 15, 2008 at 11:07:05AM +0200, Thijs Kinkhorst wrote:
> On Wed, October 15, 2008 07:48, Helmut Grohne wrote:

>> (...) /usr must not be written to. However after changing the
>> configuration file /usr/lib/mailman/Mailman/mm_cfg.pyc is updated on
>> restarting mailman which is a violation of the policy.

> I welcome input on this issue from people with more deep knowledge
> than myself about these Python cached files, and how we could best
> address it in this case. If there's a straightforward solution I
> think we can apply it for lenny.

Too late for lenny now, but it would be worth testing if installing a
dangling symlink
   /usr/lib/mailman/Mailman/mm_cfg.pyc -> /var/cache/mailman/mm_cfg.pyc
in the package would lead to python create and update the file there
(as opposed to remove the symlink and create the file there).

preinst magic may be needed, dpkg might refuse to overwrite the
already existing (unregistered / unknown) file with a symlink,
although I don't think it will. (Just unconditionally removing the
file may do the trick.)

As you said in your other message, fixing that in python is even more
groovy, but that would lead to interesting problems of when / how to
purge the cache, how to handle (store the (device,inode) number in the
pyc file and compare if it has changed?) different mounts leading to
different files being at the same path (name) at different points of
time, ... A very cool solution (but not applicable at the package
level with the Linux kernel) is make /usr/lib/mailman/Mailman an
unionfs that writes any non-package originated file to
/var/cache/mailman/Mailman/ :)

-- 
Lionel





More information about the Pkg-mailman-hackers mailing list