Cruft is a tool to look over your system for anything that shouldn't be there, but is; or for anything that should be there, but isn't. It is available as package cruft in the debian archive.
This page is meant as a place to assemble ideas and guidelines about cruft usage from perspective of a Debian package maintainer or a system administrator, before properly integrating them as package documentation.
Purpose of this tool
This tool can be used for many purpose:
- tracking regressions in packaging on testing/unstable
- forensics analysis of ready-made OS image received from (sloppy) third parties that did undocumented changes
- bring inner peace
Work in Progress
Current open bugs about cruft found left over by packages:
How to tag an existing bug
bts user firstname.lastname@example.org , usertag 1017445 cruft
Guidelines on creating filters and explain scripts
- try to be as specific as possible, keeping a balance with complexity. For example if the package only creates files /foo/bar /foo/bar.0 /foo/bar.1 /foo/bar.2.gz and so on, then specify two patterns: /foo/bar and /foo/bar.*, not /foo**
- before adding a file to the filter, make sure that the package actually still uses it. Some packages delete some files in a postrm script which are pure leftovers from earlier versions.
Move some Cruft functionality in debhelper/dpkg
Cruft need to know which files will be removed by dpkg --purge; If those were in a machine-readable format, this would greatly reduce ad-hoc cruft ruleset, this could also make 'dpkg' itself better. proposal
Fedora and other RPM-based distros have %ghost files/dirs that may or may not be there. If they are there, they are owned by the package. If they aren't there, not error is raised.