框架/库/ apis的许可证模型

时间:2011-08-13 09:32:05

标签: java .net com mfc licensing

我是一名程序员,他开始构建小型商业应用程序(用于移动电话(java,android),网页和Visual Studio内置的c ++应用程序)。

现在的问题是,我不明白许可是如何运作的。从我所看到的,我不允许使用任何库,甚至不是java的基本库,因为它们是在GPL之下或其他什么。

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

另一件我不明白的事情,我允许免费使用哪些库和apis是特定于Windows的(如MFC,.NET,COM)。这个许可证如何运作?如果我刚买了视觉工作室套装就足以让我使用这个api's?我处在这种情况下,我学会了使用这个库/ apis / frameworks,现在是时候实际使用它们了,我必须付出代价。 如果这是真的意味着,如果不花费数千美元购买其他东西,就不可能建立商业应用程序?

4 个答案:

答案 0 :(得分:1)

以下是一些案例以及如何处理它们:

  1. 将源代码复制到您自己的代码中 在这里您应该非常清楚从哪里复制代码的许可证。大多数情况下,您将无法复制它。在几乎所有其他情况下,您需要将原始版权声明放在代码中。在某些情况下(GPL),您有义务发布源代码以及产品的任何公开发布。在某些情况下,您可以以二进制形式购买再分发权利许可。在所有情况下,最好发表评论,标记代码的来源。

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

  3. 使用您的应用发送第三方库 在这里,您需要确切知道自己在做什么,因为存在很大差异。这个领域非常复杂......一些开发环境和框架包括“可再发行”的软件包,它们可以包含在你的应用程序中。但它们也带有许可条款,值得阅读和理解其含义。

  4. 经验法则:如果您在文档中给予适当的信任,BSD样式许可证就可以了。除非您愿意使用您的产品发布完整的源代码,否则GPL几乎总是不适用于商业应用程序。

    免责声明:IANAL

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

语义可能变得非常复杂,因为有许多类型的许可证,所以作为一个热烈的推荐,聘请熟悉该领域的优秀律师的服务。这可以为你节省很多麻烦!!

答案 3 :(得分:0)

大公司在审查他们在解决方案中包含的每个工具/ sdk /库的许可时都非常谨慎。

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

但为了100%确定,您始终必须阅读许可证。了解许可如何运作的良好开端是阅读以下维基百科文章:

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

尝试花一些时间并通过一些关于许可主题的文章,然后您将开始更好地了解许可证。

HTH, JP