[{"id":25241,"web_url":"https://patchwork.libcamera.org/comment/25241/","msgid":"<mailman.18.1664809244.28986.libcamera-devel@lists.libcamera.org>","date":"2022-10-03T15:00:39","subject":"Re: [libcamera-devel] [PATCH v2 2/5] meson: Shared Object version\n\thandling","submitter":{"id":135,"url":"https://patchwork.libcamera.org/api/people/135/","name":"Michael Riesch","email":"michael.riesch@wolfvision.net"},"content":"Hi Kieran,\n\nOn 10/1/22 01:28, Kieran Bingham via libcamera-devel wrote:\n> The libcamera project is not yet ready to declare ABI nor API stability,\n> but it will benefit the community to be able to provide more regular\n> release cycles to determine 'versioned' points of history.\n> \n> Ideally, these releases will be made at any ABI breakage, but can be\n> made at arbitary time based points along the way.\n> \n> To support releases which may not be ABI stable, declare the soversion\n> of both the libcamera and libcamera-base library to be dependant upon\n> both the major and minor component of the project version.\n> \n> As part of this, introduce a new 'Versions' summary section to highlight\n> the different version components that may become apparent within any\n> given build.\n> \n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>  Documentation/Doxyfile.in      |  4 +++-\n>  meson.build                    | 15 +++++++++++++++\n>  src/libcamera/base/meson.build |  1 +\n>  src/libcamera/meson.build      |  1 +\n>  4 files changed, 20 insertions(+), 1 deletion(-)\n> \n> diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in\n> index 88dfcddaebf6..761807005294 100644\n> --- a/Documentation/Doxyfile.in\n> +++ b/Documentation/Doxyfile.in\n> @@ -46,7 +46,9 @@ EXCLUDE                = @TOP_SRCDIR@/include/libcamera/base/span.h \\\n>                           @TOP_BUILDDIR@/include/libcamera/internal/tracepoints.h \\\n>                           @TOP_BUILDDIR@/src/libcamera/proxy/\n>  \n> -EXCLUDE_PATTERNS       = @TOP_BUILDDIR@/include/libcamera/ipa/*_serializer.h \\\n> +EXCLUDE_PATTERNS       = @TOP_BUILDDIR@/src/libcamera/libcamera.so* \\\n> +                         @TOP_BUILDDIR@/src/libcamera/base/libcamera-base.so* \\\n> +                         @TOP_BUILDDIR@/include/libcamera/ipa/*_serializer.h \\\n>                           @TOP_BUILDDIR@/include/libcamera/ipa/*_proxy.h \\\n>                           @TOP_BUILDDIR@/include/libcamera/ipa/ipu3_*.h \\\n>                           @TOP_BUILDDIR@/include/libcamera/ipa/raspberrypi_*.h \\\n> diff --git a/meson.build b/meson.build\n> index 2c6173b4f97e..2a7b90133bbd 100644\n> --- a/meson.build\n> +++ b/meson.build\n> @@ -26,6 +26,21 @@ endif\n>  \n>  libcamera_version = libcamera_git_version.split('+')[0]\n>  \n> +# Enforce Major and Minor as part of the soversion. Until we make a first major\n> +# release and remain on version 0.x, each release may denote ABI instabilty.\n\nTypo -> instability.\n\nLooking forward to this, thanks a lot!\n\nBest regards,\nMichael\n\n> +# We can continue to consider that a patch level increment should be\n> +# compatible.\n> +project_version = meson.project_version().split('.')\n> +libcamera_soversion = project_version[0] + '.' + project_version[1]\n> +\n> +summary({\n> +            'Project': meson.project_version(),\n> +            'Sources': libcamera_git_version,\n> +            'libcamera': libcamera_version,\n> +            'soname': libcamera_soversion,\n> +        },\n> +        section : 'Versions')\n> +\n>  # This script generates the .tarball-version file on a 'meson dist' command.\n>  meson.add_dist_script('utils/run-dist.sh')\n>  \n> diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build\n> index 3b9d74efe935..65933905a5df 100644\n> --- a/src/libcamera/base/meson.build\n> +++ b/src/libcamera/base/meson.build\n> @@ -51,6 +51,7 @@ libcamera_base_args = [ '-DLIBCAMERA_BASE_PRIVATE' ]\n>  libcamera_base_lib = shared_library('libcamera-base',\n>                                      [libcamera_base_sources, libcamera_base_headers],\n>                                      version : libcamera_version,\n> +                                    soversion : libcamera_soversion,\n>                                      name_prefix : '',\n>                                      install : true,\n>                                      cpp_args : libcamera_base_args,\n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index 63b47b177fd2..f905c15ece85 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -160,6 +160,7 @@ libcamera_deps = [\n>  libcamera = shared_library('libcamera',\n>                             libcamera_sources,\n>                             version : libcamera_version,\n> +                           soversion : libcamera_soversion,\n>                             name_prefix : '',\n>                             install : true,\n>                             include_directories : includes,","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 0533CC0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  3 Oct 2022 15:00:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 38D8B601C5;\n\tMon,  3 Oct 2022 17:00:45 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1664809245;\n\tbh=TR5e/1Zxgx6c65ScDuX2UbH09gaFWxOGmb47WMpG858=;\n\th=Date:To:References:In-Reply-To:List-Id:List-Post:From:\n\tList-Subscribe:List-Unsubscribe:List-Archive:Reply-To:List-Help:\n\tSubject:From;\n\tb=U7pfLctJEB//KLu+Fw1FD0LBCzGQ4yrX3aJ0LiOv6Y/we9MO2K/YsKH7/CuQtDm9Z\n\tra3kFToMOleEYvbWju5mPPMBi7Ygp8QgXWnDtLuET+0k4fjM9+CIGjiOyzHKB7Lk2d\n\tX6p63TUgpiTqfpRApBWJqJ6clnr9czb9JFfcmvsf/JJDimkGkLo5pStxDSaK8t83HR\n\t6iUNrab7dO5tpoodZeauepZiLsYNysXUHMp4VRX5XRge5BmlZF3asmkv4YjAEPKFXV\n\tzQKdnyMnvdN+5h7IjJ5LliyWuhLlaFuDC35a1/HwMXPliStJWdvmshAtSbpihsDoEJ\n\tS9/UBbng4Z5LA==","Date":"Mon, 3 Oct 2022 17:00:39 +0200","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera devel <libcamera-devel@lists.libcamera.org>","References":"<20220930232826.82753-1-kieran.bingham@ideasonboard.com>\n\t<20220930232826.82753-3-kieran.bingham@ideasonboard.com>","In-Reply-To":"<20220930232826.82753-3-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Message-ID":"<mailman.18.1664809244.28986.libcamera-devel@lists.libcamera.org>","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","From":"Michael Riesch via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Precedence":"list","X-Mailman-Version":"2.1.29","X-BeenThere":"libcamera-devel@lists.libcamera.org","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","Reply-To":"Michael Riesch <michael.riesch@wolfvision.net>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","Subject":"Re: [libcamera-devel] [PATCH v2 2/5] meson: Shared Object version\n\thandling","Content-Type":"message/rfc822","Content-Disposition":"inline","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]