[{"id":34603,"web_url":"https://patchwork.libcamera.org/comment/34603/","msgid":"<20250623140742.GD300@pendragon.ideasonboard.com>","date":"2025-06-23T14:07:42","subject":"Re: [PATCH v1] meson: Use libyaml wrap file from wrapdb","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Barnabás,\n\nThank you for the patch.\n\nOn Mon, Jun 23, 2025 at 09:18:34AM +0200, Barnabás Pőcze wrote:\n> Use the libyaml wrap file from the meson wrapdb instead of\n> creating the wrap file manually and using the cmake module.\n> This provides better integration with meson, such as the\n> `force_fallback_for` built-in option.\n> \n> The `werror=false` needs to be set when the subproject is\n> used because libyaml does not compile without warnings,\n> and that would abort the build process otherwise.\n> \n> This is also needed because the upstream CMakeLists.txt is\n> out of date, failing with a sufficiently new cmake version:\n> \n>   CMake Error at CMakeLists.txt:2 (cmake_minimum_required):\n>   Compatibility with CMake < 3.5 has been removed from CMake.\n> \n> The above is nonetheless addressed by https://github.com/yaml/libyaml/pull/314,\n> but the project seems a bit inactive at the moment.\n> \n> The wrap file was added using `meson wrap install libyaml`,\n> and it can be updated using `meson wrap update libyaml`.\n> \n> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> ---\n>  src/libcamera/meson.build | 15 +++------------\n>  subprojects/libyaml.wrap  | 16 ++++++++++------\n>  2 files changed, 13 insertions(+), 18 deletions(-)\n> \n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index 28a3b0f36..9f782e729 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -84,7 +84,9 @@ if not cc.has_function('dlopen')\n>      libdl = cc.find_library('dl')\n>  endif\n>  libudev = dependency('libudev', required : get_option('udev'))\n> -libyaml = dependency('yaml-0.1', required : false)\n> +libyaml = dependency('yaml-0.1', default_options : [\n> +    'werror=false',\n> +])\n>  \n>  # Use one of gnutls or libcrypto (provided by OpenSSL), trying gnutls first.\n>  libcrypto = dependency('gnutls', required : false)\n> @@ -120,17 +122,6 @@ if libudev.found()\n>      ])\n>  endif\n>  \n> -# Fallback to a subproject if libyaml isn't found, as it's not packaged in AOSP.\n> -if not libyaml.found()\n> -    cmake = import('cmake')\n> -\n> -    libyaml_vars = cmake.subproject_options()\n> -    libyaml_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'})\n> -    libyaml_vars.append_compile_args('c', '-Wno-unused-value')\n> -    libyaml_wrap = cmake.subproject('libyaml', options : libyaml_vars)\n> -    libyaml = libyaml_wrap.dependency('yaml')\n> -endif\n> -\n>  control_sources = []\n>  \n>  controls_mode_files = {\n> diff --git a/subprojects/libyaml.wrap b/subprojects/libyaml.wrap\n> index 392416c61..85d9af44e 100644\n> --- a/subprojects/libyaml.wrap\n> +++ b/subprojects/libyaml.wrap\n> @@ -1,7 +1,11 @@\n> -# SPDX-License-Identifier: CC0-1.0\n\nI'm still concerned by dropping the SPDX tag. Can we either keep it or\ndocument the license through .reuse/dep5 ? I would prefer the former,\neven if it means manual work when updating the wrap file, as it's better\nto keep license information in the files the license applies to.\n\n> +[wrap-file]\n> +directory = yaml-0.2.5\n> +source_url = https://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz\n> +source_filename = yaml-0.2.5.tar.gz\n> +source_hash = c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4\n> +patch_filename = libyaml_0.2.5-1_patch.zip\n> +patch_url = https://wrapdb.mesonbuild.com/v2/libyaml_0.2.5-1/get_patch\n> +patch_hash = bf2e9b922be00b6b00c5fce29d9fb8dc83f0431c77239f3b73e8b254d3f3f5b5\n>  \n> -[wrap-git]\n> -directory = libyaml\n> -url = https://github.com/yaml/libyaml\n> -# tags/0.2.5\n> -revision = 2c891fc7a770e8ba2fec34fc6b545c672beb37e6\n> +[provide]\n> +yaml-0.1 = yaml_dep","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 7EAD4C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 23 Jun 2025 14:08:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BC74068DDB;\n\tMon, 23 Jun 2025 16:08:03 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3176C68DC9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Jun 2025 16:08:02 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 4FB20D77;\n\tMon, 23 Jun 2025 16:07:45 +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=\"dTDhh0eg\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1750687665;\n\tbh=kaF6rfB7F6LbeOy/cd47GCPv30B10VjSHu0rCvP6fbE=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=dTDhh0egsBngwXeSiwgE52RaypHi+HtU5caUhBQHHexMd7VbSJZU+4n2rc3JS9rAY\n\t6KPVLG1fVLNRvxo3ahXfg+GTWp9oac+muRb0+8amI+uFeCgW/vBLrYdoLDXFEjKwPR\n\tuwgQcbrr22FGcWmJXtrYiT9Ci5uiDB5GtzjoId7U=","Date":"Mon, 23 Jun 2025 17:07:42 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v1] meson: Use libyaml wrap file from wrapdb","Message-ID":"<20250623140742.GD300@pendragon.ideasonboard.com>","References":"<20250623071834.38955-1-barnabas.pocze@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20250623071834.38955-1-barnabas.pocze@ideasonboard.com>","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":34609,"web_url":"https://patchwork.libcamera.org/comment/34609/","msgid":"<523e1fa3-220d-4642-b3f0-1703e91310ef@ideasonboard.com>","date":"2025-06-23T14:13:51","subject":"Re: [PATCH v1] meson: Use libyaml wrap file from wrapdb","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n2025. 06. 23. 16:07 keltezéssel, Laurent Pinchart írta:\n> Hi Barnabás,\n> \n> Thank you for the patch.\n> \n> On Mon, Jun 23, 2025 at 09:18:34AM +0200, Barnabás Pőcze wrote:\n>> Use the libyaml wrap file from the meson wrapdb instead of\n>> creating the wrap file manually and using the cmake module.\n>> This provides better integration with meson, such as the\n>> `force_fallback_for` built-in option.\n>>\n>> The `werror=false` needs to be set when the subproject is\n>> used because libyaml does not compile without warnings,\n>> and that would abort the build process otherwise.\n>>\n>> This is also needed because the upstream CMakeLists.txt is\n>> out of date, failing with a sufficiently new cmake version:\n>>\n>>    CMake Error at CMakeLists.txt:2 (cmake_minimum_required):\n>>    Compatibility with CMake < 3.5 has been removed from CMake.\n>>\n>> The above is nonetheless addressed by https://github.com/yaml/libyaml/pull/314,\n>> but the project seems a bit inactive at the moment.\n>>\n>> The wrap file was added using `meson wrap install libyaml`,\n>> and it can be updated using `meson wrap update libyaml`.\n>>\n>> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n>> ---\n>>   src/libcamera/meson.build | 15 +++------------\n>>   subprojects/libyaml.wrap  | 16 ++++++++++------\n>>   2 files changed, 13 insertions(+), 18 deletions(-)\n>>\n>> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n>> index 28a3b0f36..9f782e729 100644\n>> --- a/src/libcamera/meson.build\n>> +++ b/src/libcamera/meson.build\n>> @@ -84,7 +84,9 @@ if not cc.has_function('dlopen')\n>>       libdl = cc.find_library('dl')\n>>   endif\n>>   libudev = dependency('libudev', required : get_option('udev'))\n>> -libyaml = dependency('yaml-0.1', required : false)\n>> +libyaml = dependency('yaml-0.1', default_options : [\n>> +    'werror=false',\n>> +])\n>>   \n>>   # Use one of gnutls or libcrypto (provided by OpenSSL), trying gnutls first.\n>>   libcrypto = dependency('gnutls', required : false)\n>> @@ -120,17 +122,6 @@ if libudev.found()\n>>       ])\n>>   endif\n>>   \n>> -# Fallback to a subproject if libyaml isn't found, as it's not packaged in AOSP.\n>> -if not libyaml.found()\n>> -    cmake = import('cmake')\n>> -\n>> -    libyaml_vars = cmake.subproject_options()\n>> -    libyaml_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'})\n>> -    libyaml_vars.append_compile_args('c', '-Wno-unused-value')\n>> -    libyaml_wrap = cmake.subproject('libyaml', options : libyaml_vars)\n>> -    libyaml = libyaml_wrap.dependency('yaml')\n>> -endif\n>> -\n>>   control_sources = []\n>>   \n>>   controls_mode_files = {\n>> diff --git a/subprojects/libyaml.wrap b/subprojects/libyaml.wrap\n>> index 392416c61..85d9af44e 100644\n>> --- a/subprojects/libyaml.wrap\n>> +++ b/subprojects/libyaml.wrap\n>> @@ -1,7 +1,11 @@\n>> -# SPDX-License-Identifier: CC0-1.0\n> \n> I'm still concerned by dropping the SPDX tag. Can we either keep it or\n> document the license through .reuse/dep5 ? I would prefer the former,\n> even if it means manual work when updating the wrap file, as it's better\n> to keep license information in the files the license applies to.\n\nOkay. But which license is appropriate? https://github.com/mesonbuild/wrapdb/issues/2213#issuecomment-2994828556\nwould suggest that they are not considered copyrightable.\n\n\nRegards,\nBarnabás Pőcze\n\n\n> \n>> +[wrap-file]\n>> +directory = yaml-0.2.5\n>> +source_url = https://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz\n>> +source_filename = yaml-0.2.5.tar.gz\n>> +source_hash = c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4\n>> +patch_filename = libyaml_0.2.5-1_patch.zip\n>> +patch_url = https://wrapdb.mesonbuild.com/v2/libyaml_0.2.5-1/get_patch\n>> +patch_hash = bf2e9b922be00b6b00c5fce29d9fb8dc83f0431c77239f3b73e8b254d3f3f5b5\n>>   \n>> -[wrap-git]\n>> -directory = libyaml\n>> -url = https://github.com/yaml/libyaml\n>> -# tags/0.2.5\n>> -revision = 2c891fc7a770e8ba2fec34fc6b545c672beb37e6\n>> +[provide]\n>> +yaml-0.1 = yaml_dep\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 DA344C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 23 Jun 2025 14:13:57 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B5C2E68DE3;\n\tMon, 23 Jun 2025 16:13:56 +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 C27CF68DC9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Jun 2025 16:13:54 +0200 (CEST)","from [192.168.33.21] (185.221.143.107.nat.pool.zt.hu\n\t[185.221.143.107])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0917BD77;\n\tMon, 23 Jun 2025 16:13:37 +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=\"MMPdWpki\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1750688018;\n\tbh=MU4jk3YTPJr+UuZBd6VECcdtlU6q3Q/li+P8joRSgPc=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=MMPdWpki8TL/T0yhMBlh6rESQla7/IzefOS5RCTowopLY16hlEgnH8Bru63opZWYm\n\tFoSDyTvGvx3VI0vdOR6hfRWwy9K2jdrr9OAd0xuzDDM6lBHprqDkQnWDzuW2YUNc5P\n\tdzvAWYXUQacK1c31xsQMdO3RpQ+0RUjTDPy3zjKg=","Message-ID":"<523e1fa3-220d-4642-b3f0-1703e91310ef@ideasonboard.com>","Date":"Mon, 23 Jun 2025 16:13:51 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v1] meson: Use libyaml wrap file from wrapdb","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20250623071834.38955-1-barnabas.pocze@ideasonboard.com>\n\t<20250623140742.GD300@pendragon.ideasonboard.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20250623140742.GD300@pendragon.ideasonboard.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":34610,"web_url":"https://patchwork.libcamera.org/comment/34610/","msgid":"<20250623141720.GE300@pendragon.ideasonboard.com>","date":"2025-06-23T14:17:20","subject":"Re: [PATCH v1] meson: Use libyaml wrap file from wrapdb","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Mon, Jun 23, 2025 at 04:13:51PM +0200, Barnabás Pőcze wrote:\n> 2025. 06. 23. 16:07 keltezéssel, Laurent Pinchart írta:\n> > On Mon, Jun 23, 2025 at 09:18:34AM +0200, Barnabás Pőcze wrote:\n> >> Use the libyaml wrap file from the meson wrapdb instead of\n> >> creating the wrap file manually and using the cmake module.\n> >> This provides better integration with meson, such as the\n> >> `force_fallback_for` built-in option.\n> >>\n> >> The `werror=false` needs to be set when the subproject is\n> >> used because libyaml does not compile without warnings,\n> >> and that would abort the build process otherwise.\n> >>\n> >> This is also needed because the upstream CMakeLists.txt is\n> >> out of date, failing with a sufficiently new cmake version:\n> >>\n> >>    CMake Error at CMakeLists.txt:2 (cmake_minimum_required):\n> >>    Compatibility with CMake < 3.5 has been removed from CMake.\n> >>\n> >> The above is nonetheless addressed by https://github.com/yaml/libyaml/pull/314,\n> >> but the project seems a bit inactive at the moment.\n> >>\n> >> The wrap file was added using `meson wrap install libyaml`,\n> >> and it can be updated using `meson wrap update libyaml`.\n> >>\n> >> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> >> ---\n> >>   src/libcamera/meson.build | 15 +++------------\n> >>   subprojects/libyaml.wrap  | 16 ++++++++++------\n> >>   2 files changed, 13 insertions(+), 18 deletions(-)\n> >>\n> >> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> >> index 28a3b0f36..9f782e729 100644\n> >> --- a/src/libcamera/meson.build\n> >> +++ b/src/libcamera/meson.build\n> >> @@ -84,7 +84,9 @@ if not cc.has_function('dlopen')\n> >>       libdl = cc.find_library('dl')\n> >>   endif\n> >>   libudev = dependency('libudev', required : get_option('udev'))\n> >> -libyaml = dependency('yaml-0.1', required : false)\n> >> +libyaml = dependency('yaml-0.1', default_options : [\n> >> +    'werror=false',\n> >> +])\n> >>   \n> >>   # Use one of gnutls or libcrypto (provided by OpenSSL), trying gnutls first.\n> >>   libcrypto = dependency('gnutls', required : false)\n> >> @@ -120,17 +122,6 @@ if libudev.found()\n> >>       ])\n> >>   endif\n> >>   \n> >> -# Fallback to a subproject if libyaml isn't found, as it's not packaged in AOSP.\n> >> -if not libyaml.found()\n> >> -    cmake = import('cmake')\n> >> -\n> >> -    libyaml_vars = cmake.subproject_options()\n> >> -    libyaml_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'})\n> >> -    libyaml_vars.append_compile_args('c', '-Wno-unused-value')\n> >> -    libyaml_wrap = cmake.subproject('libyaml', options : libyaml_vars)\n> >> -    libyaml = libyaml_wrap.dependency('yaml')\n> >> -endif\n> >> -\n> >>   control_sources = []\n> >>   \n> >>   controls_mode_files = {\n> >> diff --git a/subprojects/libyaml.wrap b/subprojects/libyaml.wrap\n> >> index 392416c61..85d9af44e 100644\n> >> --- a/subprojects/libyaml.wrap\n> >> +++ b/subprojects/libyaml.wrap\n> >> @@ -1,7 +1,11 @@\n> >> -# SPDX-License-Identifier: CC0-1.0\n> > \n> > I'm still concerned by dropping the SPDX tag. Can we either keep it or\n> > document the license through .reuse/dep5 ? I would prefer the former,\n> > even if it means manual work when updating the wrap file, as it's better\n> > to keep license information in the files the license applies to.\n> \n> Okay. But which license is appropriate? https://github.com/mesonbuild/wrapdb/issues/2213#issuecomment-2994828556\n> would suggest that they are not considered copyrightable.\n\nThat's my understanding as well. The correct license in that case would\nbe CC0-1.0 as far as I understand.\n\n> >> +[wrap-file]\n> >> +directory = yaml-0.2.5\n> >> +source_url = https://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz\n> >> +source_filename = yaml-0.2.5.tar.gz\n> >> +source_hash = c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4\n> >> +patch_filename = libyaml_0.2.5-1_patch.zip\n> >> +patch_url = https://wrapdb.mesonbuild.com/v2/libyaml_0.2.5-1/get_patch\n> >> +patch_hash = bf2e9b922be00b6b00c5fce29d9fb8dc83f0431c77239f3b73e8b254d3f3f5b5\n> >>   \n> >> -[wrap-git]\n> >> -directory = libyaml\n> >> -url = https://github.com/yaml/libyaml\n> >> -# tags/0.2.5\n> >> -revision = 2c891fc7a770e8ba2fec34fc6b545c672beb37e6\n> >> +[provide]\n> >> +yaml-0.1 = yaml_dep","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 309D8C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 23 Jun 2025 14:17:43 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 284F268DE5;\n\tMon, 23 Jun 2025 16:17:42 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E056968DCE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Jun 2025 16:17:40 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id EF39B50A;\n\tMon, 23 Jun 2025 16:17:23 +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=\"oyckzPnB\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1750688244;\n\tbh=+Rtq0BfbZ32c3K3OMK9AldILSVyIgiqWpVlILUw0E9Q=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=oyckzPnBt/OIoqVbfdxyj5YLJEhZUMei7hEor3CESbSzuqcm8QQ7WP0ZWqxxL+vgj\n\t2cutITKFW1moLWYbIU+KK4YxpDGWcOel4ehCYqMTiQ3Ia81zMI/U3u2Fz547TBnmm0\n\tFQqy38jqVZgJpvV4Tic3GWYLTZBn77E9mvHmbHzU=","Date":"Mon, 23 Jun 2025 17:17:20 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v1] meson: Use libyaml wrap file from wrapdb","Message-ID":"<20250623141720.GE300@pendragon.ideasonboard.com>","References":"<20250623071834.38955-1-barnabas.pocze@ideasonboard.com>\n\t<20250623140742.GD300@pendragon.ideasonboard.com>\n\t<523e1fa3-220d-4642-b3f0-1703e91310ef@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<523e1fa3-220d-4642-b3f0-1703e91310ef@ideasonboard.com>","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":34612,"web_url":"https://patchwork.libcamera.org/comment/34612/","msgid":"<43038bae-453e-4b3c-a980-a4c7a7907a6f@ideasonboard.com>","date":"2025-06-23T14:22:57","subject":"Re: [PATCH v1] meson: Use libyaml wrap file from wrapdb","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n2025. 06. 23. 16:17 keltezéssel, Laurent Pinchart írta:\n> On Mon, Jun 23, 2025 at 04:13:51PM +0200, Barnabás Pőcze wrote:\n>> 2025. 06. 23. 16:07 keltezéssel, Laurent Pinchart írta:\n>>> On Mon, Jun 23, 2025 at 09:18:34AM +0200, Barnabás Pőcze wrote:\n>>>> Use the libyaml wrap file from the meson wrapdb instead of\n>>>> creating the wrap file manually and using the cmake module.\n>>>> This provides better integration with meson, such as the\n>>>> `force_fallback_for` built-in option.\n>>>>\n>>>> The `werror=false` needs to be set when the subproject is\n>>>> used because libyaml does not compile without warnings,\n>>>> and that would abort the build process otherwise.\n>>>>\n>>>> This is also needed because the upstream CMakeLists.txt is\n>>>> out of date, failing with a sufficiently new cmake version:\n>>>>\n>>>>     CMake Error at CMakeLists.txt:2 (cmake_minimum_required):\n>>>>     Compatibility with CMake < 3.5 has been removed from CMake.\n>>>>\n>>>> The above is nonetheless addressed by https://github.com/yaml/libyaml/pull/314,\n>>>> but the project seems a bit inactive at the moment.\n>>>>\n>>>> The wrap file was added using `meson wrap install libyaml`,\n>>>> and it can be updated using `meson wrap update libyaml`.\n>>>>\n>>>> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n>>>> ---\n>>>>    src/libcamera/meson.build | 15 +++------------\n>>>>    subprojects/libyaml.wrap  | 16 ++++++++++------\n>>>>    2 files changed, 13 insertions(+), 18 deletions(-)\n>>>>\n>>>> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n>>>> index 28a3b0f36..9f782e729 100644\n>>>> --- a/src/libcamera/meson.build\n>>>> +++ b/src/libcamera/meson.build\n>>>> @@ -84,7 +84,9 @@ if not cc.has_function('dlopen')\n>>>>        libdl = cc.find_library('dl')\n>>>>    endif\n>>>>    libudev = dependency('libudev', required : get_option('udev'))\n>>>> -libyaml = dependency('yaml-0.1', required : false)\n>>>> +libyaml = dependency('yaml-0.1', default_options : [\n>>>> +    'werror=false',\n>>>> +])\n>>>>    \n>>>>    # Use one of gnutls or libcrypto (provided by OpenSSL), trying gnutls first.\n>>>>    libcrypto = dependency('gnutls', required : false)\n>>>> @@ -120,17 +122,6 @@ if libudev.found()\n>>>>        ])\n>>>>    endif\n>>>>    \n>>>> -# Fallback to a subproject if libyaml isn't found, as it's not packaged in AOSP.\n>>>> -if not libyaml.found()\n>>>> -    cmake = import('cmake')\n>>>> -\n>>>> -    libyaml_vars = cmake.subproject_options()\n>>>> -    libyaml_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'})\n>>>> -    libyaml_vars.append_compile_args('c', '-Wno-unused-value')\n>>>> -    libyaml_wrap = cmake.subproject('libyaml', options : libyaml_vars)\n>>>> -    libyaml = libyaml_wrap.dependency('yaml')\n>>>> -endif\n>>>> -\n>>>>    control_sources = []\n>>>>    \n>>>>    controls_mode_files = {\n>>>> diff --git a/subprojects/libyaml.wrap b/subprojects/libyaml.wrap\n>>>> index 392416c61..85d9af44e 100644\n>>>> --- a/subprojects/libyaml.wrap\n>>>> +++ b/subprojects/libyaml.wrap\n>>>> @@ -1,7 +1,11 @@\n>>>> -# SPDX-License-Identifier: CC0-1.0\n>>>\n>>> I'm still concerned by dropping the SPDX tag. Can we either keep it or\n>>> document the license through .reuse/dep5 ? I would prefer the former,\n>>> even if it means manual work when updating the wrap file, as it's better\n>>> to keep license information in the files the license applies to.\n>>\n>> Okay. But which license is appropriate? https://github.com/mesonbuild/wrapdb/issues/2213#issuecomment-2994828556\n>> would suggest that they are not considered copyrightable.\n> \n> That's my understanding as well. The correct license in that case would\n> be CC0-1.0 as far as I understand.\n\nOkay, then I will keep the SPDX annotation. But if possible I would like\nto avoid sending a new version just for that.\n\n\nRegards,\nBarnabás Pőcze\n\n\n> \n>>>> +[wrap-file]\n>>>> +directory = yaml-0.2.5\n>>>> +source_url = https://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz\n>>>> +source_filename = yaml-0.2.5.tar.gz\n>>>> +source_hash = c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4\n>>>> +patch_filename = libyaml_0.2.5-1_patch.zip\n>>>> +patch_url = https://wrapdb.mesonbuild.com/v2/libyaml_0.2.5-1/get_patch\n>>>> +patch_hash = bf2e9b922be00b6b00c5fce29d9fb8dc83f0431c77239f3b73e8b254d3f3f5b5\n>>>>    \n>>>> -[wrap-git]\n>>>> -directory = libyaml\n>>>> -url = https://github.com/yaml/libyaml\n>>>> -# tags/0.2.5\n>>>> -revision = 2c891fc7a770e8ba2fec34fc6b545c672beb37e6\n>>>> +[provide]\n>>>> +yaml-0.1 = yaml_dep\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 D5559BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 23 Jun 2025 14:23:01 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 93C5368DDB;\n\tMon, 23 Jun 2025 16:23:01 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3E3CF68DDB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Jun 2025 16:23:00 +0200 (CEST)","from [192.168.33.21] (185.221.143.107.nat.pool.zt.hu\n\t[185.221.143.107])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 89A1A3D5;\n\tMon, 23 Jun 2025 16:22:43 +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=\"Emd4moZC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1750688563;\n\tbh=D268FHganDF4SMLhHqXrhpy6MCGtID4j0B3t5+SOu/U=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=Emd4moZCw9InH9Z27HflXgIPF+jlPEEmH4Q9pCg/QD2Sms4EuSUvgFwijDErqDIzv\n\tX68hXsR3oBail9VOoKkEegXiS9C/givCI9uASbdJQ3YB5r7gN6KmkgEF3G9mIJnYf+\n\tKGDRnReGlyN416kbT2i30yV50STEY7WSQl+BQiPk=","Message-ID":"<43038bae-453e-4b3c-a980-a4c7a7907a6f@ideasonboard.com>","Date":"Mon, 23 Jun 2025 16:22:57 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v1] meson: Use libyaml wrap file from wrapdb","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20250623071834.38955-1-barnabas.pocze@ideasonboard.com>\n\t<20250623140742.GD300@pendragon.ideasonboard.com>\n\t<523e1fa3-220d-4642-b3f0-1703e91310ef@ideasonboard.com>\n\t<20250623141720.GE300@pendragon.ideasonboard.com>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20250623141720.GE300@pendragon.ideasonboard.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":34613,"web_url":"https://patchwork.libcamera.org/comment/34613/","msgid":"<20250623143008.GC29597@pendragon.ideasonboard.com>","date":"2025-06-23T14:30:08","subject":"Re: [PATCH v1] meson: Use libyaml wrap file from wrapdb","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Mon, Jun 23, 2025 at 04:22:57PM +0200, Barnabás Pőcze wrote:\n> Hi\n> \n> 2025. 06. 23. 16:17 keltezéssel, Laurent Pinchart írta:\n> > On Mon, Jun 23, 2025 at 04:13:51PM +0200, Barnabás Pőcze wrote:\n> >> 2025. 06. 23. 16:07 keltezéssel, Laurent Pinchart írta:\n> >>> On Mon, Jun 23, 2025 at 09:18:34AM +0200, Barnabás Pőcze wrote:\n> >>>> Use the libyaml wrap file from the meson wrapdb instead of\n> >>>> creating the wrap file manually and using the cmake module.\n> >>>> This provides better integration with meson, such as the\n> >>>> `force_fallback_for` built-in option.\n> >>>>\n> >>>> The `werror=false` needs to be set when the subproject is\n> >>>> used because libyaml does not compile without warnings,\n> >>>> and that would abort the build process otherwise.\n> >>>>\n> >>>> This is also needed because the upstream CMakeLists.txt is\n> >>>> out of date, failing with a sufficiently new cmake version:\n> >>>>\n> >>>>     CMake Error at CMakeLists.txt:2 (cmake_minimum_required):\n> >>>>     Compatibility with CMake < 3.5 has been removed from CMake.\n> >>>>\n> >>>> The above is nonetheless addressed by https://github.com/yaml/libyaml/pull/314,\n> >>>> but the project seems a bit inactive at the moment.\n> >>>>\n> >>>> The wrap file was added using `meson wrap install libyaml`,\n> >>>> and it can be updated using `meson wrap update libyaml`.\n> >>>>\n> >>>> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> >>>> ---\n> >>>>    src/libcamera/meson.build | 15 +++------------\n> >>>>    subprojects/libyaml.wrap  | 16 ++++++++++------\n> >>>>    2 files changed, 13 insertions(+), 18 deletions(-)\n> >>>>\n> >>>> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> >>>> index 28a3b0f36..9f782e729 100644\n> >>>> --- a/src/libcamera/meson.build\n> >>>> +++ b/src/libcamera/meson.build\n> >>>> @@ -84,7 +84,9 @@ if not cc.has_function('dlopen')\n> >>>>        libdl = cc.find_library('dl')\n> >>>>    endif\n> >>>>    libudev = dependency('libudev', required : get_option('udev'))\n> >>>> -libyaml = dependency('yaml-0.1', required : false)\n> >>>> +libyaml = dependency('yaml-0.1', default_options : [\n> >>>> +    'werror=false',\n> >>>> +])\n> >>>>    \n> >>>>    # Use one of gnutls or libcrypto (provided by OpenSSL), trying gnutls first.\n> >>>>    libcrypto = dependency('gnutls', required : false)\n> >>>> @@ -120,17 +122,6 @@ if libudev.found()\n> >>>>        ])\n> >>>>    endif\n> >>>>    \n> >>>> -# Fallback to a subproject if libyaml isn't found, as it's not packaged in AOSP.\n> >>>> -if not libyaml.found()\n> >>>> -    cmake = import('cmake')\n> >>>> -\n> >>>> -    libyaml_vars = cmake.subproject_options()\n> >>>> -    libyaml_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'})\n> >>>> -    libyaml_vars.append_compile_args('c', '-Wno-unused-value')\n> >>>> -    libyaml_wrap = cmake.subproject('libyaml', options : libyaml_vars)\n> >>>> -    libyaml = libyaml_wrap.dependency('yaml')\n> >>>> -endif\n> >>>> -\n> >>>>    control_sources = []\n> >>>>    \n> >>>>    controls_mode_files = {\n> >>>> diff --git a/subprojects/libyaml.wrap b/subprojects/libyaml.wrap\n> >>>> index 392416c61..85d9af44e 100644\n> >>>> --- a/subprojects/libyaml.wrap\n> >>>> +++ b/subprojects/libyaml.wrap\n> >>>> @@ -1,7 +1,11 @@\n> >>>> -# SPDX-License-Identifier: CC0-1.0\n> >>>\n> >>> I'm still concerned by dropping the SPDX tag. Can we either keep it or\n> >>> document the license through .reuse/dep5 ? I would prefer the former,\n> >>> even if it means manual work when updating the wrap file, as it's better\n> >>> to keep license information in the files the license applies to.\n> >>\n> >> Okay. But which license is appropriate? https://github.com/mesonbuild/wrapdb/issues/2213#issuecomment-2994828556\n> >> would suggest that they are not considered copyrightable.\n> > \n> > That's my understanding as well. The correct license in that case would\n> > be CC0-1.0 as far as I understand.\n> \n> Okay, then I will keep the SPDX annotation. But if possible I would like\n> to avoid sending a new version just for that.\n\nWith the SPDX tag preserved,\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> >>>> +[wrap-file]\n> >>>> +directory = yaml-0.2.5\n> >>>> +source_url = https://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz\n> >>>> +source_filename = yaml-0.2.5.tar.gz\n> >>>> +source_hash = c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4\n> >>>> +patch_filename = libyaml_0.2.5-1_patch.zip\n> >>>> +patch_url = https://wrapdb.mesonbuild.com/v2/libyaml_0.2.5-1/get_patch\n> >>>> +patch_hash = bf2e9b922be00b6b00c5fce29d9fb8dc83f0431c77239f3b73e8b254d3f3f5b5\n> >>>>    \n> >>>> -[wrap-git]\n> >>>> -directory = libyaml\n> >>>> -url = https://github.com/yaml/libyaml\n> >>>> -# tags/0.2.5\n> >>>> -revision = 2c891fc7a770e8ba2fec34fc6b545c672beb37e6\n> >>>> +[provide]\n> >>>> +yaml-0.1 = yaml_dep","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 9861DC3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 23 Jun 2025 14:30:30 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8FA6768DE3;\n\tMon, 23 Jun 2025 16:30:29 +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 07DB368DC9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Jun 2025 16:30:28 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 1FB20D77;\n\tMon, 23 Jun 2025 16:30:11 +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=\"wCPSsvtA\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1750689011;\n\tbh=nNH180o9fcXF/2fpyOYOEkfvreOQmnSWKRdcefTYVaE=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=wCPSsvtA3eMdXQoNOVzuA1n+ZI2pTlYbNvf1ojSYheaWzYYUKjvVDLMSJNqrKd1sP\n\tsi0PABE7qr8jco2UG5coTLVqp9qU1JzySQ43/28ZkblfRjCIxhxTQMoNyzMoNCvw35\n\tP6rtrfLqgFSgevkX/eaO61jxH9uF0nkY4XeZ+VFw=","Date":"Mon, 23 Jun 2025 17:30:08 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v1] meson: Use libyaml wrap file from wrapdb","Message-ID":"<20250623143008.GC29597@pendragon.ideasonboard.com>","References":"<20250623071834.38955-1-barnabas.pocze@ideasonboard.com>\n\t<20250623140742.GD300@pendragon.ideasonboard.com>\n\t<523e1fa3-220d-4642-b3f0-1703e91310ef@ideasonboard.com>\n\t<20250623141720.GE300@pendragon.ideasonboard.com>\n\t<43038bae-453e-4b3c-a980-a4c7a7907a6f@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<43038bae-453e-4b3c-a980-a4c7a7907a6f@ideasonboard.com>","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":34655,"web_url":"https://patchwork.libcamera.org/comment/34655/","msgid":"<175093638159.4005407.6996996321544159669@ping.linuxembedded.co.uk>","date":"2025-06-26T11:13:01","subject":"Re: [PATCH v1] meson: Use libyaml wrap file from wrapdb","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart (2025-06-23 15:30:08)\n> On Mon, Jun 23, 2025 at 04:22:57PM +0200, Barnabás Pőcze wrote:\n> > Hi\n> > \n> > 2025. 06. 23. 16:17 keltezéssel, Laurent Pinchart írta:\n> > > On Mon, Jun 23, 2025 at 04:13:51PM +0200, Barnabás Pőcze wrote:\n> > >> 2025. 06. 23. 16:07 keltezéssel, Laurent Pinchart írta:\n> > >>> On Mon, Jun 23, 2025 at 09:18:34AM +0200, Barnabás Pőcze wrote:\n> > >>>> Use the libyaml wrap file from the meson wrapdb instead of\n> > >>>> creating the wrap file manually and using the cmake module.\n> > >>>> This provides better integration with meson, such as the\n> > >>>> `force_fallback_for` built-in option.\n> > >>>>\n> > >>>> The `werror=false` needs to be set when the subproject is\n> > >>>> used because libyaml does not compile without warnings,\n> > >>>> and that would abort the build process otherwise.\n> > >>>>\n> > >>>> This is also needed because the upstream CMakeLists.txt is\n> > >>>> out of date, failing with a sufficiently new cmake version:\n> > >>>>\n> > >>>>     CMake Error at CMakeLists.txt:2 (cmake_minimum_required):\n> > >>>>     Compatibility with CMake < 3.5 has been removed from CMake.\n> > >>>>\n> > >>>> The above is nonetheless addressed by https://github.com/yaml/libyaml/pull/314,\n> > >>>> but the project seems a bit inactive at the moment.\n> > >>>>\n> > >>>> The wrap file was added using `meson wrap install libyaml`,\n> > >>>> and it can be updated using `meson wrap update libyaml`.\n> > >>>>\n> > >>>> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\n> > >>>> ---\n> > >>>>    src/libcamera/meson.build | 15 +++------------\n> > >>>>    subprojects/libyaml.wrap  | 16 ++++++++++------\n> > >>>>    2 files changed, 13 insertions(+), 18 deletions(-)\n> > >>>>\n> > >>>> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> > >>>> index 28a3b0f36..9f782e729 100644\n> > >>>> --- a/src/libcamera/meson.build\n> > >>>> +++ b/src/libcamera/meson.build\n> > >>>> @@ -84,7 +84,9 @@ if not cc.has_function('dlopen')\n> > >>>>        libdl = cc.find_library('dl')\n> > >>>>    endif\n> > >>>>    libudev = dependency('libudev', required : get_option('udev'))\n> > >>>> -libyaml = dependency('yaml-0.1', required : false)\n> > >>>> +libyaml = dependency('yaml-0.1', default_options : [\n> > >>>> +    'werror=false',\n> > >>>> +])\n> > >>>>    \n> > >>>>    # Use one of gnutls or libcrypto (provided by OpenSSL), trying gnutls first.\n> > >>>>    libcrypto = dependency('gnutls', required : false)\n> > >>>> @@ -120,17 +122,6 @@ if libudev.found()\n> > >>>>        ])\n> > >>>>    endif\n> > >>>>    \n> > >>>> -# Fallback to a subproject if libyaml isn't found, as it's not packaged in AOSP.\n> > >>>> -if not libyaml.found()\n> > >>>> -    cmake = import('cmake')\n> > >>>> -\n> > >>>> -    libyaml_vars = cmake.subproject_options()\n> > >>>> -    libyaml_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'})\n> > >>>> -    libyaml_vars.append_compile_args('c', '-Wno-unused-value')\n> > >>>> -    libyaml_wrap = cmake.subproject('libyaml', options : libyaml_vars)\n> > >>>> -    libyaml = libyaml_wrap.dependency('yaml')\n> > >>>> -endif\n> > >>>> -\n> > >>>>    control_sources = []\n> > >>>>    \n> > >>>>    controls_mode_files = {\n> > >>>> diff --git a/subprojects/libyaml.wrap b/subprojects/libyaml.wrap\n> > >>>> index 392416c61..85d9af44e 100644\n> > >>>> --- a/subprojects/libyaml.wrap\n> > >>>> +++ b/subprojects/libyaml.wrap\n> > >>>> @@ -1,7 +1,11 @@\n> > >>>> -# SPDX-License-Identifier: CC0-1.0\n> > >>>\n> > >>> I'm still concerned by dropping the SPDX tag. Can we either keep it or\n> > >>> document the license through .reuse/dep5 ? I would prefer the former,\n> > >>> even if it means manual work when updating the wrap file, as it's better\n> > >>> to keep license information in the files the license applies to.\n> > >>\n> > >> Okay. But which license is appropriate? https://github.com/mesonbuild/wrapdb/issues/2213#issuecomment-2994828556\n> > >> would suggest that they are not considered copyrightable.\n> > > \n> > > That's my understanding as well. The correct license in that case would\n> > > be CC0-1.0 as far as I understand.\n> > \n> > Okay, then I will keep the SPDX annotation. But if possible I would like\n> > to avoid sending a new version just for that.\n> \n> With the SPDX tag preserved,\n> \n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nI'm fine with this too ...\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> \n> > >>>> +[wrap-file]\n> > >>>> +directory = yaml-0.2.5\n> > >>>> +source_url = https://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz\n> > >>>> +source_filename = yaml-0.2.5.tar.gz\n> > >>>> +source_hash = c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4\n> > >>>> +patch_filename = libyaml_0.2.5-1_patch.zip\n> > >>>> +patch_url = https://wrapdb.mesonbuild.com/v2/libyaml_0.2.5-1/get_patch\n> > >>>> +patch_hash = bf2e9b922be00b6b00c5fce29d9fb8dc83f0431c77239f3b73e8b254d3f3f5b5\n> > >>>>    \n> > >>>> -[wrap-git]\n> > >>>> -directory = libyaml\n> > >>>> -url = https://github.com/yaml/libyaml\n> > >>>> -# tags/0.2.5\n> > >>>> -revision = 2c891fc7a770e8ba2fec34fc6b545c672beb37e6\n> > >>>> +[provide]\n> > >>>> +yaml-0.1 = yaml_dep\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 E9498BDCBF\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 26 Jun 2025 11:13:08 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 77ABA68DF6;\n\tThu, 26 Jun 2025 13:13:07 +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 9D88668DE8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 26 Jun 2025 13:13:04 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7473F6AE;\n\tThu, 26 Jun 2025 13:12:45 +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=\"jSB6eBF2\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1750936365;\n\tbh=0hWtZxFv4shEmUUP1mGmJakGInN4YwVxd4x0OG7O77Q=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=jSB6eBF2FDtlMrm6o0a5WSOMlGihzE3UXqm+ffbm6nw40if5lMDLeyTe8xtaEql1z\n\t3evU0LX0B3f+GLcsmiXe0qgQkt3DUuQQgsunpWsYS5oQOKj/Fta0fy8yUzIEeOfDou\n\tLizgwNkjJhXTNdi6vkiWYh9Dm0pqMcUkaABnzc+4=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250623143008.GC29597@pendragon.ideasonboard.com>","References":"<20250623071834.38955-1-barnabas.pocze@ideasonboard.com>\n\t<20250623140742.GD300@pendragon.ideasonboard.com>\n\t<523e1fa3-220d-4642-b3f0-1703e91310ef@ideasonboard.com>\n\t<20250623141720.GE300@pendragon.ideasonboard.com>\n\t<43038bae-453e-4b3c-a980-a4c7a7907a6f@ideasonboard.com>\n\t<20250623143008.GC29597@pendragon.ideasonboard.com>","Subject":"Re: [PATCH v1] meson: Use libyaml wrap file from wrapdb","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>","Date":"Thu, 26 Jun 2025 12:13:01 +0100","Message-ID":"<175093638159.4005407.6996996321544159669@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>"}}]