2008-12-25 61 views
5

如果我開發一個GUI封裝器,它只執行 GPL cli應用程序(出於參數的緣故,比如tar)我必須將GPL封裝器釋放爲GPL嗎?這是一項衍生工作嗎?GPL CLI應用程序的GUI包裝,它是衍生物嗎?

如果它是派生工作我必須發佈什麼?

無論是GPL的應用程序和包裝將一起分發

+0

你可以更精確地定義「包裝」 - GUI應用程序鏈接對GPL代碼,還是它只是執行二進制文件? – Rob 2008-12-25 01:15:02

+0

它只是免除了二進制文件,將添加到描述;) – hhafez 2008-12-25 01:29:26

回答

8

IANAL。引述GPL FAQ(重點煤礦)的mere aggregation部分:

一個「聚合」由許多單獨的程序,同樣的CD-ROM或其他媒體上一起發佈的。 GPL允許您創建和分發聚合,即使其他軟件的許可不是免費的或GPL不兼容的。唯一的條件是你不能根據禁止用戶行使每個程序的個人許可授予他們的權利的許可來發布聚合。

兩個單獨的程序之間的界限和一個包含兩個部分的程序在哪裏?這是一個法律問題,最終由法官決定。我們認爲合適的標準取決於通信機制(exec,pipe,rpc,共享地址空間內的函數調用等)和通信的語義(交換了哪些類型的信息)。

如果模塊包含在同一個可執行文件中,它們肯定會合併到一個程序中。如果模塊被設計爲在共享地址空間中鏈接在一起,那幾乎肯定意味着將它們組合成一個程序。

相比之下,管道,套接字和命令行參數是通常在兩個獨立程序之間使用的通信機制。所以當它們用於通信時,這些模塊通常是獨立的程序。但是,如果通信的語義足夠親密,交換複雜的內部數據結構,這也可以作爲將這兩部分合併爲一個更大程序的基礎。

另一個question從涉及到這個常見問題是:「如果在GPL下發布程序使用的插件,什麼是一個插件許可證的要求」:

它取決於程序如何調用其插件。如果程序使用forkexec來調用插件,那麼插件是單獨的程序,所以主程序的許可證對它們沒有要求。

..

恕我直言,精神上,一個純粹的包裝,只是公開的GPL程序的功能應該是GPL。

2

IANAL,但我敢肯定,如果你不與您的代碼鏈接的GPL代碼,只是使用CLI,你的代碼是不是受GPL影響。您唯一的責任是分發GPL代碼的來源。

如果您決定發佈GPL應用,我建議您在媒體上只包含壓縮的源碼tar,而不是通過下載「提供」,因爲您必須無限期地維護所有下載站點您分發的GPL應用程序版本。