暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[转载] PostgreSQL and patents - PostgreSQL与专利

digoal 2019-06-08
198

作者

digoal

日期

2019-06-08

标签

PostgreSQL , 专利 , 开源


背景

专利对于开源软件来说,可能是最有杀伤力的。

原文

https://lwn.net/Articles/760834/

Patents and open-source projects are always a messy combination it seems. A recent discussion on the pgsql-hackers mailing list highlights some of the problems that can result even when a patent holder wants to make their patents available to a project like PostgreSQL. Software patents are a minefield in many ways—often projects want to just avoid the problems entirely by staying completely away from code known to be covered by patents.

It started with a post from Takayuki Tsunakawa, who wondered how his employer, Fujitsu, could submit patches to PostgreSQL that implement various patented (and patent applied-for) techniques: "we'd like to offer our company's patents and patent applications license to the PostgreSQL community free of charge". He suggested three possibilities for how that might be accomplished: by way of a patent pool such as the one run by the Open Invention Network, doing an explicit patent grant (such as that in section 3 in the Apache v2 license), or by a patent promise like Red Hat's, but only for PostgreSQL.

Derivative and other works based on PostgreSQL would be problematic if the grant is only made to the PostgreSQL project itself. As Craig Ringer put it:

My big hesitation with all those approaches is that they seem to exclude derivative and transformative works.
PostgreSQL is BSD-licensed. Knowingly implementing patented work with a patent grant scoped to PostgreSQL would effectively change that license, require that derivatives identify and remove the patented parts, or require that derivatives license them.

I'm assuming you don't want to offer a grant that lets anyone use them for anything. But if you have a really broad grant to PostgreSQL, all someone would have to do to inherit the grant is re-use some part of PostgreSQL.

There are also questions about exactly what the Apache patent grant or a patent promise actually provide. There are worries that those have not ever been litigated, so they may not really give projects much protection—and patent promises could potentially change with a company takeover, change in direction, or bankruptcy. Throughout the discussion, though, Tsunakawa seems to be earnestly looking for a reasonable solution so that this patented code can be added to PostgreSQL to make it better.

He appears to be acting as a go-between for the Fujitsu legal department, but Nico Williams was a bit skeptical of that approach. He suggested that the company needs to make a decision about what it is trying to do, then work with the community to determine what would work; only after that should the legal department get involved to make that a reality. Beyond that, though, he is not convinced the patents can be granted in a way that still makes them useful to the granter for anything other than a defensive use:

Also, I would advise you that patents can be the kiss of death for software technologies. For example, in the world of cryptography, we always look for patent-free alternatives and build them from scratch if need be, leading to the non-use of patented algorithms/protocols in many cases. Your best bet is to make a grant so liberal that the only remaining business use of your patents is defensive against legal attacks on the holder.
Williams also brought up another area of concern: tainting developers by exposing them to these patents, which can lead to triple damages if they ended up using them in unrelated projects. Tsunakawa pointed out that PostgreSQL does not screen contributions for possible patent infringement currently, but this situation is a bit different than that, Williams said:

You're proposing to include code that implements patented ideas with a suitable patent grant. I would be free to not read the patent, but what if the code or documents mention the relevant patented algorithms?
[...]

I could choose not to read it. But what if I have to touch that code in order to implement an unrelated feature due to some required refactoring of internal interfaces used by your code? Now I have to read it, and now I'm tainted, or I must choose to abandon my project.

That is a heavy burden on the community. The community may want to extract a suitable patent grant to make that burden lighter.

Much of the discussion became moot, however, when Tom Lane announced that the core team had decided against accepting patented code into PostgreSQL:

[...] we will not accept any code that is known to be patent-encumbered. The long-term legal risks and complications involved in doing that seem insurmountable, given the community's amorphous legal nature and the existing Postgres license wording (neither of which are open for negotiation here). Furthermore, Postgres has always been very friendly to creation of closed-source derivatives, but it's hard to see how inclusion of patented code would not cause serious problems for those. The potential benefits of accepting patented code just don't seem to justify trying to navigate these hazards.
Bruce Momjian, who is another member of the core team, added: "any patent assignment to Postgres would have to allow free patent use for all code, under any license. This effectively makes the patent useless, except for defensive use, even for the patent owner." He noted that the core team (which is part of the PostgreSQL Global Development Group or PGDG) might consider accepting patents for defensive use, but there are some problems with that as well. For one thing, there is no PGDG legal entity; it would entail some "operational complexity" as well, he said.

The core team's feeling is that it not worth it, but that discussion can be re-litigated on this email list if desired. The discussion would have to relate to such patents in general, not to the specific Fujitsu proposal. If it was determined that such defensive patents were desired, we can then consider the Fujitsu proposal.
Tsunakawa was somewhat disappointed, as might be expected. Williams strongly agreed with the decision. There has been no other real reaction to it on the mailing list.

It is a little hard to see how any other choice could have been made, really. While the Fujitsu offer was generous, and might have provided some nice technical benefits, it was never going to fit well with an open-source project with a liberal license. Patent grants like the one IBM made for read-copy update (RCU), which was only allowed for GPL-covered software, do not work in an environment where proprietary forks are possible. Any grant that is wide enough to cover the PostgreSQL community and its participants is likely to be too wide for the patent to be of much use to its owner.

It is far from the first (nor will it be the last) problem we have seen for patents and free software. The patent system, at least in the software world, is not working well, but that's been clear for many years now. Patent reform is certainly due, but seems unlikely to happen—ever, perhaps. Meanwhile, free software will keep rolling along, dodging the patent mess as best it can.

参考

https://lwn.net/Articles/760834/

https://lwn.net/Articles/760866/

PostgreSQL 许愿链接

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

9.9元购买3个月阿里云RDS PostgreSQL实例

PostgreSQL 解决方案集合

德哥 / digoal's github - 公益是一辈子的事.

digoal's wechat

文章转载自digoal,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论