GPL或LGPL是否擴展到應用程序重用這些許可下的代碼?
簡而言之,它取決於上下文。
這是我長久以來的答案:
關於「您」 LGPL應用與GPL代碼:
的第一個測試,我會考慮的鏈接:直接鏈接應用程序代碼(靜態或動態)與GPL組件?答案是技術特定的,可能因語言和平臺而異。如果是的話,會有一些GPL的影響。例如,如果您的應用程序包含一個GPL許可組件作爲單獨的未修改的可執行文件,該文件是從您的應用程序在其自己的進程中啓動的,那麼通常不存在「鏈接」,但是被認爲是正常使用GPL程序的內容。請注意,GPL中沒有這種鏈接本身的概念,但這仍是一個通常考慮的測試。
我會考慮的第二個測試是修改:您是否修改了GPL許可組件?如果是的話,並且如果這些修改可以幫助您更好地與這個GPL組件連接,而不管鏈接如何,那麼可能會有一些GPL影響。
請注意,GPL 2.0沒有一般義務釋放使用GPL 2.0下的GPL許可組件的源代碼。相反,如果您在上面測試1或2時回答「是」,那麼您的代碼將不得不在GPL下或與GPL兼容的許可證下提供,實質上提供類似的自由。 FSF發佈這樣一個列表。 LGPL 2.1與GPL 2.0明確兼容,因此您可以使用LGPL 2.1。
關於「他們」的網站與您的LGPL和GPL程序:
如果有人再使用,在其應用您的應用程序,他們將不得不釋放下LGPL或GPL的過他們的應用程序?
這又取決於:上面的測試1和2將首先應用。 如果您對應用程序的測試1和2回答「是」,則您的應用程序將受到類似於GPL的條款的約束。如果他們重複使用GPL和LGPL 2。1代碼,那麼GPL可能也會申請,也取決於他們如何重用您的代碼。
關於他們使用您自己的LGPL授權代碼,相同的測試將適用於扭曲:LGPL隱式區分靜態和動態鏈接,並且在修改時有其他條件。
在那裏,我會考慮的第三個測試是靜態與動態鏈接:它們的應用程序代碼是靜態還是動態地與您的LGPL代碼鏈接?答案是技術特定的,可能因語言和平臺而異。如果是靜態的,會有一些LGPL影響。例如,如果您的應用程序包含LGPL許可的本機庫,並且它們將此代碼靜態鏈接到此庫,那麼它們的代碼將受到LGPL的約束,並且它們將不得不製作 - 其他內容 - 它們的源代碼可用認爲與LGPL兼容並提供相似自由的術語。再次有一個由FSF發佈的清單。 如果他們的代碼與您的LGPL代碼動態鏈接,那麼通常會認爲LGPL庫和LGPL的正常使用不會影響他們的代碼。
我會考慮的第四個測試是再次修改:他們修改了你的LGPL庫嗎?如果是,LGPL可能適用於他們的代碼,可能取決於修改的性質和範圍。
當然,在所有情況下,即使您對所有四項測試均回答「否」,GPL條款仍適用於GPL代碼,LGPL條款仍適用於單獨使用的LGPL代碼。
這是一個很長的回答,但這不是一件簡單的事情!
/HTH,IANAL TINLA
PS:我做了這個一個社區維基所以它可以增強...
這個問題似乎是題外話,因爲它是關於許可。 –