Re: [PATCH v2 08/39] scripts: get_abi.pl: prevent duplicated file names

From: Nícolas F. R. A. Prado
Date: Tue Dec 08 2020 - 08:36:14 EST


On Fri, Oct 30, 2020 at 08:40:27AM +0100, Mauro Carvalho Chehab wrote:
> The same filename may exist on multiple directories within
> ABI. Create separate entries at the internal database for
> each of them.
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx>
> ---
> scripts/get_abi.pl | 15 ++++++++++-----
> 1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/scripts/get_abi.pl b/scripts/get_abi.pl
> index e5a5588a8639..5612f019fae0 100755
> --- a/scripts/get_abi.pl
> +++ b/scripts/get_abi.pl
> @@ -65,7 +65,10 @@ sub parse_abi {
> my $name = $file;
> $name =~ s,.*/,,;
>
> - my $nametag = "File $name";
> + my $fn = $file;
> + $fn =~ s,Documentation/ABI/,,;
> +
> + my $nametag = "File $fn";
> $data{$nametag}->{what} = "File $name";
> $data{$nametag}->{type} = "File";
> $data{$nametag}->{file} = $name;
> @@ -320,16 +323,18 @@ sub output_rest {
> my $fileref = "abi_file_".$path;
>
> if ($type eq "File") {
> - my $bar = $w;
> - $bar =~ s/./-/g;
> -
> print ".. _$fileref:\n\n";
> - print "$w\n$bar\n\n";
> } else {
> print "Defined on file :ref:`$f <$fileref>`\n\n";
> }
> }
>
> + if ($type eq "File") {
> + my $bar = $w;
> + $bar =~ s/./-/g;
> + print "$w\n$bar\n\n";
> + }
> +
> my $desc = "";
> $desc = $data{$what}->{description} if (defined($data{$what}->{description}));
> $desc =~ s/\s+$/\n/;
> --
> 2.26.2
>

Hey Mauro,

just a heads-up.

It seems the ABI page is showing the full file names as shown in [1], like "File
/srv/docbuild/lib/git/linux/stable/firewire-cdev", while only the file name
would be enough, like "File firewire-cdev".

By reverting this patch I got exactly the intended behavior, but it seems you
were fixing other things with this, so perhaps just reverting is breaking
something that I can't see.

Could you look into what would be the right fix for this? :)

Thanks,
Nícolas

[1] https://www.kernel.org/doc/html/latest/admin-guide/abi.html