get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 63383,
    "url": "http://patches.dpdk.org/api/patches/63383/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20191128163350.24076-3-bruce.richardson@intel.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": "<20191128163350.24076-3-bruce.richardson@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20191128163350.24076-3-bruce.richardson@intel.com",
    "date": "2019-11-28T16:33:47",
    "name": "[v3,2/5] doc: add building with meson to linux GSG",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "e897f3464d2b9158a5de607fe2a7e56f001cc27b",
    "submitter": {
        "id": 20,
        "url": "http://patches.dpdk.org/api/people/20/?format=api",
        "name": "Bruce Richardson",
        "email": "bruce.richardson@intel.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20191128163350.24076-3-bruce.richardson@intel.com/mbox/",
    "series": [
        {
            "id": 7687,
            "url": "http://patches.dpdk.org/api/series/7687/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=7687",
            "date": "2019-11-28T16:33:45",
            "name": "GSG Documentation updates",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/7687/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/63383/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/63383/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 139E4A04DD;\n\tThu, 28 Nov 2019 17:34:18 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 2C6A64C99;\n\tThu, 28 Nov 2019 17:34:06 +0100 (CET)",
            "from mga07.intel.com (mga07.intel.com [134.134.136.100])\n by dpdk.org (Postfix) with ESMTP id 55AB13195\n for <dev@dpdk.org>; Thu, 28 Nov 2019 17:34:03 +0100 (CET)",
            "from fmsmga002.fm.intel.com ([10.253.24.26])\n by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n 28 Nov 2019 08:34:02 -0800",
            "from silpixa00399126.ir.intel.com (HELO\n silpixa00399126.ger.corp.intel.com) ([10.237.223.2])\n by fmsmga002.fm.intel.com with ESMTP; 28 Nov 2019 08:34:01 -0800"
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.69,253,1571727600\"; d=\"scan'208\";a=\"240770278\"",
        "From": "Bruce Richardson <bruce.richardson@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "thomas@monjalon.net, Bruce Richardson <bruce.richardson@intel.com>,\n Anatoly Burakov <anatoly.burakov@intel.com>",
        "Date": "Thu, 28 Nov 2019 16:33:47 +0000",
        "Message-Id": "<20191128163350.24076-3-bruce.richardson@intel.com>",
        "X-Mailer": "git-send-email 2.21.0",
        "In-Reply-To": "<20191128163350.24076-1-bruce.richardson@intel.com>",
        "References": "<20191122160359.11625-1-bruce.richardson@intel.com>\n <20191128163350.24076-1-bruce.richardson@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v3 2/5] doc: add building with meson to linux GSG",
        "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": "Add instructions on building DPDK and using the pkg-config file to the\nlinux GSG.\n\nSigned-off-by: Bruce Richardson <bruce.richardson@intel.com>\nAcked-by: Anatoly Burakov <anatoly.burakov@intel.com>\n---\nV2: Changes following Anatoly's review:\n* minor grammar fix\n* added ldconfig call to instructions and note about needing to add\n  /usr/local/lib* to loader paths on RHEL/Fedora\n* added description of -Dexamples option\n* added example of using libdpdk from an app meson.build file\n---\n doc/guides/linux_gsg/build_dpdk.rst | 139 +++++++++++++++++++++++++++-\n 1 file changed, 135 insertions(+), 4 deletions(-)",
    "diff": "diff --git a/doc/guides/linux_gsg/build_dpdk.rst b/doc/guides/linux_gsg/build_dpdk.rst\nindex 7c0329fcc..4aeb4697d 100644\n--- a/doc/guides/linux_gsg/build_dpdk.rst\n+++ b/doc/guides/linux_gsg/build_dpdk.rst\n@@ -11,8 +11,8 @@ Compiling the DPDK Target from Source\n     Parts of this process can also be done using the setup script described in\n     the :ref:`linux_setup_script` section of this document.\n \n-Install the DPDK and Browse Sources\n------------------------------------\n+Uncompress DPDK and Browse Sources\n+----------------------------------\n \n First, uncompress the archive and move to the uncompressed DPDK source directory:\n \n@@ -33,8 +33,139 @@ The DPDK is composed of several directories:\n \n *   config, buildtools, mk: Framework-related makefiles, scripts and configuration\n \n-Installation of DPDK Target Environments\n-----------------------------------------\n+Compiling and Installing DPDK System-wide\n+-----------------------------------------\n+\n+DPDK can be configured, built and installed on your system using the tools\n+``meson`` and ``ninja``.\n+\n+.. note::\n+\n+  The older makefile-based build system used in older DPDK releases is\n+  still present and its use is described in section\n+  `Installation of DPDK Target Environment using Make`_.\n+\n+DPDK Configuration\n+~~~~~~~~~~~~~~~~~~\n+\n+To configure a DPDK build use:\n+\n+.. code-block:: console\n+\n+     meson <options> build\n+\n+where \"build\" is the desired output build directory, and \"<options>\" can be\n+empty or one of a number of meson or DPDK-specific build options, described\n+later in this section. The configuration process will finish with a summary\n+of what DPDK libraries and drivers are to be built and installed, and for\n+each item disabled, a reason why that is the case. This information can be\n+used, for example, to identify any missing required packages for a driver.\n+\n+Once configured, to build and then install DPDK system-wide use:\n+\n+.. code-block:: console\n+\n+        cd build\n+        ninja\n+        ninja install\n+        ldconfig\n+\n+The last two commands above generally need to be run as root,\n+with the `ninja install` step copying the built objects to their final system-wide locations,\n+and the last step causing the dynamic loader `ld.so` to update its cache to take account of the new objects.\n+\n+.. note::\n+\n+   On some linux distributions, such as Fedora or Redhat, paths in `/usr/local` are\n+   not in the default paths for the loader. Therefore, on these\n+   distributions, `/usr/local/lib` and `/usr/local/lib64` should be added\n+   to a file in `/etc/ld.so.conf.d/` before running `ldconfig`.\n+\n+\n+Adjusting Build Options\n+~~~~~~~~~~~~~~~~~~~~~~~\n+\n+DPDK has a number of options that can be adjusted as part of the build configuration process.\n+These options can be listed by running ``meson configure`` inside a configured build folder.\n+Many of these options come from the \"meson\" tool itself and can be seen documented on the\n+`Meson Website <https://mesonbuild.com/Builtin-options.html>`_.\n+\n+For example, to change the build-type from the default, \"debugoptimized\",\n+to a regular \"debug\" build, you can either:\n+\n+* pass ``-Dbuildtype=debug`` or ``--buildtype=debug`` to meson when configuring the build folder initially\n+\n+* run ``meson configure -Dbuildtype=debug`` inside the build folder after the initial meson run.\n+\n+Other options are specific to the DPDK project but can be adjusted similarly.\n+To set the \"max_lcores\" value to 256, for example, you can either:\n+\n+* pass ``-Dmax_lcores=256`` to meson when configuring the build folder initially\n+\n+* run ``meson configure -Dmax_lcores=256`` inside the build folder after the initial meson run.\n+\n+Some of the DPDK sample applications in the `examples` directory can be\n+automatically built as part of a meson build too.\n+To do so, pass a comma-separated list of the examples to build to the\n+`-Dexamples` meson option as below::\n+\n+  meson -Dexamples=l2fwd,l3fwd build\n+\n+As with other meson options, this can also be set post-initial-config using `meson configure` in the build directory.\n+There is also a special value \"all\" to request that all example applications whose\n+dependencies are met on the current system are built.\n+When `-Dexamples=all` is set as a meson option, meson will check each example application to see if it can be built,\n+and add all which can be built to the list of tasks in the ninja build configuration file.\n+\n+Building Applications Using Installed DPDK\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n+\n+When installed system-wide, DPDK provides a pkg-config file ``libdpdk.pc`` for applications to query as part of their build.\n+It's recommended that the pkg-config file be used, rather than hard-coding the parameters (cflags/ldflags)\n+for DPDK into the application build process.\n+\n+An example of how to query and use the pkg-config file can be found in the ``Makefile`` of each of the example applications included with DPDK.\n+A simplified example snippet is shown below, where the target binary name has been stored in the variable ``$(APP)``\n+and the sources for that build are stored in ``$(SRCS-y)``.\n+\n+.. code-block:: makefile\n+\n+        PKGCONF = pkg-config\n+\n+        CFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)\n+        LDFLAGS += $(shell $(PKGCONF) --libs libdpdk)\n+\n+        $(APP): $(SRCS-y) Makefile\n+                $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)\n+\n+.. note::\n+\n+   Unlike with the older make build system, the meson system is not\n+   designed to be used directly from a build directory. Instead it is\n+   recommended that it be installed either system-wide or to a known\n+   location in the user's home directory. The install location can be set\n+   using the `--prefix` meson option (default: `/usr/local`).\n+\n+an equivalent build recipe for a simple DPDK application using meson as a\n+build system is shown below:\n+\n+.. code-block:: python\n+\n+   project('dpdk-app', 'c')\n+\n+   dpdk = dependency('libdpdk')\n+   sources = files('main.c')\n+   executable('dpdk-app', sources, dependencies: dpdk)\n+\n+\n+Installation of DPDK Target Environment using Make\n+--------------------------------------------------\n+\n+.. note::\n+\n+   The building of DPDK using make will be deprecated in a future release. It\n+   is therefore recommended that DPDK installation is done using meson and\n+   ninja as described above.\n \n The format of a DPDK target is::\n \n",
    "prefixes": [
        "v3",
        "2/5"
    ]
}