2012-07-04 65 views
2

我正在忙着編寫一個應用程序,我不確定我是否應該使用LGPL或GPL(或者別的什麼)。這裏是我的限制:我應該使用LGPL還是GPL

  1. 我的應用程序是開源的。只要他們的代碼也是開源的,我並不關心人們如何使用我的代碼。如果他們想將我的源代碼用於非開源應用程序,他們必須先與我聯繫。
  2. 我正在使用GPL,LGPL和IDGAFL(又名「我不給f * k許可證」)的外部庫。對於大多數庫,我直接將他們的源代碼包含在我的應用程序中。在極少數情況下,我使用他們預建的庫並鏈接到它們。
  3. 對於上述庫:如果我鏈接到它們,我有一個包含所有源代碼(包括庫的代碼)和.so/.dylib/.dll的存儲庫。
  4. 我有一個可執行文件,與預構建的庫一起發佈。在編譯期間,非預構建庫顯然包含在可執行文件中。

哪個許可證是最好的? 同樣對於一些庫,我更改了一些他們的源代碼以適合我的應用程序。這些都不是代碼本身有大的變化,但變化包括報表,文件擴展名等,如:

從(原圖書館):

#include "libx/libx.hpp" 

要(我的變化):

#include "external/libx.h" 

請注意不同的位置和擴展名。這是否允許?

+0

哈,這應該很有趣! – lynxlynxlynx

+0

有關軟件許可證的法律問題在Stack Overflow上是無關緊要的。請參閱http://stackoverflow.com/tags/licensing/info。 –

+4

我投票結束這個問題作爲題外話題,因爲它涉及許可和法律問題,而不是編程或軟件開發。 [見這裏](http://meta.stackoverflow.com/a/274964/1402846)瞭解更多信息,以及[幫助/話題]。 – Pang

回答

4

如果您使用的是GPL庫,則必須使用GPL。

我現在找不到它,但它在GNU頁面上。

1

每個FSF如果您連接的是外部GPLd庫,您必須自己使用GPLd。

編輯(評論):有了這個說法,如果你只是動態地鏈接到所說的GPLd庫,並且不提供它們,那麼你就可以做出一個參數,一個不需要。然而,這不是FSF的立場,但我所知道的任何人都從法律上來質疑他們的解釋。

http://en.wikipedia.org/wiki/GNU_General_Public_License#Libraries有一些討論。

0

上面的項目(1)將您鎖定到GPL。如果您使用LGPL,您允許其他人以他們可以編寫商業軟件或非GPL軟件的方式與您的代碼進行鏈接。因此,基本上,如果您希望基於您的代碼編寫的所有內容都隨後成爲開源代碼,那麼您必須使用GPL。

相關問題