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: