有人问我,“我在某GPL协议软件的源码上做了改进,我能不能大价钱卖这个源码啊?”
我说你想多少钱卖?
他说100万。
我说你觉得GPL能让你这样卖吗?
他说感觉不能,但卫sir你写的《人话解读GPLv3》里面说可以。
我说我怎么写的,他抛出一张图片。
对,放大看,就是这块:
我说:既然我都这么解读了,那就可以。
他说这很难理解啊,GPL是特别强调软件自由和提供源码的,能让你这么卖?
我说:咱先不说为什么,先说说GPL许可证允许你的几种卖法:
一是不限价格地卖别人的源码。(GPL第四条)
二是不限价格地让你卖二进制,但要免费或仅分发成本价给源码。(GPL第六条)
三是不限价格地卖你在别人源码基础上改后的源码,前提是你不卖二进制。(GPL第五条暗含)
四是你不卖二进制软件也不卖源码,你可以不限价格地卖服务:帮安装,帮使用,帮调试,帮修漏洞,帮升级,帮维护,帮解决问题等等。(GPL第四条)
他说:后两种好理解,比较难理解的是前两种,为什么可以允许很高价格地卖源码?
我说咱俩好好聊聊。
注:本文所说GPL,均指GPLv3
一、可以卖别人的源码
Q:“我从github发现了一个很牛的软件,用GPL协议发布的,我能把它的源码直接放淘宝上卖吗?”
A:“可以。”
Q:“哦,我能卖很贵吗?比如100万?”
A:“可以。”
Q:“真的假的,第几条说的?”
A:“第4条。”
Q:“原文怎么说的?”
A:“4. Conveying Verbatim Copies …You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.
”
Q:“算了,别给我看英文了,人话翻译一下?”
A:“第四条 分发完整未改动的拷贝:……你可以免费分发,也可以按任意价格收费分发,你还可以选择提供技术支持或品质担保以收费。
”
Q:“太棒了,这岂不是一个生财之道!”
A:“嗯,你试试吧,你看看你是不是能卖得动,程序员精着呢,谁还不知道去GitHub找啊。”
Q:“又不是非要程序员买啊,老百姓未必知道啊。”
A:“老百姓谁买源码啊!”
Q:“我不管,总会有不知情的新手来买。”
A:“可以,允许你卖。”
二、卖二进制要送源码
Q:“我给老百姓卖那个软件的可执行文件没问题吧,这总有人买吧?反正他们自己也不会编译。”
A:“嗯,可以,你卖吧,GPL允许,不管是别人写的GPL软件,还是你自己写的GPL软件。”
Q:“那我不提供源码行吗?”
A:“那不行,卖二进制时必须提供源码。第六条有写。”
Q:“我可以提供源码,但我要很多钱!这行吗?”
A:“这不行,必须免费提供或者很便宜提供,如果放网上让人下载,那就必须免费;如果是拷贝在U盘、光盘这种物理介质上,要么免费,要么不超过成本价。”
Q:“GPL怎么说的?给我看看。”
A:“第六条 分发非源码形式的情况 ……a)如果目标码是通过物理介质分发,或是在硬件里,那么,随同这个硬件,以常用的物理介质,给用户附上对应的源码。……(d)如果你是在某一指定地点(不管是实体店还是网上)提供目标码(收费或免费),那么也要在同一地点提供源码,并且不得另收费。……
”
Q:“非源码形式?目标码?这是说什么呀”
A:“简单地说,你就理解为可执行文件,理解为二进制。”
Q:“通过物理介质分发是啥意思?”
A:“有些卖硬件的,比如卖冰箱的、卖洗衣机的,卖硬件时候配一张光盘不也很方便吗。”
Q:“冰箱、洗衣机?这些也得给源码?”
A:“对呀,如果冰箱厂商用了GPL软件,就可能被传染,传染了就得给源码啊。”
Q:“大多数用户也不需要这些源码啊。”
A:“也许需要呢?不给光盘也可以,附一张单子,说明如果需要源码时怎么获取。”
Q:“GPL里面说这个了吗?”
A:“第六条 分发非源码形式的情况 ……b)如果出于种种原因,你没有随同硬件附上源码,那么可以附上一个书面告知单,告知用户要么以很低廉的价格获取源码,收费不超过合理的成本价;要么从网上免费下载源码。要保证用户在至少三年内并且你提供备件或客户服务期间都能够以这两种方式之一获得源码。……
”
Q:“合理的成本价是啥意思?”
A:“所谓成本价,就是光盘费、U盘费、拷贝费,比如10块、20块的,就这样的。”
Q:“真不愧是律师写的许可证……”
A:“你现在明白了吧。”
三、可以卖衍生品的源码
Q:“还有一点不明白。我基于一个GPL软件做修改后,然后我不卖二进制,我只卖源码,为啥就可以卖很贵。”
A:“你好好想想,这和你大价钱卖二进制,然后送源码,有什么区别吗?”
Q:“对呀,反正买源码的人他也会编译。”
A:“再说,也就头几个人会买,然后别人把源码公开了你也没法禁止。”
Q:“哦,还有点想不明白,单卖源码既然能卖很贵,为什么卖二进制时,源码就必须免费或者成本价?”
A:“因为如果你只卖二进制,不给源码,用户得到的就不是自由软件。”
Q:“那他可以买我的源码啊”。
A:“用户未必舍得啊,你卖那么贵。再说了,如果一个单位买了软件但舍不得买源码,员工也不自由啊。”
Q:“那为啥单卖源码就可以很贵,那就自由啦?”
A:“单卖源码的情况,别人只要买了,就得到了源码;卖二进制的情况,别人买了你的软件,却未必能有源码。你觉得什么区别呢。”
Q:“后者不就是他买了一个没有源码的软件吗,很稀奇吗?”
A:“在Stallman看来,他买到的是一个不自由的软件。”
Q:“你总是说自由软件,这到底是个什么?”
A:“Stallman所定义的自由软件,就是可以自由运行、自由学习、自由修改、自由发布的软件,这就要求必须要有源码,不给源码的就不是自由软件。”
Q:“哦,明白了,原来不管怎样,就是要给源码。”
A:“对,Stallman最烦就是没有源码,他一生奋斗的目标就是让软件带源码。”
Q:“既然这样,那干脆也别让卖源码了,全免费算了。”
A:“程序员毕竟还要活啊,辛辛苦苦写了源码,当然可以卖。”
其实这些对话都是为了方便理解而虚构的,下面这张截图是真的对话。与我探讨此问题的朋友,花了一天才想明白。
四、读GPL悟出的生财之道?
Q:“嗯,这么一了解,我觉得我发现了一种新的生财之道。”
A:“你想怎么玩啊?”
Q:“我知道有个厂商,他用了GPL的软件,他的软件应该是被传染了的,他卖源代码,但不按GPL发布,每份源码他每年收许可费二十万。而且他的用户很多。”
A:“那你想怎么办呢?”
Q:“我花二十万买一份,然后我按GPL卖,每份十万,永久授权。我只要能找到多于2个客户,我就赚了啊”
A:“如果那厂商告你呢?”
Q:“首先,他自己有问题啊,他该GPL而不GPL,他侵权了别人,我只是主张正义而已,而且我没有违背GPL。”
A:“没毛病,但你卖的时候要遵循GPL协议哦。”
Q:“那肯定。”
A:“祝你好运啦。”
Q:“你觉得打官司我能打赢不?”
文|卫剑钒
原文始发于微信公众号(卫sir说):GPL协议允许你怎么卖?