Answers:
版权所有者。默认情况下,这就是所讨论的代码的作者(如果有很多,则为每个作者)。可以将版权分配给其他人,并且某些开源项目的确需要版权分配作为贡献的条件。
每个人都拥有他们编写的代码的版权。这意味着默认情况下,原始作者是唯一可以授予该代码许可证的人。
由于开放源代码项目通常有很多作者,因此在所有需要更改许可的情况下追踪所有作者并使他们达成一致是不可行的。为避免此问题,某些开放源代码项目已获得许可的许可,该许可允许在该许可的任何更高版本下使用代码。这样,您可以使作者同意尚不可用的许可证的未来版本。通常,许可证作者承诺会在精神上使这些更高版本与原始许可证类似,例如在GNU通用公共许可证中:
自由软件基金会可能会不时发布GNU通用公共许可证的修订版和/或新版本。这样的新版本在精神上将与当前版本相似,但可能在细节上有所不同以解决新问题或关注点。
解决此问题的另一种方法是让作者同意将其版权转让给其他人,例如项目所有者。然后,此人有权决定是否对项目进行许可以及是否获得新许可。这种方法的缺点是项目所有者是人,可能不按照原始作者的精神行事。由于原始项目所有者可能不属于fork,并且fork所有者将不具有原始代码作者的版权,因此这也使fork很难切换到新许可证。
最后,当您是一个非常大的实体时,您可以请许可证作者对许可证进行更改。这就是Wikimedia如何通过CC-by-sa从仅GFDL许可转换为双重许可的方式:他们请FSF发布较新版本的GFDL,其中包括一个部分,以使项目能够将其内容转换为CC-by -sa在有限的时间内。
如您所见,许可始终是一件麻烦事,目前尚不清楚最佳做法是什么。通常,在其他人做出贡献之前,您应该花一些时间为项目找到合适的许可证,因为以后更改许可证通常很困难。
请注意,答案很大程度上取决于开源项目接受您的代码的条件。
大多数人至少会发表这样的声明:通过贡献,您已经授予了项目使用,分发等权利,并且授予了项目的所有用户查看和执行代码的权利。那并不会影响您的版权,但这意味着您不可撤销地同意将其许可用于该项目。
根据随后分发项目所依据的条款以及您已同意的许可证的详细信息,这可能会或可能不会使其他所有人都可以访问项目权限,以便在其他上下文中使用您的代码。
您有责任在编写代码之前阅读和理解这些详细信息。如有疑问,您可以要求运行该项目的人解释他们打算许可的内容,但请记住,免费的法律建议(包括您为回答问题而看到的所有内容)完全值得您付出它。
如果这对您确实很重要,请获取确切的语言,然后聘请您自己的律师检查它的陷阱。或者不贡献代码,您不希望看到逃逸进入通用范围。或者让别人为您进行研究-我的雇主对我是什么样的开放源代码有明确的规定,不允许我参与。