您的位置:402cc永利手机版 > 互联网动态 > www.402.com乐乎专访,常用开源许可公约介绍

www.402.com乐乎专访,常用开源许可公约介绍

2019-10-30 13:21

2015年1月9日,国家自然科学一等奖授予了计算机科学家、中国工程院院士张尧学及其团队。但这一奖项立刻引发了争议,许多研究者认为这一项目太偏向工程,太过普通,《科学》杂志的官方网站也对此进行了报道。

什么是许可协议?

在接受科技日报采访时,张尧学提供了一个视频链接,展示了基于透明计算的“透明桌面”项目的运行状况。但是,网友很快发现其中一段帮助文本是英文。经搜索发现这段文本来自加拿大软件工程师约丹·约丹诺夫(Iordan Iordanov)的远程桌面客户端bVNC,这是一个“开源软件”,源代码是公开的。

什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供一定的权限。

www.402.com 1视频截图。可以看到叠加在PPT界面上的帮助文本是英文:“Direct, Swipe Pan: Swipe to pan around...”

不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用,否则,对于前者,你相当于放弃了自己所有的权利,任何人都没有义务表明你的原始作者身份,对于后者,你将不得不花费比开发更多的精力用来逐个处理用户的授权问题。

果壳网为此对约丹诺夫进行了专访,他在专访中表示,根据视频可以明确判断出透明桌面肯定使用了他的代码,而且他的代码在其中应该起了很重要的作用。但是,只要项目组愿意将他们的完整成果按照开源软件协议公开源代码,那就不算是违反了软件业的原则——不过,学术领域的原创性就另当别论了。

而开源许可协议使这些事情变得简单,开发者很容易向一个项目贡献自己的代码,它还可以保护你原始作者的身份,使你至少获得认可,开源许可协议还可以阻止其它人将某个产品据为己有。越来越多的开发者与设计者希望将自己的产品开源,以便其他人可以在他们的代码基础上做更多事,开源社区也因此充满生机。在我们所能想到的应用领域,都有开 源软件存在(象 WordPress,Drupal 这些开源CMS)。然而很多人对开源许可并不了解,本文介绍开源领域常用的几种许可协议以及它们之间的区别。

果壳网:你能简单介绍一下你的项目吗?

 

约丹诺夫:我的bVNC是一个虚拟网络计算(VNC)客户端,它是在远程桌面客户端代码库里的源代码基础上开发的。这个代码库里面还有好几个其他的项目——其中有一个名叫aRDP的远程桌面协议(RDP)客户端,一个名叫aSPICE的独立计算环境简单协议(SPICE)客户端,还有一个名叫Opaque的红帽企业虚拟平台开源版(oVirt/RHEV)客户端。这后两个软件包,可能就是透明桌面项目的基础。

Apache Licence 2.0

它允许用户连接到远程设备上运行的远程桌面,可以选择使用多种协议。目前支持的协议是VNC,RDP和SPICE这三种;除此之外,我的客户端还支持oVirt/RHEV架构,使用的是一个叫做libgovirt的红帽二进制库。而且,它还提供SSH隧道功能,提供额外安全性。

Apache 协议 2.0 和别的开源协议相比,除了为用户提供版权许可之外,还有专利许可,对于那些涉及专利内容的开发者而言,该协议最适合。

一旦连接到了远程桌面,用户就能输入文本或操纵鼠标和远程桌面互动。远程鼠标操纵可以使用多种输入模式,包括直接模式、模拟触控板模式和单手模式,每一种有不同的优缺点,取决于用户喜欢如何使用他们设备的触屏。

Apache 协议还有以下需要说明的地方:

果壳网:你的项目的版权状况如何?

  • 永久权利 一旦被授权,永久拥有。
  • 全球范围的权利 在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题。
  • 授权免费,且无版税 前期,后期均无任何费用。
  • 授权无排他性 任何人都可以获得授权
  • 授权不可撤消 一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码

约丹诺夫:我使用的授权是GPLv2或者v3,不同子项目版本有差异。这一授权允许别人在满足一定条件的情况下使用我的代码,具体条件可参见GPL相关条目。大致说来,这些条件可以部分概括如下:

分发代码方面包含一些要求,主要是,要在声明中对参与开发的人给予认可并包含一份许可协议原文。

如果有人在我的项目基础上创作了衍生作品,并且不是留作自己用,而是分发给别人,那他们必须把整个衍生作品的完整源代码也公布出来。而且,对于这些源代码他们只能使用GPL授权,不能换成别的授权。

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:

所以,他们的项目也应遵循GPL,具体什么版本取决于他们用了哪些子项目。bVNC,aRDP和aSPICE的协议是2版,而Opaque则是3版。

  1. 需要给代码的用户一份Apache Licence
  2. 如果你修改了代码,需要再被修改的文件中说明。
  3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
  4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

关于GPL授权的详情,请参见这两个链接:

Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。

GNU GPL

通用性公开许可证(General Public License,简称GPL)。GPL同其它的自由软件许可证一样,许可社会公众享有运行、复制软件的自由;发行传播软件的自由;获得软件源码的自由,以及改进软件并将自己作出的改进版本向社会发行传播的自由。GPL还规定,只要这种修改文本的整体或者其某个部分来源于遵循GPL的程序,则该修改文本的整体就必须按照GPL流通,不仅该修改文本的源码必须向社会公开,而且对于这种修改文本的流通不准许附加修改者自己做出的限制。因此,遵循GPL流通的程序不能同非自由的软件合并。GPL所表达的这种流通规则称为copyleft,表示与copyright(版权)的概念“相左”。

果壳网:能否断言透明桌面项目组使用了你的代码?

GNU General Public Licence (GPL) 有可能是开源界最常用的许可模式。GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利:

约丹诺夫:是的,十分明显他们把我的软件整合到了他们的项目里,这从屏幕上的可绘制对象——Ctrl, Alt, Shift等等的位图按钮可以看出来,还有弹出的信息框(关于当前选择的输入模式的信息和分辨率)也能证明这一点。此外,他们所展示的功能,在我的软件里已经实现了。他们的项目的移动端和我的项目非常相似,几乎到了完全等同的地步(bordering on identical to my project)。

  • 可自由复制 你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制。
  • 可自由分发 在你的网站提供下载,拷贝到U盘送人,或者将源代码打印出来从窗户扔出去(环保起见,请别这样做)。
  • 可以用来盈利 你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。
  • 可自由修改 如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用 GPL 协议。

不过,我并没有下定论说他们是“盗窃”了这些代码。如果他们试图把源代码改换授权重新发布,或者发布了二进制软件而不同时发布源代码,那么这就算是盗窃,不过他们已经承诺不会这样做了。

需要注意的是,分发的时候,需要明确提供源代码和二进制文件,另外,用于某些程序的某些协议有一些问题和限制,你可以看一下 @PierreJoye 写的 Practical Guide to GPL Compliance 一文。使用 GPL 协议,你必须在源代码代码中包含相应信息,以及协议本身。

(编者注:此处的“承诺”,指的是认证微博账号“透明桌面项目组微博”在新浪微博发布的声明。)

我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商 业软件公司开发的免费软件了。

话虽如此,鉴于他们获得了如此巨大的成功,如果他们能联系一下我,允许我参与进他们的项目组,我将十分荣幸——不过这并非我的明确要求。不管怎么说,如果没有我的工作,他们是没办法像现在这样在移动设备上展示他们的工作的。他们在透明桌面项目里展示的移动设备灵活性,大概是整个展示中最重要的一部分,而他们选择在视频的最后表演这一部分,大概是因为它的“哇哦指数”(wow-factor)最高吧。

GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的“传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。

果壳网:帮助文本也算吗?

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
GPL许可证是自由软件的应用最广泛的软件许可证,人们可以修改程式的一个或几个副本或程式的任何部分,以此形成基於这些程式的衍生作品。必须在修改过的档案中附有明显的说明:您修改了此一档案及任何修改的日期。 您必须让您发布或出版的作品,包括本程式的全部或一部分,或内含本程式的全部或部分所衍生的作品,允许第三方在此许可证条款下使用,并且不得因为此项授权行为而收费。 (这个似乎最严格,需要公开源代码)

本文由402cc永利手机版发布于互联网动态,转载请注明出处:www.402.com乐乎专访,常用开源许可公约介绍

关键词: www.402.com 402cc永利手机版