我們以React為例,看看開源軟件的坑在哪裡。
React的開源許可證
React最初的開源許可證為Facebook 在BSD許可證基礎上附加了專利防禦保護條款,即BSD+Patents license。
解讀
- 如果被許可人對Facebook及其子公司、關聯公司提出直接或間接的專利訴訟;
- 對其他方提起專利訴訟,且該專利訴訟全部或部分起因於Facebook、其子公司或者關聯公司的任何軟件、技術、產品或服務;
- 就React軟件相關發起專利訴訟,起訴其他方。
許可證及後續Facebook的答疑中明確專利權在以下情形下不會被撤回:
- 被許可人使用React創造了競爭產品;
- 被許可人就專利侵權之外的事項起訴Facebook;
- Facebook作為專利訴訟(非因BSD+Patents license授權下的軟件相關)的原告,被許可人反訴的情形。
質疑漩渦
Apache基金會在2017年7月禁止Apache 產品中使用遵循BSD+Patents License的JAR包。質疑漩渦進一步發酵,社區激烈地質疑Facebook違背了開源的精神。
在持續發酵的情況下,Facebook承諾更換許可證,並於9月26日遵守承諾在發佈React16時更換為MIT許可證。然而,對Facebook還堅持使用原許可證的開源項目,仍然應該引起關注。總體而言,React許可證的更換不僅是開源社區的一次勝利,更是提高了企業、開發者對許可證重要性的認識、起到了警示作用。
如何正確使用開源軟件
1. 關注開源軟件使用的合規性
綜上,未按照開源許可證約定使用開源軟件會引發潛在的法律糾紛,或者給企業帶來名譽損失。因此,企業在使用開源軟件時應建立審查制度。依據開發軟件的用途、目的、市場等情況判斷是否引入某開源軟件。
就軟件開發服務提供者而言,應首先關注同客戶的合同約定,在合同約定可以使用的前提和範圍下,盡到對客戶的通知義務或取得客戶的書面同意。以避免因為使用開源軟件導致的合同違約或者被追償。
2. 關注開源軟件使用的安全性
開源軟件由於貢獻者的能力不同導致可能存在安全漏洞。因此,開發者在享受開源軟件的便利時,應注意漏洞的識別,並採取相應的代碼安全審計,並將已披露漏洞及修復方案及時告知客戶。
3. 制定開源軟件使用政策。
文/朱偉燕,ThoughtWorks中國總法律顧問
閱讀更多 ThoughtWorks 的文章