1 Check-Script: control-file
2 Author: Marc 'HE' Brockschmidt <marc@marcbrockschmidt.de>
7 Info: This script checks debian/control files in source packages
9 Tag: debian-control-file-uses-obsolete-national-encoding
13 Info: The Debian control file should be valid UTF-8, an encoding of
14 the Unicode character set.
16 There are many ways to convert a control from an obsoleted encoding
17 like ISO-8859-1; you may for example use "iconv" like this:
19 $ iconv -f ISO-8859-1 -t UTF-8 control > control.new
20 $ mv control.new control
22 Tag: build-info-in-binary-control-file-section
26 Info: The control file has a Build-Depends, Build-Depends-Indep,
27 Build-Conflicts, or Build-Conflicts-Indep field in a binary
28 section. These specify source package relationships, and should be in
29 the source section of the control file.
31 Tag: debian-control-with-duplicate-fields
34 Info: One of the paragraphs of your debian/control contains the same
35 field more than once. This can lead to an unexpected behaviour of dpkg
38 Tag: debian-control-has-unusual-field-spacing
42 Info: The field on this line of <tt>debian/control</tt> has whitespace
43 other than a single space after the colon. This is explicitly permitted
44 in the syntax of Debian control files, but as Policy says, it is
45 conventional to put a single space after the colon.
47 Tag: binary-control-field-duplicates-source
50 Info: In <tt>debian/control</tt>, this field for a binary package
51 duplicates the value inherited from the source package paragraph. This
52 doesn't hurt anything, but you may want to take advantage of the
53 inheritance and set the value in only one place. It prevents missing
54 duplicate places that need to be fixed if the value ever changes.
56 Tag: debian-control-file-is-a-symlink
59 Info: The <tt>debian/control</tt> file is a symlink rather than a regular
60 file. Using symlinks for required source package files is unnecessary and
61 makes package checking and manipulation more difficult. If the control
62 file should be available in the source package under multiple names, make
63 <tt>debian/control</tt> the real file and the other names symlinks to it.
65 Tag: no-section-field-for-source
69 Info: The package does not have a "Section:" field in the source package
70 section of its control file. The Section field is required for source
71 packages at the request of the Debian ftp-masters.
73 Tag: section-area-mismatch
76 Info: The <tt>debian/control</tt> file places the indicated binary package
77 in a different archive area (main, contrib, non-free) than its source
78 package or other binary packages built from the same source package. The
79 source package and any binary packages it builds must be in the same
80 area of the archive, with the single exception that source packages in
81 main may also build binary packages in contrib.
83 Tag: xs-vcs-header-in-debian-control
86 Info: There is an XS-Vcs-* field in the <tt>debian/control</tt> file. As
87 of dpkg 1.14.6, the XS- prefix is no longer necessary. dpkg now
88 recognizes these headers and handles them correctly. Consider removing
89 the XS- prefix for this field.
91 Tag: stronger-dependency-implies-weaker
95 Info: In the <tt>debian/control</tt> stanza for the given package, a
96 stronger dependency field implies one of the dependencies in a weaker
97 dependency field. In other words, the Depends field of the package
98 requires that one of the packages listed in Recommends or Suggests be
99 installed, or a package is listed in Recommends as well as Suggests.
101 Current versions of dpkg-gencontrol will silently fix this problem by
102 removing the weaker dependency, but it may indicate a more subtle bug
103 (misspelling or forgetting to remove the stronger dependency when it was
104 moved to the weaker field).
106 Tag: package-depends-on-itself
110 Info: The given package declares a dependency on itself in its
111 <tt>debian/control</tt> stanza. Current versions of dpkg-gencontrol will
112 silently fix this problem by removing the dependency, but it may indicate
113 a more subtle bug (misspelling or cutting and pasting the wrong package
116 Tag: duplicate-short-description
119 Info: The listed binary packages all share the same short description (the
120 first line of the Description control field). The package names may
121 provide enough additional information to distinguish between the
122 packages, but it's common to also add a word or two to the short
123 description to clarify the difference.
125 Tag: duplicate-long-description
128 Info: The listed binary packages all share the same extended description.
129 Some additional information in the extended description explaining what
130 is in each package and how it differs from the other packages is useful,
131 particularly for users who aren't familiar with Debian's package naming
134 Tag: missing-comma-after-substvar
137 Info: The given field in the <tt>debian/control</tt> file has a substvar
138 (something of the form <tt>${Variable}</tt>) that isn't followed by a
139 comma. This is normally a lurking bug. As long as the variable isn't
140 defined or expands to an empty string, the generated control file will be
141 syntactically valid, but as soon as the variable has a non-empty value,
142 the control file will have a syntax error. You probably meant to put a
143 comma after the substvar expansion.
145 Tag: missing-comma-between-items
148 Info: The given field in the <tt>debian/control</tt> file contains a list
149 of items separated by commas. It appears that when wrapping the list on
150 multiple lines, a comma was missed at the end of a line. This can lead
151 to bogus or incomplete dependencies, conflicts etc.
153 Tag: package-depends-on-hardcoded-libc
156 Info: The given package declares a dependency on libc directly instead
157 of using ${shlibs:Depends} in its <tt>debian/control</tt> stanza.