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

lintian: r864 - in trunk: checks debian testset testset/binary/debian



Author: rra
Date: 2007-04-28 04:22:47 +0200 (Sat, 28 Apr 2007)
New Revision: 864

Modified:
   trunk/checks/menus
   trunk/checks/menus.desc
   trunk/debian/changelog
   trunk/testset/binary/debian/doc-base
   trunk/testset/tags.binary
Log:
* checks/menus{.desc,}:
  + [RA] In doc-base control files, check for Index fields for HTML and
    Info documents and require that each section after the header have a
    Format field.  Thanks, Bernhard R. Link.  (Closes: #419847)

Modified: trunk/checks/menus
===================================================================
--- trunk/checks/menus	2007-04-27 02:58:15 UTC (rev 863)
+++ trunk/checks/menus	2007-04-28 02:22:47 UTC (rev 864)
@@ -161,7 +161,8 @@
     # check the contents of the doc-base file(s)
     opendir DOCBASEDIR, "doc-base" or fail("cannot read doc-base directory.");
     while (my $dbfile = readdir DOCBASEDIR) {
-	next if -x "doc-base/$dbfile"; # don't try to parse executables, plus we already warned about it
+	# don't try to parse executables, plus we already warned about it
+	next if -x "doc-base/$dbfile";
 	open IN, "doc-base/$dbfile" or
 	    fail("cannot open doc-base file $dbfile for reading.");
 
@@ -176,7 +177,7 @@
 	# lines for the field.	As a result, all tags will be reported on the
 	# last continuation line of the field, rather than possibly where the
 	# offending file name is.
-	my (@files, $field);
+	my (@files, $field, $sawindex, $sawdocument, $format);
 	while (1) {
 	    $_ = <IN>;
 	    if ((!defined ($_) || /^\S/ || /^$/) && $field) {
@@ -205,18 +206,33 @@
 		undef @files;
 		undef $field;
 	    }
-	    last unless defined $_;
-	    if (/^\s/ && $field) {
-		push (@files, split ' ');
-	    }
-	    if (/^(Index|Files)\s*:\s*(.*?)\s*$/i) {
+	    if (defined ($_) && /^(Index|Files)\s*:\s*(.*?)\s*$/i) {
 		$field = lc $1;
 		@files = split (' ', $2);
-	    } elsif (/^Format\s*:\s*(.*?)\s*$/i) {
-		my $format = lc $1;
+		if ($field eq 'index') {
+		    $sawindex = 1;
+		}
+	    } elsif (defined ($_) && /^Format\s*:\s*(.*?)\s*$/i) {
+		$format = lc $1;
 		tag "doc-base-file-unknown-format", "$dbfile:$.", $format
 		    unless $known_doc_base_formats{$format};
+	    } elsif (defined ($_) && /^Document\s*:/i) {
+		$sawdocument = 1;
+	    } elsif (defined ($_) && /^\s/ && $field) {
+		push (@files, split ' ');
 	    }
+	    if (!defined ($_) || /^$/) {
+		tag "doc-base-file-no-format", "$dbfile:$."
+		    unless $format || $sawdocument;
+		if ($format && ($format eq 'html' || $format eq 'info')) {
+		    tag "doc-base-file-no-index", "$dbfile:$."
+			unless $sawindex;
+		}
+		last unless defined $_;
+		undef $format;
+		undef $sawdocument;
+		undef $sawindex;
+	    }
 	}
 	close IN;
     }

Modified: trunk/checks/menus.desc
===================================================================
--- trunk/checks/menus.desc	2007-04-27 02:58:15 UTC (rev 863)
+++ trunk/checks/menus.desc	2007-04-28 02:22:47 UTC (rev 864)
@@ -177,3 +177,17 @@
  that is not supported.  Recognized formats are "HTML", "Text", "PDF",
  "PostScript", "Info", "DVI", and "DebianDoc-SGML" (case-insensitive).
 Ref: Debian doc-base Manual section 2.3
+
+Tag: doc-base-file-no-format
+Type: error
+Info: A format section of this doc-base control file didn't specify a
+ format.  Each section after the first must specify a format.
+Ref: Debian doc-base Manual section 2.3.2.2
+
+Tag: doc-base-file-no-index
+Type: error
+Info: Format sections in doc-base control files for HTML or Info documents
+ must contain an Index field specifying the starting document for the
+ documentation.  Even if the documentation is a single file, this field
+ must be present.
+Ref: Debian doc-base Manual section 2.3.2.2

Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2007-04-27 02:58:15 UTC (rev 863)
+++ trunk/debian/changelog	2007-04-28 02:22:47 UTC (rev 864)
@@ -36,6 +36,10 @@
       /etc/X11.  (seyon does something weird but probably legitimate.)
     + [RA] Fix manpage-for-non-x11-binary-in-wrong-directory and
       manpage-for-x11-binary-in-wrong-directory output.
+  * checks/menus{.desc,}:
+    + [RA] In doc-base control files, check for Index fields for HTML and
+      Info documents and require that each section after the header have a
+      Format field.  Thanks, Bernhard R. Link.  (Closes: #419847)
   * checks/rules:
     + [RA] Listing a rule as a dependency of .PHONY is sufficient to mark
       it as present for GNU make and hence sufficient for Policy's
@@ -53,7 +57,7 @@
     + [RA] Diagnose use of /bin/env with a more specific message than the
       generic unusual interpreter tag.
 
- -- Russ Allbery <rra@debian.org>  Thu, 26 Apr 2007 19:58:01 -0700
+ -- Russ Allbery <rra@debian.org>  Fri, 27 Apr 2007 19:22:32 -0700
 
 lintian (1.23.29) unstable; urgency=low
 

Modified: trunk/testset/binary/debian/doc-base
===================================================================
--- trunk/testset/binary/debian/doc-base	2007-04-27 02:58:15 UTC (rev 863)
+++ trunk/testset/binary/debian/doc-base	2007-04-28 02:22:47 UTC (rev 864)
@@ -22,3 +22,6 @@
 Index: /usr/share/doc/binary/html/index.html
 Files: /usr/share/doc/binary/html/ch?.h*l
 	/usr/share/doc/binary/hml/*.html
+
+Format: inFO
+Files: /usr/share/info/binary.info.gz

Modified: trunk/testset/tags.binary
===================================================================
--- trunk/testset/tags.binary	2007-04-27 02:58:15 UTC (rev 863)
+++ trunk/testset/tags.binary	2007-04-28 02:22:47 UTC (rev 864)
@@ -2,10 +2,13 @@
 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-no-format binary:20
+E: binary: doc-base-file-no-index binary:27
 E: binary: doc-base-file-references-missing-file binary:11 /usr/share/doc/binary/binary.sgml.gz
 E: binary: doc-base-file-references-missing-file binary:15 /usr/share/doc/binary/binary.txt
 E: binary: doc-base-file-references-missing-file binary:19 /usr/share/doc/binary/html/ch4.html
 E: binary: doc-base-file-references-missing-file binary:24 /usr/share/doc/binary/hml/*.html
+E: binary: doc-base-file-references-missing-file binary:27 /usr/share/info/binary.info.gz
 E: binary: doc-base-index-references-multiple-files binary:19
 E: binary: file-directly-in-usr-share usr/share/baz
 E: binary: lengthy-symlink usr/share/doc/binary/html/ch2.html ../html/./ch1.html



Reply to: