1 Check-Script: patch-systems
2 Author: Marc Brockschmidt <he@debian.org>
6 Info: This script checks for various possible problems when using patch systems
7 Needs-Info: debfiles, diffstat
9 Tag: dpatch-build-dep-but-no-patch-list
12 Info: Using dpatch requires you to explicitly list all patches you want
13 to apply in debian/patches/00list. This package build-depends on dpatch,
14 but does not provide a patch list. You should either remove the dpatch
15 build dependency or add a patch list.
17 Note that an empty file cannot be represented in the Debian diff, so an
18 empty patch list will disappear in the source package. If you intended
19 for the series file to be empty, add a comment line.
21 Tag: dpatch-index-references-non-existent-patch
24 Info: In the 00list file listing all your dpatches, you referenced a file
25 that does not exist. This will lead to a fatal error when calling dpatch.
27 Tag: dpatch-missing-description
30 Info: dpatch files should carry a description of the included patch.
31 Description lines start with "## DP:".
33 As well as a description of the purpose and function of the patch, the
34 description should ideally contain author information, a URL for the bug
35 report (if any), Debian or upstream bugs fixed by it, upstream status,
36 the Debian version and date the patch was first included, and any other
37 information that would be useful if someone were investigating the
38 patch and underlying problem.
40 Tag: quilt-build-dep-but-no-series-file
43 Info: Using quilt requires you to explicitly list all patches you want
44 to apply in debian/patches/series. This package build-depends on quilt,
45 but does not provide a patch list. You should either remove the quilt
46 build dependency or add a series file.
48 Note that an empty file cannot be represented in the Debian diff, so an
49 empty series file will disappear in the source package. If you intended
50 for the series file to be empty, add a comment line.
52 Tag: quilt-series-but-no-build-dep
55 Info: The package contains a debian/patches/series file usually used by
56 quilt to apply patches at build time, but quilt is not listed in the
59 You should either remove the series file if it's effectively not useful
60 or add quilt to the build-dependencies if quilt is used during the build
63 If you don't need quilt during build but only during maintenance work,
64 then you can override this warning.
66 Tag: quilt-patch-with-non-standard-options
69 Info: The quilt series file contains non-standard options to apply some of
70 the listed patches. Quilt uses '-p1' by default if nothing is specified
71 after the name of the patch and the current series file specify something
72 else for some of the patches listed.
74 For compatibility with the source "3.0 (quilt)" source package format,
75 you should avoid using any option at all and make sure that your patches
76 apply with "-p1". This can be done by refreshing all patches like this:
77 quilt pop -a; while quilt push; do quilt refresh -pab; done
79 Tag: quilt-series-references-non-existent-patch
82 Info: In the series file listing all your quilt patches, you referenced a
83 file that does not exist. This will lead to a fatal error when calling quilt.
85 Tag: quilt-patch-missing-description
88 Info: quilt patch files should start with a description of patch. All
89 lines before the start of the patch itself are considered part of the
90 description. You can edit the description with <tt>quilt header -e</tt>
91 when the patch is at the top of the stack.
93 As well as a description of the purpose and function of the patch, the
94 description should ideally contain author information, a URL for the bug
95 report (if any), Debian or upstream bugs fixed by it, upstream status,
96 the Debian version and date the patch was first included, and any other
97 information that would be useful if someone were investigating the
98 patch and underlying problem.
100 Tag: patch-modifying-debian-files
103 Info: A patch stored in debian/patches/ should never modify files
104 in the debian directory (even when it's only creating new files) because
105 the debian directory is always directly provided by the Debian packaging.
106 And you shouldn't have to modify what you choose to provide in the first
109 If the patch provides a new file (say a manual page), place that file
110 in the upstream directory hierarchy as if it was ready to be submitted.
112 Tag: patch-system-but-direct-changes-in-diff
115 Info: The package uses a patch system, but the Debian diff.gz contains
116 changes to files or creation of additional files outside of the
117 <tt>debian</tt> directory. This often indicates accidental changes that
118 weren't meant to be in the package or changes that were supposed to be
119 separated out into a patch. The package will also more easily support
120 possible future source package formats if all changes outside the
121 <tt>debian</tt> directory are stored as patches.
123 Tag: more-than-one-patch-system
126 Info: The build-dependencies list more than one patch system and it's
127 unlikely that you need both at the same time.
129 Currently lintian knows only dpatch and quilt.
131 Tag: direct-changes-in-diff-but-no-patch-system
134 Info: The Debian diff.gz contains changes to files or creation of additional
135 files outside the <tt>debian</tt> directory. Keeping the changes as separate
136 patches under the control of a patch system allows for more fine grained
137 control over them. The package will also more easily support possible
138 future source package formats if all changes outside the <tt>debian</tt>
139 directory are stored as patches.