自由軟體的發展歷程可追溯到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的演進,這些改變是否會影響到未來自由軟體的發展方向?在開源與商業化的邊界上,我們又該如何看待自由與權利的平衡?