我想从一开始就了解这些。假设我用某种语言编写了一些库,并将它们上传到github.com作为公共存储库。现在任何人都可以看到并使用它们。我不能阻止他们使用它,同时允许他们只看到代码,因为任何可以看到的人,也可以使用它。 我的问题是,这种代码的许可证的目的是什么?它会阻止他们使用
如果我的源代码不使用任何许可证,这是一个坏主意吗?换句话说,如果我不使用任何许可证来许可我向公众发布的源代码,我会后悔吗?
是什么决定我是否应该使用任何许可证?我应该在什么基础上为我的代码选择一个特定的许可?我应该如何做出关于许可的任何决定 ?
请帮助我理解这些事情。
先读这个:http://www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html
总结:默认情况下,所有代码都受版权保护,无论您是否声明。如果有人使用未经许可的代码,其所有者(或继承人)可以追溯性地决定起诉您。
我的问题是,这种代码的许可证的目的是什么?
许可证的目的是你有一个文件,上面写着你授予对你的受版权保护的作品的权利(软件可以受版权保护)。
这有助于您的软件用户了解他们对该软件拥有哪些权利。
一个自由软件许可证允许用户使用, 学习, 分享和改进您的软件。对于那些在开源促进会网站上列出的已批准许可证也是如此。
所以没有许可证你就没有很多权利。许可证阐明授予哪些权利。这是你的第一个好处:你的软件的用户不需要先问你。
它会阻止他们使用它吗?
不,许可证不是禁止使用它。至少通常不会。许可证授予使用软件所需的权利,因此它实际上是相反的。
或者如果他们仍然可以使用它,它(许可证)对我有任何好处吗?
你还在用是什么意思?如果您提供(已知的)软件许可,他们就可以使用该软件。对你来说,好处是你说出来了,所以你给的东西很清楚。
如果是,通过哪些方式?
例如,通过澄清您按原样提供软件而不提供某种形式的保证。如果你看一下许可证,你会发现一段关于这个的。
如果我的源代码不使用任何许可证,这是一个坏主意吗?换句话说,如果我没有为我向公众发布的源代码使用任何许可证,我将来会后悔吗?
是的,这通常是一个坏主意,因为您或多或少没有告诉您的用户他们对该软件拥有哪些权利。这可能对使用模式和贡献模式产生负面影响。那是你将来可能会后悔的事。
参见:
- 我可以在没有指定许可证的Github项目中使用代码吗?
这是一本很好的在线书籍,它一步一步地介绍了很多东西,例如选择许可证和应用它-这本书被称为生产开源软件如何运行一个成功的自由软件项目,作者是Karl Fogel。
这是最好的文章之一,基本上告诉了一切:使您的开源软件与gpl兼容。或其他。作者:David a . Wheeler发布于2002-05-06,修订于2013-01-18 -它也有很多非常好的链接。