get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 87342,
    "url": "https://patches.dpdk.org/api/patches/87342/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210126141857.1029916-6-bruce.richardson@intel.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20210126141857.1029916-6-bruce.richardson@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210126141857.1029916-6-bruce.richardson@intel.com",
    "date": "2021-01-26T14:18:54",
    "name": "[v4,5/7] buildtools/chkincs: add app to verify header includes",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "6ae2789068cb9b59dddaa319e74f4fe0a57aa3c6",
    "submitter": {
        "id": 20,
        "url": "https://patches.dpdk.org/api/people/20/?format=api",
        "name": "Bruce Richardson",
        "email": "bruce.richardson@intel.com"
    },
    "delegate": {
        "id": 24651,
        "url": "https://patches.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20210126141857.1029916-6-bruce.richardson@intel.com/mbox/",
    "series": [
        {
            "id": 14953,
            "url": "https://patches.dpdk.org/api/series/14953/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=14953",
            "date": "2021-01-26T14:18:49",
            "name": "add checking of header includes",
            "version": 4,
            "mbox": "https://patches.dpdk.org/series/14953/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/87342/comments/",
    "check": "warning",
    "checks": "https://patches.dpdk.org/api/patches/87342/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id B9F84A052A;\n\tTue, 26 Jan 2021 15:19:54 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 65CAF140EE6;\n\tTue, 26 Jan 2021 15:19:38 +0100 (CET)",
            "from mga18.intel.com (mga18.intel.com [134.134.136.126])\n by mails.dpdk.org (Postfix) with ESMTP id 34E80140E84\n for <dev@dpdk.org>; Tue, 26 Jan 2021 15:19:35 +0100 (CET)",
            "from fmsmga008.fm.intel.com ([10.253.24.58])\n by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 26 Jan 2021 06:19:34 -0800",
            "from silpixa00399126.ir.intel.com ([10.237.222.4])\n by fmsmga008.fm.intel.com with ESMTP; 26 Jan 2021 06:19:33 -0800"
        ],
        "IronPort-SDR": [
            "\n dgGrrUJXpX3Eh8Q00o36Y++uxS8jkhSRIDwyz118kWevEIWhGX2Bc4WlCBGD442AcqW5LM7xY7\n FWaNicgrwGCA==",
            "\n MkxC48kKNZRevgsQ20gkCZB7BlCARaJ9J0vnnZOJ00Iq1omGa3dXaFyPOypUpXgYQQZ/vUAeid\n lH1PU2waKm7Q=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6000,8403,9875\"; a=\"167577351\"",
            "E=Sophos;i=\"5.79,375,1602572400\"; d=\"scan'208\";a=\"167577351\"",
            "E=Sophos;i=\"5.79,375,1602572400\"; d=\"scan'208\";a=\"361995528\""
        ],
        "X-ExtLoop1": "1",
        "From": "Bruce Richardson <bruce.richardson@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "david.marchand@redhat.com, Bruce Richardson <bruce.richardson@intel.com>,\n Thomas Monjalon <thomas@monjalon.net>",
        "Date": "Tue, 26 Jan 2021 14:18:54 +0000",
        "Message-Id": "<20210126141857.1029916-6-bruce.richardson@intel.com>",
        "X-Mailer": "git-send-email 2.27.0",
        "In-Reply-To": "<20210126141857.1029916-1-bruce.richardson@intel.com>",
        "References": "<20210114110606.21142-1-bruce.richardson@intel.com>\n <20210126141857.1029916-1-bruce.richardson@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v4 5/7] buildtools/chkincs: add app to verify\n header includes",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "To verify that all DPDK headers are ok for inclusion directly in a C file,\nand are not missing any other pre-requisite headers, we can auto-generate\nfor each header an empty C file that includes that header. Compiling these\nfiles will throw errors if any header has unmet dependencies.\n\nTo ensure ongoing compliance, we enable this build test as part of the\ndefault x86 build in \"test-meson-builds.sh\".\n\nSigned-off-by: Bruce Richardson <bruce.richardson@intel.com>\n---\n MAINTAINERS                                 |  4 ++\n buildtools/chkincs/gen_c_file_for_header.py | 12 ++++++\n buildtools/chkincs/main.c                   |  4 ++\n buildtools/chkincs/meson.build              | 41 +++++++++++++++++++++\n devtools/test-meson-builds.sh               |  2 +-\n meson.build                                 |  5 +++\n 6 files changed, 67 insertions(+), 1 deletion(-)\n create mode 100755 buildtools/chkincs/gen_c_file_for_header.py\n create mode 100644 buildtools/chkincs/main.c\n create mode 100644 buildtools/chkincs/meson.build",
    "diff": "diff --git a/MAINTAINERS b/MAINTAINERS\nindex 1a12916f56..d4f9ebe46d 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -1562,6 +1562,10 @@ F: app/test/test_resource.c\n F: app/test/virtual_pmd.c\n F: app/test/virtual_pmd.h\n \n+Header build sanity checking\n+M: Bruce Richardson <bruce.richardson@intel.com>\n+F: buildtools/chkincs/\n+\n Sample packet helper functions for unit test\n M: Reshma Pattan <reshma.pattan@intel.com>\n F: app/test/sample_packet_forward.c\ndiff --git a/buildtools/chkincs/gen_c_file_for_header.py b/buildtools/chkincs/gen_c_file_for_header.py\nnew file mode 100755\nindex 0000000000..ed46948aea\n--- /dev/null\n+++ b/buildtools/chkincs/gen_c_file_for_header.py\n@@ -0,0 +1,12 @@\n+#! /usr/bin/env python3\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright(c) 2021 Intel Corporation\n+\n+from sys import argv\n+from os.path import abspath\n+\n+(h_file, c_file) = argv[1:]\n+\n+contents = '#include \"' + abspath(h_file) + '\"'\n+with open(c_file, 'w') as cf:\n+    cf.write(contents)\ndiff --git a/buildtools/chkincs/main.c b/buildtools/chkincs/main.c\nnew file mode 100644\nindex 0000000000..d25bb8852a\n--- /dev/null\n+++ b/buildtools/chkincs/main.c\n@@ -0,0 +1,4 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright(c) 2021 Intel Corporation\n+ */\n+int main(void) { return 0; }\ndiff --git a/buildtools/chkincs/meson.build b/buildtools/chkincs/meson.build\nnew file mode 100644\nindex 0000000000..97f9ad13b3\n--- /dev/null\n+++ b/buildtools/chkincs/meson.build\n@@ -0,0 +1,41 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright(c) 2021 Intel Corporation\n+\n+if not get_option('check_includes')\n+\tbuild = false\n+\tsubdir_done()\n+endif\n+\n+if is_windows\n+\t# for windows, the shebang line in the script won't work.\n+\terror('option \"check_includes\" is not supported on windows')\n+endif\n+\n+gen_c_file_for_header = find_program('gen_c_file_for_header.py')\n+gen_c_files = generator(gen_c_file_for_header,\n+\toutput: '@BASENAME@.c',\n+\targuments: ['@INPUT@', '@OUTPUT@'])\n+\n+cflags = machine_args\n+cflags += '-Wno-unused-function' # needed if we include generic headers\n+cflags += '-DALLOW_EXPERIMENTAL_API'\n+cflags += '-DALLOW_INTERNAL_API'\n+\n+# some ethdev headers depend on bus headers\n+includes = include_directories('../../drivers/bus/pci',\n+\t'../../drivers/bus/vdev')\n+\n+sources = files('main.c')\n+sources += gen_c_files.process(dpdk_chkinc_headers)\n+\n+deps = []\n+foreach l:enabled_libs\n+\tdeps += get_variable('static_rte_' + l)\n+endforeach\n+\n+executable('chkincs', sources,\n+\tc_args: cflags,\n+\tinclude_directories: includes,\n+\tdependencies: deps,\n+\tlink_whole: dpdk_static_libraries + dpdk_drivers,\n+\tinstall: false)\ndiff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh\nindex efa91e0e40..07b5e6aeca 100755\n--- a/devtools/test-meson-builds.sh\n+++ b/devtools/test-meson-builds.sh\n@@ -227,7 +227,7 @@ default_machine='nehalem'\n if ! check_cc_flags \"-march=$default_machine\" ; then\n \tdefault_machine='corei7'\n fi\n-build build-x86-default cc skipABI \\\n+build build-x86-default cc skipABI -Dcheck_includes=true\\\n \t-Dlibdir=lib -Dmachine=$default_machine $use_shared\n \n # 32-bit with default compiler\ndiff --git a/meson.build b/meson.build\nindex e6e34d0a98..fcc4d4c900 100644\n--- a/meson.build\n+++ b/meson.build\n@@ -68,6 +68,11 @@ if get_option('enable_kmods')\n \tsubdir('kernel')\n endif\n \n+# check header includes if requested\n+if get_option('check_includes')\n+\tsubdir('buildtools/chkincs')\n+endif\n+\n # write the build config\n build_cfg = 'rte_build_config.h'\n configure_file(output: build_cfg,\n",
    "prefixes": [
        "v4",
        "5/7"
    ]
}