lintian: r770 - in trunk: checks debian testset testset/binary/debian testset/etcfiles/debian
Author: rra
Date: 2006-11-11 07:03:19 +0100 (Sat, 11 Nov 2006)
New Revision: 770
Modified:
trunk/checks/md5sums
trunk/checks/md5sums.desc
trunk/debian/changelog
trunk/testset/binary/debian/rules
trunk/testset/etcfiles/debian/rules
trunk/testset/tags.binary
trunk/testset/tags.diffs
trunk/testset/tags.empty
trunk/testset/tags.etcfiles
trunk/testset/tags.filenames
trunk/testset/tags.foo++
trunk/testset/tags.libbaz
trunk/testset/tags.maintainer-scripts
trunk/testset/tags.manpages
trunk/testset/tags.non-us
trunk/testset/tags.relations
trunk/testset/tags.scripts
Log:
* checks/md5sums{.desc,}:
+ [RA] Add a tag for a missing md5sums control file, but only at info
level, at least for now. (Closes: #133027)
+ [RA] Do better syntax checking of the md5sums control file and
report malformed lines as a tag rather than aborting lintian.
+ [RA] Downgrade file-missing-in-md5sums to a warning since it doesn't
break the package or debsums and may be intentional.
Modified: trunk/checks/md5sums
===================================================================
--- trunk/checks/md5sums 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/checks/md5sums 2006-11-11 06:03:19 UTC (rev 770)
@@ -36,7 +36,7 @@
# Is there a md5sums control file?
unless (-f $control) {
- # no, skip this package
+ tag "no-md5sums-control-file", "";
return 0;
}
@@ -51,8 +51,11 @@
while (<C>) {
chop;
next if m/^\s*$/;
- m{^(\S+)\s*(?:\./)?(\S.*)$} or fail("syntax error in md5sums control file: $_");
- $control_entry{$2} = $1;
+ if (m{^([a-f0-9]+)\s*(?:\./)?(\S.*)$} && length($1) == 32) {
+ $control_entry{$2} = $1;
+ } else {
+ tag "malformed-md5sums-control-file", "line $.";
+ }
}
close(C);
Modified: trunk/checks/md5sums.desc
===================================================================
--- trunk/checks/md5sums.desc 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/checks/md5sums.desc 2006-11-11 06:03:19 UTC (rev 770)
@@ -6,16 +6,35 @@
Unpack-Level: 1
Needs-Info: md5sums
Info: This script checks if md5sum control files are valid, if they are
- provided by a binary package. (All packages not containing a md5sums
- control file are skipped.)
+ provided by a binary package.
+Tag: no-md5sums-control-file
+Type: info
+Info: This package does not contain an md5sums control file. This control
+ file listing the MD5 checksums of the contents of the package is not
+ required, but if present debsums can use it to verify that no files
+ shipped with your package have been modified. Providing it is
+ recommended.
+ .
+ If you are using debhelper to create your package, just add a call to
+ <tt>dh_md5sums</tt> at the end of your binary-indep or binary-arch
+ target, right before <tt>dh_builddeb</tt>.
+
Tag: md5sums-control-file-is-empty
Type: error
Info: The package contains an md5sums control file, but it lists no files.
+Tag: malformed-md5sums-control-file
+Type: error
+Info: The indicated line of the md5sums control file for this package was
+ malformed. Each line of an md5sums control file should contain an MD5
+ checksum, some whitespace, and then the path to the file corresponding to
+ that checksum.
+
Tag: md5sum-mismatch
Type: error
-Info: The md5sum listed for the file does not match the actual file contents.
+Info: The md5sum listed for the file does not match the actual file
+ contents.
.
Usually, this error occurs during the package build process, if the
<tt>debian/tmp/</tt> directory is touched after <tt>dh_md5sums</tt> or
@@ -23,7 +42,8 @@
Tag: md5sums-lists-nonexisting-file
Type: error
-Info: The md5sums control file lists a file which is not included in the package.
+Info: The md5sums control file lists a file which is not included in the
+ package.
.
Usually, this error occurs during the package build process, if the
<tt>debian/tmp/</tt> directory is touched after <tt>dh_md5sums</tt> or
@@ -35,7 +55,7 @@
updated debstd should fix the problem.
Tag: file-missing-in-md5sums
-Type: error
+Type: warning
Info: The package contains a file which isn't listed in the md5sums control
file.
.
Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/debian/changelog 2006-11-11 06:03:19 UTC (rev 770)
@@ -29,6 +29,13 @@
into account transitive build dependencies. (Closes: #393975)
+ [RA] Avoid Perl warning when diagnosing a Python-Version of the form
"all, >= 2.4". Thanks, Thijs Kinkhorst. (Closes: #394104)
+ * checks/md5sums{.desc,}:
+ + [RA] Add a tag for a missing md5sums control file, but only at info
+ level, at least for now. (Closes: #133027)
+ + [RA] Do better syntax checking of the md5sums control file and
+ report malformed lines as a tag rather than aborting lintian.
+ + [RA] Downgrade file-missing-in-md5sums to a warning since it doesn't
+ break the package or debsums and may be intentional.
* checks/menu.desc:
+ [RA] Remove stray commas in Ref strings since the reporting code
considers commas to be separating two different references.
@@ -37,7 +44,7 @@
various subdirectories of its standard search path based on hardware
capabilities. Reported by Aurelien Jarno. (Closes: #396278)
- -- Russ Allbery <rra@debian.org> Fri, 10 Nov 2006 20:56:37 -0800
+ -- Russ Allbery <rra@debian.org> Fri, 10 Nov 2006 22:02:45 -0800
lintian (1.23.25) unstable; urgency=low
Modified: trunk/testset/binary/debian/rules
===================================================================
--- trunk/testset/binary/debian/rules 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/binary/debian/rules 2006-11-11 06:03:19 UTC (rev 770)
@@ -60,6 +60,10 @@
dpkg-shlibdeps $(tmp)/usr/bin/hello
dpkg-gencontrol -pbinary -isp
dpkg-gencontrol -pbinary-data -Pdebian/binary-data -isp
+
+ # Test an md5sums check while we're here.
+ touch debian/binary-data/DEBIAN/md5sums
+
dpkg --build debian/tmp ..
dpkg --build debian/binary-data ..
Modified: trunk/testset/etcfiles/debian/rules
===================================================================
--- trunk/testset/etcfiles/debian/rules 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/etcfiles/debian/rules 2006-11-11 06:03:19 UTC (rev 770)
@@ -21,6 +21,17 @@
install -d $(tmp)/DEBIAN
install -m 644 debian/conffiles $(tmp)/DEBIAN
+ echo 'ab371382468880299e5ebd05921764ce ./etc/proper' \
+ > debian/tmp/DEBIAN/md5sums
+ echo 'ab371382468880299e5ebd05921764ce etc/improper' \
+ >> debian/tmp/DEBIAN/md5sums
+ echo 'ab371382468880299e5ebd05921764ce usr/bin/foo' \
+ >> debian/tmp/DEBIAN/md5sums
+ echo 'this is a malformed line' \
+ >> debian/tmp/DEBIAN/md5sums
+ echo '07408b7e90981ddc95fda4080c259436 usr/share/doc/etcfiles/README.Debian' \
+ >> debian/tmp/DEBIAN/md5sums
+
dpkg-gencontrol -isp
dpkg --build debian/tmp ..
Modified: trunk/testset/tags.binary
===================================================================
--- trunk/testset/tags.binary 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/tags.binary 2006-11-11 06:03:19 UTC (rev 770)
@@ -1,4 +1,5 @@
E: binary source: debian-rules-missing-required-target binary-indep
+E: binary-data: md5sums-control-file-is-empty
E: binary: debian-changelog-file-missing-or-wrong-name
E: binary: depends-on-x-metapackage depends: xorg
E: binary: doc-base-file-references-missing-file binary:11 /usr/share/doc/binary/binary.sgml.gz
@@ -27,6 +28,7 @@
E: binary: unstripped-binary-or-object ./usr/bin/hello
I: binary: arch-dep-package-has-big-usr-share
I: binary: binary-has-unneeded-section ./usr/bin/hello-static .comment
+I: binary: no-md5sums-control-file
W: binary source: ancient-standards-version 3.2.1 (current is 3.7.2)
W: binary source: maintainer-upload-has-incorrect-version-number 4-1.1
W: binary source: native-package-with-dash-version
Modified: trunk/testset/tags.diffs
===================================================================
--- trunk/testset/tags.diffs 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/tags.diffs 2006-11-11 06:03:19 UTC (rev 770)
@@ -2,6 +2,7 @@
E: diffs: arch-independent-package-contains-binary-or-object ./usr/bin/diffs
E: diffs: no-copyright-file
E: diffs: unstripped-binary-or-object ./usr/bin/diffs
+I: diffs: no-md5sums-control-file
W: diffs source: configure-generated-file-in-source config.cache
W: diffs source: configure-generated-file-in-source config.log
W: diffs source: configure-generated-file-in-source config.status
Modified: trunk/testset/tags.empty
===================================================================
--- trunk/testset/tags.empty 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/tags.empty 2006-11-11 06:03:19 UTC (rev 770)
@@ -5,6 +5,7 @@
E: empty: no-copyright-file
E: empty: package-has-no-description
E: empty_1_i386.changes: no-description-in-changes-file
+I: empty: no-md5sums-control-file
W: empty source: changelog-should-mention-nmu
W: empty source: maintainer-not-full-name empty
W: empty source: source-nmu-has-incorrect-version-number 1
Modified: trunk/testset/tags.etcfiles
===================================================================
--- trunk/testset/tags.etcfiles 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/tags.etcfiles 2006-11-11 06:03:19 UTC (rev 770)
@@ -1,8 +1,14 @@
E: etcfiles source: debian-rules-missing-required-target binary-arch
E: etcfiles: file-in-etc-not-marked-as-conffile /etc/improper
E: etcfiles: file-in-etc-not-marked-as-conffile /etc/improper-link
+E: etcfiles: malformed-md5sums-control-file line 4
+E: etcfiles: md5sum-mismatch etc/improper
+E: etcfiles: md5sum-mismatch etc/proper
+E: etcfiles: md5sums-lists-nonexisting-file usr/bin/foo
E: etcfiles: no-copyright-file
W: etcfiles source: ancient-standards-version 3.5.0 (current is 3.7.2)
W: etcfiles: changelog-file-not-compressed changelog
+W: etcfiles: file-missing-in-md5sums etc/improper-link
+W: etcfiles: file-missing-in-md5sums usr/share/doc/etcfiles/changelog
W: etcfiles: non-etc-file-marked-as-conffile /var/lib/foo
W: etcfiles: package-contains-hardlink etc/improper-link -> etc/improper
Modified: trunk/testset/tags.filenames
===================================================================
--- trunk/testset/tags.filenames 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/tags.filenames 2006-11-11 06:03:19 UTC (rev 770)
@@ -27,6 +27,7 @@
E: filenames: use-of-compat-symlink usr/bin/X11/
E: filenames: use-of-compat-symlink usr/bin/X11/testxbin
I: filenames source: arch-inventory-file-in-source files/.arch-inventory
+I: filenames: no-md5sums-control-file
W: filenames source: ancient-standards-version 3.1.1 (current is 3.7.2)
W: filenames source: source-contains-CVS-dir CVS
W: filenames source: source-contains-arch-control-dir .arch-ids
Modified: trunk/testset/tags.foo++
===================================================================
--- trunk/testset/tags.foo++ 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/tags.foo++ 2006-11-11 06:03:19 UTC (rev 770)
@@ -12,6 +12,8 @@
E: foo++: debian-changelog-file-uses-obsolete-national-encoding at line 11
E: foo++: no-copyright-file
E: foo++: wrong-debian-qa-address-set-as-maintainer Lintian Maintainer <debian-qa@lists.debian.org>
+I: foo++-helper: no-md5sums-control-file
+I: foo++: no-md5sums-control-file
W: foo++ source: ancient-standards-version 3.1.1 (current is 3.7.2)
W: foo++ source: uploader-address-looks-weird Jeroen van Wolffelaar<jeroen@localhost.localdomain>
W: foo++ source: uploader-not-full-name Frank
Modified: trunk/testset/tags.libbaz
===================================================================
--- trunk/testset/tags.libbaz 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/tags.libbaz 2006-11-11 06:03:19 UTC (rev 770)
@@ -15,8 +15,12 @@
E: libbaz1: unstripped-binary-or-object ./usr/lib/libfoo2.so.1.0.3b
E: libbaz2: postinst-must-call-ldconfig usr/lib/libbaz2.so.1.0.3b
E: libbaz2: symlink-should-be-relative usr/share/doc/libbaz2/changelog.gz /usr/share/doc/lintian/changelog.gz
+I: libbaz1-dev: no-md5sums-control-file
+I: libbaz1: no-md5sums-control-file
I: libbaz1: possible-non-posix-code-in-maintainer-script postinst:6 '[ -d /usr/doc -a ! -e /usr/doc/$PKG -a '
I: libbaz1: possible-non-posix-code-in-maintainer-script prerm:5 '[ \( "$1" = "upgrade" -o "$1" = "remove" \) -a '
+I: libbaz2-dev: no-md5sums-control-file
+I: libbaz2: no-md5sums-control-file
W: libbaz source: ancient-standards-version 3.2.1 (current is 3.7.2)
W: libbaz source: changelog-should-mention-nmu
W: libbaz source: package-uses-deprecated-debhelper-compat-version 1
Modified: trunk/testset/tags.maintainer-scripts
===================================================================
--- trunk/testset/tags.maintainer-scripts 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/tags.maintainer-scripts 2006-11-11 06:03:19 UTC (rev 770)
@@ -15,6 +15,7 @@
E: maintainer-scripts: preinst-calls-updaterc.d bar
E: maintainer-scripts: prerm-calls-updaterc.d foo
E: maintainer-scripts: wrong-debian-qa-group-name QA group <packages@qa.debian.org>
+I: maintainer-scripts: no-md5sums-control-file
I: maintainer-scripts: output-of-updaterc.d-not-redirected-to-dev-null bar postrm
I: maintainer-scripts: possible-non-posix-code-in-maintainer-script postinst:4 '[ -d /usr/doc -a ! -e /usr/doc/maintainer-scripts -a '
I: maintainer-scripts: possible-non-posix-code-in-maintainer-script prerm:25 ' local '
Modified: trunk/testset/tags.manpages
===================================================================
--- trunk/testset/tags.manpages 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/tags.manpages 2006-11-11 06:03:19 UTC (rev 770)
@@ -25,6 +25,7 @@
E: manpages: package-installs-file-to-usr-x11r6-bin usr/X11R6/bin/rstartd
E: manpages: stray-directory-in-manpage-directory usr/share/man/man1/not-a-man-page.1.gz/
E: manpages: x11-games-should-be-in-usr-games usr/X11R6/man/man6/X11R6-binary.man
+I: manpages: no-md5sums-control-file
W: manpages source: ancient-standards-version 3.2.1 (current is 3.7.2)
W: manpages source: binary-nmu-debian-revision-in-source 4-0.0.1
W: manpages source: changelog-should-mention-nmu
Modified: trunk/testset/tags.non-us
===================================================================
--- trunk/testset/tags.non-us 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/tags.non-us 2006-11-11 06:03:19 UTC (rev 770)
@@ -4,6 +4,10 @@
E: non-us source: section-category-mismatch Package nonfree-crypto-app
E: nonfree-crypto-app: no-copyright-file
E: patented-app: no-copyright-file
+I: broken-crypto: no-md5sums-control-file
+I: crypto-app: no-md5sums-control-file
+I: nonfree-crypto-app: no-md5sums-control-file
+I: patented-app: no-md5sums-control-file
I: patented-app: non-us-spelling
W: broken-crypto: unknown-section non-US/admin
W: non-us source: ancient-standards-version 3.1.1 (current is 3.7.2)
Modified: trunk/testset/tags.relations
===================================================================
--- trunk/testset/tags.relations 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/tags.relations 2006-11-11 06:03:19 UTC (rev 770)
@@ -30,8 +30,10 @@
I: relations source: build-depends-without-arch-dep foo
I: relations source: build-depends-without-arch-dep libc6-dev
I: relations source: build-depends-without-arch-dep mail-transport-agent
+I: relations-multiple-libs: no-md5sums-control-file
I: relations-multiple-libs: unknown-field-in-control bugs
I: relations-multiple-libs: unknown-field-in-control origin
+I: relations: no-md5sums-control-file
I: relations: unknown-field-in-control bugs
I: relations: unknown-field-in-control origin
W: relations source: ancient-standards-version 3.1.1 (current is 3.7.2)
Modified: trunk/testset/tags.scripts
===================================================================
--- trunk/testset/tags.scripts 2006-11-11 04:59:32 UTC (rev 769)
+++ trunk/testset/tags.scripts 2006-11-11 06:03:19 UTC (rev 770)
@@ -15,6 +15,7 @@
E: scripts: suid-perl-script-but-no-perl-suid-dep ./usr/bin/suidperlfoo2
E: scripts: wrong-path-for-interpreter #!/usr/local/bin/lefty != /usr/bin/lefty (./usr/bin/lefty-foo)
E: scripts: wrong-path-for-ruby ./usr/bin/rubyfoo #!/bin/ruby1.8
+I: scripts: no-md5sums-control-file
W: scripts source: ancient-standards-version 3.2.1 (current is 3.7.2)
W: scripts source: changelog-should-mention-nmu
W: scripts source: maintainer-script-lacks-debhelper-token debian/postinst
Reply to: