From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id F13483858427 for ; Tue, 19 Mar 2024 17:07:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F13483858427 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org F13483858427 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710868031; cv=none; b=Z1q9XjtoOL2RZrN8UkP+TFk/IkPg2ahWbZmiWoFtoLqMIkXs90vW0ZDMN73GyzTJ19l0NtEmH/cGNL7NNqLtQQZTc63dWuoVc0Qnb+6tB/mmyj1fTEk2I4QxFZ4poDR6tBtYPtPA16ZMr9TqSqIp5NUCKq91crZECt2IdgC/6wI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710868031; c=relaxed/simple; bh=+Z4T3eCKZ32Tkq7KR5li2Yj8VX1Thy29YFKHqRXa3vg=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Syysp6nca9u2y8cgglD3p96rxdoRe8gobpcLcxAn32AYZGDp0rcZVf45bpvN28wawRRseg4V68Lq3fqDDyDzf4mkAqWm7D2VDOcrkEezTP6eYLQ+VscSwBuduwmbXcReS3QkWz//EYO5coZDC3U6MHuNg1bVRdtaXp5NAtLAY18= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1710868020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lcePKXuud0zQopXJNGsMkhdKMkaMzPOXmWiL1HvG3JU=; b=ReUyDs7EIhyb+xgeUM+ua4E9PlOOvlPA+B2g1f1NnsoZ6VYIV5ajbxw3a6AuNgfq9bvZx9 wa7c+ook7XAmzdq9nRJ92wgfvpytSXR7NkBHJ+HS015k8BvntBn3EOKTVZnpMP8hhKHe7L wixACDCbeAQw5lFkGaojiHTZe7AYfUY= Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-691-xAfoPp4sMRiJnKplckhmbA-1; Tue, 19 Mar 2024 13:06:58 -0400 X-MC-Unique: xAfoPp4sMRiJnKplckhmbA-1 Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-430c139c096so37873281cf.3 for ; Tue, 19 Mar 2024 10:06:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710868017; x=1711472817; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:organization:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Q5rgMbNx0ACrM7Po0bLYGPi93lYqySjYKXqti1oL5jg=; b=nHcClEA2OYvAMOLkR5Y7OmqQcWXFzL0Z5pjUMGhgZrKL8PhVWhcxENxA7RUR971GrA uz83CQhJLknCUft+FO5Bp9YK1y4O/xFOBs1mp/gQcrmGvmxDXBUuiZZCPuYhsYwSTREn q6gC5Vt96ZTz8EB+4HragN9fszDvX2VzP/+U3aNAnF+OG1lRp2UZOfNUD1AKPrbGVcSD BThxzdFEFz4nS9AORqSdbRF40L0/bRSnjJ9lnLZppPBaH0cGPB9tCOHeP46KllE+3r5s vZA77bTD4J0Nn7mpB0Sh8Ix2H5fV+NphNigdZbFZz23ASNSdYm77aMWBC6jHohqTW96N Ipww== X-Forwarded-Encrypted: i=1; AJvYcCW1vfh7slxGPA1yqTbSiOlCGQDeQ3tWDWCKn9dIGlaWDvWzLSJVZVMK998lBLTN08s1As3KsSUeCuu+h187+5Q4GNHho3wYdWsM X-Gm-Message-State: AOJu0YwQDWtK0n2y6eVBZXRPute8vsZdObDQj0qg4UCkLwy+Z/60zqy5 PSBUJDWvPM4VkRpMXOC55HDkFytx0e72kBL60vCz2REIG/XQxTIG6JCUgoooimwrrFaep9SOizl xsSAbhHcFH4p0NJlNFkcPrrWEuM4Yk44TyzSotD4xTFPFrKHKFxVEtAo/HQ== X-Received: by 2002:a0c:ea8a:0:b0:690:9629:da5c with SMTP id d10-20020a0cea8a000000b006909629da5cmr16597754qvp.24.1710868017602; Tue, 19 Mar 2024 10:06:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFlR62FphjfxOXNLy756JYSq+1d67AhphjQniPgUDDv8xIKMk7YHRVuAGvBxemZaUP/SSBAhg== X-Received: by 2002:a0c:ea8a:0:b0:690:9629:da5c with SMTP id d10-20020a0cea8a000000b006909629da5cmr16597733qvp.24.1710868017218; Tue, 19 Mar 2024 10:06:57 -0700 (PDT) Received: from localhost (88-120-130-27.subs.proxad.net. [88.120.130.27]) by smtp.gmail.com with ESMTPSA id gv4-20020a056214262400b0068fb6fb217csm6730814qvb.122.2024.03.19.10.06.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Mar 2024 10:06:56 -0700 (PDT) Received: by localhost (Postfix, from userid 1000) id E79ACC1B75D2; Tue, 19 Mar 2024 18:06:54 +0100 (CET) From: Dodji Seketeli To: Ben Woodard Cc: Dodji Seketeli , "Frank Ch. Eigler" , libabigail@sourceware.org Subject: Re: [PATCH, request for review] abidb: Introduce a tool to manage the ABI of a Linux distribution Organization: Me, myself and I References: <87le6f1tx6.fsf@redhat.com> X-Operating-System: AlmaLinux 9.3 X-URL: http://www.seketeli.net/~dodji Date: Tue, 19 Mar 2024 18:06:54 +0100 In-Reply-To: (Ben Woodard's message of "Tue, 19 Mar 2024 08:29:35 -0700") Message-ID: <87jzlyp2vl.fsf@seketeli.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,RCVD_IN_SORBS_WEB,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hello, Ben Woodard a =C3=A9crit: [...] >> 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. >> >> =09* configure.ac: Condition building abidb on the presence of python >> =09and the required modules. >> =09* doc/manuals/Makefile.am: Add the abidb.rst documentation to >> =09source distribution. Distribute the abidb.1 manpage file as well. >> =09* doc/manuals/abidb.rst: New documentation file. >> =09* doc/manuals/conf.py: Configure the generation of the abidb.1 >> =09manage from the abidb.rst file above. >> =09* doc/manuals/libabigail-tools.rst: Add a reference to the new >> =09abidb tool. >> =09* tests/Makefile.am: Register runabidb1.sh and runabidb2.sh as >> =09tests for abidb. Register runabidb1.sh.in and runabidb2.sh.in as >> =09input files for autoconf generated runabidb1.sh and runabidb2.sh. >> =09* tests/data/Makefile.am: Add abidb2client.c, abidb2so.c and >> =09abidb2soBAD.c to source distribution. >> =09* tests/data/abidb2client.c: New source file for test input binaries. >> =09* tests/data/abidb2so.c: Likewise. >> =09* tests/data/abidb2soBAD.c: Likewise. >> =09* tests/runtestabidb1.sh.in: New test script input for autoconf gener= ation. >> =09* tests/runtestabidb2.sh.in: Likewise. >> =09* tools/Makefile.am: Add the new abidb tool to the set of tools. >> =09* 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=20 > 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 som= ewhere 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 >> +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +``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, --=20 =09=09Dodji