关于开源的一些随笔

691 words

许多人虽然从事开源项目,但对开源协议的具体规定理解仍然较为模糊。他们依然会本能地认为这些项目是属于自己的,尽管已经开源,但仍觉得使用权限由自己决定,最终解释权归自己所有。然而,开源并不是这样的。

对于市面上几乎所有的主流开源协议,如MIT、Apache、GPL等,当你选择开源时,意味着任何人都可以自由复制、使用、修改、分发你的代码。而且,注意,这并不要求必须在GitHub上点击fork才算符合协议的复制。任何形式的复制,包括将源代码打包传到自己的网站上,都是合法合规的。当然,每个协议在修改时都有其特定的规定,大多数协议要求保留原协议和署名,这里暂且不提。

但如果仅仅是复制你的开源代码并放在其他地方,是完全没有问题的。即使使用了你的用户名,用户名也不受法律保护。然而,这一切的前提是代码具有开源协议。有些人认为在GitHub上公开的仓库不都是开源代码,这种看法是错误的。公开源代码和开源是两个不同的概念。

开源的核心不是那些公开的源代码,而是规定源代码如何使用的协议,即仓库中最不起眼的许可证文件。有了这个文件,项目才是开源的;没有这个文件,即使源代码完全公开,也不能自由使用。公开的源代码放在路边,也不能随便拿走,就像在路边遇到一个人,也不能随意接触。

因此,即使那些有开源协议的代码你可以直接拿来放在自己网站上,但那些没有开源协议的代码,你不能随意复制和分发,这样做是侵权的。当然,我们这里讨论的是理论上的规定,实际操作中可能会遇到许多复杂因素,比如某人抄袭了你在GitHub上的项目,你打算起诉他,但对方可能会问你GitHub是什么,你如何登录等,这些问题可能会使事情变得复杂。

Comments