[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: