许多开发人员有一种错觉,以为开放源码软件是免费的,可以让他们想拿它来做什么,就做什么。但实情是,任何形式的知识产权都属于它的创造者,由他控制转让给他人使用的权利。
所以你在设计未来要销售的产品时而使用开放原始码的构建区块,你有必要了解其相关的授权问题。
创造者对其创作成果的拥有权与使用的控制权是多数法律制度中的一部分。不管是对写软件的工程师或对写小说的作家都一样。这种使用权通常是透过授权的形式来表达。开放源代码和购买来的代码之间的唯一区别在于许可协议的条款,据此,那些代码才可以使用。因此,当你在使用开放源代码时,你还是要同意遵守这样那样的用户许可证规定。
像Free Software Foundation及Open Source Initiative等组织已经对所谓的"自由软件(free software)"(此处的free应是free speech)的free,而不是免费午餐(free lunch)的free)有所定义,它是指这类"开放源"的授权。虽然自由软件必须包括源代码,但开放源码的代码并不总是免费的。
但难就难在这里。在开放源码社群内有很多不同的许可证。对粗心的人来说,这会带来很多混乱的情况。例如,如果你的设计中结合了不同许可证的开放源码的元素,你会发现自己处在一种不可能遵守所有许可证要求的情况。像是有些代码的许可证会要求,你开发的任何衍生产品都必须反过来授权给你的客户,要用像你所使用代码的许可证一样完全相同的许可证。但是,如果您的产品结合了两种开放原始码的元素,而它们又有不同的许可证,而这两个许可证又有这种"完全相同"的要求,这将让你面对到一个两难的情况。你无法设计出一种许可证,而它又与两个不同的许可证完全相同。
即使你是你的产品中每样东西唯一的创造者,但是要以开源码来制造它,在你进一步动作之前,你还是需要考虑许可证问题,以确保条款对你的有效的。
你通常会有几个相等的许可选项可选,但现今使用中的开放源码许可就将近有100种,要知道你所同意的是什么(选择最适合你的产品的),确是一大挑战。
一些较受欢迎的开放源码许可包括:
● Apache License, 2.0 (Apache-2.0)
● BSD 3-Clause "New" or "Revised" license (BSD-3-Clause)
● BSD 3-Clause "Simplified" or "FreeBSD" license (BSD-2-Clause)
● GNU General Public License (GPL)
● GNU Library or "Lesser" General Public License (LGPL)
● MIT license (MIT)
● Mozilla Public License 2.0 (MPL-2.0)
● Common Development and Distribution License (CDDL-1.0)
● Eclipse Public License (EPL-1.0)
● Creative Commons Licenses
还有其他许多种,其中包括很多是给特殊情况所使用的许可。
大部分的许可证是来自于软件世界,但同样的事情也适用在硬件世界。如果你是在使用一种开源的硬件设计,在完成以此为基础的产品和开始销售它之前,先验证一下你的权利和义务吧!
如果你不打算转售或甚至发表你的设计,你对许可证的问题,大概不需要太过于担心。如果你打算要把它还给开放原始码社群,或商品化销售你的设计,那么,你就要注意到你已同意的许可证。你甚至可能需要寻求法律上专业的意见。