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

Bug#533202: lintian: Allow pipe character at the end of continued lines in debian/control



Package: lintian
Version: 2.2.10
Severity: normal
Tags: patch

The Lintian check missing-comma-between-items gives a false positive for the
control file of octave3.2 (attached below), on a line ending by "|".

Trivial patch (against Git) to fix the bug is also attached below.

Cheers,

Rafael Laboissiere


-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (650, 'testing'), (600, 'unstable'), (500, 'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.utf8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages lintian depends on:
ii  binutils            2.18.1~cvs20080103-1 The GNU assembler, linker and bina
ii  diffstat            1.45-2               produces graph of changes introduc
ii  dpkg-dev            1.14.16.6            package building tools for Debian
ii  file                4.23-1               Determines file type using "magic"
ii  gettext             0.17-2               GNU Internationalization utilities
ii  intltool-debian     0.35.0+20060710.1    Help i18n of RFC822 compliant conf
ii  libipc-run-perl     0.82-1               Perl module for running processes
ii  libparse-debianchan 1.1.1-2              parse Debian changelogs and output
ii  libtimedate-perl    1.1600-9             Time and date functions for Perl
ii  liburi-perl         1.35.dfsg.1-1        Manipulates and accesses URI strin
ii  man-db              2.5.1-2              on-line manual pager
ii  perl [libdigest-sha 5.10.0-19            Larry Wall's Practical Extraction 

lintian recommends no packages.

-- no debconf information
Source: octave3.2
Section: math
Priority: optional
Maintainer: Debian Octave Group <pkg-octave-devel@lists.alioth.debian.org>
Uploaders: Rafael Laboissiere <rafael@debian.org>,
 Thomas Weber <thomas.weber.mail@gmail.com>
DM-Upload-Allowed: yes
Build-Depends: g++-4.1 [arm], gcc-4.1 [arm], gfortran,
 debhelper (>= 6.0.7), autoconf, texinfo,
 texlive-latex-base, texlive-generic-recommended, libreadline5-dev,
 libncurses5-dev, gperf, libhdf5-serial-dev (>= 1.6.6) |
 libhdf5-lam-dev (>= 1.6.6) | libhdf5-mpich-dev (>= 1.6.6) | libhdf5-openmpi-dev (>= 1.6.6),
 libblas-dev, liblapack-dev, gnuplot-nox, libfftw3-dev, texi2html,
 less, quilt, slice, libpcre3-dev, flex, libglpk-dev (>= 4.15),
 libsuitesparse-dev (>= 1:3.2.0), gawk, ghostscript, libcurl4-dev,
 libqhull-dev, desktop-file-utils, libfltk1.1-dev, libgl1-mesa-swx11-dev,
 libglu1-mesa-dev, libgraphicsmagick++1-dev, libftgl-dev,
 libqrupdate-dev, libarpack2-dev (>= 2.1+parpack96.dfsg-2)
Standards-Version: 3.8.1
Homepage: http://www.octave.org/
Vcs-Git: git://git.debian.org/git/pkg-octave/octave.git
Vcs-Browser: http://git.debian.org/?p=pkg-octave/octave.git

Package: octave3.2
Architecture: any
Depends: ${shlibs:Depends}, texinfo, octave3.2-common (= ${source:Version})
Recommends: gnuplot, libatlas3gf-base
Suggests: octave3.2-info,
 octave3.2-doc,
 octave3.2-htmldoc,
 octave3.2-headers (= ${binary:Version}),
 octave3.2-emacsen
Replaces: octave (<= 2.0.16-2), octave3.1
Conflicts: octave (<= 2.0.16-2), octave3.1
Provides: octave, octave3.1
Description: GNU Octave language for numerical computations (3.2 branch)
 Octave is a (mostly Matlab (R) compatible) high-level language, primarily
 intended for numerical computations. It provides a convenient command-line
 interface for solving linear and nonlinear problems numerically.
 .
 Octave uses some of the best and most respected numerical libraries as
 balgen, dassl, eispack, fftpack, lapack, linpack, minpack, odepack,
 ranlib, slatec-fn and villad. Octave can be dynamically extended with
 user-supplied C++ files.

Package: octave3.2-doc
Architecture: all
Section: doc
Suggests: octave3.2, xpdf | pdf-viewer
Conflicts: octave-doc (<< 2.1), octave3.1-doc
Provides: octave-doc, octave3.1-doc
Replaces: octave-doc, octave3.1-doc
Description: PDF documentation on the GNU Octave language (3.2 branch)
 Octave is a (mostly Matlab (R) compatible) high-level language, primarily
 intended for numerical computations. It provides a convenient command-line
 interface for solving linear and nonlinear problems numerically.
 .
 This package provides the following documentation in PDF format:
 the FAQ, a reference card in a4, letter and legal formats, a document on the
 C++ classes used by Octave, as well as the main octave documentation which
 is also included in info format in the octave3.2-info package.

Package: octave3.2-htmldoc
Architecture: all
Section: doc
Suggests: octave3.2, lynx | www-browser
Conflicts: octave-htmldoc (<< 2.1), octave2.0-htmldoc, octave3.1-htmldoc
Replaces: octave-htmldoc, octave3.1-htmldoc
Provides: octave-htmldoc, octave3.1-htmldoc
Description: HTML documentation on the GNU Octave language (3.2 branch)
 Octave is a (mostly Matlab (R) compatible) high-level language, primarily
 intended for numerical computations. It provides a convenient command-line
 interface for solving linear and nonlinear problems numerically.
 .
 This package provides the following documentation in html format:
 the FAQ, a document on the C++ classes used by Octave, as well as the main
 octave documentation which is also included in info format in the main
 Octave package.

Package: octave3.2-headers
Architecture: any
Depends: octave3.2 (= ${binary:Version}), ${gcc:Depends},
 libreadline5-dev, libncurses5-dev, libhdf5-serial-dev (>= 1.6.5)
 | libhdf5-lam-dev (>= 1.6.5) | libhdf5-mpich-dev (>= 1.6.5) | libhdf5-openmpi-dev (>= 1.6.5),
 libblas-dev, liblapack-dev, libfftw3-dev,
 f2c [m68k]
Conflicts: octave-headers (<< 2.1), octave3.1-headers
Provides: octave-headers, octave3.1-headers
Replaces: octave-headers, octave3.1-headers
Description: header files for the GNU Octave language (3.2 branch)
 Octave is a (mostly Matlab (R) compatible) high-level language, primarily
 intended for numerical computations. It provides a convenient command-line
 interface for solving linear and nonlinear problems numerically.
 .
 This package provides the include files needed to compile and link
 user-supplied code with GNU Octave. If you only write interpreted .m files,
 you do not need this package.
 .
 The package is architecture-specific as it contains machine-dependent
 compiler switches in the mkoctfile script.

Package: octave3.2-emacsen
Architecture: all
Depends: octave3.2, emacs22 | xemacs21 | emacsen,
 debianutils (>= 1.6)
Conflicts: octave2.0-emacsen, octave3.1-emacsen
Replaces: octave (<= 2.0.16-2), octave3.1-emacsen
Provides: octave-emacsen, octave3.1-emacsen
Description: Emacs support for the GNU Octave language (3.2 branch)
 Octave is a (mostly Matlab (R) compatible) high-level language, primarily
 intended for numerical computations. It provides a convenient command-line
 interface for solving linear and nonlinear problems numerically.
 .
 This package provides the elisp files for the Octave modes for GNU Emacs
 and XEmacs.

Package: octave3.2-info
Architecture: all
Depends: info (>= 3.22) | info-browser
Conflicts: octave2.0-info, octave3.1-info
Replaces: octave (<= 2.0.16-2), octave3.1-info
Provides: octave-info, octave3.1-info
Description: GNU Info documentation on the GNU Octave language (3.2 branch)
 Octave is a (mostly Matlab (R) compatible) high-level language, primarily
 intended for numerical computations. It provides a convenient command-line
 interface for solving linear and nonlinear problems numerically.
 .
 This package provides the following documentation in info format:
 the FAQ, a document on the C++ classes used by Octave, as well as the main
 octave documentation which is needed for the 'help -i foo' command within
 Octave.



Package: octave3.2-dbg
Section: debug
Priority: extra
Architecture: any
Depends: octave3.2 (=${binary:Version})
Description: Debug symbols for octave3.2
 Octave is a (mostly Matlab (R) compatible) high-level language, primarily
 intended for numerical computations. It provides a convenient command-line
 interface for solving linear and nonlinear problems numerically.
 .
 Octave uses some of the best and most respected numerical libraries as
 balgen, dassl, eispack, fftpack, lapack, linpack, minpack, odepack,
 ranlib, slatec-fn and villad. Octave can be dynamically extended with
 user-supplied C++ files.
 .
 This package provides the debug symbols.

Package: octave3.2-common
Section: devel
Priority: extra
Architecture: all
Description: architecture-independent files for octave3.2
 Octave is a (mostly Matlab (R) compatible) high-level language, primarily
 intended for numerical computations. It provides a convenient command-line
 interface for solving linear and nonlinear problems numerically.
 .
 Octave uses some of the best and most respected numerical libraries as
 balgen, dassl, eispack, fftpack, lapack, linpack, minpack, odepack,
 ranlib, slatec-fn and villad. Octave can be dynamically extended with
 user-supplied C++ files.
 .
 This package provides the architecture-independent files (Octave scripts
 and other helper files).
>From aa4d03bc63b500ca0cc13a800bc2ede4dc52bf84 Mon Sep 17 00:00:00 2001
From: Rafael Laboissiere <rafael@debian.org>
Date: Mon, 15 Jun 2009 17:44:17 +0200
Subject: [PATCH] Allow pipe at the end of continued lines in the control file

The pipe character, not only the comma, is allowed to appear at the end of a
Depends or Build-Depends line in debian/control if the field is continued in
the next line.  Also, change the name of the check to
"missing-comma-or-pipe-between-items", accordingly.
---
 checks/control-file               |    4 ++--
 checks/control-file.desc          |    2 +-
 t/tests/control-file-general/desc |    2 +-
 t/tests/control-file-general/tags |    2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/checks/control-file b/checks/control-file
index 77a6ba5..b6c2acf 100644
--- a/checks/control-file
+++ b/checks/control-file
@@ -116,7 +116,7 @@ for my $control ($header, @binary_controls) {
 			  build-conflics build-conflicts-indep)) {
 		next unless $control->{$field};
 		if ($control->{$field} =~ /
-			([^,]+)		# previous entry
+			([^,|]+)	# previous entry
 			\s*\n\s+	# new line + space
 			([a-z][^,]+)	# next entry, must start with a letter
 			/x) {
@@ -125,7 +125,7 @@ for my $control ($header, @binary_controls) {
 			for ($prev, $next) {
 				s/^\s+//; s/\s+$//;
 			}
-			tag "missing-comma-between-items",
+			tag "missing-comma-or-pipe-between-items",
 			    "in $field field between '$prev' and '$next', " .
 			    ($control->{source} ? 'source' : $control->{package});
 		}
diff --git a/checks/control-file.desc b/checks/control-file.desc
index 3f75157..27a71c2 100644
--- a/checks/control-file.desc
+++ b/checks/control-file.desc
@@ -142,7 +142,7 @@ Info: The given field in the <tt>debian/control</tt> file has a substvar
  the control file will have a syntax error.  You probably meant to put a
  comma after the substvar expansion.
 
-Tag: missing-comma-between-items
+Tag: missing-comma-or-pipe-between-items
 Severity: important
 Certainty: certain
 Info: The given field in the <tt>debian/control</tt> file contains a list
diff --git a/t/tests/control-file-general/desc b/t/tests/control-file-general/desc
index 230cdb2..83520da 100644
--- a/t/tests/control-file-general/desc
+++ b/t/tests/control-file-general/desc
@@ -8,7 +8,7 @@ Test-For:
  duplicate-long-description
  duplicate-short-description
  missing-comma-after-substvar
- missing-comma-between-items
+ missing-comma-or-pipe-between-items
  no-section-field-for-source
  package-depends-on-itself
  stronger-dependency-implies-weaker
diff --git a/t/tests/control-file-general/tags b/t/tests/control-file-general/tags
index 179ce32..c0b8bea 100644
--- a/t/tests/control-file-general/tags
+++ b/t/tests/control-file-general/tags
@@ -1,5 +1,5 @@
 E: control-file-general source: build-info-in-binary-control-file-section Package control-file-general
-E: control-file-general source: missing-comma-between-items in depends field between 'foo' and 'bar (>= 1)', control-file-general-3
+E: control-file-general source: missing-comma-or-pipe-between-items in depends field between 'foo' and 'bar (>= 1)', control-file-general-3
 I: control-file-general source: binary-control-field-duplicates-source field "maintainer" in package control-file-general
 I: control-file-general source: duplicate-long-description control-file-general control-file-general-1 control-file-general-2 control-file-general-3
 I: control-file-general source: duplicate-short-description control-file-general control-file-general-1
-- 
1.6.3.1


Reply to: