get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.2/patches/2233137/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2233137,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2233137/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260505181300.223439-5-sjg@chromium.org/",
    "project": {
        "id": 18,
        "url": "http://patchwork.ozlabs.org/api/1.2/projects/18/?format=api",
        "name": "U-Boot",
        "link_name": "uboot",
        "list_id": "u-boot.lists.denx.de",
        "list_email": "u-boot@lists.denx.de",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260505181300.223439-5-sjg@chromium.org>",
    "list_archive_url": null,
    "date": "2026-05-05T18:12:55",
    "name": "[v2,4/4] binman: Use bintool wrappers for PKCS#11 tools in tests",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "9e6a556087a86ca5349d26ebfaca65bf5dffe64b",
    "submitter": {
        "id": 6170,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/6170/?format=api",
        "name": "Simon Glass",
        "email": "sjg@chromium.org"
    },
    "delegate": {
        "id": 3184,
        "url": "http://patchwork.ozlabs.org/api/1.2/users/3184/?format=api",
        "username": "sjg",
        "first_name": "Simon",
        "last_name": "Glass",
        "email": "sjg@chromium.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260505181300.223439-5-sjg@chromium.org/mbox/",
    "series": [
        {
            "id": 502878,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/502878/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=502878",
            "date": "2026-05-05T18:12:51",
            "name": "binman: Tidy up some missing bintool docs",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/502878/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2233137/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2233137/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<u-boot-bounces@lists.denx.de>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256\n header.s=google header.b=KgcKmxvt;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)",
            "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=chromium.org",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de",
            "phobos.denx.de;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org\n header.b=\"KgcKmxvt\";\n\tdkim-atps=neutral",
            "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=chromium.org",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=sjg@chromium.org"
        ],
        "Received": [
            "from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g968Y2vBTz1yJV\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 04:13:49 +1000 (AEST)",
            "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 975FC849E0;\n\tTue,  5 May 2026 20:13:22 +0200 (CEST)",
            "by phobos.denx.de (Postfix, from userid 109)\n id F0397849EA; Tue,  5 May 2026 20:13:21 +0200 (CEST)",
            "from mail-oa1-x29.google.com (mail-oa1-x29.google.com\n [IPv6:2001:4860:4864:20::29])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id C132D849DF\n for <u-boot@lists.denx.de>; Tue,  5 May 2026 20:13:19 +0200 (CEST)",
            "by mail-oa1-x29.google.com with SMTP id\n 586e51a60fabf-434d9df81a5so580829fac.1\n for <u-boot@lists.denx.de>; Tue, 05 May 2026 11:13:19 -0700 (PDT)",
            "from chromium.org ([174.51.25.52]) by smtp.gmail.com with ESMTPSA id\n 586e51a60fabf-434549540b2sm14585754fac.6.2026.05.05.11.13.16\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 05 May 2026 11:13:16 -0700 (PDT)"
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=-2.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,\n DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,\n RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham\n autolearn_force=no version=3.4.2",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=chromium.org; s=google; t=1778004798; x=1778609598; darn=lists.denx.de;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=QqK/GDDP8wLoMufy2/fY6nS1KowmC2c502gH0ke8gAo=;\n b=KgcKmxvtvfT0iawMREUTOpJxJv4D3Fa36h0DuKEkd1ybz0T0LXx+4wsdkrcVAkb8gw\n r++tDln9/r8S7Xq++E0DrxjHOAkfHtyC5wPOlGCHRcN+scF8KYPmy585P9I+ZL+rhA1B\n 4xgxkVeW+6X7qRSKzk2FqB+XFQ4TwF4Q28AwY=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778004798; x=1778609598;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=QqK/GDDP8wLoMufy2/fY6nS1KowmC2c502gH0ke8gAo=;\n b=Ouu1wwEV1penwMgYj46E24rUiGLB8x/psXGmOEUKoUhZQ/qs0VtbDg/HRf2jtWYhcy\n 2XI4yaQR9j1W9dnEFN+dA/1ZeE67vzb6paIMvI1qTA3m0aq9z0kKMtjYUXIHBWtOBrMt\n 8K6XF6hqJjN982/1KDsonmFjNyuLOejJEolaqWsovPh4W11bPdkf+6gp8bhEW7MDWo7B\n zXqmYO1HySZIRYaPye3XgItAUoGP+Wr/8mWgqDv7HN6r4Ll6dSoS8nuiscyQteR5l9IG\n yKypG1OnsMKbFJF9oGcbMUsOdngE1dvlQTSoRU+Jg5a0RLHdFjhgcp58OI4pjMVpegPj\n HWvQ==",
        "X-Gm-Message-State": "AOJu0Ywt+E8f9pqPEPepkb+RxrrfPtNTSSAKufJTJxxT8mIQdpVnjAEI\n HCMBew8gouc3zZ3SS/BARCN2+BkW9tiydX7ewD5MhABdDgoL6pcfELeSurQQo9/tzdcnIwPtF+m\n 02RRxWA==",
        "X-Gm-Gg": "AeBDieuc4VCiUVUVn0+6QRkHhLwnw0MXzA/WwkLWuXjU2upAb6a4zRgTL/L1Ypk+I6Z\n ODM56hTf6dIiSzc6J3u6TocS5wyx7/BALz5TOcchMMVjFHtyj0XhN4u/aYEVFOsmzBMCcUVbLe1\n eDql1moajHox9xG/g08tXIc4cLCQ6+TakoqGmJt5OrOUIUjUCnazr9Mih4drI6J44sGUmYOEqlU\n w6qn1pXBHbWLghuiU9XRH+6OHMlGsDwDrzC+yoLDBP3hbC5EVvRbkYr+SB045UlcowwPKFBJCyv\n ZVhdvzRDmbu630dybqwv978yzNN0KVPPiA3xqfKsT24Mt1kB2oS7J4n6PMNKDF8XzWJ5L/YnYxM\n b2n6C7SV0mR3cKsqpZLBJ0avJjK0LSg9q98ktdvplI3pWMlt0lg3gheWoGmOnP8axmXIqtyMBaT\n FaV/Pj8CrvUIpxgq1xSzcxn/unOt5GXSPZVhUiG/k=",
        "X-Received": "by 2002:a05:6870:c18e:b0:41c:890d:d776 with SMTP id\n 586e51a60fabf-434f68b5743mr243459fac.7.1778004797851;\n Tue, 05 May 2026 11:13:17 -0700 (PDT)",
        "From": "Simon Glass <sjg@chromium.org>",
        "To": "u-boot@lists.denx.de",
        "Cc": "Heinrich Schuchardt <xypron.glpk@gmx.de>, Simon Glass <sjg@chromium.org>,\n Quentin Schulz <quentin.schulz@cherry.de>,\n Alper Nebi Yasak <alpernebiyasak@gmail.com>, Bryan Brattlof <bb@ti.com>,\n Neha Malcom Francis <n-francis@ti.com>, Peng Fan <peng.fan@nxp.com>,\n Philippe Reynes <philippe.reynes@softathome.com>,\n Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>,\n Tom Rini <trini@konsulko.com>, Wojciech Dubowik <Wojciech.Dubowik@mt.com>,\n Yannic Moog <y.moog@phytec.de>",
        "Subject": "[PATCH v2 4/4] binman: Use bintool wrappers for PKCS#11 tools in\n tests",
        "Date": "Tue,  5 May 2026 12:12:55 -0600",
        "Message-ID": "<20260505181300.223439-5-sjg@chromium.org>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20260505181300.223439-1-sjg@chromium.org>",
        "References": "<20260505181300.223439-1-sjg@chromium.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "u-boot@lists.denx.de",
        "X-Mailman-Version": "2.1.39",
        "Precedence": "list",
        "List-Id": "U-Boot discussion <u-boot.lists.denx.de>",
        "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>",
        "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>",
        "List-Post": "<mailto:u-boot@lists.denx.de>",
        "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>",
        "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>",
        "Errors-To": "u-boot-bounces@lists.denx.de",
        "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>",
        "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de",
        "X-Virus-Status": "Clean"
    },
    "content": "The PKCS#11 signing tests in ftest.py call tools.run('softhsm2-util', ...)\ndirectly (and the equivalent for pkcs11-tool and p11-kit), even though\nthe test setup has already constructed the corresponding Bintool\ninstances. As Quentin Schulz observed on v1, the bintool wrapper for\nthese tools is currently used only as an \"is this installed?\" probe.\n\nRoute the eight remaining call sites in ftest.py through\n<bintool>.run_cmd(...), which the Bintool base class already provides.\nThe change is test-side only; no production binman code calls these\ntools.\n\nSuggested-by: Quentin Schulz <quentin.schulz@cherry.de>\nSigned-off-by: Simon Glass <sjg@chromium.org>\n---\n\nChanges in v2:\n- New patch in v2 (per Quentin's review): replace tools.run() of\n  softhsm2-util, pkcs11-tool and p11-kit in ftest.py with the\n  Bintool.run_cmd() wrapper that already exists\n\n tools/binman/ftest.py | 46 +++++++++++++++++++++----------------------\n 1 file changed, 23 insertions(+), 23 deletions(-)",
    "diff": "diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py\nindex ca5149ee654..273d0ff0379 100644\n--- a/tools/binman/ftest.py\n+++ b/tools/binman/ftest.py\n@@ -7560,7 +7560,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         self._CheckBintool(p11_kit)\n \n         p11_kit_config = configparser.ConfigParser()\n-        out = tools.run('p11-kit', 'print-config')\n+        out = p11_kit.run_cmd('print-config')\n         p11_kit_config.read_string(out)\n         softhsm2_lib = p11_kit_config.get('softhsm2', 'module',\n                                            fallback=None)\n@@ -7569,16 +7569,16 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         with unittest.mock.patch.dict('os.environ',\n                                       {'SOFTHSM2_CONF': softhsm2_conf,\n                                        'PKCS11_MODULE_PATH': softhsm2_lib}):\n-                tools.run('softhsm2-util', '--init-token', '--free', '--label',\n-                          'U-Boot token', '--pin', '1111', '--so-pin',\n-                          '222222')\n-                tools.run('pkcs11-tool', '--module', softhsm2_lib,\n-                          '--write-object', cert_file, '--pin', '1111',\n-                          '--type', 'cert', '--id', '999999', '--label',\n-                          'test_cert', '--login')\n-                tools.run('softhsm2-util', '--import', private_key, '--token',\n-                          'U-Boot token', '--label', 'test_key', '--id', '999999',\n-                          '--pin', '1111')\n+                softhsm2_util.run_cmd('--init-token', '--free', '--label',\n+                                      'U-Boot token', '--pin', '1111',\n+                                      '--so-pin', '222222')\n+                pkcs11_tool.run_cmd('--module', softhsm2_lib,\n+                                    '--write-object', cert_file, '--pin', '1111',\n+                                    '--type', 'cert', '--id', '999999', '--label',\n+                                    'test_cert', '--login')\n+                softhsm2_util.run_cmd('--import', private_key, '--token',\n+                                      'U-Boot token', '--label', 'test_key',\n+                                      '--id', '999999', '--pin', '1111')\n                 data = self._DoReadFile('capsule/signed_pkcs11.dts')\n \n         self._CheckCapsule(data, signed_capsule=True)\n@@ -8230,12 +8230,12 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n \n         with unittest.mock.patch.dict('os.environ',\n                                       {'SOFTHSM2_CONF': softhsm2_conf}):\n-            tools.run('softhsm2-util', '--init-token', '--free', '--label',\n-                      'U-Boot token', '--pin', '1111', '--so-pin',\n-                      '222222')\n-            tools.run('softhsm2-util', '--import', private_key, '--token',\n-                      'U-Boot token', '--label', 'test_key', '--id', '999999',\n-                      '--pin', '1111')\n+            softhsm2_util.run_cmd('--init-token', '--free', '--label',\n+                                  'U-Boot token', '--pin', '1111',\n+                                  '--so-pin', '222222')\n+            softhsm2_util.run_cmd('--import', private_key, '--token',\n+                                  'U-Boot token', '--label', 'test_key',\n+                                  '--id', '999999', '--pin', '1111')\n \n         # Make sure the private key can only be accessed through the engine\n         os.remove(private_key)\n@@ -8305,12 +8305,12 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n \n         with unittest.mock.patch.dict('os.environ',\n                                       {'SOFTHSM2_CONF': softhsm2_conf}):\n-            tools.run('softhsm2-util', '--init-token', '--free', '--label',\n-                      'U-Boot prod token', '--pin', '1234', '--so-pin',\n-                      '222222')\n-            tools.run('softhsm2-util', '--import', private_key, '--token',\n-                      'U-Boot prod token', '--label', 'prod', '--id', '999999',\n-                      '--pin', '1234')\n+            softhsm2_util.run_cmd('--init-token', '--free', '--label',\n+                                  'U-Boot prod token', '--pin', '1234',\n+                                  '--so-pin', '222222')\n+            softhsm2_util.run_cmd('--import', private_key, '--token',\n+                                  'U-Boot prod token', '--label', 'prod',\n+                                  '--id', '999999', '--pin', '1234')\n \n         # Make sure the private key can only be accessed through the engine\n         os.remove(private_key)\n",
    "prefixes": [
        "v2",
        "4/4"
    ]
}