2011年1月4日 星期二

請問要如何規避GPL 1

作者: iincho (世界的盡頭) 看板: Soft_Job
標題: Re: [請益] 請問要如何規避GPL?
時間: Sat May 23 03:25:12 2009

※ 引述《zanyking (遙遠的旅人)》之銘言:
: ※ 引述《frostfly (frostfly)》之銘言:
: : 端看 GPL 部分
: : 用靜態連結是沒有辦法規避的沒錯
: : 畢竟已經把程式結合在一起了
: : 而動態聯結的話
: : 則要視呼叫方式而定
: : 律師給我們的定義是這樣:
: : 若用 function call 或 程式間使用相同資料結構
: : 則它們算是"同一支程式"
: : 整份程式都被 GPL 病毒感染了
: : 另外若呼叫從另一支程式的 main function
: : 用參數設定另一個程式執行行為
: : 則有機會可以視為"不同支程式"而坳過去
: : 今天剛好在公司有 GPL 的訓練課程
: : 大家分享~


: 有個問題想問問看大家的看法。
: GPLv2要求的是使用者要有看到程式碼(可於編譯後執行)的權利。
: 你的一隻程式裡有叫到GPL的東西,你的程式就變成GPL的,這是GPL的病毒擴散原則。
: CASE 1:
: 那如果,我今天寫了一隻程式A,用到GPL lib B與一個proprietary Lib C,
: 而B跟C彼此間沒有任何關係。
: 那麼,我的A因為B的關係必須聲明是GPL的,那A的使用者可以要求C的 Open Source
: 權利嗎?
: 如果應該的話,我開發一個GPL系統而裡面卻用了proprietary的東西,我豈不該死,
: 因為我侵害proprietary Lib C的權利?GPL有這麼偉大嗎?
: CASE 2:
: 再來另一種情況,我開發一個proprietary 的System A, A提供一系列的介面供使用者
: 掛載模組。 今天有個快樂的開源工程師(又是敝人在下我)用GPL的Lib C基於A的介面開
: 發了模組B。
: 因為C的緣故,所以我的B一定得宣告成GPL的,但難道那個A就也得一樣宣告成GPL嗎?
: 那如果A不是我開發的話呢?或雖然我開發,但產權不歸我呢?因為我工作得很悶搞了個
: B,我就得被C的開發社群的人押著頭把System A的Source Code公佈出來嗎?
: 我個人認為,GPL沒那麼厲害,上面那兩種情況應該都是可以繼續保有proprietary
: 部份的權利,而不違背GPL的規定的。
: 所以,公司要規避GPL(合理的不把proprietary 的東西變成GPL的),應該是至少可以
: 從這兩個方向去思考。

  註: 本人意見不代表法律意見,有問題記得請教你的律師。

  http://www.fsf.org/licensing/licenses/gpl-faq.html#GPLModuleLicense

 Q:If I add a module to a GPL-covered program, do I have to use the GPL
   as the license for my module?

 A:The GPL says that the whole combined program has to be released under
   the GPL. So your module has to be available for use under the GPL.

   But you can give additional permission for the use of your code.
   You can, if you wish, release your program under a license
   which is more lax than the GPL but compatible with the GPL.

  所以答案是,你不能這樣發布你的程式A。
  要用請洽C的作者要求GPL或是更寬鬆的授權,否則不能發布。


  如果要硬凹的話,底下有一條。

  http://www.fsf.org/licensing/licenses/gpl-faq.html#WindowsRuntimeAndGPL

 Q:I'm writing a Windows application with Microsoft Visual C++(or Visual Basic)
   and I will be releasing it under the GPL. Is dynamically linking my program
   with the Visual C++(or Visual Basic) run-time library permitted under the
   GPL?

 A:The GPL permits this because that run-time library normally accompanies
   the compiler or interpreter you are using. The run-time libraries here are
   “System Libraries” as GPLv3 defines them, and as such they are not
   considered part of the Corresponding Source.
   GPLv2 has a similar exception in section 3.

 只有被歸類為"system call"的library有這種特權,不過什麼是system call有得凹了
 Case 2的狀況應該是, B可以快樂的用System lib A。

 有個簡單的分別方法不知道是不是對的,就是:

 除了GPL和GPL-compitable的授權能在同一支程式裡面混用之外沒其他可能,
 system library除外。

--
Beware of bugs in the above code;
I have only proved it correct, not tried it.

※ 編輯: iincho          來自: 220.130.53.5         (05/23 03:45)

沒有留言:

張貼留言

您好.本資料庫並非第一手資料.如果你有對文章作者的詢問,意見與需求,請自行找尋文章作者並提供意見,謝謝.