GNU是組織,這個就不說了常見的開源版權有兩種,GPL和LGPL GPL的要求是:若是你經過修改GPL軟件的代碼或者用庫的方式使用GPL軟件的話,那麼你所開發的軟件必須遵循GPL,也就是說必須公開源代碼。好比你將一個GPL的程序修改以後給公司用,那麼你修改以後的東西必須開放源代碼;若是你的網站使用了一個GPL的ActiveX控件,那麼整個網站必須開放源代碼。而LGPL的要求是:若是經過修改LGPL來作軟件,那麼開發的軟件必須遵循LGPL;但若是經過庫的方式使用LGPL軟件,則無需遵循LGPL。仍是上面那個例子,修改LGPL的話一樣要開放源碼,而使用LGPL的ActiveX控件則無需開放源碼。若是你不但願開源,那麼 1. GPL的一切不能用; 2. LGPL的,在不修改其源代碼的前提下可使用。
內部使用均可以用, 我所瞭解的, GPL/LGPL只對對外發布的軟件產品有要求. GPL的要求的是, 開發者要發佈的產品中包含以GPL發佈的產品, 開發者就必需以GPL發佈. LGPL會寬鬆, 若是發佈的產品包含以LGPL發佈的已編譯產品, 能夠不用GPL發佈. 而在開發中使用了GPL/LGPL開發產品, 但產品中並不包含的話, 就不要求以GPL發佈. 若是開發的軟件只是內部使用, 不對外發布的話, 那GPL沒有約束(大多協議都沒有這個要求). 還有其它的一些開源協議: BSD, Apache協議, Mozilla協議, PHP協議, 等等.
動態鏈接使用到了某個GPL下的文件,是不須要公佈源代碼的。且要求源代碼只針對你的用戶,而不是針對全部人公佈。
本文給出了一些指導性的意見和建議,用於幫助用戶在產品開發中遵循自由軟件的許可證條款,並避免出現違反自由軟件許可證的狀況發生。
1.若是您不接受 GPL/LGPL 許可證,請勿使用任何遵循該許可證條款發佈的軟件。若是您在本身的產品中使用了 GPL/LGPL 軟件,則說明您已經接受了 GPL/LGPL 許可證中定義的全部條款,並有義務向產品的最終用戶提供源代碼——不管該源代碼是否通過您的修改。若是通過了您本身的修改,則必須公開「衍生做品」的源代碼,並以相同的許可證條款發佈。
2.當您從 GPL/LGPL 軟件中拿出 10 行以上的源代碼用於本身的做品中時,則您的做品將成爲該 GPL/LGPL 軟件的衍生做品,不管您的做品的總體代碼規模有多大。所以,若是您不打算將本身的做品做爲自由軟件發佈,則應該遠離自由軟件代碼,以避免由於受到自由軟件代碼的影響而編寫出和這些軟件相相似的代碼。
3.若是在您的做品中使用了 GPL/LGPL 軟 件,但沒有對這些軟件作任何修改,則能夠在產品手冊或者其餘相似的文檔中、程序界面上或者幫助信息中指明您使用的自由軟件名稱、版權擁有者以及可以獲取該 自由軟件所有源代碼的公共網站或第三方。若是由於某種緣由,最終用戶沒法從您提到的第三方或者公共網站上得到該自由軟件的源代碼,您應該擔負提供源代碼的 責任和義務。
4.GPL/LGPL 條款賦予您修改做品的權利,經修改以後的做品稱爲「衍生做品」。當您的衍生做品以某種方式發佈時(典型狀況就是用於您的產品中),您必須依照 GPL/LGPL 許可證發佈您的衍生做品。固然,一種更加可取的辦法是,將本身所作的修改提交給原始做品的維護者,並由該維護者負責發佈,而您在產品中始終使用由維護者發佈的做品。
5.自由軟件不等於免費。提供自由軟件的人能夠要求您支付必定的費用,該費用一般有兩層含義:第一,自由軟件以某種介質發行時,該介質的製做、發佈等費用;第 二,當您但願得到對某自由軟件的技術支持、缺陷修正等服務,要求某我的或組織提供相應的產品質量擔保時,該組織或我的能夠要求您就質量擔保收取服務費用, 甚至是專有軟件產品慣用的使用許可費用。這裏提到的組織或我的是任何遵循上述自由軟件許可證條款發佈自由軟件、並向您提供質量擔保的組織或我的,並不限於 自由軟件做品的做者或主要的版權擁有人。
6.對 LGPL 條款的自由軟件(一般是函數庫)的「正常使用」,一般的理解是,始終以動態連接的形式連接這個函數庫——若是以靜態的方式連接,將使該函數庫成爲您做品的一部分,從而使之成爲該函數庫的衍生做品。但實質上,LGPL 許可證的宗旨和精神是禁止將自由軟件成爲專用和獨享的軟件,而至少應該確保其餘軟件也能經過某種途徑使用這個函數庫的接口。固然,靜態連接顯然違背了上述精神和宗旨,從而是不容許將私有做品和 LGPL 函數庫靜態連接在一塊兒。但若是您的產品沒有提供任何擴展功能,而只能由您本身的私有做品使用其中包含的某 LGPL 函數庫,這無異於將該函數庫靜態連接到您本身的私有做品中。所以,咱們認爲這種狀況下,您的做品是該函數庫的「衍生做品」——不管您的做品經過靜態連接仍是經過動態連接的方式連接該 LGPL 函數庫。
上述這種狀況常常會出如今嵌入式系統中。在這種狀況下,您能夠有以下選擇:
* 以動態連接方式連接 LGPL 函數庫,併爲您的產品提供擴展接口及程序上載接口,以便用戶或者其餘人可以對該產品進行擴展。
* 最簡單的方式:將衍生做品置於 LGPL 條款下發布。
* 和 LGPL 條款的版權擁有人聯繫,看看是否可以以其餘許可證方式受權您在本身的產品中使用該函數庫,而沒必要遵循 LGPL 條款使本身的做品成爲衍生做品。許多自由軟件爲商業用戶提供另一種可選的許可方式。
* 固然,若是您以爲麻煩,能夠選擇不使用任何自由軟件。
什麼是 GPL、LGPL 和 GFDL?它們和源代碼以及商業銷售之間的關係是什麼?
GPL 是 GNU General Public License (GNU 通用公共許可證)的縮寫形式;
LGPL 是 GNU Lesser General Public License (GNU 寬通用公共許可證)的縮寫形式,舊稱 GNU Library General Public License (GNU 庫通用公共許可證);
GFDL 是 GNU Free Documentation License (GNU 自由文檔許可證)的縮寫形式。它們是自由軟件(Free Software)的通用版權認證協議,由自由軟件基金會(FSF)制定和發佈。
基於 GPL 的軟件容許商業化銷售,但不容許封閉源代碼。
若是您對遵循 GPL 的軟件進行任何改動和/或再次開發並予以發佈,則您的產品必須繼承 GPL 協議,不容許封閉源代碼。
基於 LGPL 的軟件也容許商業化銷售,但不容許封閉源代碼。
若是您對遵循 LGPL 的軟件進行任何改動和/或再次開發並予以發佈,則您的產品必須繼承 LGPL 協議,不容許封閉源代碼。可是若是您的程序對遵循LGPL 的軟件進行任何鏈接、調用而不是包含,則容許封閉源代碼。函數