GitHub如何選擇合適的license(許可證)


license譯為許可證,也可作為開源協議,它可以將自己創作的東西,授權給他人使用,並約定了使用者可以有的權利和必須遵從的義務。現在很多優秀的開源項目都有設置license,不同的license所約束的條件也不同。因此開源不等於免費,開源也不等於沒有約束。

對於大型的軟件可能都有專門的律師團隊去撰寫軟件協議。可是作為一名開發人員,有時候我們想開源自己的項目,但又不想自己的源代碼被隨意借鑒或者分享到別處。這個時候我們就可以設置license去約束一些行為。

但是協議往往需要具備專業的知識,它涉及到了法律規則,普通人不可能在短時間內就掌握這些知識。這時候我們可以選擇一些流行的開源協議去滿足項目的需求。

快速選擇流行的license

在創建項目的時候,我們可以選擇一個license,可以看到有很多流行的開源協議可以選擇。

下文將以GitHub這份協議做簡單的介紹,給項目快速選擇一個合適的協議。

各協議介紹

協議 簡述
Apache 允許他人修改源代碼后再閉源,但是必須對每個修改過的文件做版權說明
GPL3 無論以何種方式修改或者使用代碼,都需要開源
MIT 允許他人修改源代碼后再閉源,不用對修改過的文件做說明,且二次開發的軟件可以使用原作者的名字做營銷
BSD2/BSD3 和上面一條類似,但未經事先書面許可,不得使用版權所有者的姓名或其貢獻者的姓名來推廣
BSL 和GPL類似,但不需要復制版權信息
CCZ 放棄創作的作品版權權益,並將其奉獻給大眾,不對代碼做任何擔保
EPL 與GPL類似,有權使用、修改、復制與發布軟件原始版本和修改后版本,但在某些情況下則必須將修改內容一並釋出
AGPL GPL拓展,使用在線網絡服務的也需要開源
GPL2 和GPL3相比,如果使用代碼作為服務提供,而不分發軟件,則不需要開源
LGPL 和GPL相比,LGPL允許商業軟件通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟件的代碼
Mozilla 與LGPL類似,但是需要對修改過的源碼內容做說明
Unlicense 與CCZ相似,且開放商標和所用的專利授權

關於BSL和GPL的區別介紹 >> https://www.boost.org/users/license.html

不選擇協議

並不是一定要在項目中添加協議的。但如上文所討論過的優點,如果你想把代碼分享出來,又想約束一些行為,最好還是選擇一個適合的開源協議。不選擇協議可以讓發布者保留作品的解釋權,不允許他人分發,復制或二次開發。但是部分網站會有特有的協議,例如當你將代碼發布到GitHub上,會默認公開的項目可以自由的查看和fork。

總結

  • MIT可以說是很寬松的一個協議了,它是目前很常用的一個開源協議,它允許對代碼做任何形式的修改和宣傳
  • GPL鼓勵免費,著名的Linux使用的就是這個協議,這使得它成為時下熱門的一個協議
  • BSD不允許不經書面許可借原作者進行推廣,如果介意其他人的項目推廣自己的話可以選擇這個協議


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM