public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
From: Dodji Seketeli <dodji@redhat.com>
To: Ben Woodard <woodard@redhat.com>
Cc: Dodji Seketeli <dodji@redhat.com>,
	 "Frank Ch. Eigler" <fche@redhat.com>,
	 libabigail@sourceware.org
Subject: Re: [PATCH, request for review] abidb: Introduce a tool to manage the ABI of a Linux distribution
Date: Tue, 19 Mar 2024 18:06:54 +0100	[thread overview]
Message-ID: <87jzlyp2vl.fsf@seketeli.org> (raw)
In-Reply-To: <aa3a7222-afc9-42de-9183-70c5297e21ce@redhat.com> (Ben Woodard's message of "Tue, 19 Mar 2024 08:29:35 -0700")

Hello,

Ben Woodard <woodard@redhat.com> a écrit:

[...]

>> This patch introduces a new tool named abidb.  It manages a Git
>> repository of the Application Binary Interfaces of a set of shared
>> libraries.  Those ABIs are stored in the Git repository in the form of
>> ABIXML files.
>>
>> The tool then supports the verification of the ABI compatibility of a
>> given binary against the stored ABIs of shared libraries.
>>
>> 	* configure.ac: Condition building abidb on the presence of python
>> 	and the required modules.
>> 	* doc/manuals/Makefile.am: Add the abidb.rst documentation to
>> 	source distribution.  Distribute the abidb.1 manpage file as well.
>> 	* doc/manuals/abidb.rst: New documentation file.
>> 	* doc/manuals/conf.py: Configure the generation of the abidb.1
>> 	manage from the abidb.rst file above.
>> 	* doc/manuals/libabigail-tools.rst: Add a reference to the new
>> 	abidb tool.
>> 	* tests/Makefile.am: Register runabidb1.sh and runabidb2.sh as
>> 	tests for abidb.  Register runabidb1.sh.in and runabidb2.sh.in as
>> 	input files for autoconf generated runabidb1.sh and runabidb2.sh.
>> 	* tests/data/Makefile.am: Add abidb2client.c, abidb2so.c and
>> 	abidb2soBAD.c to source distribution.
>> 	* tests/data/abidb2client.c: New source file for test input binaries.
>> 	* tests/data/abidb2so.c: Likewise.
>> 	* tests/data/abidb2soBAD.c: Likewise.
>> 	* tests/runtestabidb1.sh.in: New test script input for autoconf generation.
>> 	* tests/runtestabidb2.sh.in: Likewise.
>> 	* tools/Makefile.am: Add the new abidb tool to the set of tools.
>> 	* tools/abidb: The New Tool, ladies and gentlemen!
>
> Frank, don't you have some scripts that run through a distro build the
> abidb git repo. What do you think about shoving those scripts into a 
> directory somewhere in the libabigail tree as examples so that they
> could be adapted for different distros that you haven't done so far.

For what it's worth, usage examples README files for the tools could go somewhere
under tools/ or under docs/.

I guess these could go any time after this initial version of the patch
is merged in.

[...]

>> diff --git a/doc/manuals/abidb.rst b/doc/manuals/abidb.rst
>> new file mode 100644

[...]


>> +Git Repository Schema
>> +=====================
>> +
>> +``abidb`` stores abixml documents in a git repo with the following
>> +naming schema within the distrobranch:
>> +
>> +1. The directory path leading to the shared library file
>> +
>> +2. The SONAME of the shared library file, as a subdirectory name
>> +
>> +3. A file named BUILDID.xml, where ``BUILDID`` is the hexadecimal ELF
>> +   build-id note of the shared library.
>> +
>> +For example:
>> +
> Wasn't there going to be an abixml version number at the very
> beginning of the paths in the git repo so that when the abixml version
> updated we could still use an old set of abixml files with a newer
> libabigail? I know that we will not want to keep too many old versions
> around but, there are still a few things which are not encoded in
> abixlm that will need to be supported and I think that we will need to
> keep incrementing the file format for a while. e.g. exceptions, tls
> version.

As the abixml version is present and can be easily retrieved from the
file with some easy regular expression from the code of abidb, I *think*
we can easily access that information without having to encode it in the
file path.

Besides, so far, the latest version of libabigail is still capable of
reading the oldest version of abixml around.  We try very hard to keep
compatibility in that way.  Of course, older versions of the library
might not understand newer features of newer version of abixml, but in
general, we try to make the abixml reader ignore the constructs it
doesn't know about.  So in theory, it should always be able to read the
file and perform "some" comparison, modulo bugs.

I hope this helps.

[...]

Cheers,

-- 
		Dodji


  reply	other threads:[~2024-03-19 17:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-18 14:44 Dodji Seketeli
2024-03-19 15:29 ` Ben Woodard
2024-03-19 17:06   ` Dodji Seketeli [this message]
2024-03-22 16:40 ` Dodji Seketeli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87jzlyp2vl.fsf@seketeli.org \
    --to=dodji@redhat.com \
    --cc=fche@redhat.com \
    --cc=libabigail@sourceware.org \
    --cc=woodard@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).