Show a cover letter.

GET /api/covers/24159/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 24159,
    "url": "https://patchwork.libcamera.org/api/covers/24159/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/24159/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/projects/1/?format=api",
        "name": "libcamera",
        "link_name": "libcamera",
        "list_id": "libcamera_core",
        "list_email": "libcamera-devel@lists.libcamera.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20250819012402.8395-1-laurent.pinchart@ideasonboard.com>",
    "date": "2025-08-19T01:23:58",
    "name": "[v3,0/3] py: Improve native and cross-compilation of Python bindings",
    "submitter": {
        "id": 2,
        "url": "https://patchwork.libcamera.org/api/people/2/?format=api",
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/24159/mbox/",
    "series": [
        {
            "id": 5393,
            "url": "https://patchwork.libcamera.org/api/series/5393/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5393",
            "date": "2025-08-19T01:23:58",
            "name": "py: Improve native and cross-compilation of Python bindings",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/5393/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/24159/comments/",
    "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 DCBE7BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 19 Aug 2025 01:24:27 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7DF53613C5;\n\tTue, 19 Aug 2025 03:24:26 +0200 (CEST)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B3F4A613C5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 19 Aug 2025 03:24:24 +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 E3095446;\n\tTue, 19 Aug 2025 03:23:26 +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=\"YznbFUng\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1755566607;\n\tbh=dJWLzMyQ7qjSZ3rrZJcSwK7F3tmZE8oDUmW8GNb/Mi4=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=YznbFUngygVSqytQ0xri9Y2PP/raieC+4n0AcbonL45xPqpD5uF9tcYPf8NBdAqps\n\tDqRG7kUjF9hkIZB46P12Zea7BnnQCOXrW128Kc+0EiRDYyI8OY3aO39pR5c4lgvUCp\n\tw7FPb453le20CM+neg8dIfyR28DbtUf7NauAv6Iw=",
        "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "William Vinnicombe <william.vinnicombe@raspberrypi.com>,\n\tTomi Valkeinen <tomi.valkeinen@ideasonboard.com>",
        "Subject": "[PATCH v3 0/3] py: Improve native and cross-compilation of Python\n\tbindings",
        "Date": "Tue, 19 Aug 2025 04:23:58 +0300",
        "Message-ID": "<20250819012402.8395-1-laurent.pinchart@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.49.1",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "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>"
    },
    "content": "Hello,\n\nThis patch series resurects an old patch from William ([1]) that fixes\nthe installation path of Python bindings on Debian when compiling\nlibcamera natively. I've stumbled upon a similar issue on Gentoo, which\npushed me to investigate how meson handles Python extension modules, and\nhow Debian implements \"original\" and \"clever\" very unconventional\nconventions for installation paths. The result of that investigation is\nsummarized in a reply to [1], I will not duplicate it here.\n\nPatch 1/3 is a rebased version of William's patch. The next two patches\nare new, they attempt to also improve cross-compilation by using the\nmeson python module to locate the Python dependency (2/3) and calculate\nthe installation path (3/3). Please see individual patches for details\nof the pros and cons.\n\nI have tested this series with native compilation on Debian 11, 12 and\n13 as well as on Gentoo, and cross-compilation using Debian 12\nmultiarch as well manually compiling libcamera against a Buildroot\nenvironment. All three patches bring in my opinion a net improvement,\neven if cross-compilation on Debian 12 required specifying the\ninstallation path manually.\n\n[1] https://patchwork.libcamera.org/patch/19186/\n\nLaurent Pinchart (2):\n  py: libcamera: Get dependency from meson python module unconditionally\n  py: libcamera: Always use install path from meson python module\n\nWilliam Vinnicombe (1):\n  py: libcamera: Improve python binding installation\n\n src/py/libcamera/meson.build | 41 ++++++++++++++++++++++++------------\n src/py/meson.build           |  5 +++--\n test/py/meson.build          |  3 ---\n 3 files changed, 30 insertions(+), 19 deletions(-)\n\n\nbase-commit: af43c2f945c42cc7d111de63abed9ca3df830ca4\nprerequisite-patch-id: 1298ff340024778a333472d63b8bf28c618ccad7\nprerequisite-patch-id: 1967c9e8fb4ab43fc8b1fe9784737a36bc882076\nprerequisite-patch-id: dd4ee79a61e075a5e2037b9aae68938d008f92dd\nprerequisite-patch-id: c3106cd30df87783fcdb30b84402d0ba232baf0e\n--\nRegards,\n\nLaurent Pinchart"
}