[{"id":29701,"web_url":"https://patchwork.libcamera.org/comment/29701/","msgid":"<ZlnOEDThWADgUiN4@pyrite.rasen.tech>","date":"2024-05-31T13:18:08","subject":"Re: [PATCH 2/4] utils: checkstyle.py: Extend IncludeChecker to cover\n\tmath.h","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"On Fri, May 31, 2024 at 03:18:36PM +0300, Laurent Pinchart wrote:\n> math.h is an exception to the C compatibility header rule, as we prefer\n> using cmath. Extend the IncludeCheck to warn about it.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  utils/checkstyle.py | 12 +++++++++---\n>  1 file changed, 9 insertions(+), 3 deletions(-)\n> \n> diff --git a/utils/checkstyle.py b/utils/checkstyle.py\n> index 518be0897db5..f3604299de94 100755\n> --- a/utils/checkstyle.py\n> +++ b/utils/checkstyle.py\n> @@ -568,7 +568,7 @@ class IncludeChecker(StyleChecker):\n>      headers = ('cassert', 'cctype', 'cerrno', 'cfenv', 'cfloat', 'cinttypes',\n>                 'climits', 'clocale', 'csetjmp', 'csignal', 'cstdarg', 'cstddef',\n>                 'cstdint', 'cstdio', 'cstdlib', 'cstring', 'ctime', 'cuchar',\n> -               'cwchar', 'cwctype')\n> +               'cwchar', 'cwctype', 'math.h')\n>      include_regex = re.compile(r'^#include <([a-z.]*)>')\n>  \n>      def __init__(self, content):\n> @@ -588,9 +588,15 @@ class IncludeChecker(StyleChecker):\n>              if header not in IncludeChecker.headers:\n>                  continue\n>  \n> -            header = header[1:] + '.h'\n> +            if header.endswith('.h'):\n> +                header_type = 'C++'\n> +                header = 'c' + header[:-2]\n> +            else:\n> +                header_type = 'C compatibility'\n> +                header = header[1:] + '.h'\n> +\n>              issues.append(StyleIssue(line_number, line,\n> -                                     'C compatibility header <%s> is preferred' % header))\n> +                                     f'{header_type} header <{header}> is preferred'))\n>  \n>          return issues","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 25A4EBDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 31 May 2024 13:18:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B78A8634BA;\n\tFri, 31 May 2024 15:18:15 +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 E9587634AF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 31 May 2024 15:18:13 +0200 (CEST)","from pyrite.rasen.tech (h175-177-049-156.catv02.itscom.jp\n\t[175.177.49.156])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 2685BA06;\n\tFri, 31 May 2024 15:18:07 +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=\"AcUs06Kn\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1717161489;\n\tbh=H21rYzHgHf2Fc9t47tM0vwkBEHHYTKk4pmpsY6DrlSk=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=AcUs06KnO1/oQg5HllCoeB2vGqmufIl4rVgBoFaDw70/5WcFSR/S66B5r3vs5k7iq\n\tVG9dLJR0hig6C1Ai2PdjcUbk7cCdFvmOOCdL3EX9jOzR5N8uANGtdrOXgkxVIx9Pmu\n\tcsj1is3TDOZ1OmM4NgINKcvf++KQY8YAum3klKoE=","Date":"Fri, 31 May 2024 22:18:08 +0900","From":"Paul Elder <paul.elder@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 2/4] utils: checkstyle.py: Extend IncludeChecker to cover\n\tmath.h","Message-ID":"<ZlnOEDThWADgUiN4@pyrite.rasen.tech>","References":"<20240531121838.27643-1-laurent.pinchart@ideasonboard.com>\n\t<20240531121838.27643-3-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20240531121838.27643-3-laurent.pinchart@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":29703,"web_url":"https://patchwork.libcamera.org/comment/29703/","msgid":"<171716240232.2228432.11553952251485706837@ping.linuxembedded.co.uk>","date":"2024-05-31T13:33:22","subject":"Re: [PATCH 2/4] utils: checkstyle.py: Extend IncludeChecker to cover\n\tmath.h","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Laurent Pinchart (2024-05-31 13:18:36)\n> math.h is an exception to the C compatibility header rule, as we prefer\n> using cmath. Extend the IncludeCheck to warn about it.\n> \n\nHave we documented /why/ we prefer that anywhere?\n\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> ---\n>  utils/checkstyle.py | 12 +++++++++---\n>  1 file changed, 9 insertions(+), 3 deletions(-)\n> \n> diff --git a/utils/checkstyle.py b/utils/checkstyle.py\n> index 518be0897db5..f3604299de94 100755\n> --- a/utils/checkstyle.py\n> +++ b/utils/checkstyle.py\n> @@ -568,7 +568,7 @@ class IncludeChecker(StyleChecker):\n>      headers = ('cassert', 'cctype', 'cerrno', 'cfenv', 'cfloat', 'cinttypes',\n>                 'climits', 'clocale', 'csetjmp', 'csignal', 'cstdarg', 'cstddef',\n>                 'cstdint', 'cstdio', 'cstdlib', 'cstring', 'ctime', 'cuchar',\n> -               'cwchar', 'cwctype')\n> +               'cwchar', 'cwctype', 'math.h')\n>      include_regex = re.compile(r'^#include <([a-z.]*)>')\n>  \n>      def __init__(self, content):\n> @@ -588,9 +588,15 @@ class IncludeChecker(StyleChecker):\n>              if header not in IncludeChecker.headers:\n>                  continue\n>  \n> -            header = header[1:] + '.h'\n> +            if header.endswith('.h'):\n> +                header_type = 'C++'\n> +                header = 'c' + header[:-2]\n> +            else:\n> +                header_type = 'C compatibility'\n> +                header = header[1:] + '.h'\n> +\n>              issues.append(StyleIssue(line_number, line,\n> -                                     'C compatibility header <%s> is preferred' % header))\n> +                                     f'{header_type} header <{header}> is preferred'))\n>  \n>          return issues\n>  \n> -- \n> Regards,\n> \n> Laurent Pinchart\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 5F005BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 31 May 2024 13:33:28 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7AFBE634B7;\n\tFri, 31 May 2024 15:33:27 +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 D5E2661A46\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 31 May 2024 15:33:25 +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 BAF29A06;\n\tFri, 31 May 2024 15:33:20 +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=\"S30xbypU\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1717162400;\n\tbh=f4aIBIUojTunAtxUvic9QsxY+4GP9rhFa13LuX06PdY=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=S30xbypUW2wRZwR4OSta7Q+q3UsA3WQE/lziSIZ8Vx7YEjsUgZlRI+liswhhS1jCE\n\tZNGlzoduF9DC7B7wofVtST2x/wiiixaN69pkJSZ9WE1iSdDxIeeICqrEtrUhzDSyqU\n\ts0w6j5ZyE+y2W50kNAhQ4Ei5QyFQ8cGImW9BYnk0=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20240531121838.27643-3-laurent.pinchart@ideasonboard.com>","References":"<20240531121838.27643-1-laurent.pinchart@ideasonboard.com>\n\t<20240531121838.27643-3-laurent.pinchart@ideasonboard.com>","Subject":"Re: [PATCH 2/4] utils: checkstyle.py: Extend IncludeChecker to cover\n\tmath.h","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Fri, 31 May 2024 14:33:22 +0100","Message-ID":"<171716240232.2228432.11553952251485706837@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","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":29707,"web_url":"https://patchwork.libcamera.org/comment/29707/","msgid":"<8734pyqeqj.fsf@redhat.com>","date":"2024-05-31T13:43:00","subject":"Re: [PATCH 2/4] utils: checkstyle.py: Extend IncludeChecker to\n\tcover math.h","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Kieran Bingham <kieran.bingham@ideasonboard.com> writes:\n\n> Quoting Laurent Pinchart (2024-05-31 13:18:36)\n>> math.h is an exception to the C compatibility header rule, as we prefer\n>> using cmath. Extend the IncludeCheck to warn about it.\n>> \n>\n> Have we documented /why/ we prefer that anywhere?\n\nYes, in Documentation/coding-style.rst.\n\n>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nTested-by: Milan Zamazal <mzamazal@redhat.com>\n\n>> ---\n>>  utils/checkstyle.py | 12 +++++++++---\n>>  1 file changed, 9 insertions(+), 3 deletions(-)\n>> \n>> diff --git a/utils/checkstyle.py b/utils/checkstyle.py\n>> index 518be0897db5..f3604299de94 100755\n>> --- a/utils/checkstyle.py\n>> +++ b/utils/checkstyle.py\n>> @@ -568,7 +568,7 @@ class IncludeChecker(StyleChecker):\n>>      headers = ('cassert', 'cctype', 'cerrno', 'cfenv', 'cfloat', 'cinttypes',\n>>                 'climits', 'clocale', 'csetjmp', 'csignal', 'cstdarg', 'cstddef',\n>>                 'cstdint', 'cstdio', 'cstdlib', 'cstring', 'ctime', 'cuchar',\n>> -               'cwchar', 'cwctype')\n>> +               'cwchar', 'cwctype', 'math.h')\n>>      include_regex = re.compile(r'^#include <([a-z.]*)>')\n>>  \n>>      def __init__(self, content):\n>> @@ -588,9 +588,15 @@ class IncludeChecker(StyleChecker):\n>>              if header not in IncludeChecker.headers:\n>>                  continue\n>>  \n>> -            header = header[1:] + '.h'\n>> +            if header.endswith('.h'):\n>> +                header_type = 'C++'\n>> +                header = 'c' + header[:-2]\n>> +            else:\n>> +                header_type = 'C compatibility'\n>> +                header = header[1:] + '.h'\n>> +\n>>              issues.append(StyleIssue(line_number, line,\n>> -                                     'C compatibility header <%s> is preferred' % header))\n>> +                                     f'{header_type} header <{header}> is preferred'))\n>>  \n>>          return issues\n>>  \n>> -- \n>> Regards,\n>> \n>> Laurent Pinchart\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 48845BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 31 May 2024 13:43:08 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4AEDD634B7;\n\tFri, 31 May 2024 15:43:07 +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 043BA61A46\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 31 May 2024 15:43:05 +0200 (CEST)","from mail-lj1-f199.google.com (mail-lj1-f199.google.com\n\t[209.85.208.199]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-587-GhEUhiDuPVeI3ct2xQHe-g-1; Fri, 31 May 2024 09:43:03 -0400","by mail-lj1-f199.google.com with SMTP id\n\t38308e7fff4ca-2ea8f9159f4so8745261fa.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 31 May 2024 06:43:03 -0700 (PDT)","from nuthatch (ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-421270b11b3sm56359855e9.44.2024.05.31.06.43.00\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 31 May 2024 06:43:00 -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=\"dMrBuKp9\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1717162984;\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\tin-reply-to:in-reply-to:references:references;\n\tbh=4CtpAu/6G2zxJodAF7ETCfJwIEKbu3wmv5g6hFZqwnA=;\n\tb=dMrBuKp90E6pIf7v1ELYd+ezjmfnBYdbDQSXRbZZBm+kIax1kpEBQKRvseyVQxgSo9KbTr\n\tSZV5DSc0F1fC6Rdd2RR0ClTckqDLOxlahIHYE92nNXmI/S2MNnNVIc9P/nRRAjKC7pJYXp\n\tbnIowH3GjzNQuqSPlt7j1c2nwchyeEo=","X-MC-Unique":"GhEUhiDuPVeI3ct2xQHe-g-1","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1717162981; x=1717767781;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=4CtpAu/6G2zxJodAF7ETCfJwIEKbu3wmv5g6hFZqwnA=;\n\tb=SjWNk5M31KlVBm4XvOEtpwK6q6EuLsTNfI84Nsl/W7bcV6RzfH3qNwak6OH6J7ABD4\n\t0WyBFoXvIdwOlx7+dKyI3lGsVJcoYelw0igHZB1/mxhsZy+/NzyZcMtP/9+sPtz1zQfn\n\tljKnhY2lc+CmRLUfq9EGVJ+F9i/pvICMvBR/dsCgIYTvaq65UGfYvcwwyXFSbrzPlzij\n\tX6v1gj8+k89my2cLBu54CIRAZZgd+md9jObML199J7bxs6LLTF+KBd/Oc/OqjkmjD9Ra\n\tVppQTSxMSfCyx7k+JC7+rzyRStNoXrxA3rjFFkibVIWcZ1Ut2aZ5hTUMN77EtL4dUiTq\n\t1CYw==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCXcfGSKhedBwc2iD34rClMLCMwmHTOYXgEvNQQgc5+tl/FgHRp9AdPCsJPiKR5/3zTOrAZbzKNRfK904Zz1nE1tzFz5xsdOEk3Fl19Y6EL/eVDx/A==","X-Gm-Message-State":"AOJu0YygTOcmEFdOTmd4Cm+GjW9n8AQYcNQBu8pnvYpBN3PySRaVFcGg\n\t1cvMYG6ADgpa6HZzanKXHKnyCz3LS7+EpN5RpXYQMQbanBkOoqUJhiqncYrT8HbUAF4NsXF3Udc\n\tDSDV1El+cHpJFS1fm4B/Z+RhBPORuBn0c0UdjhXyoLCpxl2lSEwYGz+TQnozzI5FUY7fD3wv1Q5\n\tjt8crZBBO8ZPGNi0Xw/4FmbCT7YeIvx8XM/9spyqSzi4YQipKunAocBmo=","X-Received":["by 2002:a05:651c:221f:b0:2e9:83e3:29d9 with SMTP id\n\t38308e7fff4ca-2ea950dc12amr14454331fa.12.1717162981656; \n\tFri, 31 May 2024 06:43:01 -0700 (PDT)","by 2002:a05:651c:221f:b0:2e9:83e3:29d9 with SMTP id\n\t38308e7fff4ca-2ea950dc12amr14454161fa.12.1717162981057; \n\tFri, 31 May 2024 06:43:01 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IFCVuyAS0AYGqt0ruqQ+GSIL9bgZtSQ/URAuqyUg2REnTbSEFmN/A1z7gFIrZ3d0KQcaTXySw==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 2/4] utils: checkstyle.py: Extend IncludeChecker to\n\tcover math.h","In-Reply-To":"<171716240232.2228432.11553952251485706837@ping.linuxembedded.co.uk>\n\t(Kieran Bingham's message of \"Fri, 31 May 2024 14:33:22 +0100\")","References":"<20240531121838.27643-1-laurent.pinchart@ideasonboard.com>\n\t<20240531121838.27643-3-laurent.pinchart@ideasonboard.com>\n\t<171716240232.2228432.11553952251485706837@ping.linuxembedded.co.uk>","Date":"Fri, 31 May 2024 15:43:00 +0200","Message-ID":"<8734pyqeqj.fsf@redhat.com>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}}]