2015年11月18日 星期三

開放源碼與專利之必要性討論

(多年前)有客戶問,他們開發了一個多功能路由器,裡頭用的是「開放原始碼(open source)」,再進行"修改"而"發明出"新的功能,這要如何專利?以及是否要「開放」自己寫的程式碼?

當時簡單的回答是:『你要開放原始碼』,這是使用開放源碼的義務;但可對你開發出的功能『提出專利申請與專利佈局』!

現在回想,這個簡單的回答是對的,卻也不太對。

這涉及「自由軟體(free software)」的概念,先說,「自由」並不完全等於「免費」,解釋起來就如很多Linux廠商可以一方面開發Linux版本授權使用(商業使用,如redhat, ubuntu等),卻一方面提供原始碼下載,讓使用者下載、編譯與安裝(需要提供下載點),提供客製與後續開發的空間。自由軟體有「共同開發」的概念,讓產業接續發展而進步,與封閉式軟體由某間公司負責開發的概念很不同。

既然是「自由」,是否也有「不公開源碼」的自由?

這關於你所取得的「自由源碼」的來源所適用的「授權條款」,「自由軟體基金會(Free Software Foundation, FSF)」歸納出四種開放源碼的授權方案,不是每一種授權方案下的源碼後續衍生的程式都要開放,這也是一種自由

Four Freedoms for Free Software:
(http://www.gnu.org/philosophy/free-sw.en.html)
  • The freedom to run the program as you wish, for any purpose (freedom 0).
  • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
https://www.fsf.org/

這個基金會為了捍衛軟體發展與自由的信念,對"軟體專利"頗有"敵意":
"The Free Software Foundation is working to secure freedom for computer users by promoting the development and use of free (as in freedom) software and documentation—particularly the GNU operating system—and by campaigning against threats to computer user freedom like Digital Restrictions Management (DRM) and software patents."

舉例來說:

自由軟體授權條款摘錄(建議參考FSF整理,太重要了,有GPL相容、不相容、非免費等類別:http://www.gnu.org/licenses/license-list.html#SoftwareLicenses

1) GNU (General Public License)
現在已經發展到第3版。
GNU General Public License (GPL) version 3
This is the latest version of the GNU GPL: a free software license, and a copyleft license. We recommend it for most software packages.

Please note that GPLv3 is not compatible with GPLv2 by itself. However, most software released under GPLv2 allows you to use the terms of later versions of the GPL as well. When this is the case, you can use the code under GPLv3 to make the desired combination.

2)Modified BSD license
This is the original BSD license, modified by removal of the advertising clause. It is a lax, permissive non-copyleft free software license, compatible with the GNU GPL.

This license is sometimes referred to as the 3-clause BSD license.

The modified BSD license is not bad, as lax permissive licenses go, though the Apache 2.0 license is preferable. However, it is risky to recommend use of “the BSD license”, even for special cases such as small programs, because confusion could easily occur and lead to use of the flawed original BSD license. To avoid this risk, you can suggest the X11 license instead. The X11 license and the modified BSD license are more or less equivalent.

However, the Apache 2.0 license is better for substantial programs, since it prevents patent treachery.

3)The Clear BSD License
This is a free software license, compatible with both GPLv2 and GPLv3. It is based on the modified BSD license, and adds a term expressly stating it does not grant you any patent licenses. Because of this, we encourage you to be careful about using software under this license; you should first consider whether the licensor might want to sue you for patent infringement. If the developer is refusing users patent licenses to set up a trap for you, it would be wise to avoid the program.

4)Educational Community License 2.0
This is a free software license, and it is compatible with GPLv3. It is based on the Apache License 2.0; the scope of the patent license has changed so that when an organization's employee works on a project, the organization does not have to license all of its patents to recipients. This patent license and the indemnification clause in section 9 make this license incompatible with GPLv2.

5)Mozilla Public License (MPL) version 2.0
This is a free software license. Section 3.3 provides indirect compatibility between this license and the GNU GPL version 2.0, the GNU LGPL version 2.1, the GNU AGPL version 3.0, and all later versions of those licenses. When you receive work under MPL 2.0, you may make a “Larger Work” that combines that work with work under those GNU licenses. When you do, section 3.3 gives you permission to distribute the MPL-covered work under the terms of the same GNU licenses, with one condition: you must make sure that the files that were originally under the MPL are still available under the MPL's terms as well. In other words, when you make a combination this way, the files that were originally under the MPL will be dual licensed under the MPL and the GNU license(s). The end result is that the Larger Work, as a whole, will be covered under the GNU license(s). People who receive that combination from you will have the option to use any files that were originally covered by the MPL under that license's terms, or distribute the Larger Work in whole or in part under the GNU licenses' terms with no further restrictions.

6)OpenSSL license
The license of OpenSSL is a conjunction of two licenses, one of them being the license of SSLeay. You must follow both. The combination results in a copyleft free software license that is incompatible with the GNU GPL. It also has an advertising clause like the original BSD license and the Apache 1 license.

We recommend using GNUTLS instead of OpenSSL in software you write. However, there is no reason not to use OpenSSL and applications that work with OpenSSL.

7)License of WebM
Google's WebM implementation is covered by the Modified BSD License. Google also provides a separate patent license (confusingly called an “Additional IP Rights Grant”) for patents that Google owns or controls that are necessarily infringed by their implementation of WebM. GPL-covered software can be distributed in compliance with this license's terms: it allows distributors to exercise all of the rights granted by the GPL, while fulfilling all its conditions. Thus, all of WebM's license is free and GPL-compatible.


那麼,「專利」呢?

(updated on Nov. 18, 2015)
從各種自由軟體授權條款來看,不少授權條款有專利終止條款(patent termination)、不准專利授權,使得採用相關授權條款的使用者不得在此技術下主張專利權。但不曉得這是否限制人民的訴訟權?但這就是一種合約,應有約束力,防止背信("it prevents patent treachery")。

例如:
Apache License, Version 2.0
This is a free software license, compatible with version 3 of the GNU GPL.
Please note that this license is not compatible with GPL version 2, because it has some requirements that are not in that GPL version. These include certain patent termination and indemnification provisions. The patent termination provision is a good thing, which is why we recommend the Apache 2.0 license for substantial programs over other lax permissive licenses.
The Clear BSD License
This is a free software license, compatible with both GPLv2 and GPLv3. It is based on the modified BSD license, and adds a term expressly stating it does not grant you any patent licenses. Because of this, we encourage you to be careful about using software under this license; you should first consider whether the licensor might want to sue you for patent infringement. If the developer is refusing users patent licenses to set up a trap for you, it would be wise to avoid the program.
反之,亦有授權條款持開放的態度,同意非版權免費,明文不反對專利授權。例如Google仍保有相關條款下軟體的主控權。

Universal Permissive License (UPL)
This is a lax, permissive non-copyleft free software license, compatible with the GNU GPL. The license does provide the ability to license patents along with the software work, however, we still recommend the Apache 2.0 license for avoiding patent treachery when choosing to put your work under a lax license.
License of WebM
Google's WebM implementation is covered by the Modified BSD License. Google also provides a separate patent license (confusingly called an “Additional IP Rights Grant”) for patents that Google owns or controls that are necessarily infringed by their implementation of WebM. GPL-covered software can be distributed in compliance with this license's terms: it allows distributors to exercise all of the rights granted by the GPL, while fulfilling all its conditions. Thus, all of WebM's license is free and GPL-compatible.
專利制度的設計原意也是「促進產業發展」,但論點主要是提供發明人有「獨占」利益的角度來鼓勵發明,與「開放」的概念確實不同,不過,適度地保護避免智慧財產被惡意仿冒,專利制度算是必要手段。因此,回到本篇的問題,以開放源碼開發的廠商,須先研讀所適用的授權條款為何,在相關條款規定下,應該提供開放源碼下載的載點,另一方面仍可主張專利權避免商業侵權。但也有些授權條款不准你去申請專利。

可參考一下過去的文章:
http://enpan.blogspot.tw/2010/12/blog-post_29.html(隨筆-自由軟體與軟體的專利必要?)
http://enpan.blogspot.tw/2009/08/open-android.html(這是個很OPEN的計畫-Android)

my two cents:
開放源碼是人類的共同資產,也是科技進步的原動力,很珍貴,有高尚的情操,應該要尊重。

為了釐清「開放源碼理想」與「提供源碼義務」的不同,

Software Licenses:
http://www.gnu.org/licenses/license-list.html#SoftwareLicenses

甚麼是自由軟體?(有中文版)
http://www.gnu.org/philosophy/free-sw.html

有用資訊(從開放源碼的理想到提供源碼的義務):
http://www.openfoundry.org/tw/legal-column-list/9120-from-open-source-idea-to-providing-source-code-obligation

新聞來源:
http://hackaday.com/2015/11/14/fcc-clears-the-air-with-wi-fi-software-updates-run-on-fri/

資料來源:
http://source.android.com/license

Ron

沒有留言: