React 許可證的五宗罪

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 的許可證幾乎將它們完全忽略了。

  1. 許可證審批很重要

    使用非 OSI 批准的許可證意味著,就像任何專有許可證一樣,將其應用於企業用途時總是需要法律審查。OSI 許可證審批之所以重要,是因為它為開發人員提供了一種指示,即社區評估已經認可了該許可證,並認為它以不會產生不可接受風險的方式提供了軟體自由。如果 Facebook 採取了尋求 OSI 批准的路線,那麼很有可能一開始就會發現並且迴避了他造成的問題。實際上有一種 OSI 批准的許可證能夠實現 Facebook 的明確目標(BSD + 專利許可證)。該許可證最近剛被提交和批准,這看起來是 Facebook 可以考慮採用的合理替代方案。
  2. 較少的提前許可

    不僅僅是許可證批准很重要。任何有關創新自由的不確定性都會阻礙開發人員使用代碼。與使用相關的含糊條款在使用前需要消除歧義——該步驟相當於為了繼續推進而尋求許可。出於同樣的原因,公共領域對於軟體開發者來說是不利的,因為使用條款規定了在採用之前需要尋求許可。由於需要向項目添加一個與 Facebook 相關的法律文件,每個企業開發人員現在都需要與法律顧問聯繫,才能繼續推進。即使答案是「是的,可以」,他們仍然不得不停下來尋求許可。正如 Aaron Williamson 指出的那樣,這可能不是他們的反應。
  3. 不公平的比賽場

    Facebook 使用的專利授權條款為其提供了特殊權利和保護,而項目中的其他人並不享有。這使得開源開發人員感到緊張,原因與貢獻者協議contributor agreements一樣。開源項目的軟體自由的全部價值在於它創造了一個安全的空間,在其中每個人都是平等的,它保護每個人免受他人動機的影響。刻意為自己設置額外權利是反社會的行為,可悲的是,開源社區有很多不平等權利最終被濫用的例子。
  4. 隱含的授權無效

    許多開源法律機構認為,通過對用於任何目的的軟體使用授予許可,即使沒有提及專利的許可證也隱含授予專利許可。通過添加任意形式的外部專利授權,Facebook 表示它不認為隱含授權足夠(最好的情形)或存在(最差的情形)。專註於開源軟體的律師們認為,這是 Facebook 毫無根據的擴大化解釋。這也是為什麼 OSI 放棄了對 CC0 許可協議批准的原因。

  5. Apache 基金會的規則

    雖然我沒有找到清晰和完整的理由,但 Apache 基金會似乎已經對 Facebook 的許可證組合做出了裁定,因為 Apache 基金會認為,Facebook 的專利授權比 Apache v2 許可證中的專利條款限制性更強。Apache 基金會希望自身是一個中立的軟體來源——一個「萬能供血者」,而對此產生妨害的條款很有可能違背其規則。對於旨在成為 Apache 生態系統一部分的組件,與 Apache 的許可證產生混亂的做法看起來不太明智。

所以爭論這個問題沒有什麼意義,因為風險很小,問題微不足道。以一種忽視我上面列出的五個社區規範的方式行動無益於任何人,甚至也幫不了 Facebook。雖然 Facebook 目前正在堅持己見,但我希望它能夠改正,我願意提供幫助。


作者簡介:Simon Phipps 是「公開軟體」Public Software開源項目的發起人,以志願者身份擔任 OSI 和文檔基金會The Document Foundation的理事。

編譯自 | opensource.com/article/

 作者 | Simon Phipps

 譯者 | 薛亮

推薦閱讀:

項目使用了MariaDB,是不是必須開源?
SOO license(SOO開源協議)0.1版
自由軟體、開源軟體、有源軟體和商業軟體
WordPress 棄用 React,並將進行重寫
[開源 許可] 踢掉FB+PL:Apache的開源左派宣言?

TAG:React | 开源许可证 | Facebook |