给开发者带来的惊喜
以下内容是针对开发者使用 GNOME 2.28 时的重要更改。如果您对此不感兴趣,可以直接跳至 第6节 ― 国际化。
GNOME 2.28 不仅是最新的 GNOME 桌面,还是最新的 GNOME 开发者平台,其上的一大批以 GNU LGPL 许可的 API 和稳定 ABI 函数库将极大地满足开发者编写夸平台应用程序的需要。
自 GNOME 3.0 起,数量众多的 GNOME 组件将会被淘汰。这些未受欢迎的组件包含 libart_lgpl, libbonobo, libbonoboui, libglade, libgnome, libgnomecanvas libgnomeprint, libgnomeprintui, libgnomeui, 和 libgnomevfs 等函数库。对于同 GNOME 一起发布的软件,GNOME 已经进行了大量清理工作以确保没有将淘汰代码被使用。这将确保到 GNOME 3.0 的顺利过渡。
我们强烈建议开发者也进行类似的工作。另外,对于希望帮助我们进行这项工作的开发者,请访问 GNOME 路标 Wiki 页面以查看仍需要工作的任务。您可以在 此处得到一份由 jhbuild 工具驱动而自动生成并更新的剩余模块状态。
5.1. 平台清理
我们在为 GNOME 3.0 做准备的过程中投入了大量精力处理过时模块和函数库。
在 GNOME 2.28 中已没有程序继续依赖 esound, libgnomevfs, libgnomeprint, 或 libgnomeprintui。
GNOME 2.28 中其他关于 GNOME 平台的改进如下:
- 移除了 eog 和 gtkhtml 对 libart_lgpl 的依赖。
- 移除了 gnome-control-center, gcalctool, gnome-media, gtkhtml, 和 accerciser 五个模块对 libbonobo(ui) 的依赖。
- 移除了 accerciser, alacarte, gnome-control-center, dasher, empathy, gcalctool, gnome-games, gnome-netstatus, gnome-nettool, gnome-mag, gnome-menus, gnome-panel, gnome-power-manager, gnome-screensaver, gnome-session, gnome-settings-daemon, gnome-system-tools, gnome-utils, gtkhtml, hamster-applet, libgnomekbd, orca, pessulus, seahorse, vino, vinagre, yelp, 和 zenity 共 28 个模块对 libglade 的依赖。
- 移除了 anjuta, gnome-control-center, dasher, evolution-webcal, gconf, gdl, gdm, gnome-desktop, gnome-media, gnome-system-tools, gok, gtkhtml, vino 和 yelp 共 14 个模块对 libgnome 的依赖。
- 移除了 anjuta, gtkhtml, 和 zenity 三个模块对 libgnomecanvas 的依赖。
- 移除了 gnome-games 模块对 libgnomeprint(ui) 的依赖。
- 移除了 anjuta, gnome-control-center, dasher, deskbar-applet, gnome-mag, gnome-media, gnome-settings-daemon, gnome-system-tools, gnome-utils, gok, gtkhtml, hamster-applet, nautilus, orca, vino, 和 yelp 共计 16 个模块对 libgnomeui的依赖。
- 移除了 dasher, gnome-mag, 和 gnome-utils 三个模块对 libgnomevfs 的依赖。
- 目前有许多模块通过使用 AM_SILENT_RULES 或 Shave 提供了一个更明晰的编译输出。更多信息请查看 GnomeGoals/NicerBuilds
- 部分模块开始使用 GIntrospection,请查看 GnomeGoals/AddGObjectIntrospectionSupport以获得详细信息。
很多应用程序也移除了许多不被赞成的 GTK+ 和 GLib 符号,完成了对只加入 GTK+ 和 GLib 顶层头文件这一新政策的应用。
5.2. GTK+ 2.18
GTK+ 2.18 是 GTK+ 工具集的最新版本,它是 GNOME 的核心部分。GTK+ 2.18 为开发者加入了众多新特性,同时也为即将到了的 GTK+ 3.0 进行了扩展 Bug 修正和平台清理。
文件选择器包含了很多改进。现在它可以记录排序方式,默认值也更加友好,比如隐藏备份文件并显示文件尺寸栏。同时我们也该进了其地址栏中的内容隐藏功能。
GTK+ 也有许多其他改进,以下是其中的几个:
- GtkEntry 现在可以用于显示进度条。
- GtkEntry 分离了模型视图。
- GtkEntry 可以显示嵌入的 URI。
- 支持打印选区。
- 页面控制设置可被嵌入在打印对话中。
- 为增强辅助功能,我们为状态图标添加了一些属性。
- 我们加入了 GtkInfoBar 一遍直接在主窗口显示信息而无须使用对话框。
- GTK 可以使用当前广泛使用的 automake 版本进行编译(不再需要 automake 1.7),同时可以使用 "make V=0" 进行静默编译。
5.3. GLib
GNIO 现已并入 GIO 中,这些 API 现已增加了对 IPv4 和 IPv6 地址、主机名解析、保留 IP 查询、底层 I/O 套接字操作和协同网络连接记网络服务的支持。
GArray, GMappedFile 和 GTree 现已被调整至引用计数内。
主循环现已支持基于线程的默认运行环境。
GIOStream 及其子类已增加了读写支持。
GLib 现已支持基于文件的元数据处理。
5.4. GNOME 文档
Yelp 和 gnome-doc-utils 中已添加了对新的 GNOME 文档 XML 语言 Mallard 的支持。
对于文档撰写者而言,Mallard 是一个全功能 XML 标记语言,专为主题性帮助设计,相比于 Docbook 更易于学习。
Empathy 帮助是首个使用 Mallard 撰写的 GNOME 文档,也是首个转向使用 Creative Commons Share-Alike 3.0 许可的文档,GNOME 的其他文档将来也将转向使用该许可证。
5.6. Epiphany Web 浏览器
Epiphany 在转向 Webkit 核心的同时为开发者提供了许多增强功能。
WebKitGTK+ 拥有一个非常快速的轻量级 GObject 函数接口用以处理 JavaScript,和一个内建的网页检查工具。Epiphany 还加入了 Seed (JavaScript) 支持,并移除了对 Python 的支持。
Epiphany 使用 libsoup 完成其 HTTP 实现,代理服务工作方式也与其他 GNOME 程序所使用的相一致。在 libsoup 中尚缺少对 HTTP 缓存和内容编码的特性。
最后,网页视图中的环境菜单尚未为 Epiphany 定制,暂时继续使用 WebKit 默认视图。