[{"id":24554,"web_url":"https://patchwork.libcamera.org/comment/24554/","msgid":"<YvWD3xTEbEMA9yXW@pendragon.ideasonboard.com>","date":"2022-08-11T22:34:07","subject":"Re: [libcamera-devel] [PATCH] package metadata","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Christian,\n\nThank you for the patch.\n\nOn Thu, Aug 11, 2022 at 09:52:30PM +0200, Christian Rauch via libcamera-devel wrote:\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 | 32 ++++++++++++++++++++++++++++++++\n>  1 file changed, 32 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..8b06f507\n> --- /dev/null\n> +++ b/package.xml\n> @@ -0,0 +1,32 @@\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> +  <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> +  <url>https://libcamera.org</url>\n> +\n> +  <buildtool_depend>python3-meson-pip</buildtool_depend>\n> +  <buildtool_depend>ninja-build</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>libgnutls28-dev</depend>\n> +  <depend>openssl</depend>\n\nopenssl is a build dependency. Since a few days ago, it can also\noptionally be a runtime dependency to replace gnutls.\n\n> +  <depend>boost</depend>\n\nWe don't depend on boost anymore.\n\n> +  <depend>libudev-dev</depend>\n> +  <depend>libunwind-dev</depend>\n\nThese two dependencies are optional. I'm curious, how are optional\ndependencies supposed to be handled ? package.xml seems specific to ROS,\ndoes it need to pick a set of options that will be enabled in the\ncontext of ROS, and then list the corresponding dependencies here ? If\nso, how would libcamera be built on ROS, how are the meson configuration\noption set ?\n\n> +\n> +  <export>\n> +    <build_type>meson</build_type>\n> +  </export>\n> +</package>","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 E3C93BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 11 Aug 2022 22:34:23 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3E0F66332A;\n\tFri, 12 Aug 2022 00:34:23 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E3C37600EA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Aug 2022 00:34:21 +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 585A23F1;\n\tFri, 12 Aug 2022 00:34:21 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660257263;\n\tbh=HICaOmGSdxhHy7zLM9k3BigSTUtOtCaoGftn+4B2kW8=;\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=l2cX9CXvlzf/0Ts3rEFlRqE4CexEQ4+aKEDUKOvfZdVCB/ikNJ+XwBTtRuf1ScuCg\n\tZjItgaZBpeXcyFLJpR9IODBV/CPiJ23209G18WpJafZcq78CDiPNMnKTVlmrVUl8/Z\n\tx99YFq/XZR/3vI540Gn3gttRmZO0dfQko9S1LvSxx7zV+HN47VQ3lGcqcaiGLBxSoY\n\tjyr6UbaRPUC94mYoDExGTmzk7rYGUD5JdtYICzG8mrZNe0l28BoXTD3YkPiAhjbR16\n\ty1Y+zSK77n8HweUCQTf23VNBTg3xKKSrhI3AFhJBHfDsvIVdd/ElsyCUdrvIOFXuHq\n\tknNZ6GylL7gFw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1660257261;\n\tbh=HICaOmGSdxhHy7zLM9k3BigSTUtOtCaoGftn+4B2kW8=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=X1401H9Srm6N4hDwCvz/XTnwjE3u+zP7vqXJTb6yRcgiep8CuG1TlZyTgqQ4h8G1F\n\tM1BwZZSkzKKpt6zdapI2oy1qUhzB9DekAAtHm/ElT/DAWTmSeYEb3S3ZiBVCtSf+Va\n\ttwJucvlek0rS9BkGVHz+XgOVJg61M7m7xgiCR1y8="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"X1401H9S\"; dkim-atps=neutral","Date":"Fri, 12 Aug 2022 01:34:07 +0300","To":"Christian Rauch <Rauch.Christian@gmx.de>","Message-ID":"<YvWD3xTEbEMA9yXW@pendragon.ideasonboard.com>","References":"<20220811195230.112400-1-Rauch.Christian@gmx.de>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220811195230.112400-1-Rauch.Christian@gmx.de>","Subject":"Re: [libcamera-devel] [PATCH] 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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24555,"web_url":"https://patchwork.libcamera.org/comment/24555/","msgid":"<20220812072812.mqw6j3uqfnj4jvvd@uno.localdomain>","date":"2022-08-12T07:28:12","subject":"Re: [libcamera-devel] [PATCH] package metadata","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi\n\nOn Fri, Aug 12, 2022 at 01:34:07AM +0300, Laurent Pinchart via libcamera-devel wrote:\n> Hi Christian,\n>\n> Thank you for the patch.\n>\n> On Thu, Aug 11, 2022 at 09:52:30PM +0200, Christian Rauch via libcamera-devel wrote:\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 | 32 ++++++++++++++++++++++++++++++++\n\nI would also move this to package/ros/package.xml\n\n> >  1 file changed, 32 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..8b06f507\n> > --- /dev/null\n> > +++ b/package.xml\n> > @@ -0,0 +1,32 @@\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> > +  <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> > +  <url>https://libcamera.org</url>\n> > +\n> > +  <buildtool_depend>python3-meson-pip</buildtool_depend>\n> > +  <buildtool_depend>ninja-build</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>libgnutls28-dev</depend>\n> > +  <depend>openssl</depend>\n>\n> openssl is a build dependency. Since a few days ago, it can also\n> optionally be a runtime dependency to replace gnutls.\n>\n> > +  <depend>boost</depend>\n>\n> We don't depend on boost anymore.\n>\n> > +  <depend>libudev-dev</depend>\n> > +  <depend>libunwind-dev</depend>\n>\n> These two dependencies are optional. I'm curious, how are optional\n> dependencies supposed to be handled ? package.xml seems specific to ROS,\n> does it need to pick a set of options that will be enabled in the\n> context of ROS, and then list the corresponding dependencies here ? If\n> so, how would libcamera be built on ROS, how are the meson configuration\n> option set ?\n>\n> > +\n> > +  <export>\n> > +    <build_type>meson</build_type>\n> > +  </export>\n> > +</package>\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 54965C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Aug 2022 07:28:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 523D763327;\n\tFri, 12 Aug 2022 09:28:17 +0200 (CEST)","from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net\n\t[217.70.183.199])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 65DF163326\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 12 Aug 2022 09:28:15 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby mail.gandi.net (Postfix) with ESMTPSA id 70B70FF803;\n\tFri, 12 Aug 2022 07:28:14 +0000 (UTC)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660289297;\n\tbh=/eSbb/lLg6p5OBK8cXHL0s23BTu/SjL6osbCEk7x2Ik=;\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=ZpxQAccCTmjMsQ4aKmOQ/DPgHLLFnFpQ6HFqx57j5DfvK/pNrhogwyEKhXBE6ELfQ\n\tnMjwsuBBnBy4+OV+MrE5rsOIwaDNboIuJweYb5V4ZVXuxBh4qbGwh2pO8zb7ZyVjx2\n\toBibR2oc2zuH7AHSvpCOkLamZmnpWQbS2Q5B26/HtY81eNqwHh7JeoIgGtpTwN7TLw\n\tqy7zk4ovX5n6y+BzvvwVul38EUVxQuIJOU/K/mafl1fx2g+OQqW1c9N66j0RRZ1OxT\n\tfKqeehkxZbI5ZADyw/0ygsu0SMfNI6HzBzJpFwlZBa8y9JqIT0JeHu93ju1fDRCyXo\n\tlxcaHXDednhFw==","Date":"Fri, 12 Aug 2022 09:28:12 +0200","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20220812072812.mqw6j3uqfnj4jvvd@uno.localdomain>","References":"<20220811195230.112400-1-Rauch.Christian@gmx.de>\n\t<YvWD3xTEbEMA9yXW@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<YvWD3xTEbEMA9yXW@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] 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":"Jacopo Mondi via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24559,"web_url":"https://patchwork.libcamera.org/comment/24559/","msgid":"<65e93424-8b84-b146-847b-d861df9cb7b8@gmx.de>","date":"2022-08-12T22:40:36","subject":"Re: [libcamera-devel] [PATCH] package metadata","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Laurent,\n\nAm 12.08.22 um 00:34 schrieb Laurent Pinchart:\n> Hi Christian,\n>\n> Thank you for the patch.\n>\n> On Thu, Aug 11, 2022 at 09:52:30PM +0200, Christian Rauch via libcamera-devel wrote:\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 | 32 ++++++++++++++++++++++++++++++++\n>>  1 file changed, 32 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..8b06f507\n>> --- /dev/null\n>> +++ b/package.xml\n>> @@ -0,0 +1,32 @@\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>> +  <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>> +  <url>https://libcamera.org</url>\n>> +\n>> +  <buildtool_depend>python3-meson-pip</buildtool_depend>\n>> +  <buildtool_depend>ninja-build</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>libgnutls28-dev</depend>\n>> +  <depend>openssl</depend>\n>\n> openssl is a build dependency. Since a few days ago, it can also\n> optionally be a runtime dependency to replace gnutls.\n>\n>> +  <depend>boost</depend>\n>\n> We don't depend on boost anymore.\n>\n>> +  <depend>libudev-dev</depend>\n>> +  <depend>libunwind-dev</depend>\n>\n> These two dependencies are optional. I'm curious, how are optional\n> dependencies supposed to be handled ? package.xml seems specific to ROS,\n> does it need to pick a set of options that will be enabled in the\n> context of ROS, and then list the corresponding dependencies here ? If\n> so, how would libcamera be built on ROS, how are the meson configuration\n> option set ?\n\nThere is no way to define or handle optional dependencies. The\n\"package.xml\" does not interact with the options for the build system.\n\nWhile this kind of metadata definition originates from ROS, it can be\nused in conjunction with colcon and rosdep to build plain CMake or meson\npackages without any dependencies on ROS packages. \"colcon\" is a kind of\nmeta build system to build large sets of packages with cross source\ndependencies, and \"rosdep\" is a tool to install binary dependencies via\ndistribution packages.\n\nRunning \"colcon build\" will run with the default configuration. You can\npass meson specific options via \"--meson-args\". However, there is no way\nto let the \"package.xml\" and \"rosdep\" know which of those dependencies\nare optional and depending on some build options. I am not sure if there\nis a way to specify package-specific build options inside the package.\nHowever, since libcamera defines most features as auto, you could simply\nadd those optional dependencies to the metadata and let libcamera\nactivate that feature automatically.\n\n>\n>> +\n>> +  <export>\n>> +    <build_type>meson</build_type>\n>> +  </export>\n>> +</package>\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 71EB3C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Aug 2022 22:40:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BBD4961FBB;\n\tSat, 13 Aug 2022 00:40:38 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.17.21])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4AF8761FA6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 13 Aug 2022 00:40:37 +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\t1MORAU-1o16JG3FgE-00PwWa for\n\t<libcamera-devel@lists.libcamera.org>; Sat, 13 Aug 2022 00:40:36 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660344038;\n\tbh=JNwMCakXlu+PBIMwCHn5cmtzw5+mmAJJPDnzcrrGKS0=;\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=dGumQAnjzxKquYnaX6hB9CJhY2Wt1aJ8EWamWUGe9KM6zIi6s641x3me1dBYBuvmo\n\tzKyhnZ+pWHRqq4j3swsbrVZTPDg3uyLJtt+ek7zBe8odA5ItBh+Ch+92Fmd1BZEryz\n\tYz8gs0XszJocxkLDt+HjK8/kEfPqCmx9bc/M8CwyRaA1Gfdy1J8YBJiMbw1HOmJyzZ\n\tW3+ug3tBpSUBVe/xw6DK3yrojV6XIiezXqWCysDZ8KtEwKKQoarbNyfjvZjoxSU3zc\n\tLgIwoDEN2+sdJ5GcWe4v+cofvJU36/Rf5ZxQjOYowW7RZ2esQ/65amf7feM2HS9/Lz\n\tfIr8MLcN3zeDQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1660344036;\n\tbh=JNwMCakXlu+PBIMwCHn5cmtzw5+mmAJJPDnzcrrGKS0=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=KhO7MCbBHWXmilOPIUn4U/NvDpTtEFAsSIn1aQk38WNq8x9MBtclr0zdJgS0vtkjT\n\tRlqc5wyhI3YJYUvqui+s05ZGGsXF3DWT1H4b8Lnkr8avecdRPUJ+8bM+EKa6QTqhKz\n\t2EnuWyTchXxk+312OrkAkeuZmv/hTbHmt+OeXEz8="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"KhO7MCbB\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<65e93424-8b84-b146-847b-d861df9cb7b8@gmx.de>","Date":"Sat, 13 Aug 2022 00:40:36 +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":"<20220811195230.112400-1-Rauch.Christian@gmx.de>\n\t<YvWD3xTEbEMA9yXW@pendragon.ideasonboard.com>","In-Reply-To":"<YvWD3xTEbEMA9yXW@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:Nn/19FNma44eDzB2bOk/5W5yAwOuBoU7lUFqAZEckEVcP/n6j16\n\tbmXOnNqFPH4J9TaUzTZZ9SSwHDlit1mNaCojkhxCbMh3M0zXKid0eU0YeUxeJdypyIHS1es\n\teHl4WIUytYS/A3iDFYdSOc0qb+I9Zli/xhg9lSIUyhBHwHGR2jh+lKp9Zc/Mgzw41SZpklw\n\tRZruqYZFKPwPuWd3v+4VQ==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:mXpOVIM4OHg=:Y4bqGluUU04WqRy9A+kHUX\n\t0A/ecV1JDk94LXaULMQYQ7NI+FSb1NdSdt83S3IZyK4scMZbtEDzuvsKsAUGfqjC7EfPIzS5k\n\tLd9p+qjFvVpJB/9VeKM2xsM7w1LffS9UxmpmE5LOV+8kfXhhTTdU7/mEMKZYpDeLWbXchderr\n\t0ueBRhmRujT9LiA8GBDNzJ0IG/1zwQKHi9Ko+zEm5MHDL+ahUOH7FYb0psE/v9F10iE74wd8L\n\tfef8fsWin5zReiCGTUlcVw8gCjqeuYnS6Xg2ne7OwduTSLObrfKzytsn5xrIUf2eV/Qe/duRb\n\tk+LcyWKW1di7qM4Nhi5B3Go6yZv9pjYwoEJxnMRPn5NTi2d/c1WQ6ezeP40HBMNyYDnksp/qQ\n\tfNJ5yNqyzks0y4z3cr0hYP6S4/GzFShRGSyjjlGugT+RpOrK7yymYUejpSklM8U7tLU2wYeeT\n\t8Gwo5/l3AnMCJoE8Ge7hwnTVQ6ErjNOuORW1v2CqA2p8BM0dJBRad9KfzQ83IXSoUXBkmOFpT\n\tENzYVocWKcjx97N5Q/E7qiOhj+BFIZpc+s+fkJXJfznBkk049H+ZqY5K95pZ/EBPGMZgdYDKy\n\tiHb5HdnC7m1vFDloabortEpFynrkcZhWI/RTISYRL2O1qg4k4f3DA+ye2jyCnyK13QYoOF+E7\n\tHrL5N08L35bG2qfn5xNVsIaDfDW7oFrnz88pngnHl3UZdcGZtlhk2Nn4IOjJEYqGwUlDUN+PK\n\t5FLWfyTWOCGO8ytjyP7PkBYLcX55R41rRvMyuJJ/rZc5TJ9vmN7QSagRdlv8YeC5CLKHQgqGe\n\tFShUW+rSbeM5KNl3QZPa8CEQC+vX7z3KT/nyrN7ecW8glt2gcZ1sG4YWZ/AAlcGhvG3oVkyL8\n\tg+eXlucXTywUmngQneLAmvRsC/a8PETjHrSqOstfM1KSOrGfbqW1EBm8iJ0Kr7N61HO28sR0d\n\tneIOe8hXl+HySCwtcbyDrl+EjPLWXfWAxzxTkrBIc1OsycxDSeunat5Xck4duWkF8+zLBY76m\n\tu1p/35KRMHX+EulwhRigFld0Q7e1qBe75vPaLYBBjFcBbrijeZwQhIvefuDsHHlIyWhVGOMub\n\t6jATSTd568hjJX+ieTsSSTqdZ857+adnWGspLmoxjtXnBEgP7gjqFo5KQ==","Subject":"Re: [libcamera-devel] [PATCH] 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":24560,"web_url":"https://patchwork.libcamera.org/comment/24560/","msgid":"<ff1d6eea-9e17-9d42-40e8-094a50498986@gmx.de>","date":"2022-08-12T23:29:57","subject":"Re: [libcamera-devel] [PATCH] package metadata","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Jacopo,\n\nAm 12.08.22 um 09:28 schrieb Jacopo Mondi:\n> Hi\n>\n> On Fri, Aug 12, 2022 at 01:34:07AM +0300, Laurent Pinchart via libcamera-devel wrote:\n>> Hi Christian,\n>>\n>> Thank you for the patch.\n>>\n>> On Thu, Aug 11, 2022 at 09:52:30PM +0200, Christian Rauch via libcamera-devel wrote:\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 | 32 ++++++++++++++++++++++++++++++++\n>\n> I would also move this to package/ros/package.xml\n\nI think this has to be on the same hierarchical level as the\n'meson.build', i.e. in the root of this project.\n\n>\n>>>  1 file changed, 32 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..8b06f507\n>>> --- /dev/null\n>>> +++ b/package.xml\n>>> @@ -0,0 +1,32 @@\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>>> +  <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>>> +  <url>https://libcamera.org</url>\n>>> +\n>>> +  <buildtool_depend>python3-meson-pip</buildtool_depend>\n>>> +  <buildtool_depend>ninja-build</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>libgnutls28-dev</depend>\n>>> +  <depend>openssl</depend>\n>>\n>> openssl is a build dependency. Since a few days ago, it can also\n>> optionally be a runtime dependency to replace gnutls.\n>>\n>>> +  <depend>boost</depend>\n>>\n>> We don't depend on boost anymore.\n>>\n>>> +  <depend>libudev-dev</depend>\n>>> +  <depend>libunwind-dev</depend>\n>>\n>> These two dependencies are optional. I'm curious, how are optional\n>> dependencies supposed to be handled ? package.xml seems specific to ROS,\n>> does it need to pick a set of options that will be enabled in the\n>> context of ROS, and then list the corresponding dependencies here ? If\n>> so, how would libcamera be built on ROS, how are the meson configuration\n>> option set ?\n>>\n>>> +\n>>> +  <export>\n>>> +    <build_type>meson</build_type>\n>>> +  </export>\n>>> +</package>\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 67189BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 12 Aug 2022 23:30:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DA72061FB9;\n\tSat, 13 Aug 2022 01:29:59 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.17.22])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C775B61FA6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 13 Aug 2022 01:29:57 +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\t1N2mBQ-1nNvEP1IqK-0139C5 for\n\t<libcamera-devel@lists.libcamera.org>; Sat, 13 Aug 2022 01:29:57 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660346999;\n\tbh=n+PF8FyTKxYmhlvX9z6UgSI5Dn0LY7PjhN3opmgX+ns=;\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=QdkfPIr37sqGDgPySnn+PZTbAXnbU14n3tUbI7n/8GNtrkkd6ImoKPyvRvpag0k7q\n\tE13PV5uPMP5HVOBQY9YIfPFP3fMJYtJcWrzsVpI8827CJ57hLdfSPKDAxrQqcNyEhB\n\t/T7L6k0HFjORYRGcL+BzzB1QdX+IghYL6xbXQyDL2Vh82+26cr6ApGEWXmzO5jXBck\n\tI7dv9bYB58K9G8Bb5+f5tugCYZczTmiSqcokppqc1Qst6HgdqKfVee5B4+ZPXDSZzQ\n\tNMo3BjAdv127oeL5U/tjws5XuqtDr7C0drWa/HDo4Zt5816D1v+/9zsRf4MdPGqcsI\n\tE/LakyDbiQ7EA==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1660346997;\n\tbh=n+PF8FyTKxYmhlvX9z6UgSI5Dn0LY7PjhN3opmgX+ns=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=fbVrN57tolMhPBkd9XpoplhDbPc5HjMaXJv+gUl5gcjeDjBYC5BnMBvrI9dMlCjlB\n\tcHktiLlXfpV5JDNfSplSvW1WaNnBxg+G6b9fgP6/D/JSiUbVm/y0/YzvceLtqzQ+J3\n\t/Z4TOR2ru5O9XvwKcC0/nxnVrwL/fC1LRiZlEZCc="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"fbVrN57t\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<ff1d6eea-9e17-9d42-40e8-094a50498986@gmx.de>","Date":"Sat, 13 Aug 2022 01:29:57 +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":"<20220811195230.112400-1-Rauch.Christian@gmx.de>\n\t<YvWD3xTEbEMA9yXW@pendragon.ideasonboard.com>\n\t<20220812072812.mqw6j3uqfnj4jvvd@uno.localdomain>","In-Reply-To":"<20220812072812.mqw6j3uqfnj4jvvd@uno.localdomain>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:6Nr88s8uQBgR+XrZgRmJY9m/NTcUY2LH7eDesrTXpq6UJS7KXKY\n\t8xcmStdF9ts/E9722G5GyDB9/1/xIRs+H/TM/xmG5aI76pCkIIAqvYI62yOD8tWyQxafrCJ\n\tjbPo2fC6w3s2eygbkT0Fk7mlzcf3967S/bT7oE+VqwN3UeUWYkMhx5Ri2r1oRBSgqgYNjnG\n\tBVFK9aT+iIIC7+/O6g1fQ==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:DcqVoOzcaZQ=:PIzNd7aHkS8XLnaERKSaTK\n\tXDogMdaFWAPh7OreTr4D0bdns+FAEtaIjo1TDvcySagwOD46DnV/EOM2pcSCRof0W0knDK3ez\n\tpvLsUte4hREMIf1JadHcCO8B4RJ4iKIXP5ceGOfm93dxBkQ56eWNYgJPRwziz/1EA347IQUhe\n\tdjdJDKnBfKOOwYXATZx0jqfgQXEVAe2y8vC2Rym2uMbg59+e9vKVRtrTPaN0px/xLvNKkJ80q\n\tu0pcO86UEm6wVxoNwaKiVoWJZes6XvtxTYTnFeJkitWeFtBsnYH6c80LKWSojh/f7oCrsOob7\n\t5CkeIXIvhrw6hc6L9OarCtNR2qVO+HTw7t45z1PJo4Z8CXMNxJy48HREjWixVf2a/pfGNVIKC\n\tdtNWGChvSDHrFQOYfvttFKdPcXfkzXEtUN7DHWj6bzzk+wKRFVJeR5BIQtGbA3gyzeidqYw20\n\tXWJEV4zUQkyhULvuQ/D4SvCNbqKYbyNNt5Cto8sLKlfFCNT1WdiSsiMeF/3OxTuYbFfOOyEeJ\n\tDGjKhXSoJ0pZcaBHRPe4J3VqDLPsC+bF/6U1KxCJL0YOzUmsPLzztkGtHCsUYlxlEc7aZWRMe\n\tUzHTKACjOhnO4WXZlmN8LO91JgWWg2lfsp0ZCrsVgn3+94qMD389Z/dj+hU2FJ61hkIhiW1td\n\tozLRK122Gnon8Ms/dMpSH/4s1o6fKHmbF5FZXfB6uNBXon1zTkz9oPOvoJrVIb+Zkd0zCVevC\n\tJ0QMKmNo5Z2w9uAJwFoUfzVyAMMn6mghG6RUhj3aY5wgmrAsaZrUgobr6hUf3yWK+kZk6S8Fp\n\t2/hpH5fMxi5ywn897rWagqXUxoC8ZxVW174TbOOR82R4UkE7IAkIRtm3x8COHOUQ6Zzi+cMQR\n\tiBZAPhL9Nq/i3hmm92dKkPgYz2bG1VY7BwpJ/AkVXnAyYj3ElETGc24/Jhs1A//XhSRl1iXrg\n\tQeoNDsLC1PfutsSww2lPpEnoCDnZcgGwiocEhR2JsQGagqaUFjTtrvGryPV1L+KAilW7HBuHW\n\tZVLSo+o/4y294S+u6o5M4IJZVuLysR04WdRI5lliH1x/I2/MyOEDSyoKac1UUiXNueE6Dspef\n\tcxMwMWj+tbEc8bGR6jIFhNVQFLir9+hUKjZHmdL2CyvstbZWWk0Uci9Wg==","Subject":"Re: [libcamera-devel] [PATCH] 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":24561,"web_url":"https://patchwork.libcamera.org/comment/24561/","msgid":"<YvfRmLLC9VhxdEjZ@pendragon.ideasonboard.com>","date":"2022-08-13T16:30:16","subject":"Re: [libcamera-devel] [PATCH] package metadata","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Christian,\n\nOn Sat, Aug 13, 2022 at 12:40:36AM +0200, Christian Rauch via libcamera-devel wrote:\n> Am 12.08.22 um 00:34 schrieb Laurent Pinchart:\n> > On Thu, Aug 11, 2022 at 09:52:30PM +0200, Christian Rauch via libcamera-devel wrote:\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 | 32 ++++++++++++++++++++++++++++++++\n> >>  1 file changed, 32 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..8b06f507\n> >> --- /dev/null\n> >> +++ b/package.xml\n> >> @@ -0,0 +1,32 @@\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> >> +  <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> >> +  <url>https://libcamera.org</url>\n> >> +\n> >> +  <buildtool_depend>python3-meson-pip</buildtool_depend>\n> >> +  <buildtool_depend>ninja-build</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>libgnutls28-dev</depend>\n> >> +  <depend>openssl</depend>\n> >\n> > openssl is a build dependency. Since a few days ago, it can also\n> > optionally be a runtime dependency to replace gnutls.\n> >\n> >> +  <depend>boost</depend>\n> >\n> > We don't depend on boost anymore.\n> >\n> >> +  <depend>libudev-dev</depend>\n> >> +  <depend>libunwind-dev</depend>\n> >\n> > These two dependencies are optional. I'm curious, how are optional\n> > dependencies supposed to be handled ? package.xml seems specific to ROS,\n> > does it need to pick a set of options that will be enabled in the\n> > context of ROS, and then list the corresponding dependencies here ? If\n> > so, how would libcamera be built on ROS, how are the meson configuration\n> > option set ?\n> \n> There is no way to define or handle optional dependencies. The\n> \"package.xml\" does not interact with the options for the build system.\n> \n> While this kind of metadata definition originates from ROS, it can be\n> used in conjunction with colcon and rosdep to build plain CMake or meson\n> packages without any dependencies on ROS packages. \"colcon\" is a kind of\n> meta build system to build large sets of packages with cross source\n> dependencies, and \"rosdep\" is a tool to install binary dependencies via\n> distribution packages.\n> \n> Running \"colcon build\" will run with the default configuration. You can\n> pass meson specific options via \"--meson-args\". However, there is no way\n> to let the \"package.xml\" and \"rosdep\" know which of those dependencies\n> are optional and depending on some build options. I am not sure if there\n> is a way to specify package-specific build options inside the package.\n> However, since libcamera defines most features as auto, you could simply\n> add those optional dependencies to the metadata and let libcamera\n> activate that feature automatically.\n\nThis sounds to me like package.xml is then similar to OpenEmbedded .bb\nrecipes, or to the Buildroot package .mk files. I'm not very\nenthousiastic about carrying in the libcamera repository package\ndescriptions for lots of different build systems, they don't really seem\nto belong to libcamera. They're also bound to bitrot as we won't test\nthem.\n\n> >> +\n> >> +  <export>\n> >> +    <build_type>meson</build_type>\n> >> +  </export>\n> >> +</package>","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 8D86EC3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 13 Aug 2022 16:30:31 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E032A61FC0;\n\tSat, 13 Aug 2022 18:30:30 +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 E545A61FBB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 13 Aug 2022 18:30:29 +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 5B3B948F;\n\tSat, 13 Aug 2022 18:30:29 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660408230;\n\tbh=G6/XkDvGnODBETRjDCj/t2T2PD3/eTmFocrwh8pUzfs=;\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=1AS9lhZfoNsQM1UnwUlHzDWUT2/1xPV7/1K5pc7XsqhyRMrSLpQdzybLwAe/xnDPW\n\twSxjGUFIz7XOlVougAG0ieBLoHhoTD9kgsdrJrf6q5U/2D4ykYnAia5FuPTeKz7v1p\n\tf2kOy8uYsUIP/OPPtikxog7k/D/3jkaeX9y6TLKIn6q36qNWTJHLQ3kV4DlqAcLmMd\n\t0Md8IbHvf56XNZNsiaJYCQ9vYJxn67U1EuK1wFv6Cgsf7sf+FaYzw76QCYU+4KbuHo\n\t2Ohu5dQ7SmFwXyXAjb9Gp7Oi2I2/Fj/LlwsK2ilJUnXSquuKn4Pm2mlwaFNUAfOuIj\n\tAEXJ8wX2Ym8fw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1660408229;\n\tbh=G6/XkDvGnODBETRjDCj/t2T2PD3/eTmFocrwh8pUzfs=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=IdL6owsKd/ff+/JCZBpd0+wy1hGzDf+HNhY+xOoSGNdCsIWkfZIPkHy5pu7l7W57o\n\t3GsFMp/neidPP9jniizJttgOCzIuC+avcU3tZ4sNaUZV7f8Z+fTEKWCbEQ5D4iSrZ9\n\tQq08fC167s7IVg/BN8O/mGhIq94ChBrT238ChkCI="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"IdL6owsK\"; dkim-atps=neutral","Date":"Sat, 13 Aug 2022 19:30:16 +0300","To":"Christian Rauch <Rauch.Christian@gmx.de>","Message-ID":"<YvfRmLLC9VhxdEjZ@pendragon.ideasonboard.com>","References":"<20220811195230.112400-1-Rauch.Christian@gmx.de>\n\t<YvWD3xTEbEMA9yXW@pendragon.ideasonboard.com>\n\t<65e93424-8b84-b146-847b-d861df9cb7b8@gmx.de>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<65e93424-8b84-b146-847b-d861df9cb7b8@gmx.de>","Subject":"Re: [libcamera-devel] [PATCH] 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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24562,"web_url":"https://patchwork.libcamera.org/comment/24562/","msgid":"<2073cab7-9089-f677-072c-8683642b324f@gmx.de>","date":"2022-08-13T20:59:40","subject":"Re: [libcamera-devel] [PATCH] package metadata","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Laurent,\n\nI can understand (and was kind of expecting) that you do not want to add\nthat file.\n\nWhile those build systems (catkin, colcon) can be used independently of\nROS, they are not used widely outside of ROS at the moment. I intend to\npackage \"libcamera\" and use it in a camera node. For this, I have to\nprovide the package.xml. If this is not merged upstream, I will have to\npatch the file in. This is why I was hoping that the file could be\nmerged, and I do not have to manually patch the file for every release.\n\nRegarding bitrot... The solution is to just run a colcon build job. This\nis simplified with actions on GitHub:\nhttps://github.com/christianrauch/libcamera-ci/blob/ci/.github/workflows/colcon.yml.\nIf you have a custom build server somewhere, I could add a CI job for\ncolcon there.\n\nIf bitrot is the only concern, then I am offering to maintain the\npackage.xml and its build job, in return for not having to manually\npatch that file :-)\n\nBest,\nChristian\n\n\nAm 13.08.22 um 18:30 schrieb Laurent Pinchart:\n> Hi Christian,\n>\n> On Sat, Aug 13, 2022 at 12:40:36AM +0200, Christian Rauch via libcamera-devel wrote:\n>> Am 12.08.22 um 00:34 schrieb Laurent Pinchart:\n>>> On Thu, Aug 11, 2022 at 09:52:30PM +0200, Christian Rauch via libcamera-devel wrote:\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 | 32 ++++++++++++++++++++++++++++++++\n>>>>  1 file changed, 32 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..8b06f507\n>>>> --- /dev/null\n>>>> +++ b/package.xml\n>>>> @@ -0,0 +1,32 @@\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>>>> +  <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>>>> +  <url>https://libcamera.org</url>\n>>>> +\n>>>> +  <buildtool_depend>python3-meson-pip</buildtool_depend>\n>>>> +  <buildtool_depend>ninja-build</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>libgnutls28-dev</depend>\n>>>> +  <depend>openssl</depend>\n>>>\n>>> openssl is a build dependency. Since a few days ago, it can also\n>>> optionally be a runtime dependency to replace gnutls.\n>>>\n>>>> +  <depend>boost</depend>\n>>>\n>>> We don't depend on boost anymore.\n>>>\n>>>> +  <depend>libudev-dev</depend>\n>>>> +  <depend>libunwind-dev</depend>\n>>>\n>>> These two dependencies are optional. I'm curious, how are optional\n>>> dependencies supposed to be handled ? package.xml seems specific to ROS,\n>>> does it need to pick a set of options that will be enabled in the\n>>> context of ROS, and then list the corresponding dependencies here ? If\n>>> so, how would libcamera be built on ROS, how are the meson configuration\n>>> option set ?\n>>\n>> There is no way to define or handle optional dependencies. The\n>> \"package.xml\" does not interact with the options for the build system.\n>>\n>> While this kind of metadata definition originates from ROS, it can be\n>> used in conjunction with colcon and rosdep to build plain CMake or meson\n>> packages without any dependencies on ROS packages. \"colcon\" is a kind of\n>> meta build system to build large sets of packages with cross source\n>> dependencies, and \"rosdep\" is a tool to install binary dependencies via\n>> distribution packages.\n>>\n>> Running \"colcon build\" will run with the default configuration. You can\n>> pass meson specific options via \"--meson-args\". However, there is no way\n>> to let the \"package.xml\" and \"rosdep\" know which of those dependencies\n>> are optional and depending on some build options. I am not sure if there\n>> is a way to specify package-specific build options inside the package.\n>> However, since libcamera defines most features as auto, you could simply\n>> add those optional dependencies to the metadata and let libcamera\n>> activate that feature automatically.\n>\n> This sounds to me like package.xml is then similar to OpenEmbedded .bb\n> recipes, or to the Buildroot package .mk files. I'm not very\n> enthousiastic about carrying in the libcamera repository package\n> descriptions for lots of different build systems, they don't really seem\n> to belong to libcamera. They're also bound to bitrot as we won't test\n> them.\n>\n>>>> +\n>>>> +  <export>\n>>>> +    <build_type>meson</build_type>\n>>>> +  </export>\n>>>> +</package>\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 81799BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 13 Aug 2022 20:59:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id ECE1461FC0;\n\tSat, 13 Aug 2022 22:59:41 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.17.20])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5DF3A61FBB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 13 Aug 2022 22:59:41 +0200 (CEST)","from [192.168.0.158] ([88.152.184.103]) by mail.gmx.net (mrgmx105\n\t[212.227.17.168]) with ESMTPSA (Nemesis) id\n\t1MdebB-1noBZt3peT-00ZfaF for\n\t<libcamera-devel@lists.libcamera.org>; Sat, 13 Aug 2022 22:59:40 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660424381;\n\tbh=8Dh1R67efT8a0WW4IVVllLsxl8JDqTFQg7bWbu/lYes=;\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=2sKO/EJbxb5+/Ipu/dupxc8AV6+1eAuHZpdr/aoKyp5oHwb0C6Z6aZgws9KrDpCim\n\tlthZLdIHT3gi325ttQAUtCR8uz2A8DNzDhT27QEkbbCYhRnTIi1laHAdGXSzVdgPSB\n\teamrydkPIhZZ7Nv3uJgqad9kHuIKo2sJek+txDC2/lQSwpk/DG1nyCQnuuP//dcC+Z\n\tPXZugqaw/X4jxSkv9YATbBfIth2SxxCjmkWtqQ8Tj/3ppf24TIlBwiS32z4GC7bCkn\n\twot7sQz/Rxztlpx6jo7Z1kA+qb49nlwFxsUCUDsJAXFxKYnW6iRI21aPjSwQqb1X7k\n\tZ2FlF2QglUNTg==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1660424381;\n\tbh=8Dh1R67efT8a0WW4IVVllLsxl8JDqTFQg7bWbu/lYes=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=MfQ9svl0LlIecAk0sG3Tkud+M0iu9SVl7E1Q7tnzuD1gPdYPWXE36dh0nr+A5GDU5\n\tWRid3AF0I/YrutAWiH2f/I3/TMbD5eMiqqQcxXb1Peiz2jD2yGo4BC/FGuvcGg7wOh\n\tbkatdcfvrD5HLjyZ5NgrgoxwsNEwUQLgj3tzHgOA="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"MfQ9svl0\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<2073cab7-9089-f677-072c-8683642b324f@gmx.de>","Date":"Sat, 13 Aug 2022 22:59:40 +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":"<20220811195230.112400-1-Rauch.Christian@gmx.de>\n\t<YvWD3xTEbEMA9yXW@pendragon.ideasonboard.com>\n\t<65e93424-8b84-b146-847b-d861df9cb7b8@gmx.de>\n\t<YvfRmLLC9VhxdEjZ@pendragon.ideasonboard.com>","In-Reply-To":"<YvfRmLLC9VhxdEjZ@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:fSb3rhHyiIsDRAIp14ioH/iNaAYWRnIn/j3pZPysT2B465gCtPG\n\tb2FPiQrWjyGYVBNsgZcJOsSy+9TrAwRUMQXAwnSnM7U8e+pjO+GaUXgl/fMPqvVyzSr+2QQ\n\t64nFgLdGIsj1ctU9HimIaW51cbYnuNe9+0REsAR3468+PG6W9nsgTWmbkaP+7iox6ANeNRr\n\tqjeg92ziso2oKNzLarBnQ==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:tWVEDC2E1s0=:MZKDZCd0g4CUNjJ4RcnbNi\n\tZmMIVt5E+urA26xfQoMe4ltCcPO65ooP9jKMe7r7t3f8xq/Kil3BU71HQuKkgB248x11YMrWq\n\t92G6l40KA8DeqLSCSCC5Wwu7S/MoJqGJRyDQfeM2b29ymDEZxqepRuDzsf4YhMYKXDEp+zr1X\n\t26T3bhH+ixambtd2mnF17eWvLttL4rASVrcwKXIpSdXUZ4UEl5ltDwPNDzBVaZ3QCmuu3MjuU\n\t1NBoRPRexAHUQLuH9sf5dnOndqMPdQ3eiGkMnRU9MdOB6+J8iQ5y2y6+LWA99Ad2Xe3KLQW7E\n\tpX93T65npyzE2tjjPpGCciOWyr7E3uVnubMLkD4g2P0fy6cn/8Qf1Q+Q6pRb6ezBn5xK4/F00\n\t48hnKGNTG5oKyv/pJPSEOp7NopbkcEpdsPcvnAh2MxIr8HCsm1xYVmS/8YzExHLkVFxeD9OqP\n\tAKt7GZ1WipJc75qq6K7abyZlxM9boh8xDHNyDSw2CQJMnUUOwG9N5mWwwHu9fRyXFn99t6psU\n\tFGuUyjrohlyEBWauWIg80H01dye1+QmJW9Fy4PCfGgoQPFhL26R0Vcunbsrz+V04IjS7LN6WR\n\tA0D7Cwe52jwP/LedS3B6u/NpeTSvUoEnD88azMj6KGm9a0KjgjqGuLGePXzoVfBgSHkyFzXfx\n\tktc1vTd84yWxQPWXuacVg1T5szpWcwV2j+rghkjcXZBFcZqcwdBeii/JIBJ4+9vxPSCInm6DF\n\tzy6SXYDVamrkYWdjl4lXiyj9s8HR4JQUXkqoLLPE/DSCRJWUf9J2eLdtyIwk1HsPhhQ/bXaL1\n\ttfPzmuq1Otnxx50RD1X2Gp1C52P8JBqWbmjS5VAuQsyURxEfTEDkFz0G/UiAefC809E8ew4ZS\n\tNrQEOdeWwM4K3Sxi6KUNJvL6G0gZjiEfKVHbXMdTZS/kEh1EREcNgMTClhDWDW5CT+8qxeaFN\n\tHUrrKH88h617VHfGZiV0NLqoJpODT5aGd2whtR4gcyPHm28IB8VvVoBiNBytZOzc5a3Ema/Ev\n\tXtkqyNwhS0fv37ZGOmnYAZEUnQjZQIWSNJB0+FMj+iuy44cUlhzQ/T939triXCfgp4KpV8LKL\n\tO2PWBRbHmanp+HYmf3riEg6w4Sey9VKfge2tkdg6Nwx4x/jgwoRF29pyQ==","Subject":"Re: [libcamera-devel] [PATCH] 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":24576,"web_url":"https://patchwork.libcamera.org/comment/24576/","msgid":"<YvpJK8ten3dGaEuq@pendragon.ideasonboard.com>","date":"2022-08-15T13:24:59","subject":"Re: [libcamera-devel] [PATCH] package metadata","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Christian,\n\nOn Sat, Aug 13, 2022 at 10:59:40PM +0200, Christian Rauch via libcamera-devel wrote:\n> Hi Laurent,\n> \n> I can understand (and was kind of expecting) that you do not want to add\n> that file.\n> \n> While those build systems (catkin, colcon) can be used independently of\n> ROS, they are not used widely outside of ROS at the moment. I intend to\n> package \"libcamera\" and use it in a camera node. For this, I have to\n> provide the package.xml. If this is not merged upstream, I will have to\n> patch the file in. This is why I was hoping that the file could be\n> merged, and I do not have to manually patch the file for every release.\n\nDo those tools expect that all projects will merge a package.xml file ?\nI'm a bit surprised, thinking again about other similar systems (from\nBuildroot, OpenEmbedded or Debian), they usually either maintain the\npackage build \"instructions\" (for lack of a better term) separately\nunconditionally (Buildroot or OpenEmbedded) or support maintaining it\nseparately as a first class use case (Debian). Is there no such\necosystem for ROS for instance ?\n\n> Regarding bitrot... The solution is to just run a colcon build job. This\n> is simplified with actions on GitHub:\n> https://github.com/christianrauch/libcamera-ci/blob/ci/.github/workflows/colcon.yml.\n> If you have a custom build server somewhere, I could add a CI job for\n> colcon there.\n> \n> If bitrot is the only concern, then I am offering to maintain the\n> package.xml and its build job, in return for not having to manually\n> patch that file :-)\n> \n> Am 13.08.22 um 18:30 schrieb Laurent Pinchart:\n> > On Sat, Aug 13, 2022 at 12:40:36AM +0200, Christian Rauch via libcamera-devel wrote:\n> >> Am 12.08.22 um 00:34 schrieb Laurent Pinchart:\n> >>> On Thu, Aug 11, 2022 at 09:52:30PM +0200, Christian Rauch via libcamera-devel wrote:\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 | 32 ++++++++++++++++++++++++++++++++\n> >>>>  1 file changed, 32 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..8b06f507\n> >>>> --- /dev/null\n> >>>> +++ b/package.xml\n> >>>> @@ -0,0 +1,32 @@\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> >>>> +  <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> >>>> +  <url>https://libcamera.org</url>\n> >>>> +\n> >>>> +  <buildtool_depend>python3-meson-pip</buildtool_depend>\n> >>>> +  <buildtool_depend>ninja-build</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>libgnutls28-dev</depend>\n> >>>> +  <depend>openssl</depend>\n> >>>\n> >>> openssl is a build dependency. Since a few days ago, it can also\n> >>> optionally be a runtime dependency to replace gnutls.\n> >>>\n> >>>> +  <depend>boost</depend>\n> >>>\n> >>> We don't depend on boost anymore.\n> >>>\n> >>>> +  <depend>libudev-dev</depend>\n> >>>> +  <depend>libunwind-dev</depend>\n> >>>\n> >>> These two dependencies are optional. I'm curious, how are optional\n> >>> dependencies supposed to be handled ? package.xml seems specific to ROS,\n> >>> does it need to pick a set of options that will be enabled in the\n> >>> context of ROS, and then list the corresponding dependencies here ? If\n> >>> so, how would libcamera be built on ROS, how are the meson configuration\n> >>> option set ?\n> >>\n> >> There is no way to define or handle optional dependencies. The\n> >> \"package.xml\" does not interact with the options for the build system.\n> >>\n> >> While this kind of metadata definition originates from ROS, it can be\n> >> used in conjunction with colcon and rosdep to build plain CMake or meson\n> >> packages without any dependencies on ROS packages. \"colcon\" is a kind of\n> >> meta build system to build large sets of packages with cross source\n> >> dependencies, and \"rosdep\" is a tool to install binary dependencies via\n> >> distribution packages.\n> >>\n> >> Running \"colcon build\" will run with the default configuration. You can\n> >> pass meson specific options via \"--meson-args\". However, there is no way\n> >> to let the \"package.xml\" and \"rosdep\" know which of those dependencies\n> >> are optional and depending on some build options. I am not sure if there\n> >> is a way to specify package-specific build options inside the package.\n> >> However, since libcamera defines most features as auto, you could simply\n> >> add those optional dependencies to the metadata and let libcamera\n> >> activate that feature automatically.\n> >\n> > This sounds to me like package.xml is then similar to OpenEmbedded .bb\n> > recipes, or to the Buildroot package .mk files. I'm not very\n> > enthousiastic about carrying in the libcamera repository package\n> > descriptions for lots of different build systems, they don't really seem\n> > to belong to libcamera. They're also bound to bitrot as we won't test\n> > them.\n> >\n> >>>> +\n> >>>> +  <export>\n> >>>> +    <build_type>meson</build_type>\n> >>>> +  </export>\n> >>>> +</package>","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 50F75C3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Aug 2022 13:25:15 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A64FF61FC0;\n\tMon, 15 Aug 2022 15:25:14 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AE7EA61FB9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Aug 2022 15:25:12 +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 2E24E48F;\n\tMon, 15 Aug 2022 15:25:12 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660569914;\n\tbh=7Njda31pKq1Uba8LLy+dqBSF3S7S7RHR0lOOfDmJ4rU=;\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=xCBaIRCl+S5PxLClL140YAVxqn7S1VmgLuznWpb/R75hMPQsVjW7SN/WSLk4Z3V4E\n\t8tFvJbMRMe377C67+4HjrIVy54BmyIy4AOAwVX3Q9vAOxm2nz9QOrc7CzqWWCI6Ucv\n\tk9MLHQzOwPorPFW3GOfiEhpSmMp6DxP0GfJvnVObmerrq+C7KBBGHRlE0YZKh1J86P\n\t63J1zoUlxElpDm4qCumrAM2WTWRw/Dtgh5hYlFZod1e0EJeEA2I0dRBqp7uVGHhnJJ\n\titwmyV4kQeemNgkV4s67L/S2uokwAmEm1cibKDb91s+x0rVssJfc+OP3sGrj/2WTwr\n\tO9d6u+tPwcC1g==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1660569912;\n\tbh=7Njda31pKq1Uba8LLy+dqBSF3S7S7RHR0lOOfDmJ4rU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=qaehzd71A6j2od5KUA+J4SnyJJyNgFCuOP1xI2CD/7g/3/EBgiH+noX0knQmjVkDJ\n\t4sYpnlOmHlHdz/an6UFUxoPK457X5ObsT6nfyWX7FSF/aPW0XCfrtlPqvRW5K4UOgD\n\taCJISfWFpA6JDoxM/oYRVeIITABsnqRYa6aYx91g="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"qaehzd71\"; dkim-atps=neutral","Date":"Mon, 15 Aug 2022 16:24:59 +0300","To":"Christian Rauch <Rauch.Christian@gmx.de>","Message-ID":"<YvpJK8ten3dGaEuq@pendragon.ideasonboard.com>","References":"<20220811195230.112400-1-Rauch.Christian@gmx.de>\n\t<YvWD3xTEbEMA9yXW@pendragon.ideasonboard.com>\n\t<65e93424-8b84-b146-847b-d861df9cb7b8@gmx.de>\n\t<YvfRmLLC9VhxdEjZ@pendragon.ideasonboard.com>\n\t<2073cab7-9089-f677-072c-8683642b324f@gmx.de>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<2073cab7-9089-f677-072c-8683642b324f@gmx.de>","Subject":"Re: [libcamera-devel] [PATCH] 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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":24585,"web_url":"https://patchwork.libcamera.org/comment/24585/","msgid":"<f5953086-a7a9-9ed3-15be-7f2425ed12a4@gmx.de>","date":"2022-08-15T19:24:17","subject":"Re: [libcamera-devel] [PATCH] package metadata","submitter":{"id":111,"url":"https://patchwork.libcamera.org/api/people/111/","name":"Christian Rauch","email":"Rauch.Christian@gmx.de"},"content":"Hi Laurent,\n\nAm 15.08.22 um 15:24 schrieb Laurent Pinchart:\n> Hi Christian,\n>\n> On Sat, Aug 13, 2022 at 10:59:40PM +0200, Christian Rauch via libcamera-devel wrote:\n>> Hi Laurent,\n>>\n>> I can understand (and was kind of expecting) that you do not want to add\n>> that file.\n>>\n>> While those build systems (catkin, colcon) can be used independently of\n>> ROS, they are not used widely outside of ROS at the moment. I intend to\n>> package \"libcamera\" and use it in a camera node. For this, I have to\n>> provide the package.xml. If this is not merged upstream, I will have to\n>> patch the file in. This is why I was hoping that the file could be\n>> merged, and I do not have to manually patch the file for every release.\n>\n> Do those tools expect that all projects will merge a package.xml file ?\n> I'm a bit surprised, thinking again about other similar systems (from\n> Buildroot, OpenEmbedded or Debian), they usually either maintain the\n> package build \"instructions\" (for lack of a better term) separately\n> unconditionally (Buildroot or OpenEmbedded) or support maintaining it\n> separately as a first class use case (Debian). Is there no such\n> ecosystem for ROS for instance ?\n\nNo. It's not a requirement. Quite often, third-part libraries are\ninstalled by CMake wrappers that have to be maintained manually. I am\njust asking to add the file to the upstream repo for the convenience of\nROS users. Some projects include that file [1], some patch it in during\nthe release process [2].\n\n[1] https://github.com/AprilRobotics/apriltag/blob/master/package.xml\n[2] https://github.com/frankaemika/libfranka\n\nI think it is the same for Debian packages. Some include the \"debian\"\nfolder, some leave it to the distribution to add this information.\n\n\n>\n>> Regarding bitrot... The solution is to just run a colcon build job. This\n>> is simplified with actions on GitHub:\n>> https://github.com/christianrauch/libcamera-ci/blob/ci/.github/workflows/colcon.yml.\n>> If you have a custom build server somewhere, I could add a CI job for\n>> colcon there.\n>>\n>> If bitrot is the only concern, then I am offering to maintain the\n>> package.xml and its build job, in return for not having to manually\n>> patch that file :-)\n>>\n>> Am 13.08.22 um 18:30 schrieb Laurent Pinchart:\n>>> On Sat, Aug 13, 2022 at 12:40:36AM +0200, Christian Rauch via libcamera-devel wrote:\n>>>> Am 12.08.22 um 00:34 schrieb Laurent Pinchart:\n>>>>> On Thu, Aug 11, 2022 at 09:52:30PM +0200, Christian Rauch via libcamera-devel wrote:\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 | 32 ++++++++++++++++++++++++++++++++\n>>>>>>  1 file changed, 32 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..8b06f507\n>>>>>> --- /dev/null\n>>>>>> +++ b/package.xml\n>>>>>> @@ -0,0 +1,32 @@\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>>>>>> +  <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>>>>>> +  <url>https://libcamera.org</url>\n>>>>>> +\n>>>>>> +  <buildtool_depend>python3-meson-pip</buildtool_depend>\n>>>>>> +  <buildtool_depend>ninja-build</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>libgnutls28-dev</depend>\n>>>>>> +  <depend>openssl</depend>\n>>>>>\n>>>>> openssl is a build dependency. Since a few days ago, it can also\n>>>>> optionally be a runtime dependency to replace gnutls.\n>>>>>\n>>>>>> +  <depend>boost</depend>\n>>>>>\n>>>>> We don't depend on boost anymore.\n>>>>>\n>>>>>> +  <depend>libudev-dev</depend>\n>>>>>> +  <depend>libunwind-dev</depend>\n>>>>>\n>>>>> These two dependencies are optional. I'm curious, how are optional\n>>>>> dependencies supposed to be handled ? package.xml seems specific to ROS,\n>>>>> does it need to pick a set of options that will be enabled in the\n>>>>> context of ROS, and then list the corresponding dependencies here ? If\n>>>>> so, how would libcamera be built on ROS, how are the meson configuration\n>>>>> option set ?\n>>>>\n>>>> There is no way to define or handle optional dependencies. The\n>>>> \"package.xml\" does not interact with the options for the build system.\n>>>>\n>>>> While this kind of metadata definition originates from ROS, it can be\n>>>> used in conjunction with colcon and rosdep to build plain CMake or meson\n>>>> packages without any dependencies on ROS packages. \"colcon\" is a kind of\n>>>> meta build system to build large sets of packages with cross source\n>>>> dependencies, and \"rosdep\" is a tool to install binary dependencies via\n>>>> distribution packages.\n>>>>\n>>>> Running \"colcon build\" will run with the default configuration. You can\n>>>> pass meson specific options via \"--meson-args\". However, there is no way\n>>>> to let the \"package.xml\" and \"rosdep\" know which of those dependencies\n>>>> are optional and depending on some build options. I am not sure if there\n>>>> is a way to specify package-specific build options inside the package.\n>>>> However, since libcamera defines most features as auto, you could simply\n>>>> add those optional dependencies to the metadata and let libcamera\n>>>> activate that feature automatically.\n>>>\n>>> This sounds to me like package.xml is then similar to OpenEmbedded .bb\n>>> recipes, or to the Buildroot package .mk files. I'm not very\n>>> enthousiastic about carrying in the libcamera repository package\n>>> descriptions for lots of different build systems, they don't really seem\n>>> to belong to libcamera. They're also bound to bitrot as we won't test\n>>> them.\n>>>\n>>>>>> +\n>>>>>> +  <export>\n>>>>>> +    <build_type>meson</build_type>\n>>>>>> +  </export>\n>>>>>> +</package>\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 E9C0BC3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Aug 2022 19:24:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 47B0861FC0;\n\tMon, 15 Aug 2022 21:24:20 +0200 (CEST)","from mout.gmx.net (mout.gmx.net [212.227.17.20])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BBCEB61FB9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Aug 2022 21:24:18 +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\t1M3DNt-1oMpgd1BnB-003aLt for\n\t<libcamera-devel@lists.libcamera.org>; Mon, 15 Aug 2022 21:24:18 +0200"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1660591460;\n\tbh=KRueFEDSMWuRR8h26traqIKPrV9A5NQYnqYJElXTp2Y=;\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=ibV8rNdmKRQn0taKW0k8fKR9qcNiUFv6Ymmy4fe6SnJqql2PTw89lazU/nAld8qtd\n\tsXZ6PgHRWgME1is8MAxMgEqd/T3jvTM5Kf5OTQV/ap+ejaL/ehOM+Tu0PGRPMIP7gm\n\t1Jo93jgOG1N8lO60gMSHeKjQyYI8Tqy7H8CP0rwTbfbBHlbb054GJd3TKZmTiAzc2w\n\t/zsxOU14lo1Rc/G/U3BWreqN3fzqDYvi9iUloyfGKsn5LLlboOBFlysw6FVniDCrZs\n\t0anSNuWQr1ijRuoDPtRI9uCfcc6+Czpgi6zSijDOoqgyFzBVyWkfBwiAMmnmUHmTs2\n\tCFuhwvtg6mUtg==","v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;\n\ts=badeba3b8450; t=1660591458;\n\tbh=KRueFEDSMWuRR8h26traqIKPrV9A5NQYnqYJElXTp2Y=;\n\th=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To;\n\tb=RSpNOLtpbOQcfljYqF0YaE/Tkn7N/SxIzlPLHkJVX9nqoVGWmzbX0ASI518TW8GXR\n\tvUyw6hurjbWrb3pSSIO3nMHqORcSvzNlSlXlxk0Sfe3tP4FvgcxZTYgNy5wP/iBf5T\n\tbuwRTlzDtT2fc/S6ZIA16085S66+aI7XFPqtJOBQ="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=gmx.net header.i=@gmx.net\n\theader.b=\"RSpNOLtp\"; dkim-atps=neutral","X-UI-Sender-Class":"01bb95c1-4bf8-414a-932a-4f6e2808ef9c","Message-ID":"<f5953086-a7a9-9ed3-15be-7f2425ed12a4@gmx.de>","Date":"Mon, 15 Aug 2022 21:24:17 +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":"<20220811195230.112400-1-Rauch.Christian@gmx.de>\n\t<YvWD3xTEbEMA9yXW@pendragon.ideasonboard.com>\n\t<65e93424-8b84-b146-847b-d861df9cb7b8@gmx.de>\n\t<YvfRmLLC9VhxdEjZ@pendragon.ideasonboard.com>\n\t<2073cab7-9089-f677-072c-8683642b324f@gmx.de>\n\t<YvpJK8ten3dGaEuq@pendragon.ideasonboard.com>","In-Reply-To":"<YvpJK8ten3dGaEuq@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"quoted-printable","X-Provags-ID":"V03:K1:XLKWxFuOmcjN83MKa8471CVxcJag5tHvcVPwSGh6ctfK4UDummW\n\tWsqR/JyYybDSDv5tuaGDVNETzndxdNcFhJuYdACG5qkoIY8yE02QAlj2T/BJ5v98SzI8DaJ\n\t+dL1XwnLBXpNXkn+MvDOvC0X4StRh0ZoN9FmjEu+rYQ6Cyayy1YBexgKkyId2IbZblnICRl\n\twtXU+tTB2KOemInLqn02Q==","X-Spam-Flag":"NO","X-UI-Out-Filterresults":"notjunk:1; V03:K0:d2sCWYm9Fpg=:C8l0knqcslkrUn06RaNMZ8\n\tHgI4+u7BUvkQmIDcU8kqwZs9PwCJoCMJk1HlrwPwbzbyRPY6bdfwRSh11sG2dbTs7a7j/vy/H\n\tLnX9JweyxcVvyqIBMTcRAQLF6xNgMRZ8PazRY2TxuK7Bo4unm6cDS4CQws9ZpuRqdUvHDiZa2\n\t3Jr5emJMHhu5UicOGUdQVdeqlrYHjK0IaN2i4/iyv/4TjAa6ZhfFnXRuBx46fwcvViEM83k5m\n\tiHcS5/jyh7EHWMt43dR4X1+Lmtf/+KN0NF5MBAzVuKt/jCU7DYE6uD7VVVysqOfuEbVnki4iI\n\tMnJAUShQYkayTyoJfcOhaCcX9EjB8AlF9jL00yt1QW2KggG7F/XAxvhWSX2zUU3YiSBl1nV1W\n\tcYjIj+AYXRRfk6d6QtBpVryi/a3jhoNqZnONtRtk+g2fGH93p3FC1EpK9QFcBAbomQPFjewVc\n\tlflxPM+1DDve7eONpJDjDA3ydqEuWf1W8r7SC82ROB2NLMy5gzbXICaQhBEm0CoNOEj65eIYZ\n\tB8Q3GoOCzPDIgtWu1W5L5CIWW5+cE5AuFBMG+fmot+234RRiJql/xHRAPoBXdHHa0WQDsFp1h\n\toy3E94nV4hUFsUovbKLd4+Vpnfw2ALS7YNg333ul1BHRuVOyHRtNtBNqz822jn97/V29PqPhT\n\tgblqOxw8g2rUieHUFNbblKD9domsBxXs1RGjuVe/6ZsByzBHsiLp/zLSNMFvqXcUsuyL16yl1\n\t63Y6VJ9R1hS/N+lHse4+qBiKnWjk9NHCGawIPGWbwCOgM7QBO9ib+n4+ya2DqLX8FATrCAyUk\n\tsWTrF9Fy/Oh7v5BBbfU+x/6bQCSJp18cByWXhK45eYyt6ZJ7lxGRrKr1ti+teYv6YlwXslOHz\n\tN1EKpTyyadi7cJYgdBqYf7DnU5+gBr2jaQALB2bRfFKHJtJkiHCwT0pEnxFVkO9WkaT4dgHxl\n\tg9VGPZooOZRYhiMX8Q+FHqpSAdJGH4ojNXZt53OQH1CjSoRNJxjkdWjzG9OBZLL2o58WbaHtx\n\tnWcnWGLggy1Sr+MIrTyUiTTBisiIeweDIuQQDvkhPgxy2/9BR7Oqkv9ucJE04qW2mimF938sc\n\tpHlbprUZIKitsna7ZH8sqHeAZiS7prRekcHrqlLG+OM9qsanFzlHvytQg==","Subject":"Re: [libcamera-devel] [PATCH] 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>"}}]