给开发者带来的惊喜

以下内容是针对开发者使用 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, GMappedFileGTree 现已被调整至引用计数内。

主循环现已支持基于线程的默认运行环境。

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.5. GNOME 蓝牙

现已加入了在设备设置时对插件的支持,同时也增加了对 GNOME 应用程序使用蓝牙设备的支持。

还增加了一个现代蓝牙设备选择插件,包括相应的按钮的拾取器。

5.6. Epiphany Web 浏览器

Epiphany 在转向 Webkit 核心的同时为开发者提供了许多增强功能。

WebKitGTK+ 拥有一个非常快速的轻量级 GObject 函数接口用以处理 JavaScript,和一个内建的网页检查工具。Epiphany 还加入了 Seed (JavaScript) 支持,并移除了对 Python 的支持。

Epiphany 使用 libsoup 完成其 HTTP 实现,代理服务工作方式也与其他 GNOME 程序所使用的相一致。在 libsoup 中尚缺少对 HTTP 缓存和内容编码的特性。

最后,网页视图中的环境菜单尚未为 Epiphany 定制,暂时继续使用 WebKit 默认视图。

5.7. 时间追踪小程序

所有功能均已通过强大的 D-Bus API 实现。

5.8. GNOME-Media

GNOME-Media 已经移除了对 vumeter,CDDB 和 GNOME-CD 的支持。

5.9. Totem

我们移除了 Totem 的 xine-lib 后台,并添加了一个异步渲染 API。

5.10. Vinagre

Vinagre 是 GNOME 的远程桌面查看器,我们为其添加了插件系统以使得为其增加功能只需编写插件即可。最新的 Vinagre 插件包含了对 VNC 和 SSH 的支持。

5.11. Brasero

Brasero 所使用的函数库已被分割为 libbrasero-burnlibbrasero-utils