我發布某個項目並採用LGPL協議後,是否可以再修改成GPL協議?


這種協議叫做發行協議,協議作用於你軟體的一次發行。

你的軟體的每次發行,都可以使用不同的發行協議。一旦發行出去,不可以更改這次發行,但可以重新以另外的協議發行新的版本,即便內容相同但發行協議不同的軟體,也被視為不同版本。

LGPL軟體改GPL發行沒有問題。但是即便你以GPL發行,也不能抹殺原有的已經用LGPL協議發行的存在。換句話說這軟體變成了兩個版本,而且人家可以在LGPL基礎上繼續開發並且繼續以LGPL發行。

這例子有Qt,以前一直是雙協議發行(GPL加商業),中間諾基亞收購之後GPL改成LGPL協議。現在被digia收購後持續了雙協議發行(LGPL加商業)。

另外一個例子是android,現在是開源的,開源的aosp項目,已經發行出來的,無法撤銷,不可能變成閉源。但google如果哪天不繼續更新aosp,把自己新發布的android閉源。那麼結果可能是有人繼續在現有開源aosp基礎上繼續開發開源android並且發布,同時google還無權阻止這件事情,換句話說只要google將android閉源,大概率被fork產生分支,這些分支的存在有可能使google喪失對android代碼的主導權,這是google不願意看到的。


@pansz 答得非常好。我多說兩句。如果不是什麼特別牛的軟體,如果你不用 nearly public domain 的 license(BSD, etc.) ,幾乎沒有人會用。


可以,自己的作品想用什麼協議發布都可以。但是別人可以fork你之前按lgpl發布的版本。


可以,但是不能修改已經發布的版本,只能是新版本(當然,你一行代碼都不用改,就可以叫新版本)。


一般問這種問題的都是想多了,不管用GPL還是LGPL又或者BSD/MIT/ASL其實並沒有什麼區別。

我推薦 http://www.wtfpl.net/


我補充一點,如果你的新版本包含別人的補丁/pull request/etc,然後你想更改協議,那麼你必須取得所有這些人的同意。


推薦閱讀:

項目使用了MariaDB,是不是必須開源?
GPL 協議的適用對象還包括哪些?

TAG:開源許可證 | GPL | LGPL |