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

lintian: r724 - in trunk: checks debian



Author: rra
Date: 2006-08-20 03:14:01 +0200 (Sun, 20 Aug 2006)
New Revision: 724

Modified:
   trunk/checks/common_data.pm
   trunk/checks/fields
   trunk/checks/fields.desc
   trunk/debian/changelog
Log:
* checks/common_data.pm:
  + [RA] Add Python-Version as a known source and binary field.
  + [RA] Check the syntax of the new Python-Version field.

Modified: trunk/checks/common_data.pm
===================================================================
--- trunk/checks/common_data.pm	2006-08-19 15:05:05 UTC (rev 723)
+++ trunk/checks/common_data.pm	2006-08-20 01:14:01 UTC (rev 724)
@@ -65,13 +65,13 @@
     ('source', 'version', 'maintainer', 'binary', 'architecture',
      'standards-version', 'files', 'build-depends', 'build-depends-indep',
      'build-conflicts', 'build-conflicts-indep', 'format', 'origin',
-     'uploaders' );
+     'uploaders', 'python-version' );
 
 %known_binary_fields = map { $_ => 1 }
     ('package', 'version', 'architecture', 'depends', 'pre-depends',
      'recommends', 'suggests', 'enhances', 'conflicts', 'provides',
      'replaces', 'essential', 'maintainer', 'section', 'priority',
-     'source', 'description', 'installed-size');
+     'source', 'description', 'installed-size', 'python-version');
 
 %known_udeb_fields = map { $_ => 1 }
     ('package', 'version', 'architecture', 'subarchitecture', 'depends',

Modified: trunk/checks/fields
===================================================================
--- trunk/checks/fields	2006-08-19 15:05:05 UTC (rev 723)
+++ trunk/checks/fields	2006-08-20 01:14:01 UTC (rev 724)
@@ -710,6 +710,41 @@
 	tag "redundant-bugs-field", "" if $bugs =~ m{^\s*debbugs://bugs.debian.org/?\s*$}i;
 }
 
+#----- Python-Version
+
+if (open(FH, "fields/python-version")) {
+	my $pyversion = <FH>;
+	close FH;
+
+	unfold('python-version', \$pyversion);
+
+	my @valid = ([ '\d+\.\d+', '\d+\.\d+' ],
+		     [ '\d+\.\d+' ],
+		     [ '\>=\s*\d+\.\d+', '\<\<\s*\d+\.\d+' ],
+		     [ '\>=\s*\d+\.\d+' ],
+		     [ 'current', '\>=\s*\d+\.\d+' ],
+		     [ 'current' ],
+		     [ 'all' ]);
+
+	my @pyversion = split(/\s*,\s*/, $pyversion);
+	if (@pyversion > 2) {
+		if (grep { !/^\d+\.\d+$/ } @pyversion) {
+			tag "malformed-python-version", "$pyversion";
+		}
+	} else {
+		my $okay = 0;
+		for my $rule (@valid) {
+			if ($pyversion[0] =~ /^$rule->[0]$/
+			    && (($pyversion[1] && $pyversion[1] =~ /^$rule->[1]$/)
+				 || (! $pyversion[1] && ! $rule->[1]))) {
+				$okay = 1;
+				last;
+			}
+		}
+		tag "malformed-python-version", "$pyversion" unless $okay;
+	}
+}
+
 #----- Field checks (without checking the value)
 
 for my $field (glob("fields/*")) {

Modified: trunk/checks/fields.desc
===================================================================
--- trunk/checks/fields.desc	2006-08-19 15:05:05 UTC (rev 723)
+++ trunk/checks/fields.desc	2006-08-20 01:14:01 UTC (rev 724)
@@ -600,3 +600,19 @@
 Ref: 7.6
 Info: You depends on the build-essential package, which is only a meta-package
  depending on build tools that have to be installed in all build environments.
+
+Tag: malformed-python-version
+Type: error
+Ref: Python policy 2.3
+Info: The Python-Version control field is not in one of the valid
+ formats.  It should be in one of the following formats:
+ .
+     all
+     current
+     current, >= X.Y
+     >= X.Y
+     >= A.B, << X.Y
+     A.B, X.Y
+ .
+ (One or more specific versions may be listed with the last form.)  A.B
+ and X.Y should be Python versions.

Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2006-08-19 15:05:05 UTC (rev 723)
+++ trunk/debian/changelog	2006-08-20 01:14:01 UTC (rev 724)
@@ -7,6 +7,8 @@
   * checks/changelog-file{.desc,}:
     + [RA] Diagnose changelog files that are symlinks, using the new way
       the changelog-file collection script processes them.
+  * checks/common_data.pm:
+    + [RA] Add Python-Version as a known source and binary field.
   * checks/copyright-file:
     + [RA] Catch "<fill in http/ftp site>" as well as the string without
       "http/".  Thanks, Jari Aalto.  (Closes: #374167)
@@ -29,6 +31,7 @@
       from the clean target.  Thanks, James Westby.  (Closes: #380399)
     + [RA] Warn when encountering an aspell dictionary package that isn't
       arch: all.  Thanks, Piotr Engelking.  (Closes: #374899)
+    + [RA] Check the syntax of the new Python-Version field.
   * checks/files{.desc,}:
     + [RA] Provide a better explanation of why Debian packages shouldn't
       ship files in /srv.  (Closes: #379176)
@@ -102,7 +105,7 @@
     + [RA] Include the lintian version in HTML page footers.  Thanks,
       Thijs Kinkhorst.  (Closes: #377616)
 
- -- Russ Allbery <rra@debian.org>  Sat, 19 Aug 2006 08:04:53 -0700
+ -- Russ Allbery <rra@debian.org>  Sat, 19 Aug 2006 18:13:48 -0700
 
 lintian (1.23.22) unstable; urgency=low
 



Reply to: