之前不太了解,看了看OpenWrt的开源感觉情况比较特殊。
http://wiki.openwrt.org/about/license 从这里可见,OpenWrt以GPLv2协议开源的对象是OpenWrt build environment。对具体的openwrt发行版,即编译好的路由器固件,则主张内含的各组件用自己的协议开源/公有。
OpenWrt build environment是什么?从svn上下载trunk看看结构就清楚了。openwrt最终binary会包含很多程序,GPLv2的u-boot、Linux内核,BSD协议的CFE,Apache协议的redsocks等等等等非常多。但repo里包含的只是对特定版本的patchset,和一个确保一次编译完成的makefile体系。具体那些程序的源代码包是在svn checkout之后,要由用户执行脚本统一从另一个repo下载过来的;也就是不属于OpenWrt的开源范围。
那么一个GPLv2的编译系统(外加补丁)根据其他各种开源协议/公有领域的软件源代码包编译出来的binary(比如极路由的固件),总体上是否属于GPLv2?我倾向于否定(如果这里答案是“是”,AGPL还有必要存在么?它就是为了让仅仅是利用而不是重发布开源程序的公司也必须开源的),具体程序应该还是要看它自己的协议。而极路由公司内部使用的OpenWrt build environment,因为并没有对外重新发布,根本不在GPLv2管辖范围之内。
从目前得到的信息看(根据v2ex/恩山/zhihu/bbsnet找到的信息综合,有错请指出),极路由的固件应该确实是openwrt的结构。但Linux内核部分我估计并没什么修改(AR9331进入openwrt是更早的事了);虽然如此,但binary里带有的linux内核等GPL software,公开源码(即使没有修改)仍然是他们的义务。修改最大的部分我猜测是在LuCI里,但是,LuCI的主体是Apache协议(出自http://
luci.subsignal.org/trac/wiki/License)。据此协议极路由应无需开源这方面的修改,但有义务在出货单里加上Apache协议。至于他们自己加的market、云服务部分就不用说了。上面均根据发帖时搜集的信息,欢迎批驳雅正。