I've got half of the code working for the rumored /var/lib/dpkg/info/pkg.nlist support. .nlist contains full metadata info(size, type, uid/gid, etc). This means dpkg knows everything about the files that get installed thru a deb.
This allows dpkg to do more sanity checks when a package is installed. My questions are what type of checking should dpkg do? When a file is encountered from a deb, dpkg has available the meta info from the file on disk, what it has stored in it's database from the previous version, and the new version. What changes should be allowed? Is it possible to handle the dir->link and/or link->dir changes, that so many people have complained about? What about pipe(or other special files)->dir, etc? Also, as a small question, for what file types should I store what info? For all files, I am currently storing mode/type, uid, gid. For files, I store the time, size, and name. Dirs have just their name. Links have time, target, and name. I don't have any debs that contain other files, for me to test with. ps: After the above is implemented, I'll add configurable checksum generation. There's a patch in the bts for sha1, and I'll add that to lib/mlib.c, but will allow the admin to choose which checksum to generate.

