control: retitle -1 check doc-base-file-references-wrong-path control: tags -1 + patch
Excuse me, lintian warning was correct. But after checking this bug of mine, I came up with a possible improvement for the lintian check. I made a proof-of-concept patch here. Package: lintian Version: 2.11.0 Severity: normal Requested action for /usr/share/lintian/checks/menus.pm: ======================================================== * add sanity check for the file path to be usr/share/doc/* or /usr/share/info/*. --> /usr/share/lintian/checks/menus.pm before line 353 add file path matching rule and produce error message as needed. Attached a proof of concept patch: Note: I didn't run perltidy since that changed many other parts. I still didn't figure out how the test suite within lintian works. This code is tested by installing it to the target pat manually ;-) Osamu PS: I at least see that libreoffice-help-en-us should fail this new test. It shouldn't list /usr/share/libreoffice/help/media/* which is outside of /usr/share/doc/*. Instead, it should create symlink using dh_link: /usr/share/doc/<package>/help -> /usr/share/libreoffice/help Then use this new path for doc-base. PS sixerjman: I think your concern is addressed with lintian now.
>From 30479d72937d84fbd501f2f61d40cb1169cb35bd Mon Sep 17 00:00:00 2001 From: Osamu Aoki <os...@debian.org> Date: Thu, 21 Mar 2019 20:43:22 +0900 Subject: [PATCH 1/1] Add check for doc-base-file-references-wrong-path This test make sure that the files referenced in an Index or Files field always uses correct path as requested by doc-base 2.3.2.2. Signed-off-by: Osamu Aoki <os...@debian.org> --- checks/menus.desc | 8 ++++++++ checks/menus.pm | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/checks/menus.desc b/checks/menus.desc index af26ee9..06c1e8a 100644 --- a/checks/menus.desc +++ b/checks/menus.desc @@ -144,6 +144,14 @@ Info: The Index field in a doc-base file should reference the single index should be listed in the Files field. Ref: doc-base 2.3.2.2 +Tag: doc-base-file-references-wrong-path +Severity: important +Certainty: certain +Info: One of the files referenced in an Index or Files field in this + doc-base control file lists a wrong file path which doesn't start with + /usr/share/doc/ nor with /usr/share/info/. +Ref: doc-base 2.3.2.2 + Tag: doc-base-file-references-missing-file Severity: important Certainty: certain diff --git a/checks/menus.pm b/checks/menus.pm index f66d825..521ab5d 100644 --- a/checks/menus.pm +++ b/checks/menus.pm @@ -350,6 +350,11 @@ sub check_doc_base_field { if ($field eq 'index' && @files > 1) { tag 'doc-base-index-references-multiple-files', "$dbfile:$line"; } + for my $file (@files) { + next if $file =~ m %^/usr/share/doc/%; + next if $file =~ m %^/usr/share/info/%; + tag 'doc-base-file-references-wrong-path', "$dbfile:$line", $file; + } for my $file (@files) { next if $file eq ''; my $realfile = delink($file, $all_links); -- 2.20.1