【问题标题】:Licence models for frameworks/libraries/apis [closed]框架/库/api的许可模型[关闭]
【发布时间】:2011-10-26 08:25:41
【问题描述】:

我是一名程序员,开始构建小型商业应用程序(适用于手机(java、android)、网页和 Visual Studio 中内置的 c++ 应用程序)。

现在的问题是我不明白许可是如何工作的。从我所见,我不允许使用任何库,甚至是 java 的基本库,因为它们要么在 GPL 之下,要么在其他东西之下。

例如,我是否有义务向 Sun 付费以使用他们的 java 库来构建我的应用程序?或者在需要发布我的代码时如何编写移动应用程序。大公司如何解决这个问题?

我不明白的另一件事是,我可以免费使用哪些特定于 Windows 的库和 API(如 MFC、.NET、COM)。这些许可证如何工作?如果我刚买了视觉工作室套装就足以让我使用这个 api 了吗?我的情况是我学会了使用这个库/apis/frameworks,现在是时候实际使用它们来做一些我必须为它们付费的事情了。 如果这是真的,那是否意味着不花费数千美元在其他事情上就不可能构建商业应用程序?

【问题讨论】:

    标签: java .net com mfc licensing


    【解决方案1】:

    以下是一些情况以及如何处理它们:

    1. 将源代码复制到自己的代码中 这是您应该非常清楚您从哪里复制代码以及在哪个许可证下发布代码的地方。大多数情况下,您将不允许复制它。在几乎所有其他情况下,您都需要将原始版权声明放入代码中。在某些情况下(GPL),您有义务随产品的任何公开发行版一起发布源代码。在某些情况下,您可以购买二进制形式的再分发权许可证。在所有情况下,最好添加注释,标记代码的来源。

    2. 使用库但不发货 如果您为 Android 或 Windows 编译应用程序,您将不可避免地使用它们的 API 和库。只要这些属于该平台,您就不需要将这些库与您的应用程序一起提供。所以你只需要关心你是否被允许在你的应用程序中使用它们(链接到它们)。对于操作系统和语言库,通常是这种情况。

    3. 随您的应用提供第三方库 同样,您需要确切地知道自己在做什么,因为存在很大差异。这个领域相当复杂......一些开发环境和框架包括“可再发行”包,这些包旨在包含在您的应用程序中。但它们也附带许可条款,值得阅读和理解其中的含义。

    经验法则:如果您在文档中给予适当的评价,BSD 风格的许可证就可以了。除非您愿意随产品一起发布整个源代码,否则 GPL 几乎总是不适合商业应用程序。

    免责声明:IANAL

    【讨论】:

      【解决方案2】:

      您的问题非常广泛,涉及范围广泛的库和相关许可。 IANAL,但简短的回答是,您提到的大多数库代码都可以用于商业目的而无需支付任何费用;特别是 Java 和 .Net 代码。各自的平台持有者希望人们使用它们。只有当您进入更专业的情况时,他们才会开始获取收入,通常是通过支持合同或特殊的 VM 版本(如旧的 JRockit VM)。

      【讨论】:

        【解决方案3】:

        复制代码并将其用作自己的代码与链接到它之间存在很大差异。

        语义会很快变得复杂,因为有许多类型的许可证,所以作为一个热情的建议,聘请熟悉该领域的优秀律师的服务。这样以后可以省去很多麻烦!!

        【讨论】:

          【解决方案4】:

          大公司在检查其解决方案中包含的每个工具/sdk/库的许可证时都会谨慎。

          关于发布源代码的义务,如果您使用的是 Microsoft sdks 或 Java 基础库,则不必这样做。

          但为了 100% 确定,您始终必须阅读许可证。阅读以下 Wikipedia 文章是了解许可工作原理的良好开端:

          • CopyLeft - 如果许可证是 copyleft,那么该许可证的所有限制也将适用于您的代码,但您将无法对代码或产品施加进一步的限制。这意味着,如果您使用具有 Copyleft 许可证的开源 sdk,则必须将源代码作为开源分发。
          • CopyFree - 如果许可证是无版权的,您可以对其施加更多限制,例如为最终产品增加费用并拒绝分发代码。
          • GNU public license - 如果您包含或链接到基于 Copyleft 的许可证,则适用 Copyleft 标准
          • Lesser GNU public license - 仅当您直接将 Copyleft 许可代码包含到源代码库中时,copyleft 标准才适用。但如果您只是链接到 Copyleft 类型的许可产品,则不适用

          试着花一些时间阅读一些关于许可主题的文章,然后你就会开始更好地理解许可。

          HTH, JP

          【讨论】:

          • 从未听说过“CopyFree”。我将这些许可证称为许可许可证。
          • @CodeInChaos 从发布的链接中读取(GNU 公共许可证,较小的 GNU 公共许可证)
          猜你喜欢
          • 2011-12-10
          • 1970-01-01
          • 2011-12-19
          • 1970-01-01
          • 1970-01-01
          • 2012-09-18
          • 2010-10-29
          • 2019-11-17
          • 1970-01-01
          相关资源
          最近更新 更多