From patchwork Thu Sep 29 14:36:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kieran Bingham X-Patchwork-Id: 17464 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 0FA7AC0DA4 for ; Thu, 29 Sep 2022 14:36:39 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 5380262390; Thu, 29 Sep 2022 16:36:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1664462197; bh=qvmpLW5i6TEkdpc+k0HZhqef5xpzfOM7lPfr/O0GRw0=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=gGir8wgP/x7KO6FeNarGlo70rJKyWwlH1QBC/iQg8/+gdHSfl3h0QrLyt5Pj9uQIC Ltzjl3LEmeyq5TNTNBbCjfImA0L7u1lQhUkxCu5Z/+pOx5/YaNyzNJmzLsjNw34/kp 2fsI1hpVh4LzqgMzg2eofTFFmACO9AXsHrQxb9jZHjkrA621faw6JwrnIf5D3B1NRs pBQ0qyVD0F8FZ3vaWu8I+ll8/irQwUlbUPe7C1qS5EQXvFdwGM2YUYYfgLw1sNoXkT RVfgmoQjvKuQKCgIUwvY17BfffWrPQEbqn7T1+R/TkVoomFG4NcH0QVohJqsJ8vBZD MTi+o2oezHoKQ== Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id CCF18622A6 for ; Thu, 29 Sep 2022 16:36:34 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="ACwr+ROZ"; dkim-atps=neutral Received: from Monstersaurus.local (cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 33E48505; Thu, 29 Sep 2022 16:36:34 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1664462194; bh=qvmpLW5i6TEkdpc+k0HZhqef5xpzfOM7lPfr/O0GRw0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ACwr+ROZmzUyD7knpSqUx9nbPOCVqMH6r4x2p1+/IZTdpAcZfU65Fk5nAUaM8pnMP N8EN9OHuxMcyGOtBUxK+ADDIxYxLn51L/FgWdaZQenRS4X8T/WzM2RDw1eJTITH6vW 99csqS96AwMksu7vYfuVTB6288qJ1wIULu7YoTP8= To: libcamera devel Date: Thu, 29 Sep 2022 15:36:23 +0100 Message-Id: <20220929143626.3100668-2-kieran.bingham@ideasonboard.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220929143626.3100668-1-kieran.bingham@ideasonboard.com> References: <20220929143626.3100668-1-kieran.bingham@ideasonboard.com> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 1/4] meson: Shared Object version handling 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" The libcamera project is not yet ready to declare ABI nor API stability, but it will benefit the community to be able to provide more regular release cycles to determine 'versioned' points of history. Ideally, these releases will be made at any ABI breakage, but can be made at arbitary time based points along the way. To support releases which may not be ABI stable, declare the soversion of both the libcamera and libcamera-base library to be dependant upon both the major and minor component of the project version. As part of this, introduce a new 'Versions' summary section to highlight the different version components that may become apparent within any given build. Signed-off-by: Kieran Bingham Reviewed-by: Jacopo Mondi --- meson.build | 15 +++++++++++++++ src/libcamera/base/meson.build | 1 + src/libcamera/meson.build | 1 + 3 files changed, 17 insertions(+) diff --git a/meson.build b/meson.build index 72919102ad55..9bbfd0e9c784 100644 --- a/meson.build +++ b/meson.build @@ -26,6 +26,21 @@ endif libcamera_version = libcamera_git_version.split('+')[0] +# Enforce Major and Minor as part of the soversion. Until we make a first major +# release, and remain on version 0.x each release may denote ABI instabilty. +# We can continue to consider that a patch level increment should be +# compatible. +project_version = meson.project_version().split('.') +soversion = project_version[0] + '.' + project_version[1] + +summary({ + 'Project': meson.project_version(), + 'Sources': libcamera_git_version, + 'libcamera': libcamera_version, + 'Shared Object': soversion, + }, + section : 'Versions') + # This script gererates the .tarball-version file on a 'meson dist' command. meson.add_dist_script('utils/run-dist.sh') diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build index 3b9d74efe935..51719f112d26 100644 --- a/src/libcamera/base/meson.build +++ b/src/libcamera/base/meson.build @@ -51,6 +51,7 @@ libcamera_base_args = [ '-DLIBCAMERA_BASE_PRIVATE' ] libcamera_base_lib = shared_library('libcamera-base', [libcamera_base_sources, libcamera_base_headers], version : libcamera_version, + soversion : soversion, name_prefix : '', install : true, cpp_args : libcamera_base_args, diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build index 63b47b177fd2..3aa7f32067f8 100644 --- a/src/libcamera/meson.build +++ b/src/libcamera/meson.build @@ -160,6 +160,7 @@ libcamera_deps = [ libcamera = shared_library('libcamera', libcamera_sources, version : libcamera_version, + soversion : soversion, name_prefix : '', install : true, include_directories : includes,