2011-08-13 30 views
1

我是一个开始构建小型商业应用程序(用于在Visual Studio中构建的手机(java,android),网页和C++应用程序)的程序员。框架/库/ apis的许可证模型

现在的问题是,我不明白授权是如何工作的。从我所看到的我不允许使用任何库,甚至不是基于Java的库,因为它们是在GPL或其他内容之下。

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

另一件我不明白,我允许什么库和apis免费使用,是特定于Windows(如MFC,.NET,COM)。这些许可证如何工作?如果我刚买了视觉工作室套装,是否足以让我使用这个API?我处于一种情况,我学会了使用这些库/ apis /框架,现在是时候真正将它们用于我必须支付的东西。 如果这是真的,那意味着如果不花费数千美元购买其他产品就不可能构建商业应用程序?

回答

0

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

0

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

关于释放源代码的义务,如果您使用的是Microsoft sdks或Java基本库,则无须这样做。

但为了100%确定,您必须始终阅读许可证。一个良好的开端,以了解如何授权作品将阅读下面的Wikipedia文章:

  • CopyLeft - 如果许可证的copyleft那么许可证的所有限制也将适用于你的代码,但你不能对代码或产品施加进一步的限制。这意味着如果您使用具有Copyleft许可证的开放源代码SDK,则必须将源代码作为开源代码分发。
  • CopyFree - 如果许可证是免费的,您可以对其进行进一步限制,如为最终产品增加费用并拒绝分发代码。
  • GNU public license - 的copyleft的标准适用,如果你提供或者链接到开放版权许可基础
  • Lesser GNU public license - 的copyleft的标准只适用,如果你直接包含的copyleft许可证的代码到你的源代码库。但是,如果你只是链接到的copyleft类型许可产品

试花一些时间和走线槽上牌议题的一些文章并不适用,那么你将开始明白许可证好一点。

HTH, JP

+0

从未听说过“CopyFree”。我知道这些许可证为许可许可证。 – CodesInChaos

+0

@CodeInChaos阅读发布的链接(GNU公共许可证,较小的GNU公共许可证) –

1

这里有一些情况下,如何处理这些问题:

  1. 复制源代码到你自己的代码 这是你应该很清楚,你从代码被发布的许可代码复制而来。大多数情况下你将不被允许复制它。在几乎所有其他情况下,您需要将原始版权声明放入代码中。在某些情况下(GPL),您有义务发布源代码以及您的产品的任何公共发行版。在某些情况下,您可以以二进制形式购买授权以重新分配权限。在所有情况下,最好写一条评论,标明代码的来源。

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

  3. 与应用 这里再次送货的第三方库,你需要知道你在做什么,因为有很大的差异。这个领域相当复杂......一些开发环境和框架包括“可再发行”包,这些包可以包含在你的应用中。但他们也有许可条款,阅读和理解其含义是值得的。拇指的

规则:BSD风格的许可证都很好,如果你的文档中给予适当的信贷。除非您愿意将您的整个源代码与您的产品一起发布,否则GPL几乎总是不适用于商业应用。

声明:IANAL