博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

23号博客

  0023.cublog.cn

关于作者
bsd: OpenBSD+Fluxbox
linux: Fedroa+Gnome
tools: 
       GnomeTerminal/Qterm
       Opera/Firefox
       Gvim/Gedit
       
       Cc+Python+Java
       4gl/Abap

Email: No.0023@gmail.com
|| << >> ||
我的分类


對於 GPL vs. BSDL 的一些個人觀點

對於 GPL vs. BSDL 的一些個人觀點
Tetralet | 16 九月, 2007 23:20

『GPL vs. BSDL』是最近一個沸沸揚揚的話題。有個 BSDer 開發了一個 BSDL/GPL 雙授權的驅動程式,但卻被另一個 Linuxer 稍加修正後,改為僅
以 GPL 發行並進入 Linux Kernel 裡。BSDer 認為,這是一種極不禮貌的做法,但 Linuxer 卻認為BSDL/GPL 雙授權本來就允許這麼做。於是一
場大論戰就此展開了。

BSDL 簡介

BSDL 是在 BSD 家族裡最常見的授權方式。採用 BSDL 授權的軟體除了必須明確宣告它是採用 BSDL 授權之外,沒有其它特別的限制。BSD
的人們認為,軟體就是該給別人自由使用,不應該限制軟體的使用權限。

GPL 簡介

而在 GNU/Linux 上常見的 GPL 對於原始碼則採用另一種完全不同的觀點。基於平等互惠的原則,以 GPL 授權的軟體,其衍生軟體也將必須
以 GPL 授權,必須將原始碼開放出來。對於程式開發者而言,採用 GPL 將可確保該軟體永遠為 Free Software。

GPL vs. BSDL

GPL 限制衍生軟體也必須將原始碼開放出來,但 BSDL 則無此限制,所以很多商業軟體都喜歡採用 BSDL 授權的軟體。像是 Microsoft
Windows 2000(及其後衍生的 Microsoft Windows XP、2003 及 Vista)的網路元件據說就採用了 BSD 的原始碼;而 Apple 現今最熱的 Mac
OS X 也採用了不少 BSD 的元件。

對於 BSD 的人們而言,這對他們而言才是真自由:他們認為不應去限制軟體的使用範圍。的確,藉助於 BSD 的程式碼,Microsoft 的
Windows 2000 系列及 Apple 的 Mac OS X 都取得了極大的成功。BSD 的程式碼對於資訊界的確產生了極深遠的影響。

但有不少 Linuxer 卻無法認同這種看法。Microsoft 和 Apple 拿了 BSD 的程式碼,但 BSD 的人們卻完全享用不到任何的好處。
Microsoft Windows 2000 系列和 Mac OS X 靠著 BSD 的程式碼成功了,反倒是 BSD 家族卻因此反而更加岌岌可危。且那些不被公開的程式碼基
本上對 Free Software 而言是沒有任何益處的:它會成為商業公司的利器,反而使得人們成為這些商業軟體的釜中魚、俎上肉。以結果看來,這種倒持泰阿的作法是真自由嗎?很多 Linuxer 不禁這樣懷疑。

BSDL 和 GPL 的相容性

雖然 BSDL 和 GPL 軟體都是 Free Software,但因為 BSDL 和 GPL 這兩種授權其背後的思維實在是南轅北轍,也因此大多的 BSDer 寧願採
用 BSDL;不少的 Linuxer 也是寧願使用 GPL,這兩者似乎是兩條平行線,沒有交會的地方。

而在實務上,雖然 BSDL 的條款遠較 GPL 寬鬆,但因為最早的 BSDL 有個『銘謝條款』,所以人們認為 BSDL 和 GPL 是不相容的。但在
1999 年左右,在 Richard M. Stallman 的請求下,BSD 的人們展現了不凡的胸襟氣度,在 (新的) BSDL 裡將那個條款刪掉了,也就是說,人們
終於可以在 GPL 軟體裡採用任何的 (新的) BSDL 原始碼而不用擔心授權上的問題。不過 BSDL 還是不可以採用 GPL 的程式碼,因為 GPL 授權
比 BSDL 嚴苛多了。

真的可以將 BSDL 軟體轉成 GPL 嗎?

請參考:維基百科:GNU General Public License 的說法,我們可以將 BSDL 軟體重新以 GPL 發行:

Many of the most common free software licenses, such as
the original MIT/X license, the BSD license (in its current
3-clause form), and the LGPL, are "GPL-compatible". That is,
their code can be combined with a program under the GPL
without conflict (the new combination would have the GPL
applied to the whole).

大部份的自由軟體授權,像是原始的 MIT/X 授權、BSD 授權(現行的
三條款版)以及 LGPL,都是「GPL 相容的」,也就是說,應用程式可
以在 GPL 之下混用這些原始碼而不會產生 (授權上) 的衝突(但混用
之後的原始碼將必須全數以 GPL 發行)。


但很多的 BSDer 對這種說法不以為然:軟體該如何授權應由原作者決定。其衍生軟體在沒有得到原作者同意之前,怎可隨意變更其授權?也就是
說,原始軟體若是以 BSD 授權,那麼開發以 GPL 授權的 Patch 是沒問題的,但將其混用之後重新以 GPL 發行則是不可以的,因為沒有得到原
作者同意。

BSDL/GPL 雙授權

但讓我們看看引發爭論的「BSDL/GPL 雙授權」這種授權方式。如果說,BSDL/GPL 雙授權的衍生軟體在沒有得到原作者同意之情況下,必須
保持其為 BSDL/GPL 雙授權。也就是說,考慮到 GPL 的授權方式,該軟體將永遠不能收納 GPL 的 Patch,因為如此一來該軟體必須改採全為
GPL 授權,而不能再維持其 BSDL/GPL 雙授權了。那麼,這和當初就直接使用 BSDL 有什麼分別呢?
我們因此可以推論:當作者採用「BSDL/GPL 雙授權」時,就是賦與使用者改由 GPL 重新發佈該軟體的權利。否則,直接以 BSDL 發佈軟體
即可,何必多此一舉弄個「BSDL/GPL 雙授權」?

在 維基百科:Dual-licensing 也是持相同的看法:

When software is dual-licensed, recipients can choose
which terms they want to use or distribute the software under.

當軟體採用雙授權時,使用者可以在其中選擇他們要採用的授權,
或是要以何種授權重新發佈。

那麼,以 BSDL 授權的軟體可否改由 GPL 重新發佈呢?作者在採用 BSDL 的同時,是不是意味著允許使用者將軟體改由 GPL 重新發佈?這恐怕
又是另一場論戰了。



有趣的是,Debian 包裝套件的方式剛好避過了這個麻煩的問題。以基本上是採用 BSDL 授權的 OpenSSH 為例,在 Debian 裡的 OpenSSH
Patch 是以 GPL 授權的。由於 Debian 在包裝套件時,原始程式碼和 Debian 所採用的 Patch 檔案是涇渭分明的,所以兩者採用不同的授權在
Debian 裡並不會混雜在一起,也不會因此而產生什麼問題。

但對於採用 BSDL 的程式開發者而言,這種作法將會造成困擾:BSDL 的軟體是不能收 GPL 的 Patches 的,所以 GPL 的 Patch 對於
BSDL 的軟體而言根本沒有任何助益。很多的 BSDer 不歡迎 GPL 的 Patch 是可想而知的。他們覺得 Linuxer 不尊重原始開發者,替 BSDL 軟體
開發 GPL Patch 是一種不禮貌的行為。但很多 Linuxer 根本無意開發 BSDL 軟體,他們認為 BSDL 這種損己利人的作法是不可取的。如此一來
,爭論不斷是無法避免的事了。


個人一直在想,同樣是 UNIX-like 的系統,在 GNU/Linux 出現之前,BSD 家族就一直是極成功的專案了。很多報告也指出,不管是安全性、穩
定性、效能等各方面,BSD 家族 (似乎) 一直略勝 GNU/Linux 一籌。但為什麼取得成功的是 GNU/Linux,而不是 BSD 家族呢?個人認為,其決
定性的差別也許就在 BSDL 和 GPL 吧?也許 BSDL 的確賦與了在使用時的絕對自由,但 GPL 才是符合人性本惡的最佳解決方案吧?





 原文地址 http://tetralet.luna.com.tw/index.php?op=ViewArticle&articleId=186&blogId=1
发表于: 2007-09-19,修改于: 2007-09-19 01:46,已浏览422次,有评论0条 推荐 投诉


网友评论
 发表评论