2007年7月4日 星期三

GPLv3 Discussion Draft FAQ

GPLv3 Discussion Draft FAQ

作者 brett最近修改 2007-06-26 12:54 來源:http://gplv3.fsf.org/dd3-faq

Answers to common questions about the latest GPLv3 draft

Throughout the drafting process for GPLv3, we've noticed that certain questions have been common in various different discussion forums. This page will provide more information to help clear up some of the common points of confusion. We'll keep adding questions to this list as they keep coming up. If you think we're missing something, please let us know.

General questions about the text

How is GPLv3 compatible with other GNU licenses?

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 GPLed software). Find the license for your own work 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.

Skip compatibility matrix


I want to release a project under:
GPLv2 only GPLv2 or later GPLv3 or later LGPLv2.1 only LGPLv2.1 or later LGPLv3 or later
I want to copy code under: GPLv2 only OK OK [2] NO OK if you convert to GPLv2 [7] OK if you convert to GPLv2 [7][2] NO
GPLv2 or later OK [1] OK OK OK if you convert to GPL [7] OK if you convert to GPL [7] OK if you convert to GPLv3 [7]
GPLv3 NO OK if you upgrade to GPLv3 [3] OK OK if you convert to GPLv3 [8] OK if you convert to GPLv3 [8][3] OK if you convert to GPLv3 [7]
LGPLv2.1 only OK if you convert to GPLv2 [7] OK if you convert to GPL [7][2] OK if you convert to GPLv3 [8] OK OK [6] OK if you convert to GPLv3 [8]
LGPLv2.1 or later OK if you convert to GPLv2 [7][1] OK if you convert to GPL [7] OK if you convert to GPLv3 [7] OK [5] OK OK
LGPLv3 NO OK if you upgrade and convert to GPLv3 [7][3] OK if you convert to GPLv3 [7] OK if you convert to GPLv3 [8] OK if you upgrade to LGPLv3 [4] OK
I want to use a library under: GPLv2 only OK OK [2] NO OK if you convert to GPLv2 [7] OK if you convert to GPLv2 [7][2] NO
GPLv2 or later OK [1] OK OK OK if you convert to GPL [7][1] OK if you convert to GPL [7] OK if you convert to GPLv3 [7]
GPLv3 NO OK if you upgrade to GPLv3 [3] OK OK if you convert to GPLv3 [8] OK if you convert to GPLv3 [7][3] OK if you convert to GPLv3 [7]

LGPLv2.1 only
OK OK OK OK OK OK

LGPLv2.1 or later
OK OK OK OK OK OK

LGPLv3

NO

OK

OK

OK

OK

OK

Skip footnotes

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: If you do this, as long as the project contains the code released under GPLv2 only, you will not be able to upgrade the project's license to GPLv3 or later.

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: Every version of the LGPL gives you permission to relicense the code under the corresponding version (or any later version) of the GPL. If you can switch the LGPLed code in this case to using the GPL instead, you can make this combination.

8: Every version of the LGPL gives you permission to relicense the code under the corresponding version, or any later version, of the GPL. In these cases, you can combine the code if you migrate its license to GPLv3, and use GPLv3 for your own work as well.

Section 6

Why do distributors only have to provide Installation Information for User Products?

Some companies effectively outsource their entire IT department to another company. Computers and applications are installed in the company's offices, but managed remotely by some service provider. In some of these situations, the hardware is locked down; only the service provider has the key, and the customers consider that to be a desirable security feature.

We think it's unfortunate that people would be willing to give up their freedom like this. But they should be able to fend for themselves, and the market provides plenty of alternatives to these services that would not lock them down. As a result, we have introduced this compromise to the draft: distributors are only required to provide Installation Information when they're distributing the software on a User Product, where the customers' buying power is likely to be less organized.

This is a compromise of strategy, and not our ideals. Given the environment we live in today—where Digital Restrictions Management is focused largely in consumer devices, and everyone, including large companies, is becoming increasingly worried about the effects of DRM thanks to recent developments like the release of Microsoft's Windows Vista—we think that the proposed language will still provide us with enough leverage to effectively thwart DRM. We still believe you have a fundamental right to modify the software on all the hardware you own; the preamble explains, "If such problems [as locked-down hardware] arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users."

Section 11

How do the new terms of section 11 affect the Microsoft-Novell deal?

We attack the Microsoft-Novell deal from two angles. First, in the sixth paragraph of section 11, the draft says that if you arrange to provide patent protection to some of the people who get the software from you, that protection is automatically extended to everyone who receives the software, no matter how they get it. This means that the patent protection Microsoft has extended to Novell's customers would be extended to everyone who uses any software Novell distributes under GPLv3.

Second, in the seventh paragraph, the draft says that you are prohibited from distributing software under GPLv3 if you make an agreement like the Microsoft-Novell deal in the future. This will prevent other distributors from trying to make other deals like it.

GNU GPL v3 三項重要議題

[網路部落格]FSF 公布 GNU GPL v3

石頭成  2007/07/04

自由軟體FSF 公布 GNU General Public License, version 3 (GPLv3)。根據 FAQ 可知三項大多數使用者關注之焦點:

  • 與 GPLv2 之相容性
  • DRM: 關於 User Products 與 Installation Information
  • Microsoft-Novell deal

    相容性

    採 GPLv2 only 或 GPLv3 授權證散佈的軟體,不能升級或降級授權證版本。舉例而言,若我正在發展一個軟體專案,其中部份源碼來自另一個採 GPLv2 only 授權證的專案。則我的專案未來僅能採用 'GPLv2 only' 或 'GPLv2 or later' 授權證散佈。雖說可以採用 GPLv2 or later 授權證散佈,但此時反而麻煩。因為使用者想從我的專案中複製再用一段源碼時,要區分那段源碼是否複製自 GPLv2 only 專案。

    採用 GPLv2 only 的軟體不多,但 Linux kernel 卻是其中之一,故此議題的重點主要是在 Linux kernel 身上。就看 Linus Torvalds 及 Linux kernel team 未來是否改採 GPLv3 授權證。

    DRM 與 User Products

    這一段有兩個術語,即 Uesr Product 和 Installation Information。User Product 是指配合軟體使用的資訊硬體設備產品。不只是 MP3, GPS, 數位電視機上盒等消費性資訊產品,也包括了商務、工業或非消費性用途的資訊產品。例如企業用硬體防火牆、Router ,或是工業用途的工業電腦設備等,也是 User Product。 GPLv3 要求 User Product 的廠商,必須提供所用軟體的 Installation Information,其內容包含安裝與運行所用軟體修改版的每一道步驟。

    例如,我生產的影音播放機,使用了以 GPLv3 授權證散佈的播放軟體 XPLAYER。使用者取得 XPLAYER 的源碼加以修改後之修改版則稱為 YPLAYER 。我提供的Installation Information 的內容,必須告知使用者如何在我的影音播放機上安裝與運行 YPLAYER (XPLAYER的修改版) 的步驟。

    FAQ 中說得很明白,這是一個妥協方案。GPLv3 不管廠商在軟體中加入 DRM 功能的事,但不允許廠商禁止使用者移除或改用不具 DRM 功能的軟體。還要求廠商應提供使用者安裝與運行修改版軟體的安裝資料

    Microsoft-Novell deal

    GPLv3 拒絕 Microsoft-Novell 的協議形式。軟體廠商不應將專利範圍自動擴及到使用者身上,或禁止使用者再散佈。