怎樣在程序中使用GNU許可證
無論使用哪一種許可證,使用時需要在每個程序的源文件里加入兩個元素:一個版權聲明和一個複製許可聲明。說明該程序使用GNU許可證進行受權。另外在聲明版權前應該說明文件的名稱以及用途。在複製許可聲明以後,最好寫上做者的聯繫信息。使得用戶可以聯繫到你,假設對源文件進行了改動,最好使用簡短的信息描寫敘述改動的內容。通用的格式例如如下所看到的:
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <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 3 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, see http://www.gnu.org/licenses/.
版權聲明中請務必使用英文單詞「Copyright」。且當中的年份是完畢公佈版本號的時間,如若1998年完畢了公佈版本號直到1999年才公佈出去,那麼使用1998年。需要明白說明使用的是GNU GPL的那個版本號,是版本號2仍是版本號3。linux
i2c-core.c文件裏的GNU許可描寫敘述例如如下所看到的:
/* i2c-core.c - a device driver for the iic-bus interface */
/* ------------------------------------------------------------------------- */
/* Copyright (C) 1995-99 Simon G. Vogl
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. */
/* ------------------------------------------------------------------------- */
/* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi>.
All SMBus-related things are written by Frodo Looijaard <frodol@dds.nl>
SMBus 2.0 support by Mark Studebaker <mdsxyz123@yahoo.com> and
Jean Delvare <khali@linux-fr.org>
Mux support by Rodolfo Giometti <giometti@enneenne.com> and
Michael Lawnick <michael.lawnick.ext@nsn.com> */
假設程序以終端方式執行,請在交互模式開始時,輸出下面提示:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
所若是的指令‘show w’與‘show c’應顯示通用公共受權的相相應條款。你也可以使用着兩個指令之外redis
的指令名稱;對於圖形用戶界面,你可以使用「about box」來替代此功能。
歷史
GPL由斯托曼撰寫。用於GNU計劃。dom
它以GNU Emacs、GDB、GCC的許可證的早期版本號爲藍本。ide
這些許可證都包括有一些GPL的版權思想。但僅針對特定的程序。斯托曼的目標就是創造出一種四海以內皆可以使用的許可證。這樣就能爲不少源碼共享計劃帶來福音。GPL版本號1就是這樣,在1989年1月誕生。函數
到1990年時,因爲一些共享庫而出現了對照GPL更寬鬆的許可證的需求。因此當GPL版本號2在1991年6月公佈時,還有一許可證——庫通用許可證(Library General Public License,簡稱LGPL)也隨之公佈,並記做「版本號2」以示對GPL的補充。版本號好LGPL版本號2.1公佈時再也不一樣,而LGPL也被重命名爲GNU寬通用公共許可證(Lesser General Public License)以體現GNU哲學觀。優化
GPLv1
GPL1
GPL版本號1,即最初的版本號,公佈於1989年一月,其目的是防止那些阻礙自由軟件的行爲。而這些阻礙軟件開源的行爲主要有兩種(一種是軟件公佈者僅僅公佈可運行的二進制代碼而不打不詳細源碼,一種是軟件公佈者在軟件許可加入限制性條款)。所以依照GPLv1。假設公佈了可運行的二進制代碼,就必須同一時候公佈可讀的源碼。並且在公佈不論什麼基於GPL許可的軟件時。不能加入不論什麼限制性的條款。
GPLv2
GPL2
理查德.斯托曼在Gplv2中所作的最大的修改就是添加了「自由仍是死亡」(「Liberty or Death」)這章條款,即第七章liberty-or-death Presentation。this
這章中聲明道。假設哪一個人在公佈源於GPL的軟件的時候。同一時候加入強制的條款。以在必定程度上保障和尊重其它一些人的自由和權益(也就是說在一些國家裏,人們僅僅能以二進制代碼的形式公佈軟件,以保護開發人員的版權)。那麼他將根本無權公佈該軟件。idea
到了1990年,人們廣泛以爲一個限制性弱的許可證對於自由軟件的發展是有戰略意義上的優勢的。所以。當GPL的第二個版本號GPLv2在1991年6月公佈時,與此同一時候第二個許可證程序庫GNU通用公共許可證(LGPL,the Lesser General Public License)也被公佈出來並且一開始就將其版本號定爲第二版以表示其和GPLv2的互補性。這個版本號一直延續到1999年,並分支出一個派生的LGPL版本號號爲2.1。並將其重命名爲輕量級通用公共許可證(又稱寬通用公共許可證)(Lesser General Public License)以反映其在整個GNU哲學中的位置。
GPLv3
理查德.斯托曼起草了第一份GNU GPLv3草案,在美國麻州劍橋市的MIT大學。到2005年,GPL版本號3正式由斯托曼起草,由伊本.莫格林和軟件自由法律中心(Software Freedom Law Center)提供法律諮詢。
斯托曼在2006年2月25日自由及開源軟件開發人員歐洲會議的演講上說:「
在所有的修改中,最重要的四個是:
解決軟件專利問題;
與其它許可證的兼容性;
源碼分區和組成的定義。
解決數位版權管理(DRM)問題。spa
」
2006年,自由軟件基金會針對GPL的可能的改動開始了12個月的公共諮詢。翻譯
在公共諮詢的過程當中,有962條評論被提交給第一稿草稿。終於總共同擁有2,636條評論被提交。GPLv3草稿 於2006年1月16日開始可用。
2007年3月28日正式啓用。
2007年6月29日。自由軟件基金會正式公佈了GPL第三版。
GPLv2與GPLv3的一些區別
GPLv3新版本號的思想性和可運行性相比GPLv2版本號有了很是大的提升。
(1)版權賦予者
咱們用兩個步驟來保護你的權利:1.給軟件賦予版權;2.向你提供本許可證,給你拷貝、改動和發行軟
件的合法許可權。GPLv2中的「we」,指的是FSF(自由軟件基金會)。
但是GPLv3中是這樣描寫敘述的「不論什麼使用GUN GPL 規則來保護本身權利的開發人員可採用兩個步驟:1.聲明
軟件的版權。2.向你提供本受權文件以給你複製、公佈並且/或改動軟件的法律許可」。軟件版權的主張者就是
軟件的開發人員本身,而再也不是FSF。GPLv3新版本號讓廣大自由軟件開發人員當上了自由軟件的主人,成爲真正的
自由軟件的版權擁有者。
(2)權利終止
GPLv2版本號第四條中「除本受權所明示的方式外,您不得對本程序加以複製、改動、在受權或散佈。不論什麼
試圖以其它方式進行復制、改動、在受權或者散佈本程序的行爲均爲無效,並且將本身主動終止您基於本受權所得
享有的權利」。一項權利被「本身主動終止」。貌似沒有什麼約束力。
GPLv3中,將此條款進行了進一步的說明「一旦出現不論什麼(違反許可證的狀況)。版權擁有者都可以採用
不論什麼合理的手段通知你違反了本許可證,並在60天之後的不論什麼時間終止你的權利」。而這個版權擁有者就是自
(3)GPLv3中包括明白的專利承認條款,意味着不論什麼向GPL項目捐贈代碼的實體容許將軟件包括的專利永久性免
費許可給該項目。
GPLv2具體條款
儘管現在已經公佈了GPLv3,但是仍然存在一些分歧,眼下用的多的仍是GPLv2,具體條款的描寫敘述例如如下所看到的。
聲明
這是一份GNU通用公共受權非正式的中文翻譯。它並非由自由軟件基金會所發表,亦非使用GNU通用公共受權的軟件的法定散佈條款——僅僅有GUN通用公共受權英文原文的版本號始具備此等效力。然而。咱們但願這份翻譯能幫助中文的使用者更瞭解GNU通用公共受權。
前言
大多數軟件受權聲明是設計用以剝奪您分享與改動軟件的自由。
相反地。GNU通用公共受權力圖保證您分享與改動自由軟件的自由——確保軟件對所有的使用者而言都是自由的。
通用公共受權適用於大多數自由軟件基金會的軟件,以及不論什麼做者制定使用本受權的其它軟件。(有些自由軟件基金會的軟件,則適用GUN函數庫通用公共受權規定。
)您也可以讓您的軟件適用本受權規定。
當咱們在談論自由軟件時。咱們所指的是自由,而非價格。咱們的通用公共受權是設計用以確保使您保有散佈自由軟件重製物的自由(以及您可以決定此一服務是否收費)。確保您能收到源代碼或者在您需要時便能獲得它,確保您能變動軟件或將它一部分用於新的自由軟件;並且確保您知道您可以從事上述的事情。
爲了保障您的權利,咱們需要做出限制:禁止不論什麼人否定您的上述的權利。或者要求您放棄這些權利。假設您散佈軟件的副本。或者對之加以改動。這些限制就轉化成爲您的責任。
好比,假如您散佈此類程序的副本。無論是免費或收取費用,您必須將您所享有的一切權利交付收受者。您也必須確保他們能收到或獲得源代碼。
而且您必須向他們展現這些條款的內容。使他們知悉他們所享有的權利。
咱們採取兩項措施來保護您的權利:(1)以著做權保護軟件,以及(2)提供您本受權,賦予您複製、散佈或改動軟件的法律許可。
同一時候。爲了保護做者與咱們(指自由軟件基金會),咱們但願肯定每個人都明瞭。自由軟件是沒有擔保責任的。假設軟件杯他人改動並加以傳遞。咱們需要其收受者知道,他們所獲得的並非原軟件,所以由他人所引出的不論什麼問題對原做者的聲譽將不會有不論什麼的影響。
最後,所有自由軟件不斷地受到軟件專利的威脅。咱們但願能避免自由軟件的在散佈者以我的名義取得專利受權而使程序轉優化的風險,爲了防止上述的事情發生,咱們在此明白聲明:不論什麼專利都必須爲了每個人的自由使用而覈准。鬥則就不該授予專利。
下面是有關複製、散佈以及改動的明白條款及條件
複製、散佈與改動的條款與條件
0、凡著做權人在其程序或其它著做中聲明,該程序或著做得在通用公共受權條款下散佈。本受權對其均有適用。下面所稱的「本程序」。是指不論什麼一種適用通用公共受權的程序或著做。「基於本程序所生的著做」,則指本程序或不論什麼基於著做權法所產生的衍生著做。換言之,是指包括本程序全部或一部的著做,不管是完整的或通過改動的程序,以及(或)翻譯成其它語言的程序(下面「改動」一詞包括但不限於翻譯行爲在內)。被受權人則成爲「您」。
本受權不適用於複製、散佈與改動之外的行爲;這些行爲不在本受權範圍內。運行本程序的行爲並不受限制,而本程序的輸出僅僅有在其內容構成基於本程序所生的著做(而非僅僅是因爲運行本程序所形成)時,始受本受權約束。
至於程序的輸出內容是否構成本程序的衍生著做。則取決於本程序的詳細用途。
1.您可以對所收受的本程序源代碼。無論以何種媒介,複製於散佈其完整的重製物,然而您必須符合下面條件:以顯著及適當的方式在每一分重製物上公佈適當的著做權標示以及無擔保聲明。維持所有有關本受權以及無擔保聲明的原貌。並將本受權的副本連同本程序一併交付予其它任一位本程序的收受者。
您可以對讓重製物的實際行爲請求必定的費用。您也可以自由決定是否提供擔保以做爲對價的交換。
2.您可以改動本程序的一個或數個重製物或者本程序的不論什麼部分。以此造成基於本程序所生的著做。並依前述第一條規定,複製於散佈此一改動過的程序或著做,但您必須符合下面要件:
(a)您必須在所改動的文件上附加顯著的標示,敘明您改動過這些文件。以及改動日期。
(b)您必須就您所散佈或發行的著做,無論是包括本程序全部或一部的著做,或者是自本程序或其它不論什麼部分所
衍生的著做,整體受權所有第三人依本受權規定使用,且不得所以項受權行爲而收取不論什麼費用。
(c)若通過改動的程序在運行時一般以互動方式讀取命令時。您必須在最常被使用的方式下。於開始進入這樣的互
動式使用時,列印或展現一下宣言:適當的著做權標示及無擔保聲明(或者聲明您提供擔保)、使用者可以
依這些條件在散佈此程序,以及告知使用者怎樣瀏覽本受權的副本。(例外:若本程序自己是以互動的方式
運行,然而一般卻不會列印該宣告時,則您基於本程序所生的著做便無需列印該宣告。)
這些要求對改動過的著做是整體適用的。尚著做中可識別的一部分並非衍生自本程序,並且可以合理地以爲
是一個獨立的、個別的著做,則當您將其做爲個別著做加以散佈時,本受權及條款將不適用於該部分。然而
當您上述部分。做爲基於本程西所生著做的一部而散佈時,整個著做的散佈必須符合本受權條款的規定,而
本受權對於其它被受權人所爲的許可及著做整體。
所以,本規定的意圖不在於主張或剝奪您對於全然由您所完畢著做的權利;應該說,本條規定意在行使對基
此外,非基於本程序所生的其它著做與本程序(或基於本程序所生的著做)在同一儲存或散佈的媒介上的單
純彙集行爲。並不會使該著做所以受本受權條款拘束。
3.您可以依前述第1、二條規定,複製與散佈本程西(或第二條所述基於本程序所產生的著做)的目的碼或可運行形式。但您必須符合下面要件:
(a) 附上完整、相相應的機器可判讀源代碼,而這些源代碼必須依前述第1、二條規定在經常用以做爲軟件交換的媒
介物上散佈;或
(b) 附上至少三年有效的書面報價文件。提供不論什麼第三人在支付不超過實際散佈源代碼所需成本的費用下。取得相
同源代碼的完整機器可讀重製物,並依前述第1、二條規定在經常用以做爲軟件交換的媒介物上散佈該重製
物。或
(c) 附上您所收受有關散佈一樣源代碼的報價信息。(本項選擇僅在飛贏利散佈、且僅在您依前述b項方式自該書
面報價文件收受程序目的碼或可運行形式時,始有適用。)
著做的源代碼,是指對著做進行改動時適用的形式。對於一個可運行的著做而言,完整的源代碼是指著做中所包
含全部模組的全部源代碼。加上相關接口的定義檔。還加上用以控制該著做編譯於安裝的描寫敘述。然而,特別的
例外狀況是。所散佈的源代碼並不需包括不論什麼通常會隨着所運行做業系統的主要組成部分(編譯器、核心等
等)而散佈的軟件( 無論以源代碼或二進制格式),除非該部分自己即附加在可運行程序中。
若可運行碼或目的嘛的散佈方式,是以指定的地點提供存取位置供人複製。則提供可自一樣地點複製源代碼的
使用機會,視同對於源代碼的散佈。然而第三人並不所以而負有將目的碼連同源代碼一併複製的義務。
4.除本受權所明示的方式外,您不得對本程序加以複製、改動、在受權或散佈。不論什麼試圖以其它方式進行復制、改動、在受權或者散佈本程序的行爲均爲無效,並且將本身主動終止您基於本受權所得享有的權利。然而,依本受權規定 自您手中收受重製物或權利之人,僅僅要遵照本受權規定,他們所得到的受權並不會所以終止。
5.因爲您並未在本受權上簽名,因此您無須接受本受權。然而,除此以外您別無其它改動或散佈本程序或其衍生著做的受權許可。若您不接受本受權,則這些行爲在法律上都是被禁止的。
所以。藉由對本程序(或不論什麼基於本程序所生的著做)的改動或散佈行爲。您表示了對於本受權的接受。以及接受所有關於複製、散佈或改動本程序或基於本程序所生著做的條款與條件。
6.每當您在散佈本程序(或不論什麼基於本程序所生的著做)時。收受者即本身主動得到原受權人所授予依本受權條款與條件複製、散佈、或改動本程序的權利。您不得就本受權所賦予收受者行使的權利附加不論什麼進一步的限制。
您對於第三人是否履行本受權一事,無需負責。
7.若法院判決、專利侵權主張或者其它不論什麼理由(不限於專利爭議)的結果。使得加諸於您的條件(無論是由法院命令、協議或其它方式形成)與本受權規定有所衝突,他們並難免除您對於本受權規定的遵照。若您沒法同一時候符合依本受權所生義務以及其它相關義務而進行散佈,那麼結果即是您不得散佈該程序。
好比,若專利受權不一樣意直接或間接透過您而取得重製物之人,以避免付權利金的方式再散佈該程序時,您惟一能同一時候知足該義務以及本受權的方式就是完全避免進行該程序的散佈。
若本條任一部分在特殊狀況下被認定無效或沒法運行時。本條其他部分仍適用。且本條全部於其它狀況下仍應適用。
本條的目的並不在誘使您侵害專利或其它財產權的權利主張,或就此類主張的有效性加以爭執;本條的惟一目的,是在保障藉由公共受權慣例所運行自由軟件散佈系統的完整性。不少人信賴該系統一向使用的應用程序,而對經由此係統散佈的大量軟件有至關多的貢獻;做者/貢獻者有權決定他或她是否但願經由其它的系統散佈軟件,而被受權人則無該種選擇權。
本條的用亦在於將本受權其它不肯定的部分完全解釋清楚。
8.若因爲專利或享有著做權保護的接口問題,而使得本程序的散佈或使用侷限於某些國家時,則將本程序置於本受權規範之下的原著做權人得增列明白的散佈地區限制條款,將該等國家排出在外,而使散佈的許可僅僅限在未受排除的國家以內或之中。在該等狀況下。該限制條款如同以書面方式訂定與本受權內容中。而成爲本受權的條款。
9.自由軟件基金會得隨時發表通用公共受權的修正版或新版本號。新版本號在精神上將近似於眼下的版本號,然而在細節上或所不一樣以因應新的問題或情況。
每一個版本號都有個別的版本號號碼。若本程序制定有受權版本號號碼,表示其適用該版本號或是「不論什麼新版本號」時,您得選擇遵循該版本號或不論什麼自由軟件基金會往後所發表新版本號的條款與條件。若本程序並未制定受權版本號號碼時,您便得選擇任一自由軟件基金會所發表的版本號。
10.若您想將部分程序歸入其它自由程序,而其散佈的條件有所不一樣一時候,請寫信取得做者的許可。若爲自由軟件基金會享有著做權的軟件。請寫信至自由軟件基金會;咱們有時會以例外的方式予以處理。咱們的決定取決於兩項目標:確保咱們自由軟件的所有衍生著做均維持在自由的狀態,並普遍地促進軟件的分享與在利用。
無擔保聲明
11.由於本程序是無償受權,所以法律許可範圍內,本受權對本程序並不負擔保責任。非經書面聲明,著做權人與(或)其它提供程序之人。無論明示或默示,均是依「現況」提供本程序而並沒有不論什麼形式的擔保責任。其包含但不限於,就適售性以及特定目的的適用性爲默示性擔保。有關本程西品質與效能的全部風險是由您承擔。如本程序被證實有瑕疵,您應承擔全部服務、修復或改正的費用。
12.非經法律要求或書面容許。不論什麼著做權人或不論什麼可能依前述方式改動與(或)散佈本程序者,對於您因爲使用或不能使用本程序所形成的通常性、特殊性、意外性或間接性損失。不負不論什麼責任(包含但不限於,資料損失,資料運行不明白,或應由您或第三人承擔的損失,或本程序沒法與其它程序運做等),即使前述的著做權人或其它人已被告知該等損失的可能性時,亦同。