使用者工具

網站工具


notes_and_translations:frequently_asked_questions_about_the_gnu_licenses

目錄表

譯自“GNU計畫GNU授權條款常見問答集“。翻譯並未經過原單位的授權及認證,且摻雜許多原文所無之贅字以幫助讀者得其真意,原自由軟體基金會官方網頁下之英文版本方為具解釋性的唯一可參照版本,故<font color="red">本頁面之相關資訊僅供線上參考</font><font color="red">而不採用公眾授權的方式提供重製與散布</font>

如果您對於這個分頁內容有任何的資訊分享或是改進建議,歡迎寄信到lucien.cc@gmail.com留言指教。

關於GNU計畫、自由軟體基金會,以及授權政策的基本問答(Basic questions about the GNU Project, the Free Software Foundation, and its licenses)

「GPL」這個詞彙代表什麼意思?

++++What does “GPL” stand for?|

“GPL” stands for “General Public License”. The most widespread such license is the GNU General Public License, or GNU GPL for short. This can be further shortened to “GPL”, when it is understood that the GNU GPL is the one intended.

「GPL」是「公眾授權條款(General Public License)」的英文縮寫。而當代的「公眾授權條款」,最為人廣泛運用的就是「GNU公眾授權條款」,或被簡稱為「GNU GPL」。而「GNU GPL」在口語的表達上,也常常被再濃縮為「GPL」,也就是說、一般人常常朗朗上口的「GPL」,其精確的指稱對象就是「GNU公眾授權條款(GNU General Public License)」。

++++

稱為自由軟體者,是不是代表此軟體一定是用GPL對外釋出?

++++Does free software mean using the GPL?|

Not at all—there are many other free software licenses. We have an incomplete list. Any license that provides the user certain specific freedoms is a free software license.

也不盡然,這世上還有很多其他的自由軟體公眾授權條款。自由軟體基金會持續在整理這份自由軟體授權條款的列表清單。其實、只要某個公眾授權條款能夠傳導四大自由給收受程式的後手,並在細節上符合自由軟體基金會對自由軟體的定義,它就會被承認為自由軟體授權條款。

++++

為什麼我要選擇GPL來釋出我的自由軟體,而不是選用其他的自由軟體授權條款?

++++Why should I use the GNU GPL rather than other free software licenses?|

Using the GNU GPL will require that all the released improved versions be free software. This means you can avoid the risk of having to compete with a proprietary modified version of your own work. However, in some special situations it can be better to use a more permissive license.

選擇GPL來釋出您軟體的最大好處,在於GPL釋出後的所有改寫版本都一定會是開放源碼的自由軟體。也就是說、將不會有非開放源碼的私有軟體(Proprietary Software),是改寫於您開放源碼的原作品,從而您毋需面對心血為人改寫後卻不知對方如何改寫的窘境。然而、在某些特殊的情況下,自由軟體基金會有時候會建議您改用比GPL更寬鬆的自由軟體授權條款來釋出您的軟體,這方面的細節,要看個案的狀況來判斷。

++++

所有GNU計畫對外釋出的軟體,都是採用GPL來進行授權的嗎?

++++Does all GNU software use the GNU GPL as its license?|

Most GNU software packages use the GNU GPL, but there are a few GNU programs (and parts of programs) that use looser licenses, such as the Lesser GPL. When we do this, it is a matter of strategy.

大部份自由軟體基金會所釋出的套件軟體,都是以GNU GPL授權條款來對外釋出的,然而、因為某些推廣自由軟體的策略考量,少數自由軟體基金會釋出的軟體程式(或是套件軟體中的部份程式),會改以較寬鬆的自由軟體授權條款對外釋出,例如GNU LGPL授權條款就是一個顯明的例子。

++++

將個別程式以GNU GPL的方式對外授權釋出,就會自動讓這個程式被列為GNU計畫所管理的套件程式嗎?

++++Does using the GPL for a program make it GNU software?|

Anyone can release a program under the GNU GPL but that does not make it a GNU package.

任何人都可以將其擁有著作權的程式以GNU GPL的方式對外授權釋出,但這不表示該程式會被自動列為GNU計畫管理的套件程式。

Making the program a GNU software package means explicitly contributing to the GNU Project. This happens when the program's developers and the GNU Project agree to do it. If you are interested in contributing a program to the GNU Project, please write to maintainers@gnu.org.

若真要讓個別程式成為GNU計畫管理的套件程式,代表該程式的權利人要明示將程式的權利貢獻予GNU計畫。玉成此事的條件是該程式的權利人與GNU計畫雙方皆同意這個貢獻行為。若是您有意將您的程式貢獻予GNU計畫,煩請寫信至maintainers@gnu.org這個信箱,GNU計畫後續將派員與您聯繫。

++++

除了軟體之外、我還能將GPL條款適用於其他類別的客體上嗎?

++++Can I use the GPL for something other than software?|

You can apply the GPL to any kind of work, as long as it is clear what constitutes the “source code” for the work. The GPL defines this as the preferred form of the work for making changes in it.

您可以將GPL授權條款適用於任何其他類別的著作上,只要您能在此著作上,明確界定何謂”源碼”的範圍。就GPL來說,“源碼”的定義就是著作在進行變更時,最適宜拿來作修改基礎的那個格式,就是“源碼”的格式。

However, for manuals and textbooks, or more generally any sort of work that is meant to teach a subject, we recommend using the GFDL rather than the GPL.

然而、像是手冊、書籍這類,以教學目的為主的其他著作物,自由軟體基金會建議您可以改採GNU自由文件授權條款(GNU Free Documentation License, GFDL)來釋出您的作品,因GFDL為GNU計畫下,特別為文字著作所設計的公眾授權條款。

++++

為什麼GNU計畫不建議將GPL適用在技術手冊的釋出上?

++++Why don't you use the GPL for manuals?|

It is possible to use the GPL for a manual, but the GNU Free Documentation License (GFDL) is much better for manuals.

要將GPL適用於手冊/書籍的釋出並不是完全不可行,然而、同為GNU計畫下的公眾授權條款,「GNU自由文件授權條款(GNU Free Documentation License, GFDL)會更為適合。

The GPL was designed for programs; it contains lots of complex clauses that are crucial for programs, but that would be cumbersome and unnecessary for a book or manual. For instance, anyone publishing the book on paper would have to either include machine-readable “source code” of the book along with each printed copy, or provide a written offer to send the “source code” later.

因為、GPL授權條款原則上是給軟體程式去適用的,其中許多複雜的條款內容都是針對程式授權的狀態來設計,這些條款內容若是適用於手冊/書籍的授權釋出上,就會顯得不盡然必要且過於累贅。舉例來說、將GPL適用於手冊/書籍著作上時,任何人嗣後再以紙本的方式散布此著作時,都需要附隨提供一份機器可讀的電子檔書籍“源碼”,或者提供後手一份成文的書面聲明,讓人嗣後可以依據此份聲明的擔保及指示,得到電子檔的書籍“源碼”。

Meanwhile, the GFDL has clauses that help publishers of free manuals make a profit from selling copies—cover texts, for instance. The special rules for Endorsements sections make it possible to use the GFDL for an official standard. This would permit modified versions, but they could not be labeled as “the standard”.

同時、GFDL的部份條款,能夠幫助出版商發行允許自由散布的手冊與書籍著作,卻不妨礙其商業獲利,舉例來說、GFDL在著作封面方面的規則,就是一個很好的例子。透過該條款的規定,著作權利人得以GFDL釋出自己作品的同時,要求後續改寫者不得以其名義為其後的衍生作品進行廣告背書,從而確立原始作品方為原作者唯一認可的「標準版本」。

Using the GFDL, we permit changes in the text of a manual that covers its technical topic. It is important to be able to change the technical parts, because people who change a program ought to change the documentation to correspond. The freedom to do this is an ethical imperative.

將GFDL適用在您所釋出的手冊/書籍後釋出,這代表此份文件的技術內容是可以被後手持續的更新和改寫的。因為倘若軟體程式本身已經以 GPL對外釋出並容許改寫,那麼伴隨此程式釋出的手冊及書籍,亦應有相類似的傳散機制,如此一來、程式的改作與其技術文件之間的改作,才能夠同步配合。此種改作自由不論是表現在程式或其技術文件上,都是自由軟體基金會認為必要的道德之善。

Our manuals also include sections that state our political position about free software. We mark these as “invariant”, so that they cannot be changed or removed. The GFDL makes provisions for these “invariant sections”.

以自由軟體基金會的實際作法為例,為了確保GNU計畫宣揚自由軟體的政治理念不會嗣後被誤解和混淆,伴隨GNU計畫轄下GPL授權程式向外釋出的GFDL文件,會於文件裡的「不可變章節(Invariant sections)」部份詳述軟體自由的理念,此部份的章節內容依GFDL的規定,不得為散布文件的後手嗣後修改,從而也保障了原GPL軟體著作權利人理念表達的機會。透過GFDL的這些細項規定,可以讓GPL軟體的說明文件,在改作自由方面能與該GPL程式配合無間、相得益彰。

++++

GPL授權條款有其他語言的翻譯版本嗎?

++++Are there translations of the GPL into other languages?|

It would be useful to have translations of the GPL into languages other than English. People have even written translations and sent them to us. But we have not dared to approve them as officially valid. That carries a risk so great we do not dare accept it.

GPL授權條款若是有多種語言版本,將會有助於讀者閱讀。事實上、許多認同軟體自由理念的志工,已經將他們翻譯好的版本寄來給自由軟體基金會作參考。然而、考量到之後可能會引發的不確定風險,自由軟體基金會並不敢以官方的立場認證這些翻譯文件。

A legal document is in some ways like a program. Translating it is like translating a program from one language and operating system to another. Only a lawyer skilled in both languages can do it—and even then, there is a risk of introducing a bug.

翻譯授權文件就像是程式設計師以他種程式語言改寫原軟體一樣。翻譯者必須是個專業的律師,並且他對翻譯與被翻譯的二種語言都需要非常熟悉才行,而即使這樣的人才真的存在、翻譯品質還是有可能引發若干無法控管的風險。

If we were to approve, officially, a translation of the GPL, we would be giving everyone permission to do whatever the translation says they can do. If it is a completely accurate translation, that is fine. But if there is an error in the translation, the results could be a disaster which we could not fix.

假如自由軟體基金會認證了某些語言的翻譯本也成為官方版本,那就要讓其有官方版本的效力,也就是說、翻譯本其上一言一句都是官方認可生效的文字。假若翻譯的過程真確無誤的話,那沒問題,但若是翻譯的過程就是產生了某些轉譯的謬誤,那麼造成的影響將會是巨大且難以回復的。

If a program has a bug, we can release a new version, and eventually the old version will more or less disappear. But once we have given everyone permission to act according to a particular translation, we have no way of taking back that permission if we find, later on, that it had a bug.

如果程式的翻譯出了問題,那自由軟體基金會可以釋出新的更正版本來修補這個漏洞,那麼原來的錯誤版本便會慢慢被淘汰掉。然而、若是條款的翻譯出了問題,這些出了問題的法律文字還是具有法律效力,以至於就算自由軟體基金會嗣後更新了授權條款的翻譯本,那些原有謬誤的舊版授權文字還是不會被代換掉。所以條款翻譯的影響畢竟和程式的翻譯不同,自由軟體基金會需要用更慎重的態度來面對這個議題。

Helpful people sometimes offer to do the work of translation for us. If the problem were a matter of finding someone to do the work, this would solve it. But the actual problem is the risk of error, and offering to do the work does not avoid the risk. We could not possibly authorize a translation written by a non-lawyer.

許多熱心的朋友願意幫自由軟體基金會,將GPL授權條款翻譯為多種語言,所以問題並非自由軟體基金會缺乏志工從事翻譯工作,問題在於、翻譯工作可能帶來條款效力的紊亂性與不確定性,並且自由軟體基金會亦不敢輕率的授權非法律專業從業人員來翻譯GPL授權條款。

Therefore, for the time being, we are not approving translations of the GPL as globally valid and binding. Instead, we are doing two things:

因著上述這些理由,目前自由軟體基金會並不打算認證任何非官方語言的GPL翻譯本,也具有全球性的拘束效力,取而代之的、自由軟體基金會用以下二個方式來處理GPL授權條款的翻譯問題:

  • Referring people to unofficial translations. This means that we permit people to write translations of the GPL, but we don't approve them as legally valid and binding.
  • 在自由軟體基金會與GNU計畫的授權說明網頁裡,增設志工們所翻譯的授權文件連結。然而、這些翻譯文件並不是自由軟體基金會官方認證並具法律拘束效力的有效文件,而僅是供使用者理解授權條款本文的參考資料。


An unapproved translation has no legal force, and it should say so explicitly. It should be marked as follows:

這些非官方認證的翻譯文件並沒有任何法律效力,這一點會在自由軟體基金會網頁上被清楚敘明,並且這些翻譯文件在標識上亦會被加上下列說明文字:

This translation of the GPL is informal, and not officially approved by the Free Software Foundation as valid. To be completely sure of what is permitted, refer to the original GPL (in English).

此份GPL授權條款的翻譯版本,並非自由軟體基金會授權及認證通過的正式版本。若您欲了解授權條款的具體內容,原自由軟體基金會公布之英文版本方為具解釋性的唯一標準版本。

But the unapproved translation can serve as a hint for how to understand the English GPL. For many users, that is sufficient.

然而、此份非官方的GPL翻譯版本,能讓您據以快速了解GPL授權條款的大項規定,對於GPL授權軟體的一般使用者所需的基本資訊而言,已算是足夠。

However, businesses using GNU software in commercial activity, and people doing public ftp distribution, should need to check the real English GPL to make sure of what it permits.

而倘若、您打算將GPL授權程式運用在商業營利行為上,並且透過FTP等方式大量散布該GPL程式,那麼您應該改而參照GPL以英文撰寫的官方標準版本,以釐清細項的權利義務關係。

  • Publishing translations valid for a single country only.
  • 在特定國家發布僅限該國效力的官方GPL翻譯版本


We are considering the idea of publishing translations which are officially valid only for one country. This way, if there is a mistake, it will be limited to that country, and the damage will not be too great.

自由軟體基金會亦有打算在特定國家內,發布僅具該國效力的官方GPL翻譯版本。採用這種方式,若是翻譯的結果發生錯誤,那麼這個錯誤的影響將僅限於該國GPL授權條款的解釋和適用,而不會讓影響範圍遍布全球。

It will still take considerable expertise and effort from a sympathetic and capable lawyer to make a translation, so we cannot promise any such translations soon.

然而、此一方案有賴於在自由軟體授權知識方面具專精技能及付出熱情的專業法律人員,才能遂行這項工作,所以自由軟體基金會並無法具體界定此類方案的完成期程及相關進度。

++++

為何GNU計畫部份函式庫是以GPL授權,而不是全部以LGPL釋出?

++++Why are some GNU libraries released under the ordinary GPL rather than the Lesser GPL?|

Using the Lesser GPL for any particular library constitutes a retreat for free software. It means we partially abandon the attempt to defend the users' freedom, and some of the requirements to share what is built on top of GPL-covered software. In themselves, those are changes for the worse.

將LGPL授權條款適用在自由軟體基金會釋出的函式庫上,從軟體自由的理念來說,其實是對現實環境的一種讓步。這代表,使用者得到此函式庫時,享有的是較少程度的軟體自由,相較於GPL授權條款,LGPL拘束使用者的義務性要求也較少。然而、從發展這些函式庫的立場來說,這樣的讓步、其實是為了讓函式庫能夠為更多人取用。

Sometimes a localized retreat is a good strategy. Sometimes, using the LGPL for a library might lead to wider use of that library, and thus to more improvement for it, wider support for free software, and so on. This could be good for free software if it happens to a large extent. But how much will this happen? We can only speculate.

LGPL在授權條款義務性要求方面自我抑制,是為了達到擴散自由軟體的策略要點,比方來說、更寬鬆的授權規定,可能會使得LGPL授權的函式庫得到更大幅度的使用,也因為使用的人多了,也許此類函式庫後續的改版、修正活動會更為頻繁。從這個觀點出發,這對推廣自由軟體的立場也算是一件好事。然而從現實面來說,是不是每個以LGPL授權的函式庫都得到了這麼正面的效應,其實欠缺客觀的數據來佐證,有時候、這樣正向發展的邏輯可能只是理論上的推測。

It would be nice to try out the LGPL on each library for a while, see whether it helps, and change back to the GPL if the LGPL didn't help. But this is not feasible. Once we use the LGPL for a particular library, changing back would be difficult.

所以從推廣自由軟體的策略面出發,不妨將自由軟體基金會轄下的函式庫程式,先以LGPL授權釋出,再看此函式庫的後續發展是不是發生如上所述的正面效應,如果不是、那就在新版將其改授權回到GPL。但從現實面來說、函式庫程式嗣後的授權變更其實是困難重重,因為泰半使用者已經習慣以LGPL 寬鬆的方式來利用某個函式庫,那使用態度就很難再更改回到較拘束的GPL。

So we decide which license to use for each library on a case-by-case basis. There is a long explanation of how we judge the question.

所以自由軟體基金會對於轄下函式庫,究竟應用GPL或LGPL的授權方式來釋出,採取個案評估的方式來判斷。細部的評估判準是複雜,也需要花很多時間才能解釋清楚的。

++++

誰有權利去處理GPL程式的不當利用或侵權問題?

++++Who has the power to enforce the GPL?|

Since the GPL is a copyright license, the copyright holders of the software are the ones who have the power to enforce the GPL. If you see a violation of the GPL, you should inform the developers of the GPL-covered software involved. They either are the copyright holders, or are connected with the copyright holders. Learn more about reporting GPL violations.

GPL授權條款本身就是受到著作權保護的著作客體,個別GPL程式的著作權利人,可以依據此份授權文件來聲明、主張他們應有的權利。如果您在使用GPL軟體時,發現了某些GPL程式的不當利用或授權義務違犯行為,您可以通知原程式的開發團隊來處理這個問題。原GPL程式的開發團隊可能本身就是這個程式的著作權利人,或者與原著作權利人之間有聯繫關係。您可以參閱此一連結的內容,來了解怎麼通知原作者處理GPL程式的不當利用或侵權行為

++++

為何自由軟體基金會要求其轄下專案的貢獻者,上傳程式碼時需同步將權利讓渡予自由軟體基金會?若是我營運同類的GPL授權專案,也應該採用這樣的程式碼歸屬政策嗎?若要採行、應該如何去做?

++++Why does the FSF require that contributors to FSF-copyrighted programs assign copyright to the FSF? If I hold copyright on a GPL'ed program, should I do this, too? If so, how?|

Our lawyers have told us that to be in the best position to enforce the GPL in court against violators, we should keep the copyright status of the program as simple as possible. We do this by asking each contributor to either assign the copyright on his contribution to the FSF, or disclaim copyright on it and thus put it in the public domain.

自由軟體基金會的法律顧問們,建議我們應該讓所轄軟體的權利歸屬關係盡量簡單明瞭,以利於在法庭審判上有較佳的地位,維護GPL軟體賦予使用者的軟體自由。自由軟體基金會採取二個方式來達到這個目標,一是建議所轄專案的後續貢獻者,能夠將其改寫/增補部份的程式碼,讓渡予自由軟體基金會,二是直接放棄其改寫/增補程式碼的法定權利,讓這些程式碼歸於公眾領域(Public Domain),從而讓自由軟體基金會或其他不特定多數人自由運用。

We also ask individual contributors to get copyright disclaimers from their employers (if any) so that we can be sure those employers won't claim to own the contributions.

並且、自由軟體亦會提醒個別的程式貢獻者,務必向聘僱他們的公司取得參與自由軟體專案開發的事先允許,以此將工作成果與自由軟體貢獻成果進行分隔切割,以避免聘用人事後聲張這些貢獻到GNU計畫專案的程式碼為其私有的智慧財產權。

Of course, if all the contributors put their code in the public domain, there is no copyright with which to enforce the GPL. So we encourage people to assign copyright on large code contributions, and only put small changes in the public domain.

不過、如果所有的貢獻者都將其所改寫/增補的程式碼置於公共領域,則會導致沒有一個強而有力的著作權利人,能夠捍衛GPL授權軟體的授權規則。所以自由軟體基金會建議您盡量將程式碼的增補,匯集在一個較大的貢獻端來處理,只有那些真的過於細微的除錯和修改,才轉而將其置於公共領域之下。

If you want to make an effort to enforce the GPL on your program, it is probably a good idea for you to follow a similar policy. Please contact licensing@gnu.org if you want more information.

如果您打算自行維護一個以GPL授權條款散布的軟體套件,那建議您可以參照以上自由軟體基金會,關於程式碼歸屬政策的作法。若您需要更進一步的資訊,亦可來信 licensing@gnu.org 詢問。

++++

我可以修改GPL授權條款,以衍生一個新的軟體授權條款嗎?

++++Can I modify the GPL and make a modified license?|

You can use the GPL terms (possibly modified) in another license provided that you call your license by another name and do not include the GPL preamble, and provided you modify the instructions-for-use at the end enough to make it clearly different in wording and not mention GNU (though the actual procedure you describe may be similar).

您可以抽取GPL授權條款的部份文句(其中大半可能也被您修改過了)加至另外的授權條款來使用,假如您不稱此衍生的授權條款為GPL,並且刪除原GPL授權條款的「前言(Preamble)」部份,還有、改寫原GPL授權條款文末關於如何適用條款的文句,當然、條款裡關於GNU計畫的字樣也需要移除,這是為了讓人不至誤解所適用的條款,會是原版的GPL授權條款。

If you want to use our preamble in a modified license, please write to licensing@gnu.org for permission. For this purpose we would want to check the actual license requirements to see if we approve of them.

如果您想摘取GPL授權條款的「前言(Preamble)」至您衍生的條款裡,請您寫信至licensing@gnu.org詢問。其後、自由軟體基金會將審視您衍生條款的具體內容,以決定是否接受您將GPL前言改寫至衍生條款的要求。

Although we will not raise legal objections to your making a modified license in this way, we hope you will think twice and not do it. Such a modified license is almost certainly incompatible with the GNU GPL, and that incompatibility blocks useful combinations of modules. The mere proliferation of different free software licenses is a burden in and of itself.

而雖然自由軟體基金會,對於上述改寫GPL授權條款的方式不會提出法律上的異議,但還是希望您在考慮再三後,能盡量避免這樣的改寫行為。因為這些改寫的授權條款,多半會與原版的GPL授權條款無法相容,因而、以此衍生條款釋出的程式,沒辦法與大部份的GPL程式結合運作。所以、單純的讓自由軟體授權條款產生增殖,對於自由軟體授權條款及程式本身,都會是後續發展的不利因素與阻礙。

++++

為何自由軟體基金會要釋出AGPL3為另一個獨立的GPL類別條款?

++++Why did you decide to write the GNU Affero GPLv3 as a separate license?|

Early drafts of GPLv3 allowed licensors to add an Affero-like requirement to publish source in section 7. However, some companies that develop and rely upon free software consider this requirement to be too burdensome. They want to avoid code with this requirement, and expressed concern about the administrative costs of checking code for this additional requirement. By publishing the GNU Affero GPLv3 as a separate license, with provisions in it and GPLv3 to allow code under these licenses to link to each other, we accomplish all of our original goals while making it easier to determine which code has the source publication requirement.

GPL3版的前期草稿,是要讓Affero風格的授權拘束性,成為第7條「額外添附條款」中,一項權利人可自行勾選後釋出其軟體的選項。然而、某些開發自由軟體的商業公司認為這樣的設計過於複雜且不適合商業運用。這些商業公司認為若是Affero的授權拘束性成為一個選項,那麼利用自由軟體的商業公司,將會在程式碼授權狀態的審檢上,付出過長的時間及過多的行政成本,所以商業公司杯葛此項成為GPL3第7條選項的設計。其後、自由軟體基金會改將AGPL3與GPL3區隔後獨立釋出,但設計上讓GPL3與AGPL3授權的程式,能夠利用連結(Link)的方式,結合在一起運作,卻不會發生授權狀態互相干擾的結果。透過這樣的方式,自由軟體基金會讓AGPL3及GPL3的擁護者,都得到其預期的授權條款,認同Affero風格授權拘束性的程式開發者,可以選擇以AGPL3來授權釋出其軟體,而認同GPL傳統授權拘束性的程式開發者,則可以延用GPL3來授權釋出其軟體,但最後、此二種授權狀態的程式卻又能夠在同一個自由軟體專案中運作,此為自由軟體基金會之所以釋出二款近似卻又有顯著差異GPL類別條款的原因。

++++

對於GPL授權條款的基本了解(General understanding of the GNU licenses)

為何GPL程式容許使用者可以發布自己的衍生版本?

++++Why does the GPL permit users to publish their modified versions?|

A crucial aspect of free software is that users are free to cooperate. It is absolutely essential to permit users who wish to help each other to share their bug fixes and improvements with other users.

對於自由軟體來說,一個不可忽略的核心價值就是合力共工。自由軟體容許軟體的使用者之間,能夠共享軟體的開發除錯以及改良改善的相關資料。

Some have proposed alternatives to the GPL that require modified versions to go through the original author. As long as the original author keeps up with the need for maintenance, this may work well in practice, but if the author stops (more or less) to do something else or does not attend to all the users' needs, this scheme falls down. Aside from the practical problems, this scheme does not allow users to help each other.

部份自由軟體的推動者曾經提議自由軟體基金會,讓GPL授權條款有程式原作者能夠掌控程式的改版進度。若依循這個的建議,若是程式原作者願意持續對該專案進行維護及改版的話,不會有大問題,然而、若是程式的原作者不願意繼續維護該程式的開發,或是開發專案的方式並不符合大部份程式使用者的需求,那麼這樣的方式就會產生弊病。姑且不論此種方式在現實上是否可行,它在作法上會導致程式使用者之間,無法在程式開發上,產生合力共工的關係。

Sometimes control over modified versions is proposed as a means of preventing confusion between various versions made by users. In our experience, this confusion is not a major problem. Many versions of Emacs have been made outside the GNU Project, but users can tell them apart. The GPL requires the maker of a version to place his or her name on it, to distinguish it from other versions and to protect the reputations of other maintainers.

有時候統合標準版本的訴求,在於防止不同GPL衍生程式之間的版本混淆。但以自由軟體基金會的經驗來說,版本混淆的情況並不如同想像中的嚴重,也不會是GPL專案開發上,會碰到的主要問題。舉例來說、Emacs這個GPL授權程式,在GNU計畫外還衍生出了很多修改版本,但是它的使用者並不會感到混淆,而可以很清楚的分辨哪一個是GNU計畫維護的標準版本。就作法上來說、GPL授權條款本來就要求GPL程式的修改者要將其姓名置於修改程式上,目的就是讓不同衍生版本之間有所區隔,也兼顧到不同版本開發者的個人聲譽。

++++

GPL是否要求以其授權的衍生程式,都需要向公眾公開程式源碼?

++++Does the GPL require that source code of modified versions be posted to the public?|

The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.

GPL程式並沒有要求使用者一定要釋出其所修改過的衍生程式,衍生程式的任何一部份都不會被這樣要求。您可以將所得到的GPL程式自由修改後自行使用,並不需要將修改過的程式散布給任何人。這樣的使用對象及於自然人以及法人組織(包括商業公司),也就是說、法人組織亦可以將其所得到的GPL 程式自由修改後供內部使用,並不必然得釋出修改過的衍生程式予其他人。

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.

但是、如果您就是將修改自GPL程式的衍生作品提供給其他人,那此時GPL授權條款就會要求您,將此衍生作品的程式源碼提供給收受程式的使用者,並且要以GPL授權條款的方式授權予這些使用者。

Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.

因此、依照GPL授權條款的規定,若是您散布了GPL程式或其衍生作品,那便得依照其所指定的方式,接續提供程式源碼予收受程式的後手;然而、一開始是否散布此一GPL程式或其衍生作品的決定權,則是掌握在您自己手上。

++++

我可以將GPL程式與其他不相關的非自由軟體,一起灌在同一台電腦上使用嗎?

++++Can I have a GPL-covered program and an unrelated non-free program on the same computer?|

Yes.

就…可以呀。

++++

如果我知道某人手上持有GPL授權的程式,可以直接要求他重製一份給我使用嗎?

++++If I know someone has a copy of a GPL-covered program, can I demand he give me a copy?|

No. The GPL gives him permission to make and redistribute copies of the program if he chooses to do so. He also has the right not to redistribute the program, if that is what he chooses.

不、您無法這樣要求。持有GPL授權程式的人,可以自行決定是否依授權條款的方式去重製散布這個程式;但他亦可以決定不去散布這個程式,散布與否的決定權掌控在其手中,所以您無法向其作出這樣的要求。

++++

GPL授權條款裡「對任何第三方皆有效的書面文件」這句話怎麼解釋?這句話是表示任何人都可以取得GPL授權軟體的程式源碼,而不用管散布者與被散布者之間的關係嗎?

++++What does “written offer valid for any third party” mean in GPLv2? Does that mean everyone in the world can get the source to any GPL'ed program no matter what?|

If you choose to provide source through a written offer, then anybody who requests the source from you is entitled to receive it.

散布GPL程式時,有一種方式是先提供程式可執行檔,並併附一份成文的法律「書面文件」,其後持此文件者,便可以依據它來向GPL程式執行檔的散布者,要求提供該軟體的程式源碼。

If you commercially distribute binaries not accompanied with source code, the GPL says you must provide a written offer to distribute the source code later. When users non-commercially redistribute the binaries they received from you, they must pass along a copy of this written offer. This means that people who did not get the binaries directly from you can still receive copies of the source code, along with the written offer.

所以、倘若這是一個商業性的GPL程式散布行為,散布者一開始並不打算將程式源碼與執行檔合併釋出,GPL授權條款便會要求,散布者必須併附一份成文的法律「書面文件」,與程式執行檔一起散布出去。其後、該執行檔如果在非商業性的狀態下再被散布出去,這些非商業性的散布者,便可以將其當初從商業散布者手上得到的「書面文件」,轉交給其後得到程式執行檔的後手。這樣一來、後手便可執此「書面文件」,向最初散布此一程式的商業散布者,要求提供該執行檔的程式源碼。

The reason we require the offer to be valid for any third party is so that people who receive the binaries indirectly in that way can order the source code from you.

所以在GPL2授權條款中,自由軟體基金會要求上述的「書面文件」,經由任何第三方手持聲明,對於GPL程式的原商業散布者而言皆為有效,這是為了讓非直接從商業散布者得到GPL程式的後手,亦可透過舉證此一「書面文件」的方式,要求商業散布者嗣後提供該軟體的程式源碼。

++++

GPL2表示,GPL程式的衍生作品被散布釋出時,都必須要以GPL2的授權方式授權給當事人以外的「所有第三人」,此處「所有第三人」的指涉標的究竟為何?

++++The GPL says that modified versions, if released, must be “licensed … to all third parties.” Who are these third parties?|

Section 2 says that modified versions you distribute must be licensed to all third parties under the GPL. “All third parties” means absolutely everyone—but this does not require you to *do* anything physically for them. It only means they have a license from you, under the GPL, for your version.

GPL2第2條提到,當GPL程式的衍生作品被散布釋出時,都必須要以GPL2的授權方式授權給當事人以外的「所有第三人」。此處「所有第三人」的意思,指的就是世上所有人,或者較常見的中文用語是「不特定多數人」。然而、此一條款,並非課予GPL程式散布者一個非得要做什麼事的積極義務。這段話的具體意涵其實就是,世上任何一個人得到GPL的衍生程式時,其自動從此一衍生程式的著作權利人手上,得到一份依照GPL授權條款來使用此一程式的授權,就只是這樣而己。

++++

我可以販售GPL程式來獲取金錢嗎?

++++Does the GPL allow me to sell copies of the program for money?|

Yes, the GPL allows everyone to do this. The right to sell copies is part of the definition of free software. Except in one special situation, there is no limit on what price you can charge. (The one exception is the required written offer to provide source code that must accompany binary-only release.)

可以,GPL授權條款允許任何人,都可以靠著散布GPL程式的行為來獲取金錢。事實上、「不禁止商業利用」這個條件,甚至可以說是自由軟體定義裡重要的一環。除了GPL授權條款中特別聲明的例外情況外,散布GPL程式所能收取的價金,可說是沒有數額的限制的 (這個例外情況就是GPL軟體執行檔及程式源碼分開散布時,嗣後單獨提供程式源碼的散布行為,散布者僅能收取提供行為所需的必要費用)。

++++

我可以藉由提供GPL授權軟體的網路下載服務來收取價金嗎?

++++Does the GPL allow me to charge a fee for downloading the program from my site?|

Yes. You can charge any fee you wish for distributing a copy of the program. If you distribute binaries by download, you must provide “equivalent access” to download the source—therefore, the fee to download source may not be greater than the fee to download the binary.

可以、您可以藉由提供GPL授權軟體的網路下載服務來收取價金。然而、倘若您於網站上先提供可執行檔的下載連結,您必須確保在程式源碼的部份,也有「同樣對等」的下載機制。因此、舉例來說,下載軟體程式源碼的費用,就不得超過可執行檔的下載費用,這就是一個簡單的判準。

++++

我是GPL程式的原始著作權利人,可以要求別人嗣後散布這個軟體時,都需要支付我一筆金錢,或是主動聯絡告知我嗎?

++++Does the GPL allow me to require that anyone who receives the software must pay me a fee and/or notify me?|

No. In fact, a requirement like that would make the program non-free. If people have to pay when they get a copy of a program, or if they have to notify anyone in particular, then the program is not free. See the definition of free software.

不行、您不能這樣要求,因為這樣的要求,事實上違反了GPL授權條款所欲保障的「軟體自由」。試想、如果某個GPL程式的原始著作權利人,特別要求程式依GPL後續散布時(此一散布行為不一定是原著作權利人所自為),都需要向其支付費用或是知會原權利人之後方可使用,那麼這樣的軟體基本上就不是自由的,因為該程式其實是不能夠被自由散布的。如果您想知道更多軟體自由的定義細節,可以參閱自由軟體基金會所寫,「自由軟體的定義」這篇專文。

++++

如果我透過散布GPL授權程式來獲取價金,我需要同時對公眾提供一份免收費的版本嗎?

++++If I distribute GPL'd software for a fee, am I required to also make it available to the public without a charge?|

No. However, if someone pays your fee and gets a copy, the GPL gives them the freedom to release it to the public, with or without a fee. For example, someone could pay your fee, and then put her copy on a web site for the general public.

不用。然而、如果有人付費向您取得了這個GPL授權的程式,那他可以自行決定是不是要將該程式提供給一般不特定多數人使用,也就是說、他可以嗣後自行以GPL授權的方式來散布這個軟體,無論後續的散布行為收不收費,您都不能夠去干涉。舉例來說、其他人可以先付費向您取得這個GPL授權的程式,然後他就可以將此軟體放置於網際網路的下載頁面上,宣告此一軟體是以GPL授權釋出,並讓願意以GPL授權方式得到此份軟體的人都能自由下載。

++++

我能夠散布GPL程式的同時,在其上添註保密協定等附加條款嗎?

++++Does the GPL allow me to distribute a copy under a nondisclosure agreement?|

No. The GPL says that anyone who receives a copy from you has the right to redistribute copies, modified or not. You are not allowed to distribute the work on any more restrictive basis.

不可以。GPL授權條款規定,任何人從您手上得到此份GPL授權的程式之後,不論之後修改與否,都有權利透過GPL授權的方式將該程式再散布出去。所以、您並不能在散布GPL程式的同時,還在其上添註影響GPL授權規則的附加條款。

If someone asks you to sign an NDA for receiving GPL-covered software copyrighted by the FSF, please inform us immediately by writing to license-violation@fsf.org.

如果有人在提供自由軟體基金會所釋出的GPL授權程式時,要求您必須要簽署保密協定後才能得到該份軟體。請馬上寄信到 license-violation@fsf.org,來提報這個GPL授權規定的違反事件。

If the violation involves GPL-covered code that has some other copyright holder, please inform that copyright holder, just as you would for any other kind of violation of the GPL.

如果上述的違反情狀,發生在非自由軟體基金會釋出的其他GPL授權程式上,請您通知該GPL程式的著作權利人,基本上這就是一樁GPL授權義務的違反事件,您可以依一般GPL授權義務違反的舉報流程,把這件事舉報給該程式的原作者知道。

++++

Does the GPL allow me to distribute a modified or beta version under a nondisclosure agreement?

++++Does the GPL allow me to distribute a modified or beta version under a nondisclosure agreement?|

No. The GPL says that your modified versions must carry all the freedoms stated in the GPL. Thus, anyone who receives a copy of your version from you has the right to redistribute copies (modified or not) of that version. You may not distribute any version of the work on a more restrictive basis.

++++

Does the GPL allow me to develop a modified version under a nondisclosure agreement?

++++Does the GPL allow me to develop a modified version under a nondisclosure agreement?|

Yes. For instance, you can accept a contract to develop changes and agree not to release your changes until the client says ok. This is permitted because in this case no GPL-covered code is being distributed under an NDA.

You can also release your changes to the client under the GPL, but agree not to release them to anyone else unless the client says ok. In this case, too, no GPL-covered code is being distributed under an NDA, or under any additional restrictions.

The GPL would give the client the right to redistribute your version. In this scenario, the client will probably choose not to exercise that right, but does have the right.

++++

為什麼GPL授權條款規定在散布GPL程式時,一定要把授權條款的內容重製一份併隨散布?

++++Why does the GPL require including a copy of the GPL with every copy of the program?|

Including a copy of the license with the work is vital so that everyone who gets a copy of the program can know what his rights are.

散布GPL程式時附隨散布GPL授權條款的全文內容,這件事非常的重要,因為唯有透過這種方式,收受該GPL軟體的人,才會清楚了解依照GPL得到這份軟體的權利義務關係為何。

It might be tempting to include a URL that refers to the license, instead of the license itself. But you cannot be sure that the URL will still be valid, five years or ten years from now. Twenty years from now, URLs as we know them today may no longer exist.

也許散布GPL程式時,直接附隨GPL授權條款全文網路連結是比較方便的作法,但是這樣的作法並不符合GPL授權條款的規定。因為網路連結到網站上,您無法保證在5年、10年後,該連結的網站頁面是否仍然有效。而說不定再過20年,現今網路連結所採用的技術及格式,早已被時代淘汰,所以利用連結的方式來表達GPL的授權內容,風險太大也不盡穩定。

The only way to make sure that people who have copies of the program will continue to be able to see the license, despite all the changes that will happen in the network, is to include a copy of the license in the program.

所以、為了確保任何得到GPL程式的使用者,都有辦法詳閱GPL授權條款相關規定的細部內容,GPL授權條款要求,散布GPL程式時應附隨散布GPL授權條款的全文內容,這樣無論後續(網路)科技環境如何變化,都不至於有軟體還在散布,但授權資訊不清楚的情況發生。

++++

如果我寫的程式碼行數沒比GPL授權條款本文長多少,我還要用GPL授權條款來釋出我的程式碼嗎?

++++What if the work is not much longer than the license itself?|

If a single program is that short, you may as well use a simple all-permissive license for it, rather than the GNU GPL.

倘若您所撰寫的程式碼如此微量,那建議您可能選用較精簡且寬鬆的自由軟體授權條款來釋出程式碼,而不是GPL這類義務規範性縝密、複雜的授權條款。

++++

當我修改GPL程式時,我需要特別標著修改部份的著作權利為我所有嗎?

++++Am I required to claim a copyright on my modifications to a GPL-covered program?|

You are not required to claim a copyright on your changes. In most countries, however, that happens automatically by default, so you need to place your changes explicitly in the public domain if you do not want them to be copyrighted.

GPL授權條款並不要求GPL程式的改作者,需要特別聲明改作部份的範圍以取得該部份的著作權利。然而、現時大部份國家的著作權法,都預設「創作保護主義」,也就是說、程式經原權利人容許後改作,改作人便自動取得改作部份的著作權利,所以、這部份的著作權利並不需要改作者主動去聲明,反而是、如果程式的改作者不想持有改作部份的著作權利,他才需要特別標註著作權利拋棄的聲明,以讓原來自動取得的著作權利可以歸於公共領域。

Whether you claim a copyright on your changes or not, either way you must release the modified version, as a whole, under the GPL. (if you release your modified version at all)

但無論您是否特別標著改作範圍部份的著作權利,請記得、倘若您再行散布改作過的GPL程式,此一改作程式的每一部份,都只能夠以GPL授權的方式繼續散布出去。

++++

如果一個軟體專案將公眾領域的程式碼及GPL授權的程式碼合併在一起運作,我可以只取用公眾領域的部份,然後繼續以公眾領域的方式來利用這部份的程式碼嗎?

++++If a program combines public-domain code with GPL-covered code, can I take the public-domain part and use it as public domain code?|

You can do that, if you can figure out which part is the public domain part and separate it from the rest. If code was put in the public domain by its developer, it is in the public domain no matter where it has been.

可以、您可以這樣做,假如您能夠很清楚的辨別該專案中,哪些程式碼屬於公共領域,然後無誤的將其抽取出來利用。因為、如果程式碼已經被原權利人宣告屬於公共領域,那它就是公共領域,不會因為這些程式碼處於哪個軟體專案而產生變化。

++++

我希望透過軟體寫作來提升自己的名望,且讓別人透過我的作品來認識我,如果我用GPL授權條款釋出自己的軟體,也可以達到累積名望的目標嗎?

++++I want to get credit for my work. I want people to know what I wrote. Can I still get credit if I use the GPL?|

You can certainly get credit for the work. Part of releasing a program under the GPL is writing a copyright notice in your own name (assuming you are the copyright holder). The GPL requires all copies to carry an appropriate copyright notice.

當然、您可以透過釋出GPL授權的軟體專案來累積您程式寫作方面的名聲。依照GPL授權條款的設計,當您以GPL授權的方式釋出軟體時,本來就應該要加註您的著作權聲明(假設您就是該程式的著作權利人的話)。其後、當此GPL授權程式再被重製散布時,散布者一樣得依GPL授權的相關規定,以適當的方式保留您原來的著作權聲明。

++++

為了精簡檔案空間,我可以刪去GPL授權條款的前言部份,或是後段關於如何標示GPL授權軟體的相關說明嗎?

++++Can I omit the preamble of the GPL, or the instructions for how to use it on your own programs, to save space?|

The preamble and instructions are integral parts of the GNU GPL and may not be omitted. In fact, the GPL is copyrighted, and its license permits only verbatim copying of the entire GPL. (You can use the legal terms to make another license but it won't be the GNU GPL.)

GPL授權條款的前言以及授權標示的說明,皆為條款整體不可分割的一部份,您不能夠刪減它們。事實上、GPL授權條款本身就是受到著作權法保護的文字作品,唯有全文引用不增刪修改的情況下,才是唯一完整且標準的GPL授權條款(您可以取用GPL授權條款的文字, 改寫為另外的軟體授權條款,然而、新的衍生條款,就不會是GNU GPL授權條款)。

The preamble and instructions add up to some 1000 words, less than 1/5 of the GPL's total size. They will not make a substantial fractional change in the size of a software package unless the package itself is quite small. In that case, you may as well use a simple all-permissive license rather than the GNU GPL.

GPL授權條款前言以及授權標示說明加起來大約是1000個字的長度,僅佔GPL授權條款全文不到5分之1的份量。刪減這些部份,並沒有辦法為一般軟體專案精減多少的儲存空間的比例,除了這個軟體專案的程式碼非常微量。如果真是這樣的情形,那自由軟體基金會建議您,可以改用較精簡且寬鬆的自由軟體授權條款來釋出程式碼,而不要選用GPL這類義務規範性縝密、敘述文字較多的授權條款。

++++

若有人說某兩個自由軟體授權條款之間是不相容的,這句話究竟是什麼意思?

++++What does it mean to say that two licenses are “compatible”?|

In order to combine two programs (or substantial parts of them) into a larger work, you need to have permission to use both programs in this way. If the two programs' licenses permit this, they are compatible. If there is no way to satisfy both licenses at once, they are incompatible.

如果要將二個軟體程式(或程式部份的程式碼)合併為一個軟體專案進行運用的話,那要這二個軟體程式的授權狀態都允許您這樣做才可以。所以如果這二個軟體程式的授權條款都允許您進行這樣的合併,則這二個授權條款之間具有相容性,反之、若是這二個授權條款其中一個不允許您進行這樣的合併,那這二個授權條款的授權狀態就是不相容的。

For some licenses, the way in which the combination is made may affect whether they are compatible—for instance, they may allow linking two two modules together, but not allow merging their code into one module.

更進一步來說,授權條款之間是否相容,有時還要考究程式碼之間的結合(Combine)方式究竟為何。舉例來說、某些授權條款容許它的程式碼以單一模組的方式,再與其他授權狀態模組透過連結(Link)結合在一起運作,但卻不容許程式碼以融合(Merge)的方式,與其他授權狀態的程式碼結合為一統合模組。

If you just want to install two separate programs in the same system, it is not necessary that their licenses be compatible, because this does not combine them into a larger work.

然而、如果您僅是要將二個獨立的程式安裝在同一個作業系統中運作,那便毋庸特別考慮程式碼的授權相容問題,因樣這樣的運作方式不會被視為程式碼間的結合運作,所以不會有程式碼授權狀態是否相容的問題。

++++

所謂「授權條款與GPL有相容性」這句話,究竟是什麼意思?

++++What does it mean to say a license is “compatible with the GPL”?|

It means that the other license and the GNU GPL are compatible; you can combine code released under the other license with code released under the GNU GPL in one larger program.

這句話代表,該授權條款與GNU GPL彼此在授權狀態上是相容的;您可以將此授權條款授權的程式碼與GPL授權程式碼結合在同一個軟體專案中進行運用。

All GNU GPL versions permit such combinations privately; they also permit distribution of such combinations provided the combination is released under the same GNU GPL version. The other license is compatible with the GPL if it permits this too.

現今所有版本的GPL授權條款,都容許您將GPL程式碼與其他授權程式碼結合運用,倘若結合後的作品並不續行散布,而僅是您個人內部使用的話;而如果您要將結合後的作品向外散布的話,那就得沿用該版本的GPL授權條款來釋出整個作品。所以一般來說、「授權條款與GPL有相容性」這句話,指的就是該類授權的程式碼,能與GPL授權程式碼結合後,合併為一個軟體專案,並整體皆以GPL授權條款對外散布。

GPLv3 is compatible with more licenses than GPLv2: it allows you to make combinations with code that has specific kinds of additional requirements that are not in GPLv3 itself. Section 7 has more information about this, including the list of additional requirements that are permitted.

第3版的GPL授權條款比起第2版,有著更寬廣的授權相容性:因為第3版的GPL授權條款,在第7條設有「額外添附條款」的機制,所以能夠讓GPL3的授權程式碼,與更多具有特別義務性要求的自由軟體授權程式碼結合在一起。更多這方面的資訊請直接參閱GPL3授權條款第7條,關於哪些義務性規定能成為「額外添附條款」,GPL3第7條皆已做了詳細的列舉。

++++

為何原始4條款的BSD授權條款,會被判定與GPL授權條款不相容呢?

++++Why is the original BSD license incompatible with the GPL?|

Because it imposes a specific requirement that is not in the GPL; namely, the requirement on advertisements of the program. Section 6 of GPLv2 states:

You may not impose any further restrictions on the recipients' exercise of the rights granted herein.

因為4款的BSD授權條款中,有一條「廣告條款」的義務性規定,它與GPL授權條款的義務性規定不盡相容。具體條文請參考2版GPL授權條款的第6條規定:

散布GPL程式者不得課予後手「本條款所無之限制」,去限制後手行使其依GPL授權條款所得之相關權利。

GPLv3 says something similar in section 10. The advertising clause provides just such a further restriction, and thus is GPL-incompatible.

3版的GPL授權條款在第10條的部份也有類似規定。4款BSD的廣告條款被認定是「GPL條款所無之限制」,因為此點、原始4款的BSD授權條款被認為是與GPL授權條款不相容的。

The revised BSD license does not have the advertising clause, which eliminates the problem.

其後修改過的新版BSD授權條款(3款BSD授權條款)刪除了原來的廣告條款,解決了這個BSD授權條款與GPL授權條款間本不相容的問題。

++++

GPL授權條款中「聚合著作」與「修改著作」間的差異在哪裡,又彼此的區隔分界在哪?

++++What is the difference between an “aggregate” and other kinds of “modified versions”?|

An “aggregate” consists of a number of separate programs, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are non-free or GPL-incompatible. The only condition is that you cannot release the aggregate under a license that prohibits users from exercising rights that each program's individual license would grant them.

所謂的「聚合著作(註一)」指的是許多獨立運作的程式,在散布時被儲放在同一個散布媒介,如CD光碟片上一同散布。GPL授權條款容許GPL程式能夠與其他程式,集結為聚合著作後合併散布,即使聚合著作裡其他的程式並非自由軟體,或者在授權狀態上是與GPL不相容亦可。此種作法唯一要注意的地方,就是整個聚合著作的授權方式,並不能去干涉聚合著作裡個別程式所本有的授權規則。

Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

關於程式與程式間的聚合關係,究竟是二個獨立程式被合併儲放,或者是一個程式被切割為二個部份後儲放,這是一個法律問題,也就是說、有權做最後判定的是訴訟發生時的承審法官。不過、原則上,這樣的問題可以從二個層面來進行判定,一是程式與程式間的溝通機制的方式(例如:究竟是以exec、 pipes、rpc,或是呼叫function calls後在同一段共享記憶體區段執行的種種不同方式),第二則是程式與程式間溝通語彙的內容(究竟這二個程式運作時交換的是哪類別的資料)。

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

所以、如果不同的程式模組已經被結合在同一個可執行檔中去運作,那此種結合狀態很明確的就是兩個程式被結合為一個單一程式。而如果是不同的程式模組,但在設計上預設會透過連結的方式,呼叫彼此到同一段共享記憶體去運作,那也幾乎可以表示這兩個模組其實就是一個單一程式的二個部份。

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

以比較的方式來解說,兩個獨立的程式常會透過pipes、sockets,或是下command-line的方式來結合運作。所以如果二個程式模組之間的構通機制是透過pipes、sockets,或是command line的方式,那這二個模組之間的結合關係,通常會被判定就是聚合著作而非程式彼此間的修改著作(註二)。然而、如果這二個程式模組在資訊交換上有著相同結構的語彙邏輯,則就算彼此是透過pipes、sockets,或是command line的方式來溝通,但因為彼此交換的資訊具有層級上的相同性,足證這樣的結合運作關係密不可分,故也有可能例外的被認定是同一個軟體程式的二部份。

註一:此處以「聚合著作」代替傳統慣用語「集合著作」,因集合著作雖是較慣用詞語,但其已為著作權法下有固定意涵的用語,故以少見的「聚合著作」取代之,以因應GPL3以白話字詞取代傳統法律用語的改變。
註二:此處以「修改著作」代替傳統慣用語「衍生著作」,因著作權法上的「Modify-改作」意指相當創作性的修改行為,但GPL授權條款對於「Modify」的解釋範圍更大,涵括的範圍包括單純的「修改」行為,並不必然要求達到創作性的修改,故以少見的「修改著作」取代「衍生著作」,以因應GPL3以白話字詞取代傳統法律用語的改變。

++++

為何自由軟體基金會要求其轄下專案的貢獻者,上傳程式碼時需同步將權利讓渡予自由軟體基金會?若是我營運同類的GPL授權專案,也應該採用這樣的程式碼歸屬政策嗎?若要採行、應該如何去做?

++++Why does the FSF require that contributors to FSF-copyrighted programs assign copyright to the FSF? If I hold copyright on a GPL'ed program, should I do this, too? If so, how?|

Our lawyers have told us that to be in the best position to enforce the GPL in court against violators, we should keep the copyright status of the program as simple as possible. We do this by asking each contributor to either assign the copyright on his contribution to the FSF, or disclaim copyright on it and thus put it in the public domain.

自由軟體基金會的法律顧問們,建議我們應該讓所轄軟體的權利歸屬關係盡量簡單明瞭,以利於在法庭審判上有較佳的地位,維護GPL軟體賦予使用者的軟體自由。自由軟體基金會採取二個方式來達到這個目標,一是建議所轄專案的後續貢獻者,能夠將其改寫/增補部份的程式碼,讓渡予自由軟體基金會,二是直接放棄其改寫/增補程式碼的法定權利,讓這些程式碼歸於公眾領域(Public Domain),從而讓自由軟體基金會或其他不特定多數人自由運用。

We also ask individual contributors to get copyright disclaimers from their employers (if any) so that we can be sure those employers won't claim to own the contributions.

並且、自由軟體亦會提醒個別的程式貢獻者,務必向聘僱他們的公司取得參與自由軟體專案開發的事先允許,以此將工作成果與自由軟體貢獻成果進行分隔切割,以避免聘用人事後聲張這些貢獻到GNU計畫專案的程式碼為其私有的智慧財產權。

Of course, if all the contributors put their code in the public domain, there is no copyright with which to enforce the GPL. So we encourage people to assign copyright on large code contributions, and only put small changes in the public domain.

不過、如果所有的貢獻者都將其所改寫/增補的程式碼置於公眾領域,則會導致沒有一個強而有力的著作權利人,能夠捍衛GPL授權軟體的授權規則。所以自由軟體基金會建議您盡量將程式碼的增補,匯集在一個較大的貢獻端來處理,只有那些真的過於細微的除錯和修改,才轉而將其置於公眾領域之下。

If you want to make an effort to enforce the GPL on your program, it is probably a good idea for you to follow a similar policy. Please contact licensing@gnu.org if you want more information.

如果您打算自行維護一個以GPL授權條款散布的軟體套件,那建議您可以參照以上自由軟體基金會,關於程式碼歸屬政策的作法。若您需要更進一步的資訊,亦可來信 licensing@gnu.org 詢問。

++++

當我取得GPL授權軟體時,能不能取用它部份的程式碼編撰為修改著作,其後散布此一修改作品並進行商業販售?

++++If I use a piece of software that has been obtained under the GNU GPL, am I allowed to modify the original code into a new program, then distribute and sell that new program commercially?|

當我取得GPL授權軟體時,能不能取用它部份的程式碼編撰為修改著作,其後散布此一修改作品並進行商業販售?

You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL. Thus, for instance, you must make the source code available to the users of the program as described in the GPL, and they must be allowed to redistribute and modify it as described in the GPL.

您可以在商業販售的前提下散布GPL程式的修改作品,但是亦僅能夠以GPL授權條款的方式來散布它。因此、舉例來說,從您手上得到該軟體程式目的碼的人,亦可以從您手上得到該軟體的程式源碼,而其後、他們也可以依GPL授權條款的規定,自由地修改及散布此一軟體。

These requirements are the condition for including the GPL-covered code you received in a program of your own.

若是您將GPL授權的程式碼編寫進您的軟體專案中,上述的授權拘束性,亦會及於專案中您自行編寫部份的程式碼。

++++

除了軟體之外、我還能將GPL條款適用於其他類別的客體上嗎?

++++Can I use the GPL for something other than software?|

You can apply the GPL to any kind of work, as long as it is clear what constitutes the “source code” for the work. The GPL defines this as the preferred form of the work for making changes in it.

您可以將GPL授權條款適用於任何其他類別的著作上,只要您能在此著作上,明確界定何謂“源碼”的範圍。就GPL來說,“源碼”的定義就是著作在進行變更時,最適宜拿來作修改基礎的那個格式,就是“源碼”的格式。

However, for manuals and textbooks, or more generally any sort of work that is meant to teach a subject, we recommend using the GFDL rather than the GPL.

然而、像是手冊、書籍這類,以教學目的為主的其他著作物,自由軟體基金會建議您可以改採GNU自由文件授權條款(GNU Free Documentation License, GFDL)來釋出您的作品,因GFDL為GNU計畫下,特別為文字著作所設計的公眾授權條款。

++++

我想用GPL授權條款來釋出我的程式碼,但是我可不可以同時聲明這個軟體不能被用在軍事或是商業用途上呢?

++++I'd like to license my code under the GPL, but I'd also like to make it clear that it can't be used for military and/or commercial uses. Can I do this?|

No, because those two goals contradict each other. The GNU GPL is designed specifically to prevent the addition of further restrictions. GPLv3 allows a very limited set of them, in section 7, but any other added restriction can be removed by the user.

不行,因為這二種授權聲明的目的是互相排斥的。GPL授權條款明訂,前手以GPL授權條款釋出軟體時,不能對後手課予GPL授權條款本身所無之額外限制。第3版的GPL授權條款允許散布者可以增加限定範圍的「額外添附條款」,這些「額外添附條款」的內容都列舉在3版GPL第7條的授權條款裡,然而、除了第7條列舉的這些內容外,所有散布者自行添加的額外限制聲明,都會被視為與GPL授權本文相斥而歸於無效,而可以被收受此程式的後手自行刪除掉。

++++

我可以用GPL授權條款來釋出我的硬體嗎?

++++Can I use the GPL to license hardware?|

Any material that can be copyrighted can be licensed under the GPL. GPLv3 can also be used to license materials covered by other copyright-like laws, such as semiconductor masks. So, as an example, you can release a drawing of a hardware design under the GPL. However, if someone used that information to create physical hardware, they would have no license obligations when distributing or selling that device: it falls outside the scope of copyright and thus the GPL itself.

任何作品能夠受到著作權法的保護,就可以適用GPL授權條款來對外釋出。3版GPL的適用範圍更廣,它的適用範圍除了著作權的保護客體外,亦及於其他類著作權的智慧財產權保護客體,像是半導體電路佈局設計藍圖等等。所以、舉例來說,您可以GPL授權條款來授權釋出您的硬體設計藍圖。然而、如果有人取用這份設計藍圖來製造實體裝置,GPL授權條款的授權拘束效力將不及於這個實體裝置,因為這樣的實體裝置已經超出著作權法或其他相類智慧財產權法的保護範圍,所以也超出了GPL授權條款所欲規範的範圍。

++++

透過「預作連結」技術預載GPL授權的執行檔以更有效率的運用其後許多的共享資料庫,這樣的利用方式會讓整個專案變成GPL授權的修改作品嗎?

++++Does prelinking a GPLed binary to various libraries on the system, to optimize its performance, count as modification?|

No. Prelinking is part of a compilation process; it doesn't introduce any license requirements above and beyond what other aspects of compilation would. If you're allowed to link the program to the libraries at all, then it's fine to prelink with them as well. If you distribute prelinked object code, you need to follow the terms of section 6.

不會。「預作連結(註一)」這樣的技術,其實可以算是程式整體編譯流程中的一部份;它並沒有逾越一般程式編譯流程的範圍,自然就不會去牽扯到修改GPL程式碼,後續可能產生的授權相容問題。所以如果您本來依照GPL授權條款的規定,就被容許以連結的方式去利用這個GPL程式來呼叫其後的共享資料庫,那麼您選擇以「預作連結」的方式來利用這個GPL程式,就也是受到容許的。然而、如果您散布了這類啟用「預作連結」機制到GPL程式的軟體專案,請記得其中的GPL程式還是得以GPL授權條款的規定向後散布,您得參照GPL授權條款第6條關於散布非原始碼格式GPL軟體的規定,來提供這部份軟體的程式源碼。

註一:關於prelinking,可參照Gentoo Linux關於Prelink的說明頁面: http://www.gentoo.org/doc/zh_tw/prelink-howto.xml

++++

LGPL授權的函式庫在Java語言的環境下被編譯,應用程式與函式庫彼此的授權狀態能夠適切地運作嗎?

++++How does the LGPL work with Java?|

See this article for details. It works as designed, intended, and expected.

能運作、運作無誤,並且如預期規劃的運作良好。更多這部份的資訊請參照David Turner所撰寫的"The LGPL and Java"這篇文章。

++++

為什麼GPL-3.0要改用「增殖、傳遞」這種新的詞彙來取代傳統的「重製、散布」?

++++Why did you invent the new terms “propagate” and “convey” in GPLv3?|

The term “distribute” used in GPLv2 was borrowed from United States copyright law. Over the years, we learned that some jurisdictions used this same word in their own copyright laws, but gave it different meanings. We invented these new terms to make our intent as clear as possible no matter where the license is interpreted. They are not used in any copyright law in the world, and we provide their definitions directly in the license.

2版GPL授權條款裡「散布」這個詞彙,是直接抄自美國著作權法的條文內容。經過了這麼多年,自由軟體基金會認識到,世上有部份的司法管轄區域,在他們國家的著作權法裡也使用這個詞彙,但其定義和範圍卻和美國著作權法有若干差異。所以、自由軟體基金會在3版GPL授權條款裡,改用「增殖、傳遞」這類新詞彙,以降低GPL授權條款在不同國家被解讀錯誤的風險。用這類非法律專有名詞的詞彙,能讓各國的法院在承審GPL爭訴案件時,能直接參照 GPL3授權條款本文的文義解釋,而不會逕行適用其國內既定的著作權法概念。

++++

GPL3裡「傳遞」這個字,與GPL2裡「散布」這個字的定義是相同的嗎?

++++Is “convey” in GPLv3 the same thing as what GPLv2 means by “distribute”?|

Yes, more or less. During the course of enforcing GPLv2, we learned that some jurisdictions used the word “distribute” in their own copyright laws, but gave it different meanings. We invented a new term to make our intent clear and avoid any problems that could be caused by these differences.

是的、2版GPL授權條款所稱的「散布」,與3版所稱之「傳遞」,其定義與範圍大致相同。在推廣2版GPL授權條款的時候,自由軟體基金會發現,世上有部份的司法管轄區域,在他們國家的著作權法裡也使用「散布」這個詞彙,但其定義和範圍卻和GPL授權條款的內容有若干差異。所以、自由軟體基金會在3版GPL授權條款裡,改用「傳遞」這個新詞彙,以降低它在不同國家被解讀錯誤的風險。

++++

如果我僅僅拷貝GPL授權軟體自行使用,卻沒有任何後續的散布或傳遞行為,還有哪些義務性規定是我要主動遵守的嗎?

++++If I only make copies of a GPL-covered program and run them, without distributing or conveying them to others, what does the license require of me?|

Nothing. The GPL does not place any conditions on this activity.

沒有。如果是這種內部利用的方式,GPL授權條款並沒有課予您任何其他的義務性規定。

++++

GPL-3.0認為「將程式提供予公眾」該當於程式增殖,這句話是什麼意思?難道「將程式提供予公眾」也是傳遞程式的具體方法嗎?

++++GPLv3 gives “making available to the public” as an example of propagation. What does this mean? Is making available a form of conveying?|

One example of “making available to the public” is putting the software on a public web or FTP server. After you do this, some time may pass before anybody actually obtains the software from you—but because it could happen right away, you need to fulfill the GPL's obligations right away as well. Hence, we defined conveying to include this activity.

舉例來說、將軟體放置於公開的網頁或FTP伺服器上讓人下載,這就是一種「將程式提供予公眾」的方式。當您將軟體放置於網頁上,雖然使用者並不一定會馬上下載,但因為這樣的可能性並不是沒有,所以當您將軟體放置於網頁時,GPL授權條款認為此行為已經該當於程式被傳遞,所以上傳者亦應同時提供該軟體的程式源碼讓人下載。

++++

既然將軟體「提供予公眾」下載時,就該當了GPL-3.0所定義「增殖、傳遞」的範圍,那什麼樣的狀況,是僅該當於「增殖」卻不算是「傳遞」呢?

++++Since distribution and making available to the public are forms of propagation that are also conveying in GPLv3, what are some examples of propagation that do not constitute conveying?|

Making copies of the software for yourself is the main form of propagation that is not conveying. You might do this to install the software on multiple computers, or to make backups.

拷貝一份GPL授權軟體然後自行使用,這樣的狀況就該當於「增殖」而與「傳遞」無涉。一般來說、您為自己的多台電腦安裝同一GPL程式時會發生這個狀況,或也可能發生在您為軟體制作備份以防不時之需時。

++++

3版GPL授權條款如何讓GPL程式透過P2P散布更方便?

++++How does GPLv3 make BitTorrent distribution easier?|

Because GPLv2 was written before peer-to-peer distribution of software was common, it is difficult to meet its requirements when you share code this way. The best way to make sure you are in compliance when distributing GPLv2 object code on BitTorrent would be to include all the corresponding source in the same torrent, which is prohibitively expensive.

在2版GPL授權條款撰寫的年代,P2P這種檔案傳輸技術仍尚未普及,所以要使用P2P的方式來散布GPL2授權的程式碼,困難度是比較高的。要使用P2P的方式來散布GPL2的軟體,最符合GPL2授權條款的方式,就是在以P2P散布GPL2程式的可執行檔時,併行散布其所有的程式源碼,而這樣的作法,會使得散布GPL程式時所需的時間與頻寬成本大量增加。

GPLv3 addresses this problem in two ways. First, people who download this torrent and send the data to others as part of that process are not required to do anything. That's because section 9 says “Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance [of the license].”

3版的GPL授權條款,針對P2P傳輸的問題,做了二個改變。第一個改變就是,使用者透過P2P的方式下載GPL程式時的自動化上傳動作,並不會被列為GPL程式碼的散布行為。這是因為3版GPL授權條款的第9條直接界定:「單純透過P2P傳輸模式對GPL程式所為之輔助性增殖行為,並不等價於了解並接受GPL授權條款後所為之散布行為」。

Second, section 6(e) of GPLv3 is designed to give distributors—people who initially seed torrents—a clear and straightforward way to provide the source, by telling recipients where it is available on a public network server. This ensures that everyone who wants to get the source can do so, and it's almost no hassle for the distributor.

而3版GPL授權條款在P2P方面的第二個改變在第6條e項,其允許以P2P方式散布GPL程式目的碼的散布者,可以同時公布程式源碼的下載連結,來滿足提供GPL程式源碼的義務性規定。此種方式讓想得到程式源碼的使用者另行下載源碼,散布者並非必然需將程式目的碼與程式源碼合併在同一 P2P散布流程中進行散布。此種彈性作法,一方面保障了GPL程式的使用者嗣後取得程式源碼的權利,一方面也有助於節省散布者提供程式源碼所需的時間與頻寬成本。

++++

「Tivo化」指的是什麼東西?為什麼3版GPL授權條款要增訂條款來禁止它?

++++What is tivoization? How does GPLv3 prevent it?|

Some devices utilize free software that can be upgraded, but are designed so that users are not allowed to modify that software. There are lots of different ways to do this; for example, sometimes the hardware checksums the software that is installed, and shuts down if it doesn't match an expected signature. The manufacturers comply with GPLv2 by giving you the source code, but you still don't have the freedom to modify the software you're using. We call this practice tivoization.

某些裝置內含自由軟體,但又設計一些鉗制手段讓這些自由軟體後續不能被使用者修改。技術上有許多方法可以達到上述的目的,舉例來說、某些裝置的硬體上設有自動檢核機制,只要查出內含軟體已被修改不符預設簽章,就會自動將機器關閉拒絕運作。這樣的運作機制,倘若適用在GPL2授權的軟體程式上,雖然裝置的製造商還是會依2版GPL授權條款的規定,提供該軟體的程式源碼給收受裝置的使用者,但實際上使用者對該GPL2軟體並沒有改作權,因為軟體一經修改就不能再在硬體裝置上運作。這樣的手法,自由軟體基金會稱其為「Tivo化」機制,並且在3版GPL授權條款裡,明文限制此種惡意規避GPL授權義務規定的利用方式(因為運作此種手法最為出名者,為Tivo電視節目預錄盒系列產品)。

When people distribute User Products that include software under GPLv3, section 6 requires that they provide you with information necessary to modify that software. User Products is a term specially defined in the license; examples of User Products include portable music players, digital video recorders, and home security systems.

有鑑於商業散布者確實會探究「Tivo化」這類的GPL義務規避手法,為了防堵日後相類的狀況,3版GPL授權條款的第6條規定,當人們散布「一般性消費產品」內嵌有GPL3授權的軟體,散布者除了提供單純供研究之用的程式源碼外,亦應一併提供能幫助消費者進行軟體修改的說明資訊。「一般性消費產品」在3款GPL授權條款裡,是一個特別被定義及律定範圍的專有名詞;所謂「一般性消費產品」,以實例來說明,像是隨身攜帶式的音樂播放器、數位影像錄影機,甚至是居家安全照護監視系統,都已經被定義在這個範疇裡面。

++++

3版的GPL授權條款禁止所有DRM技術的運用嗎?

++++Does GPLv3 prohibit DRM?|

It does not; you can use code released under GPLv3 to develop any kind of DRM technology you like. However, if you do this, section 3 says that the system will not count as an effective technological “protection” measure, which means that if someone breaks the DRM, he will be free to distribute his software too, unhindered by the DMCA and similar laws.

並不是這樣;您可以利用GPL3授權的程式碼來寫就內嵌DRM(Digital Right Management, 數位權利管理)機制的軟體。然而、在您這樣做的同時,GPL3第3條同時律定,這類的數位權利管理機制,並不能違逆GPL授權程式允許後手自由地修改程式的原來預設,也就是說、這樣的DRM機制,未必會成為有效的技術防護手段。因為依照3版GPL授權條款的規定,若是某個使用者破解了GPL3軟體的DRM 防護機制,那他後續可以自由地散布這個已被破解的版本,而不會受到DMCA(Digital Millennium Copyright Act, 數位千禧年著作權法案)及其他相類法律的限制。

As usual, the GNU GPL does not restrict what people do in software, it just stops them from restricting others.

如同之前所提到的,GNU GPL授權條款的設計宗旨,並不是去限制使用者使用GPL軟體的權利,相反的、它是設計來防止其他人限制使用者使用這些軟體的權利。

++++

照3版GPL授權條款的規定,如果投票機裡內嵌GPL-3.0的程式,那麼使用機器的投票人,也有取得投票機程式源碼的權利囉?

++++Does GPLv3 require that voters be able to modify the software running in a voting machine?|

No. Companies distributing devices that include software under GPLv3 are at most required to provide the source and Installation Information for the software to people who possess a copy of the object code. The voter who uses a voting machine (like any other kiosk) doesn't get possession of it, not even temporarily, so the voter also does not get possession of the binary software in it.

不對、不是這樣的。3版GPL授權條款的規定,指的是當廠商散布內嵌GPL3程式的機器裝置時,這樣的行為等同消費者取得這台機器內嵌的 GPL3程式執行目的碼,所以連帶依GPL3要求,廠商需要提供使用者得以進階修改,該軟體的程式源碼及相關的安裝資訊給消費者。而一般使用電子投票裝置來進行投票的狀況,並不等同上述的情形,因為投票人使用電子投票機器時(類似「多媒體導覽機」這類的投票機器),並沒有對這台機器具有法律上佔有的事實,這樣的利用方式甚至連暫時性的佔有都稱不上,所以、投票機的使用者亦沒有佔有這台機器上內嵌的GPL3程式執行目的碼,所以就無法以得到GPL3程式目的碼的地位,要求廠商需一併或後續提供此軟體的程式源碼。

Note, however, that voting is a very special case. Just because the software in a computer is free does not mean you can trust the computer for voting. We believe that computers cannot be trusted for voting. Voting should be done on paper.

附帶一提,投票機算是一個非常特殊的例子。以自由軟體基金會的立場來說,不能說投票機上內嵌了讓人自由修改的軟體,使用者就能夠百分之百信任上面的投票運算機制是完全安全無誤的。其實投票這種事,最好還是不要完全依賴電子運算機制,嚴肅且具影響力的投票活動,還是應該回歸傳統的書面投票機制,以更慎重的態度來進行才對。

++++

聽說3版GPL授權條款內含有「軟體專利報復條款」,這是真的嗎?

++++Does GPLv3 have a “patent retaliation clause”?|

In effect, yes. Section 10 prohibits people who convey the software from filing patent suits against other licensees. If someone did so anyway, section 8 explains how they would lose their license and any patent licenses that accompanied it.

事實上、是真的沒錯。依3版GPL授權條款第10條的規定,某一GPL3程式的散布者,不得向其他依GPL3收受此程式的其他使用者,提出各類型的軟體專利侵權訴訟(包括本訴、反訴、附帶訴訟皆不可)。如果此散布者訴請了上述的軟體專利侵權訴訟,則依3版GPL授權條款第8條的規定,原本他依3版GPL授權條款所能得到的著作權及專利權授權,都會一併失去。

++++

在3版GPL與AGPL授權條款裡,「不論條款其他部份的文字怎麼說」這段文句怎麼解讀?

++++In GPLv3 and AGPLv3, what does it mean when it says “notwithstanding any other provision of this License”?|

This simply means that the following terms prevail over anything else in the license that may conflict with them. For example, without this text, some people might have claimed that you could not combine code under GPLv3 with code under AGPLv3, because the AGPL's additional requirements would be classified as “further restrictions” under section 7 of GPLv3. This text makes clear that our intended interpretation is the correct one, and you can make the combination.

「不論條款其他部份的文字怎麼說」。當這段文字出現時,代表它其後律定的規則具有優先性,能夠排除3版GPL及AGPL授權條款中的其他規定而被優先適用。舉例來說、如果沒有這段文字,某些人可能會認為GPL3與AGPL3授權的程式不具有結合運作的相容性,這是因為AGPL3關於網路連結的特別規定,從GPL3授權相容的立場來解讀,可能會被解讀為GPL3所定義的「增設條款本身所無之限制」,並且也不屬於GPL3第7條所律定的「額外添附條款」之列舉項目,而得到GPL3與AGPL3授權程式不具有相容性這個結論。但實際上,GPL3與AGPL3的授權條款裡,都明文律定GPL3與 AGPL3授權的程式碼就是具有相容性(能結合運作,並且不干涉程式碼彼此原來的授權狀態),並且在說明上加上這句「不論條款其他部份的文字怎麼說」,以強調這個規則與授權條款其他部份的規則相較,具有適用上的優先性。

This text only resolves conflicts between different terms of the license. When there is no conflict between two conditions, then you must meet them both. These paragraphs don't grant you carte blanche to ignore the rest of the license—instead they're carving out very limited exceptions.

然而、這樣的說明文字,只適用在解決條款規定間發生衝突的狀況。若是條款規定並沒有產生衝突,那表示軟體的使用者需同時滿足授權條款所律定的全部義務性規定。「不論條款其他部份的文字怎麼說」,這句話並沒有對程式的使用者進行空白授權,它的設計目的、只是告知你在條款義務性發生衝突時,您應該要優先適用哪些義務性規定,實際上、這只會發生在極少數的例外情況下。

++++

在3版AGPL授權條款的定義下,什麼樣的情況該當於「透過網路遠距存取AGPL-3.0授權的程式」,而需要受到AGPL-3.0授權條款的拘束?

++++In AGPLv3, what counts as “ interacting with [the software] remotely through a computer network?”|

If the program is expressly designed to accept user requests and send responses over a network, then it meets these criteria. Common examples of programs that would fall into this category include web and mail servers, interactive web-based applications, and servers for games that are played online.

如果該軟體明確地被設計來讓使用者透過網路連結,提出其呼叫並提供後續服務的話,就該當於AGPL3所說「透過網路遠距存取AGPL3授權程式」的標準。一般來說、符合此一標準的例子包括,網頁伺服器、郵件伺服器、互動式的網頁應用程式,還有線上遊戲的網路伺服器。

If a program is not expressly designed to interact with a user through a network, but is being run in an environment where it happens to do so, then it does not fall into this category. For example, an application is not required to provide source merely because the user is running it over SSH, or a remote X session.

如果該軟體並非明確設計為專門透過網路來與使用者互動,而僅是運作上偶而符合這樣的方式,這並不會使程式直接該當於AGPL3這項規定,而被進一步要求依AGPL3授權條款的規定,向網路使用者提供程式源碼。舉例來說,透過SSH或是遠距X session的方式來啟動X-Windows的桌面環境,這就不是一種專門設計好的網路互動模式,如果該AGPL3程式僅開放使用者此類的網路利用,便不會開啟AGPL3授權條款的授權拘束性。

++++

3版GPL授權條款裡「您」這個字詞與2版Apache授權條款裡說的「法律授權主體」有何不同?

++++How does GPLv3's concept of “you” compare to the definition of “Legal Entity” in the Apache License 2.0?|

They're effectively identical. The definition of “Legal Entity” in the Apache License 2.0 is very standard in various kinds of legal agreements—so much so that it would be very surprising if a court did not interpret the term in the same way in the absence of an explicit definition. We fully expect them to do the same when they look at GPLv3 and consider who qualifies as a licensee.

這二個字詞指的是一樣的東西。2版Apache授權條款裡用的「法律授權主體」這個詞,在一般法律授權文件裡也十分常見,而法院在處理授權爭議時,也鮮少會去誤判這個詞的指涉範圍。而3版GPL授權條款裡用「您」這個用語,也是一樣的概念,指的就是合法得到GPL3程式授權的被授權人。自由軟體基金會也期盼,法院在處理GPL3的授權爭議時,能類同解讀2版Apache授權條款「法律授權主權」的態度,也一樣不要去誤判它的指涉範圍。

++++

3版GPL授權條款裡「所轄程式」這個字詞指的是什麼?它是指曾經以GPL3授權釋出的所有軟體嗎?

++++In GPLv3, what does “the Program” refer to? Is it every program ever released under GPLv3?|

The term “the Program” means one particular work that is licensed under GPLv3 and is received by a particular licensee from an upstream licensor or distributor. The Program is the particular work of software that you received in a given instance of GPLv3 licensing, as you received it.

在3版GPL授權條款裡,「所轄程式」這個用語指的就是,散布程式的前手以GPL3授權條款傳遞予收受程式後手的那個軟體。簡單來說、「所轄程式」指的就是他人以GPL3授權方式散布的軟體,當您收受它的同時,其後運用就已經受到GPL3授權條款的拘束。

“The Program” cannot mean “all the works ever licensed under GPLv3”; that interpretation makes no sense for a number of reasons. We've published an analysis of the term “the Program” for those who would like to learn more about this.

然而、「所轄程式」這個用語,不會指涉到「曾經以GPL3授權釋出的所有軟體」;因為這樣的解讀方式從很多面像來解釋都沒有什麼實質意義。自由軟體基金會有一篇專文是分析「GPL3所轄程式」的指涉範圍,如果您對於這個議題有深入了解的興趣,可以進一步閱讀這篇文章。

++++

如果某個用戶端的軟體是以AGPL-3.0授權的,用戶端的使用者需要將程式源碼提供給該軟體伺服器端的使用者嗎?

++++If some network client software is released under AGPLv3, does it have to be able to provide source to the servers it interacts with?|

This should not be required in any typical server-client relationship. AGPLv3 requires a program to offer source code to “all users interacting with it remotely through a computer network.” In most server-client architectures, it simply wouldn't be reasonable to argue that the server operator is a “user” interacting with the client in any meaningful sense.

一般常見的用戶端與伺服器端的互動模式下是不用的。因為3版AGPL授權條款是規定,在「其他程式以網路互動的方式利用這個AGPL3授權的軟體時」,該提供AGPL3軟體服務者,才需要向網路使用者提供該軟體的程式源碼。而在一般用戶端與伺服器端的運作架構下,伺服器端的程式不大可能會被認定是透過網路來利用用戶端的程式,反之、一般的架構是用戶端的程式透過網路來利用伺服器端的程式,所以該用戶端的AGPL3程式,並不是透過網路而被伺服器端的程式利用,故不需要額外提供該用戶端軟體的程式源碼予伺服器端的使用者。

Consider HTTP as an example. All HTTP clients expect servers to provide certain functionality: they should send specified responses to well-formed requests. The reverse is not true: servers cannot assume that the client will do anything in particular with the data they send. The client may be a web browser, an RSS reader, a spider, a network monitoring tool, or some special-purpose program. The server can make absolutely no assumptions about what the client will do—so there's no meaningful way for the server operator to be considered a user of that software.

舉HTTP為例來說明。HTTP用戶端程式呼叫HTTP伺服器端程式來獲取一定格式的功能回應,然而、反向,HTTP伺服器端程式對於用戶端程式,就並沒有這樣的呼叫與回應機制,並且HTTP伺服器端也無法限定用戶端對於回應資訊的利用方式。HTTP用戶端的程式也許是一個網頁瀏覽器、 RSS新聞閱讀器、Spider資料擷取器、網頁活動監控器,或是其他特定目的軟體程式。所以從HTTP伺服器的例子來看,軟體程式的伺服器端並沒有辦法控管用戶端會怎麼利用其所傳遞的資訊,自然、以3版AGPL授權條款的角度來評判,伺服器端程式與用戶端AGPL3授權程式的互動關係,並不會被判定為「利用」用戶端程式的關係,所以用戶端程式的使用者,也就不需要額外提供該用戶端軟體的程式源碼予伺服器端服務的提供者。

++++

如何將GNU授權條款適用到您的軟體專案(Using GNU licenses for your programs)

如何將我原以(L)GPL2授權的程式,升級為以(L)GPL3授權?

++++How do I upgrade from (L)GPLv2 to (L)GPLv3?|

First, include the new version of the license in your package. If you're using LGPLv3 in your project, be sure to include copies of both GPLv3 and LGPLv3, since LGPLv3 is now written as a set of additional permissions on top of GPLv3.

首先,記得要將內含3版GPL授權條款全部內容的檔案放進軟體專案的打包目錄下。如果您是想用LGPL3來釋出這個專案,此一授權說明檔案要包括GPL3及LGPL3的全部文字內容,因為從3版LGPL開始,LGPL授權條款的架構是奠基於GPL授權條款之上,唯有將GPL3與LGPL3的授權規定合併以觀,才是LGPL3授權條款的全部內容。

Second, replace all your existing v2 license notices (usually at the top of each file) with the new recommended text available on the GNU licenses howto. It's more future-proof because it no longer includes the FSF's postal mailing address.

再來,將原來2版GPL的授權聲明(這些聲明通常存在專案每個檔案的檔頭部份)以3版建議的方式置換掉。3版建議的授權聲明方式較不會過時,因為已經將原本自由軟體基金會實體郵遞信箱的連絡方式移除,而另以更符合現實需求的電子化連絡方式取代。

Of course, any descriptive text (such as in a README) which talks about the package's license should also be updated appropriately.

當然,如果舊有的說明檔有提及任何的授權資訊,亦需要一併從2版GPL變更為3版GPL。

++++

可以用步驟化的解說方式,教我怎麼將GPL授權條款適用到我的程式上嗎?

++++Could you give me step by step instructions on how to apply the GPL to my program?|

See the page of GPL instructions.

請參閱「如何將GPL授權條款適用到您的程式」這篇文章。

++++

為什麼我要選擇GPL來釋出我的自由軟體,而不是選用其他的自由軟體授權條款?

++++Why should I use the GNU GPL rather than other free software licenses?|

Using the GNU GPL will require that all the released improved versions be free software. This means you can avoid the risk of having to compete with a proprietary modified version of your own work. However, in some special situations it can be better to use a more permissive license.

選擇GPL來釋出您軟體的最大好處,在於GPL釋出後的所有改寫版本都一定會是開放源碼的自由軟體。也就是說、將不會有非開放源碼的私有軟體(Proprietary Software),是改寫於您開放源碼的原作品,從而您毋需面對心血為人改寫後卻不知對方如何改寫的窘境。然而、在某些特殊的情況下,自由軟體基金會有時候會建議您改用比GPL更寬鬆的自由軟體授權條款來釋出您的軟體,這方面的細節,要看個案的狀況來判斷。

++++

為什麼GPL授權條款規定在散布GPL程式時,一定要把授權條款的內容重製一份併隨散布?

++++Why does the GPL require including a copy of the GPL with every copy of the program?|

Including a copy of the license with the work is vital so that everyone who gets a copy of the program can know what his rights are.

散布GPL程式時附隨散布GPL授權條款的全文內容,這件事非常的重要,因為唯有透過這種方式,收受該GPL軟體的人,才會清楚了解依照GPL得到這份軟體的權利義務關係為何。

It might be tempting to include a URL that refers to the license, instead of the license itself. But you cannot be sure that the URL will still be valid, five years or ten years from now. Twenty years from now, URLs as we know them today may no longer exist.

也許散布GPL程式時,直接附隨GPL授權條款全文網路連結是比較方便的作法,但是這樣的作法並不符合GPL授權條款的規定。因為網路連結到網站上,您無法保證在5年、10年後,該連結的網站頁面是否仍然有效。而說不定再過20年,現今網路連結所採用的技術及格式,早已被時代淘汰,所以利用連結的方式來表達GPL的授權內容,風險太大也不盡穩定。

The only way to make sure that people who have copies of the program will continue to be able to see the license, despite all the changes that will happen in the network, is to include a copy of the license in the program.

所以、為了確保任何得到GPL程式的使用者,都有辦法詳閱GPL授權條款相關規定的細部內容,GPL授權條款要求,散布GPL程式時應附隨散布GPL授權條款的全文內容,這樣無論後續(網路)科技環境如何變化,都不至於有軟體還在散布,但授權資訊不清楚的情況發生。

++++

如果我寫的程式碼行數沒比GPL授權條款本文長多少,我還要用GPL授權條款來釋出我的程式碼嗎?

++++What if the work is not much longer than the license itself?|

If a single program is that short, you may as well use a simple all-permissive license for it, rather than the GNU GPL.

倘若您所撰寫的程式碼如此微量,那建議您可能選用較精簡且寬鬆的自由軟體授權條款來釋出程式碼,而不是GPL這類義務規範性縝密、複雜的授權條款。

++++

為了精簡檔案空間,我可以刪去GPL授權條款的前言部份,或是後段關於如何標示GPL授權軟體的相關說明嗎?

++++Can I omit the preamble of the GPL, or the instructions for how to use it on your own programs, to save space?|

The preamble and instructions are integral parts of the GNU GPL and may not be omitted. In fact, the GPL is copyrighted, and its license permits only verbatim copying of the entire GPL. (You can use the legal terms to make another license but it won't be the GNU GPL.)

GPL授權條款的前言以及授權標示的說明,皆為條款整體不可分割的一部份,您不能夠刪減它們。事實上、GPL授權條款本身就是受到著作權法保護的文字作品,唯有全文引用不增刪修改的情況下,才是唯一完整且標準的GPL授權條款(您可以取用GPL授權條款的文字, 改寫為另外的軟體授權條款,然而、新的衍生條款,就不會是GNU GPL授權條款)。

The preamble and instructions add up to some 1000 words, less than 1/5 of the GPL's total size. They will not make a substantial fractional change in the size of a software package unless the package itself is quite small. In that case, you may as well use a simple all-permissive license rather than the GNU GPL.

GPL授權條款前言以及授權標示說明加起來大約是1000個字的長度,僅佔GPL授權條款全文不到5分之1的份量。刪減這些部份,並沒有辦法為一般軟體專案精減多少的儲存空間的比例,除了這個軟體專案的程式碼非常微量。如果真是這樣的情形,那自由軟體基金會建議您,可以改用較精簡且寬鬆的自由軟體授權條款來釋出程式碼,而不要選用GPL這類義務規範性縝密、敘述文字較多的授權條款。

++++

我要如何註冊自己程式的著作權,以便將其以GPL授權條款向外釋出呢?

++++How do I get a copyright on my program in order to release it under the GPL?|

Under the Berne Convention, everything written is automatically copyrighted from whenever it is put in fixed form. So you don't have to do anything to “get” the copyright on what you write—as long as nobody else can claim to own your work.

依據伯恩公約,任何著作物在作品完成時,都自動受到著作權利的保護。所以當您撰寫軟體程式時,並不需要特別向哪一個特定機構去註冊該軟體的著作權,除非這個軟體程式的著作權利,已經依僱傭或其他契約,預設歸屬於其他人。

However, registering the copyright in the US is a very good idea. It will give you more clout in dealing with an infringer in the US.

然而、若在美國,為了更縝密的保障自己的權利,特別申請著作權利註冊也不失為一個好主意。因為若是日後發生著作權利侵權糾紛時,對於侵權者,您將可以站在更有力的反擊立場。

The case when someone else might possibly claim the copyright is if you are an employee or student; then the employer or the school might claim you did the job for them and that the copyright belongs to them. Whether they would have a valid claim would depend on circumstances such as the laws of the place where you live, and on your employment contract and what sort of work you do. It is best to consult a lawyer if there is any possible doubt.

所謂軟體程式的著作權利,已經依僱傭或其他契約,預設歸屬於其他人的狀況,通常發生在您的身份是公司的聘員或是學校的學生時;因為此時您的聘用人或是學校單位,可能會聲明您的軟體寫作成果,乃是基於工作職掌或是專題研究的產出,所以其著作權利需歸於出資的公司或是學校單位所有。而實際是否您的公司及學校會有這樣的聲明,取決的要素包括您工作及就學地點的法律規定,您與僱主之間的聘僱契約及工作內容。如果您就這部份的細節存有疑問,最好的解疑方式就是徵詢當地律師的專業法律意見。

If you think that the employer or school might have a claim, you can resolve the problem clearly by getting a copyright disclaimer signed by a suitably authorized officer of the company or school. (Your immediate boss or a professor is usually NOT authorized to sign such a disclaimer.)

如果您認為您的聘僱公司及就學學校會有前述的著作權預設歸屬聲明,您也可以試著與此公司及機關裡有權決定的主管溝通,若其願意出關於您軟體作品的著作權放棄聲明,那您就可以安心的以GPL授權條款來向外釋出這個專案了(請注意,您的直接上級主管或是指導教授通常不會是這個有權決定的主管,您需要接洽到該公司與機關真正有權決定者,促其提供這個著作權放棄聲明,那樣才會真的產生法律上的效力)。

++++

如果我任職的學校打算將我寫的程式專案包在非自由的私有軟體產品裡,我該怎麼辦呢?

++++What if my school might want to make my program into its own proprietary software product?|

Many universities nowadays try to raise funds by restricting the use of the knowledge and information they develop, in effect behaving little different from commercial businesses. (See “The Kept University”, Atlantic Monthly, March 2000, for a general discussion of this problem and its effects.)

現在很多的大專院校,為了提高校方的營運經費,開始走向限縮知識分享的路子,事實上、某些作為甚至與專門營利的商業公司比較相差無幾了。(可參閱「The Kept University」專文,Atlantic月刊,2000年3月份,文章裡面有此類議題的深入討論。)

If you see any chance that your school might refuse to allow your program to be released as free software, it is best to raise the issue at the earliest possible stage. The closer the program is to working usefully, the more temptation the administration might feel to take it from you and finish it without you. At an earlier stage, you have more leverage.

如果您認為您任聘的學校可能會有這種限縮知識分享的政策,甚至可能阻止您將所撰寫好的程式以自由軟體的授權方式釋出,那較佳的策略,是您在程式撰寫的初期就做好未來釋出的布局。因為若非如此,當程式已經接近完成的程度,校方可能會直接以聘用人的角色奪走該程式的著作權利,將您排除在專案之外,並另尋他人接續完成這個專案。但若您在初期已預設規劃,則將能為此軟體專案的釋出自由爭取到更為有利的議價空間。

So we recommend that you approach them when the program is only half-done, saying, “If you will agree to releasing this as free software, I will finish it.” Don't think of this as a bluff. To prevail, you must have the courage to say, “My program will have liberty, or never be born.”

自由軟體基金會給您的建議是,當您的軟體專案完成度達到一半時,就先與校方在軟體授權方面有決定權的權責機關進行磋商,並且清楚的表達您的訴求像是:「如果校方同意將來能以自由軟體授權的方式來釋出這個專案,那我會即期完成它。」「但是若是校方不同意這個要求,那麼我將中斷研究,永遠不去完成這個專案的開發。」千萬不要認為上述的方式僅為虛張聲勢的說法,有時候您就是需要勇氣去做這樣的陳述,才能真正落實您支持軟體自由的理念和目標。

++++

我有意願將所撰寫的程式碼以GPL的授權方式對外釋出,但也會想要將這些程式碼與不提供程式源碼的軟體專案合併運作,可以嗎?

++++I would like to release a program I wrote under the GNU GPL, but I would like to use the same code in non-free programs.|

To release a non-free program is always ethically tainted, but legally there is no to your doing this. If you are the copyright holder for the code, you can release it under various different non-exclusive licenses at various times.

將您的軟體程式以不自由的授權方式散布出去,就自由軟體基金會推廣軟體自由的立場來說,這是不盡美好的,但是就法律制度而言,也沒有人有立場可以阻止您這樣做。如果您是這些程式碼的著作權利人的話,在該程式未曾專屬授權予他人的前提下,您可以依自己的意思以不同的授權方式來散布這些程式碼,不論是以GPL授權方式,或是其他您自訂的非自由授權方式,這些不同授權狀態的程式碼,都可以同時併存。

++++

當一個程式已經依GPL授權條款釋出後,此程式的著作權利人,能否再將這個程式以專屬授權的方式授權給其他人?

++++Can the developer of a program who distributed it under the GPL later license it to another party for exclusive use?|

No, because the public already has the right to use the program under the GPL, and this right cannot be withdrawn.

不行,因為此程式已經依GPL授權條款釋出散布,而此一GPL授權行為並不能嗣後被撤銷,所以該程式沒有辦法再被專屬授權給任何人使用(註一)。

註一:當一個程式已經依GPL授權條款釋出後,此程式的著作權利人,無法再將這個程式以「專屬授權」的方式授權給其他人,但若是其他「非專屬授權」的方式則並不受到限制。

++++

美國政府機構能以GPL授權條款來釋出其職務上所撰寫的程式嗎?

++++Can the US Government release a program under the GNU GPL?|

If the program is written by US federal government employees in the course of their employment, it is in the public domain, which means it is not copyrighted. Since the GNU GPL is based on copyright, such a program cannot be released under the GNU GPL. (It can still be free software, however; a public domain program is free.)

如果這個軟體程式是由美國聯邦政府的僱員,因公務需求而撰寫的專案,那麼這個程式將屬於公共財,這代表、此軟體專案根本就不具有著作權客體的適格。而既然GPL授權條款是關於著作權利的授權條款,任何客體要以GPL授權條款的方式釋出,前提是這個客體具有著作權利保護的適格,所以在此例中、公共財的軟體,便不能以GPL授權條款來向外釋出。(然而這樣的軟體還是可以被認定為廣義的自由軟體,因為置於公共領域的軟體,其本身必然是可以被自由修改及自由散布的。)

However, when a US federal government agency uses contractors to develop software, that is a different situation. The contract can require the contractor to release it under the GNU GPL. (GNU Ada was developed in this way.) Or the contract can assign the copyright to the government agency, which can then release the software under the GNU GPL.

然而、若是美國聯邦政府透過契約發包的方式來建置軟體專案,那就是另一個情況的法律關係了。該契約可以直接明訂,承包商完成專案後,需直接以GPL授權條款來釋出這個軟體專案(GNU Ada這個專案就是透過這種方式完成的);或者、該契約也可以要求承包商將此軟體專案的著作權利,回歸於發包該專案的政府機關,嗣後再由該機關以著作權利人的立場,以GPL授權條款的方式來釋出這個軟體。

++++

美國政府機構能就GPL授權的程式進行改良並後續以GPL授權的方式來釋出衍生作品嗎?

++++Can the US Government release improvements to a GPL-covered program?|

Yes. If the improvements are written by US government employees in the course of their employment, then the improvements are in the public domain. However, the improved version, as a whole, is still covered by the GNU GPL. There is no problem in this situation.

可以。如果改良的部份是由美國政府機構的僱員,因公務需求而撰寫的專案,那麼這個改良的程式碼將屬於公共財,然而、若改良部份的程式碼與原 GPL程式結合為一個整體專案進行運作,那麼依照GPL授權條款的規定,這個改良後的衍生作品,必須要以GPL授權條款為釋出時唯一可以選擇的授權條款。那麼、如上所說,自然該政府機構,後續可以GPL授權的方式來釋出這個衍生作品。

If the US government uses contractors to do the job, then the improvements themselves can be GPL-covered.

若是美國政府機構透過契約發包的方式來建置軟體專案,那麼這個衍生作品,亦可以直接以GPL授權的方式來進行釋出。

++++

為什麼有的GPL授權程式會聲明適用某特定GPL授權條款「以及其後版本」,這樣的機制會帶來什麼樣的效果?

++++Why should programs say “Version 3 of the GPL or any later version”?|

From time to time, at intervals of years, we change the GPL—sometimes to clarify it, sometimes to permit certain kinds of use not previously permitted, and sometimes to tighten up a requirement. (The last two changes were in 2007 and 1991.) Using this “indirect pointer” in each program makes it possible for us to change the distribution terms on the entire collection of GNU software, when we update the GPL.

相隔一段時間後,自由軟體基金會會重整修改GPL授權條款的內容-有時候是把部份事項說明的更為清楚,有時候是放寬過去版本原不允許的使用方式,而有時候、則是將程式使用者需擔負的義務性規定律定的更為嚴謹(近期二次GPL授權條款的改版發生在1991年及2007年)。就自由軟體基金會的立場來說,將所釋出的GPL軟體,「指定適用特定的GPL授權條款以及其後版本」,這創立了一個便利授權升級的機制,就像軟體結構裡「間接指標 (Indirect Pointer)」的方式一樣,若釋出的GPL程式內嵌了「以及其後版本(Or later version)這段文字,嗣後當GPL授權條款有了新的版本,我們便可以輕易的將全部專案升級為以更新版本的GPL授權條款來授權。

If each program lacked the indirect pointer, we would be forced to discuss the change at length with numerous copyright holders, which would be a virtual impossibility. In practice, the chance of having uniform distribution terms for GNU software would be nil.

如果GNU計畫下個別的GPL程式缺乏上述的授權自動升級機制,那麼當有新的GPL授權條款版本產生時,自由軟體基金會就得向個別專案的著作權利人,一個個恰談商議將程式的授權狀態升級到新的GPL授權版本,這樣的狀況實在是過於耗時費力而難以達成。事實上,若缺乏上述的GPL授權自動升級機制,則GNU計畫下各個軟體專案想要完成授權狀態的統一性,根本就是沒有辦法達成的目標。

Suppose a program says “Version 3 of the GPL or any later version” and a new version of the GPL is released. If the new GPL version gives additional permission, that permission will be available immediately to all the users of the program. But if the new GPL version has a tighter requirement, it will not restrict use of the current version of the program, because it can still be used under GPL version 3. When a program says “Version 3 of the GPL or any later version”, users will always be permitted to use it, and even change it, according to the terms of GPL version 3—even after later versions of the GPL are available.

假設一個程式是以「3版GPL授權條款及其後版本」的條件釋出,那麼當這世上有了3版以後的GPL授權條款,使用者就可以自行選擇要維持以 3版GPL的授權方式,或是新版的GPL授權方式來利用這個程式。如果新版的GPL授權方式給予使用者更多使用程式的自由,那麼使用者就可以將授權狀況升級,立即享有新版放寬的好處。而如果新版的GPL授權方式,對使用者而言義務性要求更多更嚴苛,那麼使用者依現行狀況使用這個程式的方式並不會被強行限制,因為使用者總還是可以依照3版GPL授權條款的方式,繼續使用這個程式。

If a tighter requirement in a new version of the GPL need not be obeyed for existing software, how is it useful? Once GPL version 4 is available, the developers of most GPL-covered programs will release subsequent versions of their programs specifying “Version 4 of the GPL or any later version”. Then users will have to follow the tighter requirements in GPL version 4, for subsequent versions of the program.

如果新版的GPL授權方式,對使用者課予更多的義務性要求,會不會導致許多使用者延用舊版的授權方式,而不去運用前述GPL授權的自動升級機制,來將程式的授權狀態升級?長遠來看,這會不會造成GPL授權程式的授權狀況,一直不會被升級的結果?其實倒不盡然,舉例來說、一旦這世上有了新版的 GPL授權條款,如4版的GPL授權條款,那大部份GPL程式的開發者,都會願意將程式的最新版本改以「4版GPL授權條款及其後版本」的條件釋出。那麼要取得該程式最新版本的使用者,自然就只能以4版GPL授權條款的方式,來取得這個最新版本程式的使用授權。

However, developers are not obligated to do this; developers can continue allowing use of the previous version of the GPL, if that is their preference.

然而、GPL授權條款這樣的授權自動升級機制並非預設條件,也並非每一個GPL程式的開發者,都被迫得接受這樣的條件;當您是GPL程式的原始開發者時,您可以指定某一版本的GPL授權條款來釋出您的程式,而不加上「及其後版本」這個要件,加與不加「及其後版本」的聲明,這完全取決於您的自由意志。

++++

限定必須要用最新版本的GNU GPL來釋出某個軟體程式,會是一個好的授權策略嗎?(Is it a good idea to use a license saying that a certain program can be used only under the latest version of the GNU GPL?)

++++Is it a good idea to use a license saying that a certain program can be used only under the latest version of the GNU GPL?|

The reason you shouldn't do that is that it could result some day in withdrawing automatically some permissions that the users previously had.

Suppose a program was released in 2000 under “the latest GPL version”. At that time, people could have used it under GPLv2. The day we published GPLv3 in 2007, everyone would have been suddenly compelled to use it under GPLv3 instead.

Some users may not even have known about GPL version 3—but they would have been required to use it. They could have violated the program's license unintentionally just because they did not get the news. That's a bad way to treat people.

We think it is wrong to take back permissions already granted, except due to a violation. If your freedom could be revoked, then it isn't really freedom. Thus, if you get a copy of a program version under one version of a license, you should always have the rights granted by that version of the license. Releasing under “GPL version N or any later version” upholds that principle.

++++

Is there some way that I can GPL the output people get from use of my program? For example, if my program is used to develop hardware designs, can I require these these designs must be free?

++++Is there some way that I can GPL the output people get from use of my program? For example, if my program is used to develop hardware designs, can I require these these designs must be free?|

In general this is legally impossible; copyright law does not give you any say in the use of the output people make from their data using your program. If the user uses your program to enter or convert his own data, the copyright on the output belongs to him, not you. More generally, when a program translates its input into some other form, the copyright status of the output inherits that of the input it was generated from.

So the only way you have a say in the use of the output is if substantial parts of the output are copied (more or less) from text in your program. For instance, part of the output of Bison (see above) would be covered by the GNU GPL, if we had not made an exception in this specific case.

You could artificially make a program copy certain text into its output even if there is no technical reason to do so. But if that copied text serves no practical purpose, the user could simply delete that text from the output and use only the rest. Then he would not have to obey the conditions on redistribution of the copied text.

++++

為什麼GNU計畫不建議將GPL適用在技術手冊的釋出上?

++++Why don't you use the GPL for manuals?|

It is possible to use the GPL for a manual, but the GNU Free Documentation License (GFDL) is much better for manuals.

要將GPL適用於手冊/書籍的釋出並不是完全不可行,然而、同為GNU計畫下的公眾授權條款,「GNU自由文件授權條款(GNU Free Documentation License, GFDL)會更為適合。

The GPL was designed for programs; it contains lots of complex clauses that are crucial for programs, but that would be cumbersome and unnecessary for a book or manual. For instance, anyone publishing the book on paper would have to either include machine-readable “source code” of the book along with each printed copy, or provide a written offer to send the “source code” later.

因為、GPL授權條款原則上是給軟體程式去適用的,其中許多複雜的條款內容都是針對程式授權的狀態來設計,這些條款內容若是適用於手冊/書籍的授權釋出上,就會顯得不盡然必要且過於累贅。舉例來說、將GPL適用於手冊/書籍著作上時,任何人嗣後再以紙本的方式散布此著作時,都需要附隨提供一份機器可讀的電子檔書籍“源碼”,或者提供後手一份成文的書面聲明,讓人嗣後可以依據此份聲明的擔保及指示,得到電子檔的書籍“源碼”。

Meanwhile, the GFDL has clauses that help publishers of free manuals make a profit from selling copies—cover texts, for instance. The special rules for Endorsements sections make it possible to use the GFDL for an official standard. This would permit modified versions, but they could not be labeled as “the standard”.

同時、GFDL的部份條款,能夠幫助出版商發行允許自由散布的手冊與書籍著作,卻不妨礙其商業獲利,舉例來說、GFDL在著作封面方面的規則,就是一個很好的例子。透過該條款的規定,著作權利人得以GFDL釋出自己作品的同時,要求後續改寫者不得以其名義為其後的衍生作品進行廣告背書,從而確立原始作品方為原作者唯一認可的「標準版本」。

Using the GFDL, we permit changes in the text of a manual that covers its technical topic. It is important to be able to change the technical parts, because people who change a program ought to change the documentation to correspond. The freedom to do this is an ethical imperative.

將GFDL適用在您所釋出的手冊/書籍後釋出,這代表此份文件的技術內容是可以被後手持續的更新和改寫的。因為倘若軟體程式本身已經以 GPL對外釋出並容許改寫,那麼伴隨此程式釋出的手冊及書籍,亦應有相類似的傳散機制,如此一來、程式的改作與其技術文件之間的改作,才能夠同步配合。此種改作自由不論是表現在程式或其技術文件上,都是自由軟體基金會認為必要的道德之善。

Our manuals also include sections that state our political position about free software. We mark these as “invariant”, so that they cannot be changed or removed. The GFDL makes provisions for these “invariant sections”.

以自由軟體基金會的實際作法為例,為了確保GNU計畫宣揚自由軟體的政治理念不會嗣後被誤解和混淆,伴隨GNU計畫轄下GPL授權程式向外釋出的GFDL文件,會於文件裡的「不可變章節(Invariant sections)」部份詳述軟體自由的理念,此部份的章節內容依GFDL的規定,不得為散布文件的後手嗣後修改,從而也保障了原GPL軟體著作權利人理念表達的機會。透過GFDL的這些細項規定,可以讓GPL軟體的說明文件,在改作自由方面能與該GPL程式配合無間、相得益彰。

++++

How does the GPL apply to fonts?

++++How does the GPL apply to fonts?|

Font licensing is a complex issue which needs serious consideration. The following license exception is experimental but approved for general use. We welcome suggestions on this subject—please see this this explanatory essay and write to licensing@gnu.org.

To use this exception, add this text to the license notice of each file in the package (to the extent possible), at the end of the text that says the file is distributed under the GNU GPL:

As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

++++

What license should I use for website maintenance system templates?

++++I am writing a website maintenance system (called a “content management system” by some), or some other application which generates web pages from templates. What license should I use for those templates?|

Templates are minor enough that it is not worth using copyleft to protect them. It is normally harmless to use copyleft on minor works, but templates are a special case, because they are combined with data provided by users of the application and the combination is distributed. So, we recommend that you license your templates under simple permissive terms.

Some templates make calls into Javascript functions. Since Javascript is often non-trivial, it is worth copylefting. Because the templates will be combined with user data, it's possible that template+user data+Javascript would be considered one work under copyright law. A line needs to be drawn between the Javascript (copylefted), and the user code (usually under incompatible terms).














Here's an exception for Javascript code that does this:

As a special exception to the GPL, any HTML file which merely makes function calls to this code, and for that purpose includes it by reference shall be deemed a separate work for copyright law purposes. In addition, the copyright holders of this code give you permission to combine this code with free software libraries that are released under the GNU LGPL. You may copy and distribute such a system following the terms of the GNU GPL for this code and the LGPL for the libraries. If you modify this code, you may extend this exception to your version of the code, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

++++

Can I release a program under the GPL which I developed using non-free tools?

++++Can I release a program under the GPL which I developed using non-free tools?|

Which programs you used to edit the source code, or to compile it, or study it, or record it, usually makes no difference for issues concerning the licensing of that source code.

However, if you link non-free libraries with the source code, that would be an issue you need to deal with. It does not preclude releasing the source code under the GPL, but if the libraries don't fit under the “system library” exception, you should affix an explicit notice giving permission to link your program with them. Our FAQ about using GPL-incompatible libraries provides more information about how to do that.

++++

I use public key cryptography to sign my code to assure its authenticity. Is it true that GPLv3 forces me to release my private signing keys?

++++I use public key cryptography to sign my code to assure its authenticity. Is it true that GPLv3 forces me to release my private signing keys?|

No. The only time you would be required to release signing keys is if you conveyed GPLed software inside a User Product, and its hardware checked the software for a valid cryptographic signature before it would function. In that specific case, you would be required to provide anyone who owned the device, on demand, with the key to sign and install modified software on his device so that it will run. If each instance of the device uses a different key, then you need only give each purchaser the key for his instance.

++++

照3版GPL授權條款的規定,如果投票機裡內嵌GPL-3.0的程式,那麼使用機器的投票人,也有取得投票機程式源碼的權利囉?

++++Does GPLv3 require that voters be able to modify the software running in a voting machine?|

No. Companies distributing devices that include software under GPLv3 are at most required to provide the source and Installation Information for the software to people who possess a copy of the object code. The voter who uses a voting machine (like any other kiosk) doesn't get possession of it, not even temporarily, so the voter also does not get possession of the binary software in it.

不對、不是這樣的。3版GPL授權條款的規定,指的是當廠商散布內嵌GPL3程式的機器裝置時,這樣的行為等同消費者取得這台機器內嵌的 GPL3程式執行目的碼,所以連帶依GPL3要求,廠商需要提供使用者得以進階修改,該軟體的程式源碼及相關的安裝資訊給消費者。而一般使用電子投票裝置來進行投票的狀況,並不等同上述的情形,因為投票人使用電子投票機器時(類似「多媒體導覽機」這類的投票機器),並沒有對這台機器具有法律上佔有的事實,這樣的利用方式甚至連暫時性的佔有都稱不上,所以、投票機的使用者亦沒有佔有這台機器上內嵌的GPL3程式執行目的碼,所以就無法以得到GPL3程式目的碼的地位,要求廠商需一併或後續提供此軟體的程式源碼。

Note, however, that voting is a very special case. Just because the software in a computer is free does not mean you can trust the computer for voting. We believe that computers cannot be trusted for voting. Voting should be done on paper.

附帶一提,投票機算是一個非常特殊的例子。以自由軟體基金會的立場來說,不能說投票機上內嵌了讓人自由修改的軟體,使用者就能夠百分之百信任上面的投票運算機制是完全安全無誤的。其實投票這種事,最好還是不要完全依賴電子運算機制,嚴肅且具影響力的投票活動,還是應該回歸傳統的書面投票機制,以更慎重的態度來進行才對。

++++

The warranty and liability disclaimers in GPLv3 seem specific to U.S. law. Can I add my own disclaimers to my own code?

++++The warranty and liability disclaimers in GPLv3 seem specific to U.S. law. Can I add my own disclaimers to my own code?|

Yes. Section 7 gives you permission to add your own disclaimers, specifically 7(a).

++++

++++My program has interactive user interfaces that are non-visual in nature. How can I comply with the Appropriate Legal Notices requirement in GPLv3?|

All you need to do is ensure that the Appropriate Legal Notices are readily available to the user in your interface. For example, if you have written an audio interface, you could include a command that reads the notices aloud.

++++

以GNU授權條款散布軟體專案的進階問答(Distribution of programs released under the GNU licenses)

Can I release a modified version of a GPL-covered program in binary form only?

++++Can I release a modified version of a GPL-covered program in binary form only?|

No. The whole point of the GPL is that all modified versions must be free software—which means, in particular, that the source code of the modified version is available to the users.

++++

I downloaded just the binary from the net. If I distribute copies, do I have to get the source and distribute that too?

++++I downloaded just the binary from the net. If I distribute copies, do I have to get the source and distribute that too?|

Yes. The general rule is, if you distribute binaries, you must distribute the complete corresponding source code too. The exception for the case where you received a written offer for source code is quite limited.

++++

I want to distribute binaries via physical media without accompanying sources. Can I provide source code by FTP instead of by mail order?

++++I want to distribute binaries via physical media without accompanying sources. Can I provide source code by FTP instead of by mail order?|

Version 3 of the GPL allows this; see option 6(b) for the full details. Under version 2, you're certainly free to offer source via FTP, and most users will get it from there. However, if any of them would rather get the source on physical media by mail, you are required to provide that.

If you distribute binaries via FTP, you should distribute source via FTP.

++++

My friend got a GPL-covered binary with an offer to supply source, and made a copy for me. Can I use the offer to obtain the source?

++++My friend got a GPL-covered binary with an offer to supply source, and made a copy for me. Can I use the offer to obtain the source?|

Yes, you can. The offer must be open to everyone who has a copy of the binary that it accompanies. This is why the GPL says your friend must give you a copy of the offer along with a copy of the binary—so you can take advantage of it.

++++

Can I put the binaries on my Internet server and put the source on a different Internet site?

++++Can I put the binaries on my Internet server and put the source on a different Internet site?|

Yes. Section 6(d) allows this. However, you must provide clear instructions people can follow to obtain the source, and you must take care to make sure that the source remains available for as long as you distribute the object code.

++++

I want to distribute an extended version of a GPL-covered program in binary form. Is it enough to distribute the source for the original version?

++++I want to distribute an extended version of a GPL-covered program in binary form. Is it enough to distribute the source for the original version?|

No, you must supply the source code that corresponds to the binary. Corresponding source means the source from which users can rebuild the same binary.

Part of the idea of free software is that users should have access to the source code for *the programs they use*. Those using your version should have access to the source code for your version.

A major goal of the GPL is to build up the Free World by making sure that improvement to a free program are themselves free. If you release an improved version of a GPL-covered program, you must release the improved source code under the GPL.

++++

I want to distribute binaries, but distributing complete source is inconvenient. Is it ok if I give users the diffs from the “standard” version along with the binaries?

++++I want to distribute binaries, but distributing complete source is inconvenient. Is it ok if I give users the diffs from the “standard” version along with the binaries?|

This is a well-meaning request, but this method of providing the source doesn't really do the job.

A user that wants the source a year from now may be unable to get the proper version from another site at that time. The standard distribution site may have a newer version, but the same diffs probably won't work with that version.

So you need to provide complete sources, not just diffs, with the binaries.

++++

Can I make binaries available on a network server, but send sources only to people who order them?

++++Can I make binaries available on a network server, but send sources only to people who order them?|

If you make object code available on a network server, you have to provide the Corresponding Source on a network server as well. The easiest way to do this would be to publish them on the same server, but if you'd like, you can alternatively provide instructions for getting the source from another server, or even a version control system. No matter what you do, the source should be just as easy to access as the object code, though. This is all specified in section 6(d) of GPLv3.

The sources you provide must correspond exactly to the binaries. In particular, you must make sure they are for the same version of the program—not an older version and not a newer version.

++++

How can I make sure each user who downloads the binaries also gets the source?

++++How can I make sure each user who downloads the binaries also gets the source?|

You don't have to make sure of this. As long as you make the source and binaries available so that the users can see what's available and take what they want, you have done what is required of you. It is up to the user whether to download the source.

Our requirements for redistributors are intended to make sure the users can get the source code, not to force users to download the source code even if they don't want it.

++++

Can I release a program with a license which says that you can distribute modified versions of it under the GPL but you can't distribute the original itself under the GPL?

++++Can I release a program with a license which says that you can distribute modified versions of it under the GPL but you can't distribute the original itself under the GPL?|

No. Such a license would be self-contradictory. Let's look at its implications for me as a user.

Suppose I start with the original version (call it version A), add some code (let's imagine it is 1000 lines), and release that modified version (call it B) under the GPL. The GPL says anyone can change version B again and release the result under the GPL. So I (or someone else) can delete those 1000 lines, producing version C which has the same code as version A but is under the GPL.

If you try to block that path, by saying explicitly in the license that I'm not allowed to reproduce something identical to version A under the GPL by deleting those lines from version B, in effect the license now says that I can't fully use version B in all the ways that the GPL permits. In other words, the license does not in fact allow a user to release a modified version such as B under the GPL.

++++

I just found out that a company has a copy of a GPL'ed program, and it costs money to get it. Aren't they violating the GPL by not making it available on the Internet?

++++I just found out that a company has a copy of a GPL'ed program, and it costs money to get it. Aren't they violating the GPL by not making it available on the Internet?|

No. The GPL does not require anyone to use the Internet for distribution. It also does not require anyone in particular to redistribute the program. And (outside of one special case), even if someone does decide to redistribute the program sometimes, the GPL doesn't say he has to distribute a copy to you in particular, or any other person in particular.

What the GPL requires is that he must have the freedom to distribute a copy to you if he wishes to. Once the copyright holder does distribute a copy program to someone, that someone can then redistribute the program to you, or to anyone else, as he sees fit.

++++

A company is running a modified version of a GPL'ed program on a web site. Does the GPL say they must release their modified sources?

++++A company is running a modified version of a GPL'ed program on a web site. Does the GPL say they must release their modified sources?|

The GPL permits anyone to make a modified version and use it without ever distributing it to others. What this company is doing is a special case of that. Therefore, the company does not have to release the modified sources.

It is essential for people to have the freedom to make modifications and use them privately, without ever publishing those modifications. However, putting the program on a server machine for the public to talk to is hardly “private” use, so it would be legitimate to require release of the source code in that special case. Developers who wish to address this might want to use the GNU Affero GPL for programs designed for network server use.

++++

Is use within one organization or company “distribution”?

++++Is use within one organization or company “distribution”?|

No, in that case the organization is just making the copies for itself. As a consequence, a company or other organization can develop a modified version and install that version through its own facilities, without giving the staff permission to release that modified version to outsiders.

However, when the organization transfers copies to other organizations or individuals, that is distribution. In particular, providing copies to contractors for use off-site is distribution.

++++

If someone steals a CD containing a version of a GPL-covered program, does the GPL give him the right to redistribute that version?

++++If someone steals a CD containing a version of a GPL-covered program, does the GPL give him the right to redistribute that version?|

If the version has been released elsewhere, then the thief probably does have the right to make copies and redistribute them under the GPL, but if he is imprisoned for stealing the CD he may have to wait until his release before doing so.

If the version in question is unpublished and considered by a company to be its trade secret, then publishing it may be a violation of trade secret law, depending on other circumstances. The GPL does not change that. If the company tried to release its version and still treat it as a trade secret, that would violate the GPL, but if the company hasn't released this version, no such violation has occurred.

++++

What if a company distributes a copy as a trade secret?

++++What if a company distributes a copy as a trade secret?|

If a company distributes a copy to you and claims it is a trade secret, the company has violated the GPL and will have to cease distribution. Note how this differs from the theft case above; the company does not intentionally distribute a copy when a copy is stolen, so in that case the company has not violated the GPL.

++++

Do I have “fair use” rights in using the source code of a GPL-covered program?

++++Do I have “fair use” rights in using the source code of a GPL-covered program?|

Yes, you do. “Fair use” is use that is allowed without any special permission. Since you don't need the developers' permission for such use, you can do it regardless of what the developers said about it—in the license or elsewhere, whether that license be the GNU GPL or any other free software license.

Note, however, that there is no world-wide principle of fair use; what kinds of use are considered “fair” varies from country to country.

++++

Does moving a copy to a majority-owned, and controlled, subsidiary constitute distribution?

++++Does moving a copy to a majority-owned, and controlled, subsidiary constitute distribution?|

Whether moving a copy to or from this subsidiary constitutes “distribution” is a matter to be decided in each case under the copyright law of the appropriate jurisdiction. The GPL does not and cannot override local laws. US copyright law is not entirely clear on the point, but appears not to consider this distribution.

If, in some country, this is considered distribution, and the subsidiary must receive the right to redistribute the program, that will not make a practical difference. The subsidiary is controlled by the parent company; rights or no rights, it won't redistribute the program unless the parent company decides to do so.

++++

Can software installers ask people to click to agree to the GPL? If I get some software under the GPL, do I have to agree to anything?

++++Can software installers ask people to click to agree to the GPL? If I get some software under the GPL, do I have to agree to anything?|

Some software packaging systems have a place which requires you to click through or otherwise indicate assent to the terms of the GPL. This is neither required nor forbidden. With or without a click through, the GPL's rules remain the same.

Merely agreeing to the GPL doesn't place any obligations on you. You are not required to agree to anything to merely use software which is licensed under the GPL. You only have obligations if you modify or distribute the software. If it really bothers you to click through the GPL, nothing stops you from hacking the GPLed software to bypass this.

++++

I would like to bundle GPLed software with some sort of installation software. Does that installer need to have a GPL-compatible license?

++++I would like to bundle GPLed software with some sort of installation software. Does that installer need to have a GPL-compatible license?|

No. The installer and the files it installs are separate works. As a result, the terms of the GPL do not apply to the installation software.

++++

Does a distributor violate the GPL if they require me to “represent and warrant” that I am located in the US, or that I intend to distribute the software in compliance with relevant export control laws?

++++Some distributors of GPL'd software require me in their umbrella EULAs or as part of their downloading process to “represent and warrant” that I am located in the US or that I intend to distribute the software in compliance with relevant export control laws. Why are they doing this and is it a violation of those distributors' obligations under GPL?|

This is not a violation of the GPL. Those distributors (almost all of whom are commercial businesses selling free software distributions and related services) are trying to reduce their own legal risks, not to control your behavior. Export control law in the United States might make them liable if they knowingly export software into certain countries, or if they give software to parties they know will make such exports. By asking for these statements from their customers and others to whom they distribute software, they protect themselves in the event they are later asked by regulatory authorities what they knew about where software they distributed was going to wind up. They are not restricting what you can do with the software, only preventing themselves from being blamed with respect to anything you do. Because they are not placing additional restrictions on the software, they do not violate section 10 of GPLv3 or section 6 of GPLv2.

The FSF opposes the application of US export control laws to free software. Not only are such laws incompatible with the general objective of software freedom, they achieve no reasonable governmental purpose, because free software is currently and should always be available from parties in almost every country, including countries that have no export control laws and which do not participate in US-led trade embargoes. Therefore, no country's government is actually deprived of free software by US export control laws, while no country's citizens should be deprived of free software, regardless of their governments' policies, as far as we are concerned. Copies of all GPL-licensed software published by the FSF can be obtained from us without making any representation about where you live or what you intend to do. At the same time, the FSF understands the desire of commercial distributors located in the US to comply with US laws. They have a right to choose to whom they distribute particular copies of free software; exercise of that right does not violate GPL unless they add contractual restrictions beyond those permitted by GPL.

++++

The beginning of GPLv3 section 6 says that I can convey a covered work in object code form “under the terms of sections 4 and 5” provided I also meet the conditions of section 6. What does that mean?

++++The beginning of GPLv3 section 6 says that I can convey a covered work in object code form “under the terms of sections 4 and 5” provided I also meet the conditions of section 6. What does that mean?|

This means that all the permissions and conditions you have to convey source code also apply when you convey object code: you may charge a fee, you must keep copyright notices intact, and so on.

++++

My company owns a lot of patents. Over the years we've contributed code to projects under “GPL version 2 or any later version”, and the project itself has been distributed under the same terms. If a user decides to take the project's code (incorporating my contributions) under GPLv3, does that mean I've automatically granted GPLv3's explicit patent license to that user?

++++My company owns a lot of patents. Over the years we've contributed code to projects under “GPL version 2 or any later version”, and the project itself has been distributed under the same terms. If a user decides to take the project's code (incorporating my contributions) under GPLv3, does that mean I've automatically granted GPLv3's explicit patent license to that user?|

No. When you convey GPLed software, you must follow the terms and conditions of one particular version of the license. When you do so, that version defines the obligations you have. If users may also elect to use later versions of the GPL, that's merely an additional permission they have—it does not require you to fulfill the terms of the later version of the GPL as well.

Do not take this to mean that you can threaten the community with your patents. In many countries, distributing software under GPLv2 provides recipients with an implicit patent license to exercise their rights under the GPL. Even if it didn't, anyone considering enforcing their patents aggressively is an enemy of the community, and we will defend ourselves against such an attack.

++++

If I distribute a GPLv3-covered program, can I provide a warranty that is voided if the user modifies the program?

++++If I distribute a GPLv3-covered program, can I provide a warranty that is voided if the user modifies the program?|

Yes. Just as devices do not need to be warranted if users modify the software inside them, you are not required to provide a warranty that covers all possible activities someone could undertake with GPLv3-covered software.

++++

If I give a copy of a GPLv3-covered program to a coworker at my company, have I “conveyed” the copy to him?

++++If I give a copy of a GPLv3-covered program to a coworker at my company, have I “conveyed” the copy to him?|

As long as you're both using the software in your work at the company, rather than personally, then the answer is no. The copies belong to the company, not to you or the coworker. This copying is propagation, not conveying, because the company is not making copies available to others.

++++

++++Am I complying with GPLv3 if I offer binaries on an FTP server and sources by way of a link to a source code repository in a version control system, like CVS or Subversion?|

This is acceptable as long as the source checkout process does not become burdensome or otherwise restrictive. Anybody who can download your object code should also be able to check out source from your version control system, using a publicly available free software client. Users should be provided with clear and convenient instructions for how to get the source for the exact object code they downloaded—they may not necessarily want the latest development code, after all.

++++

Can someone who conveys GPLv3-covered software in a User Product use remote attestation to prevent a user from modifying that software?

++++Can someone who conveys GPLv3-covered software in a User Product use remote attestation to prevent a user from modifying that software?|

No. The definition of Installation Information, which must be provided with source when the software is conveyed inside a User Product, explicitly says: “The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.” If the device uses remote attestation in some way, the Installation Information must provide you some means for your modified software to report itself as legitimate.

++++

What does “rules and protocols for communication across the network” mean in GPLv3?

++++What does “rules and protocols for communication across the network” mean in GPLv3?|

This refers to rules about traffic you can send over the network. For example, if there is a limit on the number of requests you can send to a server per day, or the size of a file you can upload somewhere, your access to those resources may be denied if you do not respect those limits.

These rules do not include anything that does not pertain directly to data traveling across the network. For instance, if a server on the network sent messages for users to your device, your access to the network could not be denied merely because you modified the software so that it did not display the messages.

++++

Distributors that provide Installation Information under GPLv3 are not required to provide “support service” for the product. What kind of “support service” do you mean?

++++Distributors that provide Installation Information under GPLv3 are not required to provide “support service” for the product. What kind of “support service” do you mean?|

This includes the kind of service many device manufacturers provide to help you install, use, or troubleshoot the product. If a device relies on access to web services or similar technology to function properly, those should normally still be available to modified versions, subject to the terms in section 6 regarding access to a network.

++++

使用GNU授權的程式碼來撰寫衍生程式(Using programs released under the GNU licenses when writing other programs)

我可以將GPL程式與其他不相關的非自由軟體,一起灌在同一台電腦上使用嗎?

++++Can I have a GPL-covered program and an unrelated non-free program on the same computer?|

Yes.

就…可以呀。

++++

Can I use GPL-covered editors such as GNU Emacs to develop non-free programs? Can I use GPL-covered tools such as GCC to compile them?

++++Can I use GPL-covered editors such as GNU Emacs to develop non-free programs? Can I use GPL-covered tools such as GCC to compile them?|

Yes, because the copyright on the editors and tools does not cover the code you write. Using them does not place any restrictions, legally, on the license you use for your code.

Some programs copy parts of themselves into the output for technical reasons—for example, Bison copies a standard parser program into its output file. In such cases, the copied text in the output is covered by the same license that covers it in the source code. Meanwhile, the part of the output which is derived from the program's input inherits the copyright status of the input.

As it happens, Bison can also be used to develop non-free programs. This is because we decided to explicitly permit the use of the Bison standard parser program in Bison output files without restriction. We made the decision because there were other tools comparable to Bison which already permitted use for non-free programs.

++++

Is there some way that I can GPL the output people get from use of my program? For example, if my program is used to develop hardware designs, can I require these these designs must be free?

++++Is there some way that I can GPL the output people get from use of my program? For example, if my program is used to develop hardware designs, can I require these these designs must be free?|

In general this is legally impossible; copyright law does not give you any say in the use of the output people make from their data using your program. If the user uses your program to enter or convert his own data, the copyright on the output belongs to him, not you. More generally, when a program translates its input into some other form, the copyright status of the output inherits that of the input it was generated from.

So the only way you have a say in the use of the output is if substantial parts of the output are copied (more or less) from text in your program. For instance, part of the output of Bison (see above) would be covered by the GNU GPL, if we had not made an exception in this specific case.

You could artificially make a program copy certain text into its output even if there is no technical reason to do so. But if that copied text serves no practical purpose, the user could simply delete that text from the output and use only the rest. Then he would not have to obey the conditions on redistribution of the copied text.

++++

In what cases is the output of a GPL program covered by the GPL too?

++++In what cases is the output of a GPL program covered by the GPL too?|

Only when the program copies part of itself into the output.

++++

If I port my program to GNU/Linux, does that mean I have to release it as free software under the GPL or some other free software license?

++++If I port my program to GNU/Linux, does that mean I have to release it as free software under the GPL or some other free software license?|

In general, the answer is no—this is not a legal requirement. In specific, the answer depends on which libraries you want to use and what their licenses are. Most system libraries either use the GNU Lesser GPL, or use the GNU GPL plus an exception permitting linking the library with anything. These libraries can be used in non-free programs; but in the case of the Lesser GPL, it does have some requirements you must follow.

Some libraries are released under the GNU GPL alone; you must use a GPL-compatible license to use those libraries. But these are normally the more specialized libraries, and you would not have had anything much like them on another platform, so you probably won't find yourself wanting to use these libraries for simple porting.

Of course, your software is not a contribution to our community if it is not free, and people who value their freedom will refuse to use it. Only people willing to give up their freedom will use your software, which means that it will effectively function as an inducement for people to lose their freedom.

If you hope some day to look back on your career and feel that it has contributed to the growth of a good and free society, you need to make your software free.

++++

I'd like to incorporate GPL-covered software in my proprietary system. Can I do this?

++++I'd like to incorporate GPL-covered software in my proprietary system. Can I do this?|

You cannot incorporate GPL-covered software in a proprietary system. The goal of the GPL is to grant everyone the freedom to copy, redistribute, understand, and modify a program. If you could incorporate GPL-covered software into a non-free system, it would have the effect of making the GPL-covered software non-free too.

A system incorporating a GPL-covered program is an extended version of that program. The GPL says that any extended version of the program must be released under the GPL if it is released at all. This is for two reasons: to make sure that users who get the software get the freedom they should have, and to encourage people to give back improvements that they make.

However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.

The difference between this and “incorporating” the GPL-covered software is partly a matter of substance and partly form. The substantive part is this: if the two programs are combined so that they become effectively two parts of one program, then you can't treat them as two separate programs. So the GPL has to cover the whole thing.

If the two programs remain well separated, like the compiler and the kernel, or like an editor and a shell, then you can treat them as two separate programs—but you have to do it properly. The issue is simply one of form: how you describe what you are doing. Why do we care about this? Because we want to make sure the users clearly understand the free status of the GPL-covered software in the collection.

If people were to distribute GPL-covered software calling it “part of” a system that users know is partly proprietary, users might be uncertain of their rights regarding the GPL-covered software. But if they know that what they have received is a free program plus another program, side by side, their rights will be clear.

++++

++++If I distribute a proprietary program that links against an LGPLv3-covered library that I've modified, what is the “contributor version” for purposes of determining the scope of the explicit patent license grant I'm making—is it just the library, or is it the whole combination?|

The “contributor version” is only your version of the library.

++++

Under AGPLv3, when I modify the Program under section 13, what Corresponding Source does it have to offer?

++++Under AGPLv3, when I modify the Program under section 13, what Corresponding Source does it have to offer?|

“Corresponding Source” is defined in section 1 of the license, and you should provide what it lists. So, if your modified version depends on libraries under other licenses, such as the Expat license or GPLv3, the Corresponding Source should include those libraries (unless they are System Libraries). If you have modified those libraries, you must provide your modified source code for them.

The last sentence of the first paragraph of section 13 is only meant to reinforce what most people would have naturally assumed: even though combinations with code under GPLv3 are handled through a special exception in section 13, the Corresponding Source should still include the code that is combined with the Program this way. This sentence does not mean that you only have to provide the source that's covered under GPLv3; instead it means that such code is not excluded from the definition of Corresponding Source.

++++

Where can I learn more about the GCC Runtime Library Exception?

++++Where can I learn more about the GCC Runtime Library Exception?|

The GCC Runtime Library Exception covers libgcc, libstdc++, libfortran, libgomp, libdecnumber, and other libraries distributed with GCC. The exception is meant to allow people to distribute programs compiled with GCC under terms of their choice, even when parts of these libraries are included in the executable as part of the compilation process. To learn more, please read our FAQ about the GCC Runtime Library Exception.

++++

將GNU授權的程式碼與其他授權程式碼結合運作(Combining work with code released under the GNU licenses)

Is GPLv3 compatible with GPLv2?

++++Is GPLv3 compatible with GPLv2?|

No. Some of the requirements in GPLv3, such as the requirement to provide Installation Information, do not exist in GPLv2. As a result, the licenses are not compatible: if you tried to combine code released under both these licenses, you would violate section 6 of GPLv2.

However, if code is released under GPL “version 2 or later,” that is compatible with GPLv3 because GPLv3 is one of the options it permits.

++++

How are the various GNU licenses compatible with each other?

++++How are the various GNU licenses compatible with each other?|

The various GNU licenses enjoy broad compatibility between each other. The only time you may not be able to combine code under two of these licenses is when you want to use code that's only under an older version of a license with code that's under a newer version.

Below is a detailed compatibility matrix for various combinations of the GNU licenses, to provide an easy-to-use reference for specific cases. It assumes that someone else has written some software under one of these licenses, and you want to somehow incorporate code from that into a project that you're releasing (either your own original work, or a modified version of someone else's software). Find the license for your project in a column at the top of the table, and the license for the other code in a row on the left. The cell where they meet will tell you whether or not this combination is permitted.

When we say “copy code,” we mean just that: you're taking a section of code from one source, with or without modification, and inserting it into your own program, thus forming a work based on the first section of code. “Use a library” means that you're not copying any source directly, but instead interacting with it through linking, importing, or other typical mechanisms that bind the sources together when you compile or run the code.

<font color="red">重要圖表待補!</font>

  1. You must follow the terms of GPLv2 when incorporating the code in this case. You cannot take advantage of terms in later versions of the GPL.
  2. While you may release your project (either your original work and/or work that you received and modified) under GPLv2-or-later in this case, note that the other code you're using must remain under GPLv2 only. As long as your project depends on that code, you won't be able to upgrade the license of your project to GPLv3-or-later, and the work as a whole (any combination of both your project and the other code) can only be conveyed under the terms of GPLv2.
  3. If you have the ability to release the project under GPLv2 or any later version, you can choose to release it under GPLv3 or any later version—and once you do that, you'll be able to incorporate the code released under GPLv3.
  4. If you have the ability to release the project under LGPLv2.1 or any later version, you can choose to release it under LGPLv3 or any later version—and once you do that, you'll be able to incorporate the code released under LGPLv3.
  5. You must follow the terms of LGPLv2.1 when incorporating the code in this case. You cannot take advantage of terms in later versions of the LGPL.
  6. If you do this, as long as the project contains the code released under LGPLv2.1 only, you will not be able to upgrade the project's license to LGPLv3 or later.
  7. LGPLv2.1 gives you permission to relicense the code under any version of the GPL since GPLv2. If you can switch the LGPLed code in this case to using an appropriate version of the GPL instead (as noted in the table), you can make this combination.
  8. LGPLv3 gives you permission to relicense the code under GPLv3. In these cases, you can combine the code if you convert the LGPLed code to GPLv3.
  9. Because GPLv2 does not permit combinations with LGPLv3, you must convey the project under GPLv3's terms in this case, since it will allow that combination.

++++

GPL授權條款中「聚合著作」與「修改著作」間的差異在哪裡,又彼此的區隔分界在哪?

++++What is the difference between an “aggregate” and other kinds of “modified versions”?|

An “aggregate” consists of a number of separate programs, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are non-free or GPL-incompatible. The only condition is that you cannot release the aggregate under a license that prohibits users from exercising rights that each program's individual license would grant them.

所謂的「聚合著作(註一)」指的是許多獨立運作的程式,在散布時被儲放在同一個散布媒介,如CD光碟片上一同散布。GPL授權條款容許GPL程式能夠與其他程式,集結為聚合著作後合併散布,即使聚合著作裡其他的程式並非自由軟體,或者在授權狀態上是與GPL不相容亦可。此種作法唯一要注意的地方,就是整個聚合著作的授權方式,並不能去干涉聚合著作裡個別程式所本有的授權規則。

Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

關於程式與程式間的聚合關係,究竟是二個獨立程式被合併儲放,或者是一個程式被切割為二個部份後儲放,這是一個法律問題,也就是說、有權做最後判定的是訴訟發生時的承審法官。不過、原則上,這樣的問題可以從二個層面來進行判定,一是程式與程式間的溝通機制的方式(例如:究竟是以exec、 pipes、rpc,或是呼叫function calls後在同一段共享記憶體區段執行的種種不同方式),第二則是程式與程式間溝通語彙的內容(究竟這二個程式運作時交換的是哪類別的資料)。

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

所以、如果不同的程式模組已經被結合在同一個可執行檔中去運作,那此種結合狀態很明確的就是兩個程式被結合為一個單一程式。而如果是不同的程式模組,但在設計上預設會透過連結的方式,呼叫彼此到同一段共享記憶體去運作,那也幾乎可以表示這兩個模組其實就是一個單一程式的二個部份。

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

以比較的方式來解說,兩個獨立的程式常會透過pipes、sockets,或是下command-line的方式來結合運作。所以如果二個程式模組之間的構通機制是透過pipes、sockets,或是command line的方式,那這二個模組之間的結合關係,通常會被判定就是聚合著作而非程式彼此間的修改著作(註二)。然而、如果這二個程式模組在資訊交換上有著相同結構的語彙邏輯,則就算彼此是透過pipes、sockets,或是command line的方式來溝通,但因為彼此交換的資訊具有層級上的相同性,足證這樣的結合運作關係密不可分,故也有可能例外的被認定是同一個軟體程式的二部份。

註一:此處以「聚合著作」代替傳統慣用語「集合著作」,因集合著作雖是較慣用詞語,但其已為著作權法下有固定意涵的用語,故以少見的「聚合著作」取代之,以因應GPL3以白話字詞取代傳統法律用語的改變。
註二:此處以「修改著作」代替傳統慣用語「衍生著作」,因著作權法上的「Modify-改作」意指相當創作性的修改行為,但GPL授權條款對於「Modify」的解釋範圍更大,涵括的範圍包括單純的「修改」行為,並不必然要求達到創作性的修改,故以少見的「修改著作」取代「衍生著作」,以因應GPL3以白話字詞取代傳統法律用語的改變。

++++

Do I have “fair use” rights in using the source code of a GPL-covered program?

++++Do I have “fair use” rights in using the source code of a GPL-covered program?|

Yes, you do. “Fair use” is use that is allowed without any special permission. Since you don't need the developers' permission for such use, you can do it regardless of what the developers said about it—in the license or elsewhere, whether that license be the GNU GPL or any other free software license.

Note, however, that there is no world-wide principle of fair use; what kinds of use are considered “fair” varies from country to country.

++++

美國政府機構能就GPL授權的程式進行改良並後續以GPL授權的方式來釋出衍生作品嗎?

++++Can the US Government release improvements to a GPL-covered program?|

Yes. If the improvements are written by US government employees in the course of their employment, then the improvements are in the public domain. However, the improved version, as a whole, is still covered by the GNU GPL. There is no problem in this situation.

可以。如果改良的部份是由美國政府機構的僱員,因公務需求而撰寫的專案,那麼這個改良的程式碼將屬於公共財,然而、若改良部份的程式碼與原 GPL程式結合為一個整體專案進行運作,那麼依照GPL授權條款的規定,這個改良後的衍生作品,必須要以GPL授權條款為釋出時唯一可以選擇的授權條款。那麼、如上所說,自然該政府機構,後續可以GPL授權的方式來釋出這個衍生作品。

If the US government uses contractors to do the job, then the improvements themselves can be GPL-covered.

若是美國政府機構透過契約發包的方式來建置軟體專案,那麼這個衍生作品,亦可以直接以GPL授權的方式來進行釋出。

++++

If a library is released under the GPL (not the LGPL), does that mean that any software which uses it has to be under the GPL or a GPL-compatible license?

++++If a library is released under the GPL (not the LGPL), does that mean that any software which uses it has to be under the GPL or a GPL-compatible license?|

Yes, because the software as it is actually run includes the library.

++++

++++You have a GPL'ed program that I'd like to link with my code to build a proprietary program. Does the fact that I link with your program mean I have to GPL my program?|

Not exactly. It means you must release your program under a license compatible with the GPL (more precisely, compatible with one or more GPL versions accepted by all the rest of the code in the combination that you link). The combination itself is then available under those GPL versions.

++++

If so, is there any chance I could get a license of your program under the Lesser GPL?

++++If so, is there any chance I could get a license of your program under the Lesser GPL?|

You can ask, but most authors will stand firm and say no. The idea of the GPL is that if you want to include our code in your program, your program must also be free software. It is supposed to put pressure on you to release your program in a way that makes it part of our community.

You always have the legal alternative of not using our code.

++++

Using a certain GNU program under the GPL does not fit our project to make proprietary software. Will you make an exception for us? It would mean more users of that program.

++++Using a certain GNU program under the GPL does not fit our project to make proprietary software. Will you make an exception for us? It would mean more users of that program.|

Sorry, we don't make such exceptions. It would not be right.

Maximizing the number of users is not our aim. Rather, we are trying to give the crucial freedoms to as many users as possible. In general, proprietary software projects hinder rather than help the cause of freedom.

We do occasionally make license exceptions to assist a project which is producing free software under a license other than the GPL. However, we have to see a good reason why this will advance the cause of free software.

We also do sometimes change the distribution terms of a package, when that seems clearly the right way to serve the cause of free software; but we are very cautious about this, so you will have to show us very convincing reasons.

++++

If a programming language interpreter is released under the GPL, does that mean programs written to be interpreted by it must be under GPL-compatible licenses?

++++If a programming language interpreter is released under the GPL, does that mean programs written to be interpreted by it must be under GPL-compatible licenses?|

When the interpreter just interprets a language, the answer is no. The interpreted program, to the interpreter, is just data; a free software license like the GPL, based on copyright law, cannot limit what data you use the interpreter on. You can run it on any data (interpreted program), any way you like, and there are no requirements about licensing that data to anyone.

However, when the interpreter is extended to provide “bindings” to other facilities (often, but not necessarily, libraries), the interpreted program is effectively linked to the facilities it uses through these bindings. So if these facilities are released under the GPL, the interpreted program that uses them must be released in a GPL-compatible way. The JNI or Java Native Interface is an example of such a binding mechanism; libraries that are accessed in this way are linked dynamically with the Java programs that call them. These libraries are also linked with the interpreter. If the interpreter is linked statically with these libraries, or if it is designed to link dynamically with these specific libraries, then it too needs to be released in a GPL-compatible way.

Another similar and very common case is to provide libraries with the interpreter which are themselves interpreted. For instance, Perl comes with many Perl modules, and a Java implementation comes with many Java classes. These libraries and the programs that call them are always dynamically linked together.

A consequence is that if you choose to use GPL'd Perl modules or Java classes in your program, you must release the program in a GPL-compatible way, regardless of the license used in the Perl or Java interpreter that the combined Perl or Java program will run on.

++++

If a programming language interpreter has a license that is incompatible with the GPL, can I run GPL-covered programs on it?

++++If a programming language interpreter has a license that is incompatible with the GPL, can I run GPL-covered programs on it?|

When the interpreter just interprets a language, the answer is yes. The interpreted program, to the interpreter, is just data; the GPL doesn't restrict what tools you process the program with.

However, when the interpreter is extended to provide “bindings” to other facilities (often, but not necessarily, libraries), the interpreted program is effectively linked to the facilities it uses through these bindings. The JNI or Java Native Interface is an example of such a facility; libraries that are accessed in this way are linked dynamically with the Java programs that call them.

So if these facilities are released under a GPL-incompatible license, the situation is like linking in any other way with a GPL-incompatible library. Which implies that:

  1. If you are writing code and releasing it under the GPL, you can state an explicit exception giving permission to link it with those GPL-incompatible facilities.
  2. If you wrote and released the program under the GPL, and you designed it specifically to work with those facilities, people can take that as an implicit exception permitting them to link it with those facilities. But if that is what you intend, it is better to say so explicitly.
  3. You can't take someone else's GPL-covered code and use it that way, or add such exceptions to it. Only the copyright holders of that code can add the exception.

++++

If I add a module to a GPL-covered program, do I have to use the GPL as the license for my module?

++++If I add a module to a GPL-covered program, do I have to use the GPL as the license for my module?|

The GPL says that the whole combined program has to be released under the GPL. So your module has to be available for use under the GPL.

But you can give additional permission for the use of your code. You can, if you wish, release your program under a license which is more lax than the GPL but compatible with the GPL. The license list page gives a partial list of GPL-compatible licenses.

++++

If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in?

++++If a program released under the GPL uses plug-ins, what are the requirements for the licenses of a plug-in?|

It depends on how the program invokes its plug-ins. If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them.

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means the plug-ins must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed.

If the program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.

++++

Can I apply the GPL when writing a plug-in for a non-free program?

++++Can I apply the GPL when writing a plug-in for a non-free program?|

If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them. So you can use the GPL for a plug-in, and there are no special requirements.

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means that combination of the GPL-covered plug-in with the non-free main program would violate the GPL. However, you can resolve that legal problem by adding an exception to your plug-in's license, giving permission to link it with the non-free main program.

See also the question I am writing free software that uses a non-free library.

++++

Can I release a non-free program that's designed to load a GPL-covered plug-in?

++++Can I release a non-free program that's designed to load a GPL-covered plug-in?|

It depends on how the program invokes its plug-ins. For instance, if the program uses only simple fork and exec to invoke and communicate with plug-ins, then the plug-ins are separate programs, so the license of the plug-in makes no requirements about the main program.

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. In order to use the GPL-covered plug-ins, the main program must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when the main program is distributed for use with these plug-ins.

If the program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.

Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking.

See also the question I am writing free software that uses a non-free library.

++++

I'd like to incorporate GPL-covered software in my proprietary system. Can I do this?

++++I'd like to incorporate GPL-covered software in my proprietary system. Can I do this?|

You cannot incorporate GPL-covered software in a proprietary system. The goal of the GPL is to grant everyone the freedom to copy, redistribute, understand, and modify a program. If you could incorporate GPL-covered software into a non-free system, it would have the effect of making the GPL-covered software non-free too.

A system incorporating a GPL-covered program is an extended version of that program. The GPL says that any extended version of the program must be released under the GPL if it is released at all. This is for two reasons: to make sure that users who get the software get the freedom they should have, and to encourage people to give back improvements that they make.

However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.

The difference between this and “incorporating” the GPL-covered software is partly a matter of substance and partly form. The substantive part is this: if the two programs are combined so that they become effectively two parts of one program, then you can't treat them as two separate programs. So the GPL has to cover the whole thing.

If the two programs remain well separated, like the compiler and the kernel, or like an editor and a shell, then you can treat them as two separate programs—but you have to do it properly. The issue is simply one of form: how you describe what you are doing. Why do we care about this? Because we want to make sure the users clearly understand the free status of the GPL-covered software in the collection.

If people were to distribute GPL-covered software calling it “part of” a system that users know is partly proprietary, users might be uncertain of their rights regarding the GPL-covered software. But if they know that what they have received is a free program plus another program, side by side, their rights will be clear.

++++

I'd like to incorporate GPL-covered software in my proprietary system. Can I do this by putting a “wrapper” module, under a GPL-compatible lax permissive license (such as the X11 license) in between the GPL-covered part and the proprietary part?

++++I'd like to incorporate GPL-covered software in my proprietary system. Can I do this by putting a “wrapper” module, under a GPL-compatible lax permissive license (such as the X11 license) in between the GPL-covered part and the proprietary part?|

No. The X11 license is compatible with the GPL, so you can add a module to the GPL-covered program and put it under the X11 license. But if you were to incorporate them both in a larger program, that whole would include the GPL-covered part, so it would have to be licensed as a whole under the GNU GPL.

The fact that proprietary module A communicates with GPL-covered module C only through X11-licensed module B is legally irrelevant; what matters is the fact that module C is included in the whole.

++++

Can I write free software that uses non-free libraries?

++++Can I write free software that uses non-free libraries?|

If you do this, your program won't be fully usable in a free environment. If your program depends on a non-free library to do a certain job, it cannot do that job in the Free World. If it depends on a non-free library to run at all, it cannot be part of a free operating system such as GNU; it is entirely off limits to the Free World.

So please consider: can you find a way to get the job done without using this library? Can you write a free replacement for that library?

If the program is already written using the non-free library, perhaps it is too late to change the decision. You may as well release the program as it stands, rather than not release it. But please mention in the README that the need for the non-free library is a drawback, and suggest the task of changing the program so that it does the same job without the non-free library. Please suggest that anyone who thinks of doing substantial further work on the program first free it from dependence on the non-free library.

Note that there may also be legal issues with combining certain non-free libraries with GPL-covered Free Software. Please see the question on GPL software with GPL-incompatible libraries for more information.

++++

++++What legal issues come up if I use GPL-incompatible libraries with GPL software?|

Both versions of the GPL have an exception to their copyleft, commonly called the system library exception. If the GPL-incompatible libraries you want to use meet the criteria for a system library, then you don't have to do anything special to use them; the requirement to distribute source code for the whole program does not include those libraries, even if you distribute a linked executable containing them.

The criteria for what counts as a “system library” vary between different versions of the GPL. GPLv3 explicitly defines “System Libraries” in section 1, to exclude it from the definition of “Corresponding Source.” GPLv2 says the following, near the end of section 3:

However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

If you want your program to link against a library not covered by the system library exception, you need to provide permission to do that. Below are two example license notices that you can use to do that; one for GPLv3, and the other for GPLv2. In either case, you should put this text in each file to which you are granting this permission.

Only the copyright holders for the program can legally release their software under these terms. If you wrote the whole program yourself, then assuming your employer or school does not claim the copyright, you are the copyright holder—so you can authorize the exception. But if you want to use parts of other GPL-covered programs by other authors in your code, you cannot authorize the exception for them. You have to get the approval of the copyright holders of those programs.

When other people modify the program, they do not have to make the same exception for their code—it is their choice whether to do so.

If the libraries you intend to link with are non-free, please also see the section on writing Free Software which uses non-free libraries.

If you're using GPLv3, you can accomplish this goal by granting an additional permission under section 7. The following license notice will do that. You must replace all the text in brackets with text that is appropriate for your program. If not everybody can distribute source for the libraries you intend to link with, you should remove the text in braces; otherwise, just remove the braces themselves.

Copyright (C) [years] [name of copyright holder]

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>.

Additional permission under GNU GPL version 3 section 7

If you modify this Program, or any covered work, by linking or combining it with [name of library] (or a modified version of that library), containing parts covered by the terms of [name of library's license], the licensors of this Program grant you additional permission to convey the resulting work. {Corresponding Source for a non-source form of such a combination shall include the source code for the parts of [name of library] used as well as that of the covered work.}

If you're using GPLv2, you can provide your own exception to the license's terms. The following license notice will do that. Again, you must replace all the text in brackets with text that is appropriate for your program. If not everybody can distribute source for the libraries you intend to link with, you should remove the text in braces; otherwise, just remove the braces themselves.

Copyright (C) [years] [name of copyright holder]

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, see <http://www.gnu.org/licenses>.

Linking [name of your program] statically or dynamically with other modules is making a combined work based on [name of your program]. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

In addition, as a special exception, the copyright holders of [name of your program] give you permission to combine [name of your program] with free software programs or libraries that are released under the GNU LGPL and with code included in the standard release of [name of library] under the [name of library's license] (or modified versions of such code, with unchanged license). You may copy and distribute such a system following the terms of the GNU GPL for [name of your program] and the licenses of the other code concerned{, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code}.

Note that people who make modified versions of [name of your program] are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception.

++++

I'm writing a Windows application with Microsoft Visual C++ and I will be releasing it under the GPL. Is dynamically linking my program with the Visual C++ run-time library permitted under the GPL?

++++I'm writing a Windows application with Microsoft Visual C++ and I will be releasing it under the GPL. Is dynamically linking my program with the Visual C++ run-time library permitted under the GPL?|

The GPL permits this because that run-time library normally accompanies the compiler or interpreter you are using. The run-time libraries here are “System Libraries” as GPLv3 defines them, and as such they are not considered part of the Corresponding Source. GPLv2 has a similar exception in section 3.

That doesn't mean it is a good idea to write the program so that it only runs on Windows. Doing so results in a program that is free software but “trapped” by Windows.

++++

++++I'd like to modify GPL-covered programs and link them with the portability libraries from Money Guzzler Inc. I cannot distribute the source code for these libraries, so any user who wanted to change these versions would have to obtain those libraries separately. Why doesn't the GPL permit this?|

There are two reasons for this.

First, a general one. If we permitted company A to make a proprietary file, and company B to distribute GPL-covered software linked with that file, the effect would be to make a hole in the GPL big enough to drive a truck through. This would be carte blanche for withholding the source code for all sorts of modifications and extensions to GPL-covered software.

Giving all users access to the source code is one of our main goals, so this consequence is definitely something we want to avoid.

More concretely, the versions of the programs linked with the Money Guzzler libraries would not really be free software as we understand the term—they would not come with full source code that enables users to change and recompile the program.

++++

++++If license for a module Q has a requirement that's incompatible with the GPL, but the requirement applies only when Q is distributed by itself, not when Q is included in a larger program, does that make the license GPL-compatible? Can I combine or link Q with a GPL-covered program?|

If a program P is released under the GPL that means *any and every part of it* can be used under the GPL. If you integrate module Q, and release the combined program P+Q under the GPL, that means any part of P+Q can be used under the GPL. One part of P+Q is Q. So releasing P+Q under the GPL says that Q any part of it can be used under the GPL. Putting it in other words, a user who obtains P+Q under the GPL can delete P, so that just Q remains, still under the GPL.

If the license of module Q permits you to give permission for that, then it is GPL-compatible. Otherwise, it is not GPL-compatible.

If the license for Q says in no uncertain terms that you must do certain things (not compatible with the GPL) when you redistribute Q on its own, then it does not permit you to distribute Q under the GPL. It follows that you can't release P+Q under the GPL either. So you cannot link or combine P with Q.

++++

In an object-oriented language such as Java, if I use a class that is GPL'ed without modifying, and subclass it, in what way does the GPL affect the larger program?

++++In an object-oriented language such as Java, if I use a class that is GPL'ed without modifying, and subclass it, in what way does the GPL affect the larger program?|

Subclassing is creating a derivative work. Therefore, the terms of the GPL affect the whole program where you create a subclass of a GPL'ed class.

++++

How can I allow linking of proprietary modules with my GPL-covered library under a controlled interface only?

++++How can I allow linking of proprietary modules with my GPL-covered library under a controlled interface only?|

Add this text to the license notice of each file in the package, at the end of the text that says the file is distributed under the GNU GPL:

Linking ABC statically or dynamically with other modules is making a combined work based on ABC. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

In addition, as a special exception, the copyright holders of ABC give you permission to combine ABC program with free software programs or libraries that are released under the GNU LGPL and with independent modules that communicate with ABC solely through the ABCDEF interface. You may copy and distribute such a system following the terms of the GNU GPL for ABC and the licenses of the other code concerned, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code.

Note that people who make modified versions of ABC are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception.

Only the copyright holders for the program can legally authorize this exception. If you wrote the whole program yourself, then assuming your employer or school does not claim the copyright, you are the copyright holder—so you can authorize the exception. But if you want to use parts of other GPL-covered programs by other authors in your code, you cannot authorize the exception for them. You have to get the approval of the copyright holders of those programs.

++++

Consider this situation: 1) X releases V1 of a project under the GPL. 2) Y contributes to the development of V2 with changes and new code based on V1. 3) X wants to convert V2 to a non-GPL license. Does X need Y's permission?

++++Consider this situation: 1) X releases V1 of a project under the GPL. 2) Y contributes to the development of V2 with changes and new code based on V1. 3) X wants to convert V2 to a non-GPL license. Does X need Y's permission?|

Yes. Y was required to release its version under the GNU GPL, as a consequence of basing it on X's version V1. Nothing required Y to agree to any other license for its code. Therefore, X must get Y's permission before releasing that code under another license.

++++

++++I have written an application that links with many different components, that have different licenses. I am very confused as to what licensing requirements are placed on my program. Can you please tell me what licenses I may use?|

To answer this question, we would need to see a list of each component that your program uses, the license of that component, and a brief (a few sentences for each should suffice) describing how your library uses that component. Two examples would be:

  • To make my software work, it must be linked to the FOO library, which is available under the Lesser GPL.
  • My software makes a system call (with a command line that I built) to run the BAR program, which is licensed under “the GPL, with a special exception allowing for linking with QUUX”.

++++

Can I use snippets of GPL-covered source code within documentation that is licensed under some license that is incompatible with the GPL?

++++Can I use snippets of GPL-covered source code within documentation that is licensed under some license that is incompatible with the GPL?|

If the snippets are small enough that you can incorporate them under fair use or similar laws, then yes. Otherwise, no.

++++

不當利用GNU授權程式的侵權問題(Questions about violations of the GNU licenses)

當我發現疑似GPL侵權利用的案件,後續應該做些什麼?

++++What should I do if I discover a possible violation of the GPL?|

You should report it. First, check the facts as best you can. Then tell the publisher or copyright holder of the specific GPL-covered program. If that is the Free Software Foundation, write to license-violation@gnu.org. Otherwise, the program's maintainer may be the copyright holder, or else could tell you how to contact the copyright holder, so report it to the maintainer.

您可以透過GNU計畫設置的侵權登記頁面來提報它。首先、盡可能仔細的分析該侵權行為的事實與客觀狀況,然後將這些侵權資訊告知該GPL授權程式的散布者或是權利人。如果這個程式的權利人是自由軟體基金會,那麼您可以直接寫信至license-violation@gnu.org這個信箱進行提報。而如果您並不清楚該程式權利人的真實身份,也可以逕向該程式的專案管理員進行侵權提報,一般來說該專案的管理員很有可能就是程式的著作權利人,或至少也能轉知您該權利人的連絡方式。

++++

誰有權利去處理GPL程式的不當利用或侵權問題?

++++Who has the power to enforce the GPL?|

Since the GPL is a copyright license, the copyright holders of the software are the ones who have the power to enforce the GPL. If you see a violation of the GPL, you should inform the developers of the GPL-covered software involved. They either are the copyright holders, or are connected with the copyright holders. Learn more about reporting GPL violations.

GPL授權條款本身就是受到著作權保護的著作客體,個別GPL程式的著作權利人,可以依據此份授權文件來聲明、主張他們應有的權利。如果您在使用GPL軟體時,發現了某些GPL程式的不當利用或授權義務違犯行為,您可以通知原程式的開發團隊來處理這個問題。原GPL程式的開發團隊可能本身就是這個程式的著作權利人,或者與原著作權利人之間有聯繫關係。您可以參閱此一連結的內容,來了解怎麼通知原作者處理GPL程式的不當利用或侵權行為

++++

I heard that someone got a copy of a GPL'ed program under another license. Is this possible?

++++I heard that someone got a copy of a GPL'ed program under another license. Is this possible?|

The GNU GPL does not give users permission to attach other licenses to the program. But the copyright holder for a program can release it under several different licenses in parallel. One of them may be the GNU GPL.

The license that comes in your copy, assuming it was put in by the copyright holder and that you got the copy legitimately, is the license that applies to your copy.

++++

Is the developer of a GPL-covered program bound by the GPL? Could the developer's actions ever be a violation of the GPL?

++++Is the developer of a GPL-covered program bound by the GPL? Could the developer's actions ever be a violation of the GPL?|

Strictly speaking, the GPL is a license from the developer for others to use, distribute and change the program. The developer itself is not bound by it, so no matter what the developer does, this is not a “violation” of the GPL.

However, if the developer does something that would violate the GPL if done by someone else, the developer will surely lose moral standing in the community.

++++

I just found out that a company has a copy of a GPL'ed program, and it costs money to get it. Aren't they violating the GPL by not making it available on the Internet?

++++I just found out that a company has a copy of a GPL'ed program, and it costs money to get it. Aren't they violating the GPL by not making it available on the Internet?|

No. The GPL does not require anyone to use the Internet for distribution. It also does not require anyone in particular to redistribute the program. And (outside of one special case), even if someone does decide to redistribute the program sometimes, the GPL doesn't say he has to distribute a copy to you in particular, or any other person in particular.

What the GPL requires is that he must have the freedom to distribute a copy to you if he wishes to. Once the copyright holder does distribute a copy program to someone, that someone can then redistribute the program to you, or to anyone else, as he sees fit.

++++

Can I use GPLed software on a device that will stop operating if customers do not continue paying a subscription fee?

++++Can I use GPLed software on a device that will stop operating if customers do not continue paying a subscription fee?|

No. In this scenario, the requirement to keep paying a fee limits the user's ability to run the program. This is an additional requirement on top of the GPL, and the license prohibits it.

++++

What does it mean to “cure” a violation of GPLv3?

++++What does it mean to “cure” a violation of GPLv3?|

To cure a violation means to adjust your practices to comply with the requirements of the license.

++++

If someone installs GPLed software on a laptop, and then lends that laptop to a friend without providing source code for the software, have they violated the GPL?

++++If someone installs GPLed software on a laptop, and then lends that laptop to a friend without providing source code for the software, have they violated the GPL?|

No. In the jurisdictions where we have investigated this issue, this sort of loan would not count as conveying. The laptop's owner would not have any obligations under the GPL.

++++

Suppose that two companies try to circumvent the requirement to provide Installation Information by having one company release signed software, and the other release a User Product that only runs signed software from the first company. Is this a violation of GPLv3?

++++Suppose that two companies try to circumvent the requirement to provide Installation Information by having one company release signed software, and the other release a User Product that only runs signed software from the first company. Is this a violation of GPLv3?|

Yes. If two parties try to work together to get around the requirements of the GPL, they can both be pursued for copyright infringement. This is especially true since the definition of convey explicitly includes activities that would make someone responsible for secondary infringement.

++++

notes_and_translations/frequently_asked_questions_about_the_gnu_licenses.txt · 上一次變更: 2019/01/16 04:40 (外部編輯)