React 許可證的五宗罪
| 2017-09-18 10:43
Facebook 公司的 BSD+專利許可證失敗的原因不是因為許可證本身,而是因為它忽略了開源軟體更深層次的本質。
2017 年 7 月,Facebook 公司應用於 react 等專案的許可證組合被 Apache 軟體基金會禁止使用。該許可證組合曾被 Facebook 應用於其所有作為開源軟體釋出的專案,它使用了被 OSI 批准的廣泛使用的非互惠許可證 BSD 3-Clause,並且加入了寬泛的、非互惠的專利授權條款,但為了應對挑釁者,該許可證組合的終止規則同樣寬泛。這種組合代表了一種新的開源許可證,我稱之為“Facebook BSD+專利許可證”(FB + PL),在我看來,該許可證試圖與 GPL v2 和 Apache v2 許可證保持相容,以規避這些許可證所指稱的不相容性。
使用 FB + PL 許可證的 Apache 專案仍在發揮作用,但是我認為 Facebook 所犯錯誤的原因可能不會立即被一貫秉持實用主義態度的軟體開發人員們所注意到。例如,由律師轉行做程式設計師的 Dennis Walsh 針對這個問題表示:“它沒有什麼實質意義”。他的觀點是,FB + PL 許可證僅對你所使用的適用該許可證的特定軟體專案產生影響,專利授權撤回的後果對另一個專利持有者來說並不嚴重。他得出結論說:
“Facebook 想要推廣開源軟體同時不被起訴——這是一個崇高的目標。為此,它可以使用一些苛刻的條款。但在這種情況下,由於上述實踐和法律方面的原因,很難在被攻擊之後發現是誰幹的。”
Dennis 也許是對的,但這並不重要。Facebook 自出機杼地發明自己的開源許可證是一個壞主意。有一系列非直接風險或具體情境的重要因素需要考慮,Facebook 的許可證幾乎將它們完全忽略了。
- 許可證審批很重要
使用非 OSI 批准的許可證意味著,就像任何專有許可證一樣,將其應用於企業用途時總是需要法律審查。OSI 許可證審批之所以重要,是因為它為開發人員提供了一種指示,即社群評估已經認可了該許可證,並認為它以不會產生不可接受風險的方式提供了軟體自由。如果 Facebook 採取了尋求 OSI 批准的路線,那麼很有可能一開始就會發現並且迴避了他造成的問題。實際上有一種 OSI 批准的許可證能夠實現 Facebook 的明確目標(BSD + 專利許可證)。該許可證最近剛被提交和批准,這看起來是 Facebook 可以考慮採用的合理替代方案。 - 較少的提前許可
不僅僅是許可證批准很重要。任何有關創新自由的不確定性都會阻礙開發人員使用程式碼。與使用相關的含糊條款在使用前需要消除歧義——該步驟相當於為了繼續推進而尋求許可。出於同樣的原因,公共領域對於軟體開發者來說是不利的,因為使用條款規定了在採用之前需要尋求許可。由於需要向專案新增一個與 Facebook 相關的法律檔案,每個企業開發人員現在都需要與法律顧問聯絡,才能繼續推進。即使答案是“是的,可以”,他們仍然不得不停下來尋求許可。正如 Aaron Williamson 指出的那樣,這可能不是他們的反應。 - 不公平的比賽場
Facebook 使用的專利授權條款為其提供了特殊權利和保護,而專案中的其他人並不享有。這使得開源開發人員感到緊張,原因與貢獻者協議一樣。開源專案的軟體自由的全部價值在於它創造了一個安全的空間,在其中每個人都是平等的,它保護每個人免受他人動機的影響。刻意為自己設定額外權利是反社會的行為,可悲的是,開源社群有很多不平等權利最終被濫用的例子。 - 隱含的授權無效
許多開源法律機構認為,透過對用於任何目的的軟體使用授予許可,即使沒有提及專利的許可證也隱含授予專利許可。透過新增任意形式的外部專利授權,Facebook 表示它不認為隱含授權足夠(最好的情形)或存在(最差的情形)。專注於開源軟體的律師們認為,這是 Facebook 毫無根據的擴大化解釋。這也是為什麼 OSI 放棄了對 CC0 許可協議批准的原因。 - Apache 基金會的規則
雖然我沒有找到清晰和完整的理由,但 Apache 基金會似乎已經對 Facebook 的許可證組合做出了裁定,因為 Apache 基金會認為,Facebook 的專利授權比 Apache v2 許可證中的專利條款限制性更強。Apache 基金會希望自身是一箇中立的軟體來源——一個“萬能供血者”,而對此產生妨害的條款很有可能違背其規則。對於旨在成為 Apache 生態系統一部分的元件,與 Apache 的許可證產生混亂的做法看起來不太明智。
所以爭論這個問題沒有什麼意義,因為風險很小,問題微不足道。以一種忽視我上面列出的五個社群規範的方式行動無益於任何人,甚至也幫不了 Facebook。雖然 Facebook 目前正在堅持己見,但我希望它能夠改正,我願意提供幫助。
作者簡介:Simon Phipps 是“公開軟體”開源專案的發起人,以志願者身份擔任 OSI 和文件基金會的理事。
譯者簡介:薛亮,集慧智佳智慧財產權諮詢公司高階諮詢師,擅長專利檢索、專利分析、競爭對手跟蹤、FTO分析、開源軟體智慧財產權風險分析,致力於為網際網路企業、高科技公司提供智慧財產權諮詢服務。
相關文章
- [譯] React、Jest、Flow 和 Immutable.js 將使用 MIT 許可證ReactJSMIT
- React基於RBAC的許可權控制React
- 再談Android的許可證Android
- 開源許可證教程
- 原始碼即是許可證原始碼
- 如何理解Apache 2.0許可證中的專利許可條款?Apache
- vmware workstation pro許可證金鑰大全 vmware所有版本許可證金鑰
- 分配給 主機的 Evaluation Mode 許可證已過期。建議升級許可證。
- 再談Android的許可證(續)Android
- Hadoop 許可權認證Hadoop
- 荷蘭加密貨幣許可證加密
- 七種開源許可證
- mysql之許可權驗證MySql
- 自由軟體許可證GPL
- 小知識:軟體開發的許可權控制和許可權驗證
- vmware虛擬機器許可證金鑰大全 vmware許可證金鑰是什麼虛擬機
- vmwareworkstation16許可證金鑰 vmware16虛擬機器許可證金鑰虛擬機
- Windows許可證 即將過期Windows
- spring security許可權認證Spring
- TC (Teamcenter) 許可證解決方案
- VMware許可證過期解決
- netbeans許可證模板設定Bean
- Fake許可權驗證小例子
- [譯] 用 React 和 Node.js 實現受保護的路由和許可權驗證ReactNode.js路由
- GitHub如何選擇合適的license(許可證)Github
- 認證/授權與許可權的問題
- AIX 的許可許可權(轉)AI
- 2.6.10 設定許可證引數
- GoFrame 框架使用 casbin 許可權認證GoFrame框架
- 資料許可權技術驗證
- 資料許可權驗證MyBatis版MyBatis
- Capital許可證管理最佳實踐API
- Oracle的物件許可權、角色許可權、系統許可權Oracle物件
- 為什麼GPL是更好的開源許可證?
- React v16.0 來了,遵循 MIT 許可ReactMIT
- MySQL 手冊許可證更改或許只是一個 Bug 而已?MySql
- 馬來西亞加密貨幣許可證加密
- 關於"網際網路出版許可證"