From nobody Sat Nov 23 22:56:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1728316009; cv=none; d=zohomail.com; s=zohoarc; b=byaEMwwkdSLbQYt7/92DsDz8FyOeLLDTIz6VfQMSI6bhSvZSwk4XfYwwOSj0GWtTCdpDzivGjSYdbmJW5h03ncZ3cr/eD8UEexSVSoLlhrVGHjkpLiJiUykgx8h/QtzcdLP+dHFYTZdt3P/g8sIG/Ku56Z4n5769RqNMRIVHH4M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1728316009; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ZTX+6cRA+/ltHCjvlFktg7Y59mCZ2nEaRmncVeNd1ko=; b=gVdzX8QEz6U79QGS7VaAs8pn60GhuF9rS5Low9DTF6OnOHvQ0pTM2Y4SHr2MPYsg/7ypZI1+QGwI+3LnlaLhHpCGIgDQnFnaGh9WEQnuU3Hw4W0dvhnllpWzvj811LrNzEZoYzXA65FOHIRK2zJXwfC2SZkQl/nRzC4H9HefmmE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1728316009622575.6278621478954; Mon, 7 Oct 2024 08:46:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sxpvt-0005AC-0B; Mon, 07 Oct 2024 11:46:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sxpvp-00058o-Fy for qemu-devel@nongnu.org; Mon, 07 Oct 2024 11:45:57 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sxpvo-0002Xe-1p for qemu-devel@nongnu.org; Mon, 07 Oct 2024 11:45:57 -0400 Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-616-AbbImbsWNQSWd0oDYgUtlg-1; Mon, 07 Oct 2024 11:45:53 -0400 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 6DB2D1955EAB for ; Mon, 7 Oct 2024 15:45:52 +0000 (UTC) Received: from toolbox.redhat.com (unknown [10.42.28.61]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 6224A300019E; Mon, 7 Oct 2024 15:45:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1728315954; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZTX+6cRA+/ltHCjvlFktg7Y59mCZ2nEaRmncVeNd1ko=; b=D+jDJ2sRvul/ejKjM5HA0ogkTkD+Wm/5H05P300BTb4pwLh4bRy0yKNLNs9sSXZY8QMPzn G4KRiDlmTX2x3ZqrHy8jqvL0aS8BeMK8YiBQfjxhaife8iu5pa/YEfTgpJvETNkRcjacqh MoN8jRYb0jvCwyh91QgiCetlbek7ZFo= X-MC-Unique: AbbImbsWNQSWd0oDYgUtlg-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PATCH 1/3] scripts: mandate that new files have SPDX-License-Identifier Date: Mon, 7 Oct 2024 16:45:46 +0100 Message-ID: <20241007154548.1144961-2-berrange@redhat.com> In-Reply-To: <20241007154548.1144961-1-berrange@redhat.com> References: <20241007154548.1144961-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.153, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1728316017196116600 Going forward we want all newly created source files to have an SPDX-License-Identifier tag present. Initially mandate this for C, Python and Perl source files, and encourage this for other file types. Signed-off-by: Daniel P. Berrang=C3=A9 Reviewed-by: Brian Cain Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- scripts/checkpatch.pl | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 1b21249c91..cc266abdcd 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -1378,6 +1378,8 @@ sub process { my $in_imported_file =3D 0; my $in_no_imported_file =3D 0; my $non_utf8_charset =3D 0; + my $expect_spdx =3D 0; + my $expect_spdx_file; =20 our @report =3D (); our $cnt_lines =3D 0; @@ -1615,6 +1617,30 @@ sub process { WARN("added, moved or deleted file(s), does MAINTAINERS need updating?\= n" . $herecurr); } =20 +# All new files should have a SPDX-License-Identifier tag + if ($line =3D~ /^new file mode\s*\d+\s*$/) { + if ($expect_spdx) { + if ($expect_spdx_file =3D~ /\.(c|h|py|pl|c\.inc)$/) { + # source code files MUST have SPDX license declared + ERROR("expected 'SPDX-License-Identifer' in new file $expect_spdx_f= ile"); + } else { + # Other files MAY have SPDX license if appropriate + WARNING("Does new file $expect_spdx_file need 'SPDX-License-Identif= er'?"); + } + } + $expect_spdx =3D 1; + $expect_spdx_file =3D undef; + } elsif ($expect_spdx) { + $expect_spdx_file =3D $realfile unless defined $expect_spdx_file; + + # SPDX tagsd may occurr in comments which were + # stripped from '$line', so use '$rawline' + if ($rawline =3D~ /SPDX-License-Identifier/) { + $expect_spdx =3D 0; + $expect_spdx_file =3D undef; + } + } + # Check for wrappage within a valid hunk of the file if ($realcnt !=3D 0 && $line !~ m{^(?:\+|-| |\\ No newline|$)}) { ERROR("patch seems to be corrupt (line wrapped?)\n" . --=20 2.46.0 From nobody Sat Nov 23 22:56:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1728315986; cv=none; d=zohomail.com; s=zohoarc; b=SJFEcaMf5BWIUQ8xr97gAtYinIHaHFcaskC9LXEXnRXHiK38YSwWXhBYeXxDiM2y0sK3pRs8sjFzSYvZjTb/WDXwIngzpMw3/yU5M/kACfNuEijw1l1eBH6M9bRmy629f8iR9KS2lenA9DyBU4u5LjZAGEbV8badhLM3ibO80pw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1728315986; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hHT9bzk7iZ6Hr+wEwZTdWZD3MAdisW6GXcAQc3HKdK4=; b=Jzlj9rXS4plFwYr6swchiKXfgOpMITy/8sMlo/gGCrplqr7MIXGjsxrHkFVFdbrQUW/TJaV7tfBJzdJguBs9zEUuxmvefnYkFj39rAoYBARK/BBp2BcD8bQceYOdSohpDx2Xl49UM7jHDXmgr0ds6hIP7PgliHESCrv8PA4L43U= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1728315986136653.9449407092459; Mon, 7 Oct 2024 08:46:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sxpvv-0005EU-MT; Mon, 07 Oct 2024 11:46:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sxpvr-0005A9-V6 for qemu-devel@nongnu.org; Mon, 07 Oct 2024 11:46:00 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sxpvp-0002YO-Su for qemu-devel@nongnu.org; Mon, 07 Oct 2024 11:45:59 -0400 Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-386-IFfafe2BPlu2eelkoAN5VQ-1; Mon, 07 Oct 2024 11:45:56 -0400 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 4ABE61978F59 for ; Mon, 7 Oct 2024 15:45:54 +0000 (UTC) Received: from toolbox.redhat.com (unknown [10.42.28.61]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 0E14F300019E; Mon, 7 Oct 2024 15:45:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1728315957; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hHT9bzk7iZ6Hr+wEwZTdWZD3MAdisW6GXcAQc3HKdK4=; b=Y6CjvnMIWSglvpC5qP1c9LAiIokqr+3HUrzQ818JU5qSHtlMbFxq0QrZO5lN7plP1AI2Ts 4Gd4ToETeoh/unTX7sR1AAtvXM69LaNPgYJpEmJYBGWFM1TXjMRWppM6xktveI1EPstnzP 1LCVVZgL/1T3M4ggR27Phalj0dJmfA4= X-MC-Unique: IFfafe2BPlu2eelkoAN5VQ-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PATCH 2/3] scripts: validate SPDX license choices Date: Mon, 7 Oct 2024 16:45:47 +0100 Message-ID: <20241007154548.1144961-3-berrange@redhat.com> In-Reply-To: <20241007154548.1144961-1-berrange@redhat.com> References: <20241007154548.1144961-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.153, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1728315987126116600 We expect all new code to be contributed with the "GPL-2.0-or-later" license tag. Divergance is permitted if the new file is derived from pre-existing code under a different license, whether from elsewhere in QEMU codebase, or outside. Issue a warning if the declared license is not "GPL-2.0-or-later", and an error if the license is not one of the handful of the expected licenses to prevent unintended proliferation. Signed-off-by: Daniel P. Berrang=C3=A9 --- scripts/checkpatch.pl | 66 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index cc266abdcd..cd1ed90f4c 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -1353,6 +1353,67 @@ sub checkfilename { } } =20 +sub checkspdx { + my ($file, $expr) =3D @_; + + # Imported Linux headers probably have SPDX tags, but if they + # don't we're not requiring contributors to fix this + if ($file =3D~ m,include/standard-headers, || + $file =3D~ m,linux-headers,) { + return; + } + + my $origexpr =3D $expr; + + # Flatten sub-expressions + $expr =3D~ s/\(|\)/ /g; + $expr =3D~ s/OR|AND/ /g; + + # Merge WITH exceptions to the license + $expr =3D~ s/\s+WITH\s+/-WITH-/g; + + # Cull more leading/trailing whitespace + $expr =3D~ s/^\s*//g; + $expr =3D~ s/\s*$//g; + + my @bits =3D split / +/, $expr; + + my $prefer =3D "GPL-2.0-or-later"; + my @valid =3D qw( + LGPL-2.0-or-later + LGPL-2.1-or-later + GPL-2.0-only + LGPL-2.0-only + LGPL-2.0-only + BSD-2-Clause + BSD-3-Clause + MIT + ); + + my $nonpreferred =3D 0; + my @unknown =3D (); + foreach my $bit (@bits) { + if ($bit eq $prefer) { + next; + } + if (grep /^$bit$/, @valid) { + $nonpreferred =3D 1; + } else { + push @unknown, $bit; + } + } + if (@unknown) { + ERROR("Saw unacceptable licenses '" . join(',', @unknown) . + "', valid choices for QEMU are:\n" . join("\n", $prefer, @valid)); + } + + if ($nonpreferred) { + WARN("Saw acceptable license '$origexpr' but note '$prefer' is preferred = " . + "for new files unless the code is derived from a source with an" . + "existed declared license that must be followed."); + } +} + sub process { my $filename =3D shift; =20 @@ -1641,6 +1702,11 @@ sub process { } } =20 +# Check SPDX-License-Identifier references a permitted license + if ($rawline =3D~ m,SPDX-License-Identifier: (.*?)(\*/)?\s*$,) { + &checkspdx($realfile, $1); + } + # Check for wrappage within a valid hunk of the file if ($realcnt !=3D 0 && $line !~ m{^(?:\+|-| |\\ No newline|$)}) { ERROR("patch seems to be corrupt (line wrapped?)\n" . --=20 2.46.0 From nobody Sat Nov 23 22:56:55 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1728315973; cv=none; d=zohomail.com; s=zohoarc; b=Y3eTVgfkBzy0miBUCnKi6IaHbXdrowR8BT48wNJDv3ahakXkDpO1L2fAQaqvGDOocMGztZTZQhD/uMPLqkcNsATFZReSk8RYzW4NWJTwhgEuOhXrBqnngZ4BgGVnlLHlL9169zN/TYTHGh1xQyhqNEE7hnQAYd5K/nKMrhE6muY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1728315973; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=oWdSJqNTu1f2aCVErVpBxq7bLKJEcOtDRM7rNUFeIe4=; b=AcwcdtaaloKg5leqzowbJDjNQkvMC/Ph4WliSlB+9AUKWxS9rsZN5eFdCSJgERTYJ5XcGzDxD+Sz3rfv7K1FU6cCj5B1yklqOW3hkSiJMTDO90cAAjlVqs4h5hqWe+BSW9z2pE7PQxOa+XObAzweuBiU8MBVJWQp1zOqA4KKVNk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1728315973011798.4988732163334; Mon, 7 Oct 2024 08:46:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sxpvz-0005Nd-4d; Mon, 07 Oct 2024 11:46:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sxpvu-0005Al-1N for qemu-devel@nongnu.org; Mon, 07 Oct 2024 11:46:02 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sxpvs-0002ZX-Gb for qemu-devel@nongnu.org; Mon, 07 Oct 2024 11:46:01 -0400 Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-443-hIrEPruWPMezXKwrd_ZquA-1; Mon, 07 Oct 2024 11:45:56 -0400 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id AEE02196C40B for ; Mon, 7 Oct 2024 15:45:55 +0000 (UTC) Received: from toolbox.redhat.com (unknown [10.42.28.61]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id D0BD530001A0; Mon, 7 Oct 2024 15:45:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1728315958; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=oWdSJqNTu1f2aCVErVpBxq7bLKJEcOtDRM7rNUFeIe4=; b=NkaRg+6yiv6wrS3AoXeaGTDCZRkHxThb7Ud+Alb663B3Elz0nyvPRFafQjmCoLVLZdkJte fcD0Civno63twb+NF0jokUDRcJZ3RRYQ9aAaUhD81cD9+rNeeywJS9GiccHrMO0u/ggpAz yCh0jdYJ4Jyz7ZgRGmUoV1iaHmFsI4M= X-MC-Unique: hIrEPruWPMezXKwrd_ZquA-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Subject: [PATCH 3/3] scripts: forbid use of arbitrary SPDX tags besides license identifiers Date: Mon, 7 Oct 2024 16:45:48 +0100 Message-ID: <20241007154548.1144961-4-berrange@redhat.com> In-Reply-To: <20241007154548.1144961-1-berrange@redhat.com> References: <20241007154548.1144961-1-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.153, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1728315974810116600 While SPDX-License-Identifier is a well known SPDX tag, there are a great many more besides that[1]. This are around making machine readable metadata available to the 'reuse' tool and similar for things like author names, copyright owners, and much more. It is even possible to define source file line groups and apply different SPDX tags to just that region of code. At this time we're only interested in adopting SPDX for recording the licensing info, so detect & reject any other SPDX metadata. If we want to explicitly collect extra data in SPDX format, we can evaluate each case on its merits. [1] https://spdx.github.io/spdx-spec/v2.2.2/file-tags/ https://spdx.github.io/spdx-spec/v2.2.2/file-information/ Signed-off-by: Daniel P. Berrang=C3=A9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- scripts/checkpatch.pl | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index cd1ed90f4c..5ad2d4ca2e 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -1707,6 +1707,18 @@ sub process { &checkspdx($realfile, $1); } =20 + if ($rawline =3D~ m,(SPDX-[a-zA-Z0-9-_]+):,) { + my $tag =3D $1; + my @permitted =3D qw( + SPDX-License-Identifier + ); + + unless (grep { /^$tag$/ } @permitted) { + ERROR("Tag $tag not permitted in QEMU code, valid " . + "choices are: " . join(", ", @permitted)); + } + } + # Check for wrappage within a valid hunk of the file if ($realcnt !=3D 0 && $line !~ m{^(?:\+|-| |\\ No newline|$)}) { ERROR("patch seems to be corrupt (line wrapped?)\n" . --=20 2.46.0