get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 92165,
    "url": "http://patches.dpdk.org/api/patches/92165/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210426100733.22478-1-nick.connolly@mayadata.io/",
    "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": "<20210426100733.22478-1-nick.connolly@mayadata.io>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210426100733.22478-1-nick.connolly@mayadata.io",
    "date": "2021-04-26T10:07:32",
    "name": "[v3] build: fix symlink of drivers for Windows",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "152bb99a440458709c4b8cc041125a94934c1166",
    "submitter": {
        "id": 1861,
        "url": "http://patches.dpdk.org/api/people/1861/?format=api",
        "name": "Nick Connolly",
        "email": "nick.connolly@mayadata.io"
    },
    "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/20210426100733.22478-1-nick.connolly@mayadata.io/mbox/",
    "series": [
        {
            "id": 16670,
            "url": "http://patches.dpdk.org/api/series/16670/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=16670",
            "date": "2021-04-26T10:07:32",
            "name": "[v3] build: fix symlink of drivers for Windows",
            "version": 3,
            "mbox": "http://patches.dpdk.org/series/16670/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/92165/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/92165/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 4E68FA0548;\n\tMon, 26 Apr 2021 12:08:03 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id BF22D41110;\n\tMon, 26 Apr 2021 12:08:02 +0200 (CEST)",
            "from mail-wr1-f43.google.com (mail-wr1-f43.google.com\n [209.85.221.43]) by mails.dpdk.org (Postfix) with ESMTP id A437D40140\n for <dev@dpdk.org>; Mon, 26 Apr 2021 12:08:01 +0200 (CEST)",
            "by mail-wr1-f43.google.com with SMTP id n2so2064254wrm.0\n for <dev@dpdk.org>; Mon, 26 Apr 2021 03:08:01 -0700 (PDT)",
            "from FENIX.localdomain\n (cpc98320-croy25-2-0-cust77.19-2.cable.virginm.net. [80.235.134.78])\n by smtp.gmail.com with ESMTPSA id l14sm20892789wrv.94.2021.04.26.03.08.00\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 26 Apr 2021 03:08:00 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=mayadata-io.20150623.gappssmtp.com; s=20150623;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=r6QGnYZ9xI8o4PQAonxhriFSrRKv+R9J5b3O2+fEJ2g=;\n b=tv8m0IlphPiMer22INbzts8t6MgXdWsGfQzSUY+DI7p9RFKAA+vB0j42gnnGbOu1mP\n vnKA71+fTR1tmDdyPFEvp0sNvpmRqBVuHsiPTw8VrBmrtrpvggvWGhaiys36iTfLVsaA\n DautUSpLhOnFjn7n2IkCNyULYqx1yNe5lPIB1adqvVZHzkA7nbNG6oTF44ypjjMkEifl\n IrhlvMj1zPw6sRf1rY70FDFJeB3FlzxB6A+At0XyUGpwgy46N1Gz8s1yKbgemqP7XBjw\n vbnLmNcvfh0dKJpjeoil0bZnKLzSGbR4ZGIlMByLElQlupqn63ZmEypi49fYtcNaK8TZ\n Z3kg==",
        "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=r6QGnYZ9xI8o4PQAonxhriFSrRKv+R9J5b3O2+fEJ2g=;\n b=XPJ70vLzxGwKWpcQHBJxR+WQHdn2wrSUf40gmRYKITysSEDtghUsxE/kayQlRiYrev\n l9gJ+Voq/9Jb5Vt8EUvyEuuxDG5sJzoeYWg3tkXwO3LOh+c8TkxlI+eI4NboCanEqr0m\n XtiRFgsYItWmxsXSqU0tMxbjThJcYV5iwVKLpYiWySLbyX4H+vQab5v2wxXC39qMrZOS\n n6PopadPaZBgKFyMKWF5+5g1UvyieRliSUyldykmVdVDqLKGK58/+oLMEkqHP3/f2S+f\n NtMW80QHQRLdZUhTwHBMr7LCk8qQhF+Lww14ywxNWW9LrmXlKDSxKC0sVf9vync6jwHQ\n 7/Iw==",
        "X-Gm-Message-State": "AOAM532jdU6gP4F79n2roxcjqScywUr4tvsl/uO3djc2seQyGqbSOqLV\n Aw7e/r78J2NCbl/1O9WlyB+RjA==",
        "X-Google-Smtp-Source": "\n ABdhPJw2uO2uJ5QByVkFtaFl5nZe1ZsPQs7AlqWwPZ/s5MWAs66QoKKQTxnu7fjxezPs5n17Itaaxg==",
        "X-Received": "by 2002:a05:6000:8b:: with SMTP id\n m11mr21963167wrx.224.1619431681188;\n Mon, 26 Apr 2021 03:08:01 -0700 (PDT)",
        "From": "Nick Connolly <nick.connolly@mayadata.io>",
        "To": "Bruce Richardson <bruce.richardson@intel.com>,\n Nick Connolly <nick.connolly@mayadata.io>,\n Ranjit Menon <ranjit.menon@intel.com>",
        "Cc": "dev@dpdk.org, dmitry.kozliuk@gmail.com, navasile@linux.microsoft.com,\n dmitrym@microsoft.com, pallavi.kadam@intel.com, stable@dpdk.org",
        "Date": "Mon, 26 Apr 2021 11:07:32 +0100",
        "Message-Id": "<20210426100733.22478-1-nick.connolly@mayadata.io>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20210401122723.23082-1-nick.connolly@mayadata.io>",
        "References": "<20210401122723.23082-1-nick.connolly@mayadata.io>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v3] build: fix symlink of drivers for Windows",
        "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": "The symlink-drivers-solibs.sh script was disabled as part of 'install'\nfor Windows because there is no support for shell scripts. However,\nthis means that driver related DLLs are not present in the installed\n'libdir' directory. Add a python script to perform the install and use\nit for Windows if the version of meson supports using an external\nprogram with add_install_script (>= 0.55.0).\n\nOn Windows, symbolic links are somewhat problematic since the\nSeCreateSymbolicLinkPrivilege is required to be able to create them.\nIn addition, different cross-compilation environments handle symbolic\nlinks differently, e.g. WSL, Msys2, Cygwin. Rather than trying to\ndistinguish these scenarios, the python script will perform a file copy\nfor any Windows specific names.\n\nOn Windows, the shared library outputs have different names depending\nupon which toolset has been used to build them. The script currently\nhandles Clang and GCC.\n\nOn Linux the functionality is unchanged, but could be replaced with the\npython script once the required minimum version of meson is >= 0.55.0.\n\nFixes: 5c7d86948764 (\"build: fix install on Windows\")\nCc: stable@dpdk.org\n\nSigned-off-by: Nick Connolly <nick.connolly@mayadata.io>\nTested-by: Narcisa Vasile <navasile@linux.microsoft.com>\nAcked-by: Narcisa Vasile <navasile@linux.microsoft.com>\n---\nv3:\n* rebase\n\nv2:\n* 0.55.0 is required to use external program with add_install_script\n\n buildtools/symlink-drivers-solibs.py | 49 ++++++++++++++++++++++++++++\n config/meson.build                   |  4 +++\n 2 files changed, 53 insertions(+)\n create mode 100644 buildtools/symlink-drivers-solibs.py",
    "diff": "diff --git a/buildtools/symlink-drivers-solibs.py b/buildtools/symlink-drivers-solibs.py\nnew file mode 100644\nindex 000000000..5627ddd9d\n--- /dev/null\n+++ b/buildtools/symlink-drivers-solibs.py\n@@ -0,0 +1,49 @@\n+#!/usr/bin/env python3\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright(c) 2021 Intel Corporation\n+\n+import os\n+import sys\n+import glob\n+import shutil\n+\n+# post-install script for meson/ninja builds to symlink the PMDs stored in\n+# $libdir/dpdk/pmds-*/ to $libdir. This is needed as some PMDs depend on\n+# others, e.g. PCI device PMDs depending on the PCI bus driver.\n+\n+# parameters to script are paths relative to install prefix:\n+# 1. directory for installed regular libs e.g. lib64\n+# 2. subdirectory of libdir where the pmds are\n+# 3. directory for installed regular binaries e.g. bin\n+\n+os.chdir(os.environ['MESON_INSTALL_DESTDIR_PREFIX'])\n+\n+lib_dir = sys.argv[1]\n+pmd_subdir = sys.argv[2]\n+bin_dir = sys.argv[3]\n+pmd_dir = os.path.join(lib_dir, pmd_subdir)\n+\n+# copy Windows PMDs to avoid any issues with symlinks since the\n+# build could be a cross-compilation under WSL, Msys or Cygnus.\n+# the filenames are dependent upon the specific toolchain in use.\n+\n+def copy_pmd_files(pattern, to_dir):\n+\tfor file in glob.glob(os.path.join(pmd_dir, pattern)):\n+\t\tto = os.path.join(to_dir, os.path.basename(file))\n+\t\tshutil.copy2(file, to)\n+\t\tprint(to + ' -> ' + file)\n+\n+copy_pmd_files('*rte_*.dll', bin_dir)\n+copy_pmd_files('*rte_*.pdb', bin_dir)\n+copy_pmd_files('*rte_*.lib', lib_dir)\n+copy_pmd_files('*rte_*.dll.a', lib_dir)\n+\n+# symlink shared objects\n+\n+os.chdir(lib_dir)\n+for file in glob.glob(os.path.join(pmd_subdir, 'librte_*.so*')):\n+\tto = os.path.basename(file)\n+\tif os.path.exists(to):\n+\t\tos.remove(to)\n+\tos.symlink(file, to)\n+\tprint(to + ' -> ' + file)\ndiff --git a/config/meson.build b/config/meson.build\nindex 017bb2efb..9e04c4c76 100644\n--- a/config/meson.build\n+++ b/config/meson.build\n@@ -59,6 +59,10 @@ eal_pmd_path = join_paths(get_option('prefix'), driver_install_path)\n if not is_windows\n     meson.add_install_script('../buildtools/symlink-drivers-solibs.sh',\n             get_option('libdir'), pmd_subdir_opt)\n+elif meson.version().version_compare('>=0.55.0')\n+    # 0.55.0 is required to use external program with add_install_script\n+    meson.add_install_script(py3, '../buildtools/symlink-drivers-solibs.py',\n+            get_option('libdir'), pmd_subdir_opt, get_option('bindir'))\n endif\n \n # init disable/enable driver lists that will be populated in different places\n",
    "prefixes": [
        "v3"
    ]
}