Hi!

On Sun, 2026-01-04 at 00:03:46 -0500, Louis-Philippe Véronneau wrote:
> In an act of productive procrastination, I spent a few hours
> yesterday looking at the tags in Lintian that are currently marked
> as "Experimental: yes".
> 
> As far as I understand, very few people run Lintian at the experimental
> level, which means these tags are still ran, but not really shown to
> users (and thus waste CPU cycles).

(I do! :D, this is my config:

,--- ~/.config/lintian/lintianrc:
#show-overrides=yes
tag-display-limit=0
display-experimental=yes
display-info=yes
pedantic=yes
color=auto
`---

)

> I'm emailing the Lintian and QA lists in order to get some feedback
> before creating a big MR with tens of commits removing the tags I
> feel should be removed. If you think the reasoning below is flawed,
> please reply to this message and let me know!

I think several of the tags that you are planning or considering for
removal are useful. But perhaps not in their current form.

The problem as you note is that several of those flag things that the
maintainer might be unable to fix by themselves, which can be seen as
frustrating. I still think these are useful, because they flag things
that are for example otherwise best-practice, or that are smells. Not
flagging them makes these problems invisible, although they are still
there.

So perhaps the problem is mainly that they should be closer to the
"classification" tags, but specific to these kinds of issues, say
"smell", "best-practice", "aspirational" or something similar, and
not emitted by default unless requested somehow.

Also AFAIK, some QA tools depend on flags being emitted to track
issues or report stuff.

> === Tags I'm planning to remove ===
> 
> * update-debian-copyright

I think it's a good reminder, if you want to update your copyright
statements.

(<smell/aspirational>?)

> * spelling-error-in-binary

While it indeed has false-positives, I've found it still triggers on
valid issues, that I've reported upstream with patches, so I
appreciate its existence.

(<smell/aspirational>?)

> * systemd-service-file-missing-hardening-features

I think this might be fine as an aspirational one, but otherwise
depending on the daemon, and depending on what hardening gets applied
for a general purpose distribution, might easily break stuff, for
example for non-default options.

(<smell/aspirational>?)

> * binary-file-built-without-LFS-support

Removing the tag will not remove the problems (as long as we support
32-bit arches). I think having this gives the problem visibility.

> * exit-in-shared-library

While this one I've found hard to fix, I still appreciate its
existence to be aware of these problems.

(<smell/aspirational>?)

> * prefer-uscan-symlink

This one has always seemed very strange to me, and I meticulously
ignore it. I think if anything should be fixed that should be in uscan
perhaps.

> * debian-watch-does-not-check-openpgp-signature

This is an easy ask, even though upstream might as easily reject it,
because they might not be prepared or willing to do OpenPGP stuff. I
still find it useful, to track which ones are missing upstream
signatures.

(<smell/aspirational>?)

> * duplicate-files

I think this is useful, and worth reporting upstream at least.

(<smell/aspirational>?)

> * application-in-library-section
> * library-package-name-for-application

I actually think most of the problems flagged by this are valid. With
packages incorrectly marked as libs, or programs shipped in shared
library packages, or in python or perl module packages, or
non-development programs marked with their implementation language which
should be irrelevant. But given that for interpreted languages we do not
have the libs vs libdevel vs devel distinction, the language section gets
all these into it. :/

Perhaps a compromise for now could be to ignore language specific
sections for now? (Although as mentioned above, I think several of those
are actual problems IMO.)

> * bin-sbin-mismatch

Unless the test can be improved this seems like a rather experimental
and error prone one to me. (AFAIR I filed a report about this one.)

> === Tags I think should be removed, but could probably stay Experimental? ===
> 
> * bad-intended-distribution
>  - last updated: 2014-11
>  - 15 entries in UDD
>  - I don't really understand this tag? It seems to me like the
>    unreleased-changelog-distribution tag already takes care these
>    kind of issues. The entries in UDD mostly look like false-positives.

This tag is supposed to match what the uploader intended when
spelling the target distribution in textual form in a changelog entry,
against the entry in the changelog entry header. But it's true that it
seems prone to false positives.

The unreleased-changelog-distribution checks (AFAICT) whether a
signed .changes is not for the boilerplate 'UNRELEASED', which seems
more reliable, but does not catch mismatches in intention.

I guess this might be one of those that might be effective during the
preparation when you notice the mismatch before uploading it, and then
fix it?

> * executable-in-usr-lib
>  - last updated: 2022-01
>  - 159,250 entries in UDD
>  - The logic behind this tag is valid. Considering the very large
>    number of entries in UDD, I don't think this will be fixed. What
>    is the point of having a tag if we're not willing to show it for
>    fear of "wasting people's time"?

I think this flags a valid issue, and even if fixing it might be hard
or not happen in a quick way, it serves as a way to provide awareness
and to track progress over time.

(<smell/aspirational>?)

> * elf-warning
> * portable-executable-missing-security-features

I also think these are useful, even if not going to get down to 0, for
the same reason as the others.

(<smell/aspirational>?)

> * non-consecutive-debian-revision

Seems also useful, but in many cases not worth fixing.

(<smell/aspirational>?)

Thanks,
Guillem

Reply via email to