我是一名程序员,他开始构建小型商业应用程序(用于移动电话(java,android),网页和Visual Studio内置的c ++应用程序)。
现在的问题是,我不明白许可是如何运作的。从我所看到的,我不允许使用任何库,甚至不是java的基本库,因为它们是在GPL之下或其他什么。
例如,我是否有义务向Sun支付使用他们的java库来构建我的应用程序?或者如何在需要发布我的代码时编写移动应用程序。大公司如何解决这个问题?
另一件我不明白的事情,我允许免费使用哪些库和apis是特定于Windows的(如MFC,.NET,COM)。这个许可证如何运作?如果我刚买了视觉工作室套装就足以让我使用这个api's?我处在这种情况下,我学会了使用这个库/ apis / frameworks,现在是时候实际使用它们了,我必须付出代价。 如果这是真的意味着,如果不花费数千美元购买其他东西,就不可能建立商业应用程序?
答案 0 :(得分:1)
以下是一些案例以及如何处理它们:
将源代码复制到您自己的代码中 在这里您应该非常清楚从哪里复制代码的许可证。大多数情况下,您将无法复制它。在几乎所有其他情况下,您需要将原始版权声明放在代码中。在某些情况下(GPL),您有义务发布源代码以及产品的任何公开发布。在某些情况下,您可以以二进制形式购买再分发权利许可。在所有情况下,最好发表评论,标记代码的来源。
使用库但未发货 如果你为Android或Windows编译应用程序,你将不可避免地使用他们的API和库。只要这些属于平台,您就不需要随应用程序一起提供库。因此,您只需要关心是否允许您在应用中使用它们(链接到它们)。对于OS和语言库,通常就是这种情况。
使用您的应用发送第三方库 在这里,您需要确切知道自己在做什么,因为存在很大差异。这个领域非常复杂......一些开发环境和框架包括“可再发行”的软件包,它们可以包含在你的应用程序中。但它们也带有许可条款,值得阅读和理解其含义。
经验法则:如果您在文档中给予适当的信任,BSD样式许可证就可以了。除非您愿意使用您的产品发布完整的源代码,否则GPL几乎总是不适用于商业应用程序。
免责声明:IANAL
答案 1 :(得分:0)
您的问题非常广泛,涉及广泛的图书馆和相关许可。 IANAL,但简短的回答是,你提到的大多数图书馆代码都可以用于商业目的,而无需支付任何费用;特别是Java和.Net代码。各自的平台持有者希望人们使用它们。只有当您进入更专业的情况时,他们才开始提取收入,通常是通过支持合同或特殊VM版本(如旧的JRockit VM)。
答案 2 :(得分:0)
复制代码并将其用作您自己的代码与链接代码之间存在很大差异。
语义可能变得非常复杂,因为有许多类型的许可证,所以作为一个热烈的推荐,聘请熟悉该领域的优秀律师的服务。这可以为你节省很多麻烦!!
答案 3 :(得分:0)
大公司在审查他们在解决方案中包含的每个工具/ sdk /库的许可时都非常谨慎。
关于发布源代码的义务,如果您使用的是Microsoft sdks或Java库,则不必如此。
但为了100%确定,您始终必须阅读许可证。了解许可如何运作的良好开端是阅读以下维基百科文章:
尝试花一些时间并通过一些关于许可主题的文章,然后您将开始更好地了解许可证。
HTH, JP