深入淺出:遠離法律風險,必須瞭解開源專案許可證

張太國發表於2018-12-07

本文講開源專案的許可證(License)。

現在FOSS(Free Open Souce Software)的專案逐步增多,而且專案引進FOSS專案也越來越多,以提高我們開發的效率,避免重複造輪子。那麼在我們開心享用這些FOSS專案時,感嘆世界真美好,但我們有沒有認真去研讀過它們的許可證呢?

引進FOSS專案需要注意什麼?

那麼在引進FOSS的專案時,我們需要注意什麼呢?對此不同的人有不同的答案。對此,我的看法是:

  1. 需要了解FOSS專案許可
  2. FOSS專案是否符合自己的需求。
  3. FOSS專案是否有人維護。
  4. FOSS專案的成熟度,社群的熱度。
  5. FOSS專案的質量。
  6. FOSS專案的繼承難度係數,以及是否能提高開發效率。

本文只關注這裡的第一步:FOSS專案許可證。為什麼把許可證放在第一條呢?因為我覺得如果許可證都不合適,下面其他要素不用考慮了。

License的重要性

無論作為個體還是公司,我們引進FOSS專案時,首先必須要考慮License的問題,如果不注意License的問題,自己的專案有可能會侵權,可能會把自己或者公司陷入法律風險的境地,如果真的這種事情發生,解決起來很麻煩。

一般怎麼處理呢?首先如果是個體,我們必須把常見的License型別瞭解清楚,如果是公司,需要有法務部門來稽核,但是一般公司可能沒有法務部門,那需要開發人員自己去把握。我清楚的記得,在前東家裡,我配合公司的法務部門核查每個專案使用FOSS專案的情況,就是為了讓專案和公司不處於被動地位。(其實我也親身碰到過專利侵權問題,不過不在本文之內)。

所以,我們在引進FOSS專案時,一定要仔細專案的許可證,我們自己得有法律意識,這根弦必須得繃住

License型別

現在開源專案的型別實在太多了,參看這裡http://www.gnu.org/licenses/license-list.html, 估計有百種左右。但是,我們常見的許可證型別有以下幾種

我們常見的軟體是什麼型別呢?我們看看:

  • 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,以圖勝千言。

 

相關文章