1. 程式人生 > >終於理解了什麼是LGPL

終於理解了什麼是LGPL

GPL

我 們很熟悉的Linux就是採用了GPL。GPL協議和BSD, Apache Licence等鼓勵程式碼重用的許可很不一樣。GPL的出發點是程式碼的開源/免費使用和引用/修改/衍生程式碼的開源/免費使用,但不允許修改後和衍生的代 碼做為閉源的商業軟體釋出和銷售。這也就是為什麼我們能用免費的各種linux,包括商業公司的linux和linux上各種各樣的由個人,組織,以及商 業軟體公司開發的免費軟體了。

GPL協議的主要內容是隻要在一個軟體中使用(”使用”指類庫引用,修改後的程式碼或者衍生程式碼)GPL 協議的產品,則該軟體產品必須也採用GPL協議,既必須也是開源和免費。這就是所謂的”傳染性”。GPL協議的產品作為一個單獨的產品使用沒有任何問題, 還可以享受免費的優勢。

由於GPL嚴格要求使用了GPL類庫的軟體產品必須使用GPL協議,對於使用GPL協議的開原始碼,商業軟體或者對程式碼有保密要求的部門就不適合整合/採用作為類庫和二次開發的基礎。

其它細節如再發布的時候需要伴隨GPL協議等和BSD/Apache等類似。

LGPL

LGPL 是GPL的一個為主要為類庫使用設計的開源協議。和GPL要求任何使用/修改/衍生之GPL類庫的的軟體必須採用GPL協議不同。LGPL 允許商業軟體通過類庫引用(link)方式使用LGPL類庫而不需要開源商業軟體的程式碼。這使得采用LGPL協議的開原始碼可以被商業軟體作為類庫引用並 釋出和銷售。

但是如果修改LGPL協議的程式碼或者衍生,則所有修改的程式碼,涉及修改部分的額外程式碼和衍生的程式碼都必須採用LGPL協議。因 此LGPL協議的開源 程式碼很適合作為第三方類庫被商業軟體引用,但不適合希望以LGPL協議程式碼為基礎,通過修改和衍生的方式做二次開發的商業軟體採用。

GPL/LGPL都保障原作者的智慧財產權,避免有人利用開原始碼複製並開發類似的產品。

===========================================

讀書筆記:採用LGPL的程式碼,一般情況下它本身就是一個第三方庫(別忘了LGPL最早的名字就是Library GPL),這時候開發人員僅僅用到了它的功能,而沒有對庫本身進行任何修改,那麼開發人員也不必公佈自己的商業原始碼。但是如果你修改了這個庫的程式碼,那麼對不起,你修改的程式碼必須全部開源,並且協議也是LGPL,但除了庫原始碼之外的商業程式碼,仍不必公佈。我是這樣理解的,呵呵。以前一直以為LGPL就是商業用的時候要購買,個人用就不必購買,原來搞錯了。

相關推薦

終於理解什麼是LGPL

GPL我 們很熟悉的Linux就是採用了GPL。GPL協議和BSD, Apache Licence等鼓勵程式碼重用的許可很不一樣。GPL的出發點是程式碼的開源/免費使用和引用/修改/衍生程式碼的開源/免費使用,但不允許修改後和衍生的代 碼做為閉源的商業軟體釋出和銷售。這也就是

TCP為什麼是三次握手,不是四次或兩次,終於理解

過往 我很久以前就看過三次握手和四次揮手的部落格,但根本沒懂,直到最近為了面試再看,也是僅僅知道過程,至於面試中的為什麼需要三次握手,而不是四次或兩次?,網上的部落格千千萬,國內外的,我還是一直沒有理解,知道今天看了學校發的教科書上的解釋,這才理解了. 解惑 我寫下這些,

終於理解RNN裡面的time_step

上週寫了一篇文章介紹了一下RNN的幾種結構,今天就來聊一聊如何在TensorFlow中實現這些結構,這篇文章的主要內容為:一個完整的、循序漸進的學習TensorFlow中RNN實現的方法。這個學習路徑的曲線較為平緩,應該可以減少不少學習精力,幫助大家少走彎路。一些可能會踩的坑TensorFlow原始碼分析一個

終於理解什麼是c/c++執行時庫,以及libcmt msvcrt等內容

在各個版本的編譯器中,我們可以通過配置選項來設定程式使用的C和C++執行時庫的型別。如下圖(其他版本編譯器大同小異):MT選項:連結LIB版的C和C++執行庫。在連結時就會在將C和C++執行時庫整合到程式中成為程式中的程式碼,程式體積會變大。 MTd選項:LIB的除錯版。 M

終於理解VT虛擬化技術的作用!(內詳)

原文出處: http://news.sanhaostreet.com/New ... 6261759506062.shtml 呵呵!黑友們是不是看到這麼長的文章已經開始頭暈了啊?!呵呵 不好意思!可原文就是這麼長啊! 所以呢,我還是先把結論寫出來,有興趣想詳細瞭解的就往下

終於理解函式式技術

今天在隨便看一些文章及思考的時候,突然就悟到了,這種感覺就象當年某一天領悟了面向物件。哈哈,我終於打通了任督二脈. 順便看下,園齡剛好10年了。 當年理解面向物件後隨手寫了這篇: http://www.cnblogs.com/DSharp/archive/2005/01/28/98632.html 面

終於理解MVC模式

經過仔細研究”第一步”的聯絡人表的系統,終於弄明白了所謂單例模式,所謂MVC模式,即資料層,控制層和顯示層分離,脫偶的模式.總結一下:Flex的所謂富客戶端不是基於時間線的,所有資料傳遞都要基於事件,比如點選滑鼠,鍵盤按鈕之類的,還有非可視層的事件,比如某單例型別的例項的資料變化了,由次例項廣播各種不同型別

非對稱加密,我終於理解

北京的Bob發了一個快遞到廣州的Alice,途中經過了上海,上海快遞中心出現了一個黑客H,他偷偷打開了Bob給Alice的快遞,然後偷偷把裡邊的衣服剪爛,再按照原樣包裝好發往廣州,可以看到對於這樣簡單包裝的傳輸在中途是可以偷偷修改裡邊的東西。 HTTP的資料包是明文傳輸,也即

(轉)非對稱加密,我終於理解

原地址:http://blog.csdn.net/xiaoy20618/article/details/47083837 北京的Bob發了一個快遞到廣州的Alice,途中經過了上海,上海快遞中心出現了一個黑客H,他偷偷打開了Bob給Alice的快遞,然後偷偷把裡邊的衣

終於理解單列模式,單列模式和多執行緒

//1、單例類確保自己只有一個例項(構造方法私有化)//2、單例類必須自己建立自己的例項。//3、單例類必須為其他物件提供唯一的例項。package Singleton;//懶漢式  單例例項在第一次被使用時構建,延遲初始化。public class singleton { 

AngularJS單頁面路由配置恩,理解就很簡單啦

gif htm con function ner 創建 app 插入 樣式 利用route實現單頁面跳轉功能 利用angularJS開發流程 1)配置好angularJS開發環境 2)利用 yo angular projectname創建項目目錄 3)刪除

吃偉哥、看A片也沒反應的腎虛、陽痿早泄終於!粗長強硬!真實經歷分享,男同胞必看!

經歷 效果 診斷 海綿體 必看 習慣 tro 毫無 那種 真實講述:14年腎虛陽痿早泄史,本來已經不抱希望,卻沒想到能在兩個月裏徹底根治!以前看到“陽痿早泄”這種字眼,我都低著頭走,因為那是我心頭的痛!現在我終於有自信談論這個話題!跟大家分享一下我雄起的過程! 說一下我之前

Glide終於解決同時加載webp格式圖片的問題

測試 ide 4.0 api web picasso 問題 net 今天 前端時間,要給項目換個圖片加載的庫,使用Glide 3.7版本進行測試, 發現在快速滑動列表(每個item都會加載一個app的圖標,采用webp格式,即同時加載多個webp格式)的時候,一屏至少有2

50天!3家!共享單車終於開始“大逃亡”

共享單車還記得當年的“千團大戰”麽?慘烈至極、血流成河。但最終,僅剩下美團和大眾點評——二者還合二為一了。與其相似的,還有共享打車行業、社交行業、信息分類行業等。國內特殊的互聯網形勢決定了,在一條賽道上只能容下數名大佬參賽者比拼,其余的在半路上就會被提前淘汰出局。而在目前火爆的共享單車行業,似乎也要“擰幹水分

RESTful轉載,多看幾遍就理解寫點自己的看法和理解

類型 delete 標識 class 請求 source 通用 添加 架構 要理解資源路由就要理解什麽是RESTful。如果一個架構符合REST(即Representational State Transfer的縮寫,意為表現層狀態轉化)原則,就稱它為RESTful架構。

共享飛機終於!但想普及並不是短時間的事兒

共享飛機共享經濟發展的速度、廣度和深度等,都足以讓業界和大眾瞠目結舌。既有共享單車、共享出行等已經凸顯自身潛力的共享項目,也有共享籃球、共享健身倉、共享雨傘等聚焦於小眾群體的形式。而迅猛發展的共享經濟似乎也變成了奪人眼球的“噱頭”,朝著匪夷所思的方向房展。共享寶馬、共享法拉利之後,共享飛機也終於出現了!就在九

郁悶幾天的問題終於解決

ner bsp typealias clas ble work pri fault fresh 嚴重: Exception sending context initialized event to listener instance of class org.springf

ssh: Could not resolve hostname問題終於解決

tool dfs option bsp 錯誤 pan res fix -h 1、如果系統為64位,無法啟動啟動hdfs: ./sbin/start-dfs.sh。並有以下錯誤: sed: -e expression #1, char 6: unknown option t

Python 的深淺拷貝 終於明白

python 深淺拷貝 python 深淺拷貝不之前一直不太理解,只是概念性的理解像 1,2 所說,敲完下面代碼希望你可以理解。1、copy.copy 淺拷貝 只拷貝父對象,不會拷貝對象的內部的子對象。2. copy.deepcopy 深拷貝 拷貝對象及其子對象>>> import c