[{"id":24573,"web_url":"https://patchwork.libcamera.org/comment/24573/","msgid":"<166055153542.15821.12963002021127433877@Monstersaurus>","date":"2022-08-15T08:18:55","subject":"Re: [libcamera-devel] [PATCH v2] package metadata","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Christian Rauch via libcamera-devel (2022-08-13 13:31:18)\n> This metadata file provides information, amongst others, about the version,\n> licence, maintainers and build dependencies. This file is used by build\n> systems (catkin, colcon) to manage a dependency graph and resolve those\n> dependencies automatically.\n> \n> The file structure is defined at: https://www.ros.org/reps/rep-0149.html\n> \n> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n> ---\n>  package.xml | 31 +++++++++++++++++++++++++++++++\n>  1 file changed, 31 insertions(+)\n>  create mode 100644 package.xml\n> \n> diff --git a/package.xml b/package.xml\n> new file mode 100644\n> index 00000000..2264efd9\n> --- /dev/null\n> +++ b/package.xml\n> @@ -0,0 +1,31 @@\n\nDo we need to add any licence information in here?, or in .reuse/dep5 at\nall?\n\n> +<?xml version=\"1.0\"?>\n> +<?xml-model href=\"http://download.ros.org/schema/package_format3.xsd\" schematypens=\"http://www.w3.org/2001/XMLSchema\"?>\n> +<package format=\"3\">\n> +  <name>libcamera</name>\n> +\n> +  <version>0.0.0</version>\n\nIf this file was generated by meson, it could populate this field. But I\nfear that's a bit 'chicken and egg'.\n\nHow does ROS handle sources? Does it include libcamera as a subproject?\nor using the repo tool perhaps?\n\n> +  <description>An open source camera stack and framework for Linux, Android, and ChromeOS</description>\n> +\n> +  <maintainer email=\"libcamera-devel@lists.libcamera.org\">libcamera project</maintainer>\n> +\n> +  <license>LGPL-2.1</license>\n\nThat's correct for the library itself, but not the utilities or other\ntoolings. And the IPA modules have different licence constraints.\n\nDoes a package.xml file have the ability to state multiple licences, or\nspecify what the license applies to?\n\n\n> +\n> +  <url>https://libcamera.org</url>\n> +\n> +  <buildtool_depend>python3-meson-pip</buildtool_depend>\n> +  <buildtool_depend>ninja-build</buildtool_depend>\n> +  <buildtool_depend>pkg-config</buildtool_depend>\n> +\n> +  <build_depend>python3-yaml</build_depend>\n> +  <build_depend>python3-ply</build_depend>\n> +  <build_depend>python3-jinja2</build_depend>\n> +\n> +  <depend>yaml</depend>\n> +  <depend>libgnutls28-dev</depend>\n> +  <depend>libudev-dev</depend>\n> +\n> +  <export>\n> +    <build_type>meson</build_type>\n> +  </export>\n> +</package>\n> --\n> 2.34.1\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 8CC0CBE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Aug 2022 08:18:59 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F1C1B61FC0;\n\tMon, 15 Aug 2022 10:18: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 7D58561FA8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Aug 2022 10:18:58 +0200 (CEST)","from pendragon.ideasonboard.com\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 0785748F;\n\tMon, 15 Aug 2022 10:18:57 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660551539;\n\tbh=BRaImfJaCrBnkRZZ8Tv9CzjDyL+uL34P/LqcR8u1ROA=;\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:\n\tFrom;\n\tb=rcsIa5Gl/qn8JVOV0gbvvNe1tqVv5cs7AYM8FQ7Ij96cuDtbn/dGofNJ5NkYya0IT\n\tFeDHO3e8aC7+OmtJqF3kqjD36XUZnvDcydvzukS7CwNxrvK/0I2SOdDjmyJ/aKCzYf\n\tgQpGCqzEn0FadZ9qBY22rdmduxEf//ECfbvqiDHhza8qnXk0pprc/fIa701L2vvvLb\n\t0vROhQMGLDm7HJPN6nVqnPYvE/T2Bv4nKHiW55b/CfNbU5GQ46uT6Fr9THTfnhpQsE\n\tWmsyVYA7XqzBDv6L/NM7e4thBuii9OFLoXMKnIIlomvp6d6Hvi4lgBElVV6N/YUZSU\n\tsf5yvuIT8UiJQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1660551538;\n\tbh=BRaImfJaCrBnkRZZ8Tv9CzjDyL+uL34P/LqcR8u1ROA=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=IUYfC6m542uwsURu6DqVSo3TsKKGJXPMF0xNOoFEF0pWUtmD9Iigwqh+2DdjzlOON\n\tNH1keGBWhccRpA55MDES+8UmtApBRqZdC3+5a+viz8XysS1YRo4gthwYMEBDac1fj0\n\tWucdkpFlLDbRk2WDTj1+XUpravV0HjivWyK058T4="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"IUYfC6m5\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20220813123118.39395-1-Rauch.Christian@gmx.de>","References":"<20220813123118.39395-1-Rauch.Christian@gmx.de>","To":"Christian Rauch <Rauch.Christian@gmx.de>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Mon, 15 Aug 2022 09:18:55 +0100","Message-ID":"<166055153542.15821.12963002021127433877@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v2] package metadata","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24584,"web_url":"https://patchwork.libcamera.org/comment/24584/","msgid":"<c934d549-cff3-0eb9-75df-4a2fe762cd6d@gmx.de>","date":"2022-08-15T19:12:31","subject":"Re: [libcamera-devel] [PATCH v2] package metadata","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Kieran,\n\nAm 15.08.22 um 10:18 schrieb Kieran Bingham:\n> Quoting Christian Rauch via libcamera-devel (2022-08-13 13:31:18)\n>> This metadata file provides information, amongst others, about the version,\n>> licence, maintainers and build dependencies. This file is used by build\n>> systems (catkin, colcon) to manage a dependency graph and resolve those\n>> dependencies automatically.\n>>\n>> The file structure is defined at: https://www.ros.org/reps/rep-0149.html\n>>\n>> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n>> ---\n>>  package.xml | 31 +++++++++++++++++++++++++++++++\n>>  1 file changed, 31 insertions(+)\n>>  create mode 100644 package.xml\n>>\n>> diff --git a/package.xml b/package.xml\n>> new file mode 100644\n>> index 00000000..2264efd9\n>> --- /dev/null\n>> +++ b/package.xml\n>> @@ -0,0 +1,31 @@\n>\n> Do we need to add any licence information in here?, or in .reuse/dep5 at\n> all?\n\nThe licence information should go into the tag \"license\" (see below).\n\n>\n>> +<?xml version=\"1.0\"?>\n>> +<?xml-model href=\"http://download.ros.org/schema/package_format3.xsd\" schematypens=\"http://www.w3.org/2001/XMLSchema\"?>\n>> +<package format=\"3\">\n>> +  <name>libcamera</name>\n>> +\n>> +  <version>0.0.0</version>\n>\n> If this file was generated by meson, it could populate this field. But I\n> fear that's a bit 'chicken and egg'.\n\nThis file is parsed before the build is started. Otherwise, required\ndependencies couldn't be fetched or built before.\n\n>\n> How does ROS handle sources? Does it include libcamera as a subproject?\n> or using the repo tool perhaps?\n\nEither way. You can check out the libcamera as part of your workspace\n(that's what I am currently doing) and then have it automatically built\n(by catkin or colcon) if it is required by another project, or you can\ndistribute a binary version of it in the ROS repo and have it fetched\nvia rosdep. Anyway, the dependency information is required such that\nrosdep can download required dependences or colcon can build packages in\nthe right order.\n\n>\n>> +  <description>An open source camera stack and framework for Linux, Android, and ChromeOS</description>\n>> +\n>> +  <maintainer email=\"libcamera-devel@lists.libcamera.org\">libcamera project</maintainer>\n>> +\n>> +  <license>LGPL-2.1</license>\n>\n> That's correct for the library itself, but not the utilities or other\n> toolings. And the IPA modules have different licence constraints.\n>\n> Does a package.xml file have the ability to state multiple licences, or\n> specify what the license applies to?\n>\nGood point. You can specify multiple licences [1] by using the \"license\"\ntag multiple times. I think for mixed licencing, you are supposed to add\na \"SPDX Identifier\" [2] to the top of every file in order to make this\nmachine-readable.\n\n[1] https://www.ros.org/reps/rep-0149.html#license-multiple-but-at-least-one\n[2] https://spdx.org/licenses/\n>\n>> +\n>> +  <url>https://libcamera.org</url>\n>> +\n>> +  <buildtool_depend>python3-meson-pip</buildtool_depend>\n>> +  <buildtool_depend>ninja-build</buildtool_depend>\n>> +  <buildtool_depend>pkg-config</buildtool_depend>\n>> +\n>> +  <build_depend>python3-yaml</build_depend>\n>> +  <build_depend>python3-ply</build_depend>\n>> +  <build_depend>python3-jinja2</build_depend>\n>> +\n>> +  <depend>yaml</depend>\n>> +  <depend>libgnutls28-dev</depend>\n>> +  <depend>libudev-dev</depend>\n>> +\n>> +  <export>\n>> +    <build_type>meson</build_type>\n>> +  </export>\n>> +</package>\n>> --\n>> 2.34.1\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 74663BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Aug 2022 19:12:34 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B009461FC0;\n\tMon, 15 Aug 2022 21:12:33 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.17.21])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3D5B061FB9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Aug 2022 21:12:32 +0200 (CEST)","from [192.168.0.158] ([88.152.184.103]) by mail.gmx.net (mrgmx104\n\t[212.227.17.168]) with ESMTPSA (Nemesis) id\n\t1MTRMi-1nwGln3MD6-00To3P for\n\t<libcamera-devel@lists.libcamera.org>; Mon, 15 Aug 2022 21:12:31 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660590753;\n\tbh=YyUqEIkVY4NLbSqhQteRu+9/Il1JEzGQTbs8HJc2zyg=;\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=rNrQvaqjwCgwwPtY+iKfRXIe8x/WmQIGViXsvOFtdG/wyPJ8jNI84zcYZ23xdY6jd\n\tGLpclqoYPgftaacVbKTtepny7Cul6txaajFW6JB/wfBL+qH/IKPaQxFBH9FhmiRS6/\n\tt0p9Mqtw3c7YX7c8xjXfKrmBeE80f6kNyFQoRgYxIN6zp5ZUbWbH2HCc6g/X/sWy09\n\tNHzLsXlDOWuuAx2nBs6ecLzApXZgCO8G1BGaqVuBvP8RB3WwC0BbrkVptct1CAHDUI\n\tVJgXf+1vXoE57VQgjRiPx98AUayzLQRbGm4RVWGZH8NpWvW2aGEX9zCEgfAlAjIzDW\n\t2Hbq9CqggXdLA==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1660590752;\n\tbh=YyUqEIkVY4NLbSqhQteRu+9/Il1JEzGQTbs8HJc2zyg=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=BL17JykYYRuN2+5b36W/qJ60ozZ8EcAOQ4zxKZ9eL9rSQ3MPRGOgOu0mqNRO9iqxp\n\tYOuX7fx5EiigTzn2WUT3bT5Bgen0VBGskYo8cK01u51FO62tvCbSVqjYFQyZaFPxAv\n\t6rK162rcNiJ62/fl+3DGN8BmQox9DJJxn83LnPnI="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"BL17JykY\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<c934d549-cff3-0eb9-75df-4a2fe762cd6d@gmx.de>","Date":"Mon, 15 Aug 2022 21:12:31 +0200","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.11.0","Content-Language":"en-GB","To":"libcamera-devel@lists.libcamera.org","References":"<20220813123118.39395-1-Rauch.Christian@gmx.de>\n\t<166055153542.15821.12963002021127433877@Monstersaurus>","In-Reply-To":"<166055153542.15821.12963002021127433877@Monstersaurus>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:sutkwxpjQS1lPK3LSVVeL97Nk/rTQQyQupCyor5MjbRebQjhP/e\n\tx4FXc5Kg6OhTshZAi1ytJhHZCsXJRn/oYpQgjipE+tnVHY5N0L+ao8V1daY3hwmv0Ye7L+5\n\t7h5idUGEQR+80W6JkdnnfYIa25CA+daIHx5kMyZjjs+1w5YuH6zFUW0/ASgRl+MfOc/CmOT\n\ttDFnsRcOtZO2otgP0ifNg==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:pL6VSOEKiq4=:clkoiMc1ED405k/FH4M/Pj\n\tqeOrkuE4mcLJXp6yQdQw5FvUKMFNsiFlVF4SsqlToVT6f4ECrmI3dUceLK90qA+UEJM1BqxjP\n\tgTo0CEvfji2BDzj8EFVnOhXIVOqj+L3AAd0yOk5OlGyYULUr9SXsWEQdMg8MmLlU8BskeFown\n\tz3n9tbOZBmfhNLoINeFQCr+8qs9f0YRbXzBK1Wm+T9hMCXZpRPG/u+ezFRDxfDUHmHwJ9MD61\n\t/Mr6jfVNenSRuFTiGVJrJ0Fru9+H7hHAt052tO6qrL+FDkkANQRYXfzyvqMjZBi8Ryjkf4ksB\n\tiylDpoex0w3/JnOSBLRWI7g3j+y4+fjQxaFlpKZEqN2n8CXAy5D9Q1vNLxfId1axDO+tyeFf7\n\thSaap0gPPCSFtQqi0UXxBEIQdrXPKsjbjo8c/NV+ycAp31cRGCfK0D3sYt1julxLiT/jtbFGp\n\tAjsPmfMIOli23N1qasdNfLYB7TZmKrjPcMA9hmJG2CzArvx5WWSL81Bxger5cVziEPJelNpv/\n\t4lGIhzp7JXRHlwm3mglQ2d7b4i2uDzXijbDCEx51WUjc9EdAmiloq7J/fYGrgmyN/jnVybYCq\n\twvMza/N6QxsUSa0q+rk1I0ICabMfqV2+o3Y3M81LZoEpETDMU9+ivOYnkLLv7C8ygrKgFGOuG\n\tK2RrbKWl4lH2a5oIKoxBSdyarGnVaYanZ7TMNZBCifQwCofmeq2OYWSABcqtkoVKcRXURYL0A\n\tUBABfean4kU44/MROL0YGf4OscaPiJPrpPAhUtBabjHtBl+qgD3A9YgZ3yeafFzoY5xsWTxSy\n\tsqrOr7+YuZlJq/y0/4kGNncgqJ3KWCNfRM/arAhhMIXO9olqNIVPZ/jGfhsa8Tq7hyb2Q0Ryu\n\t+aYbwXrEj8bPCRLGKWZBl2wkWFjNCQtN5wyeOJ0M+PwFb0iIe8WF1TYaRQ5EelpQMOuHOfPt1\n\tiTdDJWNG5ujqYZ47Jk3REC1stg/XvsGWpKIZK8qHNFxw7qwXn7nd2yNnDniKG6NtwFHf3NouR\n\tBkaHPIqo2IBKaiKgljehJl7gpLddEjgjocQ5VVztro2ShVJ3Mv3yY3m7I450K3NDuo9VwVO/w\n\tcsVdwPOustrKM8ijSw+GFWV2xu13Bpczos9idKboevtE784QC/Ms5KO1A==","Subject":"Re: [libcamera-devel] [PATCH v2] package metadata","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":"Christian Rauch via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Christian Rauch <Rauch.Christian@gmx.de>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24586,"web_url":"https://patchwork.libcamera.org/comment/24586/","msgid":"<166059777084.2754132.5125635271718352479@Monstersaurus>","date":"2022-08-15T21:09:30","subject":"Re: [libcamera-devel] [PATCH v2] package metadata","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Christian,\n\nQuoting Christian Rauch via libcamera-devel (2022-08-15 20:12:31)\n> Hi Kieran,\n> \n> Am 15.08.22 um 10:18 schrieb Kieran Bingham:\n> > Quoting Christian Rauch via libcamera-devel (2022-08-13 13:31:18)\n> >> This metadata file provides information, amongst others, about the version,\n> >> licence, maintainers and build dependencies. This file is used by build\n> >> systems (catkin, colcon) to manage a dependency graph and resolve those\n> >> dependencies automatically.\n> >>\n> >> The file structure is defined at: https://www.ros.org/reps/rep-0149.html\n> >>\n> >> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n> >> ---\n> >>  package.xml | 31 +++++++++++++++++++++++++++++++\n> >>  1 file changed, 31 insertions(+)\n> >>  create mode 100644 package.xml\n> >>\n> >> diff --git a/package.xml b/package.xml\n> >> new file mode 100644\n> >> index 00000000..2264efd9\n> >> --- /dev/null\n> >> +++ b/package.xml\n> >> @@ -0,0 +1,31 @@\n> >\n> > Do we need to add any licence information in here?, or in .reuse/dep5 at\n> > all?\n> \n> The licence information should go into the tag \"license\" (see below).\n\nI meant for this file specifically. As in - Does this need to add an\nSPDX header.\n\n> >\n> >> +<?xml version=\"1.0\"?>\n> >> +<?xml-model href=\"http://download.ros.org/schema/package_format3.xsd\" schematypens=\"http://www.w3.org/2001/XMLSchema\"?>\n> >> +<package format=\"3\">\n> >> +  <name>libcamera</name>\n> >> +\n> >> +  <version>0.0.0</version>\n> >\n> > If this file was generated by meson, it could populate this field. But I\n> > fear that's a bit 'chicken and egg'.\n> \n> This file is parsed before the build is started. Otherwise, required\n> dependencies couldn't be fetched or built before.\n> \n> >\n> > How does ROS handle sources? Does it include libcamera as a subproject?\n> > or using the repo tool perhaps?\n> \n> Either way. You can check out the libcamera as part of your workspace\n> (that's what I am currently doing) and then have it automatically built\n> (by catkin or colcon) if it is required by another project, or you can\n> distribute a binary version of it in the ROS repo and have it fetched\n> via rosdep. Anyway, the dependency information is required such that\n> rosdep can download required dependences or colcon can build packages in\n> the right order.\n> \n> >\n> >> +  <description>An open source camera stack and framework for Linux, Android, and ChromeOS</description>\n> >> +\n> >> +  <maintainer email=\"libcamera-devel@lists.libcamera.org\">libcamera project</maintainer>\n> >> +\n> >> +  <license>LGPL-2.1</license>\n> >\n> > That's correct for the library itself, but not the utilities or other\n> > toolings. And the IPA modules have different licence constraints.\n> >\n> > Does a package.xml file have the ability to state multiple licences, or\n> > specify what the license applies to?\n> >\n> Good point. You can specify multiple licences [1] by using the \"license\"\n> tag multiple times. I think for mixed licencing, you are supposed to add\n> a \"SPDX Identifier\" [2] to the top of every file in order to make this\n> machine-readable.\n\nYes, SPDX headers are used extensively in libcamera, but is not added to\nthis file.\n\n> [1] https://www.ros.org/reps/rep-0149.html#license-multiple-but-at-least-one\n> [2] https://spdx.org/licenses/\n> >\n> >> +\n> >> +  <url>https://libcamera.org</url>\n> >> +\n> >> +  <buildtool_depend>python3-meson-pip</buildtool_depend>\n> >> +  <buildtool_depend>ninja-build</buildtool_depend>\n> >> +  <buildtool_depend>pkg-config</buildtool_depend>\n> >> +\n> >> +  <build_depend>python3-yaml</build_depend>\n> >> +  <build_depend>python3-ply</build_depend>\n> >> +  <build_depend>python3-jinja2</build_depend>\n> >> +\n> >> +  <depend>yaml</depend>\n> >> +  <depend>libgnutls28-dev</depend>\n> >> +  <depend>libudev-dev</depend>\n> >> +\n> >> +  <export>\n> >> +    <build_type>meson</build_type>\n> >> +  </export>\n> >> +</package>\n> >> --\n> >> 2.34.1\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 793A4C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Aug 2022 21:09:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AF36C61FC0;\n\tMon, 15 Aug 2022 23:09:34 +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 A388C61FB9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Aug 2022 23:09:33 +0200 (CEST)","from pendragon.ideasonboard.com\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 2A4C14A8;\n\tMon, 15 Aug 2022 23:09:33 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660597774;\n\tbh=4oe/YkVkTrkDVp6W1HV48ZhbM4nFJ/3132CIDarn7Ak=;\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:\n\tFrom;\n\tb=zZo6oD5N0vcJH8yZWa/xhDKpj4dHG08wTo7sQ0OrfbGwGzqqnJBYV7itLoFXdA4Ww\n\t2mnxB+kVQQK3R5PnXAaQvOq46CLxadGqguap8nx8Q5WohHgPjwu6MduEW9Lr1W0CRz\n\tfpVl+Q9fVjLpNThTbFCh0mJa7qsBQnM62FpLMTzSwCiG2e6EayKaB1OKiry09s8dCt\n\tr87HCHbGawGb1q84nuDVCQ2KE2USQ/NnHn+eN0eTRKFTNA6Pv99uiHojrF/+Tza50n\n\twgLBtwdi54eZy0y1tFIBeFrh/BHuyItpTwsFfy2vkVfngDEWzZiSRGfDYKv1Pm7JtU\n\tUeNYs0vibESdQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1660597773;\n\tbh=4oe/YkVkTrkDVp6W1HV48ZhbM4nFJ/3132CIDarn7Ak=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=YrkBbaDgSLIxXlkC02b46GlVvpUVKIIYTqxDD7mXq+PlTGpi0Wev4v4hLSLSDkhKZ\n\tnx9VTpIofokiOapZI3Ds6qxBkD5M6wZ9IggIaaMLW0Bwh2FzLs9xcc4E2eGmWQXTRK\n\twJT9jNOvFIwHodckMGgTV5w/wYvC0CXwkdozHXh8="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"YrkBbaDg\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<c934d549-cff3-0eb9-75df-4a2fe762cd6d@gmx.de>","References":"<20220813123118.39395-1-Rauch.Christian@gmx.de>\n\t<166055153542.15821.12963002021127433877@Monstersaurus>\n\t<c934d549-cff3-0eb9-75df-4a2fe762cd6d@gmx.de>","To":"Christian Rauch <Rauch.Christian@gmx.de>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Mon, 15 Aug 2022 22:09:30 +0100","Message-ID":"<166059777084.2754132.5125635271718352479@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v2] package metadata","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24587,"web_url":"https://patchwork.libcamera.org/comment/24587/","msgid":"<d11dad85-0ee6-e26d-73c7-820b19d6f6b3@gmx.de>","date":"2022-08-15T21:17:05","subject":"Re: [libcamera-devel] [PATCH v2] package metadata","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Kieran,\n\nAm 15.08.22 um 23:09 schrieb Kieran Bingham:\n> Hi Christian,\n>\n> Quoting Christian Rauch via libcamera-devel (2022-08-15 20:12:31)\n>> Hi Kieran,\n>>\n>> Am 15.08.22 um 10:18 schrieb Kieran Bingham:\n>>> Quoting Christian Rauch via libcamera-devel (2022-08-13 13:31:18)\n>>>> This metadata file provides information, amongst others, about the version,\n>>>> licence, maintainers and build dependencies. This file is used by build\n>>>> systems (catkin, colcon) to manage a dependency graph and resolve those\n>>>> dependencies automatically.\n>>>>\n>>>> The file structure is defined at: https://www.ros.org/reps/rep-0149.html\n>>>>\n>>>> Signed-off-by: Christian Rauch <Rauch.Christian@gmx.de>\n>>>> ---\n>>>>  package.xml | 31 +++++++++++++++++++++++++++++++\n>>>>  1 file changed, 31 insertions(+)\n>>>>  create mode 100644 package.xml\n>>>>\n>>>> diff --git a/package.xml b/package.xml\n>>>> new file mode 100644\n>>>> index 00000000..2264efd9\n>>>> --- /dev/null\n>>>> +++ b/package.xml\n>>>> @@ -0,0 +1,31 @@\n>>>\n>>> Do we need to add any licence information in here?, or in .reuse/dep5 at\n>>> all?\n>>\n>> The licence information should go into the tag \"license\" (see below).\n>\n> I meant for this file specifically. As in - Does this need to add an\n> SPDX header.\n\nI actually have never seen that the \"package.xml\" has its own licence.\nThere is no requirement to have a licence specifically for this file.\nPackages only require to have at least once licence selected. I guess by\ndefault this once licence applies to all files in the repo if not stated\notherwise.\n\nIf you need to choose a licence for this file, I would go for \"CC0-1.0\",\nthe same as the meson.build.\n\n>\n>>>\n>>>> +<?xml version=\"1.0\"?>\n>>>> +<?xml-model href=\"http://download.ros.org/schema/package_format3.xsd\" schematypens=\"http://www.w3.org/2001/XMLSchema\"?>\n>>>> +<package format=\"3\">\n>>>> +  <name>libcamera</name>\n>>>> +\n>>>> +  <version>0.0.0</version>\n>>>\n>>> If this file was generated by meson, it could populate this field. But I\n>>> fear that's a bit 'chicken and egg'.\n>>\n>> This file is parsed before the build is started. Otherwise, required\n>> dependencies couldn't be fetched or built before.\n>>\n>>>\n>>> How does ROS handle sources? Does it include libcamera as a subproject?\n>>> or using the repo tool perhaps?\n>>\n>> Either way. You can check out the libcamera as part of your workspace\n>> (that's what I am currently doing) and then have it automatically built\n>> (by catkin or colcon) if it is required by another project, or you can\n>> distribute a binary version of it in the ROS repo and have it fetched\n>> via rosdep. Anyway, the dependency information is required such that\n>> rosdep can download required dependences or colcon can build packages in\n>> the right order.\n>>\n>>>\n>>>> +  <description>An open source camera stack and framework for Linux, Android, and ChromeOS</description>\n>>>> +\n>>>> +  <maintainer email=\"libcamera-devel@lists.libcamera.org\">libcamera project</maintainer>\n>>>> +\n>>>> +  <license>LGPL-2.1</license>\n>>>\n>>> That's correct for the library itself, but not the utilities or other\n>>> toolings. And the IPA modules have different licence constraints.\n>>>\n>>> Does a package.xml file have the ability to state multiple licences, or\n>>> specify what the license applies to?\n>>>\n>> Good point. You can specify multiple licences [1] by using the \"license\"\n>> tag multiple times. I think for mixed licencing, you are supposed to add\n>> a \"SPDX Identifier\" [2] to the top of every file in order to make this\n>> machine-readable.\n>\n> Yes, SPDX headers are used extensively in libcamera, but is not added to\n> this file.\n>\n>> [1] https://www.ros.org/reps/rep-0149.html#license-multiple-but-at-least-one\n>> [2] https://spdx.org/licenses/\n>>>\n>>>> +\n>>>> +  <url>https://libcamera.org</url>\n>>>> +\n>>>> +  <buildtool_depend>python3-meson-pip</buildtool_depend>\n>>>> +  <buildtool_depend>ninja-build</buildtool_depend>\n>>>> +  <buildtool_depend>pkg-config</buildtool_depend>\n>>>> +\n>>>> +  <build_depend>python3-yaml</build_depend>\n>>>> +  <build_depend>python3-ply</build_depend>\n>>>> +  <build_depend>python3-jinja2</build_depend>\n>>>> +\n>>>> +  <depend>yaml</depend>\n>>>> +  <depend>libgnutls28-dev</depend>\n>>>> +  <depend>libudev-dev</depend>\n>>>> +\n>>>> +  <export>\n>>>> +    <build_type>meson</build_type>\n>>>> +  </export>\n>>>> +</package>\n>>>> --\n>>>> 2.34.1\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 AAA6EBE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Aug 2022 21:17:08 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 18D1061FC0;\n\tMon, 15 Aug 2022 23:17:08 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.15.19])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id ACFA461FB9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Aug 2022 23:17:06 +0200 (CEST)","from [192.168.0.158] ([88.152.184.103]) by mail.gmx.net (mrgmx005\n\t[212.227.17.190]) with ESMTPSA (Nemesis) id\n\t1MDywo-1oFxhO0VuO-009uJI for\n\t<libcamera-devel@lists.libcamera.org>; Mon, 15 Aug 2022 23:17:06 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660598228;\n\tbh=eLF+xISRhllmdMB6JsMGQ+kHvCgNR3/yljWW0EZliXM=;\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=Pt2hLT8SZXI1ZLbLezj4+hz7UGvrg2XQuKZMh+tDkdk1k+MMitEy0v5FxbTQ2pNet\n\tsBKxMwLPRNJqtKkBgI+uubabUKuKYIa2iXMIylVN3kr0vuQmr/ZCSFLREzXFvoXqKJ\n\t7p5D4N2+cqNBSgIeCBgO47kyEQPiXjvLI8Qp62/D2GrcEw4D2R1xLv/jmW9orE/7a0\n\tsnGAHRqYeYkYGLRJzBDnUEUBcqqvhezdNxB2A78Dzg/EvQ6SYwfzrrqnP7jgMpv0ow\n\t2buIPG5KcqYnNcOj34Pmrvuwiihs3jAfU07YEA0wPinhBXZX+eQyggibnYEYC2JuRv\n\tzkOYZc7lzdEuw==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1660598226;\n\tbh=eLF+xISRhllmdMB6JsMGQ+kHvCgNR3/yljWW0EZliXM=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=M2K7XCaMY9nT6jFoUZAR6tnHAG1EqD3OP/Q+Opx4nIE8U1MTqv2oHe1TbrzOkxHMV\n\tUkDLaqfoWUtjHnbDWZInc8+7NNHK5BkUA4h2kyK6KhtQNi7VA6bbep5+9ZxpBgszTr\n\tAJjOf7EJ6Ehy0u2dNR29Y1MEvU84lPXX+f+5afwo="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"M2K7XCaM\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<d11dad85-0ee6-e26d-73c7-820b19d6f6b3@gmx.de>","Date":"Mon, 15 Aug 2022 23:17:05 +0200","MIME-Version":"1.0","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101\n\tThunderbird/91.11.0","Content-Language":"en-GB","To":"libcamera-devel@lists.libcamera.org","References":"<20220813123118.39395-1-Rauch.Christian@gmx.de>\n\t<166055153542.15821.12963002021127433877@Monstersaurus>\n\t<c934d549-cff3-0eb9-75df-4a2fe762cd6d@gmx.de>\n\t<166059777084.2754132.5125635271718352479@Monstersaurus>","In-Reply-To":"<166059777084.2754132.5125635271718352479@Monstersaurus>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:l+6SMF3G3/zyRjbZ45d6Mg2TzTG4u3zw9jMg1kHOBPrULCZVuXi\n\ttQZ2cn+9CHkkK7qRXLm6AWARcJHOQ/VWnxX7JeWRYdioJgtzTKWBB/xC8SPXFQjbq6KtFCi\n\txWgaEAXIssgkhkxDm5w1vT6bdIaSTl/hijwUF2jPrrN7RE6xCzpTPXuAxCOkdY8dCXR5gtK\n\t5fwLpOzlWF84QBApIlsSA==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:7f29GvnJS6M=:yQ7d5y/Wy0htJIUUQcWToJ\n\tmv5aBrXZnNO6Z/7Q3Do6qWHsV89T8hMvrfKGr6knZBo0eXWV1cyEw+kooh7i5AgIhwXhaPURz\n\t/SRF9emdKRKsNtgLCnwVTvTv5DQSyQi9wNRo0qVVTCN8CRHn02U4NEQNsmLCShfV4quflX6dV\n\t3SN83nB3gCEEILlZvEm15+ZyXU1cirldsgla5w2lOnI3ViP6MjK7N7qJWjtf/5I8Xtjd6VuvW\n\tZaL6TyqgGT7GDuobt5gdQTOroS+qSQzz4JYI20A/5bMEM6lpUmjy43mAst4aHp18QYpkApX+p\n\tHblAI5wdG9cu7+KCUTt2vdcl/yUz9w//UUkPFnplFdKAVE1VCkpfrzn6CT0QiNHYK7bgQKDZb\n\t79awfaP/4+QEcufL/YBR/tdVMt+190/E2ksHLBzZYpYVWDMQD3s/w1sehdVQXz6wyo7//OcIA\n\t+7uAX3WbTgqFZFa7KpHmAeA/BtFCiZ/X2zk9aNchEkftx5+5M3jmD5DHiHh4KI1oOGlGWZ2sC\n\tINCWRnsV/IwbxyRo4LsXuBWppPHWKHxe6bihxwYdJoXHo/ZvMX2zoIFSxcS3gxov2Se6l68HU\n\tLvLjFZCDA059LMYETR7xLNLw+9UaW7iINdtV2Kune5Ehfl+9tKab0uzjVDlNYxKyW7PJTTAQR\n\tTkLrrhzcYnH0ee+ZDJCA2w4QxpiqFyUckh2jK628DXwE4KI1bdQ7i+sidOkdcdXjt7e+TDf4y\n\tt/xZwLQjf4awQJ34RIleWDd032hAOUeESci8s9la6IB5sS6jFEOFZvzy6PvE1nLZa2c5++eA3\n\tdEdUuJXDPrb9LucpluHQM5ViNjd5IzK49c9WsJafYzQrkSEd4MJ45sNIw2WiNmkBOql1Ja8pq\n\t2Gi+LpeG4Z0Q6ANdnLt+PK0vcf34k+W7wNOdx+McrBvi5z7usYugdzTKMcuKGuY33Hnh5CcDG\n\tyrdyJvVms++50CJyxHMzDY7ykBQXaUJyhy4HDoAIPNh+SdPN9+JYRBHh9qzb/FZHu4h2TMW5E\n\tDu55nKZt/PVMtsruSKZ6dRe+thKYJTFMuDtbcfge0Kx1yNWvG2zmkY6AimLGEKbiIdxYyILBz\n\tCOALwrwwPxuA7OZ+fLTLrYpOvdW/1h0JqgxA8rMJdbTycvU7zaS8O4+Eg==","Subject":"Re: [libcamera-devel] [PATCH v2] package metadata","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":"Christian Rauch via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Christian Rauch <Rauch.Christian@gmx.de>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]