hey dpkg peeps, (please CC me, i'm not subscribed) i spoke with a couple folks on irc about the idea of keeping the "dist" version of conffiles on-disk somehow, and the general consensus was that it seemed like a good idea but noone had the time to push it out of a todo list. keeping the dist version of the conffiles gives the ability to do things like old->new dist version diffing, as well the coveted 3-way diff/merge. so, this past weekend i had a couple of 12-hour train rides and thus some time to kill, and threw together a proof of concept for your perusal. basically, every package has a subdirectory <admindir>/conffiles/<pkg><ext> (where <ext> is one of "","_dpkg-new","_dpkg-old"), under which its conffiles are stored. currently the subdirectory contains nested subdirectories reflecting the on-disk location of the real-file (i.e. <conffdbdir>/<pkg>/etc/foo.cfg), but other approaches are also possible such as using <conffdbdir>/<pkg>/<cksum>, where <cksum> is the md5sum of the on-disk location (/etc/foo.cfg). anyway, this version doesn't do anything apart from extract/update/purge the conffiles into this db, but the relatively small amount of code/changes required to do this and a well modularized implementation should make it clear that it wouldn't be too hard to start tacking features on top of it. so please take a look at the "conffile-fun" branch at git://git.debian.org/~seanius/dpkg.git specifically the tag conffile-fun-poc-1 contains these changes. git log -p 58ec5f918bbd081371793d9567417b670293027b... should give you an annotated changelog with fairly descriptive comments. oh, i also found two rather minor memory leaks, which are fixed in the first commit of that branch. anyway, lemme know what you think! and please CC me as i'm not on this list. sean
Attachment:
signature.asc
Description: This is a digitally signed message part.