From patchwork Tue Jul 4 14:24:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 18777 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 4115BBDC71 for ; Tue, 4 Jul 2023 14:24:42 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 6F5CE628BD; Tue, 4 Jul 2023 16:24:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1688480681; bh=nd3TTZ83cfWuf+Z/3s51sKuRsiztnBk2M24GD42WMjc=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=LQniaoRkkZUrm35dPoAgrT+qPT6zY/973JAm2Bde/VLEaolXXXi4jKKMcPNvGQ0Rp lQ+J68wZ4RqUqsxjaQV5wEa8jx38q+G/AZDrfTBIZ81BJ+7FuhKf3NM6sHE+E2YkQG 4FNzTeokB84/vkU7N3Mgw6ppXf5/tKzNemAhPbDw9NVY4FwaaGiyMNpuhxAEj43hBv yGTsdOtIlF4i+gfMMi25cTEpWQX3c+jiDuCiYFJIEUXWlySH0KUpKH8lSN3v2dZ9gT qxBff2hnOW8cEhlDZ+aP7BVilQnPieEsvaWaG6isoWiETUx1vIjer/cgGI6cTacYPb xHq64Zpl1GoQg== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 30E5E60384 for ; Tue, 4 Jul 2023 16:24:39 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="KDKPtqd1"; dkim-atps=neutral Received: from Monstersaurus.local (aztw-30-b2-v4wan-166917-cust845.vm26.cable.virginm.net [82.37.23.78]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id C55706DF; Tue, 4 Jul 2023 16:23:54 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1688480634; bh=nd3TTZ83cfWuf+Z/3s51sKuRsiztnBk2M24GD42WMjc=; h=From:To:Cc:Subject:Date:From; b=KDKPtqd1KQblyPXewXYfWk/6Lawa7+nJuOOtbcurREbfNgtwiGkM7Eax7pkKKbA6m wkqecXOj9R2/oprW0mmlvZqrYbZBl8h4vMXxjC6DqplQadnErAA/jX/magoOhXUvaY VwubJtzBvEtYr89mbU4njXHiUXO1ico0ijV4TV/Q= To: libcamera devel Date: Tue, 4 Jul 2023 15:24:32 +0100 Message-Id: <20230704142435.3490823-1-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v3 0/3] Use x.y soname versioning X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Kieran Bingham via libcamera-devel From: Kieran Bingham Reply-To: Kieran Bingham Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Users of libcamera will benefit from not having to recompile applications and frameworks against every new release point of libcamera. While we don't yet mandate a stable ABI we are currently incrementing the SONAME for 'every release'. With automatic ABI breakage detection we can improve this situation so that we only increment the SONAME when there is an ABI breakage. This will extend the compatibilty of applications for longer and reduce the burden on application writers and packagers, and by incrementing the minor number on any breakage point we can make clear human readable indicators of what versions are compatible. We retain the leading 'major version 0' to indicate we are not yet feature complete. The abi-compat script currently produces an HTML file, but can be adapted later to output XML and be processed by any additional automated tooling that might be suitable to report directly on patches and branches when ABI breakages occur. v3 introduces a key fix to the libcamera-base header installation to prevent abi-compliance-check trying to parse private headers. This itself makes abi-compliance-check believe there is a large API change as many headers are no longer installed (though they were never available for applications to use before anyway). The abi-compat.sh script has been fixed up with all review comments and fixed to run on platforms with different libdir defaults. Kieran Bingham (3): include: base: Do not install private headers utils: ABI Compatibility checker meson: Use x.y soname versioning include/libcamera/base/meson.build | 28 ++-- meson.build | 10 +- utils/abi-compat.sh | 212 +++++++++++++++++++++++++++++ 3 files changed, 234 insertions(+), 16 deletions(-) create mode 100755 utils/abi-compat.sh