get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 11787,
    "url": "http://patches.dpdk.org/api/patches/11787/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1459268154-29558-7-git-send-email-thomas.monjalon@6wind.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": "<1459268154-29558-7-git-send-email-thomas.monjalon@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1459268154-29558-7-git-send-email-thomas.monjalon@6wind.com",
    "date": "2016-03-29T16:15:52",
    "name": "[dpdk-dev,6/8] scripts: allow tuning any test build option",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "26e2ea953cefc2b819197a6d3b68c850d9b9dca2",
    "submitter": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/people/1/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas.monjalon@6wind.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1459268154-29558-7-git-send-email-thomas.monjalon@6wind.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/11787/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/11787/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 1FCEA56A0;\n\tTue, 29 Mar 2016 18:18:17 +0200 (CEST)",
            "from mail-wm0-f52.google.com (mail-wm0-f52.google.com\n\t[74.125.82.52]) by dpdk.org (Postfix) with ESMTP id DD1905689\n\tfor <dev@dpdk.org>; Tue, 29 Mar 2016 18:18:10 +0200 (CEST)",
            "by mail-wm0-f52.google.com with SMTP id p65so146727385wmp.1\n\tfor <dev@dpdk.org>; Tue, 29 Mar 2016 09:18:10 -0700 (PDT)",
            "from XPS13.dev.6wind.com (guy78-3-82-239-227-177.fbx.proxad.net.\n\t[82.239.227.177]) by smtp.gmail.com with ESMTPSA id\n\tjf6sm30004635wjb.2.2016.03.29.09.18.09\n\tfor <dev@dpdk.org> (version=TLSv1/SSLv3 cipher=OTHER);\n\tTue, 29 Mar 2016 09:18:10 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=6wind-com.20150623.gappssmtp.com; s=20150623;\n\th=from:to:subject:date:message-id:in-reply-to:references;\n\tbh=Ygnee2Nwvd/tvh3arH9FnrkbeMf6ljvwoaIjZmrQy1k=;\n\tb=lo3c0eGSuCUgpchXl4YURIBitjvJZGe0bxpDnOFK1Qhm8nKdSwBUipNRVX/mPHdSw7\n\tZ6qKlkory4szGPtGyXOZp8J4AggsuJQoo4TKEwUFxKQB+GnDWeo0d8tCENv1gRC2zzwY\n\tjCW51CF0o2k/1j3o2Alx9dpxUz/vm2MkBtoUEks6QNqo5puXRP2L+SWZ+aJZVnX6VCc9\n\te9ONLMRURVgHSLoPPtixjXwbrJVnsVMEEFO36Ld1axtFdS7aw3EDi9iQWiJYrizUyq6A\n\tlSv6vGH5Lo10ZmuoIFX/Zg/ySBpy0vA1PSJGApsskWmVZSUbegD/NfeJPfpH8Lkf3NBM\n\tiwzw==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=Ygnee2Nwvd/tvh3arH9FnrkbeMf6ljvwoaIjZmrQy1k=;\n\tb=KlF/4BMTwzYCElKri2VqKT6zReiowh0Q3eHsPGe5QciHRzhT3gv778mZbOYUHWR/fh\n\tEbMNs+qyzWSKVdAIDJjUfK4Yk+cpKmE/JM/XIjcdHND+FDc2PZsxbGDBEnBldDVIntNy\n\tjNl20Nc7nncK1HufSJ9caGcZsVwMIKRfN3SJZLyV7MjRjBaW/v9NckeeljhG/damTxO3\n\tDLLESXbDlg+7GVaznFh4dQIgJGBzK9ojtqsMhVH6Rp2jOkMTnPA1lMHz5u5qzWXW0dyx\n\tnSGAjTR2r8R3YXLwVBnLv1t732a//eCZd6AqVMQ5lYlaD3Mm8rYmrCJWlIPtDYC4F7Of\n\tRwIQ==",
        "X-Gm-Message-State": "AD7BkJJnTsoOq4fbfaWNBS8Gqu75hFIIFCJ5CeM8JNqioWUHYqR70gP4dzlXlPBAQ4Jk50D2",
        "X-Received": "by 10.28.174.72 with SMTP id x69mr17237876wme.68.1459268290784; \n\tTue, 29 Mar 2016 09:18:10 -0700 (PDT)",
        "From": "Thomas Monjalon <thomas.monjalon@6wind.com>",
        "To": "dev@dpdk.org",
        "Date": "Tue, 29 Mar 2016 18:15:52 +0200",
        "Message-Id": "<1459268154-29558-7-git-send-email-thomas.monjalon@6wind.com>",
        "X-Mailer": "git-send-email 2.7.0",
        "In-Reply-To": "<1459268154-29558-1-git-send-email-thomas.monjalon@6wind.com>",
        "References": "<1459268154-29558-1-git-send-email-thomas.monjalon@6wind.com>",
        "Subject": "[dpdk-dev] [PATCH 6/8] scripts: allow tuning any test build option",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Any build option can be enabled or disabled by appending the end\nof its name to the config name.\nExamples:\n\t+INTRINSICS to enable CONFIG_RTE_FORCE_INTRINSICS\n\t~RXTX_CALLBACKS to disable CONFIG_RTE_ETHDEV_RXTX_CALLBACKS\n\nThese builtin (lowercase) options are also added for convenience:\n\t+debug to enable every debug options\n\t+default to set target machine as default\n\nSigned-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>\n---\n scripts/test-build.sh | 46 ++++++++++++++++++++++++++++++++--------------\n 1 file changed, 32 insertions(+), 14 deletions(-)",
    "diff": "diff --git a/scripts/test-build.sh b/scripts/test-build.sh\nindex f28c289..bd4b501 100755\n--- a/scripts/test-build.sh\n+++ b/scripts/test-build.sh\n@@ -34,7 +34,7 @@ default_path=$PATH\n \n # Load config options:\n # - AESNI_MULTI_BUFFER_LIB_PATH\n-# - DPDK_BUILD_TEST_CONFIGS (target1+option1+option2 target2)\n+# - DPDK_BUILD_TEST_CONFIGS (defconfig1+option1+option2 defconfig2)\n # - DPDK_DEP_CFLAGS\n # - DPDK_DEP_LDFLAGS\n # - DPDK_DEP_MOFED (y/[n])\n@@ -61,10 +61,14 @@ print_help () {\n \t        -jX   use X parallel jobs in \"make\"\n \t        -s    short test with only first config without examples/doc\n \n-\tconfig: defconfig name followed by switches delimited with \"+\" sign\n-\t        Example: x86_64-native-linuxapp-gcc+next+shared\n-\t        Default is to enable most of the options.\n+\tconfig: defconfig[[~][+]option1[[~][+]option2...]]\n+\t        Example: x86_64-native-linuxapp-gcc+debug~RXTX_CALLBACKS\n+\t        The lowercase options are defined inside $(basename $0).\n+\t        The uppercase options can be the end of a defconfig option\n+\t        to enable if prefixed with '+' or to disable if prefixed with '~'.\n+\t        Default is to automatically enable most of the options.\n \t        The external dependencies are setup with DPDK_DEP_* variables.\n+\t        If no config on command line, DPDK_BUILD_TEST_CONFIGS is used.\n \tEND_OF_HELP\n }\n \n@@ -120,10 +124,19 @@ config () # <directory> <target> <options>\n \tif [ ! -e $1/.config ] ; then\n \t\techo \"================== Configure $1\"\n \t\tmake T=$2 O=$1 config\n-\t\techo $3 | grep -q next || \\\n+\n+\t\techo 'Customize configuration'\n+\t\t# Built-in options (lowercase)\n+\t\t! echo $3 | grep -q '+default' || \\\n+\t\tsed -ri 's,(RTE_MACHINE=\")native,\\1default,' $1/.config\n+\t\techo $3 | grep -q '+next' || \\\n \t\tsed -ri           's,(NEXT_ABI=)y,\\1n,' $1/.config\n-\t\t! echo $3 | grep -q shared || \\\n+\t\t! echo $3 | grep -q '+shared' || \\\n \t\tsed -ri         's,(SHARED_LIB=)n,\\1y,' $1/.config\n+\t\t! echo $3 | grep -q '+debug' || \\\n+\t\tsed -ri            's,(DEBUG.*=)n,\\1y,' $1/.config\n+\n+\t\t# Automatic configuration\n \t\t! echo $2 | grep -q '^x86_64' || \\\n \t\tsed -ri               's,(NUMA=)n,\\1y,' $1/.config\n \t\tsed -ri         's,(PCI_CONFIG=)n,\\1y,' $1/.config\n@@ -147,23 +160,28 @@ config () # <directory> <target> <options>\n \t\tsed -ri        's,(KNI_VHOST.*=)n,\\1y,' $1/.config\n \t\tsed -ri           's,(SCHED_.*=)n,\\1y,' $1/.config\n \t\tsed -ri 's,(TEST_PMD_RECORD_.*=)n,\\1y,' $1/.config\n-\t\tsed -ri            's,(DEBUG.*=)n,\\1y,' $1/.config\n+\n+\t\t# Explicit enabler/disabler (uppercase)\n+\t\tfor option in $(echo $3 | sed 's,[~+], &,g') ; do\n+\t\t\tpattern=$(echo $option | cut -c2-)\n+\t\t\tif echo $option | grep -q '^~' ; then\n+\t\t\t\tsed -ri \"s,($pattern=)y,\\1n,\" $1/.config\n+\t\t\telif echo $option | grep -q '^+' ; then\n+\t\t\t\tsed -ri \"s,($pattern=)n,\\1y,\" $1/.config\n+\t\t\tfi\n+\t\tdone\n \tfi\n }\n \n for conf in $configs ; do\n-\ttarget=$(echo $conf | cut -d'+' -f1)\n+\ttarget=$(echo $conf | sed 's,[~+].*,,')\n \t# reload config with DPDK_TARGET set\n \tDPDK_TARGET=$target\n \treset_env\n \t. $(dirname $(readlink -e $0))/load-devel-config.sh\n \n-\toptions=$(echo $conf | cut -d'+' -sf2- --output-delimiter='-')\n-\tif [ -z \"$options\" ] ; then\n-\t\tdir=$target\n-\telse\n-\t\tdir=$target-$options\n-\tfi\n+\toptions=$(echo $conf | sed 's,[^~+]*,,')\n+\tdir=$conf\n \tconfig $dir $target $options\n \n \techo \"================== Build $dir\"\n",
    "prefixes": [
        "dpdk-dev",
        "6/8"
    ]
}