本篇翻譯的原文為英文。

為什麼要升級到 GPLv3

作者為 Richard Stallman

第三版的 GNU 通用公眾授權(GNU GPL,以下簡稱 GPLv3)已經發佈了,並讓自由軟體包可以從 GPL 第二版(以下簡稱 GPLv2)升級上來。這篇文章會解釋會什麼升級授權條款很重要。

首先,升級不是必要的,只是一種選擇。GPLv2 仍然可以使用。若有程式使用 GPLv2,而其他的程式正在使用 GPLv3,也不會發生問題。雖然這兩個授權條款並不相容,但這並不是根本的問題。

我們說 GPLv2 和 GPLv3 不相容,是指我們沒有任何合法的方法能將 GPLv2 和 GPLv3 的程式碼整合成一個程式。這是因為 GPLv2 和 GPLv3 都是著作傳授權條款,且各自都有如此的聲明:「如果你把這段程式碼應用在更大的程式之中,那該程式也會適用這項授權條款。」因此無法相容。我們可以在 GPLv3 中聲明 GPLv3 與 GPLv2 相容,但這仍然無法改變他們無法相容的情況,因為 GPLv2 也同時需要作出類似的聲明。

幸好授權條款不相容的問題只會在您想要把兩個不同的程式連結或合併成一個程式時才會發生。然而,在作業系統中同時執行 GPLv3 授權的程式和 GPLv2 授權的程式是沒有問題的。例如,TeX 授權條款和 Apache 授權條款與 GPLv2 不相容,但這並不能阻擋我們在與 Linux、Bash 與 GCC 相同的系統上執行 TeX 與 Apache。這是因為它們都是獨立的程式。同樣的,如果 Bash 和 GCC 都升級為 GPLv3,但 Linux 核心仍使用 GPLv2 也不會發生衝突。

讓程式繼續使用 GPLv2 並不會造成任何問題。升級的理由是 GPLv3 可以解決一些現有的問題。

GPLv3 阻止的一個主要危險是 Tivoization。Tivoization 的意思是特定的「裝置」(其中帶有電腦)包含了您無法有效更改的 GPL 授權軟體,因為裝置偵測到軟體被變更時就會關機。Tivoization 的動機通常是製造商知道軟體有某些人們會想要修改的功能,但製造商就是不希望人們修改。製造商利用了自由軟體提供的自由,卻不讓使用者也這麼做。

某些人認為自由市場的競爭會讓裝置上較差的功能處於較低的水準。或許光靠競爭可以避免「每週二下午一點至五點必須關機」這類隨意的、沒道理的糟糕功能。但即便如此,擁有裝置的人仍無法自由的選擇。自由應該是可以控制你的程式能做什麼,而不用透過乞求他人或脅迫他人的方式。

在數位限制管理 (DRM) 中 — 這是限制您使用自己電腦中資料的卑劣功能 — 競爭無濟於事,因為相關的競爭是被禁止的。諸如《數位千禧年著作權法》之類的法律表示,在美國和許多其他國家,如果您沒有按照 DVD 陰謀的官方規則(其網站為 http://www.dvdcca.org/,但是規則看來並沒有在此發佈)散佈限制使用者的 DVD 播放器,那就是違法的。大眾無法透過購買非 DRM 的播放器來拒絕 DRM,因為沒有這樣的播放器。無論有多少種產品供您選擇,它們都是帶有數位枷鎖的。

GPLv3 確保您可以自由移除這些限制。其並未禁止 DRM 或其他功能。其並不限制您為您的程式增加或刪除任何重要功能。反之,其確保了您能像您副本的散佈者新增討厭的功能一樣刪除那些功能。 Tivoization 就是他們阻止您獲得自由的方式。為了保障你的自由,GPLv3 禁止 Tivoization。

對 tivoization 的禁止適用於任何可能會被消費者使用的產品,即便只是偶爾用到也一樣。GPLv3 只允許 tivoization 出現在那些幾乎只用於企業與組織的產品。

GPLv3 要對抗的另一個威脅是像 Novell-Microsoft 協定之類的專利交易。微軟用它擁有的上千個專利讓使用者付錢給微軟來取得執行 GNU/Linux 的權力,並企圖透過這類的專利交易來達到目的。此交易對 Novell 使用者使用微軟專利的保護非常有限。

微軟在 Novell-Microsoft 的交易上仍犯了集少數的錯誤,而 GPLv3 將用來向微軟反擊,從而將其專利保護擴大到整個社群。為了取得這類保護,程式必須使用 GPLv3。

微軟的律師們並不笨,下一次他們可能會設法避開那些失誤。因此,GPLv3 讓他們不再有「下次」的機會。使用 GPLv3 發布的程式可以保護其免受微軟將來試圖讓轉散發者從程式的使用者那裡收取微軟專利費用的嘗試。

GPLv3 還提供使用者來自程式貢獻者與轉散發者明確的專利保護。使用 GPLv2,使用者則僅能依賴潛在的專利授權來確保向其提供副本的公司不會對他們提告,或是對轉散發其副本的人們提告專利侵權。

GPLv3 中的明確專利授權條款並未如我們所想要的程度。理想的情況是,我們希望每個 GPL 程式碼的轉散發者與非轉散發者都放棄全部的軟體專利,因為本來就不該有軟體專利。軟體專利是一套惡毒且荒謬的體系,它讓所有開發者都面臨被素昧平生的公司提告的風險,當然也包含被同領域的超級大公司起訴的風險。大型軟體通常都結合了成千上萬個想法,所以其中的數百個想法已經被申請成專利並不意外。超級大公司掌握上千個專利,並且用那些專利來霸凌其他弱小的開發者。專利已在阻撓自由軟體的開發。

確保軟體開發安全的唯一方法就是廢除軟體專利。我們希望將來這個目標能夠實現。但是我們無法透過軟體的授權條款來實現這個目的。任何一個程式,無論其是否為自由軟體,都會被不相關的軟體專利持有者幹掉,而軟體授權條款並不能使其倖免於難。只有透過法院的判決或是專利法的改革才能讓軟體開發者免除專利的風險。如果我們試著用 GPLv3 來改變現狀,那必然會失敗。

因此,GPLv3 試圖限制並疏導這種危險。具體來說,我們是在盡力拯救自由軟體,讓自由軟體不會落入生不如死的地步:亦即透過專利變成專有軟體。GPLv3 明確的專利授權條款可確保使用 GPL 賦予使用者四種自由的公司不能反悔並使用其專利告訴某些使用者「這並不包含您。」並同時阻止了他們與其他專利持有者共謀。

GPLv3 的其他優點包含了更國際化、更溫和的中止授權、支援 BitTorrent、與 Apache 授權條款相容。總之,有足夠的理由升級。

在 GPLv3 發佈後仍可能有其他的變動。如果威脅使用者自由的事情持續發展,我們將會編寫 GPLv4。如果我們真的編寫了 GPLv4,重要的是要確保程式都能毫無困難地升級到新版本。

其中一個解決方法就是讓程式以「GPLv3 或更新版本」發佈。另一個方法就是讓程式的所有貢獻者指定一個代理人,讓他來決定是否要升級到新版的 GPL。第三種方法則是把所有貢獻者的版權都轉讓給一個版權持有者,讓他來決定授權條款的升級問題。無論是用那一種方法,程式都應該提供彈性給未來版本的 GPL。