歡迎您光臨本站 註冊首頁

人話版 GPL 2.0 協議

←手機掃碼閱讀     admin @ 2020-07-01 , reply:0

GPL協議在我心中,一直是一塊豐碑,簡直讓人敬而畏之。

但真正讀過GPL的人,少之又少,甚至絕大多數程式設計師,都沒有見過GPL的真身。

原因很簡單,一是不關心,二是懶得看,三是覺得看了也看不懂。

其實沒有那麼難的,看完這篇人話版,你就克服這個心理障礙了。

我們早該讀GPL的。

我們早該理解GPL的。

本文的目的,是讓人讀起來不要那麼費勁。

閱讀時,你需要一個軟體不斷流轉的概念,就是軟體由最初作者寫好後,發給了別人,別人又發給了你,你改了改,又發給其他人,所以開源軟體有上下游之說,上游把軟體分發給你,你又分發給下游,軟體就是這樣不斷傳播散佈開來。

由於說人話,本文難免會有一些演繹的成分,但總體上是嚴格對應原文精神的。

不可以用本文去打官司。

GPL 2.0全文分為三個部分,第一部分是導言(主要講了一些自由軟體的理念);第二部分是條款和條件,裡面有13個條款(section 0~12),其中最後兩條是免責宣告;第三部分是指導人們如何使用GPL,嚴格地說,這部分算附錄。

下面開始。

注:

1、GPL是FSF制定的,文中的“我們”,指的就是FSF,如果說“我”,有可能是Richard Stallman,也有可能是“本程式”的作者,請用你的智慧來判斷。

2、關於概念,很多人喜歡說“A可不是B”,不過我最喜歡說“A就是B”,所以:

在本文裡,“程式”、“軟體”、“作品”是一樣的,“釋出”就是“分發”,“授權”就是“許可”,“協議”就是“許可證”,“擔保”就是“保證”,“無擔保”就是“免責”。

4、畢竟是人話,不可避免會有一些演繹,有的地方我標註了譯者注,有些地方並沒有。

5、我說的是人話,不代表別人說的不是人話。


GPL 2.0許可證(人話版)

版本 2, 1991年6月

版權 (C) :1989, 1991 Free Software Foundation, Inc.

51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

你可以複製、釋出本許可證,但不能修改本許可證。一個字都不能動。

開場白

我們設計GPL協議,目的很簡單,就是給程式設計師自由,給使用者自由!

我們FSF的軟體大都用這個協議,但並不是說只有我們能用,任何人都可以用這個協議!

我們認為,人應該有這樣的自由:

每個人都有分發軟體的自由,而且可以為此收費。

(譯者注:先講下“分發”的概念,分發就是有人把軟體賣給你、寄給你、發給你、拷給你、讓你下載、幫你安裝等等,只要你從他那兒搞到軟體,就算他分發給你了。有時候會用“釋出”一詞,請視為等同。)

(譯者注:本文所講的“程式”、“軟體”、“作品”、“東西”、“玩意”,在絕大多數情況下,指的都是一個東西:自由軟體,尤指使用GPL的軟體。)

每個人有獲取原始碼的自由,人們要能得到軟體的原始碼!

為什麼要有原始碼?

因為原始碼讓程式設計師更自由,原始碼讓使用者更自由!

如果你懂,你就會懂的。

不懂,我也沒有時間說服你。

每個人有改動原始碼的自由!

就好比你娶個美女,只能看,不能動,那叫什麼自由?

每個人都應該知道這些理念,所以,本許可證帶著這個開場白,而使用GPL的軟體,都帶著本許可證,就是為了讓你看見。

GPL協議的目的就是要確保做到上面這些。

每個分發GPL軟體的人,都要按照GPL的要求做。

記住:我們給了你自由,你要把這個自由傳遞下去。

最基本的就是要把原始碼公開!

每個人都應該知道,程式可不是其他商品,寫程式已經夠費精神了,而且作者也沒有收你錢,所以GPL的程式是AS IS的,也就是說作者不會負責任的。如果你修改了別人的程式,你要說明你修改了,這樣,你帶來的bug,不會影響人家原作者的聲譽。

我們絕不允許將自由軟體專有化,你如果基於本程式做了修改,並對修改申請了專利,你就要把這個專利讓所有人免費使用,要麼你就不要釋出。

條款和條件

0.先定義一下:如果一個作品包含本程式的全部或者部分,或者是對本程式做了修改,或者將本程式翻譯成其他語言,那麼,這個作品就是基於本程式的,也稱衍生程式或衍生作品。

(譯者注:注意,本文中的“本程式”,就是使用了GPL的程式,本程式釋出時是帶著本許可證的。)

本協議管的是對本程式的複製、修改和分發。其他的事我不管。比如執行本程式是不受限制的,程式的輸出也不受限制,除非輸出內容的本身就是本程式的衍生作品。

(譯者注:事實上,只要你不分發,只是自己用用,都不會管的,比如你可以隨便複製1000份放在你的硬碟上,你也可以隨便改,只要你不拿出來傳播就好。但如果你哪怕只是發給了小夥伴張三,那就要注意了,你要按GPL的要求做,否則就會違規。除非這個小夥伴和你一個公司而你們正在受公司之命使用或修改本程式。)

(譯者注:關於程式輸出,可以考慮一下這些情景:你使用受GPL保護的軟體LibreOffice寫了一本書(這就是輸出),這本書不受GPL限制;你用Emacs編輯器(GPL的)寫了個程式(這就是輸出),這個程式不受GPL限制;你用mysql(受GPL保護)做資料庫並搭了個網站,這也不受GPL限制。但如果你用LibreOffice、Emacs編輯的是本程式的原始碼,或者用mysql資料庫儲存了本程式的原始碼,那就另當別論了,這你懂吧。)

1. 如果你要分發的是一字未改的本程式(你從別人那兒搞到手的),記著必須要在明顯的地方,帶上本程式的版權宣告、免責宣告(或稱無擔保宣告)、以及本許可證。而且必須是原封不動的本許可證和免責宣告。

(你應該知道為什麼帶這些吧,前面我已經大致說過了,這裡再說一遍:第一,你要給原作者留名,人家寫自由軟體圖啥?至少要給人家個名吧!第二,人家也沒有收維保費,不能說有點bug還找人家算賬,軟體不好使,大家自己想辦法。第三,要帶上我這個GPL協議,要讓所有人知道他的權利和義務,更重要的是,讓他們看看我的開場白,理解我的初心。)

你可以因為分發軟體的具體行為收成本費。(比如你可以收製作光碟的費用,郵寄的費用,複製的費用,但你不能收研發費!你更不能收許可費!總之,你收的錢要說得過去!)

你要是能提供維保服務,你可以收維保費。

(譯者注:所謂維保,也就是使用者軟體出故障了,你給人家解決bug,需要版本升級了,你給人家升級,發現安全漏洞了,你給人家補丁,使用者不會用了,你給人家培訓,這些活,都屬於維保。原作者一般是不會幹這個的,他更喜歡開發軟體。)

2. 如果你要分發的是修改後的本程式(或曰衍生程式),除了上面第1條的要求外,你還要滿足以下條件。

a) 對於你修改了的檔案,你必須在那個檔案上帶上明顯的修改宣告,並附上日期資訊。

b) 哪怕你的軟體有一點點含有或來自我的程式,你分發時,就要按照GPL,授權所有人都可免費使用、複製、修改、再分發你這個軟體。

c) 如果你修改後的程式在執行時和使用者以命令的方式互動,你必須在程式執行的開始,顯示版權宣告、無擔保宣告(如果你有擔保你就顯示擔保宣告),你要告訴使用者分發你程式時的條件,告訴使用者如何讀取本許可證。(如果本程式不顯示這些,那你不需要專門改成這樣)。

(譯者注:比如gdb執行時就會出來一堆這些宣告。命令式互動並不僅限於“命令列”互動,完全可以是圖形介面的命令式互動甚至是音訊的互動,比如使用者說:“小某小某”,程式說“在呢”,使用者說:“你的許可是什麼”,程式說:“我使用GPL許可……”)

這些要求是對修改後作品的整體適用的,如果你的作品有一部分可以獨立出來並且不是基於本程式的,那你單獨釋出這部分的時候,不需要遵守本許可證要求。但如果你要放到一塊作為整體釋出,那就得遵守規定。

本條的意圖,並不是掠奪你寫的那部分程式,而是對基於本程式的軟體整體,實施控制權。(因為這樣,才能給人更多自由!)

當然,如果一個程式僅僅是和本作品放在同一張光碟上、同一個隨身碟上、同一塊活動硬碟上,而它本身不基於本程式,我們不會要求該程式遵守GPL的。(我們沒有這麼變態,也不會有人真以為能這樣“傳染”吧?!)

3. 如果你要分發本程式(或衍生程式)的目的碼或可執行檔案,除了滿足前面第1條和第2條,還必須滿足以下其中一條。

a) 伴隨這個目的碼或可執行檔案,你必須提供機器可讀的原始碼。(要是你給我一本印在書上的原始碼,可別怪我不客氣。)而且你要使用複製軟體常用的方式。(你別給我弄到紙帶上,你是穿越來的嗎?)總之,別耍花樣,老老實實交出原始碼

b) 或者你這樣做,你附上一個書面的報價單,有效期至少三年,收費不能超過成本費。(比如收費只是你製作光碟、製作隨身碟的費用。這樣,使用者在這幾年內,想買的時候可以買。)

c) 或者,如果你只是轉一下手,把你收到的又轉給別人,而且不是商業行為(比如只是發給朋友玩玩),那你帶上獲取原始碼的資訊就可以了(如果是商業行為,你就得給原始碼,或者弄書面報價單了)。

所謂原始碼形式,就是那種最便於修改的形式。對於一個可執行程式,完整的原始碼包括其所有模組的原始碼、介面定義檔案、編譯程式的指令碼、安裝程式的指令碼。但是,不包括核心、編譯器這些作業系統主要部件的原始碼,這不是該你負責的部分,除非你的程式就是幹這些事的。

(總之,提供原始碼就要提供完整的,而且是便於編譯的,即便是程式設計菜鳥,能應該能按照指示,簡單幾步就能把原始碼弄成可執行檔案,如果你只是扔來一堆原始碼,而故意隱藏一些資訊或製造一些編譯上的難度,那隻能說你道德低劣。)

如果可執行檔案(目的碼)的分發是在特定的地點完成的,那麼,在同一地點也應該提供對原始碼的複製。當然,來複製可執行檔案的人,完全可以選擇不拷原始碼,不能強迫人家非要拷原始碼。

4. 除了本許可明確允許的方式,你不能複製、修改、分發和再許可本程式。如果你試圖幹這些事,本許可證授予你的權利將自動終止。但已經從你這裡獲得了複製的人,只要他們遵守規定,他們的授權並不會自動終止。

(譯者注:事實上,如果你不分發,只是自己用用,複製、修改的自由還是有的。)

5. 你可以不接受本許可證,但不接受你就不能修改和分發本程式(及衍生程式)。所以,你只要乾了這些事,就表明你接受了本許可證。

6. 每當你釋出本程式(或衍生程式)時,收到本程式的人,自動獲得本程式原始授權人依本許可證所賦予的權利,你不能新增任何額外的限制。你也不用負責別人是不是按照本許可做。(譯者注:由此可知,一旦一個GPL的程式誕生,它的子子孫孫都會是GPL的。)

7. 不管是哪種情況,比如法院判決、專利指控或其他情況,導致你無法遵從本許可證的條件,那也不代表你就可以搞特殊,如果你無法求得兩全,那你就只能放棄釋出。比如:如果一個專利許可要求那些從你這兒直接或間接收到程式的人,不能再免費地釋出,這就和本許可衝突了。為了避免這種問題,你唯一能做的,就是不釋出該程式。(譯者注:此即著名的“自由或死亡”條款,“Liberty or Death”)

不管在什麼場景下,如果本條款的任何一部分不能執行或者被判定無效,其他部分也是有效的,且條款整體在其他場景下仍是有效的。

本條的目的不是誘使你侵犯專利或智慧財產權,也不是讓你去和別人爭執更應該執行誰的條件,本條的唯一目的,就是保護GPL的完整性,而不是讓它被支離破碎地執行,正是透過GPL的一致執行,很多人在相當廣泛的軟體領域裡,做出了顯著的貢獻。

原創作者有權利使用其他協議釋出他的作品,我們任何人不能強迫原創作者必須使用GPL協議。

本條試圖徹底解釋清楚其他條款所帶來的可能後果。

8. 如果在某些國家因為專利或版權的問題難以分發,那麼版權所有人在分發時,可以對分發的地區加以明確限制,以排除那些國家。在這種情況下,這些限制不認為是對本協議的修改。(譯者注:算一種例外吧。)

9. FSF會不定時釋出GPL的新版本,精神上應該不會大變,主要是細節上的變化,以及增加一些對新情況的規定。每一版都會有新的版本號,如果一個軟體說使用“GPL 2.0 and later version”,這表示你可以用2.0,或者其後的某個版本,如果只說使用GPL 2 .0,那就只能用2.0,如果說使用GPL但沒有指定版本號,那就可以任意選擇一個FSF釋出過的版本。

10. 如果你希望將本程式的一部分納入採用其他許可證的自由軟體中(譯者注:注意自由軟體有很多許可證,比如MIT、Apache),你要徵得本程式作者的書面同意。如果他同意,那就可以。如果本程式的版權歸FSF,那你得問我們,一般來說,我們的作品以及衍生作品都必須要用GPL的,但是,我們有時候也同意一些例外。(譯者注:決策權當然是在作者這裡的,作者想用什麼許可就用什麼許可。)我們的決策主要考慮兩個目標,一是保證自由軟體的子子孫孫都是自由的,二是促進軟體的普遍共享和複用。

無擔保宣告

11. 由於本程式是免費提供的,所以在法律許可範圍內,本程式是沒有擔保的。除非有書面說明。本程式是“AS IS”的,沒有任何明示或暗示的保證,比如預設的適銷性、適用性這些保證都沒有,關於本程式的功能和效能導致的風險都由使用者自己承擔,(你單位用我作品出了事,你可別想拉我當墊背的,大公司都不背這鍋,你讓我一個不掙你錢的背?)如果我這作品真有缺陷,你自己想辦法搞定,你可以花錢買服務,這種公司又不是沒有。

12. 除非是法律要求或者書面同意,否則在任何情況下,本程式的版權所有者,或者修改和重新發布本程式的其他人,都不會對你的任何損失負責,不管這個損失是一般的還是特殊的,不管是偶然的還是間接的,不管是本程式自己的問題,還是因為你不會用導致的,不管是資料丟失還是資料不準確,不管是你導致的,還是其他人導致的,亦或是本程式和其他程式共同導致的。即便版權所有者或修改人已經被告知有危險,他們也不會對此負責。總之一句話,出事了你自己兜著。

條件和條款就這麼多了!

你的新程式如何使用本許可證?

如果你開發了一個新程式,並且想最大程度造福人類,我向你保證,最好的辦法就是使用我們的GPL,把它變成自由軟體,讓任何人都可以修改它、分發它。

怎麼使用GPL呢,把下面的宣告放在程式的頭部。

先來個英文版:

[one line to give the program's name and an idea of what it does.]

上面這行應該替換成你程式的名字和它的用途,一行搞定。

Copyright (C) yyyy name of author 這裡應該替換年份和作者姓名

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Also add information on how to contact you by electronic and paper mail.

下面是中文版的:

[你程式的名字,你程式的用途,最好一行搞定。]

Copyright (C) 年份, 作者名字

本程式是一個自由軟體,你可以重新分發它,可以修改它,但要遵守GPL 2.0版本或者後續其他版本。

我們希望本程式是有用的,但是我們不保證它能用,不保證它好用,我們不提供任何保證。

更多請見GPL全文,如果理解不了,找人話版看看。

按道理你在得到本軟體時,應該已經得到一份GPL,如果你沒找到,寫信給自由軟體基金會(FSF):

51 Franklin Street, Fifth Floor, Boston, MA 02110‐1301, USA

同時附上你的電子郵件地址和紙質件郵寄地址。

如果你的程式是互動式的(執行時使用者可以輸入指令並得到反應 ),那麼,請在互動式執行的一開始,輸出版權、免責及許可資訊,下面是個例子:

Gnomovision v69,版權 (c) 1988 steven

Gnomovision沒有任何保證,瞭解更多請輸入’show w'。

這是一個自由軟體,歡迎再次分發本程式,但要滿足一定條件,欲知詳情請輸入’show c'。

這裡的'show w’和’show c’只是例子,你可以用別的指令,還可以是滑鼠點選或選單形式,只要顯示GPL的相應條款即可。

若你是在工作場景下寫的這程式,如果必要,你可能需要讓你的公司或學校,簽署一個“版權放棄書”。

範例如下,修改其中的名字即可:

Yoyodyne公司宣告放棄James Hacker所寫的’Gnomovision'程式的版權權益。

Ty Coon簽字,1989年4月1日

Ty Coon公司,副總裁

我們不允許一個GPL的程式整合到私有程式(或稱專用程式)中。如果你的程式是一個函式庫,而且你認為讓私有程式連結這個庫更有利於自由的力量,那你可以使用LGPL,而不是GPL。

人話版到此為止。

轉自:微月人話 公眾號

翻譯:衛劍釩 2020.6


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/116836/gpl-2-0-license
人話版 GPL 2.0 協議已經有21次圍觀

http://coctec.com/news/soft/show-post-240513.html