自由软体的发展历程可追溯到1989年,当时Richard Stallman提出了GNU通用公共许可证(GPL),这在其后几年对自由软体运动产生了深远的影响。 GPL不仅是一个许可证,它是一种确保用户对软体程序有自由使用、研究和修改权利的法律架构。
「所有人都应该拥有运行、学习和分享软体的自由。」
在最初的GPL版本1(GPLv1)中,Stallman旨在阻止软体分发商通过限制可修改和分发的权利来限制自由。他的解决方案是明确规定任何形式的二进制文件都必须与可读的源代码一起发布,并且任何对源码的修改也必须遵循相同的许可条件。因此,GPLv1的设计宗旨就是维护使用者的自由。
然而,到了1991年,GPL的第二版(GPLv2)推出时,随着自由软体社群的扩展,面对着新的挑战。许多开发者对GPLv2中某些条款的执行存在担忧,特别是有关于所谓的tivoization问题,即某些硬体限制了用户安装和运行修改过的软体,与GPL的原意背道而驰。
「GPL不仅保障了自由,还反对利用法律系统来贩卖自由。」
在开源社群内部针对GPL的讨论中,有人在思考如何能改善这一点。在2007年,GPL的第三版(GPLv3)最终面世,这是对于之前两个版本所产生的问题的正式回应。这一版本的亮点在于针对专利的条款、对硬体要求的限制、以至于增加了对全球化的考量,试图创造一个更具弹性的框架来保障自由软体的使用权利。
GPLv3的开发经历了长达十八个月的公众咨询,总共收到了超过2600条的意见和建议,使其在版面上及条款上都趋于严谨。许多软体开发者与法律顾问共同协作,确保新版本能够解决GPLv2所遇到的问题,并使其适应新的技术环境。
在特定社群内,一些知名的Linux内核开发者反对采用GPLv3,担心它会使整个开源生态系统面临分裂的风险。 Linus Torvalds便是其中一位,他在多次公开场合表达出他对于GPLv3包括数据隐私和专利的修订心存疑虑。
「若不同版本的GPL共存,将使开源宇宙产生分歧。」
不管是出于哪种原因,GPLv3的推出实质上开启了更进一步的对话,提供了自由软体的使用者与开发者更高的保护和灵活性。这一变化是在新的专利环境和商业实践中不可或缺的,在全球化的背景下必须应对的现实之一。
值得一提的是,所有GPL版本中都包含一个状况,即所谓的“随后版本”条款,这意味着使用者可选择是否跟随未来版本的变更,这在促进同一代码不同版本间的兼容性方面发挥了关键作用。
随着GPL的演进,这些改变是否会影响到未来自由软体的发展方向?在开源与商业化的边界上,我们又该如何看待自由与权利的平衡?