get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 73482,
    "url": "https://patches.dpdk.org/api/patches/73482/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20200708005355.7102-3-dmitry.kozliuk@gmail.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": "<20200708005355.7102-3-dmitry.kozliuk@gmail.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200708005355.7102-3-dmitry.kozliuk@gmail.com",
    "date": "2020-07-08T00:53:53",
    "name": "[v3,2/4] build: use Python pmdinfogen",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "17086e6c098069c6eee0e417e95a14174bd61b53",
    "submitter": {
        "id": 1581,
        "url": "https://patches.dpdk.org/api/people/1581/?format=api",
        "name": "Dmitry Kozlyuk",
        "email": "dmitry.kozliuk@gmail.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20200708005355.7102-3-dmitry.kozliuk@gmail.com/mbox/",
    "series": [
        {
            "id": 10868,
            "url": "https://patches.dpdk.org/api/series/10868/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=10868",
            "date": "2020-07-08T00:53:51",
            "name": "pmdinfogen: rewrite in Python",
            "version": 3,
            "mbox": "https://patches.dpdk.org/series/10868/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/73482/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/73482/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 24F5BA00BE;\n\tWed,  8 Jul 2020 02:54:27 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id A88AA1DD48;\n\tWed,  8 Jul 2020 02:54:20 +0200 (CEST)",
            "from mail-lj1-f195.google.com (mail-lj1-f195.google.com\n [209.85.208.195]) by dpdk.org (Postfix) with ESMTP id 4FEA01DD11\n for <dev@dpdk.org>; Wed,  8 Jul 2020 02:54:14 +0200 (CEST)",
            "by mail-lj1-f195.google.com with SMTP id f5so36334811ljj.10\n for <dev@dpdk.org>; Tue, 07 Jul 2020 17:54:14 -0700 (PDT)",
            "from localhost.localdomain (broadband-37-110-65-23.ip.moscow.rt.ru.\n [37.110.65.23])\n by smtp.gmail.com with ESMTPSA id h22sm515986ljg.1.2020.07.07.17.54.12\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 07 Jul 2020 17:54:12 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=S80P6Jny2RG5HDhbqjgpDbYyO3/J3JYhYBKK+KpjIE8=;\n b=Qv1I9Efdp9QszICF7rBDiFwhcQ7p/YIexfbvRV4tGbwHKorzqCWO+L26f+yxGIcbZX\n N23j65koqK+AhBOlfQTu/FzkBUrP9Y6meI9O9EfZCVg4erBaOn6Jdl5J4hDnfbuMBFaP\n 2dA9Fok93YRec7Kn5/TYGZUEFcZHa0CsIIY/kqTJ/NG9Q9fBZ2QVk0FLV1W7ZrGq4aaY\n 3vEChVpfaMMagQjPrXmIATLw1j3LfPl91XLpB3L0JgStYrveXkdDSadQUvlu001ZQmM3\n V3Ee0a29osAQjOJIog9GHk/8PRu/gpATzyI63rW+zLKUZdwbyAIS4S0M5GUqLoL1MUol\n G9TA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=S80P6Jny2RG5HDhbqjgpDbYyO3/J3JYhYBKK+KpjIE8=;\n b=VG22VG58+N3tVGYX7GVpV+uGH1mp/CJ2ahncHeRcYgd5iuow586lGiS3exm095G/7x\n qosWO66T5GThcx5DpOsH6ffNcDXt0Auiqww40PLAFYCpXMDWdaB3K/VelR1qLf9p8xb8\n NFlEDjGPXTN2iuBut+KfrYt84aDT6ZFC3Geca5nsBq7+ZJLXqSj2sRGh6RR9PC/IIDhM\n Kc0dteIeKMrypdLIyxB5CNlE9oN7G+ooptm25k+3qHin0etT2QDVQlIRRXUt1iaJgXS0\n kXtkHKON/EfwWfeudqaW/o0K79z9ffCX+jADpH/XOasZ4qDFveE90KHbHhPyf5v5x9PC\n rfsw==",
        "X-Gm-Message-State": "AOAM5339II0Rs02kGWNZqr1gRNMrHnCF2ofed8ptLYXZ6KDiaFE6YoJJ\n Ck9C6unjmxZbk8XjMGhAzGhIhWu1hld63w==",
        "X-Google-Smtp-Source": "\n ABdhPJxX2ejPovzgN9H2t5zDC0uo4VW9T5bEFgQOUjjCPLye7fgjanH4QoGg2O9UZQRMoR6oyg+t9A==",
        "X-Received": "by 2002:a2e:9c95:: with SMTP id\n x21mr24964797lji.234.1594169653467;\n Tue, 07 Jul 2020 17:54:13 -0700 (PDT)",
        "From": "Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>",
        "To": "dev@dpdk.org",
        "Cc": "Neil Horman <nhorman@tuxdriver.com>,\n Bruce Richardson <bruce.richardson@intel.com>,\n Thomas Monjalon <thomas@monjalon.net>, robin.jarry@6wind.com,\n Jie Zhou <jizh@microsoft.com>, Tal Shnaiderman <talshn@mellanox.com>,\n Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>,\n Aaron Conole <aconole@redhat.com>,\n Michael Santana <maicolgabriel@hotmail.com>",
        "Date": "Wed,  8 Jul 2020 03:53:53 +0300",
        "Message-Id": "<20200708005355.7102-3-dmitry.kozliuk@gmail.com>",
        "X-Mailer": "git-send-email 2.25.4",
        "In-Reply-To": "<20200708005355.7102-1-dmitry.kozliuk@gmail.com>",
        "References": "<20200702000232.10761-1-dmitry.kozliuk@gmail.com>\n <20200708005355.7102-1-dmitry.kozliuk@gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v3 2/4] build: use Python pmdinfogen",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "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": "Like for other build scripts, use Python interpreter to run pmdinfogen.\nAdjust wrapper script accordingly and also don't suppress stderr from ar\nand pmdinfogen.\n\nAdd python3-pyelftools to CI configuration.\n\nSigned-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>\n---\n .travis.yml                     | 2 +-\n GNUmakefile                     | 2 +-\n buildtools/Makefile             | 9 ---------\n buildtools/gen-pmdinfo-cfile.sh | 6 +++---\n buildtools/meson.build          | 1 +\n drivers/meson.build             | 2 +-\n meson.build                     | 1 -\n mk/internal/rte.compile-pre.mk  | 2 +-\n mk/rte.sdkinstall.mk            | 2 --\n 9 files changed, 8 insertions(+), 19 deletions(-)\n delete mode 100644 buildtools/Makefile",
    "diff": "diff --git a/.travis.yml b/.travis.yml\nindex 14f812423..28b559a25 100644\n--- a/.travis.yml\n+++ b/.travis.yml\n@@ -14,7 +14,7 @@ addons:\n   apt:\n     update: true\n     packages: &required_packages\n-      - [libnuma-dev, python3-setuptools, python3-wheel, python3-pip, ninja-build]\n+      - [libnuma-dev, python3-setuptools, python3-wheel, python3-pip, python3-pyelftools, ninja-build]\n       - [libbsd-dev, libpcap-dev, libibverbs-dev, libcrypto++-dev, libfdt-dev, libjansson-dev]\n \n _aarch64_packages: &aarch64_packages\ndiff --git a/GNUmakefile b/GNUmakefile\nindex e8de422df..242d30d2e 100644\n--- a/GNUmakefile\n+++ b/GNUmakefile\n@@ -12,6 +12,6 @@ export RTE_SDK\n # directory list\n #\n \n-ROOTDIRS-y := buildtools lib kernel drivers app\n+ROOTDIRS-y := lib kernel drivers app\n \n include $(RTE_SDK)/mk/rte.sdkroot.mk\ndiff --git a/buildtools/Makefile b/buildtools/Makefile\ndeleted file mode 100644\nindex 7f76fd7d6..000000000\n--- a/buildtools/Makefile\n+++ /dev/null\n@@ -1,9 +0,0 @@\n-# SPDX-License-Identifier: BSD-3-Clause\n-# Copyright(c) 2016 Neil Horman <nhorman@tuxdriver.com>\n-# All rights reserved.\n-\n-include $(RTE_SDK)/mk/rte.vars.mk\n-\n-DIRS-y += pmdinfogen\n-\n-include $(RTE_SDK)/mk/rte.subdir.mk\ndiff --git a/buildtools/gen-pmdinfo-cfile.sh b/buildtools/gen-pmdinfo-cfile.sh\nindex 43059cf36..109ee461e 100755\n--- a/buildtools/gen-pmdinfo-cfile.sh\n+++ b/buildtools/gen-pmdinfo-cfile.sh\n@@ -4,11 +4,11 @@\n \n arfile=$1\n output=$2\n-pmdinfogen=$3\n+shift 2\n+pmdinfogen=$*\n \n # The generated file must not be empty if compiled in pedantic mode\n echo 'static __attribute__((unused)) const char *generator = \"'$0'\";' > $output\n for ofile in `ar t $arfile` ; do\n-\tar p $arfile $ofile | $pmdinfogen - - >> $output 2> /dev/null\n+\tar p $arfile $ofile | $pmdinfogen - - >> $output\n done\n-exit 0\ndiff --git a/buildtools/meson.build b/buildtools/meson.build\nindex 04808dabc..3a64b28b7 100644\n--- a/buildtools/meson.build\n+++ b/buildtools/meson.build\n@@ -17,3 +17,4 @@ else\n endif\n map_to_win_cmd = py3 + files('map_to_win.py')\n sphinx_wrapper = py3 + files('call-sphinx-build.py')\n+pmdinfogen = py3 + files('pmdinfogen.py')\ndiff --git a/drivers/meson.build b/drivers/meson.build\nindex 161cfda04..3c4d4b700 100644\n--- a/drivers/meson.build\n+++ b/drivers/meson.build\n@@ -119,7 +119,7 @@ foreach class:dpdk_driver_classes\n \t\t\t\t\t\tcommand: [pmdinfo, tmp_lib.full_path(),\n \t\t\t\t\t\t\t'@OUTPUT@', pmdinfogen],\n \t\t\t\t\t\toutput: out_filename,\n-\t\t\t\t\t\tdepends: [pmdinfogen, tmp_lib])\n+\t\t\t\t\t\tdepends: [tmp_lib])\n \t\t\tendif\n \n \t\t\t# now build the static driver\ndiff --git a/meson.build b/meson.build\nindex 61d9a4f5f..a6e8c09c2 100644\n--- a/meson.build\n+++ b/meson.build\n@@ -45,7 +45,6 @@ subdir('buildtools')\n subdir('config')\n \n # build libs and drivers\n-subdir('buildtools/pmdinfogen')\n subdir('lib')\n subdir('drivers')\n \ndiff --git a/mk/internal/rte.compile-pre.mk b/mk/internal/rte.compile-pre.mk\nindex df05b5576..bb2ab0725 100644\n--- a/mk/internal/rte.compile-pre.mk\n+++ b/mk/internal/rte.compile-pre.mk\n@@ -59,7 +59,7 @@ endif\n CHECK_SYMBOLS_SCRIPT = $(RTE_SDK)/buildtools/check-symbols.sh\n CHECK_SYMBOLS = $(CHECK_SYMBOLS_SCRIPT) $(SRCDIR)/$(EXPORT_MAP) $@\n \n-PMDINFO_GEN = $(RTE_SDK_BIN)/app/dpdk-pmdinfogen $@ $@.pmd.c\n+PMDINFO_GEN = $(RTE_SDK)/buildtools/pmdinfogen.py $@ $@.pmd.c\n PMDINFO_CC = $(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@.pmd.o $@.pmd.c\n PMDINFO_LD = $(CROSS)ld -r $(filter-out -export-dynamic,$(LDFLAGS)) -o $@.o $@.pmd.o $@\n PMDINFO_TO_O = if grep -q 'RTE_PMD_REGISTER_.*(.*)' $<; then \\\ndiff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk\nindex 32bed5d95..875a64f04 100644\n--- a/mk/rte.sdkinstall.mk\n+++ b/mk/rte.sdkinstall.mk\n@@ -98,7 +98,6 @@ install-runtime:\n \t$(Q)cp $(CP_FLAGS)    $O/lib/* $(DESTDIR)$(libdir)\n \t$(Q)$(call rte_mkdir, $(DESTDIR)$(bindir))\n \t$(Q)tar -cf -      -C $O --exclude 'app/*.map' \\\n-\t\t--exclude app/dpdk-pmdinfogen \\\n \t\t--exclude 'app/cmdline*' --exclude app/test \\\n \t\t--exclude app/testacl --exclude app/testpipeline app | \\\n \t    tar -xf -      -C $(DESTDIR)$(bindir) $(TAR_X_FLAGS)\n@@ -134,7 +133,6 @@ install-sdk:\n \t$(Q)cp $(CP_FLAGS)      $(RTE_SDK)/buildtools    $(DESTDIR)$(sdkdir)\n \t$(Q)$(call rte_mkdir,                            $(DESTDIR)$(targetdir)/app)\n \t$(Q)cp $(CP_FLAGS)      $O/.config               $(DESTDIR)$(targetdir)\n-\t$(Q)cp $(CP_FLAGS)      $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app\n \t$(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)\n \t$(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)\n \n",
    "prefixes": [
        "v3",
        "2/4"
    ]
}