從首位 00 后 CEO 被指抄襲,聊聊開源協(xié)議
近日,一位自稱『中國首位 00 后 CEO』的 17 歲少年,李昕澤因為一段專訪短視頻,一下在 IT 界火了。
而在昨日,李昕澤 所在的 崇才網(wǎng)絡(luò)科技 發(fā)布的一款產(chǎn)品:貓桌面(智能電視桌面),被 CSDN 博客專家、Android 開發(fā)者『墨鏡貓』所指抄襲。
原文地址在這里,大家有興趣可以看看:http://blog.csdn.net/rain_butterfly/article/details/77847643
事情簡單來說,崇才網(wǎng)絡(luò)科技 發(fā)布的 TV端 App 產(chǎn)品 貓桌面,和『墨鏡貓』之前在 Github 上開源的一款 AndroidTVLauncher (名稱也叫 貓桌面),從UI到實現(xiàn),都是一模一樣的,才引發(fā)了現(xiàn)在的抄襲問題。
而在這件事情發(fā)生的當(dāng)晚,我去看了下『墨鏡貓』開源的 AndroidTVLauncher ,它在昨天已經(jīng)將開源協(xié)議從 Apache License 2.0 修改成了 GNU GPL v3,并且在 commit 里表達(dá)了作者的憤怒。

從 commit 的記錄來看,作者依然是在努力維護(hù)這個庫的,最近才增加了對 kotlin 的支持。
而對于抄襲的事情,大多數(shù)同學(xué)都是聲援的態(tài)度,但是在看了作者的開源協(xié)議之后,我有點(diǎn)犯難了。
從開源協(xié)議來看,這里涉及到兩個協(xié)議:
- Apache License 2.0
- GNU GPL v3
下圖是從 @GcsSloop 的博客中 Copy 出來的,可以清晰的說明這兩個協(xié)議的特點(diǎn)。
Apache License 2.0 本身是一個比較寬泛的協(xié)議,使用者可以在需要的時候修改代碼并且將它封裝成產(chǎn)品發(fā)布/銷售,而這只需要增加一個開源說明即可。
而 GNU GPL v3 就相對嚴(yán)格一些,它要求使用它的程序,也遵照 GNU GPL v3 協(xié)議。
說說我的看法
首先,代碼最初使用的是 Apache License 2.0 協(xié)議,本身就可以讓使用者修改并且商用,前提是在代碼中附帶一份原協(xié)議。
使用者不能打著作者的名號做商業(yè)宣傳,并且原作者在不承擔(dān)代碼使用后的風(fēng)險的同時,也放棄了這段代碼被商用后的收益。也就是說,別人在原本代碼的基礎(chǔ)上,修改的好或者推廣的好,那是別人能力的表現(xiàn),這部分收益是可以不和原作者相關(guān)的(不排除使用者獲益之后饋贈原作者的)。
到現(xiàn)在來看,撇來需要附帶一份原協(xié)議這一點(diǎn)來看,使用者完全是遵循的 Apache License 2.0 的協(xié)議。(唯一可能有問題的是應(yīng)該改改名稱和圖片資源,再上 PPT)
而原作者的代碼,也并非 100% 原創(chuàng)的,它是一款基于 android.support.v17.leanback 的庫來做的二次開發(fā),而 Leanback 是 Google 為 Android TV 做的一款支持庫,本身也是基于 Apache License 2.0 開源協(xié)議的。
Leanback 我自己也用過,并且用它開發(fā)過商業(yè)產(chǎn)品,現(xiàn)在已經(jīng)上線盈利。AndroidTVLauncher 中的很多效果和實現(xiàn),都是 Leanback 原生 Api 支持的,并沒有做太多大的改動。所以這里對 AndroidTVLauncher 在原有庫的基礎(chǔ)上,改動的價值,就不太好做評判(畢竟我沒有看過 AndroidTVLauncher 的代碼)。
再來說說,作者昨天緊急修改了一波協(xié)議,這其實并沒有什么實質(zhì)的作用。因為本身 GPL 只是要求使用者也需要開源并且保持 GPL 協(xié)議,我想對于 崇才網(wǎng)絡(luò)科技 的人來說,開源就開源唄。而且他們也是可以在之前代碼的基礎(chǔ)上進(jìn)行修改,之前的代碼依然保持 Apache License 2.0 的協(xié)議,這是一旦授予,無法撤銷的。
做開源,先擺好心態(tài)
很多人將自己的代碼放在 Github 上開源,本身就是為了推廣自己,對于一些小而美的開源代碼(例如:控件、動畫等),其實心態(tài)還算平和,用就用了唄,而且應(yīng)該是越多商業(yè)應(yīng)用在用,作者就越高興,覺得是一種認(rèn)可。
可對于一些完整的 App 的開源。當(dāng)發(fā)現(xiàn)別人使用自己的代碼進(jìn)行商用,并且推廣的還不錯,就心里有點(diǎn)不平衡了。
但是實際上,當(dāng)你把代碼放到 Github 上,等待被人 start 、fork 的時候,就應(yīng)該做好開源的心態(tài)。而如果不想被商用,開源的那一刻就應(yīng)該想清楚應(yīng)該采用的協(xié)議,否者事后跳出來說使用者抄襲,這就有點(diǎn)不太厚道了。
正確的理解開源協(xié)議
***還是在做開源之前,理解一下開源協(xié)議,選擇一個適合自己的。
下圖是 @阮一峰 博客里繪制的一個開源協(xié)議的中文分析圖,供大家參考。
并且還有一個網(wǎng)站也非常的好,可以幫助開發(fā)者了解應(yīng)該使用何種協(xié)議,推薦給大家。
***,還是說一句,做開源,心態(tài)一定要擺正。俗話說的好:孩大不由娘。你發(fā)布出去的開源代碼,最終衍生發(fā)展成什么,真的不是你能控制的了的。
【本文為51CTO專欄作者“張旸”的原創(chuàng)稿件,轉(zhuǎn)載請通過微信公眾號聯(lián)系作者獲取授權(quán)】





























