Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp3877645imm; Tue, 29 May 2018 15:56:03 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKkussB9PLTIjxyxtO5bBOJ1+Ocl6tCDzsLkvEJzcwCAIo7Oo/BCf/J3UUEv3DCkHhJy8PM X-Received: by 2002:a63:77c9:: with SMTP id s192-v6mr261726pgc.140.1527634562958; Tue, 29 May 2018 15:56:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527634562; cv=none; d=google.com; s=arc-20160816; b=QAxQzU3f2sPJJlY1+yxhbkKZOwlHYY/EIiKbpOc5Nf5DaPy9tW8qys9V9zNLV3gTUx +qw8XG+0xX+eV6DsCqaf4hcbOwMF50RpGMQnW4ord85ABbyNzYP7ywJdWiRBqgcsIiiX yhBEi/+sQJbnlenD+ZR1h4+JDgSS8W/qmb/WUnFUiI2ld4AWddmpwoY/+W84ItZFRqi1 TWRveLzcmoDP+nTBQkE/53iqaew6vRnyLTyTLuIGwSOWaQCweivFR6dVzevwk3xZEXEh IOShD6RhGaxz66cmE5l2YgqKWUAie2HrigvzQRzS5aUfqxHVGAWiNgwJ0MaJ2QYJjrHz 0I1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=QIdekMPaMXJMy3bbkVkdAUdb/0t7Mx6WYN1YPGEPUZ0=; b=p1w5Q6GA7peRQiD4NB1qopugKr5JSOsDPEIQmSQeRPr5RdohidnunZdHigqxTtGiB2 /pWJQBsKoyT4NP2oqeWMg6GYmZz7OF77CXQhCr56AJAF4VJn3VHpIyeYzT4ur0AcdzDc ytv7pReu7JZS1PvA9C9pbOaq54xwKz7e03sqpgaHCR8hg1mEChsUdzHsW5uTRy2CBs69 oyzbWvSg/rE+S7daqfnnFdS/bQ8uFYFoBW1Bfrc+6hGHIqqA4VZwFT2z5IPHXGe7IinU 16QpNs3mqdJofx4snpP2TGv7XNbMQvEG/nMZBdmbSs40WVIFyD5gFHA8AA7XhVyKlnlR 25Tg== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h189-v6si8875882pge.266.2018.05.29.15.55.48; Tue, 29 May 2018 15:56:02 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S937051AbeE2WzW (ORCPT + 99 others); Tue, 29 May 2018 18:55:22 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:42178 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935806AbeE2WzU (ORCPT ); Tue, 29 May 2018 18:55:20 -0400 Received: by mail-pf0-f196.google.com with SMTP id p14-v6so7983540pfh.9; Tue, 29 May 2018 15:55:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=QIdekMPaMXJMy3bbkVkdAUdb/0t7Mx6WYN1YPGEPUZ0=; b=bQYaGdjOqksqFiTa1h59x/U9CU/wNYpsCbPlsY22cCpBaKEGze0yfXVoZVm/ZNZpsQ s2yYwpXeaYwqgQ3iqJBvUPsUv0c37PKHTiNqNBW9vDUCjYNgUX7TNlkYxUm7SSW6k33W dmTPyluF3snWVjSZvzWaAgfA8wYNFdKntWZtm3M+nulexNBA8KwnW5bZCHmBrD+cQMT2 +u9+SS08di4CkwRcRlp+xTSW69zC510hmvb8r3x6R+lLDpxGZ7prO/HR5wLDKstQY60c vESBBykOuZAEJTg+1eiJKd3sWKLnGAFd9oyYT1RRgeFbugAwcZKskoNkWqCJFoWwU9Oh /Zpw== X-Gm-Message-State: ALKqPwe6r3Disxa63e1QTHp+H2qpdiZy99pvwNtL60JfXcaKauZ1tBlI XsQpdv6dMN8DS3k84nFDUTo= X-Received: by 2002:a65:4b82:: with SMTP id t2-v6mr239084pgq.175.1527634519551; Tue, 29 May 2018 15:55:19 -0700 (PDT) Received: from garbanzo.do-not-panic.com (c-73-15-241-2.hsd1.ca.comcast.net. [73.15.241.2]) by smtp.gmail.com with ESMTPSA id 65-v6sm66447550pgj.22.2018.05.29.15.55.16 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 29 May 2018 15:55:18 -0700 (PDT) Received: by garbanzo.do-not-panic.com (sSMTP sendmail emulation); Tue, 29 May 2018 15:55:16 -0700 Date: Tue, 29 May 2018 15:55:16 -0700 From: "Luis R. Rodriguez" To: Kent Overstreet Cc: Coly Li , Ciaran Farrell , One Thousand Gnomes , linux-bcache@vger.kernel.org, "linux-kernel@vger.kernel.org" , Greg Kroah-Hartman , Tso Ted , Linus Torvalds , Thomas Gleixner , Philippe Ombredanne , Kate Stewart , Jonas Oberg Subject: Re: PostgreSQL licensed code on Linux Message-ID: <20180529225516.GH31712@garbanzo.do-not-panic.com> References: <20180529192643.GA3487@kmo-pixel> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180529192643.GA3487@kmo-pixel> User-Agent: Mutt/1.9.5 (2018-04-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 29, 2018 at 03:26:43PM -0400, Kent Overstreet wrote: > On Tue, May 29, 2018 at 12:14:01PM -0700, Luis R. Rodriguez wrote: > > The question over future possible PostgreSQL licensed code on Linux came up > > to me recently. While doing some quick of digging around I found code > > already under such license it seems: > > > > The file drivers/md/bcache/util.c has: > > > > cafe563591446 (Kent Overstreet 2013-03-23 16:11:31 -0700 318) /* > > cafe563591446 (Kent Overstreet 2013-03-23 16:11:31 -0700 319) * Portions > > Copyright (c) 1996-2001, PostgreSQL Global Development Group (Any > > cafe563591446 (Kent Overstreet 2013-03-23 16:11:31 -0700 320) * use > > permitted, subject to terms of PostgreSQL license; see.) > > > > That seems to indicate that we've had already PostgreSQL licensed code on > > Linux since Kent's addition of bcache to Linux in 2013. The portion of code > > is rather small though, to me it seems to cover only crc_table[], > > bch_crc64_update(), and bch_crc64(). Four things: > > Yep, it's just that code. Great, thanks for the confirmation. > > a) This is the only code on Linux which seems to use PostgreSQL > > b) The language for license seem to be cut off, 'see.' seems incomplete, > > whereas typically it would point to a file with the full language text. > > c) We can only infer what portions of the file are under this license > > d) Even though some licenses claim to be GPL-Compatible, if possible we > > should dual license such with the GPL if possible (*) > > > > If some folks are considering adding yet more code to Linux which is > > currently under a PostgreSQL license I figured reviewing the existing > > PostgreSQL code's use may be a good start to set precedent for future work. > > Since we already have at least one file with a PostgreSQL-sort-of boiler > > plate it at least sets the precedent we have already sort of dealt with > > PostgreSQL. > > > > My recommendations: > > > > As silly as it may be we should split out the PostgreSQL licensed code from > > drivers/md/bcache/util.c into its own file and while at it clarify the > > license. > > > > If possible, if we can dual license this code with GPL it would be good as > > it would do two things: > > > > 1) Removes any ambiguity in case of questions over GPL Compatibility in the > > future about the PostgreSQL license > > > > 2) Other folks considering using PostgreSQL licensed code on Linux have a > > template they can use > > Sounds good to me, I'll defer to your judgement since you have more experience > with these things than me :) Let me know if there's anything you need from me. I > never modified that code besides renaming the functions, but dual licensing > would be fine by me. IANAL, but my recommendations below. Trying to get all interested parties on Linux to agree PostgreSQL is indeed GPL-Compatible is certainly possible but may require a bit of legal billable hours on quite a bit of parts in the community. It takes a long time... Dual licensing would be preferred to avoid adding yet-another-license and possibile ambiguities over compatibility, however, that would require the original copyright holder's permission. You can poke if you'd like, however there are two other alternatives. a) License new code to GPL and add provenance notice for PostgreSQL - Useful if we know upstream PostgreSQL does not care for our own changes b) Dual license GPL/PostgreSQL with provenance notice for the original PostgreSQL code. - Useful if we know PostgreSQL may be interested in reaping benefit of our own changes on Linux as well. a) and b) are possible if you made changes to the code (even space and style changes count). If you opt for a) our code on Linux and evolutions of it remains GPL, but would annotate provenance from the PostgreSQL license. It'd include language such as: ------------------------------------------------------------------------------- * This file incorporates work covered by the following copyright and * permission notice: ------------------------------------------------------------------------------- So for instance this strategy was done on the carl9170 device driver rewrite where Johannes took ISC licensed otus device driver from staging and rewrote the driver based on it, an example file with the notice: drivers/net/wireless/ath/carl9170/phy.c This followed the guidence previously provided by SFLC on dealing with this [0]. But since there may be other code coming up we have to consider what the goals are. - Is the plan to consider incorporating more PostgreSQL licensed code on Linux? - Is the goal to also let the PostgreSQL reap benefit of our own enhancements? If so for both then, and we if we really dont' want to get a good set of company attorneys to say "PostgreSQL is GPL compatible", then b) should work. It would be something like: ------------------------------------------------------------------------------- etc... later version; or, when distributed separately from the Linux kernel or when incorporated into other software packages, subject to the license: * This file incorporates work covered by the following copyright and * permission notice: ------------------------------------------------------------------------------- [0] https://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html Luis