# MiniGUI GPL 版本的授权策略

目前，飞漫软件遵循 GPL 条款发布 MiniGUI 及其组件。本文档描述飞漫软件针对
商业用户的 MiniGUI 及其组件授权策略。

注：本文所指 MiniGUI，包含了 MiniGUI 核心库以及 mGi、mGp、mG3d、mGEff、
mGPlus、mGNCS、mGNCS4Touch 以及其他在未来可能以 GPL 条款发布的 MiniGUI
组件或工具。

## 简介

简而言之，飞漫软件针对 MiniGUI 的授权策略是：MiniGUI 是 100% 按照 GPL 条款
发布的自由软件，如果您能 100% 遵守 GPL 许可证条款，则无需支付任何授权费用。
在其他任何情况下，都需要获得我们的商业授权。

老版本 MiniGUI（1.3.0 版本之前）遵循 LGPL 条款发布，因为嵌入式系统无法
保障用户获得修改 MiniGUI 函数库并进行调试的自由，从而无法确保 LGPL 在
嵌入式产品中的实施，因此，如果要在嵌入式产品中使用老版本的 MiniGUI， 也必须
首先购买商业授权。


## 授权详解

自 MiniGUI V1.3.0 起，我们遵循 GNU General Public License 许可证（简称 GPL）
发布 MiniGUI。该条款的原文可见和 MiniGUI 源代码一同发布的 COPYING 或者
LICENSE 文件。相比早期版本使用的 LGPL（GNU Lesser General Public License）
许可证， GPL 所定义的条款要严格的多，更能有效维护自由软件的权益，避免自由
软件成为专有系统的一部分。有关 GPL 许可证的解释及适用，可参阅 GNU 官方网站上的
相关网页：

    http://www.gnu.org/licenses/licenses.html

同时，我们为无法或者不愿 100% 遵循 GPL 条款使用 MiniGUI 的用户提供商业授权。
具体价格及购买方法，请访问：

    http://www.minigui.com/product/cindex.shtml


1. 如果您 100% 遵循 GPL，无需获得商业授权

如果您使用 MiniGUI 的应用程序以 GPL 发布，则无需获得我们的商业授权。
我们非常欢迎任何人在遵循 GPL 条款的基础上复制、修改和发布 MiniGUI。
在这种情况下，您无需获得飞漫软件的任何形式的（包括口头或书面）使用授权，
因为 GPL 条款本身就足够确保您的权益。但需要注意的是，飞漫软件不对这种
形式下的使用提供任何形式的担保或技术支持。


2. 如果您从不复制、修改和发布 MiniGUI，无需获得商业授权

只要您从不复制、修改和发布 MiniGUI，则您可以在您的应用程序中使用 MiniGUI，而无需
获得商业授权。举个例子，您在完成一篇学位论文，并因此在您的程序中使用了 MiniGUI，
您的程序仅仅用来说明您论文中试验的可行性或者结果，而且您没有修改 MiniGUI，并且
该程序不以任何方式被复制和发布，则您无需获得商业授权。飞漫软件也不对这种形式下的
使用提供任何担保。

但需要特别指出：

  * 修改。我们欢迎您对 MiniGUI 进行任意的修改。如果你发布该修改版本，则您
    对 MiniGUI 所做的任何修改、所有的接口代码以及直接和间接地与接口相关联的
    代码将遵循 GPL 许可证。

  * 复制。我们允许您复制 MiniGUI 二进制代码和/或源代码，但一旦这么做了，所有的
    副本应遵循 GPL 许可证。


3. 其他情况均需获得商业授权

如果您使用 MiniGUI 的应用程序并不以 GPL 条款发布，却打算在内部或外部发布
使用 MiniGUI 的应用程序或者函数库，则您必须首先获得飞漫软件的商业授权。

特别是：

  * 如果您使用的嵌入式操作系统不采用 GPL 授权条款（比如 uC/OS-II、ThreadX、
    VxWorks 等操作系统），则必须购买 MiniGUI 商业授权。

  * 您的非 GPL 应用程序连接了 MiniGUI，不管静态还是动态连接，您需要为每一个
    MiniGUI 函数库副本购买商业授权。尤其在您使用传统嵌入式操作系统时，操作
    系统、函数库、MiniGUI 和您的应用程序需要编译链接成完整的可执行映像，这时，
    必须购买 MiniGUI 商业授权。

  * 如果您在自己的单位使用 MiniGUI 函数库，但又不希望将其置于 GPL 许可证
    之下，则需要购买商业授权。

  * 当然，更多的人购买 MiniGUI 的商业授权，其目的非常简单，他们希望获得
    来自飞漫软件的技术支持和软件质量担保。


4. 建议

对商业用户，我们建议购买 MiniGUI 的商业授权。这不仅仅能帮助您避免为满足 GPL 
条款而付出太多的硬件和软件开发费用，从而保护自己专有系统的商业利益，也可以从
飞漫软件获得质量担保——GPL 软件不含任何形式的、间接或直接的担保。

对自由软件社区的用户，或者经费不足的科研院校，我们建议您在开发基于 MiniGUI 的
应用程序时，采用 GPL 或者其他的开放源码许可证条款。这样，能在最大程度上满足
GPL 许可证条款，您也不必购买 MiniGUI 的商业授权。

如果您不知道自己的产品能否 100% 满足 LGPL 条款，则建议您选择商业授权，因为对
飞漫软件来讲，我们会保护商业客户的利益，并通过优秀的技术支持和产品担保来确保
您的产品能够顺利开发并良好运行。


## 老的版本

在版本 1.3.0 之前，MiniGUI 使用 LGPL 条款发布。这种条款为非自由软件使用自由
函数库而提供了非常宽松的条件。但是，LGPL 条款仍然为复制、修改和发布 LGPL 软件
定义了一些约束性的条款，以避免 LGPL 软件变成专有系统事实上的一部分，或者
通过一些技术障碍来阻止用户获得 LGPL 条款定义的自由。这些条款包括以下几个方面：

  * 对 MiniGUI 本身的复制、修改和发布行为，均应在确保 MiniGUI 仍然为函数库、
    仍然遵循 LGPL 或者 GPL 许可证的前提下进行。

  * 使用 MiniGUI 必然要生成可执行文件。根据 LGPL 条款的定义，该可执行文件
    是 MiniGUI 的“衍生作品”，并且应该按照 LGPL 许可证之第 6 条发布该可
    执行文件。该条款的核心思想是，确保用户知悉在该“衍生作品”中使用了
    遵循 LGPL 条款发布的 MiniGUI 函数库，用户因此将得到修改 MiniGUI 的权利；
    在用户修改了 MiniGUI 函数库的情况下，只要修改后的版本和原先的版本在接口
    上是兼容的，则应确保用户仍能够生成“衍生作品”（静态连接的情况），或者
    “衍生作品”仍然能够正常工作（动态连接的情况）。因此，“衍生作品”的发布
    必须以确保用户获得上述自由为前提和条件。

飞漫软件认为，MiniGUI 在大多数嵌入式系统中的应用，会因为某些技术上的障碍而不可
避免地阻碍用户获得上述自由：

  * 某些嵌入式系统根本不存在任何硬件上的条件或机制（比如程序上载接口），以
    帮助用户运行和调试修改后的 MiniGUI 函数库。

  * 某些嵌入式系统采用了其他非开放源码的专有操作系统，用户根本无法免费获得
    用于编译、连接和调试修改后 MiniGUI 函数库的工具。

  * 某些嵌入式系统，因为专利或技术保密等原因，禁止用户对程序采用反向工程和
    反汇编，从而禁止用户调试修改后的 MiniGUI 函数库。

如果您剥夺了用户获得修改 MiniGUI 的权利，即使您遵循了 LGPL 许可证的其他条款发布
了修改后的 MiniGUI 源代码，则仍不属于 100% 遵循 LGPL 条款。这时，您需要获得飞漫
的商业授权。那么，嵌入式系统需要完成哪些工作才算 100% 遵循 LGPL 条款呢？

  * 确保按照 LGPL 条款复制、修改和发布 MiniGUI 函数库本身。

  * 如果您采用静态连接方式生成使用 MiniGUI 函数库的可执行程序，则应确保提供
    用于生成最终可执行程序的全部目标代码和/或源代码。

  * 如果您采用动态连接方式使用 MiniGUI 函数库，则应确保在达到接口兼容性的情况
    下，使用 MiniGUI 函数库的可执行程序仍然能够正常工作。

  * 您必须允许用户对您的程序进行反向工程，以便用户调试修改后的 MiniGUI 函数库。

  * 如果您采用了非开放源码的专有嵌入式操作系统，则请确保和您的产品一同提供用于
    编译、连接和调试程序的工具，或者您的用户可免费获得这些工具。

  * 您的产品还应该在硬件和软件上提供替换原先 MiniGUI 函数库和/或使用 MiniGUI
    的可执行程序的机制和条件，以便用户在您的嵌入式产品中调试和运行修改之后
    的 MiniGUI 函数库。

  * 其他为确保用户具有修改 MiniGUI 函数库的自由而应该提供的法律许可及软硬件条件。


因此，我们认为在嵌入式系统中使用老版本 MiniGUI，也必须购买商业授权。


## MiniGUI 商业授权

有关 MiniGUI 产品及商业授权的方式及价格，请访问

    http://www.minigui.com/


## 如有疑问

如果您对上述授权策略有任何疑问，请联系我们：

    mailto: sales@minigui.com

----

  * GPL = GNU General Public License, http://www.gnu.org/copyleft/gpl.html 
  * LGPL = GNU General Public License, http://www.gnu.org/copyleft/lgpl.html 
  * FMSoft = FMSoft, http://www.fmsoft.cn

