[{"id":27003,"web_url":"https://patchwork.libcamera.org/comment/27003/","msgid":"<20230501115556.GA21559@pendragon.ideasonboard.com>","date":"2023-05-01T11:55:56","subject":"Re: [libcamera-devel] [PATCH] meson: Use x.y soname versioning","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nThank you for the patch.\n\nOn Mon, May 01, 2023 at 12:44:52PM +0100, Kieran Bingham via libcamera-devel wrote:\n> Now that we identify ABI breakages,\n\nCan you explain how so ? Ideally I'd like a script in the utils/\ndirectory to handle the ABI checks.\n\n> provide incremental releases which\n> can support backwards compatible linkage across release points that have\n> a compatible ABI.\n> \n> Introduction of this commit does not convey that libcamera now has a\n> stable API, but that patch releases with a common minor number\n> (0.minor.patch) may potentially be used by applications without\n> recompilation and linkage against new releases.\n> \n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>  meson.build | 10 ++++------\n>  1 file changed, 4 insertions(+), 6 deletions(-)\n> \n> diff --git a/meson.build b/meson.build\n> index 6e363a906c69..4afe7d1624a7 100644\n> --- a/meson.build\n> +++ b/meson.build\n> @@ -56,15 +56,13 @@ if libcamera_version != project_version\n>      libcamera_git_version += '-nvm'\n>  endif\n>  \n> -# Until we make ABI compatible releases, the full libcamera version is used as\n> -# the soname. No ABI/API compatibility is guaranteed between releases (x.y.z).\n> -#\n> -# When automatic ABI based detection is used to increment the version, this\n> -# will bump the minor number (x.y).\n> +# The major and minor libcamera version components are used as the soname.\n> +# No ABI/API compatibility is guaranteed between releases (x.y).\n>  #\n>  # When we declare a stable ABI/API we will provide a 1.0 release and the\n>  # soversion at that point will be the 'major' release value (x).\n> -libcamera_soversion = libcamera_version\n> +semver = libcamera_version.split('.')\n> +libcamera_soversion = semver[0] + '.' + semver[1]\n>  \n>  summary({ 'Sources': libcamera_git_version, }, section : 'Versions')\n>","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 8219BC0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  1 May 2023 11:55:47 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 065F2633AC;\n\tMon,  1 May 2023 13:55:47 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D7BB6633A8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  1 May 2023 13:55:45 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(133-32-181-51.west.xps.vectant.ne.jp [133.32.181.51])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C95FF6B8;\n\tMon,  1 May 2023 13:55:43 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1682942147;\n\tbh=eG4oJ3iEs9OXrdIqvnUhAC72uCnAd+Oq8IcuPFJQVwU=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=EhKOjbz3NkYDJng/0IIM2s28lPZ4Y5h9pLRVDb4ohPaDspPnWS2jr2O21j1B2KnnT\n\t55JINyToXwnTMxsU6E6zuhY0HuA41aAs0/prL+SeucYGl/N3yRBICFIstexkqVbW54\n\tm2Oz1B97b7iHqoYwG+BFXREWVCQIEhgjt/AkY6cHN/UKTNF1gMyg4v85GafOj/Ms3a\n\t2zTnCDM54UXeLN9rfq5ofLmJuVw4fGIYem1jW4VLI06YH6Z9VOAqiC+mTS4bsDa3YM\n\taJISa087nVVf5BzJbbfwb+8ZZ01NHbp/q/JC1BqYZGWZnH9C2EcEDNfcvkA5JJ+r4Z\n\tXujPdbCHIFi+g==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1682942144;\n\tbh=eG4oJ3iEs9OXrdIqvnUhAC72uCnAd+Oq8IcuPFJQVwU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Y1LBwNuvEo2RJa8KJbnzdBF6sJm5M13YzgEnBACm+7WWDAndNBahEmtoZW4cGHh0E\n\tLtCKerZUUayZ1ozAsj7is2HJQIlZKBTtSAwMd6SJ4sLXtxxPXaBQD7Dn9dpCp6iKf1\n\tyswgT4b4XHzvg2HICt4vBwZ8dN9KA+Ub164zlJjk="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"Y1LBwNuv\"; dkim-atps=neutral","Date":"Mon, 1 May 2023 14:55:56 +0300","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20230501115556.GA21559@pendragon.ideasonboard.com>","References":"<20230501114452.1224167-1-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20230501114452.1224167-1-kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] meson: Use x.y soname versioning","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","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/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":27004,"web_url":"https://patchwork.libcamera.org/comment/27004/","msgid":"<168294391475.2373830.3622508261403237997@Monstersaurus>","date":"2023-05-01T12:25:14","subject":"Re: [libcamera-devel] [PATCH] meson: Use x.y soname versioning","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart (2023-05-01 12:55:56)\n> Hi Kieran,\n> \n> Thank you for the patch.\n> \n> On Mon, May 01, 2023 at 12:44:52PM +0100, Kieran Bingham via libcamera-devel wrote:\n> > Now that we identify ABI breakages,\n> \n> Can you explain how so ? Ideally I'd like a script in the utils/\n> directory to handle the ABI checks.\n\nI have this snippet in a local Makefile.\n\n\"\"\"\nVERSION:=$(shell ./utils/gen-version.sh)\nabi-dump:\n\techo Version : $(VERSION)\n\tmkdir -p abi/$(VERSION)/\n\tmeson abi/build \\\n\t\t-Ddocumentation=disabled \\\n\t\t-Dcam=disabled \\\n\t\t-Dqcam=disabled \\\n\t\t-Dgstreamer=disabled \\\n\t\t-Dlc-compliance=disabled \\\n\t\t-Dtracing=disabled \\\n\t\t-Dpipelines=\n\tninja -C abi/build\n\tDESTDIR=$(shell pwd)/abi/$(VERSION)/ ninja -C abi/build install\n\tcat libcamera-abi-dump.xml.in | sed 's/VERSION/$(VERSION)/g' > libcamera-abi-dump.xml\n\tabi-compliance-checker \\\n\t\t-lib libcamera \\\n\t\t-v1 $(VERSION) \\\n\t\t-dump libcamera-abi-dump.xml \\\n\t\t-dump-path ./abi/v$(VERSION).abi.dump\n\nRELEASE_ABI=$(shell ./utils/semver get release $(VERSION))\nabi-check:\n\tabi-compliance-checker -l libcamera \\\n\t\t-old abi/v$(RELEASE_ABI).abi.dump \\\n\t\t-new abi/v$(VERSION).abi.dump\n\"\"\"\n\nWhere 'libcamera-abi-dump.xml.in' contains:\n\n\"\"\"\n<version>VERSION</version>\n<headers>abi/VERSION/usr/local/include/</headers>\n<libs>abi/VERSION/usr/local/lib/</libs>\n\"\"\"\n\nThe main issue is storing (or regenerating) previous versions of the ABI\ndump files to compare against.\n\nThe abi-check produces an HTML 'report' which likely needs to be read by\nthe caller, or have something scrape for the detail, so there's still a\nlot of manual steps involved for now.\n\n--\nKieran\n\n\n\n> \n> > provide incremental releases which\n> > can support backwards compatible linkage across release points that have\n> > a compatible ABI.\n> > \n> > Introduction of this commit does not convey that libcamera now has a\n> > stable API, but that patch releases with a common minor number\n> > (0.minor.patch) may potentially be used by applications without\n> > recompilation and linkage against new releases.\n> > \n> > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > ---\n> >  meson.build | 10 ++++------\n> >  1 file changed, 4 insertions(+), 6 deletions(-)\n> > \n> > diff --git a/meson.build b/meson.build\n> > index 6e363a906c69..4afe7d1624a7 100644\n> > --- a/meson.build\n> > +++ b/meson.build\n> > @@ -56,15 +56,13 @@ if libcamera_version != project_version\n> >      libcamera_git_version += '-nvm'\n> >  endif\n> >  \n> > -# Until we make ABI compatible releases, the full libcamera version is used as\n> > -# the soname. No ABI/API compatibility is guaranteed between releases (x.y.z).\n> > -#\n> > -# When automatic ABI based detection is used to increment the version, this\n> > -# will bump the minor number (x.y).\n> > +# The major and minor libcamera version components are used as the soname.\n> > +# No ABI/API compatibility is guaranteed between releases (x.y).\n> >  #\n> >  # When we declare a stable ABI/API we will provide a 1.0 release and the\n> >  # soversion at that point will be the 'major' release value (x).\n> > -libcamera_soversion = libcamera_version\n> > +semver = libcamera_version.split('.')\n> > +libcamera_soversion = semver[0] + '.' + semver[1]\n> >  \n> >  summary({ 'Sources': libcamera_git_version, }, section : 'Versions')\n> >  \n> \n> -- \n> Regards,\n> \n> Laurent Pinchart","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 135D4BDCBD\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  1 May 2023 12:25:21 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8C02D633AC;\n\tMon,  1 May 2023 14:25:20 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 54BC7633A8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  1 May 2023 14:25:18 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(aztw-30-b2-v4wan-166917-cust845.vm26.cable.virginm.net\n\t[82.37.23.78])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D47079A8;\n\tMon,  1 May 2023 14:25:16 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1682943920;\n\tbh=4Rarm4BWHt+6Wnz7l6+eQTgbeYpgL5vjnNPQtF34Yq8=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=UoSFkfxYsc6n9QIE9t9VNz8od+Fg0c5nOZ0oXZH0Offz+gp6vXd7SigAfDdbNMgjK\n\t28KNBKheE6b6xCbJ2WxZSsHwdeKKq7cxycfqWXNoJlkDGKgsH124tayu1G4kS0qyFu\n\tTb0DrfUWiDmSRMKAiPKYv+6isDU7h093WvgM1jYNuUcU1hzIDZhq7jv2nKx0MrKPN6\n\ttQ82/mI45lAnvyOj9+S4Gz+3QzJbinkDLE6rPlLqh25Qazk/qmmI0mzCK0Tcx3lZ5j\n\tn1Mt/RXNV1dwRjIW6gMAFRyBZVGBDkXPkpbu8O09Uf23P3yiaEsTLpQw1YvYonQYqY\n\tg3pKKV6nqNV8w==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1682943917;\n\tbh=4Rarm4BWHt+6Wnz7l6+eQTgbeYpgL5vjnNPQtF34Yq8=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=gyjekQIfpIpPz+QFXz0sZ1sVMBiIFiiMfJk39kvy00ZODVSTaECU09NjuCAbq5uhl\n\t2tsR6wbP/jpff5R/NPfLsKlG2QGBYtJvSq6pZHMkuy9yXwcmNrkibQ076hkgD490X8\n\tFz6xpcjOnRTKqz4Rqg+KHQGOgpItMknOtKeZjK0g="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"gyjekQIf\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20230501115556.GA21559@pendragon.ideasonboard.com>","References":"<20230501114452.1224167-1-kieran.bingham@ideasonboard.com>\n\t<20230501115556.GA21559@pendragon.ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Date":"Mon, 01 May 2023 13:25:14 +0100","Message-ID":"<168294391475.2373830.3622508261403237997@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] meson: Use x.y soname versioning","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","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/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":27005,"web_url":"https://patchwork.libcamera.org/comment/27005/","msgid":"<20230501124606.GA26884@pendragon.ideasonboard.com>","date":"2023-05-01T12:46:06","subject":"Re: [libcamera-devel] [PATCH] meson: Use x.y soname versioning","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Mon, May 01, 2023 at 01:25:14PM +0100, Kieran Bingham wrote:\n> Quoting Laurent Pinchart (2023-05-01 12:55:56)\n> > Hi Kieran,\n> > \n> > Thank you for the patch.\n> > \n> > On Mon, May 01, 2023 at 12:44:52PM +0100, Kieran Bingham via libcamera-devel wrote:\n> > > Now that we identify ABI breakages,\n> > \n> > Can you explain how so ? Ideally I'd like a script in the utils/\n> > directory to handle the ABI checks.\n> \n> I have this snippet in a local Makefile.\n> \n> \"\"\"\n> VERSION:=$(shell ./utils/gen-version.sh)\n> abi-dump:\n> \techo Version : $(VERSION)\n> \tmkdir -p abi/$(VERSION)/\n> \tmeson abi/build \\\n> \t\t-Ddocumentation=disabled \\\n> \t\t-Dcam=disabled \\\n> \t\t-Dqcam=disabled \\\n> \t\t-Dgstreamer=disabled \\\n> \t\t-Dlc-compliance=disabled \\\n> \t\t-Dtracing=disabled \\\n> \t\t-Dpipelines=\n> \tninja -C abi/build\n> \tDESTDIR=$(shell pwd)/abi/$(VERSION)/ ninja -C abi/build install\n> \tcat libcamera-abi-dump.xml.in | sed 's/VERSION/$(VERSION)/g' > libcamera-abi-dump.xml\n> \tabi-compliance-checker \\\n> \t\t-lib libcamera \\\n> \t\t-v1 $(VERSION) \\\n> \t\t-dump libcamera-abi-dump.xml \\\n> \t\t-dump-path ./abi/v$(VERSION).abi.dump\n> \n> RELEASE_ABI=$(shell ./utils/semver get release $(VERSION))\n> abi-check:\n> \tabi-compliance-checker -l libcamera \\\n> \t\t-old abi/v$(RELEASE_ABI).abi.dump \\\n> \t\t-new abi/v$(VERSION).abi.dump\n> \"\"\"\n> \n> Where 'libcamera-abi-dump.xml.in' contains:\n> \n> \"\"\"\n> <version>VERSION</version>\n> <headers>abi/VERSION/usr/local/include/</headers>\n> <libs>abi/VERSION/usr/local/lib/</libs>\n> \"\"\"\n> \n> The main issue is storing (or regenerating) previous versions of the ABI\n> dump files to compare against.\n> \n> The abi-check produces an HTML 'report' which likely needs to be read by\n> the caller, or have something scrape for the detail, so there's still a\n> lot of manual steps involved for now.\n\nI'm not concerned about the storage of ABI dump files at the moment.\nWhat I'd like to see is the method to test for ABI breakage to be\ndocumented in the source tree, scripted, and automated. The current\nmeson.build states\n\n# When automatic ABI based detection is used to increment the version, this\n# will bump the minor number (x.y).\n\nI'm fine having a semi-manual process to start with, if it is documented\nand can be replicated.\n\n> > > provide incremental releases which\n> > > can support backwards compatible linkage across release points that have\n> > > a compatible ABI.\n> > > \n> > > Introduction of this commit does not convey that libcamera now has a\n> > > stable API, but that patch releases with a common minor number\n> > > (0.minor.patch) may potentially be used by applications without\n> > > recompilation and linkage against new releases.\n> > > \n> > > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > > ---\n> > >  meson.build | 10 ++++------\n> > >  1 file changed, 4 insertions(+), 6 deletions(-)\n> > > \n> > > diff --git a/meson.build b/meson.build\n> > > index 6e363a906c69..4afe7d1624a7 100644\n> > > --- a/meson.build\n> > > +++ b/meson.build\n> > > @@ -56,15 +56,13 @@ if libcamera_version != project_version\n> > >      libcamera_git_version += '-nvm'\n> > >  endif\n> > >  \n> > > -# Until we make ABI compatible releases, the full libcamera version is used as\n> > > -# the soname. No ABI/API compatibility is guaranteed between releases (x.y.z).\n> > > -#\n> > > -# When automatic ABI based detection is used to increment the version, this\n> > > -# will bump the minor number (x.y).\n> > > +# The major and minor libcamera version components are used as the soname.\n> > > +# No ABI/API compatibility is guaranteed between releases (x.y).\n> > >  #\n> > >  # When we declare a stable ABI/API we will provide a 1.0 release and the\n> > >  # soversion at that point will be the 'major' release value (x).\n> > > -libcamera_soversion = libcamera_version\n> > > +semver = libcamera_version.split('.')\n> > > +libcamera_soversion = semver[0] + '.' + semver[1]\n> > >  \n> > >  summary({ 'Sources': libcamera_git_version, }, section : 'Versions')\n> > >","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 0E7F8C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  1 May 2023 12:45:59 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 719E5633AC;\n\tMon,  1 May 2023 14:45:58 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EC571633A8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  1 May 2023 14:45:56 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(133-32-181-51.west.xps.vectant.ne.jp [133.32.181.51])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C30B59A8;\n\tMon,  1 May 2023 14:45:54 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1682945158;\n\tbh=n6Z/CLqoqilKwTHqtoDQ3zVACPQBE1oospWBtD8HzLE=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=q28TvMuY9PkSsyKtwjmwXk3LtMqTB1lnTueSFpWBQ6w4BSDiTWxhlKaLOgu/pRxc1\n\tomBM893a3EoXtD4NdVAG2MLL/RAsgzD/L5ZSO80UUTj0x8u3T49hnz+knZGljOMmPP\n\t8hHn3rWqlekNGhkL4Zj4D9NleWWhTZYWLE7lazGZzYCScfOsDD8/xUE9O7cQbMQKPH\n\tjqbwe22vWwljYZDh7zL4tbbt9Q1oFm8o5HNsHii1OAO7Wo5e3zqz9csdllRfl55I7x\n\tDlZ0tEq5lZqLuG3VC7GAnV4PZDijzp2CLT01zhG16ED+TzrofSP44K+duK1BPoKYZN\n\trm9xbKoMWV/Zg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1682945155;\n\tbh=n6Z/CLqoqilKwTHqtoDQ3zVACPQBE1oospWBtD8HzLE=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=ffkvhPYy5yYDnJwc3G3LwGSKkac96imlVfzrMoURDFr/k2sJctsMz4g6Z5gUBiO1n\n\tMSIzoNlo327xu1JC+QL61JBHmJ2rAacAGWEpRSp6mkF3cpLLdRDrQF8yONE+lniGCM\n\t6WV4NtrqaZu0oJULSruBYUoAiX91cgBp2OG9Rizs="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"ffkvhPYy\"; dkim-atps=neutral","Date":"Mon, 1 May 2023 15:46:06 +0300","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20230501124606.GA26884@pendragon.ideasonboard.com>","References":"<20230501114452.1224167-1-kieran.bingham@ideasonboard.com>\n\t<20230501115556.GA21559@pendragon.ideasonboard.com>\n\t<168294391475.2373830.3622508261403237997@Monstersaurus>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<168294391475.2373830.3622508261403237997@Monstersaurus>","Subject":"Re: [libcamera-devel] [PATCH] meson: Use x.y soname versioning","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","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/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]