GPLv2 與 GPLv3 的相容性

前陣子跟許多人討論時發現,不少人認為 是相容的,其實不然:

某些使用 GPLv2 的軟體能夠與新的 GPLv3 相容的原因,是因為當初開發時以 "version 2 or later" 的方式宣告,這時候軟體本身可以採用 GPLv3 與其他的 GPLv3 程式碼相容。

對於新開發的軟體來說,只要小心檢查 Software license 就可以了。但對於舊的軟體,以及 package system 來說,是惡夢一場。

有兩套舊的軟體,一套是 GPLv2 only,另外一套是 GPLv2 or later,兩套都是有上百個人參與過的計畫,而且都用到一個 GPLv2 or later 的 library。現在這個 library 宣佈下一個版本開始變成 GPLv3,但因為沒有 API 改變,所以不打算增加 shared library 的 magic number。這時候 GPLv2 only 的軟體因為不相容而需要改寫 (或是把舊版的 library 放入 src 裡維護),package system 也因此不能產生 binary。

也因此很多人對 自稱的「自由」相當不以為然:他利用 "version 2 or later" 大力推廣而產生壟斷後,再利用優勢將他個人自認為的自由放入 GPLv3。相同的, 所使用的 "GFDL 1.2 or later" 轉成 的步驟也是相同的道理。

權力使人腐化,不管是在商業公司還是在 Open Source Community 都一樣讓人噁心。

3 thoughts on “GPLv2 與 GPLv3 的相容性”

  1. 這個好像是無解吧!雙方對「自由」的定義及其重點並不一樣。

    基督教有愛(神愛世人),佛教也有愛(君不見有大愛台)。那誰的愛比較愛呢?無解!:-)

  2. 事在人為嘛. 不過, 大環境實在變得太快. 今天的標準可以是明日黃花!

Leave a Reply

Your email address will not be published. Required fields are marked *