Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp5714514imm; Tue, 12 Jun 2018 12:04:18 -0700 (PDT) X-Google-Smtp-Source: ADUXVKIOZcBUblcqYc7ZI/17/JJAVmtofnosC+3CSLiN8DV1CpAJLk9bmMCB/aHQzxN8py4E/eGx X-Received: by 2002:a17:902:8c92:: with SMTP id t18-v6mr1683933plo.337.1528830258593; Tue, 12 Jun 2018 12:04:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528830258; cv=none; d=google.com; s=arc-20160816; b=HH7eLjBCOkQjIrrLBj98MimpJsyLuSmM/eoBxHERMCPuIqilqdICjM5oXl0rhIStdn 8AlHIaJzyk2ahCvFVZh0vKhhEmXyUEbqicRmVUBdRpQokHhYYzh4VQHDTdSl8KgDcyuA PxhSO86HNleCRwny1PWYF6Q9DaRf6iyg+XADie30IwvnGnyYIxvmijAi3XkabBj9gtnT 3h/pRAjt2H+Xv22bYc7tyrlbwiZkpIYEXzovZuyCoA9E3rRIDiJf6q9oqtm2oNHRTEnW ue3Ij+StjvpTC9WfUx5yHM1EQnicFBLp1qedfzxI6qEAOC5ql+QtdMwPfxuJWMwnYfi3 93Fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=1tXikmjrljb2EqOv0btgOMQ/liPl9BFGQn6Scd/f9zw=; b=qPn6nfV56/8r3mjjKVnwPCwK1MpYKmklNzKoO0QehafOxNLrKhTVYC1a4pwhLQas67 +E97WB92t5ePimv4a6Hpt6PCtVGDyApfTKS0leg9P4AgvBmLQ2kK+YI+OrQmcHboJStv XMEMn/0Q5gzRM/8/yNijVS42FzHpU6wlDEuwSScJvvGMnhyTatOTNyA1EfIK1MYnvs0G ShaHY+tRQPAPuWq0k6+lWdWbDFjklYsibTccAB4D64cGpQEmKeInUziUyU3WwZWZThrq jr5FRkf6qEqVCycs3BmFmg9YGiKg3gW5XhhbQ5Y9t2VvN/fdXiRdQMT3c6k0iRlqXr0P fWBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=SuknLxxY; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o3-v6si785094pfa.15.2018.06.12.12.04.03; Tue, 12 Jun 2018 12:04:18 -0700 (PDT) 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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=SuknLxxY; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932731AbeFLTDe (ORCPT + 99 others); Tue, 12 Jun 2018 15:03:34 -0400 Received: from mail-io0-f193.google.com ([209.85.223.193]:32869 "EHLO mail-io0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754047AbeFLTDc (ORCPT ); Tue, 12 Jun 2018 15:03:32 -0400 Received: by mail-io0-f193.google.com with SMTP id d185-v6so666009ioe.0; Tue, 12 Jun 2018 12:03:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=1tXikmjrljb2EqOv0btgOMQ/liPl9BFGQn6Scd/f9zw=; b=SuknLxxYgBtYL1vYDkYRSORfl2Aoi7IG3GwtsNEqg5S9N4ibaPZNMTlA9S0tciQS1P k8ouiOxPNDIxQe0rw1jUCfFvoGMPx5P2g5VVHHAEU4CiAjO77UPA12EfESufSy1z3LRA 3+FlmvkQtyVoWnZGZeD2axEkx5vkzJqwQ+4cwgBWZmi8kmp4Hof8/athwq1WDxkQynS+ 5HSdv/+b0UdpJwoc+uFwD+Q5CAJeTwgOwpgGSDf60/m4BSpvT/rHgcilW9fiHpsp8cJn MgrIaVs4FJ6xgChtVodTL/K4z57xqxl56kcOS3Yz7+RI0uhQbYd5TDn9xRS9BAasPpSZ fc4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=1tXikmjrljb2EqOv0btgOMQ/liPl9BFGQn6Scd/f9zw=; b=isADB6UFuLq+RvaGbsrIXEC9CsCRi/yrQ+PPrnabQefmxXQYoWwDWw+sED2+rgOOMK TwR7t862VgRiNbGS4k1SDD7mpaN2dfnswszDssGBei25FGHZydI+hm0STwqC4cI+s76a EHLLF/gYwWFJfgY6ti13Qcz7s0Xv+nitaJjB0/aIxPGav5cso24gLIAQOzpBD+irTTdT +OtfB1UAtZ/CAlaicMYFBsAOqMVEnuvkz4LyziqR00/pjBMASR4P+Afu4MQnhZEMhtmo XEkbRhVyTH3QwaWYJr32ZMP1sH760P8Jh+1qHyNACZ4ME2RT7GW3XK7S7Ok1vFGD/A/R oLGA== X-Gm-Message-State: APt69E1gQxYGAcUjWK/NAJmw14FE+t0so00H02+iHxtFejSxsIq8Ss+P fG1pwaRbl85pPzWqi+Cv4BHJwZk8POSrex1oeiM= X-Received: by 2002:a6b:c544:: with SMTP id v65-v6mr1705956iof.278.1528830211909; Tue, 12 Jun 2018 12:03:31 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:7b26:0:0:0:0:0 with HTTP; Tue, 12 Jun 2018 12:03:31 -0700 (PDT) In-Reply-To: References: <20171228152710.891701433@linutronix.de> <20171228153308.286787253@linutronix.de> From: Yang Li Date: Tue, 12 Jun 2018 14:03:31 -0500 Message-ID: Subject: Re: [patch V5 01/11] Documentation: Add license-rules.rst to describe how to properly identify file licenses To: Thomas Gleixner Cc: LKML , Linus Torvalds , Andrew Morton , Jonathan Corbet , Kate Stewart , Philippe Ombredanne , Greg Kroah-Hartman , Christoph Hellwig , Russell King , Rob Herring , Jonas Oberg , Joe Perches , linux-xfs@vger.kernel.org, Charlemagne Lasse , Carmen Bianca Bakker , "Darrick J. Wong" , Heiko Carstens Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Dec 28, 2017 at 4:17 PM, Thomas Gleixner wrote: > On Thu, 28 Dec 2017, Thomas Gleixner wrote: > > Sorry for the spam. I somehow missed to refresh the patch before generating > the mbox. Find below the correct version of that one which has ALL braces > removed which we don't need. Hi Thomas, I'm not sure how we reached the conclusion that we should remove ALL braces? I cannot find related discussion in the archive except for the "WITH" case. This is conflicting with the current SPDX spec at https://spdx.org/spdx-specification-21-web-version quoted below and also the explenation in your own file. Quote from SPDX spec 2.1: More expressive composite license expressions can be constructed using "OR", "AND", and "WITH" operators similar to constructing mathematical expressions using arithmetic operators. For the Tag:value format, any license expression that consists of more than one license identifier and/or LicenseRef, should be encapsulated by parentheses: "( )". > + > + A is either an SPDX short form license > + identifier found on the SPDX License List, or the combination of two > + SPDX short form license identifiers separated by "WITH" when a license > + exception applies. When multiple licenses apply, an expression consists > + of keywords "AND", "OR" separating sub-expressions and surrounded by > + "(", ")" . Conflicting with the example > + > + License identifiers for licenses like [L]GPL with the 'or later' option > + are constructed by using a "+" for indicating the 'or later' option.:: > + > + // SPDX-License-Identifier: GPL-2.0+ > + // SPDX-License-Identifier: LGPL-2.1+ > + > + WITH should be used when there is a modifier to a license needed. > + For example, the linux kernel UAPI files use the expression:: > + > + // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note > + // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note > + > + Other examples using WITH exceptions found in the kernel are:: > + > + // SPDX-License-Identifier: GPL-2.0 WITH mif-exception > + // SPDX-License-Identifier: GPL-2.0+ WITH GCC-exception-2.0 > + > + Exceptions can only be used with particular License identifiers. The > + valid License identifiers are listed in the tags of the exception text > + file. For details see the point `Exceptions`_ in the chapter `License > + identifiers`_. > + > + OR should be used if the file is dual licensed and only one license is > + to be selected. For example, some dtsi files are available under dual > + licenses:: > + > + // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause > + > + Examples from the kernel for license expressions in dual licensed files:: > + > + // SPDX-License-Identifier: GPL-2.0 OR MIT > + // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause > + // SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 > + // SPDX-License-Identifier: GPL-2.0 OR MPL-1.1 > + // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT > + // SPDX-License-Identifier: GPL-1.0+ OR BSD-3-Clause OR OpenSSL > + > + AND should be used if the file has multiple licenses whose terms all > + apply to use the file. For example, if code is inherited from another > + project and permission has been given to put it in the kernel, but the > + original license terms need to remain in effect:: > + > + // SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT > + > + Another other example where both sets of license terms need to be > + adhered to is:: > + > + // SPDX-License-Identifier: GPL-1.0+ AND LGPL-2.1+ > +