[{"id":27020,"web_url":"https://patchwork.libcamera.org/comment/27020/","msgid":"<baa9dd73-b8c3-4bc0-24c8-16fcf54af0e2@redhat.com>","date":"2023-05-03T10:08:09","subject":"Re: [libcamera-devel] [PATCH] v4l2: Add soversion to the V4L2 layer","submitter":{"id":95,"url":"https://patchwork.libcamera.org/api/people/95/","name":"Javier Martinez Canillas","email":"javierm@redhat.com"},"content":"Hello Kieran,\n\nOn 5/3/23 12:01, Kieran Bingham wrote:\n> There may be parallel installations of libcamera with separate\n> instances of the v4l2-adaptation layer shared object.\n> \n> This shared library can be linked against a specific libcamera\n> soversion so provide a soversioned V4L2 compatibility layer.\n> \n> Suggested-by: Javier Martinez Canillas <javierm@redhat.com>\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>  src/v4l2/meson.build | 1 +\n>  1 file changed, 1 insertion(+)\n> \n> diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build\n> index f132103cb503..48f201c5c3a0 100644\n> --- a/src/v4l2/meson.build\n> +++ b/src/v4l2/meson.build\n> @@ -30,6 +30,7 @@ v4l2_compat_cpp_args = [\n>  v4l2_compat = shared_library('v4l2-compat',\n>                               v4l2_compat_sources,\n>                               name_prefix : '',\n> +                             soversion : libcamera_soversion,\n>                               install : true,\n>                               dependencies : [libcamera_private, libdl],\n>                               cpp_args : v4l2_compat_cpp_args)\n\nThanks a lot for doing this. I've just tested and it works correctly:\n\nReviewed-by: Javier Martinez Canillas <javierm@redhat.com>","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 DD94BBD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  3 May 2023 12:16:07 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4E76C633B4;\n\tWed,  3 May 2023 14:16:07 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DE41661EAF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  3 May 2023 12:08:14 +0200 (CEST)","from mail-wm1-f72.google.com (mail-wm1-f72.google.com\n\t[209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-461-O0q66EtYN0asUq5sszYc_A-1; Wed, 03 May 2023 06:08:12 -0400","by mail-wm1-f72.google.com with SMTP id\n\t5b1f17b1804b1-3f250e9e090so15791475e9.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 03 May 2023 03:08:12 -0700 (PDT)","from [192.168.1.130] (205.pool92-176-231.dynamic.orange.es.\n\t[92.176.231.205]) by smtp.gmail.com with ESMTPSA id\n\ts7-20020a1cf207000000b003e91b9a92c9sm1412667wmc.24.2023.05.03.03.08.10\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tWed, 03 May 2023 03:08:10 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1683116167;\n\tbh=QC8WM1/B3Ab1vOiHnGJlgaPhjpkE/azPmGt4ah2M0D8=;\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:\n\tFrom;\n\tb=fbWY304WkARlTj2W5t0h1KCAAdsTzblO2LW7MKCDFmMnuoP5Cm6TN+AD3aN6HFlO0\n\t8jud+VcNJtDXHZadNswLVacfLFanelO3x9fklK0WiOnon8eqA0qluZOM82/QUYy/Tc\n\tt3YokMUPgpF4PiMASmt5wpZ/uW8dDvi+WpsEAt1zP176qz1CfYjGmBTwhiECB0NHL1\n\tuaIAHxf+kt3e76578xeEgejL8jCMW2IqnhwjBRXoXrb5hC3RzXfpT0Ngd3XDIgRblW\n\tnrDcFqfLsA5HQl5tB1RKUJUe+UnFFFl59lrWQirExySkp8yYPt9L5Rd3OpUITnlPa3\n\tHGA31zG58Gbew==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1683108493;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=MYXTM3eIUZEDbEA/CiBntdk47Y6Go3G51cOQdp8BS94=;\n\tb=TCS7rKsEm9lUEdazMpqK76d10pWnRmnlt+g3cPKM+xYigpeM2zjNCbDKTERFk+7Vvm3T62\n\tI25X43hbf6va0d/ucGdLVXXp0hnylGnljK3eszp7NvBTw/i0Gp0dI/NHxweeLJjO8P8wn9\n\t0hEbYX10wKbl/A3aDV4uLeAxiutRDyo="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=redhat.com\n\theader.i=@redhat.com header.b=\"TCS7rKsE\"; \n\tdkim-atps=neutral","X-MC-Unique":"O0q66EtYN0asUq5sszYc_A-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20221208; t=1683108491; x=1685700491;\n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:to:subject:user-agent:mime-version:date:message-id\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=MYXTM3eIUZEDbEA/CiBntdk47Y6Go3G51cOQdp8BS94=;\n\tb=NYq296X7u74FAJZDZsVBurjiomJQvRHTVYmpKi6gbwfpPRc7KJiH8PzPGTkQicORjL\n\tX+Xn9EUWwWw4bb/tBpphAhQk2LWm/43eep8zvDPwjLMOqTqG68HRdPcTD74k8rSw1BW4\n\tFdBs8U2M5F7J5lf+ujBy90JLffEcuuB4QiBwtNYW3R74jNL+RN2WGwF806gjudz9YYWX\n\tTYyREviDWKvYRsvkPo/RSy1hsR1dE+gEuSU6bHNTxAQkFk7sxjkCA/dEghgZwg03CGcc\n\t3V22n8fvcaI6qdS12w3JMkwdXaZRjBBgq69BkJoFWpAlBxWmtRNZnO9xPRMMt/kfhx9F\n\tWXgA==","X-Gm-Message-State":"AC+VfDy15whKC4owAFooTfbY/yTz3Yb6YMC46SCsSKmE8kZM/34lYx8k\n\t6m4YezweGogyoB34z0DyZ+ep7WklDDbit+ipB5stmGErXQpjq99pvSbstigZwwySylqw9e1SD9q\n\tetNca133A0nLek16WCzwRikKbh5CgUJSAXW4VHPsicQ==","X-Received":["by 2002:a1c:f717:0:b0:3f1:7972:429d with SMTP id\n\tv23-20020a1cf717000000b003f17972429dmr13694159wmh.18.1683108491216; \n\tWed, 03 May 2023 03:08:11 -0700 (PDT)","by 2002:a1c:f717:0:b0:3f1:7972:429d with SMTP id\n\tv23-20020a1cf717000000b003f17972429dmr13694142wmh.18.1683108490872; \n\tWed, 03 May 2023 03:08:10 -0700 (PDT)"],"X-Google-Smtp-Source":"ACHHUZ4qK2p+D4uZFOGjeNIifEwCEzqocMl/oqOJFkLuCUWhyBo/0yWGHdxoo299TPJ/8HSrrh4JMQ==","Message-ID":"<baa9dd73-b8c3-4bc0-24c8-16fcf54af0e2@redhat.com>","Date":"Wed, 3 May 2023 12:08:09 +0200","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101\n\tThunderbird/102.10.0","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tlibcamera devel <libcamera-devel@lists.libcamera.org>","References":"<20230503100140.1570024-1-kieran.bingham@ideasonboard.com>","In-Reply-To":"<20230503100140.1570024-1-kieran.bingham@ideasonboard.com>","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Language":"en-US","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-Mailman-Approved-At":"Wed, 03 May 2023 14:16:06 +0200","Subject":"Re: [libcamera-devel] [PATCH] v4l2: Add soversion to the V4L2 layer","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":"Javier Martinez Canillas via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Javier Martinez Canillas <javierm@redhat.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":27023,"web_url":"https://patchwork.libcamera.org/comment/27023/","msgid":"<20230503123737.GA32586@pendragon.ideasonboard.com>","date":"2023-05-03T12:37:37","subject":"Re: [libcamera-devel] [PATCH] v4l2: Add soversion to the V4L2 layer","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 Wed, May 03, 2023 at 11:01:40AM +0100, Kieran Bingham via libcamera-devel wrote:\n> There may be parallel installations of libcamera with separate\n> instances of the v4l2-adaptation layer shared object.\n\nFor libcamera, absolutely, but for v4l2-compat.so, the use cases seem\nless clear to me.\n\nAs discussed on IRC, versioning a library's SONAME is meant for two\npurposes as far as I understand: ABI stability for applications linking\nto the library, and installing multiple versions of the library side by\nside. The first purpose doesn't apply to v4l2-compat.so as nothing will\nlink to it.\n\nThe second purpose could be applicable, but it seems that the use cases\nwould be a bit far-fetched. To support this properly, you would want to\nalso support installing multiple versions of libcamerify side by side.\n\nThis discussion and patch stem from a Fedora packaging rule that forbids\nunversioned shared object libraries in $libdir/ for non -devel packages.\nMaybe the patch you sent to move v4l2-compat.so to $libdir/libcamera\ncould be enough to satisfy the packaging rules, without needing to\nversion v4l2-compat.so ? Btw, Javier mentioned on IRC it should actually\ngo to $libexecdir/libcamera, but let's discuss that in the review of\nyour other patch.\n\n> This shared library can be linked against a specific libcamera\n> soversion so provide a soversioned V4L2 compatibility layer.\n> \n> Suggested-by: Javier Martinez Canillas <javierm@redhat.com>\n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> ---\n>  src/v4l2/meson.build | 1 +\n>  1 file changed, 1 insertion(+)\n> \n> diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build\n> index f132103cb503..48f201c5c3a0 100644\n> --- a/src/v4l2/meson.build\n> +++ b/src/v4l2/meson.build\n> @@ -30,6 +30,7 @@ v4l2_compat_cpp_args = [\n>  v4l2_compat = shared_library('v4l2-compat',\n>                               v4l2_compat_sources,\n>                               name_prefix : '',\n> +                             soversion : libcamera_soversion,\n>                               install : true,\n>                               dependencies : [libcamera_private, libdl],\n>                               cpp_args : v4l2_compat_cpp_args)","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 12954BD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  3 May 2023 12:37:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 89A9A633B5;\n\tWed,  3 May 2023 14:37:26 +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 0345D627DE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  3 May 2023 14:37:26 +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 9C696BC;\n\tWed,  3 May 2023 14:37:22 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1683117446;\n\tbh=Su/MHnVkaVi4fFnqBiXvfeAqUXop3rkjKt66fSMiNT8=;\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=u0RdAzRSxe3TW34sDoBuy39/G4+9Rcvjgw69kSjMXtzKE8/uPJnXAvBR6llRrrchv\n\tOUoLVpJBUF3N0llqS9HYHhos11Se1RLHvHBZ/0tT0bxrrTcRkOabe06jpF6LY1sSq1\n\tyvorF9unyJL44FGd7m7BlhmaUjSlW7US0HPVxzVlxzxzy7XL3eLy0u98UPyNwiylJQ\n\tuF2sjK1WvrKCO5cDmwhZ2/KZK+7aLIqYtL2uSk0oZydX7MmwXYBSJkmA41VP8GfaJ2\n\tFM6sT0NYITgxph6O+AxXenfHhPYiWgf/X7GlwTfCfbRVTYxEt/9fXRhTKsXaP9Osxq\n\t2jyGk4iYk5IsA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1683117443;\n\tbh=Su/MHnVkaVi4fFnqBiXvfeAqUXop3rkjKt66fSMiNT8=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=CvUeGR2vUT6CACwD7bzVrlreIvdMuKwjAwdJhkErgY75w6Bk2aAlAEefeYapmBk/i\n\tISIjVmk7poCVyo1KVOajt9dsD24V6/qDew9oV6Uow/hh2fd3wslj75lCIgbigVVyiq\n\tWQpXr+wEn6uxGHxUALPvd7GL6lQw7yfLu95heNps="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"CvUeGR2v\"; dkim-atps=neutral","Date":"Wed, 3 May 2023 15:37:37 +0300","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20230503123737.GA32586@pendragon.ideasonboard.com>","References":"<20230503100140.1570024-1-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20230503100140.1570024-1-kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] v4l2: Add soversion to the V4L2 layer","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>,\n\tJavier Martinez Canillas <javierm@redhat.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":27039,"web_url":"https://patchwork.libcamera.org/comment/27039/","msgid":"<168315544933.1919016.16286326307383702867@Monstersaurus>","date":"2023-05-03T23:10:49","subject":"Re: [libcamera-devel] [PATCH] v4l2: Add soversion to the V4L2 layer","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-03 13:37:37)\n> Hi Kieran,\n> \n> Thank you for the patch.\n> \n> On Wed, May 03, 2023 at 11:01:40AM +0100, Kieran Bingham via libcamera-devel wrote:\n> > There may be parallel installations of libcamera with separate\n> > instances of the v4l2-adaptation layer shared object.\n> \n> For libcamera, absolutely, but for v4l2-compat.so, the use cases seem\n> less clear to me.\n> \n\nBecause\n\n LD_PRELOAD='/usr/lib/x86_64-linux-gnu/v4l2-compat.so' firefox\n\nWill load the 'latest' ? most recent? version of libcamera, while:\n\n LD_PRELOAD='/usr/lib/x86_64-linux-gnu/v4l2-compat.so.0.0.4' firefox\n\nWill explicitly run firefox with libcamera-0.0.4, and \n\n LD_PRELOAD='/usr/lib/x86_64-linux-gnu/v4l2-compat.so.0.0.5' firefox\n\nwill explicitly use libcamera 0.0.5.\n\nIf a system has both 0.0.4 and 0.0.5 installed, I could certainly see\nreason to be able to test/validate against both. (And of course the\nversion numbers could be further apart than a single release).\n\n\nSpecifically because we update the soname of libcamera (on every release\npresently), it means each v4l2-compat.so is *only* compatible with the\nmatching libcamera.\n\n\n\n> As discussed on IRC, versioning a library's SONAME is meant for two\n> purposes as far as I understand: ABI stability for applications linking\n> to the library, and installing multiple versions of the library side by\n> side. The first purpose doesn't apply to v4l2-compat.so as nothing will\n> link to it.\n> \n> The second purpose could be applicable, but it seems that the use cases\n> would be a bit far-fetched. To support this properly, you would want to\n> also support installing multiple versions of libcamerify side by side.\n\n'libcamerify' would take the latest (Equivalent to\nLD_PRELOAD='/usr/lib/x86_64-linux-gnu/v4l2-compat.so') and if someone\nwants to use a specific version they can LD_PRELOAD it themselves. At\nthat point it would be more likely they know what they're doing anyway.\n\n> This discussion and patch stem from a Fedora packaging rule that forbids\n> unversioned shared object libraries in $libdir/ for non -devel packages.\n> Maybe the patch you sent to move v4l2-compat.so to $libdir/libcamera\n> could be enough to satisfy the packaging rules, without needing to\n> version v4l2-compat.so ? Btw, Javier mentioned on IRC it should actually\n> go to $libexecdir/libcamera, but let's discuss that in the review of\n> your other patch.\n\nIt sounds like you're on the Nack side. Do you actively object to this\nbecause you see harm in versioning the sofile?\n\nEven if we move it to libexec, or lib/libcamera/ or anywhere else, I\ncan't see why it can not be versioned the same as libcamera.\n\n\n--\nKieran\n\n\n> > This shared library can be linked against a specific libcamera\n> > soversion so provide a soversioned V4L2 compatibility layer.\n> > \n> > Suggested-by: Javier Martinez Canillas <javierm@redhat.com>\n> > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > ---\n> >  src/v4l2/meson.build | 1 +\n> >  1 file changed, 1 insertion(+)\n> > \n> > diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build\n> > index f132103cb503..48f201c5c3a0 100644\n> > --- a/src/v4l2/meson.build\n> > +++ b/src/v4l2/meson.build\n> > @@ -30,6 +30,7 @@ v4l2_compat_cpp_args = [\n> >  v4l2_compat = shared_library('v4l2-compat',\n> >                               v4l2_compat_sources,\n> >                               name_prefix : '',\n> > +                             soversion : libcamera_soversion,\n> >                               install : true,\n> >                               dependencies : [libcamera_private, libdl],\n> >                               cpp_args : v4l2_compat_cpp_args)\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 C60C7C0DA4\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  3 May 2023 23:10:54 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 27148633B4;\n\tThu,  4 May 2023 01:10:54 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F3A7D60538\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  4 May 2023 01:10:51 +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 D3103105;\n\tThu,  4 May 2023 01:10:48 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1683155454;\n\tbh=xhfaTcUxBdI0L9cW7qHgTkrCTtIiXXWNCMY4xMOPSx0=;\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=voprOXglmM1/tXtpKTGaCy/BNac13TJQrHvbPkcBBI02w/ZU80/fUQPOVVff8qPR7\n\tRv4c78b2R9fWOtGCmzQqvzilhFKBH/+UOu4Hah9rRovW1ktTMPXTITYYp0dH03nyab\n\tyFBDjmYzwLlLEScHbt1v9MR2OsO1wb/CtDMCX63NO3Owjsw6L5O0N4lEl2mK8+peEz\n\tnuz7fA6xg9I94/OaIA3RWHMiB2YUgfyj13MA0v7cUOV4bclXB2IwHI5X5n/jT3XXP2\n\tKewj0synG9JWbmEjjBlS0Sh5AqKiNpIHMiOfpyqwgS3oYBuRgEh1hGWVZSncarMrTz\n\teFQAyIKDcuiqw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1683155448;\n\tbh=xhfaTcUxBdI0L9cW7qHgTkrCTtIiXXWNCMY4xMOPSx0=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=cabKHHkaVqAOY1JI74raQqVSnpE6P31EQTC4pQmgJN88rA8379NVEBV2kt6tzeFXQ\n\tkt9otaa4rMuB5C/RsGyVo3XPRwzz46lT4l+DtkLL/ko9r4cw7mRnLLgEVYf0k1t5gS\n\tDun7PDjhYYZxga1rgK6oarVx6pj5xwvTrq0yOh74="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"cabKHHka\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20230503123737.GA32586@pendragon.ideasonboard.com>","References":"<20230503100140.1570024-1-kieran.bingham@ideasonboard.com>\n\t<20230503123737.GA32586@pendragon.ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Date":"Thu, 04 May 2023 00:10:49 +0100","Message-ID":"<168315544933.1919016.16286326307383702867@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH] v4l2: Add soversion to the V4L2 layer","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":27040,"web_url":"https://patchwork.libcamera.org/comment/27040/","msgid":"<20230504074248.GC4551@pendragon.ideasonboard.com>","date":"2023-05-04T07:42:48","subject":"Re: [libcamera-devel] [PATCH] v4l2: Add soversion to the V4L2 layer","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Thu, May 04, 2023 at 12:10:49AM +0100, Kieran Bingham wrote:\n> Quoting Laurent Pinchart (2023-05-03 13:37:37)\n> > On Wed, May 03, 2023 at 11:01:40AM +0100, Kieran Bingham via libcamera-devel wrote:\n> > > There may be parallel installations of libcamera with separate\n> > > instances of the v4l2-adaptation layer shared object.\n> > \n> > For libcamera, absolutely, but for v4l2-compat.so, the use cases seem\n> > less clear to me.\n> \n> Because\n> \n>  LD_PRELOAD='/usr/lib/x86_64-linux-gnu/v4l2-compat.so' firefox\n> \n> Will load the 'latest' ? most recent? version of libcamera, while:\n> \n>  LD_PRELOAD='/usr/lib/x86_64-linux-gnu/v4l2-compat.so.0.0.4' firefox\n> \n> Will explicitly run firefox with libcamera-0.0.4, and \n> \n>  LD_PRELOAD='/usr/lib/x86_64-linux-gnu/v4l2-compat.so.0.0.5' firefox\n> \n> will explicitly use libcamera 0.0.5.\n> \n> If a system has both 0.0.4 and 0.0.5 installed, I could certainly see\n> reason to be able to test/validate against both. (And of course the\n> version numbers could be further apart than a single release).\n\nI can imagine that in theory, but in practice I'd be surprised if it\nmattered for v4l2-compat.\n\n> Specifically because we update the soname of libcamera (on every release\n> presently), it means each v4l2-compat.so is *only* compatible with the\n> matching libcamera.\n\nThis brings us to the next question, how do you expect v4l2-compat to be\npackaged ? If you want multiple versions to be able to co-exist\nside-by-side, the file certainly need to be versioned, as you can't have\nmultiple packages installing the same file. There is however a single\nlibcamerify script, so that can't be part of the same package as\nv4l2-compat, otherwise you wouldn't be able to install multiple versions\nof v4l2-compat. If libcamerify is part of the same package as\nv4l2-compat.so then versioning the later has no value.\n\nThe same holds true for cam and qcam by the way, which is why they can't\nbe part of a libcamera package if we want to support installing multiple\nversions of the libraries.\n\n> > As discussed on IRC, versioning a library's SONAME is meant for two\n> > purposes as far as I understand: ABI stability for applications linking\n> > to the library, and installing multiple versions of the library side by\n> > side. The first purpose doesn't apply to v4l2-compat.so as nothing will\n> > link to it.\n> > \n> > The second purpose could be applicable, but it seems that the use cases\n> > would be a bit far-fetched. To support this properly, you would want to\n> > also support installing multiple versions of libcamerify side by side.\n> \n> 'libcamerify' would take the latest (Equivalent to\n> LD_PRELOAD='/usr/lib/x86_64-linux-gnu/v4l2-compat.so') and if someone\n> wants to use a specific version they can LD_PRELOAD it themselves. At\n> that point it would be more likely they know what they're doing anyway.\n\nUsing /usr/lib/x86_64-linux-gnu/v4l2-compat.so means a package would\nneed to provide this, and as explained above, that has to be a separate\npackage from libcamera. It could possibly be the same package that\ncontains libcamerify, but in that case, libcamerify could also target a\nspecific version of v4l2-compat.so without requiring a symlink.\n\n> > This discussion and patch stem from a Fedora packaging rule that forbids\n> > unversioned shared object libraries in $libdir/ for non -devel packages.\n> > Maybe the patch you sent to move v4l2-compat.so to $libdir/libcamera\n> > could be enough to satisfy the packaging rules, without needing to\n> > version v4l2-compat.so ? Btw, Javier mentioned on IRC it should actually\n> > go to $libexecdir/libcamera, but let's discuss that in the review of\n> > your other patch.\n> \n> It sounds like you're on the Nack side. Do you actively object to this\n> because you see harm in versioning the sofile?\n> \n> Even if we move it to libexec, or lib/libcamera/ or anywhere else, I\n> can't see why it can not be versioned the same as libcamera.\n\nI'm not necessarily against it. All I want is to consider the big\npicture of how all this will be packaged, to make sure we implement\nsomething useful for distributions.\n\n> > > This shared library can be linked against a specific libcamera\n> > > soversion so provide a soversioned V4L2 compatibility layer.\n> > > \n> > > Suggested-by: Javier Martinez Canillas <javierm@redhat.com>\n> > > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> > > ---\n> > >  src/v4l2/meson.build | 1 +\n> > >  1 file changed, 1 insertion(+)\n> > > \n> > > diff --git a/src/v4l2/meson.build b/src/v4l2/meson.build\n> > > index f132103cb503..48f201c5c3a0 100644\n> > > --- a/src/v4l2/meson.build\n> > > +++ b/src/v4l2/meson.build\n> > > @@ -30,6 +30,7 @@ v4l2_compat_cpp_args = [\n> > >  v4l2_compat = shared_library('v4l2-compat',\n> > >                               v4l2_compat_sources,\n> > >                               name_prefix : '',\n> > > +                             soversion : libcamera_soversion,\n> > >                               install : true,\n> > >                               dependencies : [libcamera_private, libdl],\n> > >                               cpp_args : v4l2_compat_cpp_args)","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 D5DF1BD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  4 May 2023 07:42:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2B4A7633B4;\n\tThu,  4 May 2023 09:42:38 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EFC3561EAC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  4 May 2023 09:42:36 +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 D9EF9755;\n\tThu,  4 May 2023 09:42:32 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1683186158;\n\tbh=s6i6Ez3b8jTJqn7YE2t/bd+j0la9IDRo8sJiS2uPKRo=;\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=pIy50R7NHPIP1KycWrg9pt4BtP2MpGBWzxriIShJ+9rl5SQEm6aet32mJOi6gPCBB\n\tqY00/7b62pxyoWHcz9r2JEglvmQcvRkODcGOIuWmfhrrbtItImxVmgEUJD+qD1Vk2C\n\tgaN4Z7xclowsS+XCkKpr1A9FUJv72mzID1PpZNg9jnshB5/nAyGOR0MxaWJy/geGEA\n\t9vECXHYhP0rr3M3Ni2eoz4mPbsMhkRZhDwTDaWKFh7brEfJ9cAdy/Dh1P5l4bKBb0m\n\ttwixXeuv33q9zU2JLJ2dZ7DGzmNZ4Qk6kFkZzo34AW7mUrAFtbZvNEDN6U1HKgWNkv\n\t9k385xRTdTsTA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1683186153;\n\tbh=s6i6Ez3b8jTJqn7YE2t/bd+j0la9IDRo8sJiS2uPKRo=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=GSd1wgFIW+X0smeMdVmVrhVDgTxLAQRWVCVu+ZKx16ZMlWvBh62g+DqYh/tAU4h0y\n\tjDyU0F4YAjP0SahwfnAnOodS2xATv+GJMLj6ChAzjAWsmSz0Wmt49I3Ymqd1BOA53v\n\ttO0QJOCd+NtyPcbvAKsj514Tjbq5RWrXOJWm6AuA="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"GSd1wgFI\"; dkim-atps=neutral","Date":"Thu, 4 May 2023 10:42:48 +0300","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20230504074248.GC4551@pendragon.ideasonboard.com>","References":"<20230503100140.1570024-1-kieran.bingham@ideasonboard.com>\n\t<20230503123737.GA32586@pendragon.ideasonboard.com>\n\t<168315544933.1919016.16286326307383702867@Monstersaurus>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<168315544933.1919016.16286326307383702867@Monstersaurus>","Subject":"Re: [libcamera-devel] [PATCH] v4l2: Add soversion to the V4L2 layer","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":27043,"web_url":"https://patchwork.libcamera.org/comment/27043/","msgid":"<87mt2kwmoy.fsf@minerva.mail-host-address-is-not-set>","date":"2023-05-04T08:00:29","subject":"Re: [libcamera-devel] [PATCH] v4l2: Add soversion to the V4L2 layer","submitter":{"id":95,"url":"https://patchwork.libcamera.org/api/people/95/","name":"Javier Martinez Canillas","email":"javierm@redhat.com"},"content":"Laurent Pinchart <laurent.pinchart@ideasonboard.com> writes:\n> On Thu, May 04, 2023 at 12:10:49AM +0100, Kieran Bingham wrote:\n\n[...]\n\n>> > This discussion and patch stem from a Fedora packaging rule that forbids\n>> > unversioned shared object libraries in $libdir/ for non -devel packages.\n>> > Maybe the patch you sent to move v4l2-compat.so to $libdir/libcamera\n>> > could be enough to satisfy the packaging rules, without needing to\n>> > version v4l2-compat.so ? Btw, Javier mentioned on IRC it should actually\n>> > go to $libexecdir/libcamera, but let's discuss that in the review of\n>> > your other patch.\n>> \n>> It sounds like you're on the Nack side. Do you actively object to this\n>> because you see harm in versioning the sofile?\n>> \n>> Even if we move it to libexec, or lib/libcamera/ or anywhere else, I\n>> can't see why it can not be versioned the same as libcamera.\n>\n> I'm not necessarily against it. All I want is to consider the big\n> picture of how all this will be packaged, to make sure we implement\n> something useful for distributions.\n>\n\nAs another data point, none of the shared libraries I currently have\ninstalled in /usr/libexec/ have a versioned SONAME.\n\nIf v4l2-compat.so is moved there, then IMO we should just drop this\npatch since the lib will only be used by libcamerify. And as Laurent\nmentioned, that isn't parallel installable anyways.","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 81AD5BD16B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  4 May 2023 08:00:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D9D50633B4;\n\tThu,  4 May 2023 10:00:37 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E17AC61EAC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  4 May 2023 10:00:35 +0200 (CEST)","from mail-wm1-f72.google.com (mail-wm1-f72.google.com\n\t[209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-656-ZaA-aN4dPD-oekF4EQP7oA-1; Thu, 04 May 2023 04:00:32 -0400","by mail-wm1-f72.google.com with SMTP id\n\t5b1f17b1804b1-3f1763fac8bso1026255e9.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 04 May 2023 01:00:31 -0700 (PDT)","from localhost (205.pool92-176-231.dynamic.orange.es.\n\t[92.176.231.205]) by smtp.gmail.com with ESMTPSA id\n\td19-20020a1c7313000000b003f17b91c3adsm4052719wmb.28.2023.05.04.01.00.29\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 04 May 2023 01:00:30 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1683187237;\n\tbh=GLg3EZNhcTRNGocLSc92r1zc+qbdHVIhV7glxaH74SA=;\n\th=To:In-Reply-To:References:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=SjksLEC54bix4xo4Cgv0ypZl08UBkyWxCTX+hwqpW6WUwnOEsiLtI4nEJzCN1ITqW\n\ti1qR2eLiBOAmatJrsHMLywQL7nwqL10HxzLPh8E8Lu+yaIQ6PfQWbTOqAZ4TMnoQRD\n\t9ipnoNtzMsBLqGoiZkblCoknxJeQZl2O1jnYrJg63xavfqKURegiCmeUJ2Ncgj2KOn\n\t2gigPGdntOmMXhAjAV14WSAiKz3r6Aauvpky3PNdKTK7wfM0eC13hNkpuY8Y0jgQK4\n\tMZzViqKekKfLOCtUabxBEwud12dnwxvGUjtHEPo/pJruxHHABEs8h+zooFcnHahOTV\n\tP67edhaP+PE9A==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1683187234;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=EVYJt5vXeiH7eoSNAdlIxBFPH2GUy3OUipDJmKa8FIQ=;\n\tb=TpD3bgsDwyDIB4Bqyi8l000hB7qhqVDas3u93TG0Ft1E8+Gcl0vAU2rvagFaz1repxs5gw\n\tKCQwHnQVHpgnRETAO13dPpUWV8ei+oydOIvJ30QO3ObLGSvDcIqU9OGNRpc4lm9kRmWflg\n\tLyAfMXpEPu+bGpteptxrJMsTaYC0FFs="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=redhat.com\n\theader.i=@redhat.com header.b=\"TpD3bgsD\"; \n\tdkim-atps=neutral","X-MC-Unique":"ZaA-aN4dPD-oekF4EQP7oA-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20221208; t=1683187230; x=1685779230;\n\th=mime-version:message-id:date:references:in-reply-to:subject:cc:to\n\t:from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; \n\tbh=EVYJt5vXeiH7eoSNAdlIxBFPH2GUy3OUipDJmKa8FIQ=;\n\tb=eXGT7uJ9v2PxNZFE0fA3mYarR1rwGiOP6SPijopFCKD4kfkkUO+4PSCxHCX/Uq21OX\n\tCIsUYcAsZUXek6FC0ZEV26GJG4YbcDJM/UAdr8QYrSpz7QmFe51TyMRbbff8eykUcU6U\n\tCh4madWToQMP9rlok6xPZqg3fZr0XlKbduxI3mGhyfJBOp/oPCMjfA7to5hM7c1ZEsZ4\n\tduAcve8ATDZS9AWPXgBkUEHVnbYGBz0/34FGZbsIZaGzqsIjEDqDZ5fx4qNVkHKIOZWf\n\tovx0NZ3zOXrQYG/hFBqenfcHozA3cSI5ay4gMDbTmJESmVegHGz/JtltHm0viLnGd9mp\n\tS+GQ==","X-Gm-Message-State":"AC+VfDwJW2U7Yi/Us9OHIi6ROzKp7sn+nk3c64M+JFTQcOnSsGPt0nx4\n\tsqvQx6TI4cx/tkgHiVTsWydxpchi7ek63QwPe2YgIXChClufjCyBH7Gwf/tXzfHqk9ht0UTQD0g\n\tCBVUyGBlYebsoe0Tm2V2RmN6MWmAuNtSFUA==","X-Received":["by 2002:a05:600c:2212:b0:3f1:73c1:d1ad with SMTP id\n\tz18-20020a05600c221200b003f173c1d1admr16269577wml.35.1683187230607; \n\tThu, 04 May 2023 01:00:30 -0700 (PDT)","by 2002:a05:600c:2212:b0:3f1:73c1:d1ad with SMTP id\n\tz18-20020a05600c221200b003f173c1d1admr16269560wml.35.1683187230289; \n\tThu, 04 May 2023 01:00:30 -0700 (PDT)"],"X-Google-Smtp-Source":"ACHHUZ5gMsBp1DRxXph4sFLBOSNj8ToIlfXjN3Av/vH3PoJ2s4pTPvO0goXJoWykVktVdo24JbSBPQ==","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>","In-Reply-To":"<20230504074248.GC4551@pendragon.ideasonboard.com>","References":"<20230503100140.1570024-1-kieran.bingham@ideasonboard.com>\n\t<20230503123737.GA32586@pendragon.ideasonboard.com>\n\t<168315544933.1919016.16286326307383702867@Monstersaurus>\n\t<20230504074248.GC4551@pendragon.ideasonboard.com>","Date":"Thu, 04 May 2023 10:00:29 +0200","Message-ID":"<87mt2kwmoy.fsf@minerva.mail-host-address-is-not-set>","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","Subject":"Re: [libcamera-devel] [PATCH] v4l2: Add soversion to the V4L2 layer","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":"Javier Martinez Canillas via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Javier Martinez Canillas <javierm@redhat.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>"}}]