Re: How can we submit code patches that implement our (pending) patents?

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Stephen Frost <sfrost(at)snowman(dot)net>, Andres Freund <andres(at)anarazel(dot)de>, Chris Travers <chris(dot)travers(at)adjust(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: How can we submit code patches that implement our (pending) patents?
Date: 2018-07-27 15:59:12
Message-ID: CA+Tgmob3GfQuBhf5DeJyvf2mXYuRh+mVVfD2Lv4+afOJvnA=dA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Jul 27, 2018 at 10:44 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> However, that does *not* mean that adding patent-related qualifiers to the
> license is going to be OK with everybody. An easy counterexample is that
> we get code from some of those selfsame companies with private forks,
> which then feeds back into their forks (EDB, for instance). What if the
> license change interferes with their own IP situation?

Maybe I'm missing something, but if it interferes with their IP
situation, that must mean that their IP situation involves potentially
wanting to sue users of PostgreSQL or derivate works for patent
infringement. If that is the case, interfering with that situation is
a feature, not a bug.

In other words, if we say to various companies "hey, you can't
contribute to PostgreSQL any more unless you are willing to have your
contributions include the right to any patents they implicate" and one
of those companies says "well, in that case we're not going to
contribute any more," we have got to really wonder about the
motivations of that company.

> You're just attacking a straw man.

I can't agree with that statement.

> Nobody is claiming that that would
> give us entire safety. We *are* saying that not doing that would expose
> us to more legal risk than if we do do it (ie refuse any known-patent-
> encumbered code). In any case we will always have to be prepared to
> remove patent-covered code when someone brings it to our notice.
> The latter is a fact of life that no amount of license-tweaking or
> contributor-agreement-making is going to alter.

I agree with all this.

> But what we can do,
> to reduce the risk of future trouble, is avoid planting already-known
> patent time bombs in our code. That prevents issues if the patent owner
> (or a successor) has a change of heart;

No, that's exactly backwards. Right now, you are relying on people
not having a change of heart; if you made them promise to license any
patents they have, you would be relying on the law. Today, if an
employee of company A contributes a patch to PostgreSQL which happens
to include patented technology, and they happen not to mention it
because their present management has no intention of asserting that
patent against PostgreSQL, or because they just want to get the patch
accepted for whatever reasons, they can later decide that they'd like
to assert that patent after all. If they have agreed to a license
that includes an explicit patent grant, then they can't just change
their mind. There's a lot of speculation on this thread which
suggests that there may be situations such as bankruptcy in which
companies can go back on their contracts and/or promises; regardless
of whether that is the case, it must be far easier for a company to
reverse course when it hasn't contracted or promised anything to begin
with.

> and I think also that having a
> clear no-patents policy will help establish lack of intent to infringe
> if things ever get sticky with an accidental infringement.

We don't have a clear contribution policy of any kind, about patents
or anything else. The entire policy around contributions consists of
a corpus of remarks you've made on the mailing list and *maybe* a wiki
page someplace. (I couldn't find one in a quick search, though.)
There's nothing that anybody needs to agree to in order to contribute,
and there are no checks that anyone is aware of, let alone intending
to adhere to, any particular set of rules. If we actually did have a
clear policy, though, I agree that it might help.

On the other hand, how much difference is there between a policy that
says "we don't want code that is known to be covered by patents of any
kind" and a similar policy that says "...unless a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent
license allowing use for any purpose is conveyed along with the code"?
If you operate under the theory that someone can revoke a license
that has "irrevocable" in the legal language, then there's a big
difference, but I don't think that's how the law works. My
understanding, rather, is that once a technique is patented by company
or individual A, it cannot later be patented by somebody else. So if
you know who the patent-holder is, and you know they've given a
license, you're actually safer than if there is no patent at all.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Nico Williams 2018-07-27 16:02:27 Re: How can we submit code patches that implement our (pending) patents?
Previous Message Jeff Janes 2018-07-27 15:58:42 add verbosity to pg_basebackup for sync