2 Author: Marc 'HE' Brockschmidt <marc@marcbrockschmidt.de>
4 Type: binary, udeb, source
7 Info: This script checks the syntax of the fields in package control files,
8 as described in the Policy Manual.
12 Info: The package does not have a `Package:' field in its control file.
17 Info: A package name should be at least two characters long, must consist
18 of the alphanumerics and `+' `-' and `.', and must start with an
19 alphanumeric character.
22 Tag: package-not-lowercase
24 Info: New packages should not use uppercase characters in their names.
29 Info: The package does not have a `Version:' field in its control file.
32 Tag: bad-version-number
34 Info: The version number fails one of the syntactic requirements of dpkg.
37 Tag: upstream-version-not-numeric
39 Info: The upstream version number should start with a digit.
42 Tag: debian-revision-not-well-formed
44 Info: The debian version part (the part after the -) should consist of one
45 or two dot-separated parts: one for a regular maintainer release or two
48 Tag: debian-revision-should-not-be-zero
50 Info: The debian version part (the part after the -) should start with one,
51 not with zero. This is to ensure that a correctly-done Maintainer Upload will
52 always have a higher version number than a Non-Maintainer upload: a NMU could
53 have been prepared which introduces this upstream version with
57 Tag: no-architecture-field
59 Info: The package does not have an `Architecture:' field in its control file.
62 Tag: magic-arch-in-arch-list
64 Info: The special architecture values `all' and `any' only make sense if
68 Tag: unknown-architecture
70 Info: This package claims to be for an unknown architecture. The
71 architecture should be one of the values supported by dpkg or one of the
72 special values "all" or "any". The special value "source" is only used
73 in *.changes files and does not make sense in a binary package or a *.dsc
76 Tag: too-many-architectures
78 Info: A binary package should list exactly one architecture (the one it is
79 compiled for), or the special value `all' if it is architecture-independent.
82 Tag: arch-any-in-binary-pkg
84 Info: The special architecture value `any' does not make sense in a binary
88 Tag: aspell-package-not-arch-all
90 Info: This package appears to be an aspell dictionary package, but it is
91 not Architecture: all. The binary hashes should be built at install-time
92 by calling aspell-autobuildhash, so the contents of the package should be
93 architecture-independent.
94 Ref: aspell-autobuildhash(8)
96 Tag: no-maintainer-field
98 Info: The package does not have a `Maintainer:' field in its control file.
102 Tag: maintainer-name-missing
104 Info: The maintainer field seems to contain just an email address. It must
105 contain the package maintainer's name and email address.
108 Tag: maintainer-address-missing
110 Info: The maintainer field should contain the package maintainer's name and
111 email address, with the name followed by the address inside angle
112 brackets (< and >). The address seems to be missing.
115 Tag: maintainer-address-malformed
117 Info: The maintainer field could not be parsed according to the rules in
121 Tag: maintainer-not-full-name
123 Info: The `name' part of this maintainer field is just one word, so it
124 might not be a full name.
126 Tag: maintainer-address-looks-weird
128 Info: The maintainer address does not have whitespace between the name
129 and the email address.
131 Tag: maintainer-address-is-on-localhost
133 Info: The maintainer address includes localhost(.localdomain), which is
134 an invalid e-mail address.
137 Tag: uploader-name-missing
139 Info: The uploader field seems to contain just an email address. It must
140 contain the package uploader's name and email address.
143 Tag: uploader-address-missing
145 Info: The uploader field should contain the package uploader's name and
146 email address, with the name followed by the address inside angle
147 brackets (< and >). The address seems to be missing.
150 Tag: uploader-address-malformed
152 Info: The uploader field could not be parsed according to the rules in
156 Tag: uploader-not-full-name
158 Info: The `name' part of this uploader field is just one word, so it
159 might not be a full name.
161 Tag: uploader-address-looks-weird
163 Info: The uploader address does not have whitespace between the name
164 and the email address.
166 Tag: uploader-address-is-on-localhost
168 Info: The uploader address includes localhost(.localdomain), which is
169 an invalid e-mail address.
172 Tag: wrong-debian-qa-address-set-as-maintainer
174 Info: Orphaned packages should no longer have the address
175 <debian-qa@lists.debian.org> in the Maintainer field.
177 The correct Maintainer field for orphaned packages is
178 Debian QA Group <packages@qa.debian.org>.
181 Tag: wrong-debian-qa-group-name
183 Info: Orphaned packages should have "Debian QA Group
184 <packages@qa.debian.org>" in the maintainer field.
187 Tag: no-human-maintainers
189 Info: The Maintainer address for this package is a mailing list and there
190 are no Uploaders listed. Team-maintained packages should list the human
191 maintainers in the Uploaders field.
196 Info: The package does not have a `Source:' field in its control file.
199 Tag: source-field-does-not-match-pkg-name
201 Info: The source package's filename is not the same as the name given
202 in its Source field. The Source field should name the package.
205 Tag: source-field-malformed
207 Info: In a binary package, the Source field should identify the source
208 package from which the package was compiled. It should be the
209 source package name, optionally followed by a version number
213 Tag: essential-in-source-package
215 Info: This field should only appear in binary packages.
218 Tag: essential-no-not-needed
220 Info: Having `Essential: no' is the same as not having the field at all,
221 so it just makes the Packages file longer with no benefit.
224 Tag: unknown-essential-value
226 Info: The only valid values for the Essential field are yes and no.
229 Tag: no-section-field
231 Info: The package does not have a `Section:' field in its control file.
233 The field is mandatory for source packages and optional for binary
234 packages, which use the source package's value as default is nothing
240 Info: The `Section:' field in this package's control file is not one of
241 the sections in use on the ftp archive. Valid sections are currently
242 admin, comm, devel, doc, editors, electronics, embedded, games,
243 gnome, graphics, hamradio, interpreters, kde, libdevel, libs, mail,
244 math, misc, net, news, oldlibs, otherosfs, perl, python, science, shells,
245 sound, tex, text, utils, web, and x11.
247 The section name should be preceded by `non-free/' if the package
248 is in the non-free distribution, and by `contrib/' if the package
249 is in the contrib distribution.
252 Tag: section-is-dh_make-template
254 Info: The `Section:' field in this package's control file is set to
255 unknown. This is not a valid section, and usually means a dh_make
256 template control file was used and never modified to set the correct
260 Tag: wrong-section-for-udeb
262 Info: udeb packages should have `Section: debian-installer'.
264 Tag: no-priority-field
266 Info: The package does not have a `Priority:' field in its control file.
268 The Priority field can be included in a binary package by passing
269 the -ip or -isp flags to dpkg-gencontrol when building the package.
270 The field is optional in binary packages.
273 Tag: unknown-priority
275 Info: The `Priority:' field in this package's control file is not one of
276 the priorities defined in the Policy Manual.
279 Tag: superfluous-clutter-in-homepage
281 Info: The `Homepage:' field in this package's control file contains
282 superfluous markup around the URL, like enclosing < and >.
283 This is unnecessary and needlessly complicates using this information.
287 Info: The `Homepage:' field in this package's control file does not
288 contain a valid absolute URL. Most probably you forgot to specificy
289 the scheme (e.g. http).
293 Info: This field is listed in the Policy Manual as obsolete and
294 not-to-be-present in any package.
297 Tag: unknown-field-in-dsc
299 Info: See the Policy Manual for a list of the possible fields in
300 a source package control file.
303 Tag: unknown-field-in-control
305 Info: See the Policy Manual for a list of the possible fields in
306 a binary package control file.
308 In udeb packages the fields pre-depends, conflicts, essential and
309 suggests are disallowed, but they can contain the new fields
310 subarchitecture and installer-menu-item.
315 Info: Most control fields must have only a single line of data.
318 Tag: alternates-not-allowed
320 Info: Only the `Depends', `Recommends', `Suggests' and `Pre-Depends'
321 fields may specify alternate dependencies using the `|' symbol.
324 Tag: versioned-provides
327 Info: The `Provides' field may not specify a version range.
329 Tag: obsolete-relation-form
332 Info: The forms `<' and `>' mean `<=' and `>=', not `<<'
333 and `>>' as one might expect. For that reason these forms are
334 obsolete, and should not be used in new packages. Use the longer forms
337 Tag: bad-version-in-relation
340 Info: The version number used in this relationship does not match the
341 defined format of a version number.
343 Tag: package-relation-with-self
345 Info: The package declares a relationship with itself. This is not very
346 useful, except in the case of a package Conflicting with itself, if its
347 package name doubles as a virtual package.
351 Info: The package declares a relationship that could not be parsed according
352 to the rules given in the Policy Manual.
355 Tag: new-essential-package
357 Info: This package has the Essential flag set. New Essential packages
358 are sufficiently rare that it seems worth warning about. They should
359 be discussed on debian-devel first.
364 Info: Although non-us works for a section name, non-US is preferred.
366 Tag: doc-package-depends-on-main-package
368 Info: The name of this package suggests that it is a documentation package.
369 It is usually not desirable for documentation packages to depend on the
370 packages they document, because users may want to install the docs before
371 they decide whether they want to install the package. Also, documentation
372 packages are often architecture-independent, so on other architectures
373 the package on which it depends may not even exist.
375 Tag: depends-on-obsolete-package
377 Info: The package depends on a package that has been superseded.
378 If the superseded package is part of an ORed group, it should not be
379 the first package in the group.
381 Tag: ored-depends-on-obsolete-package
383 Info: The package depends on an ORed group of packages which includes
384 a package that has been superseded.
386 Tag: build-depends-on-obsolete-package
388 Info: The package build-depends on a package that has been superseded.
390 Tag: depends-on-old-emacs
392 Info: The package lists an old version of Emacs as its first dependency.
393 It should probably be updated to support the current version of Emacs
394 in the archive and then list that version first in the list of Emacs
397 If the package intentionally only supports older versions of Emacs (if,
398 for example, it was included with later versions of Emacs), add a lintian
401 Tag: depends-on-x-metapackage
403 Info: Packages that are not themselves metapackages must not depend on X
404 Window System metapackages.
406 The metapackages xorg, xorg-dev, x-window-system, x-window-system-dev, and
407 x-window-system-core exist only for the benefit of users and dependencies
408 for other metapackages and should not be used in regular package
411 Tag: build-depends-on-x-metapackage
413 Info: Packages must not build-depend on X Window System metapackages.
415 The metapackages xorg, xorg-dev, x-window-system, x-window-system-dev, and
416 x-window-system-core exist only for the benefit of users and should not
417 be used in package build dependencies.
419 Tag: depends-on-essential-package-without-using-version
422 Info: The package declares a depends on an essential package, e.g. dpkg,
423 without using a versioned depends. Packages do not need to depend on
424 essential packages; essential means that they will always be present.
425 The only reason to list an explicit dependency on an essential package
426 is if you need a particular version of that package, in which case the
427 version should be given in the dependency.
429 Tag: build-depends-on-essential-package-without-using-version
432 Info: The package declares a build-depends on an essential package, e.g. dpkg,
433 without using a versioned depends. Packages do not need to build-depend on
434 essential packages; essential means that they will always be present.
435 The only reason to list an explicit dependency on an essential package
436 is if you need a particular version of that package, in which case the
437 version should be given in the dependency.
439 Tag: virtual-package-depends-without-real-package-depends
441 Info: The package declares a depends on a virtual package without listing a
442 real package as an alternative first.
444 If this package could ever be a build dependency, it should list a real
445 package as the first alternative to any virtual package in its Depends.
446 Otherwise, the build daemons will not be able to provide a consistent
449 If it will never be a build dependency, this isn't necessary, but you may
450 want to consider doing so anyway if there is a real package providing
451 that virtual package that most users will want to use.
453 Tag: invalid-arch-string-in-source-relation
456 Info: The architecture string in the source relation does not follow policy.
457 A common cause of this is a comma in the arch, i.e. [i386, m68k], it should
460 Tag: depends-on-build-essential-package-without-using-version
463 Info: The package declares a depends on a build essential package without
464 using a versioned depends. Packages do not have to build-depend on any
465 package included in build-essential. It is the responsibility of anyone
466 building packages to have all build-essential packages installed. The
467 only reason for an explicit dependency on a package included in
468 build-essential is if a particular version of that package is required,
469 in which case the dependency should include the version.
471 Tag: package-depends-on-an-x-font-package
473 Info: Packages must not depend on X Window System font packages.
475 If one or more of the fonts so packaged are necessary for proper operation
476 of the package with which they are associated the font package may be
477 Recommended; if the fonts merely provide an enhancement, a Suggests
478 relationship may be used.
481 Tag: build-depends-indep-without-arch-indep
484 Info: The control file specifies source relations for architecture-independent
485 packages, but no architecture-independent packages are built.
487 Tag: build-depends-without-arch-dep
490 Info: The control file lists the given package in Build-Depends, but no
491 architecture-dependent packages are built. If all the packages built are
492 architecture-independent, the only packages that should be listed in
493 Build-Depends are those required to run the clean target (such as
494 debhelper if you use dh_clean). Other build dependencies should be listed
495 in Build-Depends-Indep instead.
497 Tag: clean-should-be-satisfied-by-build-depends
500 Info: The specified package is required to run the clean target of
501 <tt>debian/rules</tt> and therefore must be listed in Build-Depends, not
502 Build-Depends-Indep, even if no architecture-dependent packages are
505 Tag: missing-build-dependency
508 Info: The package doesn't specify a build dependency on a package that is
509 used in <tt>debian/rules</tt>.
511 lintian intentionally does not take into account transitive dependencies.
512 Even if the package build-depends on some package that in turn
513 build-depends on the needed package, an explicit build dependency should
514 be added. Otherwise, a latent bug is created that will appear without
515 warning if the other package is ever updated to change its dependencies.
516 Even if this seems unlikely, please always add explicit build
517 dependencies on every non-essential, non-build-essential package that is
518 used directly during the build.
520 Tag: missing-python-build-dependency
523 Info: The package appears to use Python as part of its build process in
524 <tt>debian/rules</tt> but doesn't depend on Python.
526 Normally, packages that use Python as part of the build process should
527 build-depend on one of python, python-all, python-dev, or python-all-dev
528 depending on whether they support multiple versions of Python and whether
529 they're building modules or only using Python as part of the package
530 build process. Packages that depend on a specific version of Python may
531 build-depend on the appropriate pythonX.Y or pythonX.Y-dev package
534 Tag: missing-dh_python-build-dependency
537 Info: The package runs dh_python in <tt>debian/rules</tt> but doesn't
538 build-depend on python or python-dev. dh_python requires
539 <tt>/usr/bin/python</tt> to run, so packages using dh_python must
540 build-depend on python (or python-dev or python-all-dev, which in turn
541 depend on python), even if they don't otherwise need Python to build.
543 Tag: build-conflicts-with-build-dependency
546 Info: The package build-conflicts with a package that it also
549 Tag: package-has-a-duplicate-build-relation
551 Info: The package declares the given build relations on the same package
552 in either Build-Depends or Build-Depends-Indep, but the build relations
553 imply each other and are therefore redundant.
555 Tag: build-depends-on-1-revision
557 Info: The package declares a build dependency on a version of a package
558 with a -1 Debian revision such as "libfoo (>= 1.2-1)". Such a
559 dependency will not be satisfied by a backport of libfoo 1.2-1 and
560 therefore makes backporting unnecessarily difficult. Normally, the -1
561 version is unneeded and a dependency such as "libfoo (>= 1.2)" would
562 be sufficient. If there was an earlier -0.X version of libfoo that would
563 not satisfy the dependency, use "libfoo (>= 1.2-1~)" instead.
565 Tag: needlessly-depends-on-awk
567 Info: The package seems to declare a relation on awk. awk is a virtual
568 package, but it is special since it's de facto essential. If you don't
569 need to depend on a specific version of awk (which wouldn't work anyway,
570 as dpkg doesn't support versioned provides), you should remove the
573 Tag: package-depends-on-multiple-libstdc-versions
575 Info: The package seems to declare several relations to a libstdc version.
576 This is not only sloppy but in the case of libraries, it may well break
577 the runtime execution of programs.
579 Tag: package-depends-on-multiple-tcl-versions
581 Info: The package seems to declare several relations to a tcl version.
582 This is not only sloppy but in the case of libraries, it may well break
583 the runtime execution of programs.
585 Tag: package-depends-on-multiple-tclx-versions
587 Info: The package seems to declare several relations to a tclx version.
588 This is not only sloppy but in the case of libraries, it may well break
589 the runtime execution of programs.
591 Tag: package-depends-on-multiple-tk-versions
593 Info: The package seems to declare several relations to a tk version.
594 This is not only sloppy but in the case of libraries, it may well break
595 the runtime execution of programs.
597 Tag: package-depends-on-multiple-tkx-versions
599 Info: The package seems to declare several relations to a tkx version.
600 This is not only sloppy but in the case of libraries, it may well break
601 the runtime execution of programs.
603 Tag: package-depends-on-multiple-libpng-versions
605 Info: The package seems to declare several relations to a libpng version.
606 This is not only sloppy but in the case of libraries, it may well break
607 the runtime execution of programs.
609 Tag: depends-on-libdb1-compat
611 Info: The package seems to declare a relation on libdb1-compat.
612 This library exists for compatibility with applications built against
613 glibc 2.0 or 2.1. There is intentionally no corresponding development
614 package. Do not link new applications against this library!
616 Tag: depends-on-python-minimal
618 Info: The python-minimal package (and versioned variants thereof) exists
619 only to possibly become an Essential package. Depending on it is always
620 an error since it should never be installed without python. If it
621 becomes Essential, there is no need to depend on it, and until then,
622 packages that require Python must depend on python.
624 Tag: dbg-package-missing-depends
626 Info: This package has a name of the form of "X-dbg", indicating it
627 contains detached debugging symbols for the package X. If so, it should
628 depend on the corresponding package, generally with (= ${binary:Version})
629 since the debugging symbols are only useful with the binaries created by
632 Tag: conflicts-with-dependency
635 Info: The package seems to conflict with one of its dependencies,
636 recommendations, or suggestions by listing it in Conflicts or Breaks.
638 Tag: package-uses-breaks
641 Info: This package uses the Breaks control field. This control field
642 should not be used until the stable release of Debian supports Breaks.
644 Tag: breaks-without-version
647 Info: This package declares a Breaks relationship with another package
648 that has no version number. Normally, Breaks should be used to indicate
649 an incompatibility with a specific version of another package, or with
650 all versions predating a fix. If the two packages can never be installed
651 at the same time, Conflicts should normally be used instead.
655 Info: The field Installer-Menu-Item should only contain positive integer
658 Tag: redundant-origin-field
660 Info: You use the Origin field though the field value is the default (Debian).
661 In this case the field is redundant and should be removed.
663 Tag: binary-nmu-uses-old-version-style
666 Info: The version number of a binary NMU should be formed by appending
667 <tt>+b</tt> and a digit to the source version. This version scheme is
668 special-cased by the archive software. The -x.x.x version number style
669 should no longer be used.
671 Tag: binary-nmu-debian-revision-in-source
674 Info: The version number of your source package ends in +b and a number or
675 has a Debian revision containing three parts. These version numbers are
676 used by binary NMUs and should not be used as the source version. (The
677 +b form is the current standard; the three-part version number now
680 Tag: redundant-bugs-field
682 Info: You use the Bugs field though the field value is the default
683 (debbugs://bugs.debian.org/). In this case the field is redundant and
686 Tag: build-depends-on-build-essential
689 Info: You depend on the build-essential package, which is only a
690 meta-package depending on build tools that have to be installed in all
693 Tag: malformed-python-version
695 Ref: Python policy 2.3
696 Info: The Python-Version control field is not in one of the valid
697 formats. It should be in one of the following formats:
703 >= A.B, << X.Y
706 (One or more specific versions may be listed with the last form.) A.B
707 and X.Y should be Python versions.
709 Tag: old-versioned-python-dependency
711 Info: This package appears to be an architecture-indepedent Python module
712 but has a dependency on a version of python less than a particular
713 version and no Python-Version control field. This normally means that
714 the package isn't using the current Python policy; most
715 architecture-independent Python packages will work with any future
716 version of Python if they follow the new policy.
718 If this package really does require only a particular range of Python
719 versions, add a Python-Version control field (as described in 2.3 of the
720 Python policy) to resolve this warning.
722 Tag: malformed-dm-upload-allowed
724 Ref: http://www.debian.org/vote/2007/vote_003
725 Info: The Dm-Upload-Allowed field in this package is set to something
726 other than "yes". The only standardized value for this field in the
727 Debian GR is "yes" and other values (including capitalization varients)
728 may not work as expected.
730 Tag: doc-package-should-be-section-doc
732 Info: This package has a name suggesting that it contains only
733 documentation. If so, it should be in section "doc".
735 Tag: python-package-should-be-section-python
737 Info: This package has a name suggesting that it is a Python extension or
738 part of the Python environment. If so, it should be in section
741 Tag: perl-package-should-be-section-perl
743 Info: This package has a name suggesting that it is a Perl module package.
744 If so, it should be in section "perl".
746 Tag: dev-package-should-be-section-libdevel
748 Info: This package has a name suggesting that it is a library development
749 package. If so, it should be in section "libdevel".
751 Tag: debug-package-should-be-priority-extra
753 Info: This package has a name suggesting that it contains detached
754 debugging symbols. If so, it should have priority "extra" since users
755 normally do not need such packages.