1 R是基于GPLv3发布的,修改R的源代码是需要与core team共享源代码的
2 核心包中,有无限制的,如boot,有GPL的,如MASS,有传染为GPL的,如compile
3 贡献包中,有声明为apache协议的,有GPL的
请教大家两问题
1 公司开发的R代码,是否也得公开源代码呢
2 修改了个贡献包的源代码,该包为apache协议,是否也得公开源代码呢?
多谢
1 R是基于GPLv3发布的,修改R的源代码是需要与core team共享源代码的
2 核心包中,有无限制的,如boot,有GPL的,如MASS,有传染为GPL的,如compile
3 贡献包中,有声明为apache协议的,有GPL的
请教大家两问题
1 公司开发的R代码,是否也得公开源代码呢
2 修改了个贡献包的源代码,该包为apache协议,是否也得公开源代码呢?
多谢
应该不需要 但是如果你修改了R的源码 或者修改了别人R包的代码 就得想想是不是要公开了
回复 第1楼 的 coddz:
我认为小规模销售自己的包,而且用户为常规用户,不用开放源代码,即使你开放了也没人会看。
特殊用户【与大笔金钱、生命、武力】相关的,额,我也不知道。以前接触过电信用户,要求提供代码,并要求代码中做注释,其实是电信知识产权自我保护的手段,即使研究院的人也不看不去改。算法的主线都交代过了,代码就是堆积的工作量。
多谢两位版主啦!R是GPL协议,为了鼓励开发R包,R包采用类似LGPL协议,但R包的许可协议多是GPL的,引用来引用去的,商业使用或咨询服务有可能就碰到GPL了
回复 第1楼 的 coddz:你可能理解错了GPL了。
GPL最大的限制在于,如果你发布可执行二进制文件,那么用户有权要求你公开源代码。
但如果你不发布,是没有相关限制的,你自己在公司里用是无所谓的。就拿Linux内核说吧,google等公司在内核上做过很多修改,比如针对自己硬件的修改,但因为用户使用的是服务,谁都没有拿到过二进制文件,google作出的修改是否开源就不是强制的。国内的腾讯和华为内部开发使用的Linux发行版都有大量的修改,但你不能合法地拿到二进制文件,就无权索要源代码。
赞同“代码就是堆积的工作量”!开源给了别人一个机会看你的代码,却不见得真有人会去看。想想,不能被别人欣赏的代码也挺悲哀的,更何况还有很多代码可能连作者自己都不愿再看。
多谢thirdwing的回复!我看网上文档得到的认识,可能不准确,还请指正,声明源代码权利的最可能是GPL包的所有者,如果修改者坚持闭源,是否需要贡献些费用呢?
回复 第7楼 的 coddz:从一个比较“无赖”的角度说,GPL是个“协议”,而不是法律。理论上讲,你使用GPL就是遵守这个协议,从而享受相关权利。GPL在国内是否有法律效力还有待论证。
但请不要这么做。。。
不开源的R包的话,给你个例子:http://www.r-tutor.com/content/download
最后说一句哈,多少算开源界的共识之一,一个公司最值钱的东西应该是优秀的工程师们,而不是私有代码。
当然,你老板可能不这么想,那就另一个话题了。
回复 第8楼 的 Thirdwing:cuda那个包?我centos上反正只能载入没法正常使用。后来我全面放弃了Rcuda的设想。
回复 第7楼 的 coddz:细节的见https://svn.r-project.org/R/trunk/doc/COPYRIGHTS 只要你绕过了这些GPL或者LGPL的东西应该没有问题。据我看基本不可能绕过LGPL,R.h什么的都在里面。好在呢,LGPL不需要你开源代码,你只要继续保留LGPL就好了。但是编译部分我可以理解你能保留代码不被别人看见。纯R代码你怎么做到闭源?
使用GPL闭源的例子很多,但真的不要这么做。
非常高兴能和诸位对话,多谢!GPL闭源是有法律问题的,具体的说,某公司分享说用R搭的推荐系统非常牛,演示的部分代码明显引用了某GPL协议包,对方就有可能主张的。R包中R代码可以伪编译。如果想闭源,就得考虑用C重写及重写涉及GPL协议的部分R代码,弱小的时候,先这么用着没问题,万一长大了呢
我对这些开源或闭源协议了解有限,认识或许有所偏颇。我觉得所谓“协议”应该还是有法律效力的,只不过依据诉讼成本来考虑,并不是每个违反者都会被追究,但这并不能代表违反行为就已被默许。
就我个人而言,我相信代码本身是有灵魂和生命力的,程序员不过是充当了它们展现自我的媒介而已,由此,开源可以被视为一种生存方式。而对企业而言,建议是去雇佣或咨询更专业的法律界人士,而现在很多著名的公司和项目都已经在这么做了。
回复 第10楼 的 coddz:我没有说“没有法律效力”,只是根据中国的著作权法,“计算机软件、信息网络传播权的保护办法由国务院另行规定”,所以有待论证,因为国务院至今没时间关心这个问题。
其次,web service用GPL东西还真的没有任何问题,这个违反AGPL,不违反GPL。
在国内,不是默许,而是没追究的近乎零成本成了习惯而已。公司是有法律部门的,项目下许可问题并不突出,想做软件就不得不考虑各种协议了,特别是涉外的。典型的函数定义,典型的指令组合,一看就是仿XXX或用YYY的,知识产权保护的是成果,如代码,而不是思想或思路,如有不当请指正,多谢!
回复 第12楼 的 Thirdwing:多谢thirdwing,从您的reply中收获很多,多谢多谢!
回复 第14楼 的 coddz:跟你说的东西都是前几个月学来的。今年年初,有人爆料国内某公司涉嫌将基于开源项目进行的开发申报专利。
国内各方,包括该开源项目在国内的工作人员都长篇大论地争论,还包括台湾方面中研院的一个老师也详细解释了GPL中的可能在各国定义不同的东西,科普的好机会哈。
国内的现状挺尴尬的,说的不好听点,一个WIN7都只卖5块钱的地方,GPL算毛呀?
如果涉外的项目,千万要小心。我以前听过一个段子,真假不知道。
似乎是说国内的公司有一批安卓设备到美国,但没公开自己修改的GPL代码,之后自由软件基金会就去法院上诉。美国法院也没审过这种案子呀,这得好好研究,所以货就先扣在海关了。国内当时就Orz了,无论哪边赢,这都得一年半载吧,耽误交货了,赔得更惨,所以就马上开放代码,表示这是误会。
回复 第15楼 的 Thirdwing:某米吧。大约之前被人形容成
a company that flagrantly violates the GPL on a regular basis
然后开放了一部分UI。ROM依旧...XDA上历历在目的故事。其实国内上GPL啊ffmpeg这些耻辱名单的海了去了。我似乎在很早以前在绿坝里也发现直接打包opencv还是别的什么的dll呢...但涉外项目请谨慎,尤其是欧洲和美国这样对这个挺敏感的国家。
回复 第10楼 的 coddz:
一个大项目,也不用太大,稍微大点,把代码切分成几块(其实软件会自然生成几块),你缺少任何一块都不能完整运行,即使被别人掌握了部分代码,也无关紧要。
我认为这个问题是假设性疑问,提出此问题或者担忧此GPL的没有在国朝接触过交付软件项目,要是做过交付类软件,从不担心这个问题。
开源是种推动力,阅读代码是成长最快的途径,是让码农奔放的手段,是赋予学习自由情怀的光环,真不见得在法律上起过什么争议,或者有那么一两次争议,但是无关大局。
回复 第14楼 的 coddz:
必要的谨慎是恰当的。只是不知道你是作为一个技术人员还是运营人员所进行的关注。建议你看一遍gplv3许可协议。然后写出你的疑问,依照相应条款看是否能够有一个一般性的理解。如果有更为具体的问题,建议你咨询专业人员意见,尤其是你的软件的运营开发及使用的国家的法律意见。
GNU GENERAL PUBLIC LICENSE -Version 3, 29 June 2007
https://gnu.org/licenses/gpl.html
或gplv2中文译本(不可援引,翻译后的内容没有法律效力,只可概览)
http://www.thebigfly.com/gnu/gpl/
回复 第12楼 的 Thirdwing:
以下内容不属于专业讨论,仅仅是一点提醒。
“GPL是个“协议”,而不是法律”——习惯法国家的法律效力位阶是:1宪法、2 法律和条约、3 习惯和衡平、4 合同或contract(这两个词的翻译是存在歧义的),所以协议是有拘束力的。
“国务院另行规定”,他的那个是行政规定,到法庭上,效力待定。尤其是涉外案件,外方可以用双边条约或多边条约或政府间协议对你的政府规则的效力进行先占,因为那仅仅是一个行政规则而已,不是法律,在普通法国家的法律视野中。
善意提醒,见谅。[s:17]