Bug#1030325: lintian: archive-liberty-mismatch (in section for firmware-nvidia-gsp) non-free-firmware vs non-free
Hi Andreas and Kibi,
Andreas Beckmann wrote:
> while preparing the move of firmware-nvidia-gsp from non-free to
> non-free-firmware I noticed this error from lintian:
>
> E: nvidia-graphics-drivers source: archive-liberty-mismatch (in section for firmware-nvidia-gsp) non-free-firmware vs non-free [debian/control:106]
Thanks for that bug report! non-free packages alone are seldom enough
so that these checks don't get a chance to be checked for the in the
wild already, and non-free-firmware is even more seldom.
Cyril Brulebois wrote:
> Andreas Beckmann <anbe@debian.org> (2023-02-02):
> > while preparing the move of firmware-nvidia-gsp from non-free to
> > non-free-firmware I noticed this error from lintian:
> >
> > E: nvidia-graphics-drivers source: archive-liberty-mismatch (in section for firmware-nvidia-gsp) non-free-firmware vs non-free [debian/control:106]
>
> Without a deep understanding of concepts or implementation, maybe a
> quick fix would be to consider non-free-firmware of lower liberty than
> non-free
For this implementation it looks like that on a first glance, yes.
Need to dig into this deeper, too, though.
> (even if they really should be considered the same),
I'd even say higher liberty due that infamous GR: There are obviously
people who would accept non-free-firmware on their systems, but not
other non-free packages. So non-free-firmware must be a bit more
"free" than "non-free". ;-P (And yes, in most cases, it's less "free"
than most software in "non-free". That's why I still don't get the
outcome of that GR. But I'm digressing...)
> changing this:
> for my $inferior_liberty ('non-free', 'contrib') {
> into this:
> for my $inferior_liberty ('non-free-firmware', 'non-free', 'contrib') {
[…]
> # must remain inferior
> last
> if $inferior_liberty eq $source_liberty;
Thanks for that analysis. I suspect this type of change is probably
necessary. Will have a closer look at it.
Andreas Beckmann wrote:
> > for my $inferior_liberty ('non-free', 'contrib') {
> > into this:
> > for my $inferior_liberty ('non-free-firmware', 'non-free', 'contrib') {
>
> That doesn't work for me (but may be needed for other cases).
I suspect the latter, too.
> The attached patch does make the error go away by adding an exception for
> 'non-free-firmware build from non-free' similar to 'contrib built from main'
> --- /usr/share/lintian/lib/Lintian/Check/Archive/Liberty/Mismatch.pm.orig 2023-02-03 00:30:29.782861611 +0100
> +++ /usr/share/lintian/lib/Lintian/Check/Archive/Liberty/Mismatch.pm 2023-02-03 01:02:12.441805855 +0100
> @@ -87,6 +87,9 @@
> # special exception for contrib built from main
> next
> if $source_liberty eq 'main' && $installable_liberty eq 'contrib';
> + # and non-free-firmware built from non-free
> + next
> + if $source_liberty eq 'non-free' && $installable_liberty eq 'non-free-firmware';
>
> my $control_item= $self->processable->debian_control->item;
> my $position = $installable_fields->position('Section');
Thanks for that patch, too. Maybe both are necessary. Will check.
Unfortunately firmware-nvidia-gsp/nvidia-graphics-drivers is rather
large and I ran out of disk space when first unpacking it in my home
directory. Will need to run my checks elsewhere for now. Or buy new
SSDs. %-)
Regards, Axel
--
,''`. | Axel Beckert <abe@debian.org>, https://people.debian.org/~abe/
: :' : | Debian Developer, ftp.ch.debian.org Admin
`. `' | 4096R: 2517 B724 C5F6 CA99 5329 6E61 2FF9 CD59 6126 16B5
`- | 1024D: F067 EA27 26B9 C3FC 1486 202E C09E 1D89 9593 0EDE
Reply to: