[{"id":35027,"web_url":"https://patchwork.libcamera.org/comment/35027/","msgid":"<898fb6c9-0786-45cc-a349-1aba3eac615d@ideasonboard.com>","date":"2025-07-22T14:41:37","subject":"Re: [PATCH v14 08/12] config: Add global configuration file\n\tdocumentation","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\nSorry, but every time I look at this I find something...\n\n2025. 07. 15. 10:19 keltezéssel, Milan Zamazal írta:\n> Extend (and rename) the documentation of environment variables with\n> information about the configuration file.\n> \n> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n> ---\n>   Documentation/documentation-contents.rst      |   2 +-\n>   Documentation/index.rst                       |   2 +-\n>   Documentation/meson.build                     |   2 +-\n>   ...ariables.rst => runtime_configuration.rst} | 100 ++++++++++++++++--\n>   4 files changed, 94 insertions(+), 12 deletions(-)\n>   rename Documentation/{environment_variables.rst => runtime_configuration.rst} (67%)\n> \n> diff --git a/Documentation/documentation-contents.rst b/Documentation/documentation-contents.rst\n> index 5c1118493..4be3729cf 100644\n> --- a/Documentation/documentation-contents.rst\n> +++ b/Documentation/documentation-contents.rst\n> @@ -7,7 +7,7 @@\n>      * :doc:`/feature_requirements`\n>      * :doc:`/guides/application-developer`\n>      * :doc:`/python-bindings`\n> -   * :doc:`/environment_variables`\n> +   * :doc:`/runtime_configuration`\n>      * :doc:`/api-html/index`\n>      * :doc:`/code-of-conduct`\n>      * |\n> diff --git a/Documentation/index.rst b/Documentation/index.rst\n> index 251112fbd..200de6f67 100644\n> --- a/Documentation/index.rst\n> +++ b/Documentation/index.rst\n> @@ -12,13 +12,13 @@\n>   \n>      Application Writer's Guide <guides/application-developer>\n>      Camera Sensor Model <camera-sensor-model>\n> -   Environment variables <environment_variables>\n>      Feature Requirements <feature_requirements>\n>      IPA Writer's guide <guides/ipa>\n>      Lens driver requirements <lens_driver_requirements>\n>      libcamera Architecture <libcamera_architecture>\n>      Pipeline Handler Writer's Guide <guides/pipeline-handler>\n>      Python Bindings <python-bindings>\n> +   Runtime configuration <runtime_configuration>\n>      Sensor driver requirements <sensor_driver_requirements>\n>      SoftwareISP Benchmarking <software-isp-benchmarking>\n>      Tracing guide <guides/tracing>\n> diff --git a/Documentation/meson.build b/Documentation/meson.build\n> index 0fc5909d0..6d5af0f62 100644\n> --- a/Documentation/meson.build\n> +++ b/Documentation/meson.build\n> @@ -128,7 +128,6 @@ if sphinx.found()\n>           'contributing.rst',\n>           'design/ae.rst',\n>           'documentation-contents.rst',\n> -        'environment_variables.rst',\n>           'feature_requirements.rst',\n>           'guides/application-developer.rst',\n>           'guides/ipa.rst',\n> @@ -140,6 +139,7 @@ if sphinx.found()\n>           'libcamera_architecture.rst',\n>           'mali-c55.dot',\n>           'python-bindings.rst',\n> +        'runtime_configuration.rst',\n>           'sensor_driver_requirements.rst',\n>           'software-isp-benchmarking.rst',\n>          '../README.rst',\n> diff --git a/Documentation/environment_variables.rst b/Documentation/runtime_configuration.rst\n> similarity index 67%\n> rename from Documentation/environment_variables.rst\n> rename to Documentation/runtime_configuration.rst\n> index 6f1235587..aaf158ef4 100644\n> --- a/Documentation/environment_variables.rst\n> +++ b/Documentation/runtime_configuration.rst\n> @@ -2,15 +2,93 @@\n>   \n>   .. include:: documentation-contents.rst\n>   \n> -Environment variables\n> +Runtime configuration\n>   =====================\n>   \n> -The libcamera behaviour can be tuned through environment variables. This\n> -document lists all the available variables and describes their usage.\n> +The libcamera behaviour can be tuned through a configuration file or\n> +environment variables. This document lists all the configuration options\n> +and describes their usage.\n> +\n> +General rules\n> +-------------\n> +\n> +The configuration file is looked up in the following locations, in this\n> +order:\n> +\n> +- $XDG_CONFIG_HOME/libcamera/configuration.yaml\n> +- LIBCAMERA_SYSCONF_DIR/configuration.yaml\n> +- LIBCAMERA_DATA_DIR/libcamera/configuration.yaml\n> +\n> +The first configuration file found wins, configuration files in other\n> +locations are ignored.\n> +\n> +Settings in environment variables take precedence over settings in\n> +configuration files. This allows overriding behaviour temporarily\n> +without the need to modify configuration files.\n> +\n> +Configuration options\n> +---------------------\n> +\n> +Here is an overview of the available configuration options, in the YAML\n> +file structure:\n> +\n> +::\n> +\n> +  configuration:\n> +    ipa:\n> +      config_paths: # full paths to directories, separated by colons\n> +      force_isolation: # true/false\n> +      module_paths: # full paths to directories, separated by colons\n\n`config_paths and `module_paths` are lists. I think the comment should\nbe amended, the example below looks ok.\n\n\nRegards,\nBarnabás Pőcze\n\n\n> +    pipelines_match_list: # pipeline names, separated by commas\n> +    pipelines:\n> +      rpi:\n> +        bcm2835:\n> +          pipeline_handler:\n> +            ...\n> +        pisp:\n> +          pipeline_handler:\n> +            ...\n> +      simple:\n> +        supported_devices:\n> +        - driver: # driver name, e.g. `mxc-isi`\n> +          software_isp: # true/false\n> +\n> +Configuration file example\n> +--------------------------\n> +\n> +::\n> +\n> +   ---\n> +   version: 1\n> +   configuration:\n> +     ipa:\n> +       config_paths:\n> +       - /home/user/.libcamera/share/ipa\n> +       - /opt/libcamera/vendor/share/ipa\n> +       module_paths:\n> +       - /home/user/.libcamera/lib\n> +       - /opt/libcamera/vendor/lib\n> +       proxy_paths:\n> +       - /home/user/.libcamera/proxy/worker\n> +       - /opt/libcamera/vendor/proxy/worker\n> +       force_isolation: true\n> +     pipelines_match_list: rkisp1,simple\n> +     pipelines:\n> +       rpi:\n> +         bcm2835:\n> +           pipeline_handler:\n> +             min_unicam_buffers: 2\n> +             min_total_unicam_buffers: 2\n> +       simple:\n> +         supported_devices:\n> +         - driver: mxc-isi\n> +           software_isp: true\n>   \n>   List of variables\n>   -----------------\n>   \n> +The corresponding configuration file paths, if available, are listed in parentheses.\n> +\n>   LIBCAMERA_LOG_FILE\n>      The custom destination for log output.\n>   \n> @@ -24,27 +102,27 @@ LIBCAMERA_LOG_LEVELS\n>   LIBCAMERA_LOG_NO_COLOR\n>      Disable coloring of log messages (`more <Notes about debugging_>`__).\n>   \n> -LIBCAMERA_IPA_CONFIG_PATH\n> +LIBCAMERA_IPA_CONFIG_PATH (ipa.config_paths)\n>      Define custom search locations for IPA configurations (`more <IPA configuration_>`__).\n>   \n>      Example value: ``${HOME}/.libcamera/share/ipa:/opt/libcamera/vendor/share/ipa``\n>   \n> -LIBCAMERA_IPA_FORCE_ISOLATION\n> +LIBCAMERA_IPA_FORCE_ISOLATION (ipa.force_isolation)\n>      When set to a non-empty string, force process isolation of all IPA modules.\n>   \n>      Example value: ``1``\n>   \n> -LIBCAMERA_IPA_MODULE_PATH\n> +LIBCAMERA_IPA_MODULE_PATH (ipa.module_paths)\n>      Define custom search locations for IPA modules (`more <IPA module_>`__).\n>   \n>      Example value: ``${HOME}/.libcamera/lib:/opt/libcamera/vendor/lib``\n>   \n> -LIBCAMERA_IPA_PROXY_PATH\n> +LIBCAMERA_IPA_PROXY_PATH (ipa.proxy_paths)\n>      Define custom full path for a proxy worker for a given executable name.\n>   \n>      Example value: ``${HOME}/.libcamera/proxy/worker:/opt/libcamera/vendor/proxy/worker``\n>   \n> -LIBCAMERA_PIPELINES_MATCH_LIST\n> +LIBCAMERA_PIPELINES_MATCH_LIST (pipelines_match_list)\n>      Define an ordered list of pipeline names to be used to match the media\n>      devices in the system. The pipeline handler names used to populate the\n>      variable are the ones passed to the REGISTER_PIPELINE_HANDLER() macro in the\n> @@ -55,6 +133,10 @@ LIBCAMERA_PIPELINES_MATCH_LIST\n>   LIBCAMERA_RPI_CONFIG_FILE\n>      Define a custom configuration file to use in the Raspberry Pi pipeline handler.\n>   \n> +   Instead of using a separate configuration file, the whole\n> +   configuration can be put directly to the global configuration file as\n> +   outlined above.\n> +\n>      Example value: ``/usr/local/share/libcamera/pipeline/rpi/vc4/minimal_mem.yaml``\n>   \n>   LIBCAMERA_<NAME>_TUNING_FILE\n> @@ -156,7 +238,7 @@ code.\n>   IPA configuration\n>   ~~~~~~~~~~~~~~~~~\n>   \n> -IPA modules use configuration files to store parameters. The format and\n> +IPA modules use their own configuration files to store parameters. The format and\n>   contents of the configuration files is specific to the IPA module. They usually\n>   contain tuning parameters for the algorithms, in JSON format.\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 A604CBDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 22 Jul 2025 14:41:40 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5765169041;\n\tTue, 22 Jul 2025 16:41:40 +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 F172369036\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 22 Jul 2025 16:41:38 +0200 (CEST)","from [192.168.33.11] (185.221.140.39.nat.pool.zt.hu\n\t[185.221.140.39])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 259FF79E6;\n\tTue, 22 Jul 2025 16:40:59 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"j/vbELuV\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1753195261;\n\tbh=YQsK7uJkNdqCJ49BUl1VEMX3aS1hhGtOBa3+38erFhk=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=j/vbELuVli3eIfUPSH+dJr/QKOXXEKewFT2K5dxlca8LD1ZQk/ZU9KuhW9L3cKaqr\n\tgcgqRZBfzWEqMrOKkYoHXm8/ID4ktWPrvCPONp0yx1od8vhTXXMFvFAsZZD9+U8VBM\n\tb6riOWFw8znMm67D4fP3dhJO6v/af0r6UF8VzGIQ=","Message-ID":"<898fb6c9-0786-45cc-a349-1aba3eac615d@ideasonboard.com>","Date":"Tue, 22 Jul 2025 16:41:37 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v14 08/12] config: Add global configuration file\n\tdocumentation","To":"Milan Zamazal <mzamazal@redhat.com>, libcamera-devel@lists.libcamera.org","Cc":"Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20250715081921.5522-1-mzamazal@redhat.com>\n\t<20250715081921.5522-9-mzamazal@redhat.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20250715081921.5522-9-mzamazal@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":35090,"web_url":"https://patchwork.libcamera.org/comment/35090/","msgid":"<85cy9qlzme.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-07-24T09:14:17","subject":"Re: [PATCH v14 08/12] config: Add global configuration file\n\tdocumentation","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Barnabás,\n\nBarnabás Pőcze <barnabas.pocze@ideasonboard.com> writes:\n\n> Hi\n>\n> Sorry, but every time I look at this I find something...\n\nNo problem, thank you for pointing out the omission.\n\n> 2025. 07. 15. 10:19 keltezéssel, Milan Zamazal írta:\n>> Extend (and rename) the documentation of environment variables with\n>> information about the configuration file.\n>> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n>> ---\n>>   Documentation/documentation-contents.rst      |   2 +-\n>>   Documentation/index.rst                       |   2 +-\n>>   Documentation/meson.build                     |   2 +-\n>>   ...ariables.rst => runtime_configuration.rst} | 100 ++++++++++++++++--\n>>   4 files changed, 94 insertions(+), 12 deletions(-)\n>>   rename Documentation/{environment_variables.rst => runtime_configuration.rst} (67%)\n>> diff --git a/Documentation/documentation-contents.rst b/Documentation/documentation-contents.rst\n>> index 5c1118493..4be3729cf 100644\n>> --- a/Documentation/documentation-contents.rst\n>> +++ b/Documentation/documentation-contents.rst\n>> @@ -7,7 +7,7 @@\n>>      * :doc:`/feature_requirements`\n>>      * :doc:`/guides/application-developer`\n>>      * :doc:`/python-bindings`\n>> -   * :doc:`/environment_variables`\n>> +   * :doc:`/runtime_configuration`\n>>      * :doc:`/api-html/index`\n>>      * :doc:`/code-of-conduct`\n>>      * |\n>> diff --git a/Documentation/index.rst b/Documentation/index.rst\n>> index 251112fbd..200de6f67 100644\n>> --- a/Documentation/index.rst\n>> +++ b/Documentation/index.rst\n>> @@ -12,13 +12,13 @@\n>>        Application Writer's Guide <guides/application-developer>\n>>      Camera Sensor Model <camera-sensor-model>\n>> -   Environment variables <environment_variables>\n>>      Feature Requirements <feature_requirements>\n>>      IPA Writer's guide <guides/ipa>\n>>      Lens driver requirements <lens_driver_requirements>\n>>      libcamera Architecture <libcamera_architecture>\n>>      Pipeline Handler Writer's Guide <guides/pipeline-handler>\n>>      Python Bindings <python-bindings>\n>> +   Runtime configuration <runtime_configuration>\n>>      Sensor driver requirements <sensor_driver_requirements>\n>>      SoftwareISP Benchmarking <software-isp-benchmarking>\n>>      Tracing guide <guides/tracing>\n>> diff --git a/Documentation/meson.build b/Documentation/meson.build\n>> index 0fc5909d0..6d5af0f62 100644\n>> --- a/Documentation/meson.build\n>> +++ b/Documentation/meson.build\n>> @@ -128,7 +128,6 @@ if sphinx.found()\n>>           'contributing.rst',\n>>           'design/ae.rst',\n>>           'documentation-contents.rst',\n>> -        'environment_variables.rst',\n>>           'feature_requirements.rst',\n>>           'guides/application-developer.rst',\n>>           'guides/ipa.rst',\n>> @@ -140,6 +139,7 @@ if sphinx.found()\n>>           'libcamera_architecture.rst',\n>>           'mali-c55.dot',\n>>           'python-bindings.rst',\n>> +        'runtime_configuration.rst',\n>>           'sensor_driver_requirements.rst',\n>>           'software-isp-benchmarking.rst',\n>>          '../README.rst',\n>> diff --git a/Documentation/environment_variables.rst b/Documentation/runtime_configuration.rst\n>> similarity index 67%\n>> rename from Documentation/environment_variables.rst\n>> rename to Documentation/runtime_configuration.rst\n>> index 6f1235587..aaf158ef4 100644\n>> --- a/Documentation/environment_variables.rst\n>> +++ b/Documentation/runtime_configuration.rst\n>> @@ -2,15 +2,93 @@\n>>     .. include:: documentation-contents.rst\n>>   -Environment variables\n>> +Runtime configuration\n>>   =====================\n>>   -The libcamera behaviour can be tuned through environment variables. This\n>> -document lists all the available variables and describes their usage.\n>> +The libcamera behaviour can be tuned through a configuration file or\n>> +environment variables. This document lists all the configuration options\n>> +and describes their usage.\n>> +\n>> +General rules\n>> +-------------\n>> +\n>> +The configuration file is looked up in the following locations, in this\n>> +order:\n>> +\n>> +- $XDG_CONFIG_HOME/libcamera/configuration.yaml\n>> +- LIBCAMERA_SYSCONF_DIR/configuration.yaml\n>> +- LIBCAMERA_DATA_DIR/libcamera/configuration.yaml\n>> +\n>> +The first configuration file found wins, configuration files in other\n>> +locations are ignored.\n>> +\n>> +Settings in environment variables take precedence over settings in\n>> +configuration files. This allows overriding behaviour temporarily\n>> +without the need to modify configuration files.\n>> +\n>> +Configuration options\n>> +---------------------\n>> +\n>> +Here is an overview of the available configuration options, in the YAML\n>> +file structure:\n>> +\n>> +::\n>> +\n>> +  configuration:\n>> +    ipa:\n>> +      config_paths: # full paths to directories, separated by colons\n>> +      force_isolation: # true/false\n>> +      module_paths: # full paths to directories, separated by colons\n>\n> `config_paths and `module_paths` are lists. I think the comment should\n> be amended, the example below looks ok.\n>\n>\n> Regards,\n> Barnabás Pőcze\n>\n>\n>> +    pipelines_match_list: # pipeline names, separated by commas\n>> +    pipelines:\n>> +      rpi:\n>> +        bcm2835:\n>> +          pipeline_handler:\n>> +            ...\n>> +        pisp:\n>> +          pipeline_handler:\n>> +            ...\n>> +      simple:\n>> +        supported_devices:\n>> +        - driver: # driver name, e.g. `mxc-isi`\n>> +          software_isp: # true/false\n>> +\n>> +Configuration file example\n>> +--------------------------\n>> +\n>> +::\n>> +\n>> +   ---\n>> +   version: 1\n>> +   configuration:\n>> +     ipa:\n>> +       config_paths:\n>> +       - /home/user/.libcamera/share/ipa\n>> +       - /opt/libcamera/vendor/share/ipa\n>> +       module_paths:\n>> +       - /home/user/.libcamera/lib\n>> +       - /opt/libcamera/vendor/lib\n>> +       proxy_paths:\n>> +       - /home/user/.libcamera/proxy/worker\n>> +       - /opt/libcamera/vendor/proxy/worker\n>> +       force_isolation: true\n>> +     pipelines_match_list: rkisp1,simple\n>> +     pipelines:\n>> +       rpi:\n>> +         bcm2835:\n>> +           pipeline_handler:\n>> +             min_unicam_buffers: 2\n>> +             min_total_unicam_buffers: 2\n>> +       simple:\n>> +         supported_devices:\n>> +         - driver: mxc-isi\n>> +           software_isp: true\n>>     List of variables\n>>   -----------------\n>>   +The corresponding configuration file paths, if available, are listed in parentheses.\n>> +\n>>   LIBCAMERA_LOG_FILE\n>>      The custom destination for log output.\n>>   @@ -24,27 +102,27 @@ LIBCAMERA_LOG_LEVELS\n>>   LIBCAMERA_LOG_NO_COLOR\n>>      Disable coloring of log messages (`more <Notes about debugging_>`__).\n>>   -LIBCAMERA_IPA_CONFIG_PATH\n>> +LIBCAMERA_IPA_CONFIG_PATH (ipa.config_paths)\n>>      Define custom search locations for IPA configurations (`more <IPA configuration_>`__).\n>>        Example value: ``${HOME}/.libcamera/share/ipa:/opt/libcamera/vendor/share/ipa``\n>>   -LIBCAMERA_IPA_FORCE_ISOLATION\n>> +LIBCAMERA_IPA_FORCE_ISOLATION (ipa.force_isolation)\n>>      When set to a non-empty string, force process isolation of all IPA modules.\n>>        Example value: ``1``\n>>   -LIBCAMERA_IPA_MODULE_PATH\n>> +LIBCAMERA_IPA_MODULE_PATH (ipa.module_paths)\n>>      Define custom search locations for IPA modules (`more <IPA module_>`__).\n>>        Example value: ``${HOME}/.libcamera/lib:/opt/libcamera/vendor/lib``\n>>   -LIBCAMERA_IPA_PROXY_PATH\n>> +LIBCAMERA_IPA_PROXY_PATH (ipa.proxy_paths)\n>>      Define custom full path for a proxy worker for a given executable name.\n>>        Example value: ``${HOME}/.libcamera/proxy/worker:/opt/libcamera/vendor/proxy/worker``\n>>   -LIBCAMERA_PIPELINES_MATCH_LIST\n>> +LIBCAMERA_PIPELINES_MATCH_LIST (pipelines_match_list)\n>>      Define an ordered list of pipeline names to be used to match the media\n>>      devices in the system. The pipeline handler names used to populate the\n>>      variable are the ones passed to the REGISTER_PIPELINE_HANDLER() macro in the\n>> @@ -55,6 +133,10 @@ LIBCAMERA_PIPELINES_MATCH_LIST\n>>   LIBCAMERA_RPI_CONFIG_FILE\n>>      Define a custom configuration file to use in the Raspberry Pi pipeline handler.\n>>   +   Instead of using a separate configuration file, the whole\n>> +   configuration can be put directly to the global configuration file as\n>> +   outlined above.\n>> +\n>>      Example value: ``/usr/local/share/libcamera/pipeline/rpi/vc4/minimal_mem.yaml``\n>>     LIBCAMERA_<NAME>_TUNING_FILE\n>> @@ -156,7 +238,7 @@ code.\n>>   IPA configuration\n>>   ~~~~~~~~~~~~~~~~~\n>>   -IPA modules use configuration files to store parameters. The format and\n>> +IPA modules use their own configuration files to store parameters. The format and\n>>   contents of the configuration files is specific to the IPA module. They usually\n>>   contain tuning parameters for the algorithms, in JSON format.\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 7E154BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 24 Jul 2025 09:14:25 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3B74C690CE;\n\tThu, 24 Jul 2025 11:14:25 +0200 (CEST)","from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 86510690BC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Jul 2025 11:14:23 +0200 (CEST)","from mail-ej1-f71.google.com (mail-ej1-f71.google.com\n\t[209.85.218.71]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-401-M94nu6PyPgywz2INw4NkGg-1; Thu, 24 Jul 2025 05:14:21 -0400","by mail-ej1-f71.google.com with SMTP id\n\ta640c23a62f3a-ae0aec611beso57515566b.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Jul 2025 02:14:20 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\ta640c23a62f3a-af47d53dcbdsm83724366b.61.2025.07.24.02.14.18\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tThu, 24 Jul 2025 02:14:18 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"PsGypjxW\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1753348462;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=mzTa1r/vtcJ1K4A5UxYI7HeBVA/Gj465OATLP0bF71k=;\n\tb=PsGypjxW+6cl4FhhNEyIwcrzqooiCXrEOFhF+EkxqBR0tc8xQendB4JxKEDePe+F+gUAcY\n\tC3jDCtEGjmLvE/Xow6BbMi9FRMro6yLvoS7OHw5KT15I8gfFD1GW7Ui5thTeQ70lLbX99S\n\tUnG4EknHxiDyqG+IiVDKYEO24OWj978=","X-MC-Unique":"M94nu6PyPgywz2INw4NkGg-1","X-Mimecast-MFC-AGG-ID":"M94nu6PyPgywz2INw4NkGg_1753348460","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1753348460; x=1753953260;\n\th=content-transfer-encoding:mime-version:user-agent:message-id:date\n\t:references:in-reply-to:subject:cc:to:from:x-gm-message-state:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=TzFxdiPkqtQH1H6bZL82/KE1oVzAyw2KXo0q29xB74E=;\n\tb=dIjytzNlVCI2bmbWgo6KxicqRJPXhxdu09IjZehJK6Abyo5cZD4rAVccFNA05HMcc4\n\tX6DFTlzRcKCu/+/WpEndtymn6wDgsF3gOkq+KR7pX79vwNIve8xyscbFkX9MMQ6Egm5I\n\tAwJHYQXd6//c/FAUSmxIbkSPAjA3GRKbWD1UvwAF+l/VjHqo4jyu1vRgipwcwVINsDr2\n\t9eORYAMb3GQGYcJgeDE1fqwygLxQofxszbwOR009wg/rJAkUpGt9GdSLg7ydsYFlsrOZ\n\tKL3EjRSG6Km3k/7RDQ/1PnnBcaCaXaeCjT5SJQlFlSXRTc4S8Su8QkXWAzcZpYD1KO1I\n\tkrww==","X-Gm-Message-State":"AOJu0YwBDQgogTHIJFCzaSV1KKqlchqRsxqBVTGYiWs1gyMpsfspuEgi\n\tyJal5DKb195Cp1W1au7iEnvzE3DPc5MhcuRGeI5/wRUIIpLTKOz96CQgJjEpZVO9Kf9jGC0FtBs\n\tUR1rKeBxbGEeGtxqg+/85FhG6HcJ2jKAfm1f8w5y76oxrMVn7KMW5hUGTbNKVZvfx6Whfi5GIEq\n\tKktELY24M=","X-Gm-Gg":"ASbGncuLm/ePnOhqExmyPIzfHtpYBXb762OyWH50J17/1MaXoHLBgqthfKu+87yKC1b\n\teC0IHr1WnictDQsPhNHFR40vmoxz204UhF4UkIDtE4HlFdD7Q70Rhm8QlHBcNGXsN+ln4T6fewU\n\tcQAIIeFus6HU1FqPmBo3NXq7fXrc53mU0baJFK3umD3Twtu43VNEC+I/+KuNH4AaNYHNa1FUa/f\n\tAPaQH0/X/bpcux3o/yJm2+5fKOPHCHIHwjjx0idFOy6b5qXlJndxC//e79/KxjBQ+bQTIp9UVhT\n\trzDWE1K4m3KzC+8CE38Kbkwy14+NgvbLBirC1fPJaW7vnERVpUQ0krBnOQL2WLe/mpkoSZWCzfi\n\tldrkG7HXuvHPw0/Hg","X-Received":["by 2002:a17:907:cd0e:b0:ade:c108:c5bf with SMTP id\n\ta640c23a62f3a-af2f8d4eb19mr662250466b.43.1753348459527; \n\tThu, 24 Jul 2025 02:14:19 -0700 (PDT)","by 2002:a17:907:cd0e:b0:ade:c108:c5bf with SMTP id\n\ta640c23a62f3a-af2f8d4eb19mr662246266b.43.1753348458850; \n\tThu, 24 Jul 2025 02:14:18 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IH2pNarEuLVm8XNblQhYaCQDYsX7+NnMRSJ8TwqR11GekFhGDRgDhcMgFcscSjPVJYsRgg7yw==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org,  Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>,  Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>","Subject":"Re: [PATCH v14 08/12] config: Add global configuration file\n\tdocumentation","In-Reply-To":"<898fb6c9-0786-45cc-a349-1aba3eac615d@ideasonboard.com> (\n\t=?utf-8?b?IkJhcm5hYsOhcyBQxZFjemUiJ3M=?= message of \"Tue,\n\t22 Jul 2025  16:41:37 +0200\")","References":"<20250715081921.5522-1-mzamazal@redhat.com>\n\t<20250715081921.5522-9-mzamazal@redhat.com>\n\t<898fb6c9-0786-45cc-a349-1aba3eac615d@ideasonboard.com>","Date":"Thu, 24 Jul 2025 11:14:17 +0200","Message-ID":"<85cy9qlzme.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"hdziIu_MJhqVI7kRoJzCpUQsNa2EBPDa1yCYMqeCTn4_1753348460","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]