[{"id":16822,"web_url":"https://patchwork.libcamera.org/comment/16822/","msgid":"<062934d5-b8e5-2056-5c61-1f8d625b5486@ideasonboard.com>","date":"2021-05-07T09:00:12","subject":"Re: [libcamera-devel] system locations of libcamera headers","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Umang,\n\nOn 07/05/2021 06:24, Umang Jain wrote:\n> Hi all,\n> \n> If I compile the master branch with --prefix=/usr\n> /meson --prefix=/usr -Dpipelines=uvcvideo,ipu3 build && sudo ninja -C\n> build install/\n> \n> \n> The headers turns out to have a directory structure as below:\n> \n> \n> [uajain@localhost libcamera]$ tree /usr/include/libcamera/\n> /usr/include/libcamera/\n> ├── ipa\n> │   ├── ipa_controls.h\n> │   ├── ipa_interface.h\n> │   └── ipa_module_info.h\n> └── libcamera\n>     ├── bound_method.h\n>     ├── buffer.h\n>     ├── camera.h\n>     ├── camera_manager.h\n>     ├── class.h\n>     ├── compiler.h\n>     ├── control_ids.h\n>     ├── controls.h\n>     ├── file_descriptor.h\n>     ├── formats.h\n>     ├── framebuffer_allocator.h\n>     ├── geometry.h\n>     ├── libcamera.h\n>     ├── logging.h\n>     ├── object.h\n>     ├── pixel_format.h\n>     ├── property_ids.h\n>     ├── request.h\n>     ├── signal.h\n>     ├── span.h\n>     ├── stream.h\n>     ├── transform.h\n>     └── version.h\n> \n> 2 directories, 26 files\n> \n> \n> My question is, is this how we want public headers to be placed ? For\n> e.g. the absolute path of signal.h\n> is/usr/include/libcamera/libcamera/signal.h, hence, even the below diff\n> will compile successfully (due to linker find path magic)\n> \n> diff --git a/src/libcamera/object.cpp b/src/libcamera/object.cpp\n> index cd83c684..5f005d1b 100644\n> --- a/src/libcamera/object.cpp\n> +++ b/src/libcamera/object.cpp\n> @@ -9,7 +9,7 @@\n>  \n>  #include <algorithm>\n>  \n> -#include <libcamera/signal.h>\n> +#include <libcamera/libcamera/signal.h>\n\n\nThis gets 'found' because the include path is including \"/usr/include/\"\nand your include statement specifies the double libcamera, which then\nmaps to the full /usr/include/libcamera/libcamera/signal.h path.\n\nHowever, it's not correct to do so.\n\nThe path there is:\n\n/usr/include/<project>/<component>/<header.h>\n\nIn this instance, both the project and the component have the same name.\n\n> Considering the case where we also need to expose some of the internal\n> libcamera headers on system locations (for IPAs to use) - It's better to\n> kick off some dicussions around how we would structure the header\n> locations. This will also clear some of my ongoing meson cleanup work\n> (not all patches, but only a couple).\n\nWe already have /usr/include/libcamera/ipa/ for IPA interfaces to be\ninstalled to.\n\nThe issue you are facing is that the IPA interfaces are referencing\n'internal' and not installed or public headers from\n<sourcetree>/include/libcamera/internal/<private files>\n\nWe need to identify which files are required by the IPA interfaces, and\nfind a way (or location) to install them, which makes them available to\nthe IPA interface, but makes it clear that they are /not/ a part of the\npublic API interfaces, and should not be accessible by applications.\n\nGiven that they are only to be used by the IPA, we could perhaps install\na subset of them into libcamera/ipa/internal/ or something like that.\n\nI would like to be able to see a list of what files are required. That\nwould help in how we decide what files need abstracting or installing,\nand where they should go.\n\n--\nKieran\n\n\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel\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 D5AF8BF829\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  7 May 2021 09:00:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 485DF688E5;\n\tFri,  7 May 2021 11:00:18 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 39C5C688E4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  7 May 2021 11:00:16 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id B3E2A2CF;\n\tFri,  7 May 2021 11:00:15 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"f3BrWOyD\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1620378015;\n\tbh=l/5mTI1l51N23j/fy9BS5LKohTe5PHs6CpAkjn9JSlY=;\n\th=Reply-To:To:References:From:Subject:Date:In-Reply-To:From;\n\tb=f3BrWOyDAk2iDTxXpWHRnF+sJcX8cEVvJrfeP4Mu/p1aHctV8srpDDV7uvM7Je+6O\n\t0zWVTJPQUKocb/TueEXVElPkX5QYcQg8ekFvIUBnWC90CKoT05fSotXpuNS8u9fHlp\n\tA4vZkyEKia3MPF4AMxynr4vef3IJbVo6NngRDBFo=","To":"Umang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera devel <libcamera-devel@lists.libcamera.org>","References":"<c4b4be65-e615-3077-fee0-bfcdbb3f9f39@ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Organization":"Ideas on Board","Message-ID":"<062934d5-b8e5-2056-5c61-1f8d625b5486@ideasonboard.com>","Date":"Fri, 7 May 2021 10:00:12 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.7.1","MIME-Version":"1.0","In-Reply-To":"<c4b4be65-e615-3077-fee0-bfcdbb3f9f39@ideasonboard.com>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] system locations of libcamera headers","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>","Reply-To":"kieran.bingham@ideasonboard.com","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":16826,"web_url":"https://patchwork.libcamera.org/comment/16826/","msgid":"<5850de56-2d77-54fc-ae0d-2b3a54102c5e@ideasonboard.com>","date":"2021-05-07T10:42:46","subject":"Re: [libcamera-devel] system locations of libcamera headers","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Kieran\n\nOn 5/7/21 2:30 PM, Kieran Bingham wrote:\n> Hi Umang,\n>\n> On 07/05/2021 06:24, Umang Jain wrote:\n>> Hi all,\n>>\n>> If I compile the master branch with --prefix=/usr\n>> /meson --prefix=/usr -Dpipelines=uvcvideo,ipu3 build && sudo ninja -C\n>> build install/\n>>\n>>\n>> The headers turns out to have a directory structure as below:\n>>\n>>\n>> [uajain@localhost libcamera]$ tree /usr/include/libcamera/\n>> /usr/include/libcamera/\n>> ├── ipa\n>> │   ├── ipa_controls.h\n>> │   ├── ipa_interface.h\n>> │   └── ipa_module_info.h\n>> └── libcamera\n>>      ├── bound_method.h\n>>      ├── buffer.h\n>>      ├── camera.h\n>>      ├── camera_manager.h\n>>      ├── class.h\n>>      ├── compiler.h\n>>      ├── control_ids.h\n>>      ├── controls.h\n>>      ├── file_descriptor.h\n>>      ├── formats.h\n>>      ├── framebuffer_allocator.h\n>>      ├── geometry.h\n>>      ├── libcamera.h\n>>      ├── logging.h\n>>      ├── object.h\n>>      ├── pixel_format.h\n>>      ├── property_ids.h\n>>      ├── request.h\n>>      ├── signal.h\n>>      ├── span.h\n>>      ├── stream.h\n>>      ├── transform.h\n>>      └── version.h\n>>\n>> 2 directories, 26 files\n>>\n>>\n>> My question is, is this how we want public headers to be placed ? For\n>> e.g. the absolute path of signal.h\n>> is/usr/include/libcamera/libcamera/signal.h, hence, even the below diff\n>> will compile successfully (due to linker find path magic)\n>>\n>> diff --git a/src/libcamera/object.cpp b/src/libcamera/object.cpp\n>> index cd83c684..5f005d1b 100644\n>> --- a/src/libcamera/object.cpp\n>> +++ b/src/libcamera/object.cpp\n>> @@ -9,7 +9,7 @@\n>>   \n>>   #include <algorithm>\n>>   \n>> -#include <libcamera/signal.h>\n>> +#include <libcamera/libcamera/signal.h>\n>\n> This gets 'found' because the include path is including \"/usr/include/\"\n> and your include statement specifies the double libcamera, which then\n> maps to the full /usr/include/libcamera/libcamera/signal.h path.\n>\n> However, it's not correct to do so.\n>\n> The path there is:\n>\n> /usr/include/<project>/<component>/<header.h>\nOk, this makes it clear - probably we should document <project> vs \n<component> split somewhere?\n>\n> In this instance, both the project and the component have the same name.\n>\n>> Considering the case where we also need to expose some of the internal\n>> libcamera headers on system locations (for IPAs to use) - It's better to\n>> kick off some dicussions around how we would structure the header\n>> locations. This will also clear some of my ongoing meson cleanup work\n>> (not all patches, but only a couple).\n> We already have /usr/include/libcamera/ipa/ for IPA interfaces to be\n> installed to.\n>\n> The issue you are facing is that the IPA interfaces are referencing\n> 'internal' and not installed or public headers from\n> <sourcetree>/include/libcamera/internal/<private files>\nThis + internal headers required for the actual IPA\n\nIf I take current status quo:\nThe IPA interface/usr/include/libcamera/ipa/ipa_interface.h needs \ninternal header libcamera/internal/camera_sensor.h\n\nAnd now I were to talk about the actual IPA (out-of-tree one), it would \nrequire\n\n#include \"libcamera/internal/log.h\"\n#include \"libcamera/internal/file.h\"\n#include \"libcamera/internal/buffer.h\"\n*1\n> We need to identify which files are required by the IPA interfaces, and\n> find a way (or location) to install them, which makes them available to\n> the IPA interface, but makes it clear that they are /not/ a part of the\n> public API interfaces, and should not be accessible by applications.\nDo you mean the headers(*1)  for actual IPA should be provided via the \nIPA interface, i.e. the IPA interface shall wrap any internal headers \nthe /actual/ IPA might require?\n>\n> Given that they are only to be used by the IPA, we could perhaps install\n> a subset of them into libcamera/ipa/internal/ or something like that.\n>\n> I would like to be able to see a list of what files are required. That\n> would help in how we decide what files need abstracting or installing,\n> and where they should go.\n>\n> --\n> Kieran\n>\n>\n>> _______________________________________________\n>> libcamera-devel mailing list\n>> libcamera-devel@lists.libcamera.org\n>> https://lists.libcamera.org/listinfo/libcamera-devel\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 402BFBF831\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  7 May 2021 10:42:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C0D4E6890E;\n\tFri,  7 May 2021 12:42: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 78BD3602BB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  7 May 2021 12:42:53 +0200 (CEST)","from localhost.localdomain (unknown [103.251.226.24])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 383292CF;\n\tFri,  7 May 2021 12:42:51 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"XMysCFrc\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1620384172;\n\tbh=WNqt8+tyMSGRRqi562MqFlF+V2VyM0B39zoy751Va3I=;\n\th=Subject:To:References:From:Date:In-Reply-To:From;\n\tb=XMysCFrcMXs46JQX+U8NEqu9OfVYgAYDpPvYrV6AfF0TNAA6WzZ2xS9fsvjR54eue\n\t1NOqF6MBuh640lgyKUmymNXDb2k7bBsUPIX4vhGmomWcI3wzg4EXjZen/bxB1txiMc\n\t5SFdQiH/s4FGfxplh5ykRpM5VcI/A++kdq2BbbME=","To":"kieran.bingham@ideasonboard.com,\n\tlibcamera devel <libcamera-devel@lists.libcamera.org>","References":"<c4b4be65-e615-3077-fee0-bfcdbb3f9f39@ideasonboard.com>\n\t<062934d5-b8e5-2056-5c61-1f8d625b5486@ideasonboard.com>","From":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<5850de56-2d77-54fc-ae0d-2b3a54102c5e@ideasonboard.com>","Date":"Fri, 7 May 2021 16:12:46 +0530","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.11.0","MIME-Version":"1.0","In-Reply-To":"<062934d5-b8e5-2056-5c61-1f8d625b5486@ideasonboard.com>","Content-Language":"en-US","Subject":"Re: [libcamera-devel] system locations of libcamera headers","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>","Content-Transfer-Encoding":"base64","Content-Type":"text/plain; charset=\"utf-8\"; Format=\"flowed\"","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":16831,"web_url":"https://patchwork.libcamera.org/comment/16831/","msgid":"<YJUw0NoFk4jRQBKb@pendragon.ideasonboard.com>","date":"2021-05-07T12:21:36","subject":"Re: [libcamera-devel] system locations of libcamera headers","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Fri, May 07, 2021 at 04:12:46PM +0530, Umang Jain wrote:\n> On 5/7/21 2:30 PM, Kieran Bingham wrote:\n> > On 07/05/2021 06:24, Umang Jain wrote:\n> >> Hi all,\n> >>\n> >> If I compile the master branch with --prefix=/usr\n> >> /meson --prefix=/usr -Dpipelines=uvcvideo,ipu3 build && sudo ninja -C\n> >> build install/\n> >>\n> >>\n> >> The headers turns out to have a directory structure as below:\n> >>\n> >>\n> >> [uajain@localhost libcamera]$ tree /usr/include/libcamera/\n> >> /usr/include/libcamera/\n> >> ├── ipa\n> >> │   ├── ipa_controls.h\n> >> │   ├── ipa_interface.h\n> >> │   └── ipa_module_info.h\n> >> └── libcamera\n> >>      ├── bound_method.h\n> >>      ├── buffer.h\n> >>      ├── camera.h\n> >>      ├── camera_manager.h\n> >>      ├── class.h\n> >>      ├── compiler.h\n> >>      ├── control_ids.h\n> >>      ├── controls.h\n> >>      ├── file_descriptor.h\n> >>      ├── formats.h\n> >>      ├── framebuffer_allocator.h\n> >>      ├── geometry.h\n> >>      ├── libcamera.h\n> >>      ├── logging.h\n> >>      ├── object.h\n> >>      ├── pixel_format.h\n> >>      ├── property_ids.h\n> >>      ├── request.h\n> >>      ├── signal.h\n> >>      ├── span.h\n> >>      ├── stream.h\n> >>      ├── transform.h\n> >>      └── version.h\n> >>\n> >> 2 directories, 26 files\n> >>\n> >>\n> >> My question is, is this how we want public headers to be placed ? For\n> >> e.g. the absolute path of signal.h\n> >> is/usr/include/libcamera/libcamera/signal.h, hence, even the below diff\n> >> will compile successfully (due to linker find path magic)\n> >>\n> >> diff --git a/src/libcamera/object.cpp b/src/libcamera/object.cpp\n> >> index cd83c684..5f005d1b 100644\n> >> --- a/src/libcamera/object.cpp\n> >> +++ b/src/libcamera/object.cpp\n> >> @@ -9,7 +9,7 @@\n> >>   \n> >>   #include <algorithm>\n> >>   \n> >> -#include <libcamera/signal.h>\n> >> +#include <libcamera/libcamera/signal.h>\n> >\n> > This gets 'found' because the include path is including \"/usr/include/\"\n> > and your include statement specifies the double libcamera, which then\n> > maps to the full /usr/include/libcamera/libcamera/signal.h path.\n> >\n> > However, it's not correct to do so.\n> >\n> > The path there is:\n> >\n> > /usr/include/<project>/<component>/<header.h>\n>\n> Ok, this makes it clear - probably we should document <project> vs \n> <component> split somewhere?\n\nIf you look at the pkgconfig file that meson generates, we have\n\nprefix=/usr/local\nlibdir=${prefix}/lib64\nincludedir=${prefix}/include\n\nName: libcamera\nDescription: Complex Camera Support Library\nVersion: 1.0\nLibs: -L${libdir} -lcamera\nCflags: -I${includedir}/libcamera\n\n\nThe <project> part of the include path will likely become\n'libcamera-1.0' once we release a first stable version. It will be\nhandled by pkgconfig.  The <component> part of the path will always be\n'libcamera', and that's the part that has to be specified in the\n#include directive.\n\n> > In this instance, both the project and the component have the same name.\n> >\n> >> Considering the case where we also need to expose some of the internal\n> >> libcamera headers on system locations (for IPAs to use) - It's better to\n> >> kick off some dicussions around how we would structure the header\n> >> locations. This will also clear some of my ongoing meson cleanup work\n> >> (not all patches, but only a couple).\n> >\n> > We already have /usr/include/libcamera/ipa/ for IPA interfaces to be\n> > installed to.\n> >\n> > The issue you are facing is that the IPA interfaces are referencing\n> > 'internal' and not installed or public headers from\n> > <sourcetree>/include/libcamera/internal/<private files>\n>\n> This + internal headers required for the actual IPA\n> \n> If I take current status quo:\n> The IPA interface/usr/include/libcamera/ipa/ipa_interface.h needs \n> internal header libcamera/internal/camera_sensor.h\n\nWe need to either move CameraSensorInfo to IPA headers (just the class,\nnot the whole camera_sensor.h), or create an IPACameraSensorInfo that\ncan be constructed from a CameraSensorInfo.\n\n> And now I were to talk about the actual IPA (out-of-tree one), it would \n> require\n> \n> #include \"libcamera/internal/log.h\"\n> #include \"libcamera/internal/file.h\"\n> #include \"libcamera/internal/buffer.h\"\n> *1\n>\n> > We need to identify which files are required by the IPA interfaces, and\n> > find a way (or location) to install them, which makes them available to\n> > the IPA interface, but makes it clear that they are /not/ a part of the\n> > public API interfaces, and should not be accessible by applications.\n>\n> Do you mean the headers(*1)  for actual IPA should be provided via the \n> IPA interface, i.e. the IPA interface shall wrap any internal headers \n> the /actual/ IPA might require?\n>\n> > Given that they are only to be used by the IPA, we could perhaps install\n> > a subset of them into libcamera/ipa/internal/ or something like that.\n\nThey're not part of libipa, I'd rather split them to a utils library\n(whose ABI will not be guaranteed as stable).\n\n> > I would like to be able to see a list of what files are required. That\n> > would help in how we decide what files need abstracting or installing,\n> > and where they should go.","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 03C17BF831\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  7 May 2021 12:21:44 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7B3E168915;\n\tFri,  7 May 2021 14:21:43 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A92B1602BB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  7 May 2021 14:21:42 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 297C82CF;\n\tFri,  7 May 2021 14:21:42 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"GCqqgOOP\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1620390102;\n\tbh=ALL/uJtSZhjW+LR+NQmGgBOaxQUbOMX1P98pHg5qB7k=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=GCqqgOOPsiq5nWEVYUGoJsigUgkj5JnjZedwvW3AqmTwmbTcCilK1njEZOnNFhGM5\n\tGvrklZ8auxDhQZkcSBvjibM/xbKRN9Nr5JHIwjhB0qeuOqlGJCD6uM2I5EHRpdA66R\n\tQUs0Ce4UGaSgJtXHANoNa5gLdkxEaES+EIMFof5o=","Date":"Fri, 7 May 2021 15:21:36 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<YJUw0NoFk4jRQBKb@pendragon.ideasonboard.com>","References":"<c4b4be65-e615-3077-fee0-bfcdbb3f9f39@ideasonboard.com>\n\t<062934d5-b8e5-2056-5c61-1f8d625b5486@ideasonboard.com>\n\t<5850de56-2d77-54fc-ae0d-2b3a54102c5e@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<5850de56-2d77-54fc-ae0d-2b3a54102c5e@ideasonboard.com>","Subject":"Re: [libcamera-devel] system locations of libcamera headers","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>","Cc":"libcamera devel <libcamera-devel@lists.libcamera.org>","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]