1.2. Package lint tools
According to the Free On-line Dictionary of Computing (FOLDOC), lint
is: “A Unix C language processor which carries out more thorough checks on the code than is usual with C compilers.” Package lint tools help package maintainers by automatically finding common problems and policy violations in their packages.
1.2.1. lintian
lintian
dissects Debian packages and emits information about bugs and policy violations. It contains automated checks for many aspects of Debian policy as well as some checks for common errors.
You should periodically get the newest lintian
from unstable
and check over all your packages. Notice that the -i
option provides detailed explanations of what each error or warning means, what its basis in Policy is, and commonly how you can fix the problem.
Refer to Testing the package for more information on how and when to use Lintian.
You can also see a summary of all problems reported by Lintian on your packages at https://lintian.debian.org/. These reports contain the latest lintian
output for the whole development distribution (unstable
).
1.2.2. lintian-brush
lintian-brush
contains a set of scripts that can automatically fix more than 80 common lintian issues in Debian packages.
It comes with a wrapper script that invokes the scripts, updates the changelog (if desired) and commits each change to version control.
1.2.3. piuparts
piuparts
is the .deb
package installation, upgrading, and removal testing tool.
piuparts
tests that .deb packages
handle installation, upgrading, and removal correctly. It does this by creating a minimal Debian installation in a chroot, and installing, upgrading, and removing packages in that environment, and comparing the state of the directory tree before and after. piuparts
reports any files that have been added, removed, or modified during this process.
piuparts
is meant as a quality assurance tool for people who create .deb
packages to test them before they upload them to the Debian archive.
1.2.4. debdiff
debdiff
(from the devscripts
package, devscripts) compares file lists and control files of two packages. It is a simple regression test, as it will help you notice if the number of binary packages has changed since the last upload, or if something has changed in the control file. Of course, some of the changes it reports will be all right, but it can help you prevent various accidents.
You can run it over a pair of binary packages:
debdiff package_1-1_arch.deb package_2-1_arch.deb
Or even a pair of changes files:
debdiff package_1-1_arch.changes package_2-1_arch.changes
For more information please see debdiff 1.
1.2.5. diffoscope
diffoscope
provides in-depth comparison of files, archives, and directories.
diffoscope
will try to get to the bottom of what makes files or directories different. It will recursively unpack archives of many kinds and transform various binary formats into more human readable form to compare them.
Originally developed to compare two .deb
files or two changes
files nowadays it can compare two tarballs, ISO images, or PDF just as easily and supports a huge variety of filetypes.
The differences can be shown in a text or HTML report or as JSON output.
1.2.6. duck
duck
, the Debian Url ChecKer, processes several fields in the debian/control
, debian/upstream
, debian/copyright
, debian/patches/*
and systemd.unit
files and checks if URLs, VCS links and email address domains found therein are valid.
1.2.7. adequate
adequate
checks packages installed on the system and reports bugs and policy violations.
The following checks are currently implemented:
broken symlinks
missing copyright file
obsolete conffiles
Python modules not byte-compiled
/bin
and/sbin
binaries requiring/usr/lib
librariesmissing libraries, undefined symbols, symbol size mismatches
license conflicts
program name collisions
missing alternatives
missing
binfmt
interpreters and detectorsmissing
pkg-config
dependencies
1.2.8. i18nspector
i18nspector
is a tool for checking translation templates (POT), message catalogues (PO) and compiled message catalogues (MO) files for common problems.
1.2.9. cme
cme
is a tool from the libconfig-model-dpkg-perl
package is an editor for dpkg source files with validation. Check the package description to see what it can do.
1.2.10. licensecheck
licensecheck
attempts to determine the license that applies to each file passed to it, by searching the start of the file for text belonging to various licenses.
1.2.11. blhc
blhc
is a tool which checks build logs for missing hardening flags.