[爆卦]GPLv3是什麼?優點缺點精華區懶人包

為什麼這篇GPLv3鄉民發文收入到精華區:因為在GPLv3這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者chucheng (時間太少事情太多)看板Soft_Job標題[請益] GPLv3開源軟體的版權...


從事軟體工作者,或多或少都會接觸到開源軟體(Open Source)
其中近些日子最常見到的是GPLv3(以下簡稱GPL)

因為最近參與的一個專案有相關的爭議,我就SURVEY了一下
在下完全沒有法律經驗或背景,只是死讀GPL的說明
所以參考一下就好,也請大大們幫忙指正或解釋一下疑惑

猜想一:在SERVER上"使用"開源軟體應該沒有版權的問題
簡單的講,架一個網站,就算收錢,使用APACHE或MYSQL,
也不必擔心會有必必須散佈源始碼問題

關鍵在"使用"是沒有問題的,除非是"散佈",才需要公開原始碼
(這裡先不考慮GPLv2與GPLv3的爭議,所有的討論"假設"都是V3)


疑惑二:那如果今天使用的是像Tornado或是其它開源的Server
在伺服器上寫Web App的Code,是不是才必須開源並遵守GPLv3
簡單的說,我想只要沒有散佈程式的行為,就不須要提供原始碼


-- 網站APP 到此,下面是開發一個Client App --

疑惑三:如果使用Dynamic Link,而不是Static Link,那這樣的APP
是否必須開源(接手GPL的LICENSE)

這點很有似乎很有爭議,有看到很多人討論,但沒有結論


疑惑四:
接下來就遇到了一位同事問我的難題 ><"
假使,某甲今天開發了一套軟體,完全沒有使用任何GPL
但是軟體允許使用者開發擴充套件

那開發擴充套件的人(某乙),使用了GPLV3,並"併入"了原有的軟體
按GPL的精神,任何人有權向某乙取的源碼,這是沒有問題的
但是,一但某甲的軟體使用了GPL,按GPL的精神,此軟體就必須是開源
問題是,某乙並沒有某甲的程式碼,當然不可能開源


我自己GOOGLE了一下,自己的看法
(1)某甲沒有問題,因為此APP並沒用到任何GPL
(2)某乙開發了GPL,確實也開源,所以也沒有問題
(3)某丙使用了這個GPL,但只要不散佈,就沒有侵犯GPL的問題(自用)
但問題來了,某丙也不應該"散佈"這個套件,否則某乙侵權


所以…問題就是,這樣的解釋對嗎


---以下是更複雜的CASE---

其實關鍵在於,公司對於某些自行開發的軟體,是不喜歡開源的(花了錢,當然)
但是對我們這種小小程式設計師來說,當然是希望能導入開源的精神
另一方面是,很多開源的LIB實再是太好用了,因此此時必須兼顧到
如果一個軟體能兼容開源(擴充),總是美意一件

我會丟出疑惑四就是因為我遇到了一個問題
公司問,可以一半開源一半不開源嗎(很怪,我知)
簡單的說,程式的主體,是公司的資產,開發都是公司的投資,這點封閉
但是擴充的部份,將介面開發,允許社群的"參與"
這種情況下,是否允許擴充套件使用GPLv3的函式庫

當然,前提是安裝之前提示使用者,該套件是GPL,一但安裝就不可以散佈
因為散佈就必須全部都要開源(但使用者根本沒主程式的源碼,這就是問題)
就我的理解是
(1) 就GPL的精神,你用了我的好處,你的好處就要給別人用
所以感覺上,GPL的意思是,有種你不要用,用了就認命(強迫完全公開)
(2) 但另一方面,主程式和擴充套件是分開散步
"結合"GPL的動作是在使用者端完成,使用者只要不散佈,就沒有開源的問題
感覺起來是雙贏(公司/社群),或是,至少公司比較有意願允許使用者"外掛"

我的猜想,如果主程式可以單獨運行,並以非開源的方式流通
感覺起來,只允許僅"開源"擴充套件的概念,應該可行


疑惑五:
所以這裡的難點在於,安裝套件這個行為是否使原來的主程式"必須"遵守GPLv3

這點是相當大的疑惑。
如果可以的話,我可以預見下一個會被老闆問的問題就是:

疑惑六:
可如此一來,公司不就可以作弊,將有用到GPL部份開源,沒用到的(主程式)不開源
和問題四最大的不同點,同一間公司這樣作會讓我覺得在規避GPL
因為主程式不公開,等於是白嫖了GPL的LIB
以業主的立場,100%開源通常是不可能接受的選項
但只針對接口寫個Wrapper,又好像沒有遵守GPL



我問的法務給了一個累死人不償命的答案:
請程式設計師讀開源的軟體,理解之後重寫需要用到的部份
因為是重新寫而不是直接引用,就不會有開源爭議的問題
公司也能保有資產的私有性而不受限制


廢話…理解後重寫的人是我,又不是你
以偷懶及人性不喜歡重新發明輪子的立場,我是寧願主張把主程式和擴充套件分開的
當然,前提是這樣沒有侵犯GPL




--- 後記 ----
我的想法是,如果使用OK,在GPL的程式上加上一層接口然後開源,連接給主程式
這樣以程式設計師的角度來說,至少比"讀完重寫",尊重了GPL的精神
對於任何社群的使用者,都可以比照接口去接上不同的GPL
如果這樣不行(侵犯GPL),那我想我也只能建議
(1)完全禁止使用任何GPL的擴充套件

(2)照法務建議的,想辦法整個重寫有用到的部份<--這不是搞人嗎…



法務的解法很"合理",老問也"沒差",反正累的不是他們

求教對GPL有經驗的大大分享心得,謝謝


我認為難點就是於擴充套件本身不能單獨執行
依這裡的說法:
http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem

if the two programs are combined so that they become effectively
two parts of one program, then you can't treat them as two
separate programs. So the GPL has to cover the whole thing.


簡而言之,(1)似乎不可行…

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 131.179.64.202
darthv:好題目未看先推 04/25 14:09
Eior:推一個 04/25 14:12
※ 編輯: chucheng 來自: 131.179.64.202 (04/25 14:26)
Bencrie:疑惑三印象中就是 GPL 被稱為病毒的點吧 XD 04/25 14:25
Bencrie:所以才會有 LGPL 這個比較寬鬆的 License 出現 04/25 14:26
chucheng:是的,我想開發一個套件,是必須基於GPLv3,所以在此求教 04/25 14:27
chucheng:我不介意我的部份開源,但不可能說服業主"整個"開源 04/25 14:27
Bencrie:把 GPLv3 印出來仔細讀可能比較快 orz 04/25 14:30
chucheng:我中英文版都讀了好幾遍,但還是有點不清楚 04/25 14:31
※ 編輯: chucheng 來自: 131.179.64.202 (04/25 14:37)
Lordaeron:你的程式只要link 到mysql 就中GPL的招了 04/25 14:40
Lordaeron:open 當然是指全部. 04/25 14:40
StubbornLin:http://0rz.tw/x7BKu 免錢的諮詢 04/25 14:43
descent:有疑問找專業律師比較準 04/25 16:59
pingsky:你們家的法務真機車.. 04/25 17:25
LaPass:跟老闆解釋一下萬一全力問題炸掉的話會有什麼後果,請她花 04/25 17:50
LaPass:個幾千塊鐘點費找個律師來說明比較準..... 04/25 17:50
legist:有空小弟再過來回覆一下好了 :) 04/26 18:33

你可能也想看看

搜尋相關網站