删库跑路、“投毒”、改协议,开源有哪几大红线千万不能踩?( 二 )


如果开发者仅仅作为用户去使用开源软件 , 那么用左边的GPL等协议就好 , 比如说最典型的MySQL就是GPL协议的 。 基于MySQL把它打包在自己公司内部可以随便使用 , 但是你如果要把它打包成一个商业软件就必须也得开源出来 。
邓超:关于注意事项 , 我认为:首先 , 大家需要有版权意识 。 使用任何不是自己创作的内容 , 都要得到许可 。
譬如为什么大家可以免费且合法下载微信呢?是因为用户在下载时 , 在用户协议中点了一个“我同意” , 这就是大家最熟悉也是最陌生的合同 。 尽管大家每天都在签署这份合同 , 但是没有人看具体的合同内容 。 实际上 , 点击“我同意”就是签署了一个知识产权授权条款 , 腾讯允许用户保留微信程序副本的前提是需要用户同意协议中的条款 。
类比到源代码中 , 我们需要遵守的就是License 。 因此在认识上 , 我们应该高度重视 , 对于基本的这些常见许可协议应当有所了解 。
开源协议“红线”大盘点
唐小引:开源许可协议具有什么样的法律效应?
邓超:尽管中国没有专门针对开源方面的法律 , 但是开源并不是法外之地 , 从软件知识产权的角度 , 都是有法可依的 。 合同法、民法典都能覆盖到 。 大陆法系下 , 开源许可证和普通软件的用户许可协议、服务协议本质上就是一个合同 , 只不过它是一种制式的 , 一种标准化的不可磋商的合同 。 如果你接受这份合同 , 就可以遵照合同要求使用 , 如果不接受 , 就不能使用 。
郭炜:说到遵守协议 , 我觉得其实蛮危险的 。 中国现在有多少公司将MySQL打包成自己软件里的一部分在销售 , 这似乎非常普遍 , 如果Oracle想要追究 , 肯定一抓一个准儿 。 按照协议来讲 , 如果你没有购买Oracle的License , 是不能把MySQL打包成商业软件的一部分进行销售的 , 但是中国很多企业都是这么做的 , 他们或许根本没有了解到License的威力在哪 , 我觉得大家要逐步认识起来 。
唐小引:有开发者提问 , 公司内网使用MySQL有什么样的规范呢?
郭炜:公司内网用MySQL是没问题的 , 但不能将它打包成公司软件的其中一部分 , 并进行对外销售 。
唐小引:在公司内部开发自用时使用社区版的开源软件是合法的吗?
郭炜:用社区版的开源软件时需要小心 , 要看清楚该社区开源软件具体使用的Licence是什么 , 仔细甄别软件各部分的来源 。
比如有一些软件 , 表面上使用的是ApacheLicence , 但它里面却用了GPL的软件包 , 所以造成这个项目并不是单纯的在ApacheLicence之下 。 而没注意到这些的软件作者和使用者 , 可能都没有意识到需要履行GPL协议下的义务 。 所以我个人更推荐大家使用各种开源基金会下的项目 , 其实为了保证大家在使用Licence的时候比较放心 , 开源基金会下的项目是经过筛选的 , 有许多“大拿们”替小白们把关过的 。
庄表伟:我想给企业管理者们说一个道理:绝大多数未经培训、也不了解开源的License和开源相关的法律问题的程序员 , 他们为了完成自己的工作 , 可能会在网上随便找对应的软件包和组件 , 随手修改后便投入使用 。 一开始可能这个项目只是公司内自用 。 后期可能有商业化的需求后 , 这代码就被打包后拿去销售了 。 于是这当中存在非常多不知不觉的事情 , 造成了安全隐患 。
那么从企业的管理者来说 , 首先要教育自己的开发人员 , 日常工作中要注意开源相关的法律问题 。 当然不仅仅是教育他们 , 还得在公司内建立开源治理的机制 , 而不是等到软件成为商品后才亡羊补牢 。 在这个过程当中 , 企业需要付出成本 , 但很多企业之所以大力地拥抱开源 , 恰恰是因为觉得开源是零成本的 。 他们没想过 , 无论是使用、修改、再分发 , 都可能会带来安全风险和法律风险 , 为了规避风险 , 就必须付出成本 。