What I learned during the license switch

Salvatore Sanfilippo

许可证切换过程中学到的东西

昨天是非常紧张的一天。在意大利,5月1日是劳动节,所以早上我和朋友们在埃特纳火山徒步了4小时 <3,我热爱徒步,写代码时也经常停下来去走一走,之后再回到键盘前,腿上又多了几公里的路程,而在埃特纳火山徒步的体验非常棒(埃特纳火山是欧洲最大的活火山,而我恰好就住在位于其山麓的卡塔尼亚)。

然后下午6点我回到家,发布了关于切换到 AGPL 许可证的博文,随后开始关注评论、反馈和私信,并在这一过程中学到了几件事。

1. 抛开那几条在我看来确实有区别的细微条款不谈,AGPL 与 SSPL 最大的区别在于 AGPL 是“被理解的”。总体而言,昨天我第一次意识到,在许可证问题上,重要的不仅仅是能做什么、不能做什么,还有一个许可证被理解、被检验、被采用的程度……

2. Simon Willison(西蒙·威利森)就此事所说的话让我非常感动(https://simonwillison.net/2025/May/1/redis-is-open-source-again/),因为一件很奇妙的事是,生活在世界不同地方、却有着相似年龄和软件背景的人,对事情的感受竟会*如此相似*。我在编写 Vector Sets 时也在想:如果它不是以 AGPL(或我能理解的其他开源许可证)发布,我自己根本不会去用它。这种情感,乘以社区中相当一部分人的共鸣,使得开源最终即便在当今复杂的软件格局中也能胜出。

3. 人们仍然非常在乎软件发行版。不是说我不在乎,但过去我在这上面吃过亏。我是很早期的 Linux 用户,用的是 SlackWare 3.1 或类似的版本。这些年来我写过设备驱动,给内核贡献过一些补丁,多年来 Debian 上大概有我写的约10个软件包,从 hping,到 Visitors 网页日志分析器、dump1090、Redis 等等。但最终,我开始看到各种碎片化、某些流程的僵化(比如 Linux 内核模块的二进制兼容性)、缺乏一致的设计、缺乏将所有依赖库都打包在内的二进制分发格式等等问题。于是我在桌面端转用了 MacOS,在服务器上则以一种非常务实的方式继续使用 Linux,很多时候我更乐意执行“tar xvzf software.tgz; make”而不是依赖发行版提供的东西。也许,我对交付零依赖软件的执着也与此有关。但人们仍然非常在乎,而在许多希望尽可能做到自动化和可复现的场景中,将 Redis 作为发行版软件包提供或许仍然很重要?现在,有很多人问 Redis 是否会重新进入发行版。

我对此的看法很简单:Redis 和 ValKey 已经在很大程度上分道扬镳,未来还会分化得更厉害。我认为发行版应该同时包含两者,这样用户才有选择权,而有时这种选择是由功能差异决定的。很简单的例子:如果你需要做向量相似性搜索,就得用 Redis;如果你的公司有禁止使用 AGPL 的政策,就得用 ValKey,以此类推。

4. 大家对我很友善。在各处的评论中也有一些尖锐的观点,这很正常,甚至是健康的(毕竟这也是越来越多公司认为自己不能使用 SSPL 或其他许可证、而只能使用 OSI 认可的许可证的部分原因)。然而,当直接对我发言时,我看到了很多善意的话语。我只想说:感谢大家。

5. 我们在某种程度上活在泡泡里。在外面某个论坛里,曾有人在某个时刻说:“但你有没有从 Redis 切换到某个分支过?”,随后出现了一连串评论:“从没换过”、“只要能用谁在乎”等等。这对 ValKey 来说也一样,如果人们输入 apt-get install redis 而实际安装的是 ValKey,而他们只用到了 SET、GET、DEL 等几个命令,他们根本不在乎。我的意思是,软件已经不再是1998年(对开源、互联网和我个人而言都极为关键和具有象征意义的一年)的样子,那时我们都是开源软件许可证专家。大多数人,尤其是新一代,有着不同且更务实的看法。所以,这一切都非常重要(对我来说至关重要),但要明白,并非每一种感受都是一样的。归根结底,最重要的,还是努力交付好的软件。

原文由 Salvatore Sanfilippo 发布

本文章由 muse-spark-1.2-contributor 进行翻译