[{"id":38451,"web_url":"https://patchwork.libcamera.org/comment/38451/","msgid":"<177486662833.4036272.6946476759020634756@ping.linuxembedded.co.uk>","date":"2026-03-30T10:30:28","subject":"Re: [PATCH] utils: raspberrypi: Remove Raspberry Pi CTT from the\n\tsource tree","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Naushir Patuck (2026-03-30 09:43:39)\n> This commit removes the Raspberry Pi CTT from the libcamera source tree.\n> This change is introduced to help a number of RPi users who are not so\n> faimilar with git and cloing the libcamera tree to run the CTT. The\n> library is also modularised in python for our users to incorporate into\n> their own \"tuning\" applications if needed. Licensing for our CTT tool\n> remains the same.\n> \n> The Raspberry Pi CTT now lives at the following repo:\n> https://github.com/raspberrypi/ctt\n> \n> and a package is avilable on pypi to install:\n> https://pypi.org/project/rpi-ctt/\n> \n> This commit also removes the delayedctrls_parse.py script that has long\n> since code rotted.\n> \n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n\nAcked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> ---\n>  utils/raspberrypi/ctt/alsc_only.py            |  42 -\n>  utils/raspberrypi/ctt/cac_only.py             | 142 ---\n>  utils/raspberrypi/ctt/colors.py               |  30 -\n>  utils/raspberrypi/ctt/convert_tuning.py       | 120 ---\n>  utils/raspberrypi/ctt/ctt.py                  | 806 -----------------\n>  utils/raspberrypi/ctt/ctt_alsc.py             | 309 -------\n>  utils/raspberrypi/ctt/ctt_awb.py              | 377 --------\n>  utils/raspberrypi/ctt/ctt_cac.py              | 250 ------\n>  utils/raspberrypi/ctt/ctt_ccm.py              | 404 ---------\n>  utils/raspberrypi/ctt/ctt_config_example.json |  17 -\n>  utils/raspberrypi/ctt/ctt_dots_locator.py     | 118 ---\n>  utils/raspberrypi/ctt/ctt_geq.py              | 181 ----\n>  utils/raspberrypi/ctt/ctt_image_load.py       | 455 ----------\n>  utils/raspberrypi/ctt/ctt_lux.py              |  61 --\n>  utils/raspberrypi/ctt/ctt_macbeth_locator.py  | 757 ----------------\n>  utils/raspberrypi/ctt/ctt_noise.py            | 123 ---\n>  utils/raspberrypi/ctt/ctt_pisp.py             | 823 ------------------\n>  .../raspberrypi/ctt/ctt_pretty_print_json.py  | 130 ---\n>  utils/raspberrypi/ctt/ctt_ransac.py           |  71 --\n>  utils/raspberrypi/ctt/ctt_ref.pgm             |   5 -\n>  utils/raspberrypi/ctt/ctt_tools.py            | 150 ----\n>  utils/raspberrypi/ctt/ctt_vc4.py              | 133 ---\n>  utils/raspberrypi/ctt/ctt_visualise.py        |  43 -\n>  utils/raspberrypi/delayedctrls_parse.py       | 113 ---\n>  24 files changed, 5660 deletions(-)\n>  delete mode 100755 utils/raspberrypi/ctt/alsc_only.py\n>  delete mode 100644 utils/raspberrypi/ctt/cac_only.py\n>  delete mode 100644 utils/raspberrypi/ctt/colors.py\n>  delete mode 100755 utils/raspberrypi/ctt/convert_tuning.py\n>  delete mode 100755 utils/raspberrypi/ctt/ctt.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_alsc.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_awb.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_cac.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_ccm.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_config_example.json\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_dots_locator.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_geq.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_image_load.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_lux.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_macbeth_locator.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_noise.py\n>  delete mode 100755 utils/raspberrypi/ctt/ctt_pisp.py\n>  delete mode 100755 utils/raspberrypi/ctt/ctt_pretty_print_json.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_ransac.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_ref.pgm\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_tools.py\n>  delete mode 100755 utils/raspberrypi/ctt/ctt_vc4.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_visualise.py\n>  delete mode 100644 utils/raspberrypi/delayedctrls_parse.py","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 DE62BBDCBD\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 30 Mar 2026 10:30:34 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CDB3962CF7;\n\tMon, 30 Mar 2026 12:30:33 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EBB9762CC7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 30 Mar 2026 12:30:31 +0200 (CEST)","from monstersaurus.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 618C9324;\n\tMon, 30 Mar 2026 12:29:10 +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=\"o7SGlksd\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1774866550;\n\tbh=kq21eg/shdxzb5og+jtN5ykzv3KYEbxsZhVTTcLEV7c=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=o7SGlksd7igWtQ/qc9pvTHuBWlqxkvAI4QzQwHTsYWp3QccE3ou7lKt7GDjp8zj+0\n\t8+jDTtA6qTnTeLmIcTEYv7aTEMZxrzchToRZS+jHpzigT2aPtmvu/6+So1VD4e7d1U\n\t3yWXw2SKZ1grkTG84Z4jdA1KEqF49HR8pwKbC4f0=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20260330084355.875580-1-naush@raspberrypi.com>","References":"<20260330084355.875580-1-naush@raspberrypi.com>","Subject":"Re: [PATCH] utils: raspberrypi: Remove Raspberry Pi CTT from the\n\tsource tree","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Naushir Patuck <naush@raspberrypi.com>","To":"Naushir Patuck <naush@raspberrypi.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Mon, 30 Mar 2026 11:30:28 +0100","Message-ID":"<177486662833.4036272.6946476759020634756@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>"}},{"id":38452,"web_url":"https://patchwork.libcamera.org/comment/38452/","msgid":"<20260330105158.GD2543377@killaraus.ideasonboard.com>","date":"2026-03-30T10:51:58","subject":"Re: [PATCH] utils: raspberrypi: Remove Raspberry Pi CTT from the\n\tsource tree","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Naush,\n\nOn Mon, Mar 30, 2026 at 09:43:39AM +0100, Naushir Patuck wrote:\n> This commit removes the Raspberry Pi CTT from the libcamera source tree.\n> This change is introduced to help a number of RPi users who are not so\n> faimilar with git and cloing the libcamera tree to run the CTT. The\n> library is also modularised in python for our users to incorporate into\n> their own \"tuning\" applications if needed. Licensing for our CTT tool\n> remains the same.\n> \n> The Raspberry Pi CTT now lives at the following repo:\n> https://github.com/raspberrypi/ctt\n\nWe merged CTT in libcamera nearly 6 years ago. Back then, having the IPA\nand tuning tool helped keeping them in sync. Over the years the tuning\ndata format has shown to be stable, so splitting the tuning tool makes\nsense to me now.\n\nSome users may wonder where the code went, could we add a link somewhere\n? There doesn't need to be an obvious location in Documentation/, we\ncould add a README.md file in utils/raspberrypi/ctt/. You can send a\npatch on top of this one to avoid resending 5660 lines of changes :-)\nWith that,\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> and a package is avilable on pypi to install:\n> https://pypi.org/project/rpi-ctt/\n> \n> This commit also removes the delayedctrls_parse.py script that has long\n> since code rotted.\n> \n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> ---\n>  utils/raspberrypi/ctt/alsc_only.py            |  42 -\n>  utils/raspberrypi/ctt/cac_only.py             | 142 ---\n>  utils/raspberrypi/ctt/colors.py               |  30 -\n>  utils/raspberrypi/ctt/convert_tuning.py       | 120 ---\n>  utils/raspberrypi/ctt/ctt.py                  | 806 -----------------\n>  utils/raspberrypi/ctt/ctt_alsc.py             | 309 -------\n>  utils/raspberrypi/ctt/ctt_awb.py              | 377 --------\n>  utils/raspberrypi/ctt/ctt_cac.py              | 250 ------\n>  utils/raspberrypi/ctt/ctt_ccm.py              | 404 ---------\n>  utils/raspberrypi/ctt/ctt_config_example.json |  17 -\n>  utils/raspberrypi/ctt/ctt_dots_locator.py     | 118 ---\n>  utils/raspberrypi/ctt/ctt_geq.py              | 181 ----\n>  utils/raspberrypi/ctt/ctt_image_load.py       | 455 ----------\n>  utils/raspberrypi/ctt/ctt_lux.py              |  61 --\n>  utils/raspberrypi/ctt/ctt_macbeth_locator.py  | 757 ----------------\n>  utils/raspberrypi/ctt/ctt_noise.py            | 123 ---\n>  utils/raspberrypi/ctt/ctt_pisp.py             | 823 ------------------\n>  .../raspberrypi/ctt/ctt_pretty_print_json.py  | 130 ---\n>  utils/raspberrypi/ctt/ctt_ransac.py           |  71 --\n>  utils/raspberrypi/ctt/ctt_ref.pgm             |   5 -\n>  utils/raspberrypi/ctt/ctt_tools.py            | 150 ----\n>  utils/raspberrypi/ctt/ctt_vc4.py              | 133 ---\n>  utils/raspberrypi/ctt/ctt_visualise.py        |  43 -\n>  utils/raspberrypi/delayedctrls_parse.py       | 113 ---\n>  24 files changed, 5660 deletions(-)\n>  delete mode 100755 utils/raspberrypi/ctt/alsc_only.py\n>  delete mode 100644 utils/raspberrypi/ctt/cac_only.py\n>  delete mode 100644 utils/raspberrypi/ctt/colors.py\n>  delete mode 100755 utils/raspberrypi/ctt/convert_tuning.py\n>  delete mode 100755 utils/raspberrypi/ctt/ctt.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_alsc.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_awb.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_cac.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_ccm.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_config_example.json\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_dots_locator.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_geq.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_image_load.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_lux.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_macbeth_locator.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_noise.py\n>  delete mode 100755 utils/raspberrypi/ctt/ctt_pisp.py\n>  delete mode 100755 utils/raspberrypi/ctt/ctt_pretty_print_json.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_ransac.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_ref.pgm\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_tools.py\n>  delete mode 100755 utils/raspberrypi/ctt/ctt_vc4.py\n>  delete mode 100644 utils/raspberrypi/ctt/ctt_visualise.py\n>  delete mode 100644 utils/raspberrypi/delayedctrls_parse.py","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 121C7BE086\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 30 Mar 2026 10:52:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3428462CF7;\n\tMon, 30 Mar 2026 12:52: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 2E3A162CC7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 30 Mar 2026 12:52:00 +0200 (CEST)","from killaraus.ideasonboard.com\n\t(2001-14ba-703d-e500--2a1.rev.dnainternet.fi\n\t[IPv6:2001:14ba:703d:e500::2a1])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 74106A06;\n\tMon, 30 Mar 2026 12:50:38 +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=\"OCuRO5Cg\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1774867838;\n\tbh=xH7ez5UqHiif44uN/ZS9/80fnyZRQhCnDEeOZMXSx8Q=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=OCuRO5CgGudmEQLntX6X9m05a+b5qg9q0UPfWJNCMiiMmqWfFPiTme+pLIpmM9m9e\n\tP6/WT4Zf5bVOR4XzC1Z6CobCwi4NmKK0ErEfryGQcB3eihI83Y5XnuxF76z4Vze13s\n\toNZZhWSt5ApR8pG9GIA7TyGWSeRJwEd5qegT1l5c=","Date":"Mon, 30 Mar 2026 13:51:58 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH] utils: raspberrypi: Remove Raspberry Pi CTT from the\n\tsource tree","Message-ID":"<20260330105158.GD2543377@killaraus.ideasonboard.com>","References":"<20260330084355.875580-1-naush@raspberrypi.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20260330084355.875580-1-naush@raspberrypi.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":38453,"web_url":"https://patchwork.libcamera.org/comment/38453/","msgid":"<CAEmqJPosqwwp0+Lq-mzgXHFzR3EpFWvZncdca0qg+7hcUQyKtg@mail.gmail.com>","date":"2026-03-30T11:12:17","subject":"Re: [PATCH] utils: raspberrypi: Remove Raspberry Pi CTT from the\n\tsource tree","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Laurent,\n\nOn Mon, 30 Mar 2026 at 11:52, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hi Naush,\n>\n> On Mon, Mar 30, 2026 at 09:43:39AM +0100, Naushir Patuck wrote:\n> > This commit removes the Raspberry Pi CTT from the libcamera source tree.\n> > This change is introduced to help a number of RPi users who are not so\n> > faimilar with git and cloing the libcamera tree to run the CTT. The\n> > library is also modularised in python for our users to incorporate into\n> > their own \"tuning\" applications if needed. Licensing for our CTT tool\n> > remains the same.\n> >\n> > The Raspberry Pi CTT now lives at the following repo:\n> > https://github.com/raspberrypi/ctt\n>\n> We merged CTT in libcamera nearly 6 years ago. Back then, having the IPA\n> and tuning tool helped keeping them in sync. Over the years the tuning\n> data format has shown to be stable, so splitting the tuning tool makes\n> sense to me now.\n>\n> Some users may wonder where the code went, could we add a link somewhere\n> ? There doesn't need to be an obvious location in Documentation/, we\n> could add a README.md file in utils/raspberrypi/ctt/. You can send a\n> patch on top of this one to avoid resending 5660 lines of changes :-)\n> With that,\n>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nGood Idea, I'll post a follow-up patch.\n\nNaush\n\n\n>\n> > and a package is avilable on pypi to install:\n> > https://pypi.org/project/rpi-ctt/\n> >\n> > This commit also removes the delayedctrls_parse.py script that has long\n> > since code rotted.\n> >\n> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> > ---\n> >  utils/raspberrypi/ctt/alsc_only.py            |  42 -\n> >  utils/raspberrypi/ctt/cac_only.py             | 142 ---\n> >  utils/raspberrypi/ctt/colors.py               |  30 -\n> >  utils/raspberrypi/ctt/convert_tuning.py       | 120 ---\n> >  utils/raspberrypi/ctt/ctt.py                  | 806 -----------------\n> >  utils/raspberrypi/ctt/ctt_alsc.py             | 309 -------\n> >  utils/raspberrypi/ctt/ctt_awb.py              | 377 --------\n> >  utils/raspberrypi/ctt/ctt_cac.py              | 250 ------\n> >  utils/raspberrypi/ctt/ctt_ccm.py              | 404 ---------\n> >  utils/raspberrypi/ctt/ctt_config_example.json |  17 -\n> >  utils/raspberrypi/ctt/ctt_dots_locator.py     | 118 ---\n> >  utils/raspberrypi/ctt/ctt_geq.py              | 181 ----\n> >  utils/raspberrypi/ctt/ctt_image_load.py       | 455 ----------\n> >  utils/raspberrypi/ctt/ctt_lux.py              |  61 --\n> >  utils/raspberrypi/ctt/ctt_macbeth_locator.py  | 757 ----------------\n> >  utils/raspberrypi/ctt/ctt_noise.py            | 123 ---\n> >  utils/raspberrypi/ctt/ctt_pisp.py             | 823 ------------------\n> >  .../raspberrypi/ctt/ctt_pretty_print_json.py  | 130 ---\n> >  utils/raspberrypi/ctt/ctt_ransac.py           |  71 --\n> >  utils/raspberrypi/ctt/ctt_ref.pgm             |   5 -\n> >  utils/raspberrypi/ctt/ctt_tools.py            | 150 ----\n> >  utils/raspberrypi/ctt/ctt_vc4.py              | 133 ---\n> >  utils/raspberrypi/ctt/ctt_visualise.py        |  43 -\n> >  utils/raspberrypi/delayedctrls_parse.py       | 113 ---\n> >  24 files changed, 5660 deletions(-)\n> >  delete mode 100755 utils/raspberrypi/ctt/alsc_only.py\n> >  delete mode 100644 utils/raspberrypi/ctt/cac_only.py\n> >  delete mode 100644 utils/raspberrypi/ctt/colors.py\n> >  delete mode 100755 utils/raspberrypi/ctt/convert_tuning.py\n> >  delete mode 100755 utils/raspberrypi/ctt/ctt.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_alsc.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_awb.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_cac.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_ccm.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_config_example.json\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_dots_locator.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_geq.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_image_load.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_lux.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_macbeth_locator.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_noise.py\n> >  delete mode 100755 utils/raspberrypi/ctt/ctt_pisp.py\n> >  delete mode 100755 utils/raspberrypi/ctt/ctt_pretty_print_json.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_ransac.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_ref.pgm\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_tools.py\n> >  delete mode 100755 utils/raspberrypi/ctt/ctt_vc4.py\n> >  delete mode 100644 utils/raspberrypi/ctt/ctt_visualise.py\n> >  delete mode 100644 utils/raspberrypi/delayedctrls_parse.py\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 59DAFBDCBD\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 30 Mar 2026 11:12:56 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9972862CF7;\n\tMon, 30 Mar 2026 13:12:55 +0200 (CEST)","from mail-vs1-xe2c.google.com (mail-vs1-xe2c.google.com\n\t[IPv6:2607:f8b0:4864:20::e2c])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 325DA62CC7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 30 Mar 2026 13:12:54 +0200 (CEST)","by mail-vs1-xe2c.google.com with SMTP id\n\tada2fe7eead31-5ffc4239b0eso142028137.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 30 Mar 2026 04:12:54 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"clCuyV+f\"; dkim-atps=neutral","ARC-Seal":"i=1; a=rsa-sha256; t=1774869173; cv=none;\n\td=google.com; s=arc-20240605;\n\tb=XI+YtIdvutD5nzb/oC5UXvxeuz1CBkaD0t+EiW7qk+9wqW5y4ooO/9iGauxlwahDGp\n\tAG9KSEVzquxprMCgqOGqP2u/V1S5znbLPUS6RR+kh1jHnyf8+VXLubDm7WU2HjQPyGiA\n\t7qWFhgxUILmqMI77O8v5typLC4Q3MjD3O6lKgh/lhoUYimZ/hPDY5eOw/P0VmRfkRpfE\n\tyuDdXApwwuP/uT7q34vZ4c1PFJzHTicEf7RVfiC0YWA2ZTuVcoIZTF7ixPUqAmbr2Ogt\n\tB9KE8ULp8oq62OlzXvp+u0WA5NyUbkLT88RbRbJffv/fMrkgiPyHjMGk0DUTX8Ao8PL8\n\tlVzw==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n\ts=arc-20240605; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:dkim-signature;\n\tbh=6+BpPA6wIuMmyQD4Qq9UPIFJRszvu3UTW2w35dr3RoU=;\n\tfh=kAwbguIY0wmqf1QQypnTiLH20ruRu7+JSSp6fzxLlN4=;\n\tb=DZxKsAMREAhuT5YqJku7RsTlAYPXwBz++/VBj+bFXGLfoUygTdGh109f2L9mtNWW7q\n\tyCOR4bMd5cIgKrp4NOqb1+hEIywtwc+Nb4qPMXobBiQ4FtEvRce70wbJD3lJT9yX+d+j\n\t5k6/RFU4uCfikeFLWm2iqyungJ8tANkuVf7yK87v9t07XzHmer0cV6xTbZrpDu8XhrJP\n\ttFGrrtuR6cmWBqtWjgRDaXUT1XkA9LB6yJECR3KR8XqzOUxHFor1pIMPNm29tTg+oQWI\n\tlZ5GvVKCwk9TuO0UaDzpvJQ64s/+Qvr+g845LSRAbQjOKce901gcZJBjavPaxyyJxELd\n\ti2wQ==; darn=lists.libcamera.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1774869173; x=1775473973;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=6+BpPA6wIuMmyQD4Qq9UPIFJRszvu3UTW2w35dr3RoU=;\n\tb=clCuyV+fZIUGLw07B8jihC9PjfpSxy03YfsYWxFp86v8JImW0BwUCCy9UADqttDAs1\n\tfOjjrSi4JlbiTil3ohS7hPFDkc94gStdD78gDV39skNTLf3HZ4SgidXGHpdbQiLuxf9W\n\tCSnt5vjI4XOLjJ1afuc3zV5inpbJzj2C3NaeJ8Td2xqGPAOB5UwiM3vWyxR5BOzT3wXO\n\tC7l/irMsBLfeiOebGYlZRW00+Lrlg5VRZX0XUepMibXX9Ijc+52kWECm1jHLKG9iSe+d\n\tFTmjVU2HFeMzhyl/ga+4BnV6GS0fpRjHL1Fe18URn2X6KOtFhQFW8BRnJ2D7ZV+Ie+SR\n\tSclQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20251104; t=1774869173; x=1775473973;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=6+BpPA6wIuMmyQD4Qq9UPIFJRszvu3UTW2w35dr3RoU=;\n\tb=EekVpOQxgMoozo9aeXEvEIgTY/EQkKNWVobqkZVXSMXSonA6xKGGrPOKgVPlQ/cS6v\n\t52KriB2kFyloASLwrn11wmhoR93RGtOEQjFngL4f3LRDZPgBExRIJquGefJRpoSG+cup\n\tsy+jI2AJrT6z2DpzpK3nDAn2mb/Xks3CgGcPFBlRZ6TsUPn4AQwRO7csEVQiGeKJHnpk\n\tuCyeWF+szuVswSGBlNS7BYpZiKeuu/Jqk+8MOs2/Ql6ZaT1W/MmV3djq44LZRwqaL22Y\n\tXyb2mx7fhTOU/it+xBqdHMjeD6IMU9r2FS4uroV7WvA6NerPS9Nre6cSPjDc7bsTXk2M\n\tNX7A==","X-Gm-Message-State":"AOJu0YxnpqXwqZfpDm0mLZ36cWGfBrRuaMnylzeNXoeBrRjgc59yUjY1\n\tNeh9PP3WSPFD1ch2KqTa6fNk6ISH3GtJJViKzMgS55uysVXpu8/G2qTfeFBxeCYAlq6i490MKKE\n\tgSuMLQct0HHA9eYpye844dIz2qf++ZyNqud/FlWuQFhSpvwZXaJbx6Ww=","X-Gm-Gg":"ATEYQzyLBrVvEautA90W2F1jD+wNcT0DrxMrjSxGZtZzRc5BHMsm62he00z4hKtetMX\n\teME8KI0fgzUULd196PCqXRJp0ee4qoXdR6EIZU/N6igoUuxa10xO91wHw4SPh0bizJtqJuaT7u3\n\tuFez+DqdvksEeyT16RJX8MF/fil3rlLahozrUZ4TvdQuHloghLQ6MsrmngZOshCFZi7gF6y7n1+\n\trLB5iR3qFUa0VSOoRSM/h5YvmhMCLBlc5zVgj0guzvBU9F2jAgXFCe5BFB4+P88tTNaKt0ltYQr\n\tvqohUAwLQs1c1YQCbQlYV3AffkjFeI7GyAfzJzvdpRWFEaEqkzaddO16TTa2fCUtqozAU4MBc5O\n\tbXWjwFzH35p4z1h5x7Qx8FA==","X-Received":"by 2002:a05:6102:5120:b0:604:e96f:af36 with SMTP id\n\tada2fe7eead31-604f8d4af29mr2459457137.0.1774869172815;\n\tMon, 30 Mar 2026 04:12:52 -0700 (PDT)","MIME-Version":"1.0","References":"<20260330084355.875580-1-naush@raspberrypi.com>\n\t<20260330105158.GD2543377@killaraus.ideasonboard.com>","In-Reply-To":"<20260330105158.GD2543377@killaraus.ideasonboard.com>","From":"Naushir Patuck <naush@raspberrypi.com>","Date":"Mon, 30 Mar 2026 12:12:17 +0100","X-Gm-Features":"AQROBzAlZd5a2Gwq5OoO-7mTWk0VqriVWAlEY3zn_1_npNo_KC4zWy9AE4uZRPM","Message-ID":"<CAEmqJPosqwwp0+Lq-mzgXHFzR3EpFWvZncdca0qg+7hcUQyKtg@mail.gmail.com>","Subject":"Re: [PATCH] utils: raspberrypi: Remove Raspberry Pi CTT from the\n\tsource tree","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"UTF-8\"","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>"}}]