get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 87152,
    "url": "http://patches.dpdk.org/api/patches/87152/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210122224327.5621-3-dmitry.kozliuk@gmail.com/",
    "project": {
        "id": 1,
        "url": "http://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": "<20210122224327.5621-3-dmitry.kozliuk@gmail.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210122224327.5621-3-dmitry.kozliuk@gmail.com",
    "date": "2021-01-22T22:43:26",
    "name": "[v9,2/3] build: use Python pmdinfogen",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "fd2ebc6e09759a9540e98a4abee398a82e0ba402",
    "submitter": {
        "id": 1581,
        "url": "http://patches.dpdk.org/api/people/1581/?format=api",
        "name": "Dmitry Kozlyuk",
        "email": "dmitry.kozliuk@gmail.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20210122224327.5621-3-dmitry.kozliuk@gmail.com/mbox/",
    "series": [
        {
            "id": 14913,
            "url": "http://patches.dpdk.org/api/series/14913/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=14913",
            "date": "2021-01-22T22:43:24",
            "name": "pmdinfogen: rewrite in Python",
            "version": 9,
            "mbox": "http://patches.dpdk.org/series/14913/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/87152/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/87152/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 3E9EAA0A0A;\n\tFri, 22 Jan 2021 23:43:50 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 5B42D1411C8;\n\tFri, 22 Jan 2021 23:43:41 +0100 (CET)",
            "from mail-lj1-f171.google.com (mail-lj1-f171.google.com\n [209.85.208.171])\n by mails.dpdk.org (Postfix) with ESMTP id 7A2851411C5\n for <dev@dpdk.org>; Fri, 22 Jan 2021 23:43:39 +0100 (CET)",
            "by mail-lj1-f171.google.com with SMTP id x23so8331661lji.7\n for <dev@dpdk.org>; Fri, 22 Jan 2021 14:43:39 -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 v11sm1119753ljg.128.2021.01.22.14.43.37\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 22 Jan 2021 14:43:38 -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=IQ2jEZ6da8l6h7Y2/fjKbYxUSgB3AmWjJ2m4ix05fCg=;\n b=mAWr/prq+PQTtzQ2B6SJgbqn92cvrQQ3rB5Xjz8ZrOynK4IEezJ8MaG7hLGTC38nKs\n QVI+SwrHxyAT83izJ6z0VI1TLd0mRslHwJr5opDwV04NWF7ySyeTxZwZE8qGNKRk3y8k\n pt26eDHCR9h+17LfUHSPP9h4+wWTDfE9ToV0Vdngzu7LezUZAqtcqXqkFJPYaaGaG1+w\n IQ84QSYlRKkvaRiNRC+jjjhXDiL6UdwzUbaOvIw4tlrvsstzsc0Z7FUZvSSw2RJhdlTy\n Xs1b+gMA68RCQ+oPBjx+kncZj6h93c2/9bEVZc1Cmh8MPocRpHYRwcc1MDUXO2DM5L66\n +N8A==",
        "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=IQ2jEZ6da8l6h7Y2/fjKbYxUSgB3AmWjJ2m4ix05fCg=;\n b=YcwOLi4LfQvAn2dvRgfMmxckvpQ3B45BPTjy5Ae69cNe8vwv424532SYV1jMaie0Ph\n hj+2VokfupsttfQllV8xbo3Ec/Tpsp2TrBxaCmm57qfI4XD7qOAJZxznCs42IzAUnMg1\n VYH/WOEU1wMOUPguD2kemFEIPsNqW/NKbOULCkcvEd4H0E6/eG9OB30pLmIJ5vmg9do6\n GyNAeiC4z3Fp8drQgwGeeYjmqn1Aoysk2YAB+QRD5SxsKulew7SPbto7rYDteKEnrTKl\n gpnszXcnaFSEzLvOHV054UvME8wf/ovVeCBQlXE+PmU6rne/uS7n+ghHvf63ky6sztQg\n yxQQ==",
        "X-Gm-Message-State": "AOAM532va2V89/HYFRRU8hVXLwQM54kWT4cnbaRv8guZkyv6ebCYR8YZ\n dKjo3pQ+cgx9/pYfIyzW6hbTMyZKxL6XcA==",
        "X-Google-Smtp-Source": "\n ABdhPJzY4akNFsyhLMDfzF2XyPOVaXxEd92/R209+0SMKl9NOKPIg2Wk7OE5dZBB5BtiPMXXHL9yeQ==",
        "X-Received": "by 2002:a2e:a40b:: with SMTP id p11mr92573ljn.315.1611355418860;\n Fri, 22 Jan 2021 14:43:38 -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>",
        "Date": "Sat, 23 Jan 2021 01:43:26 +0300",
        "Message-Id": "<20210122224327.5621-3-dmitry.kozliuk@gmail.com>",
        "X-Mailer": "git-send-email 2.29.2",
        "In-Reply-To": "<20210122224327.5621-1-dmitry.kozliuk@gmail.com>",
        "References": "<20201020174404.28653-1-dmitry.kozliuk@gmail.com>\n <20210122224327.5621-1-dmitry.kozliuk@gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v9 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.\n\nAdd configure-time check for elftools Python module for Unix hosts.\n\nAdd pyelftools to CI configuration and build requirements for Linux and\nFreeBSD. Currently neither Windows uses pmdinfogen, nor is COFF (PE)\nsupported.\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 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 8 files changed, 30 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/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": [
        "v9",
        "2/3"
    ]
}