– Better pidfile management. Always check if the pid in the pidfile actually corresponds to a running process before exiting, otherwise the pidfile is falsely stale. Better yet, you could use /proc/self/cmdline to make sure the pidfile corresponds to a process image of the program you are actually interested in – some other program could have claimed the same pid. This is a rare case but makes things more robust. For compatibility, write the process cmdline on the next line of the pidfile.
– When checking that a user owns a file or directory, consider simply opening that file RW or touching a temporary file in the directory, instead of performing a UID or GID check. UID and GID checks do not take ACLs into account, which is an issue with most network filesystems as well as many modern local filesystems.
– Add a /usr/share/bug entry, especially if your package has conffiles and potential local modifications.
– Add an /etc/bash_completion.d entry, this is useful for all those bash users who live in a terminal window (i.e. that have a rodent allergy).
– Make sure you have a /usr/share/menu entry.