get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 87161,
    "url": "https://patches.dpdk.org/api/patches/87161/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210124205157.14386-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": "<20210124205157.14386-3-dmitry.kozliuk@gmail.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210124205157.14386-3-dmitry.kozliuk@gmail.com",
    "date": "2021-01-24T20:51:56",
    "name": "[v10,2/3] build: use Python pmdinfogen",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "dbd281e7675ff95116d6d9da00ef4a6f37ac4ab2",
    "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/20210124205157.14386-3-dmitry.kozliuk@gmail.com/mbox/",
    "series": [
        {
            "id": 14915,
            "url": "https://patches.dpdk.org/api/series/14915/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=14915",
            "date": "2021-01-24T20:51:54",
            "name": "pmdinfogen: rewrite in Python",
            "version": 10,
            "mbox": "https://patches.dpdk.org/series/14915/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/87161/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/87161/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 7ECE6A052A;\n\tSun, 24 Jan 2021 21:52:21 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 13698140D6A;\n\tSun, 24 Jan 2021 21:52:10 +0100 (CET)",
            "from mail-lf1-f46.google.com (mail-lf1-f46.google.com\n [209.85.167.46])\n by mails.dpdk.org (Postfix) with ESMTP id 69CD0140D48\n for <dev@dpdk.org>; Sun, 24 Jan 2021 21:52:08 +0100 (CET)",
            "by mail-lf1-f46.google.com with SMTP id q8so14853317lfm.10\n for <dev@dpdk.org>; Sun, 24 Jan 2021 12:52:08 -0800 (PST)",
            "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 r72sm1168551lff.214.2021.01.24.12.52.06\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sun, 24 Jan 2021 12:52:07 -0800 (PST)"
        ],
        "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=vqdym5e+UBO2PzJQ1URI92yL6kWjETYN2y0cidYrZoU=;\n b=he1tncVIzTu/TD9N4dXBYZoYd6G8X30HiiJiNBES4y/8UoldnXcOMCmP+3ErKCZDll\n JNTxURLCysW18svXZTV+5432F9sSpsvmi0fEL2s8GPaNm7pn4aPnq0/eRxsSYtD6p/lS\n jkqm7bKqDbXv+JxIzhtx/50qvTmaK2ndymcYAbx7nwx02zj5qGlCTChtZY66vaMBkMOl\n zPJbEE0sN/h/L9Nd5a9waP6qquR/0sfWqOUCvrnZOwb7xIXIy02r2UfF9xFAWGpiJDRM\n g2WNl/88O9s7pJm1/5idVm237/PFxDK/UYSkXAWqx7XaLK1QMA6cuzZt3PhNN7jSFAe9\n /xIA==",
        "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=vqdym5e+UBO2PzJQ1URI92yL6kWjETYN2y0cidYrZoU=;\n b=WuUvwEuBXXV0s1nrQX5Q2fuTqDGIO2m7X784qkR2Hz96dZaXzy6eZ7+9gR3zXXfzIv\n Nq98Dat1w7Y0DLXj6ylX3O0N55iPQ3Lgkk0XOcX5WzQGyAVBJlMxkSN9pNAC5xRAaAxj\n oYEV4l+zhppqkFOeJgPwVm5CVjxRw1NPpUwEvmnTfvUGmmgUDyJ774fVho5b6t7+9wMk\n esmI/ubSGIH5SyFvJAzR/huN126mjNzVaIHfuLRLqwFM9D+avP6MPPraCv9KN76OLEad\n EoAy1cxF1XtHdhl7cASafeKpXlTn6j643uYWIxLVp3e6ib72oLYq2NAhTULOFEgyNbH5\n UYGg==",
        "X-Gm-Message-State": "AOAM532aQc8mRK3u9DBRxIZXzA/3IyNjtpqZ3pxuTrQnHrFsGOWfCChH\n da8aCBhUJ4A/Pw1aGEdrXls0rToe/CZWFw==",
        "X-Google-Smtp-Source": "\n ABdhPJxMztxg+yOhJtbh70PQ2wHCqKYEvTtKqbVEV4GqeWPMnKULUBKg2CDtoZYB59/IyPXZOX3unQ==",
        "X-Received": "by 2002:a19:3f94:: with SMTP id m142mr17438lfa.196.1611521527738;\n Sun, 24 Jan 2021 12:52:07 -0800 (PST)",
        "From": "Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>",
        "To": "dev@dpdk.org",
        "Cc": "Maxime Coquelin <maxime.coquelin@redhat.com>,\n Bruce Richardson <bruce.richardson@intel.com>,\n Thomas Monjalon <thomas@monjalon.net>,\n Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>,\n Aaron Conole <aconole@redhat.com>,\n Michael Santana <maicolgabriel@hotmail.com>, Ray Kinsella <mdr@ashroe.eu>,\n Neil Horman <nhorman@tuxdriver.com>",
        "Date": "Sun, 24 Jan 2021 23:51:56 +0300",
        "Message-Id": "<20210124205157.14386-3-dmitry.kozliuk@gmail.com>",
        "X-Mailer": "git-send-email 2.29.2",
        "In-Reply-To": "<20210124205157.14386-1-dmitry.kozliuk@gmail.com>",
        "References": "<20210122224327.5621-1-dmitry.kozliuk@gmail.com>\n <20210124205157.14386-1-dmitry.kozliuk@gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v10 2/3] build: use Python pmdinfogen",
        "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": "Use the same interpreter to run pmdinfogen as for other build scripts.\nAdjust wrapper script accordingly and also don't suppress stderr from ar\nand pmdinfogen. Add configure-time check for elftools Python module for\nUnix hosts.\n\nAdd pyelftools to CI configuration and build requirements for Linux and\nFreeBSD. Windows targets are not currently using pmdinfogen.\n\nSuppress ABI warnings about generated PMD information strings.\n\nSigned-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>\n---\n .github/workflows/build.yml           |  4 ++--\n .travis.yml                           |  2 +-\n buildtools/gen-pmdinfo-cfile.sh       |  6 +++---\n buildtools/meson.build                | 15 +++++++++++++++\n devtools/libabigail.abignore          |  4 ++++\n doc/guides/freebsd_gsg/build_dpdk.rst |  3 ++-\n doc/guides/linux_gsg/sys_reqs.rst     |  6 ++++++\n drivers/meson.build                   |  2 +-\n meson.build                           |  1 -\n 9 files changed, 34 insertions(+), 9 deletions(-)",
    "diff": "diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml\nindex 0b72df0eb..a5b579add 100644\n--- a/.github/workflows/build.yml\n+++ b/.github/workflows/build.yml\n@@ -91,8 +91,8 @@ jobs:\n       run: sudo apt update\n     - name: Install packages\n       run: sudo apt install -y ccache libnuma-dev python3-setuptools\n-        python3-wheel python3-pip ninja-build libbsd-dev libpcap-dev\n-        libibverbs-dev libcrypto++-dev libfdt-dev libjansson-dev\n+        python3-wheel python3-pip python3-pyelftools ninja-build libbsd-dev\n+        libpcap-dev libibverbs-dev libcrypto++-dev libfdt-dev libjansson-dev\n     - name: Install libabigail build dependencies if no cache is available\n       if: env.ABI_CHECKS == 'true' && steps.libabigail-cache.outputs.cache-hit != 'true'\n       run: sudo apt install -y autoconf automake libtool pkg-config libxml2-dev\ndiff --git a/.travis.yml b/.travis.yml\nindex 5aa7ad49f..4391af1d5 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/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..dd4c0f640 100644\n--- a/buildtools/meson.build\n+++ b/buildtools/meson.build\n@@ -17,3 +17,18 @@ 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')\n+\n+# TODO: starting from Meson 0.51.0 use\n+# \tpython3 = import('python').find_installation('python',\n+#\t\tmodules : python3_required_modules)\n+python3_required_modules = []\n+if host_machine.system() != 'windows'\n+\tpython3_required_modules = ['elftools']\n+endif\n+foreach module : python3_required_modules\n+\tscript = 'import importlib.util; import sys; exit(importlib.util.find_spec(\"@0@\") is None)'\n+\tif run_command(py3, '-c', script.format(module)).returncode() != 0\n+\t\terror('missing python module: @0@'.format(module))\n+\tendif\n+endforeach\ndiff --git a/devtools/libabigail.abignore b/devtools/libabigail.abignore\nindex 1dc84fa74..05afccc1a 100644\n--- a/devtools/libabigail.abignore\n+++ b/devtools/libabigail.abignore\n@@ -16,3 +16,7 @@\n [suppress_type]\n         name = rte_cryptodev\n         has_data_member_inserted_between = {0, 1023}\n+\n+; Ignore all changes in generated PMD information strings.\n+[suppress_variable]\n+        name_regex = _pmd_info$\ndiff --git a/doc/guides/freebsd_gsg/build_dpdk.rst b/doc/guides/freebsd_gsg/build_dpdk.rst\nindex e3005a7f3..bed353473 100644\n--- a/doc/guides/freebsd_gsg/build_dpdk.rst\n+++ b/doc/guides/freebsd_gsg/build_dpdk.rst\n@@ -14,10 +14,11 @@ The following FreeBSD packages are required to build DPDK:\n * meson\n * ninja\n * pkgconf\n+* py37-pyelftools\n \n These can be installed using (as root)::\n \n-  pkg install meson pkgconf\n+  pkg install meson pkgconf py37-pyelftools\n \n To compile the required kernel modules for memory management and working\n with physical NIC devices, the kernel sources for FreeBSD also\ndiff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst\nindex be714adf2..a05b5bd81 100644\n--- a/doc/guides/linux_gsg/sys_reqs.rst\n+++ b/doc/guides/linux_gsg/sys_reqs.rst\n@@ -52,6 +52,12 @@ Compilation of the DPDK\n     * If the packaged version is below the minimum version, the latest versions\n       can be installed from Python's \"pip\" repository: ``pip3 install meson ninja``\n \n+*   ``pyelftools`` (version 0.22+)\n+\n+    * For RHEL/Fedora systems it can be installed using ``dnf install python-pyelftools``\n+\n+    * For Ubuntu/Debian it can be installed using ``apt install python3-pyelftools``\n+\n *   Library for handling NUMA (Non Uniform Memory Access).\n \n     * ``numactl-devel`` in RHEL/Fedora;\ndiff --git a/drivers/meson.build b/drivers/meson.build\nindex 77f65fa90..ff5cdb952 100644\n--- a/drivers/meson.build\n+++ b/drivers/meson.build\n@@ -132,7 +132,7 @@ foreach subpath:subdirs\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 45d974cd2..2b9c37eb4 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 \n",
    "prefixes": [
        "v10",
        "2/3"
    ]
}