Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/74024/?format=api
http://patchwork.dpdk.org/api/patches/74024/?format=api", "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20200714232101.32544-1-stephen@networkplumber.org/", "project": { "id": 1, "url": "http://patchwork.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": "<20200714232101.32544-1-stephen@networkplumber.org>", "list_archive_url": "https://inbox.dpdk.org/dev/20200714232101.32544-1-stephen@networkplumber.org", "date": "2020-07-14T23:21:01", "name": "[v5] devtools: add new SPDX license compliance checker", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "15e3122805457597a492a6e5f95fef177aeb33cd", "submitter": { "id": 27, "url": "http://patchwork.dpdk.org/api/people/27/?format=api", "name": "Stephen Hemminger", "email": "stephen@networkplumber.org" }, "delegate": { "id": 1, "url": "http://patchwork.dpdk.org/api/users/1/?format=api", "username": "tmonjalo", "first_name": "Thomas", "last_name": "Monjalon", "email": "thomas@monjalon.net" }, "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20200714232101.32544-1-stephen@networkplumber.org/mbox/", "series": [ { "id": 11024, "url": "http://patchwork.dpdk.org/api/series/11024/?format=api", "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=11024", "date": "2020-07-14T23:21:01", "name": "[v5] devtools: add new SPDX license compliance checker", "version": 5, "mbox": "http://patchwork.dpdk.org/series/11024/mbox/" } ], "comments": "http://patchwork.dpdk.org/api/patches/74024/comments/", "check": "warning", "checks": "http://patchwork.dpdk.org/api/patches/74024/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 6396BA0540;\n\tWed, 15 Jul 2020 01:21:13 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 994131C1B2;\n\tWed, 15 Jul 2020 01:21:12 +0200 (CEST)", "from mail-pj1-f67.google.com (mail-pj1-f67.google.com\n [209.85.216.67]) by dpdk.org (Postfix) with ESMTP id A4A371C115\n for <dev@dpdk.org>; Wed, 15 Jul 2020 01:21:11 +0200 (CEST)", "by mail-pj1-f67.google.com with SMTP id k71so141495pje.0\n for <dev@dpdk.org>; Tue, 14 Jul 2020 16:21:11 -0700 (PDT)", "from hermes.corp.microsoft.com (204-195-22-127.wavecable.com.\n [204.195.22.127])\n by smtp.gmail.com with ESMTPSA id d5sm145703pju.15.2020.07.14.16.21.08\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 14 Jul 2020 16:21:08 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=networkplumber-org.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=iAH05qDFUk2RYGfNs3U066xY2DWlmv4tMDummuyukQM=;\n b=MzanTq5qJcuBAVEfUgHHl1YTsIk7KfZdqX4URHwYOeTwx6LEWMZ47+w6AV721406re\n si3ZrTMc0b0m3xWjXg+NeiqPzCcYGeGNy6D3yhfuaVeJRGfcrxKEoDrSpA0c5OiG3tcw\n aBMZwXlbz3fOLahTMAG1zypQ4TaayZ3qAitbK1GxfqkFimR/XF8niyhuAEOs3h2kp7Ci\n FXgV0WxTqDAOTn7G6LRA8Tb92tkny+vyz6GG/m1vq0c9x95p7F2ks5qBhUFpkvXg4ab/\n UcDTbzUEYXBqlOEKwKBkZaIWOa9DPa9KmBI6JNcmnBSzFw98O3vyTWBaWRYIUEEEBb9E\n 1caQ==", "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=iAH05qDFUk2RYGfNs3U066xY2DWlmv4tMDummuyukQM=;\n b=QmBYnNGykIu3d4Dd1MbI8ydTGoOfuSR0/SIbMBjcBaBqGhqgMOmm1ypp0BC1zaouHR\n JSaatI6aBP69xCzgPi/Hp1xuEJFfsWWAkUtR/MUxl9lHLsMizJ6U6809qzBsMBHurevr\n HOrHfbufn5GsJtEqj89CHdR18ZsB8+BVEb4TyWQ2l/LMBH63PUWCtXoeLSr5/KasoRXI\n bwiVCHvH5K1g28dZvytAGdFWcXAqyaQmFYl7nupPzA6M/8W1KsSTeNAdnxSudcL0DdkS\n k8OgM3ueZpjnLVXEJmQb7M5aIdnVTW+bef+5o6ddX1BwU5jXr12dr7oOdwu2MBOxuLvn\n mcow==", "X-Gm-Message-State": "AOAM533k4xrDkftA6iCp/5ieoxIO9fldvNqqqibzuHdkqCDaCYzZ6Dun\n yNxArL83KJ2WRC5V2h49uP8CiSoRwk4/cw==", "X-Google-Smtp-Source": "\n ABdhPJw0KdEdFC99XKJlOJMdEgEoEyFBBfS34bjtUpQq8hjnWrWaVxAMnnHXIqR91Cp3zT7Sv5Zmeg==", "X-Received": "by 2002:a17:90b:94f:: with SMTP id\n dw15mr7200734pjb.199.1594768870078;\n Tue, 14 Jul 2020 16:21:10 -0700 (PDT)", "From": "Stephen Hemminger <stephen@networkplumber.org>", "To": "dev@dpdk.org", "Cc": "Stephen Hemminger <stephen@networkplumber.org>", "Date": "Tue, 14 Jul 2020 16:21:01 -0700", "Message-Id": "<20200714232101.32544-1-stephen@networkplumber.org>", "X-Mailer": "git-send-email 2.27.0", "In-Reply-To": "<20200129155907.20556-1-stephen@networkplumber.org>", "References": "<20200129155907.20556-1-stephen@networkplumber.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[dpdk-dev] [PATCH v5] devtools: add new SPDX license compliance\n\tchecker", "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": "Simple script to look for drivers and scripts that\nare missing requires SPDX header.\n\nSigned-off-by: Stephen Hemminger <stephen@networkplumber.org>\n---\n\nv5 - address review comments\n simplify the display logic\n scan doc and buildtools as well\n\n MAINTAINERS | 1 +\n devtools/check-spdx-tag.sh | 70 ++++++++++++++++++++++++\n doc/guides/contributing/coding_style.rst | 9 ++-\n 3 files changed, 78 insertions(+), 2 deletions(-)\n create mode 100755 devtools/check-spdx-tag.sh", "diff": "diff --git a/MAINTAINERS b/MAINTAINERS\nindex 3cd402b34c91..a9e01330a71e 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -90,6 +90,7 @@ F: devtools/check-maintainers.sh\n F: devtools/check-forbidden-tokens.awk\n F: devtools/check-git-log.sh\n F: devtools/check-includes.sh\n+F: devtools/check-spdx-tag.sh\n F: devtools/check-symbol-maps.sh\n F: devtools/checkpatches.sh\n F: devtools/get-maintainer.sh\ndiff --git a/devtools/check-spdx-tag.sh b/devtools/check-spdx-tag.sh\nnew file mode 100755\nindex 000000000000..ff9e9c61b697\n--- /dev/null\n+++ b/devtools/check-spdx-tag.sh\n@@ -0,0 +1,70 @@\n+#! /bin/sh\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright 2020 Microsoft Corporation\n+#\n+# Produce a list of files with incorrect license tags\n+\n+errors=0\n+warnings=0\n+quiet=false\n+verbose=false\n+\n+print_usage () {\n+ echo \"usage: $(basename $0) [-q] [-v]\"\n+ exit 1\n+}\n+\n+check_spdx() {\n+ if $verbose; then\n+\techo \"Files without SPDX License\"\n+\techo \"--------------------------\"\n+ fi\n+ git grep -L SPDX-License-Identifier -- \\\n+\t':^.git*' ':^.ci/*' ':^.travis.yml' \\\n+\t':^README' ':^MAINTAINERS' ':^VERSION' ':^ABI_VERSION' \\\n+\t':^*/Kbuild' ':^*/README' \\\n+\t':^license/' ':^config/' ':^buildtools/' \\\n+\t':^*.cocci' ':^*.abignore' \\\n+\t':^*.def' ':^*.map' ':^*.ini' ':^*.data' ':^*.cfg' ':^*.txt' \\\n+\t':^*.svg' ':^*.png'\\\n+\t> $tmpfile\n+\n+ errors=$(wc -l < $tmpfile)\n+ $quiet || cat $tmpfile\n+}\n+\n+check_boilerplate() {\n+ if $verbose ; then\n+\techo\n+\techo \"Files with redundant license text\"\n+\techo \"---------------------------------\"\n+ fi\n+\n+ git grep -l Redistribution -- \\\n+\t':^license/' ':^/devtools/check-spdx-tag.sh' > $tmpfile\n+\n+ warnings=$(wc -l <$tmpfile)\n+ $quiet || cat $tmpfile\n+}\n+\n+while getopts qvh ARG ; do\n+\tcase $ARG in\n+\t\tq ) quiet=true ;;\n+\t\tv ) verbose=true ;;\n+\t\th ) print_usage ; exit 0 ;;\n+\t\t? ) print_usage ; exit 1 ;;\n+\tesac\n+done\n+shift $(($OPTIND - 1))\n+\n+tmpfile=$(mktemp)\n+trap 'rm -f -- \"$tmpfile\"' INT TERM HUP EXIT\n+\n+check_spdx\n+$quiet || echo\n+\n+check_boilerplate\n+\n+$quiet || echo\n+echo \"total: $errors errors, $warnings warnings\"\n+exit $errors\ndiff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst\nindex 4efde93f6af0..b55075eaa240 100644\n--- a/doc/guides/contributing/coding_style.rst\n+++ b/doc/guides/contributing/coding_style.rst\n@@ -54,8 +54,13 @@ To document a public API, a doxygen-like format must be used: refer to :ref:`dox\n License Header\n ~~~~~~~~~~~~~~\n \n-Each file should begin with a special comment containing the appropriate copyright and license for the file.\n-Generally this is the BSD License, except for code for Linux Kernel modules.\n+Each file must begin with a special comment containing the\n+`Software Package Data Exchange (SPDX) License Identfier <https://spdx.org/using-spdx-license-identifier>`_.\n+\n+Generally this is the BSD License, except for code granted special exceptions.\n+The SPDX licences identifier is sufficient, a file should not contain\n+an additional text version of the license (boilerplate).\n+\n After any copyright header, a blank line should be left before any other contents, e.g. include statements in a C file.\n \n C Preprocessor Directives\n", "prefixes": [ "v5" ] }{ "id": 74024, "url": "