From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web12.20120.1591575610092401728 for ; Sun, 07 Jun 2020 17:20:10 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=DbrvqfGx; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: yuwei.chen@intel.com) IronPort-SDR: tpqsGcK4KAi29xGZgvUTCCmwBpyCf7QMDIVDlupF7ZEruQGcQyMmXXy5wXMtCs5HipaXHtK6Dd uc29cvNZtdMQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jun 2020 17:20:09 -0700 IronPort-SDR: 98t80GjpPzfn4IZHW8vONfpEZ0n6aSdhIYKegPTcVZqhEf6lDzIn8tNHXFeIlLadoFKjp0GAEu K8oT9LSPI4Qw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,486,1583222400"; d="scan'208";a="305658312" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga002.fm.intel.com with ESMTP; 07 Jun 2020 17:20:09 -0700 Received: from fmsmsx113.amr.corp.intel.com (10.18.116.7) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 7 Jun 2020 17:20:09 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by FMSMSX113.amr.corp.intel.com (10.18.116.7) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 7 Jun 2020 17:20:08 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 7 Jun 2020 17:20:08 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ce/ajEL5u4E5KFc5utCW4kQjV95InpE64B63UP2rpA1YhPCdgmazOBynIL8s/InZa6Kd7XicIuZDGV4ND+fVmj3/0UMcXiDKxi0mOEAjZ4l2t2P7eA8HbYI23RJc0hMPTbGayl5og/7EqNhTmkj2aPrSPvnt82qjeNxc4WvHewxt3dNi1hX3TznHex8Uig/hAe466ztsfKVYFbvm3W4upHwF1DxePR1YH2Ktq1WlkD5B1MUYbsnrCEfiR6AeLBWGZsMADiLl7jKsRpR5X+mHj27d69h2KLZkRlluOMVzJ0WFFghEo6QMmsozoPFVmRpVOGh15a+YmphUgksUnIPHxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sfj6n3/+Hj7WKY4C+KVGvBy4eeZSH4hJLZVi5HZx8zI=; b=ILlErmBdnJBGs5Rr/C++9X/syczLKHLNSiDjuTBklnNOharF69/FwUC6etiYFunSqe6p/hu4eBe0T9xQk2cpZ7Ii0vqQ5gnf/u7spr1yFGhMCY3DKRUkY8zvNVyIT2C3eB5RRrNjjGQ78KFRawLqDhh3lxFRlpPCWMUtwsq7HEMuPXpYfOPurJEOJE221FNI5IhYjhLPRVxWlpVEs2UySfF46P6r/ikRJqdC1ERAoSujJZTO4tU7Xut+35uBsLgMiSFeBXIGMvb3icayOl98hq6FRzJZXh+yhopjfFcSkTq6uAzHlBxc8O9aefkZfH9/MwkDJzxjgOREXNPkgaTPxQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sfj6n3/+Hj7WKY4C+KVGvBy4eeZSH4hJLZVi5HZx8zI=; b=DbrvqfGxOhmGsKv3RlHduIvB4jfF+Rp43M4o07W1bSF43CciQwTkrrSNXCCaK8BblxCJfrE3/HwHFz5eUlPsel9SWDCrDM4kgi4t66B5pbY0JhTAHgBGXyE1dY8ownTH5mqI1te6WGJmekqC8rednvow71RlHlJ7f8Ko6+j57vo= Received: from DM5PR11MB1594.namprd11.prod.outlook.com (2603:10b6:4:5::16) by DM5PR11MB1433.namprd11.prod.outlook.com (2603:10b6:4:6::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.18; Mon, 8 Jun 2020 00:20:07 +0000 Received: from DM5PR11MB1594.namprd11.prod.outlook.com ([fe80::25cf:8c3:b35e:35dc]) by DM5PR11MB1594.namprd11.prod.outlook.com ([fe80::25cf:8c3:b35e:35dc%11]) with mapi id 15.20.3066.023; Mon, 8 Jun 2020 00:20:07 +0000 From: "Yuwei Chen" To: "devel@edk2.groups.io" , "Zhang, Shenglei" CC: "Feng, Bob C" , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH v4] BaseTools/PatchCheck.py: Add LicenseCheck Thread-Topic: [edk2-devel] [PATCH v4] BaseTools/PatchCheck.py: Add LicenseCheck Thread-Index: AQHWOxrEVZr3NHBrJ0yjuhgDyz/R8qjN3pvg Date: Mon, 8 Jun 2020 00:20:06 +0000 Message-ID: References: <20200605092138.32660-1-shenglei.zhang@intel.com> In-Reply-To: <20200605092138.32660-1-shenglei.zhang@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.38] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d7e80a94-3011-4003-ce78-08d80b41b29f x-ms-traffictypediagnostic: DM5PR11MB1433: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 042857DBB5 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: +DPcqKtHos/ZMu5uksltneGfpnefwKNnVRu7tQrwCx7kMxTkSPwwTOaxNEYKmXSIIV66Mh5mI/V19strC1bbuwh+lFYo21V1YbH4TWnay0lbGrvWyy3FrPiN0rthWnNpQGJqBt1jthe56G51XqjyuytKC8azNEqp1pHHPO2KAk8h2Bunfcr+TPJR74wGJZQH1i7uHZfTwPW4YywtS+CZFRlOJOZLFhqQmbi5Yoq1OraFv0lfAs7w9LMxrnV02ozfpfxB5Spq0vPM9n3rXojEweHxUxevJKIlVb9ftzNoIFJ3zloqECq7O5QaHLNBUtXrQG9WdVr64IqahZbi2PyGpF8JoFPmxVml/ffsTpLp80kYpC014fXOfr/fvNOO+k99TCWn/DS54bPiBub+GgYHqg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR11MB1594.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(136003)(376002)(39860400002)(346002)(366004)(396003)(966005)(478600001)(4326008)(8676002)(83380400001)(8936002)(33656002)(7696005)(86362001)(107886003)(6636002)(54906003)(186003)(6506007)(26005)(5660300002)(2906002)(316002)(71200400001)(52536014)(110136005)(53546011)(9686003)(66446008)(66476007)(66946007)(66556008)(64756008)(76116006)(55016002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: iGDrT+xzjLddns4yDFM/ZZ6vm+9lfPHM5eEkPbyfPKyL5KLOfbzEYakz8HCyrsYc+QZtAgr3XPepHN3cwTUPCYV6hAjoKCXLAC8iCehWtqhmzmDQKxzBVvS7p2kILPRRL1piemz68wP0hz/n5MWR9byQxqLTL4CrTLyRQscOIkYcbjLU8mZ1H8KrxyPdAhoTFACyx/RU7f9iD/O/1sRoituAdI9BpZScMaIFajlyTQ1HNByMaBemt15+AnA8AQH3dhebW6St5VJmTTJZKK26FevNUjVu354AJTwzxVCs7PmQ0LCm7lxhswO7om1M6ioaTXt0KAL2F31W443LMEAQRG2BAD3rvkWh6kq41DuM0dUJPy4GcFoMGaa1Wx0nm6UhB5XdAfdFeE0T0OMQf2fGX8Ne7OxyFSv/ar3rIDNfFx0/nDgaDztDweFwuZrQ9qhfuxmh447XjQljsDDn8QKNNDBKRMtzRplL8rE+5JQtjM8tcOChTIq50ULMfA+vlVym MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: d7e80a94-3011-4003-ce78-08d80b41b29f X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jun 2020 00:20:06.8293 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ZT0edAiEZK8+juJt019cE06maF2tCTVRlTYtsViv6IkyxUEEbsv3bBXHRm8Wndwq++XdxeY5snvsAGAV8b2kqg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1433 Return-Path: yuwei.chen@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Yuwei Chen > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Zhang, > Shenglei > Sent: Friday, June 5, 2020 5:22 PM > To: devel@edk2.groups.io > Cc: Feng, Bob C ; Gao, Liming > Subject: [edk2-devel] [PATCH v4] BaseTools/PatchCheck.py: Add > LicenseCheck >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2691 > For files to be added to the tree, this feature will check whether it ha= s BSD > plus patent license. If not, licenses listed in Readme are also accepted= but > warning will be reported. > Otherwise, it should be error. >=20 > Cc: Bob Feng > Cc: Liming Gao > Signed-off-by: Shenglei Zhang > --- > v2: Update handling methods for different licenses. >=20 > v3: Change the position of LicenseCheck(). No functional > update. >=20 > v4: Extend the scope of file types to scan. >=20 > BaseTools/Scripts/PatchCheck.py | 50 > +++++++++++++++++++++++++++++++++ > 1 file changed, 50 insertions(+) >=20 > diff --git a/BaseTools/Scripts/PatchCheck.py > b/BaseTools/Scripts/PatchCheck.py index 13da6967785d..106b434c750d > 100755 > --- a/BaseTools/Scripts/PatchCheck.py > +++ b/BaseTools/Scripts/PatchCheck.py > @@ -304,12 +304,49 @@ class GitDiffCheck: > self.line_num =3D 0 > self.state =3D START > self.new_bin =3D [] > + self.LicenseCheck(self.lines, self.count) > while self.line_num < self.count and self.format_ok: > line_num =3D self.line_num > self.run() > assert(self.line_num > line_num) > self.report_message_result() >=20 > + def LicenseCheck(self, lines, count): > + self.ok =3D True > + self.startcheck =3D False > + self.license =3D True > + line_index =3D 0 > + for line in lines: > + if line.startswith('--- /dev/null'): > + nextline =3D lines[line_index + 1] > + added_file =3D self.Readdedfileformat.search(nextline).= group(1) > + added_file_extension =3D os.path.splitext(added_file)[1= ] > + if added_file_extension in self.file_extension_list: > + self.startcheck =3D True > + self.license =3D False > + if self.startcheck and self.license_format_preflix in line: > + if self.bsd2_patent in line or self.bsd3_patent in line= : > + self.license =3D True > + else: > + for optional_license in self.license_optional_list: > + if optional_license in line: > + self.license =3D True > + self.warning(added_file) > + if line_index + 1 =3D=3D count or lines[line_index + 1].sta= rtswith('diff --') > and self.startcheck: > + if not self.license: > + error_message =3D "Invalid License in: " + added_fi= le > + self.error(error_message) > + self.startcheck =3D False > + self.license =3D True > + line_index =3D line_index + 1 > + > + def warning(self, *err): > + count =3D 0 > + for line in err: > + warning_format =3D 'Warning: License accepted but not BSD p= lus patent > license in' > + print(warning_format, line) > + count +=3D 1 > + > def report_message_result(self): > if Verbose.level < Verbose.NORMAL: > return > @@ -491,6 +528,19 @@ class GitDiffCheck: > print(prefix, line) > count +=3D 1 >=20 > + license_format_preflix =3D 'SPDX-License-Identifier' > + > + bsd2_patent =3D 'BSD-2-Clause-Patent' > + > + bsd3_patent =3D 'BSD-3-Clause-Patent' > + > + license_optional_list =3D ['BSD-2-Clause', 'BSD-3-Clause', 'MIT', > + 'Python-2.0', 'Zlib'] > + > + Readdedfileformat =3D re.compile(r'\+\+\+ b\/(.*)\n') > + > + file_extension_list =3D [".c", ".h", ".inf", ".dsc", ".dec", ".py",= ".bat", ".sh", > ".uni", ".yaml", ".fdf", ".inc", "yml", ".asm", \ > + ".asm16", ".asl", ".vfr", ".s", ".S", > + ".aslc", ".nasm", ".nasmb", ".idf", ".Vfr", ".H"] > + > class CheckOnePatch: > """Checks the contents of a git email formatted patch. >=20 > -- > 2.18.0.windows.1 >=20 >=20 >=20