深入淺出:遠離法律風險,必須了解開源項目許可證
本文講開源項目的許可證(License)。
現在FOSS(Free Open Souce Software)的項目逐步增多,而且項目引進FOSS項目也越來越多,以提高我們開發的效率,避免重復造輪子。那麽在我們開心享用這些FOSS項目時,感嘆世界真美好,但我們有沒有認真去研讀過它們的許可證呢?
引進FOSS項目需要註意什麽?
那麽在引進FOSS的項目時,我們需要註意什麽呢?對此不同的人有不同的答案。對此,我的看法是:
- 需要了解FOSS項目許可。
- FOSS項目是否符合自己的需求。
- FOSS項目是否有人維護。
- FOSS項目的成熟度,社區的熱度。
- FOSS項目的質量。
- FOSS項目的繼承難度系數,以及是否能提高開發效率。
本文只關註這裏的第一步:FOSS項目許可證。為什麽把許可證放在第一條呢?因為我覺得如果許可證都不合適,下面其他要素不用考慮了。
License的重要性
無論作為個體還是公司,我們引進FOSS項目時,首先必須要考慮License的問題,如果不註意License的問題,自己的項目有可能會侵權,可能會把自己或者公司陷入法律風險的境地,如果真的這種事情發生,解決起來很麻煩。
一般怎麽處理呢?首先如果是個體,我們必須把常見的License類型了解清楚,如果是公司,需要有法務部門來審核,但是一般公司可能沒有法務部門,那需要開發人員自己去把握。我清楚的記得,在前東家裏,我配合公司的法務部門核查每個項目使用FOSS項目的情況,就是為了讓項目和公司不處於被動地位。(其實我也親身碰到過專利侵權問題,不過不在本文之內)。
所以,我們在引進FOSS項目時,一定要仔細項目的許可證,我們自己得有法律意識,這根弦必須得繃住。
License類型
現在開源項目的類型實在太多了,參看這裏,http://www.gnu.org/licenses/license-list.html, 估計有百種左右。但是,我們常見的許可證類型有以下幾種
- GPL
- BSD
- MIT
- Mozilla
- Apache
- LGPL
我們常見的軟件是什麽類型呢?我們看看:
- Apache HTTPd ,許可證是Apache
- Apache Tomcat, 也是Apache,似乎Apache Foundation都采用Apache許可。Dubbo也是,可以參看https://github.com/apache/incubator-dubbo/blob/master/LICENSE
- Spring Boot,也是Apache,https://github.com/spring-projects/spring-boot/blob/master/LICENSE.txt
- React,用的是MIT,https://github.com/facebook/react/blob/master/LICENSE
- Linux常用命令wget,用的是GPL,https://www.gnu.org/software/wget/
- Linux操作系統, 用的也是GPL,https://www.kernel.org/category/faq.html
- QT,不同用途有不同的許可,包括LGPL,參看http://doc.qt.io/qt-5/licensing.html
- VI,用的就是BSD,https://www.freebsd.org/cgi/man.cgi?query=vi&sektion=1
License介紹
光去閱讀許可證的描述太抽象了,我借用阮一峰老師的文章:http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html,以圖勝千言。
深入淺出:遠離法律風險,必須了解開源項目許可證