給開發者的新功能

下列的變更對於使用 GNOME 2.28 開發平台的開發者而言很重要。如果您對這些關於開發平台的變更不感興趣,可以直接跳到 第 6 節 ― 國際化

如同 GNOME 桌面環境,GNOME 2.28 是最新釋出的 GNOME 開發者平台,並提供了依 GNU LGPL 授權的 API 和 ABI 穩定版程式庫,可供開發跨平台的應用程式。

修正已廢棄程式庫的用法

從 GNOME 3.0 開始,GNOME 中各種已廢棄的部分將會被移除。這些廢棄的元件包含程式庫,像是 libart_lgpl、libbonobo、libbonoboui、libglade、libgnome、libgnomecanvas、libgnomeprint、libgnomeprintui、libgnomeui 和 libgnomevfs。對於組成 GNOME 桌面環境的各個應用程式,已經展開一些清理工作,以確保沒有使用到廢棄的程式碼。這將可以確保平順的過渡到 GNOME 3.0。

我們也強烈建議軟體開發者們在自己的應用程式中也跟隨這個範例。此外,如果有任何開發者(或潛在開發者)願意提供我們協助,GNOME 目標 wiki 頁面列出了各種尚未完成的工作。有一個 jhbuild 編譯工具所支援的自動建立與更新各模組剩餘工作狀態概覽的工具可以在這裡找到。

5.1. 平台的清理

在通往 GNOME 3.0 的道路上已經投入大量的努力來移除過時的模組和功能。

在 GNOME 2.28 中,已經沒有任何應用程式還相依於 esound、libgnomevfs、libgnomeprint 或 libgnomeprintui。

其他 GNOME 平台在 GNOME 2.28 中的改進有:

  • 對 libart_lgpl 的相依性已從 2 個模組中移除 (eog 和 gtkhtml)。
  • 對 libbonobo(ui) 的相依性已從 5 個模組中移除 (gnome-control-center, gcalctool, gnome-media, gtkhtml 和 accerciser)。
  • 對 libglade 的相依性已從 28 個模組中移除 (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)。
  • 對 libgnome 的相依性已從 14 個模組中移除 (anjuta, gnome-control-center, dasher, evolution-webcal, gconf, gdl, gdm, gnome-desktop, gnome-media, gnome-system-tools, gok, gtkhtml, vino 和 yelp)。
  • 對 libgnomecanvas 的相依性已從 3 個模組中移除 (anjuta, gtkhtml 和 zenity)。
  • 對 libgnomeprint(ui) 的相依性已從 1 個模組中移除 (gnome-games)。
  • 對 libgnomeui 的相依性已從 16 個模組中移除 (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)。
  • 對 libgnomevfs 的相依性已從 3 個模組中移除 (dasher, gnome-mag 和 gnome-utils)。
  • 許多模組現在提供了更好、更清爽的編譯輸出,因為他們在編譯時使用了 AM_SILENT_RULES 或 Shave。需要更多資訊請查閱 http://live.gnome.org/GnomeGoals/NicerBuilds
  • 部分模組已開始使用 GIntrospection — 請查閱 http://live.gnome.org/GnomeGoals/AddGObjectIntrospectionSupport 以獲取更多資訊。

許多應用程式也已經移除對已廢棄 GTK+ 和 GLib 信號的使用,並已接受新的原則,也就是只引入 GTK+ 和 GLib 的頂層標頭。

5.2. GTK+ 2.18

GTK+ 2.18 是 GTK+ 工具箱的最新釋出版本,也是 GNOME 的核心。GTK+ 2.18 包含給開發者的新功能,就是為了即將到來的 GTK+3.0 所做的大量錯誤修正和程式碼整頓。

檔案選擇器有了許多改進。它現在可以記憶排列的狀態,並且也有更好的預設值,像是會隱藏備份檔案和顯示容量欄位。在路徑列中也有改善的 ellipsization。

GTK+ 也看到許多改進,包含:

  • GtkEntry 視窗元件現在也可以用來顯示進度列。
  • GtkEntry 進行了 model-view 分離。
  • GtkLabel 可以顯示內嵌的 URI。
  • 列印功能支援列印一個選取範圍。
  • 頁面設定控制項可以內嵌於列印對話盒。
  • 狀態圖示加入標題屬性,改善了無障礙功能。
  • 加入新的介面,GtkInfoBar,可以在主視窗中顯示訊息,而不是在對話盒中顯示。
  • GTK 可以使用現代的 automake 版本來編譯 (automake 1.7 已不再需要) ,並且可以使用 "make V=0" 指令開啟安靜模式。

5.3. GLib

GNIO 已合併至 GIO,現在包含的 API 能運作於 IPv4 和 IPv6 位址、解析主機名稱、進行IP 反查、低階 socket I/O,以及網路連線和服務。

GArrayGMappedFileGTree 現在能計數參照(reference)。

主要迴圈(main loop)支援預先執行緒(pre-thread)預設關聯。

加入對 GIOStream 和其子類別讀取-寫入存取的支援。

GLib 現在也包含對個別檔案中繼資料的支援。

5.4. GNOME 文件

對 Mallard─新的 GNOME 文件 XML 語言─的支援已加入 Yelp 和 gnome-doc-utils裡。

對文件作家而言,Mallard 是全功能的 XML 標記語言,完全是設計用於主題導向的說明文件,同時其學習曲線也優於 Docbook。

Empathy 求助文件是第一份以 Mallard 撰寫的 GNOME 文件,同時也是第一份改以創用 CC 相同方式分享 3.0 授權的文件,這種授權是未來所有 GNOME 文件都會改用的。

5.5. GNOME Bluetooth

加入了外掛程式的支援,並且可在裝置設定期間使用,另外加入讓 GNOME 應用程式使用藍牙裝置的支援。

新型藍牙裝置選取的視窗元件,包含按鈕和選擇程式,都已經加入。

5.6. Epiphany 網頁瀏覽器

從 Epiphany 轉為使用 Webkit 之後,開發者在 Epiphany 中可以使用許多增強的項目。

WebKitGTK+ 包含了極快的 Javascript 運算,更小的體積,GObject API 和內建的網頁檢查程式。Epiphany 也包含新的 Seed (JavaScript) 延伸功能,也因此對 Python 附加元件的支援也移除了。

Epiphany 也使用 libsoup 作為 HTTP 實作,因此代理伺服器的使用現在就如同 GNOME 中的通用作法一般。在 libsoup 中缺少的功能包含 HTTP 快取和內容編碼。

最後,在網頁檢視中的關聯選單尚未對 Epiphany 進行客製化,儘管已經使用了預設的 WebKit 檢視。

5.7. 時間追蹤程式

所有的功能現在可以透過 introspectable D-Bus API 使用。

5.8. GNOME-Media

GNOME-Media 已經移除對 vumeter、CDDB 和 GNOME-CD 的支援。

5.9. Totem

xine-lib 後端程式已從 Totem 中移除,並加入非同步解析的 API。

5.10. Vinagre

Vinagre,GNOME 遠端桌面檢視器物錄,加入新的外掛程式系統。想支援新的通訊協定現在對 Vinagre 而言只是寫一個外掛程式的問題。現在 Vinagre 的新外掛程式包含 VNC 和 SSH。

5.11. Brasero

Brasero 已經將它的程式庫和公用程式分離為 libbrasero-burnlibbrasero-utils