GTK2-NG: 旨在复兴与现代化 GTK2 的社区努力
开源桌面环境的格局在不断演变,像 GTK 这样的工具包正通过多次迭代不断进步。然而,这种进步往往会留下大量仍依赖旧版本的应用程序。GTK2-NG 应运而生,这是一个由社区主导的项目,旨在复兴并使 GTK2 现代化,尽管 GTK2 已经历经岁月,但它对于大量应用程序仍然至关重要。
这一倡议突显了开源世界中一个反复出现的主题:当官方支持减弱时,充满热情的社区往往会挺身而出,填补这一空白。GTK2-NG 代表了一种积极的努力,以确保依赖 GTK2 的应用程序能够继续运行,甚至可能在现代计算环境中蓬勃发展,而不是因为工具包的弃用而被迫放弃。
弃用现状
主要的 Linux 发行版已开始从其官方仓库中逐步淘汰 GTK2,这标志着其主流支持的终结。这一趋势是 GTK2-NG 项目的主要驱动力。
正如一位评论者所言:
This being Devuan it is driven by those pesky Debian devs removing GTK2 > Debian is not the only distro doing this. A few months ago, Arch Linux > removed GTK 2 from its official (non-AUR) repositories [1]. RHEL 10 was > released earlier in 2025 without GTK 2.
这种广泛的移除行为从开发角度来看是可以理解的;GTK3 本身是在 15 年前发布的,其稳定的 3.24 系列已经问世超过七年了。这一举措旨在简化开发、减轻维护负担,并鼓励迁移到更新、更安全且功能更丰富的工具包。然而,这也为尚未完成迁移的应用程序带来了重大挑战。
为什么 GTK2 依然存在
尽管 GTK3 已经成熟可用,且 GTK4 正在持续开发中,但仍有大量应用程序依赖于 GTK2。例如,Debian 关于移除 GTK2 的公告中提到了一份“相当长的软件包列表,仍在继续使用它”。这引发了一个问题:为什么迁移还没有实现普及?
从一个主要工具包版本迁移到另一个版本通常是一项非同小可的任务,需要投入大量的开发精力来适应 API 变更、新范式以及潜在的视觉设计重构。对于规模较小的项目或维护者资源有限的项目,这种迁移可能是一项艰巨的任务,从而导致对旧版本的长期依赖。
即使是知名应用程序也在谨慎地进行这些过渡。正如一位评论者指出的:
Are they just “against” or is there a currently required set of applications which cannot migrate to Gtk3 or Gtk4? Even Gimp is using Gtk3. And already heading to Gtk4. Take that already with a smile ;)
这一观察表明,虽然像 GIMP 这样的应用程序确实正在向新的 GTK 版本迈进,但这一过程是渐进式的,并非所有项目都拥有相同的资源或开发速度。
开源响应:GTK2-NG
GTK2-NG 的出现完美地体现了开源模型中固有的韧性和适应性。当官方渠道不再继续时,社区往往会挺身而出,确保宝贵的软件组件不会被遗弃。
正如一位 Hacker News 用户雄辩地说道:
This is interesting to see and shows the beauty of open source: if you want GTK2 to be alive, you can put in the effort to revive it.
GTK2-NG 旨在使 GTK2 现代化,这可能涉及解决与新系统组件的兼容性问题、修复 Bug,以及可能引入符合当代开发实践的增强功能,同时保留旧版应用程序所依赖的功能性。虽然该项目的网站目前显示内部服务器错误,但 GTK2-NG 的意图很明确:为那些仍植根于 GTK2 的应用程序生态系统提供生命线。
前行之路
GTK2-NG 项目强调了技术进步与向后兼容性需求之间的持续紧张关系。虽然工具包的演进是至关重要的,如此庞的软件生态系统意味着旧组件的使用率仍会比预期更长。像 GTK2-NG 这样的社区努力在弥补这一差距方面发挥着至关重要的作用,确保旧版应用程序的用户和开发者不会陷入困境。这一倡议不仅保留了功能性,并展示了集体行动在维护开源软件格局的多样性和鲁棒性方面的力量。