Your message dated Tue, 07 Sep 2021 10:05:03 +0000 with message-id <E1mNXyR-000GqI-Vu@fasolo.debian.org> and subject line Bug#962601: fixed in lintian 2.105.0 has caused the Debian Bug report #962601, regarding wrong-manual-section does not work for manual pages shared among multiple executables 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.) -- 962601: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=962601 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: submit@bugs.debian.org
- Subject: manpage-section-mismatch doesn't take into account manpages with multiple binaries
- From: Sergio Durigan Junior <sergiodj@debian.org>
- Date: Wed, 10 Jun 2020 12:54:59 -0400
- Message-id: <87ftb2oo7w.fsf@paluero>
Package: lintian Version: 2.80.0 Severity: normal Tags: patch Hi, I found a lintian limitation while working with a manpage that refers to two different binaries. In this scenario, lintian will mistakenly consider the name of the second binary as the man section number, and will issue a "manpage-section-mismatch" warning. Consider a manpage whose header looks like: .TH MOUNT.CIFS, MOUNT.SMB3 8 "" "" "" .SH NAME mount.cifs, mount.smb3 \- mount using the Common Internet File System (CIFS) . .nr rst2man-indent-level 0 When we run lintian, we will see: W: cifs-utils: manpage-section-mismatch usr/share/man/man8/mount.cifs.8.gz:3 8 != MOUNT.SMB3 However, according to lexgrog(1) and other sources, it is possible to specify multiple programs in the .TH directive, as long as they are separated by a comma and a whitespace, which is the case here. I'd like to propose the following patch to address the problem. The idea is simple: after calling Text::ParseWords::parse_line, we check to see if the first package name has a comma as the last char. If it does, then we assume that there will be at least one other package name listed, and advance an index. When we reach a package name whose last char is not a comma, we then assume that the next field is the manpage section number. I tested with the problematic manpage I have here, and it works. I also tested with other non-problematic manpages, and they still work as well. Thanks, -- Sergio GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36 Please send encrypted e-mail if possible https://sergiodj.net/ From d8cbe8d82733178589c30adff2335b37b26b3c8a Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior <sergiodj@debian.org> Date: Wed, 10 Jun 2020 12:49:53 -0400 Subject: [PATCH] Adjust manpage-section-mismatch to accept manpages referring to more than one program --- checks/documentation/man.pm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/checks/documentation/man.pm b/checks/documentation/man.pm index 8092e023d..371552b6f 100644 --- a/checks/documentation/man.pm +++ b/checks/documentation/man.pm @@ -296,8 +296,20 @@ sub files { chomp $line; next if $line =~ /^\.\\\"/; # comments .\" if ($line =~ /^\.TH\s/) { # header - my (undef, undef, $th_section, undef) + my @th_fields = Text::ParseWords::parse_line('\s+', 0, $line); + my $pkgname_idx = 1; + # Iterate over possible package names. If there is + # more than one, they will be separated by a comma and + # a whitespace. In case we find the comma, we advance + # $pkgname_idx. + while (substr($th_fields[$pkgname_idx], -1) eq ',') { + $pkgname_idx++; + } + # We're now at the last package, so we should be able + # to obtain the manpage section number by incrementing + # 1 to the index. + my $th_section = $th_fields[++$pkgname_idx]; if ($th_section && (lc($fn_section) ne lc($th_section))) { $self->tag('manpage-section-mismatch', "$file:$lc $fn_section != $th_section"); -- 2.26.2Attachment: signature.asc
Description: PGP signature
--- End Message ---
--- Begin Message ---
- To: 962601-close@bugs.debian.org
- Subject: Bug#962601: fixed in lintian 2.105.0
- From: Debian FTP Masters <ftpmaster@ftp-master.debian.org>
- Date: Tue, 07 Sep 2021 10:05:03 +0000
- Message-id: <E1mNXyR-000GqI-Vu@fasolo.debian.org>
- Reply-to: Chris Lamb <lamby@debian.org>
Source: lintian Source-Version: 2.105.0 Done: Chris Lamb <lamby@debian.org> 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. 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 962601@bugs.debian.org, and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Chris Lamb <lamby@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@ftp-master.debian.org) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 1.8 Date: Tue, 07 Sep 2021 09:43:56 +0000 Source: lintian Architecture: source Version: 2.105.0 Distribution: unstable Urgency: medium Maintainer: Debian Lintian Maintainers <lintian-maint@debian.org> Changed-By: Chris Lamb <lamby@debian.org> Closes: 898867 927476 932870 935907 942013 947258 962601 968011 969398 969762 972181 972876 972878 974175 974575 976643 976681 977261 977332 977976 978144 978534 980247 980560 980824 980987 981163 981268 981279 981712 981932 981935 982322 982630 982834 983219 983598 984678 985064 986400 988591 991242 992465 993531 993651 993711 9768010 Changes: lintian (2.105.0) unstable; urgency=medium . * Summary of tag changes: + Added: - backgrounded-test-command - crossing-screens - duplicate-p3dist-override - elevated-privileges - illegal-variable - misplaced-systemd-tmpfiles - missing-conffile - no-versioned-debhelper-prerequisite - nodejs-missing-version-override - obsolete-vim-addon-manager - pypi-homepage - python-traceback-in-manpage - ruby-interpreter-is-deprecated - rubygem-homepage - rules-require-build-prerequisite - rust-boilerplate - source-contains-editor-backup-file - source-contains-patch-failure-file - source-contains-quilt-control-dir - superficial-tests - systemd-service-in-odd-location - systemd-tmpfile-in-var-run - unexpected-conffile - unknown-conffile-instruction - unmerged-usr - upstream-metadata-field-unknown - wrong-team + Removed: - ancient-standards-version - conffile-is-not-in-package - missing-build-dependency - missing-python-build-dependency - octal-permissions - package-lacks-versioned-build-depends-on-debhelper - package-needs-versioned-debhelper-build-depends - setgid-binary - setuid-binary - setuid-gid-binary - systemd-service-file-outside-lib - systemd-tmpfiles.d-outside-usr-lib . [ Chris Lamb ] * Check for Python tracebacks in manual pages, usually caused by failing help2man calls (and cause reproducibility issues). * Correct confusion between left and right parens that was leading to output such as ")2 errors)". * Bump Standards-Version to 4.6.0.1. . [ Felix Lechner ] * Implement usr-merge; flag files shipped in /bin, /sbin or /lib. * Flag systemd temporary files placed in /var/run. (Closes: #984678) * Do not repeat tag name when annotating hints. (Closes: #969398) * Refuse to read installable control data in national encodings. * Stop shipping modules in system path. (Closes: #968011) - Provide a dedicated, non-public executable to obtain the latest policy version from Lintian data. (See: #978672) * Flag the use of DEB_BUILD_MULTIARCH in some Debian files. (Closes: #983219) * For team-maintained packages, flag names in another team's name space. * Provide a generalized method to grant exemptions to package families (screens). - Exempt ELPA packaging scripts for Emacs modules from executable-in-usr-lib. (Closes: #974175) - Exempt GNAT's read-only .ali files from non-standard-file-perm. (Closes: #986400) * Treat NMU edge cases for non-consecutive-debian-revision. (Closes: #942013) * Recommend the newer php-markdown over libmarkdown-php when embedded. (Closes: #898867) * Convert possible-gpl-code-linked-with-openssl to a classification tag. (Closes: #972181) * Turn maybe-not-arch-all-binnmuable into a classification tag. * Combine, rename two confusing debhelper tags. (Closes: #977332) * Warn when trying to issue duplicate hints; provide more context to disambiguate similar hints. * Add --output-width; wrap EWI tag descriptions to width of output terminal otherwise. * Assume that all interactive terminals are hyperlink-capable, but change default to off. * Send all debugging and status information to STDERR. * Drop support for custom visibility levels in profiles. * Prefer spaces over commas as field separators in profiles. * Build test packages automatically when running tests. (Closes: #927476, #935907) * Use semantic versioning for the output of '--version'; omit Git hash from Lintian version strings. * Refer to new website in output. * Update manual references for the first time in almost two years. * Update the JSON data file for Debian policy releases; include all up to 4.6.0.1. * Drop UTF-8 PerlIO layers for STDOUT and STDERR from almost all executables and the test suite. (Closes: #972876, #972878) * Do not pretend to show hashbang in hint context for unusual interpreters. (Closes: #982630) * Treat Testsuite field as a comma-separated list for the teams pkg-perl and pkg-js. (Closes: #9768010) * Use current program names in help messages and version announcements. (Closes: #977261) * Allow tilde in names of installed JAR archives. (Closes: #976681) * Flag source packages that declare only tests with the 'superficial' restriction. (Closes: #932870) * Ignore SIGWINCH in the test suite. (Closes: #974575) * For manual pages, extract section information correctly from .TH header. (Closes: #962601) * Recognize Architecture and Classes as valid fields in d/tests/control. (Closes: #977976) * Restructure tags for file permissions; combine tags for setuid/setgid executables. * Detect Rust boilerplate in package descriptions. (See: !344) * Do not fail on dangling symlinks when looking for obsolete, missing or invalid content. (Closes: #978534) * Always print full path to patch files. (Closes: #980247) * Tolerate manual pages for subcommands when main command is documented. (Closes: #947258) * Tighten regex for no-op-testsuite to stop false positives. (Closes: #980824) * Allow environment prefix when recognizing 'dh' sequencer. (Closes: #981712) * Ignore build profiles when requiring dh helper for Python prerequisites. (Closes: #991242) * Ignore build profiles when flagging use of py3versions in d/rules. (Closes: #978144) * Do not flag Python3 entry point definitions as out-of-place documentation. (Closes: #981268) * Flag duplicates in d/py3dist-overrides. (Closes: #980987) * Flag PyPI homepages in source control files. (Closes: #981932) * Flag Rubygem homepages in source control files. (Closes: #981935) * Accept the virtual package dh-sequence-dkms as B-D for 'dh --with-dkms'. (Closes: #982834) * Drop reference to archive keyring from package-installs-apt-sources. (Closes: #983598) * Read error message from Config::Tiny via the advertised mechanism. (Closes: #985064) * Add 'utils.h' to the list of overly generic headers. (Closes: #982322) * Drop package file names from tag context for unknown-field. (Closes: #980560) * Flag backgrounded Test-Commands in autopkgtest declarations. (Closes: #988591) * For multi-component sources, always drop common prefixes for sub-components. (Closes: #976643) * Accept more than two components in architecture wildcards for package relationships. (Closes: #981163) * Add Breaks: lintian-brush (<< 0.88) to debian/control due to failing autopkgtests. * Implement two perltidy policies. * Implement 87 perlcritic policies; disregard four others. * Ignore special attributes like 'remove-on-upgrade' in DEBIAN/conffiles. (Closes: #993531, #993711) * Read checks separately from ./lib and ./checks; forego symbolic link. (Closes: #993651) . [ Simon McVittie ] * Update lists of registered build-profile names . [ Paul Wise ] * spelling: Add several corrections * Upgrade superficial-tests tag to warning . [ Xavier Guimard ] * Verify that nodejs module does not use semantic-release * Fix and simplify search when parsing pkg-js-autopkgtest files. (Closes: #981279) . [ Emmanuel Bourg ] * Detect obsolete Servlet API 3.1. (See: !348) . [ Alexandre Rossi ] * Recognize empty and very small files as architecture-independent. . [ Jelmer Vernooij ] * Fix typo: valgring => valgrind. * Fix archive section mapping for rust development packages. * Check upstream field names in upstream metadata. (Closes: #969762) . [ gregor herrmann ] * Add another spelling correction. . [ Victor Westerhuis ] * Add --no-rename as a recognized option for dpkg-divert. . [ Brian Murray ] * Recognize Ubuntu's next release, named 'impish', among the known-dists. . [ Louis-Philippe Véronneau ] * Add check for obsolete installation prerequisite vim-addon-manager. . [ Fatih Altun ] * Add profile for Pardus Linux . [ Antonio Terceiro ] * Stop suggesting ruby-interpreter as a prerequisite. (See: !365) * Warn about the outdated prerequisite ruby-interpreter. (See: !365) . [ Peter Pentchev ] * Adjust to debhelper's new install location for systemd service files. (Closes: #992465) Checksums-Sha1: 58e4f300efdb5d15d33bd222810e62763322ed15 2469 lintian_2.105.0.dsc 908caf020432d356af1cadf783ab7ae3c70ed219 2052004 lintian_2.105.0.tar.xz 99f67f487c1d0889792d3e3aaf674802d36d36a9 6551 lintian_2.105.0_amd64.buildinfo Checksums-Sha256: 3738a6e5336e487be983d6ee97d87fb128a3871c81dc3bc3f87f42e41d06037d 2469 lintian_2.105.0.dsc d9fa12b4c11cc6aed94fe2a27d4586d5e28477373ef0074503ffd978d0550cfa 2052004 lintian_2.105.0.tar.xz 8ac437e27c42c7f2aee008941a3418c18ccf710e2196ed5af925cd20c8cb2a24 6551 lintian_2.105.0_amd64.buildinfo Files: 611d09270ef51d30ca91280d488ef08c 2469 devel optional lintian_2.105.0.dsc 602f173427c42bade1f85d81b028810f 2052004 devel optional lintian_2.105.0.tar.xz dfe817dcc03489684c9c29045c9be179 6551 devel optional lintian_2.105.0_amd64.buildinfo -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEwv5L0nHBObhsUz5GHpU+J9QxHlgFAmE3NmAACgkQHpU+J9Qx HljL9A/+MRC4Z5UhmdkxxU+mPkWJEckuJS1ALhp3jJ0CzRp2gOdigcRr+ALmP0j/ YxcQfyQw5VJY3+OAEX/aF+9xYwxt+Jtl+iOs2x3iiXSuDzayUGFHeLOGhF39hovM JVIjbvZ9T/1F8mH68tzLElKF+7NEL+AGp947+zA3iHQmOWAXIfFHdesmIN2v7OX2 FVEN3Z9NGHtiwV82WrS4Tszky0X+hCDsvQvAWe5j+ao1w5uRmQZvRqXkVB2F4uW/ JheAUCbnJlZSZ4Ai4vWCTCvstQ47QEhtuM7fiZB8NAGwmGbj4X6m/SZm+bSG9kkH Sh66eNGgxbCSidsxXBs5FCngl2bBH6F1k0WdK+FZJWN/0ixXRthAhctabaUS/nOu TLMNYc4KMWweqWOQlvmNsziXgzJU3K7sDwysId8r43HLsPcSpr/7cv1s3N55kxoU ImurSMcNcRBP5jhzwlg91l32yfcNYYP7FEn5CrAJrZlLFPQLlyiaeb6ErIDhhnxO gpNIR7WEvFlcQGR8crV3HOdre5hFeC1SMFiP5nKA4rrdYU8YV9FbWZI28s7jQgdd waBsfutkCVs8EQmPnIwYs48mp3VgdYLerHzC5CtTtRnmJt9MFQNgOI4g5Dw929W4 OvnebyUFd48qvbX/JuPflEn3aqLpxZs58gRAoiUk33RHIGK7E2c= =yO7Z -----END PGP SIGNATURE-----
--- End Message ---