From patchwork Thu Feb 1 21:14:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rob Herring \(Arm\)" X-Patchwork-Id: 126591 Delivered-To: patch@linaro.org Received: by 10.46.124.24 with SMTP id x24csp8745ljc; Thu, 1 Feb 2018 13:14:47 -0800 (PST) X-Google-Smtp-Source: AH8x225w2Dx0LHaCuI4A3ixxxcrYlnldVIon353f8FEjtwPgux+sZsTN/0rAuqqJaGp7ZiMFp+XV X-Received: by 2002:a17:902:758b:: with SMTP id j11-v6mr12357364pll.224.1517519687152; Thu, 01 Feb 2018 13:14:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517519687; cv=none; d=google.com; s=arc-20160816; b=XTJLPKKGzehPzi+rQWiVp6p9WMSsWIOafWkRp2AM/diDZVyieUUo90k3Id47F/Kae4 B09phqtgNuyrSjVooXSeHwdEidAXfW9lxySXHmVSMGn7sLINtWNbHZ5ZitGskzvaTBpY stoCDJOtGVCWSMg10cABNw27hH3cohHenZ9Lor9I90zxO7ukwFsitfvQrfDmh+zTyZ3o KUH2EH26t0y4e3AR0Taz/l7vTnMLPH7jkx/xeMIbQ/LHKlO6UExKwsmppgj1NPa9t9c3 KSDGbca4CjXnNO/OvcTp6ho7nEbKkfyL44z6p+dYgwaWyz8jN5tT54zY2xbHBIo0Ak7E hFoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=OrOuGfK3PdyUbCaMSvD01na+u+j2feqqcwSnwEudh0w=; b=ZV280SoFd1VbLw+rujU8Rq8P3nJsUyXS32XshVPLk91PAa7tyq7qhLTnQ2mPYWBxj9 wgfkDk8057z/P99JJQQzCC7HtNFuMLOrSzBUok4UbgDb/lM6NBeOy0IwvfiT6IxBqaSz NHxibocN8urJ5LMaoZMmnwutRsudjBpn4PvROye/qcM0lNcA8A6PKHK+TTLnv0o292tI MjwuOM0CAeucuJTkrUa93MAtnnprGhbzik+1Mo5I1/Y8K5wM6FBBDt2DkAgh2Ed88Yqk J18LpTfo0PSd00RREhumskqdNi+AcfXQMglv+e64ASNfhZaStHnN5oNCR/0nUIXGtrot saUw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j128si381428pfc.209.2018.02.01.13.14.46; Thu, 01 Feb 2018 13:14:47 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751998AbeBAVOo (ORCPT + 24 others); Thu, 1 Feb 2018 16:14:44 -0500 Received: from mail-ot0-f196.google.com ([74.125.82.196]:45539 "EHLO mail-ot0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751740AbeBAVOb (ORCPT ); Thu, 1 Feb 2018 16:14:31 -0500 Received: by mail-ot0-f196.google.com with SMTP id 73so9147006oti.12 for ; Thu, 01 Feb 2018 13:14:31 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=OrOuGfK3PdyUbCaMSvD01na+u+j2feqqcwSnwEudh0w=; b=ryYfcwtkcRkaw2dvziRA8NAWMCSZ1He+7uwgM82wo3cwIgTyNQPF9Q8f5AL4GsWw7S GTUTQolPWDilX83QBZPsY9RY0XZ0F8xWdfIwcfXpDiFeKdqt9LRTQiF3XU4g3SLWq39j ZciMs1oOLZXE8IqDkFVRX5IZYnoDdYR6vFejQbJgWBOgbwYKNyROkytJMtkewgsqzqrz Js7RaXnSI+1Jugu64O0dGvpjbWABAR67MewcsdxjYw8cj+/t+5oPpvSfy6eK0W/eHhNm 64e9e01jnf423GygQYfhIl/hlZVYVdKoleBENjqYF5qRFVf0qMfnRfcqz0ugfsXo6gMx Oh3g== X-Gm-Message-State: AKwxytdAqGZ6qptwaywJOIW+lkeHe4T309a+bgNZqUNWlYdpFzL4IuBd 6LeuHv29OCWTmh9mybAkXSk2Xyw= X-Received: by 10.157.1.56 with SMTP id 53mr11450817otu.381.1517519670811; Thu, 01 Feb 2018 13:14:30 -0800 (PST) Received: from xps15.herring.priv (216-188-254-6.dyn.grandenetworks.net. [216.188.254.6]) by smtp.googlemail.com with ESMTPSA id a16sm235313oib.16.2018.02.01.13.14.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 01 Feb 2018 13:14:30 -0800 (PST) From: Rob Herring To: linux-kernel@vger.kernel.org, Andrew Morton Cc: Andy Whitcroft , Joe Perches , Greg Kroah-Hartman , Thomas Gleixner , Philippe Ombredanne Subject: [PATCH] checkpatch.pl: Add SPDX license tag check Date: Thu, 1 Feb 2018 15:14:29 -0600 Message-Id: <20180201211429.32696-1-robh@kernel.org> X-Mailer: git-send-email 2.14.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add SPDX license tag check based on the rules defined in Documentation/process/license-rules.rst. To summarize, SPDX license tags should be on the 1st line (or 2nd line in scripts) using the appropriate comment style for the file type. Cc: Andy Whitcroft Cc: Joe Perches Cc: Greg Kroah-Hartman Cc: Thomas Gleixner Cc: Philippe Ombredanne Cc: Andrew Morton Signed-off-by: Rob Herring --- I didn't get around to resending once license-rules.rst landed in -next. Hopefully, this can be picked up for 4.16 so folks can start using it. SPDX tags have already become a frequent review comment. Rob scripts/checkpatch.pl | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) -- 2.14.1 Acked-by: Greg Kroah-Hartman Acked-by: Philippe Ombredanne diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index ba03f17ff662..cf1b5a90b20a 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2225,6 +2225,8 @@ sub process { my $camelcase_file_seeded = 0; + my $checklicenseline = 1; + sanitise_line_reset(); my $line; foreach my $rawline (@rawlines) { @@ -2416,6 +2418,7 @@ sub process { } else { $check = $check_orig; } + $checklicenseline = 1; next; } @@ -2866,6 +2869,30 @@ sub process { } } +# check for using SPDX license tag at beginning of files + if ($realline == $checklicenseline) { + if ($realfile =~ /\.(?:sh|pl|py)/ && $rawline =~ /\[ \+]\s*\!\#/) { + $checklicenseline = 2; + } elsif ($rawline =~ /^\+/) { + my $comment = ""; + if ($realfile =~ /\.(h|s|S)$/) { + $comment = '/*'; + } elsif ($realfile =~ /\.(c|dts|dtsi)$/) { + $comment = '//'; + } elsif ($realfile =~ /\.(sh|pl|py)$/) { + $comment = '#'; + } elsif ($realfile =~ /\.rst$/) { + $comment = '..'; + } + + if ($comment !~ /^$/ && + $rawline !~ /^\+\Q$comment\E SPDX-License-Identifier: /) { + WARN("SPDX_LICENSE_TAG", + "Missing or malformed SPDX-License-Identifier tag in 1st (or 2nd for scripts) line\n" . $herecurr); + } + } + } + # check we are in a valid source file if not then ignore this hunk next if ($realfile !~ /\.(h|c|s|S|sh|dtsi|dts)$/);