对于软件开发而言,重复利用和改编现有材料为其固有特点。在软件开发技术发展的早期,这主要意味着开发者个人重复利用自己编写的代码。但是平台的进化(即从BBS网络、USENET到最终的万维网)极大地拓展了获取第三方内容的范围,以及分享代码的机会。同时,软件开发领域本身的进化使得真正从头开始编写一个程序是几乎无法想象的,现在的软件开发通常意味着是对底层机器代码进行不同层次的抽离后再进行模块聚合的过程。
同时,必须谨记软件代码自动受到给予代码作者(如作者为雇员,则为其雇主)的国际版权保护。因此,任何希望重复利用不属于自己创作代码的人,其重复利用须遵守代码所有人的许可条款。现代软件项目一般集合多种带有众多不同许可的元素,而追踪这些许可并确保每项许可的条款均得到遵守这件事情本身正日益需要在管理上付出努力。
第三方商业软件通常通过些许正式的采购程序获得,即付出一笔款项获得一项明确的许可。对于这种情况通过要求被许可人给予明确配合可以相对容易地追踪许可。但是对非商业性质的代码来说,例如来自互联网论坛的碎片代码,“自由软件”以及特别是从开源许可项目中获得的代码,许可追踪情况经常是不那么容易掌控的。
开源运动在1983年以GNU项目的发起为开端,产生了自由软件基金会。这项运动尤其推动了不以禁止传播为目的的版权许可的发展,该类型许可的主旨在于在符合这些宏观目标的特定条款的情况下,支持和鼓励传播。GNU项目产生了GPL(即公共许可证)。随着开源运动变得更加流行,其他开发者们以类似的基本理念开始了他们的项目,并以相同条款提供了他们的代码。尽管向用户提供了接入、修改及传播源代码的权限,GPL的许可条款同时设置了诸多义务。围绕这些义务的问题是复杂的,且不在本文章的讨论范围之内,但是总得来说这些义务在于劝止将被许可代码用于商业性项目。开源运动促使了各种开源许可的繁荣发展,这些开源许可在限制范围上均做出了一些变动,其中GPL系列的许可协议是这些开源协议中限制性最强的,而MIT及BSD开源许可协议则是其中许可自由度最大的。
抛开各种开源协议在许可范围上的立场不谈,几乎所有的开源许可协议对希望利用开源协议下的材料的主体均施加了一些限制。例如,即使具有相当许可自由度的BSD开源许可协议仍要求在被许可软件的传播中加入版权声明以及许可协议本身。这一最低要求通用于大多数开源许可协议,以致任何包含开源代码的软件的发布版本均会包含一个编辑通知文档的步骤以为每个开源模块解决这些要求。
同时,每个开源协议都有自身的特点,其中的一些能严重影响使用者的权利,例如对他们自己的代码许可给终端用户的条款施加一些限制、实施专利权的自由度、应第三方要求时必须提供的材料以及诸如此类的条款。
不遵循许可协议的要求可能会导致许可协议无效,继而使得相关主体面临对版权人承担版权侵权的法律责任、对侵权软件产品进行召回及/或重写的义务,或者其他责任。
尽管开源软件本身就有一套特别需要考虑的事项,在软件开发过程中还存在与第三方版权相关的其他重要问题。除了软件代码之外,依据软件代码相关的协议的不同规定,版权还保护图片和文字,并且开发者须施加特别注意以确保获得这些材料的一些适当权利,即使软件是为内部目的开发的。包括图片、文本以及软件代码在内的许多软件素材,是可以不受明显限制在互联网上获得的,但是如果未获得以及遵循相关的许可协议,是可能无法安全使用于商业软件产品的。
至少是基于上述考虑,未经对产品中的第三方内容、适用的条款以及必须完全遵循的步骤进行详细评估的情况下,就不应该发布商业软件产品。
麦仕奇法国办公室在本领域有一套独特的经验能够帮助各类型业务实体培训开发人员,扫描代码以及审阅许可协议,或者构建适合于确保持续合规的商业级别的业务流程。麦仕奇法国办公室作为“OpenChain ISO/ 5230” 开源合规国际标准的律师事务所伙伴,将非常乐意为您实施ISO5230合规流程提供建议和支持。