天天看點

各種開源協定的詳細介紹

GPL

在自由軟體所使用的各種許可證之中,最為人們注意的也許是通用性公開許可證(General Public License,簡稱GPL)。

GPL同其它的自由軟體許可證一樣,許可社會公衆享有:運作、複制軟體的自由,發行傳播軟體的自由,獲得軟體源碼的自由,改進軟體并将自己作出的改進版本向社會發行傳播的自由。 

GPL還規定:隻要這種修改文本在整體上或者其某個部分來源于遵循GPL的程式,該修改文本的 整體就必須按照GPL流通,不僅該修改文本的源碼必須向社會公開,而且對于這種修改文本的流通不準許附加修改者自己作出的限制。是以,一項遵循GPL流通 的程式不能同非自由的軟體合并。GPL所表達的這種流通規則稱為copyleft,表示與copyright(版權)的概念“相左”。

GPL協定最主要的幾個原則:

1、確定軟體自始至終都以開放源代碼形式釋出,保護開發成果不被竊取用作商業發售。任何一套軟 件,隻要其中使用了受 GPL 協定保護的第三方軟體的源程式,并向非開發人員釋出時,軟體本身也就自動成為受 GPL 保護并且限制的實體。也就是說,此時它必須開放源代碼。

2、GPL 大緻就是一個左側版權(Copyleft,或譯為“反版權”、“版權屬左”、“版權所無”、“版責”等)的展現。你可以去掉所有原作的版權 資訊,隻要你保持開源,并且随源代碼、二進制版附上 GPL 的許可證就行,讓後人可以很明确地得知此軟體的授權資訊。GPL 精髓就是,隻要使軟體在完整開源 的情況下,盡可能使使用者得到自由發揮的空間,使軟體得到更快更好的發展。

3、無論軟體以何種形式釋出,都必須同時附上源代碼。例如在 Web 上提供下載下傳,就必須在二進制版本(如果有的話)下載下傳的同一個頁面,清楚地提供源代碼下載下傳的連結。如果以CD光牒形式釋出,就必須同時附上源檔案的CD光牒。

4、開發或維護遵循 GPL 協定開發的軟體的公司或個人,可以對使用者收取一定的服務費用。但還是一句老話——必須無償提供軟體的完整源代碼,不得将源代碼與服務做捆綁或任何變相捆綁銷售。

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

LGPL

GNU 較寬松公共許可證

1999.2, 第 2.1 版

版權所有 (C) 1991, 1999 Free Software Foundation, Inc.

59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

允許每個人複制和釋出本授權檔案的完整副本,

但不允許對它進行任何修改。

[這是第一次發表的較寬松公共許可證 (Lesser GPL) 版本。它同時也可視為 GNU 函數庫公共許可證 (GNU Library Public License) 第 2 版的後繼者,故稱為 2.1 版]

本版本由 Leo-Hong (leohca (at) yahoo.com) 翻譯整理, Chao-Hong Liu 校正.

導言

大多數軟體許可證決意剝奪您共享和修改軟體的自由。相反的,GNU 通用公共許可證力圖保證您共享和修改自由軟體的自由 —— 保證自由軟體對所有使用者都是自由的。

這個許可證,較寬松公共許可證,适用于一些由自由軟體基金會與其他決定使用此許可證的軟體作者,所特殊設計的軟體套件 —— 象是函數庫。您也可以使用它,但我們建議您事先仔細考慮,基于以下的說明是否此許可證或原來的通用公共許可證在任何特殊情況下均為較好的方案。

當我們談到自由軟體時,我們所指的是自由,而不是價格。我們的 GNU 通用公共許可證是設計用以確定使您有釋出自由軟體備份的自由(如果您願意,您可以對此項服務收取一定的費用);確定您能收到程式原始碼或者在您需要時能得 到它;確定您能修改軟體或将它的一部分用于新的自由軟體;而且還確定您知道您可以做上述的這些事情。

為了保護您的權利,我們需要作出限制:禁止任何人否認您上述的權利,或者要求您放棄這些權利。如果您釋出軟體的副本,或者對之加以修改,這些規定就轉化為您的責任。

例如,如果您釋出此函數庫的副本,不管是免費還是收取費用,您必須将您享有的一切權利給予接受者;您必須確定他們也能收到或得到原始程式碼;如果您将此函數庫與其他的程式碼連結,您必須提供完整的目的對象檔案和程式(object file)給接受者,則當他們修改此函數庫并重新編譯過後,可以重新與目的檔連結。您并且要将這些條款給他們看,使他們知道他們有這樣的權利。

我們采取兩項措施來保護您的權利: (1)用版權來保護函數庫。并且,(2)我們提供您這份許可證,賦予您複制,釋出和(或)修改這些函數庫的法律許可。

為了保護每個釋出者,我們需要非常清楚地讓每個人明白,自由函數庫是沒有擔保責任的。如果由于某人修改了函數庫,并繼續加以傳播,我們需要它的接受者明白:他們所得到的并不是原始的版本。故由其他人引入的任何問題,對原作者的聲譽将不會有任何的影響。

最後,由于軟體專利不斷地威脅自由軟體的存在,我們希望商業公司無法藉由自專利持有者取得一個受限的許可證,而有效地限制自由軟體的使用者。是以,我們堅持一個函數庫所能取得的任何專利,必須與本許可證所聲明的“完全自由使用”一緻。

<20040222> 

大部分的 GNU 軟體,包括一些函數庫,是受到原來的 GNU 通用公共許可證的保護。本許可證, GNU 較寬松通用公共許可證,适用于特殊設計的函數庫,且與原來的通用公共許可證有很大的不同。我們在特定的函數庫中使用它,以準許非自由的程式可以與這些函數 庫連結。 當一個程式與一個函數庫連結,不論是靜态連結或使用共享函數庫,二者的結合可以合理地說是結合的作品,一個原來的函數庫的衍生品。是以,原來的通用公共許 可證隻有在整個結合品滿足其自由的标準時,才予許連結。較寬松通用公共許可證則以更寬松的标準允許其他程式碼與本函數庫連結。

我們稱此許可證 "較寬松" 通用公共許可證,是因為它比起原來的通用公共許可證對使用者的自由做到較少的保護。在與非自由軟體競争時,它也提供其他自由軟體的寫作者較少的優勢。這些 不利之處正是我們使用原來的通用公共許可證于許多函數庫的理由。然而,較寬松的許可證可在某些特殊場合下帶來好處。 例如,在少數情況下,可能會有特殊的需要而鼓勵大家盡可能廣泛地使用特定的函數庫,因而使它成為實際上的标準。為了達到此目标,必須允許非自由的程式使用 此函數庫。一個較常發生的情況是一個自由的函數庫與一個被廣泛使用的非自由函數庫做相同的工作,在此情況下,限制隻有自由軟體可以使用此自由函數庫不會有 多少好處,故我們如用了較寬松通用公共許可證。

在其他情況下,允許非自由程式使用特定的函數庫,可以讓更多的人們使用自由軟體的大部分。例如,允許非自由程式使用 GNU C 函數庫可以讓更多的人們使用整個 GNU 作業系統,以及它的變形,GNU/Linux 作業系統。

盡管較寬松通用共公許可證對使用者的自由是較少的保護的,它卻能確定與此函數庫連結的程式的使用者擁有自由,而且具有使用修改過的函數庫版本來執行該程式的必要方法。

以下是複制、釋出、以及修改的精确條款與條件。請注意 "基于函數庫的作品" 以及 "使用函數庫的作品" 之間的差異:前者包含來自函數庫修改過的原始碼;而後者則必須與函數庫結合才能執行。

有關複制,釋出和修改的條款和條件

0. 本許可證适用于任何軟體函數庫,或其他包含了由版權所有者加入的注意事項的程式,或其他有公信力的團體宣稱其程式可以在較寬松通用公共許可證 (也稱之為 "本許可證") 的條款下釋出。每一位許可證接受者以 "您" 來稱呼。

一個 "函數庫" 意指一些軟體函數的集合,以及或準備好的資料以友善與應用程式 (其使用了其中某些函數與資料) 連結形成可執行的程式。

以下,"函數庫" 一詞指的是任何在本條款下釋出的這一類軟體函數庫或作品,一個 "基于本函數庫的作品" 意指函數庫或任何在版權法下的衍生作品:也就是說,一個包含了本函數庫或其一部分的作品,可以是原封不動的,或經過修改的,和/或直接翻譯成其他語言 的。(在下文中,翻譯是不受限地包含在 "修改" 的條款中。)

作品的 "原始碼" 意指對作品進行修改最優先擇取的形式。對函數庫而言,完整的原始碼意指所有模組的所有原始程式,加上有關的介面的定義,加上控制函數庫的安裝和編譯的 script。

本許可證條款不适用于複制,釋出和修改以外的活動。這些活動超出這些條款的範圍。使用本函數庫來執行本程式的動作不受條款的限制,而程式的輸出隻有在其内容所構成的作品是基于本函數庫時 (與在什麼樣的工具中使用本函數庫來輸出無關) ,這一條款才适用。以上是否為真則取決于本函數庫具體用來做什麼。

1. 隻要您在每一程式副本上明顯和恰當地宣告版權聲明和不承擔擔保的聲明,并保持此許可證的聲明和沒有擔保的聲明完整無損,并和程式一起給其他每位程式接受者一份許可證的副本,您就可以用任何媒體複制和釋出您收到的函數庫的完整原始碼。

您可以為轉讓副本的實際行動收取一定費用。您也可以選擇提供擔保以換取一定的費用。

2. 隻要您同時滿足下面的所有條件,您就可以按前面第一款的要求修改函數庫的一個或幾個副本或它的任何部分,以此形成基于此函數庫的作品,并且複制和釋出這一經過修改的程式或作品:

被修改的作品本身必須是一個軟體函數庫。

您必須在修改過的檔案中附有明确的說明:您修改了此一檔案及任何修改的日期。

您必須讓整個作品允許第三方在此許可證條款下可以免費使用。

如果修改過的函數庫其某個裝置使用到了「使用本函數庫的應用程式」所提供的函數或資料表格,卻不是當此裝置被呼叫時以參數列傳入時,則您必須确實做到,當應用程式不提供這樣的函數或表格時,則此裝置依舊能工作,且其執行的任何目的仍然有意義。

(例如,一個函數庫的函數用來計算平方根,其目的是有完整的定義且與應用程式是無關的。是以, 2d 小節要求任何本函數會使用的,由應用程式所提供的函數或表格必須是選擇性的:如果應用程式不提供的話,則計算平方根的函數必須依舊能計算平方根)

這些要求适用于整個修改過的作品。如果能夠确定作品的一部分并非本函數庫的衍生産品,且可以合理地單獨考慮并将它與原作品分開的話,則當您将它作為獨立的 作品釋出時,它不受此許可證和其條款的限制。但是當您将這部分與基于本函數庫的作品一同釋出時,則整個套件将受到本許可證條款限制,其對于其他許可證持有 人的使用範圍擴大到整個産品,也就是套件的每個部分,不管它是誰寫的。

是以,本條款的意圖不在于索取權利,或剝奪完全由您完成的作品的權利,而是履行權利來控制基于本函數庫的集體作品或衍生作品的釋出。 此外,将與本函數庫無關的作品和本函數庫 (或基于本函數庫的作品) 一起放在貯存媒體或釋出媒體的同一卷上,并不導緻将其他作品置于此許可證的限制範圍之内。

3. 對于一個函數庫的副本,您可以選擇性地使用原來的 GNU 通用公共許可證上的條款來取代本許可證上的條款。如果您要這麼做,您必須修改所有的參考到本許可證的注意事項,使它們指向原來的 GNU 通用公共許可證,第二版,以取代本許可證(如果有比第二版的原來的 GNU 通用公共許可證更新的版本出現的話,則如果您願意的話可以特别指明使用新版)。請不要對這些注意事項做出其他的改變。

一旦在一個副本上做了這樣的改變,則該副本就無法撤回這樣的改變,故原來的 GNU 通用公共許可證将适用于所有後續的副本以及由此副本衍生出來的作品。

此一選擇性适用于當您想要将一部分的函數庫原始碼複制到一個非函數庫的程式使用時。

4. 您可以以目标碼或可執行形式複制或釋出本函數庫 (或符合第 2 款,基于本函數庫的作品),隻要您遵守前面的第 1、2 款,并同時提供完整的相關機器可讀的原始碼,而這些原始碼必須在前面的第 1 與第 2 款條件下,在一般習慣上用來做軟體交換的媒體上釋出。

如果所釋出的目标碼是由指定的地點提供拷貝索取,那麼由同一地點所提供等價的原始碼拷貝索取可以算作原始碼的釋出,即使第三方不強求與目标碼一起複制原始碼。

5. 一個程式若包含不經任何部分修改的函數庫,但卻是設計經由編譯或連結的方式與本函數庫一同工作者,稱之為 "使用函數庫的作品"。這樣的一個作品,嚴格地說,并非本函數庫的衍生作品,因而不在本許可證的範圍之内。

然而,将 "使用函數庫的作品" 與本函數庫連結而産生可執行程式,則是本函數庫的衍生品 (因為它包函了本函數庫的一部分),而不是 "使用函數庫的作品",是以其可執行程式包含在本許可證的範圍内。第 6 款說明了釋出此可執行程式的條款。

當 "使用函數庫的作品" 使用了函數庫部分的标頭檔内容時,則此作品即使其原始碼不屬于本函數庫的衍生品,但其目标碼仍然是。這一點是否為真特别在是否本作品可以在不需要本函數庫即可連結,或者是否該作品本身也是一個函數庫時特别明顯。

如果這樣的目标檔隻使用數字參數、資料結構層級與附屬品、以及小巨集和小内□式 (小于或等于十行) ,則此目标檔的使用是不受限的,不論是否它是合法的衍生作品。 (但可執行程式若包函此目标檔以及一部分的函數庫,仍然将在第 6 款的規定下)

否則的話,如果本作品是本函數庫的衍生品,您必須在第 6 款的規定下釋出該作品的目标碼。任何包含該作品的可執行程式也在第 6 款的範圍内,不論它們是否直接與本函數庫連結。

6. 做為上述條款的例外情況,您也可以将 "使用函數庫的作品" 與本函數庫結合或連結,以産生包含部分本函數庫的作品,并在允許使用者自身使用時可以修改該作品,以及在對修改進行反組譯除錯的情況下,您可以依照您的選擇釋出該作品。

您必須在每個作品的副本突顯出如下的注意事項:本函數庫在作品中被使用,以及本函數庫以及它的使用是在本許可證的規定下。您必須提供本許可證的副本。如果 該作品在執行時顯示版權聲明,您必須在其中包含本函數庫的版權聲明,以及指引使用者取得本許可證的副本。同時,您必須做到以下其中一件事: 

必須将完整的機器可讀的函數庫原始碼包含在該作品中,包括任何該作品使用到的改變 (這些改變必須在前述第 1 與第 2 款的要求下釋出);而且,如果該作品是一個與函數庫連結的「完整的、機器可□的 "使用函數庫的作品"」,則要有目标碼和/或原始碼,如此使用者可以修改本函數庫且可以重新連結,以産生包函修改過的函數庫的修改過的可執行程式。 (理所當然的若使用者修改了函數庫的檔案定義内容時,則該作品不必然可以重新編譯以使用修改過的定義。)

在與函數庫連結時使用适當的分享函數庫連結機制。一個适當的機制是: (1) 在執行時使用已存在于使用者的電腦中的函數庫副本,而不是将函數庫的函數複制到可執行程式裡,以及 (2) 如果使用者安裝了一份修改過的函數庫,隻要修改過的版本在介面上與該作品在編譯連結時所用的版本是相容的,則該執行程式可以與修改過的函數庫運作良好。

在該作品内提供書面報價,有效期不少于三年,以提供同樣的使用者上述第 6a 款中的内容,費用不得超過該程式釋出的實際成本。 如果所釋出的作品是由指定的地點提供拷貝索取,則由同一地點提供上述内容的等價拷貝索取。

确定使用者已經收到該作品的一份複制,或是您已經寄給該使用者一份複制品。

對于一個可執行程式,其所需的 "使用函數庫的作品" 的形式必須包括任何要從中再産生可執行程式時所需的資料與工具程式。然而,有一個特殊例外,其所釋出的内容不需要包括任何一般與「可執行本程式的作業系統」的主要部分 (如編譯器、核心等) 一起釋出的部分 (不論是原始碼或可執行碼),除非這些組成部分和可執行作品結合在一起。

有一個可能情況是,這些要求與其他通常不與作業系統在一起的私有函數庫的版權限制相抵觸,這樣的抵觸表示您不能将它們與本函數庫一起用于您釋出的可執行程式中。

7. 您可以将使用本函數庫的函數庫裝置,以及其他不在本許可證範圍内的函數庫,對等地放入一個單獨的函數庫中,并在基于本函數庫的作品以及其他函數庫在其他狀态下同意可以個别釋出,以及您做到以下兩點的情況下,您可以釋出此結合的函數庫:

将基于本函數庫的作品單獨不與其他函數庫裝置結合地,與此結合的函數庫一同釋出。該作品必須在上述條款的規定下釋出。

在此結合的函數庫中明顯地指出其中一部分的作品是基于本函數庫,并且說明那裡可以找到同樣不具結合形式的作品。 

8. 除非您明确按許可證提出的要求去做,否則您不能複制、修改、轉發許可證、與本函數庫連結、和釋出本函數庫。任何試圖用其他方式複制、修改、轉發許可證、與 本函數庫連結、和釋出本函數庫是無效的,而且将自動結束許可證賦予您的權利。然而,對那些從您那裡按許可證條款得到副本和權利的人們,隻要他們繼續全面履 行條款,許可證賦予他們的權利仍然有效。

9. 您沒有在許可證上簽字,因而您沒有必要一定接受此一許可證。然而,沒有任何其他東西賦予您修改和釋出本函數庫及其衍生作品的權利。如果您不接受許可證,這些行為是法律禁止的。是以,如果您修改或釋出函數庫 (或任何基于函數庫的作品) ,您就表明您接受這一許可證以及它的所有有關複制、釋出和修改本函數庫或基于它的作品的條款和條件。

10. 每當您重新釋出函數庫 (或任何基于函數庫的作品) 時,接受者自動從原始許可證頒發者那裡接到受這些條款和條件支配的複制、釋出、連結或修改本函數庫的許可。您不可以強迫接受者履行除了這裡賦予他們的權利之外的其他限制。您也沒有強求第三方履行許可證條款的義務。

11. 如果由于法院判決或違反專利的指控或任何其他原因 (不限于專利問題) 的結果,使得強加于您的條件 (不管是法院判決,協定書或其他) 和許可證的條件有沖突時,他們也不能令您背離許可證的條款。在您不能同時滿足本許可證規定的義務及其他相關的義務來釋出函數庫時,則結果您隻能夠根本不發 布函數庫。例如,如果某一專利許可證不允許所有直接或間接從您那裡接受副本的人們,在不付專利費的情況下重新釋出函數庫,唯一能同時滿足兩方面要求的辦法 是停止釋出函數庫。

如果本條款的任何部分在特定的環境下無效或無法實施,就使用條款的其餘部分,并将這部分條款作為整體用于其他環境。 本條款的目的不在于引誘您侵犯專利或其他财産權的要求,或争論這種要求的有效性。本條款的主要目的在于保護自由軟體釋出系統的完整性。它是通過公共許可證 的應用來實作的。許多人已依賴同是出自此系統的應用程式,經由此系統釋出大量自由軟體而做出慷慨的供獻。作者/捐獻者有權決定他/她是否通過任何其他系統 釋出軟體,許可證持有人不能強加這種選擇。

本節的目的在于明确說明許可證其餘部分可能産生的結果。

12. 如果由于專利或者由于有版權的介面問題使函數庫在某些國家的釋出和使用受到限制,則在許可證限制下的原始版權擁有者可以增加釋出地區的限制條款,将這些國 家明确排除在外,并在這些國家以外的地區釋出函數庫。在這種情況下,許可證套件含的限制條款和許可證正文一樣有效。 13. 自由軟體基金會可能随時出版較寬松通用公共許可證的修改版或新版。新版和目前的版本在原則上保持一緻,但在提到新問題時或有關事項時,在細節上可能出現差 别。

每一版本都有不同的版本号。如果函數庫指定可适用的許可證版本号以及 "任何更新的版本" ,您有權選擇遵循指定的版本或自由軟體基金會以後出版的新版本。如果函數庫未指定許可證版本,您可選擇自由軟體基金會已經出版的任何版本。 14. 如果您願意将函數庫的一部分結合到其他自由程式中,而它們的釋出條件不同,請寫信給作者,要求準予使用。如果是自由軟體基金會加以版權保護的軟體,寫信給 自由軟體基金會,我們有時會作為例外的情況處理。我們的決定受兩個主要目标的指導,這兩個主要目标是:我們的自由軟體的衍生作品繼續保持自由狀态,以及從 整體上促進軟體的共享和重複利用。

沒有擔保

15. 由于函數庫準予免費使用,在适用法準許的範圍内,對函數庫沒有擔保。除非另有書面說明,版權所有者和/或其他提供函數庫的人們 "一樣" 不提供任何類型的擔保,不論是明确的,還是隐含的,包括但不限于可銷售和适合特定用途的隐含保證。全部的風險,如函數庫的品質和性能問題都由您來承擔。如果函數庫出現缺陷,您應當承擔所有必要的服務、修複和改正的費用。

16. 除非适用法或書面協定的要求,在任何情況下,任何版權所有者或任何按許可證條款修改和釋出函數庫的人們都不對您的損失負有任何責任。包括由于使用或不能使用函數庫引起的任何一般的、特殊的、偶然發生的或重大的損失 (包括但不限于資料的損失,或者資料變得不精确,或者您或第三方的持續的損失,或者函數庫不能和其他軟體協調運作等) 。即使版權所有者和其他人提到這種損失的可能性也不例外。

如何将這些條款用到您新的函數庫

如果您開發了新函數庫,而且您需要它得到公衆最大限度的利用,要做到這一點的最好辦法是将它變為自由軟體,使得每個人都能在遵守本條款 (或者是在原來的通用公共許可證的條款) 的基礎上對它進行修改和重新釋出。

為了做到這一點,請将函數庫附上下列聲明。最安全的方式是将它放在每個原始碼檔案的開頭,以便最有效地傳遞拒絕擔保的資訊。每個檔案至少應有 "版權所有" 行以及在什麼地方能看到聲明全文的說明。

用一行空間描述函數庫的名稱和它的用途簡單說明

版權所有 (C) 19XX 作者姓名

這一函數庫是自由軟體,您可以遵照自由軟體基金會出版的 GNU 較寬松通用公共許可證條款來修改和重新釋出這一程式,或者用許可證的第二版,或者 (根據您的選擇) 用任何更新的版本。

釋出這一函數庫的目的是希望它有用,但沒有任何擔保。甚至沒有适合特定目的而隐含的擔保。更詳細的情況請參閱 GNU 較寬松通用公共許可證。

您應該已經和函數庫一起收到一份 GNU 較寬松通用公共許可證的副本。如果還沒有,寫信給:

Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

此外還應加上如何藉由電子郵件或一般信件與您保持聯系的資訊。 

如果需要,您應該取得您的上司 (如果您是程式員) 或您的學校簽署放棄函數庫版權的聲明。下面隻是一個例子,您應該改變相應的名稱:

Yoyodyne 公司以此方式放棄 James Random Hacker 所寫的 `Frob' 函數庫 (用以扭轉 knobs 的函數庫) 的全部版權利益。

Ty coon 簽名,1990.4.1

Ty coon 副總裁

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

Apache Licence

Apache Licence是著名的非盈利開源組織Apache采用的協定。該協定和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再釋出(作為開源或商業軟體)。需要滿足的條件也和BSD類似:

  1. 需要給代碼的使用者一份Apache Licence
  2. 如果你修改了代碼,需要在被修改的檔案中說明。
  3. 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協定,商标,專利聲明和其他原來作者規定需要包含的說明。
  4. 如果再釋出的産品中包含一個Notice檔案,則在Notice檔案中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現為對Apache Licence構成更改。

Apache Licence也是對商業應用友好的許可。使用者也可以在需要的時候修改代碼來滿足需要并作為開源或商業産品釋出/銷售。

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

BSD

BSD開源協定是一個給于使用者很大自由的協定。可以自由的使用,修改源代碼,也可以将修改後的代碼作為開源或者專有軟體再釋出。當你釋出使用了BSD協定的代碼,或者以BSD協定代碼為基礎做二次開發自己的産品時,需要滿足三個條件:

  • 如果再釋出的産品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協定。
  • 如果再釋出的隻是二進制類庫/軟體,則需要在類庫/軟體的文檔和版權聲明中包含原來代碼中的BSD協定。
  • 不可以用開源代碼的作者/機構名字和原來産品的名字做市場推廣。

BSD代碼鼓勵代碼共享,但需要尊重代碼作者的著作權。BSD由于允許使用者修改和重新釋出代碼,也允許使用或在BSD代碼上開發商業軟體釋出和銷 售,是以是對商業內建很友好的協定。很多的公司企業在選用開源産品的時候都首選BSD協定,因為可以完全控制這些第三方的代碼,在必要的時候可以修改或者 二次開發。

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

MPL

MPL是The Mozilla Public License的簡寫,是1998年初Netscape的 Mozilla小組為其開源軟體項目設計的軟體許可證。MPL許可證出現的最重要原因就是,Netscape公司認為GPL許可證沒有很好地平衡開發者對 源代碼的需求和他們利用源代碼獲得的利益。同著名的GPL許可證和BSD許可證相比,MPL在許多權利與義務的約定方面與它們相同(因為都是符合OSIA 認定的開源軟體許可證)。但是,相比而言MPL還有以下幾個顯著的不同之處:

◆ MPL雖然要求對于經MPL許可證釋出的源代碼的修改也要以MPL許可證的方式再許可出來,以保證其他人可以在MPL的條款下共享源代碼。但是,在MPL 許可證中對“釋出”的定義是“以源代碼方式釋出的檔案”,這就意味着MPL允許一個企業在自己已有的源代碼庫上加一個接口,除了接口程式的源代碼以MPL 許可證的形式對外許可外,源代碼庫中的源代碼就可以不用MPL許可證的方式強制對外許可。這些,就為借鑒别人的源代碼用做自己商業軟體開發的行為留了一個 豁口。 

◆ MPL許可證第三條第7款中允許被許可人将經過MPL許可證獲得的源代碼同自己其他類型的代碼混合得到自己的軟體程式。 

◆ 對軟體專利的态度,MPL許可證不像GPL許可證那樣明确表示反對軟體專利,但是卻明确要求源代碼的提供者不能提供已經受專利保護的源代碼(除非他本人是 專利權人,并書面向公衆免費許可這些源代碼),也不能在将這些源代碼以開放源代碼許可證形式許可後再去申請與這些源代碼有關的專利。 

◆ 對源代碼的定義 

而在MPL(1.1版本)許可證中,對源代碼的定義是:“源代碼指的是對作品進行修改最優先擇 取的形式,它包括:所有子產品的所有源程式,加上有關的接口的定義,加上控制可執行作品的安裝和編譯的‘原本’(原文為‘Script’),或者不是與初始 源代碼顯著不同的源代碼就是被源代碼貢獻者選擇的從公共領域可以得到的程式代碼。” 

◆ MPL許可證第3條有專門的一款是關于對源代碼修改進行描述的規定,就是要求所有再釋出者都得有一個專門的檔案就對源代碼程式修改的時間和修改的方式有描述。

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

MIT

MIT許可證之名源自麻省理工學院(Massachusetts Institute of Technology, MIT),又稱「X條款」(X License)或「X11條款」(X11 License)

MIT内容與三條款BSD許可證(3-clause BSD license)内容頗為近似,但是賦予軟體被授權人更大的權利與更少的限制。

被授權人有權利使用、複制、修改、合并、出版發行、散布、再授權及販售軟體及軟體的副本。

被授權人可根據程式的需要修改授權條款為适當的内容。

在軟體和軟體的所有副本中都必須包含版權聲明和許可聲明。

此授權條款并非屬copyleft的自由軟體授權條款,允許在自由/開放源碼軟體或非自由軟體(proprietary software)所使用。

此亦為MIT與BSD(The BSD license, 3-clause BSD license)本質上不同處。

MIT條款可與其他授權條款并存。另外,MIT條款也是自由軟體基金會(FSF)所認可的自由軟體授權條款,與GPL相容。

以上協定皆從開源中國社群收集轉載!!!