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

Bug#1084465: marked as done (lintian: GNUstep packages and package-contains-documentation-outside-usr-share-doc)



Your message dated Sat, 02 Nov 2024 22:12:18 +0000
with message-id <E1t7MLy-00BMX1-Q5@fasolo.debian.org>
and subject line Bug#1084465: fixed in lintian 2.120.0
has caused the Debian Bug report #1084465,
regarding lintian: GNUstep packages and package-contains-documentation-outside-usr-share-doc
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.)


-- 
1084465: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1084465
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: lintian
Version: 2.119.0
Severity: normal
Tags: patch
X-Debbugs-Cc: pkg-gnustep-maintainers@lists.alioth.debian.org

There are two major ("major" for us where "us" == Debian GNUstep team)
issues with this tag and our packages.  They are completely unrelated
so on second thought, it seems it would have been better if I filed
two separate bugs...  I was initially planning to solve them in one
shot (because lintian takes ~5 hours to build on my machine and it's
the same code spot), but I just realized this is probably wrong from
the Lintian developers' perspective.  Please clone this bug if you
intend to fix only the first problem (a clear false positive) and the
second one requires additional thought and/or discussion (or
wontfix'ing, etc).  Apologies for the inconvenience caused.

The first problem we have is that lintian emits
package-contains-documentation-outside-usr-share-doc for all Gorm
files because it assumes that a file with an .info extension is an
Info file:

I: aclock.app: package-contains-documentation-outside-usr-share-doc [usr/share/GNUstep/AClock.app/AClock.gorm/data.info]

A Gorm file (it's actually a directory containing at least 3 files,
but it's called a "file" in GNUstep terminology) contains a GUI --
archived objects and their relationships which are loaded and
instantiated at runtime.  In spirit, it is similar to .glade/.ui files
in the GNOME world but it's binary:

$ dpkg -L aclock.app | grep gorm
/usr/share/GNUstep/AClock.app/AClock.gorm
/usr/share/GNUstep/AClock.app/AClock.gorm/data.classes
/usr/share/GNUstep/AClock.app/AClock.gorm/data.info
/usr/share/GNUstep/AClock.app/AClock.gorm/objects.gorm

$ file /usr/share/GNUstep/AClock.app/AClock.gorm/data.info 
/usr/share/GNUstep/AClock.app/AClock.gorm/data.info: data

$ strings /usr/share/GNUstep/AClock.app/AClock.gorm/data.info 
GNUstep archive0000300c:00000003:00000003:00000000:0
GormFilePrefsManager
NSObject
NSString
Latest Version0
Typed Stream

This is definitely not documentation, just a poor choice of a file
extension.  There are some packages with many .gorm files and some
with translations (.gorm files are translatable but you have to copy
the translated .gorm file to the appropriate .lproj directory, thus
doing a close duplicate) which makes lintian output rather noisy.
Furthermore, nearly every .app package ships .gorm files so we
experience this quite often.  Eyes learn to ignore, but it would be
best if this gets fixed.

The second issue is lintian complaining (same tag) about .html and
.pdf files in /usr/share/GNUstep/Documentation.  These are legitimate
at first glance, but I believe that the same rationale should be
applied here as explained perfectly by Simon McVittie in #970275 for
the GTK/GNOME case.  Pretty much all of what he said there is
applicable for GNUstep: in order to resolve the cross-manual links, we
Build-Depend(-Indep) on the appropriate -doc package.  It is impossible
to maintain those links if we ship documentation in /usr/share/doc.

The only difference is that gnustep-make (GNUstep's build system)
installs HTML and PDF output from Texinfo manuals in the same
directory (/usr/share/GNUstep/Documentation), and these fall under
lintian's radar as well.  We don't have a dedicated API reference
browser like devhelp so this directory is a common starting point for
many GNUstep users -- all of them use a generic browser both for user
manuals and library API reference documentation.  So I believe these
should be exempt too.  FTPmasters appear to be OK with it and compared
to other GNUstep formal FHS/Policy violations, this seems palatable.

We install symlinks in /usr/share/doc so Debian users with no GNUstep
background should find documentation in the non-standard location
easily (the doc-base entries also point to the /usr/share/doc symlinks
to avoid a lintian error).

I have tested the attached patch with some GNUstep packages.  Perhaps
this change is incomplete and needs adding a test or something like
that.  Please let me know how to improve it.

-- System Information:
Debian Release: trixie/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'unstable'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, x32

Kernel: Linux 6.10.12-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=bg_BG.UTF-8, LC_CTYPE=bg_BG.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages lintian depends on:
ii  appstream                       1.0.3-1
ii  binutils                        2.43.1-5
ii  bzip2                           1.0.8-6
ii  diffstat                        1.66-1
ii  dpkg                            1.22.11
ii  dpkg-dev                        1.22.11
ii  file                            1:5.45-3
ii  gettext                         0.22.5-2
ii  gpg                             2.2.44-1
ii  intltool-debian                 0.35.0+20060710.6
ii  iso-codes                       4.17.0-1
ii  libapt-pkg-perl                 0.1.40+b5
ii  libarchive-zip-perl             1.68-1
ii  libberkeleydb-perl              0.64-2+b3
ii  libcapture-tiny-perl            0.48-2
ii  libclass-xsaccessor-perl        1.19-4+b3
ii  libclone-perl                   0.47-1
ii  libconfig-tiny-perl             2.30-1
ii  libconst-fast-perl              0.014-2
ii  libcpanel-json-xs-perl          4.38-1
ii  libdata-dpath-perl              0.60-1
ii  libdata-validate-domain-perl    0.15-1
ii  libdata-validate-uri-perl       0.07-3
ii  libdevel-size-perl              0.84-1
pn  libdigest-sha-perl              <none>
ii  libdpkg-perl                    1.22.11
ii  libemail-address-xs-perl        1.05-1+b3
ii  libencode-perl                  3.21-1+b1
ii  libfile-basedir-perl            0.09-2
ii  libfile-find-rule-perl          0.34-3
ii  libfont-ttf-perl                1.06-2
ii  libhtml-html5-entities-perl     0.004-3
ii  libhtml-tokeparser-simple-perl  3.16-4
ii  libio-interactive-perl          1.025-1
ii  libipc-run3-perl                0.049-1
ii  libjson-maybexs-perl            1.004008-1
ii  liblist-compare-perl            0.55-2
ii  liblist-someutils-perl          0.59-1
ii  liblist-utilsby-perl            0.12-2
ii  libmldbm-perl                   2.05-4
ii  libmoo-perl                     2.005005-1
ii  libmoox-aliases-perl            0.001006-2
ii  libnamespace-clean-perl         0.27-2
ii  libpath-tiny-perl               0.146-1
ii  libperlio-gzip-perl             0.20-1+b3
ii  libperlio-utf8-strict-perl      0.010-1+b2
ii  libproc-processtable-perl       0.636-1+b2
ii  libregexp-wildcards-perl        1.05-3
ii  libsereal-decoder-perl          5.004+ds-1+b2
ii  libsereal-encoder-perl          5.004+ds-1+b2
ii  libsort-versions-perl           1.62-3
ii  libsyntax-keyword-try-perl      0.30-1
ii  libterm-readkey-perl            2.38-2+b3
ii  libtext-levenshteinxs-perl      0.03-5+b3
ii  libtext-markdown-discount-perl  0.16-1+b2
ii  libtext-xslate-perl             3.5.9-2
ii  libtime-duration-perl           1.21-2
ii  libtime-moment-perl             0.44-2+b3
ii  libtimedate-perl                2.3300-2
ii  libunicode-utf8-perl            0.62-2+b2
ii  liburi-perl                     5.29-1
ii  libwww-mechanize-perl           2.19-1
ii  libwww-perl                     6.77-1
ii  libxml-libxml-perl              2.0207+dfsg+really+2.0134-5
ii  libyaml-libyaml-perl            0.902.0+ds-2
ii  lzip [lzip-decompressor]        1.24.1-2
ii  lzop                            1.04-2
ii  man-db                          2.13.0-1
ii  patchutils                      0.4.2-1
ii  perl [libversion-perl]          5.38.2-5
ii  t1utils                         1.41-4
ii  unzip                           6.0-28
ii  xz-utils                        5.6.2-2

lintian recommends no packages.

Versions of packages lintian suggests:
ii  binutils-multiarch     2.43.1-5
ii  libtext-template-perl  1.61-1

-- no debconf information
diff --git a/lib/Lintian/Check/Documentation.pm b/lib/Lintian/Check/Documentation.pm
index 364ecde2f..4f997951c 100644
--- a/lib/Lintian/Check/Documentation.pm
+++ b/lib/Lintian/Check/Documentation.pm
@@ -150,7 +150,12 @@ sub visit_installed_files {
           # see Bug#1009679, not documentation, just an unlucky suffix
           || $item->name =~ m{^var/lib/ocaml/lintian/.+[.]info$}
           # see Bug#970275
-          || $item->name =~ m{^usr/share/gtk-doc/html/.+[.]html?$};
+          || $item->name =~ m{^usr/share/gtk-doc/html/.+[.]html?$}
+          # GNUstep documentation, same rationale as Bug#970275
+          || $item->name =~ m{^usr/share/GNUstep/Documentation/
+                              .+[.](html|pdf)$}x
+          # GNUstep Gorm files (not documentation)
+          || ($item->dirname =~ m{[.]gorm} && $item->basename eq 'data.info');
     }
 
     if ($item->name =~ m{^usr/share/doc/\S}) {

--- End Message ---
--- Begin Message ---
Source: lintian
Source-Version: 2.120.0
Done: Louis-Philippe Véronneau <pollo@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 1084465@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Louis-Philippe Véronneau <pollo@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: SHA512

Format: 1.8
Date: Sat, 02 Nov 2024 16:13:21 -0400
Source: lintian
Architecture: source
Version: 2.120.0
Distribution: unstable
Urgency: medium
Maintainer: Debian Lintian Maintainers <lintian-maint@debian.org>
Changed-By: Louis-Philippe Véronneau <pollo@debian.org>
Closes: 1029187 1057176 1084465
Changes:
 lintian (2.120.0) unstable; urgency=medium
 .
   * Summary of tag changes:
     + Added:
       - dep3-format-patch-author-or-from-is-better
       - invalid-dep3-format-patch-bug-field-default-value
       - invalid-dep3-format-patch-bug-not-contain-url
       - invalid-dep3-format-patch-maybe-bug-debian
       - invalid-dep3-format-patch-no-description-and-subject
       - invalid-dep3-format-patch-no-origin
       - invalid-dep3-format-patch-origin-field-default-value
       - invalid-dep3-format-patch-wrong-bug-debian-url
       - invalid-dep3-format-patch-wrong-last-update
 .
   [ Louis-Philippe Véronneau ]
   * depends-on-obsolete-package: reduce the severity to warning.
     (Closes: #1029187)
 .
   [ Timo Paulssen ]
   * Don't re-check if python is in dependencies for every file.
   * Make File::Contents::LineLength::visit_patched_files a bit faster.
 .
   [ Simon Quigley ]
   * Add "plucky" as a known Ubuntu distribution.
 .
   [ Nicolas Peugnet ]
   * Indent some lists with a single space to fix console output.
   * Indent descriptions with a single space.
   * Fix some obvious broken links to man pages.
   * Fix clearly invalid Markdown tag descriptions.
   * Fix some more invalid <code> tags in literal blocks.
   * Indent some text to turn them into literal blocks.
 .
   [ Yavor Doganov ]
   * Don't emit package-contains-documentation-outside-usr-share-doc for .gorm
     files and GNUstep docs. (Closes: #1084465).
 .
   [ Andrea Pappacoda ]
   * Do not raise silent-on-rules-requiring-root if dpkg-build-api is v1 or
     newer. (Closes: #1057176)
 .
   [ Hideki Yamane ]
   * Extend DEP3 check.
 .
   [ наб ]
   * command-with-path-in-maintainer-script: recommend command -v (standard
     built-in) instead of which (some program).
Checksums-Sha1:
 fb6996996be1782b64bd33a04e0284909f612f9c 3449 lintian_2.120.0.dsc
 7f392ecf062397510a1080f18bd59504cb496cfa 2252740 lintian_2.120.0.tar.xz
 0273fdf6a17b4a045ac0deba275f8c7b6dcfca2d 20908 lintian_2.120.0_amd64.buildinfo
Checksums-Sha256:
 9ad3e8865f8cba23127493214389aac7c9e4d4ad65d823b103965a860d716b9c 3449 lintian_2.120.0.dsc
 2928de417c6fbc44311bac0531c03dd29965c0df9b6f80bb02e706185fd60c7f 2252740 lintian_2.120.0.tar.xz
 43d051f1d941dfe71f5302fc63c7c6a113277c084cf10adbc83f1aa9b2e707f7 20908 lintian_2.120.0_amd64.buildinfo
Files:
 a870f6971e22348c2f0b9316ce4d663e 3449 devel optional lintian_2.120.0.dsc
 dd728451e18d9e14112a78b1fe76b4b2 2252740 devel optional lintian_2.120.0.tar.xz
 38cfd041f7851f082c90bb47f1d76d9c 20908 devel optional lintian_2.120.0_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQTKp0AHB6gWsCAvw830JXpQshz6hQUCZyaZIgAKCRD0JXpQshz6
hd/uAP45uuTiqmWgu6FfpSe2qdSY+ZryNFkr+BhsMPXq/VMuogEAoi0HtCINBWUY
CFhODaoQSKtcaX/U3bbUPyHk+92iyQo=
=wnsS
-----END PGP SIGNATURE-----

Attachment: pgpY2bnG7J9kj.pgp
Description: PGP signature


--- End Message ---

Reply to: