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

Bug#575661: marked as done ([checks/manpages] manpage-has-errors for multibyte issue on col must be skipped)



Your message dated Mon, 28 Jun 2010 05:32:09 +0000
with message-id <E1OT6wz-00033A-V7@ries.debian.org>
and subject line Bug#575661: fixed in lintian 2.4.2
has caused the Debian Bug report #575661,
regarding [checks/manpages] manpage-has-errors for multibyte issue on col must be skipped
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
575661: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=575661
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: lintian
Version: 2.3.4
Severity: normal

I think lintian is wrong in testing encoding issue for manapage.  I have
installed hello-debhelper (2.5-1).  then I downloaded its binary package
hello-debhelper_2.5-1_amd64.deb and extracted to hello.1 into a working
directry.  

In short, instead of using complicated test, it should use iconv for encoding
test.

Let me show this problem.

First hello-debhelper package installed manpage shows OK under both
LANG=C and LANG=en_US.UTF-8.  I tested it with
 $ LANG=C man hello
 $ LANG=en_US.UTF-8 man hello

The only difference is copyright line.  LANG=C shows copuright as (C)
while UTF-8 uses fancy ©.  No problem.

But

$ lintian -i hello-debhelper_2.5-1_amd64.deb 
W: hello-debhelper: manpage-has-errors-from-man usr/share/man/man1/hello.1.gz  Invalid or incomplete multibyte or wide character
N: 
N:    This man page provokes warnings or errors from man.
N:    
N:    "cannot adjust" or "can't break" are trouble with paragraph filling,
N:    usually related to long lines. Adjustment can be helped by left
N:    justifying, breaks can be helped with hyphenation, see "Manipulating
N:    Filling and Adjusting" and "Manipulating Hyphenation" in the manual.
N:    
N:    "can't find numbered character" usually means latin1 etc in the input,
N:    and this warning indicates characters will be missing from the output.
N:    You can change to escapes like \[:a] described on the groff_char man
N:    page.
N:    
N:    Other warnings are often formatting typos, like missing quotes around a
N:    string argument to .IP. These are likely to result in lost or malformed
N:    output. See the groff_man (or groff_mdoc if using mdoc) man page for
N:    information on macros.
N:    
N:    This test uses man's --warnings option to enable groff warnings that
N:    catch common mistakes, such as putting . or ' characters at the start of
N:    a line when they are intended as literal text rather than groff
N:    commands. This can be fixed either by reformatting the paragraph so that
N:    these characters are not at the start of a line, or by adding a
N:    zero-width space (\&) immediately before them.
N:    
N:    At worst, warning messages can be disabled with the .warn directive, see
N:    "Debugging" in the groff manual.
N:    
N:    To test this for yourself you can use the following command:
N:     LANG=C MANWIDTH=80 man --warnings -E UTF-8 -l manpage-file >/dev/null
N:    
N:    Severity: normal, Certainty: certain
N:
$ LANG=C MANWIDTH=80 man --warnings -E UTF-8 -l hello.1 >hello.txt
col: Invalid or incomplete multibyte or wide character
$ iconv -f utf8 -t utf8 hello.1 >/dev/null && echo "UTF-8 compatible" || echo "non-UTF-8 found"
UTF-8 compatible
$ iconv -f ascii -t ascii hello.1 >/dev/null && echo "ascii compatible" || echo "non-ascii found"
ascii compatible

The first test is the one used by lintian.  Second and third test is mine to
check encoding of source code itself.

$ LANG=C           MANWIDTH=80 man --warnings          -l hello.1 >hello.c.txt
$ LANG=en_US.UTF-8 MANWIDTH=80 man --warnings -E UTF-8 -l hello.1 >hello.u.txt
$ LANG=C           MANWIDTH=80 man --warnings -E UTF-8 -l hello.1 >hello.cu.txt
col: Invalid or incomplete multibyte or wide character
$ ls -l hello.*.txt
-rw-rw-r-- 1 osamu osamu 1417 Mar 28 09:21 hello.c.txt
-rw-rw-r-- 1 osamu osamu    0 Mar 28 09:53 hello.cu.txt
-rw-rw-r-- 1 osamu osamu 1418 Mar 28 09:21 hello.u.txt
$ diff -u hello.*.txt
--- hello.c.txt 2010-03-28 09:21:07.000000000 +0900
+++ hello.u.txt 2010-03-28 09:21:26.000000000 +0900
@@ -32,7 +32,7 @@
        General help using GNU software: <http://www.gnu.org/gethelp/>

 COPYRIGHT
-       Copyright  (C) 2010 Free Software Foundation, Inc.  License GPLv3+: GNU
+       Copyright  ©  2010  Free Software Foundation, Inc.  License GPLv3+: GNU
        GPL version 3 or later <http://gnu.org/licenses/gpl.html>
        This is free software: you are free  to  change  and  redistribute  it.
        There is NO WARRANTY, to the extent permitted by law.

The corresponding groff source has "\co" as in

Copyright \(co 2010 Free Software Foundation, Inc.

This is embedded nroff which is handled OK for both locale.

So the situation is clear.  There is no non-ASCII code in the source of
manpage.  Its manpage can be interpretted proprly with current tool set.

But test used by lintian breaks on groff copyright mark code.

I made hellox.1 in which "\co" is replaced with UTF-8 "©".  This is real error :-)

$ iconv -f ascii -t ascii hellox.1 >/dev/null && echo "ascii compatible" || echo "non-ascii found"
iconv: illegal input sequence at position 828
non-ascii found
$ iconv -f utf8 -t utf8 hellox.1 >/dev/null && echo "UTF-8 compatible" || echo "non-UTF-8 found"
UTF-8 compatible
$ LANG=C           MANWIDTH=80 man --warnings -E UTF-8 -l hellox.1 >hellox.cu.txt
col: Invalid or incomplete multibyte or wide character
$ LANG=en_US.UTF-8 MANWIDTH=80 man --warnings -E UTF-8 -l hellox.1 >hellox.u.txt
$ LANG=C           MANWIDTH=80 man --warnings          -l hellox.1 >hellox.c.txt
$ ls -l hellox.*.txt
-rw-rw-r-- 1 osamu osamu 1417 Mar 28 10:03 hellox.c.txt
-rw-rw-r-- 1 osamu osamu    0 Mar 28 10:02 hellox.cu.txt
-rw-rw-r-- 1 osamu osamu 1418 Mar 28 10:03 hellox.u.txt
$ diff -u hellox.c.txt hellox.u.txt
--- hellox.c.txt        2010-03-28 10:03:28.000000000 +0900
+++ hellox.u.txt        2010-03-28 10:03:12.000000000 +0900
@@ -32,7 +32,7 @@
        General help using GNU software: <http://www.gnu.org/gethelp/>
 
 COPYRIGHT
-       Copyright  (C) 2010 Free Software Foundation, Inc.  License GPLv3+: GNU
+       Copyright  ©  2010  Free Software Foundation, Inc.  License GPLv3+: GNU
        GPL version 3 or later <http://gnu.org/licenses/gpl.html>
        This is free software: you are free  to  change  and  redistribute  it.
        There is NO WARRANTY, to the extent permitted by law.

groff is smart enough to de-UTF-8 from "©" to "(C)".

Simple iconv test detects error.


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages lintian depends on:
ii  binutils               2.20.1-3          The GNU assembler, linker and bina
ii  diffstat               1.47-1            produces graph of changes introduc
ii  dpkg-dev               1.15.5.6          Debian package development tools
ii  file                   5.04-1            Determines file type using "magic"
ii  gettext                0.17-10           GNU Internationalization utilities
ii  intltool-debian        0.35.0+20060710.1 Help i18n of RFC822 compliant conf
ii  libapt-pkg-perl        0.1.24            Perl interface to libapt-pkg
ii  libclass-accessor-perl 0.34-1            Perl module that automatically gen
ii  libipc-run-perl        0.84-1            Perl module for running processes
ii  libparse-debianchangel 1.1.1-2           parse Debian changelogs and output
ii  libtimedate-perl       1.2000-1          collection of modules to manipulat
ii  liburi-perl            1.53-1            module to manipulate and access UR
ii  locales-all [locales]  2.10.2-6          Embedded GNU C Library: Precompile
ii  man-db                 2.5.7-2           on-line manual pager
ii  perl [libdigest-sha-pe 5.10.1-11         Larry Wall's Practical Extraction 

lintian recommends no packages.

Versions of packages lintian suggests:
pn  binutils-multiarch            <none>     (no description available)
pn  libtext-template-perl         <none>     (no description available)
ii  man-db                        2.5.7-2    on-line manual pager

-- no debconf information



--- End Message ---
--- Begin Message ---
Source: lintian
Source-Version: 2.4.2

We believe that the bug you reported is fixed in the latest version of
lintian, which is due to be installed in the Debian FTP archive:

lintian_2.4.2.dsc
  to main/l/lintian/lintian_2.4.2.dsc
lintian_2.4.2.tar.gz
  to main/l/lintian/lintian_2.4.2.tar.gz
lintian_2.4.2_all.deb
  to main/l/lintian/lintian_2.4.2_all.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 575661@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Russ Allbery <rra@debian.org> (supplier of updated lintian package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Sun, 27 Jun 2010 22:08:59 -0700
Source: lintian
Binary: lintian
Architecture: source all
Version: 2.4.2
Distribution: unstable
Urgency: low
Maintainer: Debian Lintian Maintainers <lintian-maint@debian.org>
Changed-By: Russ Allbery <rra@debian.org>
Description: 
 lintian    - Debian package checker
Closes: 575661 580082 580494 580700 581314 582353 582741 582804 583555 584743 586877 586984 587209
Changes: 
 lintian (2.4.2) unstable; urgency=low
 .
   The "Policy 3.9.0" release.
 .
   * Summary of tag changes:
     + Added:
       - arch-wildcard-in-binary-package
       - bad-provided-package-name
       - conflicts-with-version
       - copyright-refers-to-deprecated-bsd-license-file
       - init.d-script-depends-on-unknown-virtual-facility
       - team-upload-has-incorrect-version-number
       - xc-package-type-in-debian-control (pedantic)
     + Removed:
       - arch-any-in-binary-pkg (now in arch-wildcard-in-binary-package)
       - package-type-in-debian-control
 .
   * checks/changes-file.desc:
     + [RA] Add references for file-size-mismatch-in-changes-file and
       checksum-mismatch-in-changes-file.
   * checks/control-file{,.desc}:
     + [RA] Remove package-type-in-debian-control now that dpkg-dev handles
       it as desired by the d-i team.  xc-package-type-in-debian-control
       replaces it as a pedantic check to encourage switching to the
       official name.  Thanks, Raphael Hertzog.
     + [RA] Add reference for debian-control-with-duplicate-fields.
   * checks/copyright-file{,.desc}:
     + [RA] Deprecate references to /usr/share/common-licenses/BSD in
       debian/copyright following the change in Policy 3.8.5.
   * checks/fields{,.desc}:
     + [RA] Allow Breaks without a version if the broken package is a
       virtual package.
     + [RG] Check for invalid package names in provided (virtual)
       packages.
     + [RG] Exclude dash from the depends-on-essential-package checks, as
       per discusion in debian-devel.  (Closes: #587209)
     + [RA] Allow architecture wildcards in build relations and in the
       Architecture field of binary and source packages.  (Closes: #582804)
     + [RA] Rename arch-any-in-binary-pkg to arch-wildcard-in-binary-package
       and diagnose any architecture wildcard, not just "any".
     + [RA] Warn of using Conflicts with a version, which should normally
       be Breaks instead, but only at wild-guess certainty for now.
   * checks/huge-usr-share{,.desc}:
     + [RA] Count file size from the tar listing rather than using du.  The
       results of du vary based on file system and other factors and make
       the tag difficult to test.
   * checks/init.d{,.desc}:
     + [RG] Check for init.d scripts depending on unknown virtual
       facilities.
     + [RA] Remove checkroot from the list of scripts that should use a
       virtual dependency since $local_fs is not quite the same and some
       packages (cryptsetup) care about the difference.  (Closes: #580082)
   * checks/manpages{,.desc}:
     + [RA] Run man page checks using the en_US.UTF-8 locale now that we
       guarantee it exists.  Should hopefully fix occasional problems with
       col complaining about bad multibyte characters.  (Closes: #575661)
   * checks/menu-format.desc:
     + [RA] Fix typo in long description of duplicated-key-in-desktop-entry.
       Thanks, Niels Thykier.  (Closes: #580700)
   * checks/menus:
     + [RG] Recognise call to update-menus when using 'exec.'
     + [RA] Skip Haskell library documentation when warning about
       documentation not registered with doc-base.  Patch from Erik de
       Castro Lopo.  (Closes: #586877)
   * checks/nmu{,.desc}:
     + [RA] Recognize team uploads and do not treat them like NMUs.  Patch
       from Charles Plessy.  (Closes: #582741)
   * checks/rules.desc:
     + [RA] Add reference for debian-rules-makemaker-prefix-is-deprecated.
   * checks/scripts:
     + [RG] Correctly handle variables at the beginning of a call to
       dpkg-divert.  Thanks, Andreas Beckmann.  (Closes: #586984)
 .
   * collection/objdump-info:
     + [RG] Disable etch compatibility code.
   * collection/strings:
     + [RG] Correctly handle ELF binaries with whitespaces in their name.
       (LP: #540342)
 .
   * data/fields/architectures:
     + [RG] Refresh against dpkg 1.15.7.2.  (Closes: #581314, #584743)
   * data/fields/virtual-packages:
     + [RA] Update to current unstable and add the old xserver-xorg video
       and input virtual packages.
   * data/files/locale-codes:
     + [RG] Refresh to reflect change to private/refresh-locale-codes.
   * data/files/triplets:
     + [RG] Refresh against dpkg 1.15.7.2.
   * data/init.d/virtual_facilities
     + [RG] New list of virtual facilities that exist in the archive.
   * data/output/ftp-master-fatal:
     + [RA] Remove arch-any-in-binary-pkg.
   * data/output/manual-references:
     + [RA] Update against latest Debian Policy and devref.
   * data/spelling/corrections:
     + [RG] Add more spelling corrections.
   * data/spelling/corrections-case:
     + [RG] Add capitalization correction for OAuth.  (Closes: #582353)
   * data/standards-version/release-dates:
     + [RA] Add Debian Policy 3.9.0.
 .
   * frontend/lintian:
     + [RA] Set a PATH of /bin:/usr/bin if PATH is completely unset.
       Thanks, Carsten Hey.
 .
   * lib/Lintian/Collect/Binary.pm:
     + [RG] Correctly handle ELF binaries with whitespaces in their name.
   * lib/Lintian/Relation.pm:
     + [RA] Rather than allowing only a package name or a substvar, allow
       substvars mixed into the package name.  (Closes: #580494)
   * lib/Lintian/Schedule.pm:
     + [ADB] Add missing "use Lintian::Output", required for the use of
       warning().  (Closes: #583555)
 .
   * private/refresh-insserv-data:
     + [RG] New script to collect insserv data from the archive.
   * private/refresh-locale-codes:
     + [RG] Print elements with values only once.
   * private/refresh-virtual-packages-data:
     + [RA] Fix handling of # Keep: lines to work correctly now that
       virtual packages mentioned only once are excluded.
Checksums-Sha1: 
 f1fe4d66f02096524586e714157251b9e88b05e1 1213 lintian_2.4.2.dsc
 d961ffb26d9ed955cc32bd820665c93d6afc57cd 843416 lintian_2.4.2.tar.gz
 dd6690dc41063019098ccb09d6e255cc184eccc3 548716 lintian_2.4.2_all.deb
Checksums-Sha256: 
 3e60442a2433e706784df1530db70a2418645750c0f671e3e5341c3e008c0343 1213 lintian_2.4.2.dsc
 775d3645d1e6a351c823b785ee48d4b43409bc7a90ad92fabf3fbcc9cddfc158 843416 lintian_2.4.2.tar.gz
 c8dc5194e6618ec3a89cc695a4b64d0a5989c97805ab20985ad621b33422fcc9 548716 lintian_2.4.2_all.deb
Files: 
 897fad4087c11ffe2e5ca2fd138337e2 1213 devel optional lintian_2.4.2.dsc
 68d8479e1ce8db8d5bb438eae94c23cb 843416 devel optional lintian_2.4.2.tar.gz
 75779ce4b3e704cb966434fcf0d2c5eb 548716 devel optional lintian_2.4.2_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAkwoL4AACgkQ+YXjQAr8dHZJFACfVVjRPXy97iMmLbdyy+DLFF6O
W7QAoMjUacjvBVVXCrmqTW4GaJoDD+jk
=w6Tz
-----END PGP SIGNATURE-----



--- End Message ---

Reply to: