移动应用要谨慎使用开源软件

  • 来源:计算机世界
  • 关键字:移动,应用,谨慎,开源软件
  • 发布时间:2011-03-23 14:28
  应用程序商店时下风靡一时,企业争先恐后地争取在竞争对手之前推出自己的软件。为了加速软件开发,不少企业采用了开源组件。但是,企业需要确保所用的开源软件符合应用程序商店和开源组件的有关规定,从一开始就要尽量避免风险。

  GPLv2和App Store规定有冲突

  OpenLogic公司最近调查了635个很受欢迎的移动应用的授权许可情况,结果发现有66个应用程序中使用了采用Apache或GPL/LGPL许可证的开源组件,而在66个应用程序中,超过70%的应用程序不符合开源许可证的规定。

  OpenLogic的分析表明,企业在应用程序商品中发布基于开源组件开发的应用程序时并没有充分理解授权许可的含义。这是很危险的:忽略软件授权许可的规定意味着你的应用程序可能会被从应用程序商店删除,这既有损于企业的竞争力,同时也会让自己的用户倍感沮丧。

  另一个要考虑的问题是,最流行的应用程序商店Apple的App Store的服务条款与GPLv2的许可并不兼容。除非这些兼容问题解决,否则那些准备在苹果的应用程序商店发布自己的移动应用的公司,如果要在应用中使用采用GPLv2的开源应用组件就应三思而后行,有必要咨询法律顾问。

  那么,到底有什么问题?GPLv2规定,如果软件采用了GPLv2许可就不允许在原来的规定之外再增加进一步限制,GPLv2授权许可也不允许对如何使用加以限制。另一方面,苹果公司的App Store服务条款规定,除了在规则中明确列出的那些使用方式外,用户不得采用其他方式使用App Store中的应用。这样,要符合苹果公司的应用商店中的服务条款规定,就势必要对应用程序的使用方式进行一定的限制,这就与GPLv2的授权许可协议不允许对代码的使用进行限制产生了矛盾。正是由于这方面的原因,曾经非常流行的VLC媒体播放器被从App Store删除了。

  虽然苹果没有明说不准App Store中的应用程序采用GPLv2许可协议,但两者的确存在冲突,事实上限制了GPLv2许可协议在其App Store中使用。而微软则明确地提出,Windows Marketplace上不允许应用程序使用类似GPLv2这样的Copyleft许可证。

  与苹果和微软不同,Google并没有限制在Android Market 上使用采用GPLv2许可的开源组件。然而,大多数企业更倾向于采用这样一种方式来开发移动应用程序,即在一组核心组件集的基础上针对各种不同的设备平台进行裁剪,这种想法使得企业尽量避免使用那些不能跨平台的软件组件。虽然Android Market允许使用GPLv2的组件,而如果企业还希望这个应用程序将要发布到苹果公司的App Store或Windows Marketplace上,那么采用使用GPLv2授权许可协议的组件就不是最好的选择。

  如何解决

  鉴于目前大量的开源软件采用的是GPLv2授权许可协议,而苹果公司的应用程序商店App Store之间和Windows的应用程序商店Windows Marketplace的服务条款又与GPLv2协议之间存在不兼容,因此,解决它们之间的冲突已经成为一个亟待解决的问题。

  对于那些非常想采用自由软件的同时又希望借助苹果公司应用程序商店的庞大用户群作为发布渠道的开发人员而言,有专家提出双软件授权许可的方式:采用两个许可协议,针对更广泛的用户采用GPL协议,而针对苹果的App Store的可执行版本以及衍生版采用另一个协议,以允许其他人使用和发布App Store上的二进制版本。

  这个方法的关键是,需要那些采用GPLv2许可的开源项目同意采用一个新的适合App Store的授权许可,而一些崇尚自由、喜欢GPLv2的开发者很可能不会同意采用限制用户自由的授权许可。此外,基于第三方开源软件开发的开源项目如果不能找到替代软件的话,就要获得每个第三方开源项目的同意,允许采取双许可方式。

  值得一提的是,如果使用的是采用Apache 2.0授权许可协议的开源软件就不会有与GPLv2相同的问题,它与苹果的App Store的服务条款兼容,因而那些使用开源软件的公司可以使用这个授权协议。

  此外,如果公司在移动应用商店中发布的应用软件的确存在不符合开源软件授权许可的情况,也不要责备开源软件开发商、承包商或第三方服务提供商在开源软件方面使用不当。相反,确保你的企业制定了一个好的指导方针和审批程序,就像你在内部使用的开源项目一样。另外,还可以采用一些专门的工具或者聘请一些专业厂商来帮助验证企业的开源项目是否符合开源软件的有关协议。为了避免不必要的风险,这些都是必要的。

  GNU GPL

  GNU GPL(GNU General Public License,通用公共许可证)是一个被广泛使用的开源软件许可证,最初由理查德·斯托曼为GNU计划而撰写。到目前为止,GPL先后发布了3个版本。

  GPLv1 发布于1989年1月。GPLv1规定,如果发布了可执行的二进制代码,就必须同时发布可读的源代码,并且不能添加任何限制性的条款。

  GPLv2 在GPLv2中所做的最大的改动是规定,如果发布源于GPL的软件时,只能以二进制代码的形式发布软件,那么他将根本无权发布该软件。

  GPLv3 发布于2007年6月29日。最重要的修改有四个:解决软件专利问题;与其他许可证的兼容性;源代码分割和组成的定义;解决数字版权管理 (DRM) 问题。
……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: