作者:游云庭律師
鏈接:https://www.zhihu.com/question/19568896/answer/12284793
來源:知乎
著作權歸作者所有,轉載請聯(lián)系作者獲得授權。
GPL協(xié)議、LGPL協(xié)議與BSD協(xié)議的法律區(qū)別。
簡而言之,GPL協(xié)議就是一個開放源代碼協(xié)議,軟件的初始開發(fā)者使用了GPL協(xié)議并公開軟件的源程序后,后續(xù)使用該軟件源程序開發(fā)軟件者亦應當根據(jù)GPL協(xié)議把自己編寫的源程序進行公開。GPL協(xié)議要求的關鍵在于開放源程序,但并不排斥軟件作者向用戶收費。雖然如此,很多大公司對GPL協(xié)議還是又愛又恨,愛的是這個協(xié)議項下的軟件歷經(jīng)眾多程序員千錘百煉的修改,已經(jīng)非常成熟完善,恨的是必須開放自己后續(xù)的源程序,導致競爭對手也可以根據(jù)自己修改的源程序開發(fā)競爭產(chǎn)品。
正因大公司對GPL協(xié)議在商業(yè)上存在顧慮,因此,另兩種協(xié)議被采用的更多,第一種是LGPL(亦稱GPL V2)協(xié)議,可以翻譯為更寬松的GPL協(xié)議。與GPL協(xié)議的區(qū)別為,后者如果只是對LGPL軟件的程序庫的程序進行調用而不是包含其源代碼時,相關的源程序無需開源。調用和包含的區(qū)別類似在互聯(lián)網(wǎng)網(wǎng)網(wǎng)頁上對他人網(wǎng)頁內容的引用:如果把他人的內容全部或部分復制到自己的網(wǎng)頁上,就類似包含,如果只是貼一個他人網(wǎng)頁的網(wǎng)址鏈接而不引用內容,就類似調用。有了這個協(xié)議,很多大公司就可以把很多自己后續(xù)開發(fā)內容的源程序隱藏起來。
第二種是BSD協(xié)議(類似的還有MIT協(xié)議)。BSD協(xié)議鼓勵軟件的作者公開自己后續(xù)開發(fā)的源代碼,但不強求。在BSD協(xié)議項下開發(fā)的軟件,原始的源程序是開放源代碼的,但使用者修改以后,可以自行選擇發(fā)布源程序或者二進制程序(即目標程序),當然,使用者有義務把自己原來使用的源程序與BSD協(xié)議在軟件對外發(fā)布時一并發(fā)布。因為比較靈活,所以BSD深受大公司的歡迎。
作者:狂男風
鏈接:https://www.zhihu.com/question/31946929/answer/54644435
來源:知乎
著作權歸作者所有,轉載請聯(lián)系作者獲得授權。
GCC 中,STL 的實現(xiàn)是 libstdc++。
https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.license.any_program
2.2. So any program which uses libstdc++ falls under the GPL?
No. The special exception permits use of the library in proprietary applications.
程序使用該庫并不會被 GPL 傳染。特別例外條款允許在專屬(或者翻譯成專利?)軟件中使用該庫。
https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.license.what_restrictions
2.4. I see. So, what restrictions are there on programs that use the library?
None. We encourage such programs to be released as free software, but we won't punish you or sue you if you choose otherwise.
使用該庫的軟件沒有任何約束,我們鼓勵程序以自由軟件發(fā)布,如果你選擇了其它協(xié)議我們也不會為難你。
再來看看例外條款:
https://gcc.gnu.org/onlinedocs/libstdc++/manual/license.html
When you use GCC to compile a program, GCC may combine portions of
certain GCC header files and runtime libraries with the compiled
program. The purpose of this Exception is to allow compilation of
non-GPL (including proprietary) programs to use, in this way, the
header files and runtime libraries covered by this Exception.
當使用 GCC 編譯程序,GCC 將會把一部分 GCC 的頭文件和運行庫與目標程序組合在一起。這個例外的目的是允許非 GPL 程序可以這樣使用。換句話說,頭文件和運行庫的使用被這種例外情況所涵蓋。
不過這種例外不是無限制的,只有程序是獨立模塊才能算作例外。具體可看上面授權許可協(xié)議鏈接的詳細規(guī)定。