新しくなったこと 〜開発者向け〜

以下の変更はGNOME3.2開発者プラットフォームで利用する開発者向けで重要なものです。開発者向けの変更に興味がない場合、セクション 5 - 国際化へ読み進めることができます。

GNOME 3.2 に含まれるものが、GNOME 開発者プラットフォームの最新リリースとなります。これは、クロスプラットフォームのアプリケーション開発で使用することができる、GNU LGPLの下で利用可能なAPI-stableとABI-stableのライブラリの一群から構成されています。

GNOMEでの開発のもっと詳しい情報は、GNOME Developer Center で手に入ります。

4.1. GLib 2.30

GNOME の低レベルなユーティリティライブラリである GLib にさまざまな改良が加えられました。

  • GApplication は非ユニークなアプリケーションに使用できるようになりました。
  • GLib は、Unix-specific API 用に別個のヘッダー (glib-unix.h) をインストールするようになりました。とりわけ、それは Unix シグナル用のメインループのソースを提供します。
  • GDBus は 多くの新インターフェースで 'object manager' パターンをサポートします。
  • GDBus にはコードジェネレーターが設けられました: gdbus-codegen
  • アトミック操作が gcc ビルトイン関数を利用して書き換えられました。明示的キャストをともなった呼び出しで問題が生じる可能性があります。
  • ポインターサイズのロケーションにおけるビットロックなど、ポインターに対するアトミック操作が追加されました。
  • 単位ポリシーが変更され、SI 単位系を使用するようになりました。g_format_size_for_display は非推奨となり、代わりに g_format_size を使用してください。
  • HMAC ダイジェストのサポートが追加されました: GHmac
  • 証明書および鍵を調べるインターフェースが追加されました: GTlsDatabase 。glib-networking によって実装されています。

4.2. GTK+ 3.2

GTK+ 3.2 は GTK+ ツールキットの最新リリースであり、GNOME の核になるものです。GTK+ 3.2 には、多くのバグフィックスに加え、開発者向けの新機能が設けられています。

  • Entry はヒントを持つことができるようになりました。gtk_entry_set_placeholder_text を参照してください。
  • 多くのウィジェットで、height-for-width 配置管理がサポートされました。ラベルの合理的なサイズ設定やウィンドウサイズのチェックが重要になります。
  • 新しいウィジェット:
    • GtkLockButton: 特権的な操作を行うときに使用されます。control-center のパネルのいくつかで使用されています。
    • GtkOverlay: コンテンツ領域のフローティングコントロールです。ウェブブラウザーで使用されています。
    • GtkFontChooserDialog: 新しいフォント選択ダイアログです。
  • メインおよびインラインツールバー向けのスタイルクラスなど、CSS テーマサポートが大きく改良されました。
  • HTML バックエンドの Broadway (WebSocket を使用してブラウザー中でレンダリングを行います) は、改良が加えられましたが、まだ実験的な段階です。この機能によって、将来的にアプリケーションをお使いのサーバーで実行してどこからでもアクセスできるようにしたり、あるいは、アプリケーションをパブリックなサーバーに配置してユーザーごとにアプリケーションのインスタンスを生成したりすることができるようになります。この機能は、GTK+ を --enable-x11-backend --enable-broadway-backend 指定でコンパイルし、実行時に環境変数 GDK_BACKEND を使用する必要があることにご注意ください。
  • reftests のサポートが追加され、テストケースを書くのがより簡単になりました。
  • キャッシュサイズ要求や、CSS スタイル情報の読み込み、およびウィジェットサイズの計算など、さまざまな面で GTK+ の性能改善が盛り込まれました。

4.3. Clutter 1.8

ハードウェアアクセラレーションを活用したユーザーインターフェース向けの GNOME グラフィックライブラリの Clutter には、次の改良が加えられました。

  • 次のような新しいアクション。ジェスチャー認識システムを記述するための ClutterGestureAction、スワイプジェスチャーを検出するための ClutterSwipeActionClutterDragAction 使用時にアクターをドロップのターゲットとする ClutterDropAction、および ClutterClickAction の長押しサポート。
  • ClutterState の状態遷移は、ClutterScript におけるシーン作成時にオブジェクトシグナルに結び付けられるようになりました。
  • Cairo の描画インテグレーション が改良されました。
  • Clutter で使用される GPU プログラミングインターフェースの Cogl は、独立したライブラリとして公開されています。

4.4. 廃止予定のライブラリの使用について

古びた技術をより優れたものに置き換える継続した取り組みが、いっそうの進展を見せました。

  • GConf はデフォルトで D-Bus を使うようになっており、もはや ORBit2 を要求しません。その結果、非推奨のライブラリの ORBit2libIDL は、GNOME から取り除かれました。
  • GNOME の core モジュールは、introspection ベースの Python バインディング (pygobject-3) にのみ依存するようになり、それにより pygtkgnome-python、および gnome-python-desktop は要求されなくなりました。
  • いくつかのアプリケーション (たとえば AccerciserDasherGHex、グラフィカルデバッガー Nemiver、およびパスワード・暗号化鍵管理ツール Seahorse は、GConfの代わりのストレージバックエンドとして GSettings を使うようになりました。
  • Epiphany ウェブブラウザーなど、いくつかのパッケージは、dbus-glib から GDBus への移行、libunique から G(tk)Application への移行を済ませました。

4.5. JHBuild による GNOME のコンパイルがより簡単に

GNOME ビルドツールの JHBuild は、お使いのシステムにインストールされたモジュールのバージョンが十分に新しければ、そのモジュールをビルドしないようになりました。この機能は、設定オプションの partial_build で制御でき、デフォルトで有効になっています。jhbuild sysdeps コマンドを実行すると、ビルド対象のモジュールに加え、インストール済みのシステムモジュールも一覧表示されます。

最近のディストリビューションにおいてスクラッチで GNOME のビルドを開始する場合、この機能によって、コンパイル対象のモジュールのうち 50 ほどのモジュールのビルドを省略することができます。

4.6. その他の開発者向けアップデート

GNOME 3.2 で加えられた、その他のプラットフォームの改良は次のとおりです。

  • 旧来の (静的な) Python バインディングは、PyGObject 3.0 で捨て去られ、(introspection を利用した) 動的なバインディングのみが提供されます。PyGObject 2 パッケージでは、introspection がデフォルトで無効になっているので、PyGObject 2 と 3 とは同時にインストールすることが可能です。アプリケーションを PyGObject 2 から 3 へ移行する方法にかんする情報が入手可能です。
  • Tracker バージョン 0.12 は次のものをサポートします。Firefox ≥ 4.0、Thunderbird ≥ 5.0、MeeGoTouch、いくつかの追加 SPARQL パラメーター、EPub ファイルからの情報抽出、および desktop ファイルにたいするローカルの XDG ディレクトリ。
  • NetworkManager バージョン 0.9 は、introspection のサポートと、簡略化された D-Bus API を提供します。アプリケーションを NetworkManager 0.8 から 0.9 へ移行する方法にかんする情報が入手可能です。
  • 暗号ライブラリ間のグルーとして PKCS#11 を使用、促進する前述の取り組みの一部として、gnome-keyring のさまざまなパーツがデスクトップ独立のライブラリに分割されました。
  • GtkSourceView は Markdown と Standard ML のシンタックスハイライトをサポートしました。
  • Evolution-Data-Server のたくさんの introspection サポートが Fix されました。
  • libfolks は Evolution-Data-Server のバックエンドを含むようになりました。これは、新アプリケーション GNOME Contacts でも使用されています。
  • ドキュメンテーション処理ツールの gnome-doc-utilsxml2po はそれぞれ、徐々にyelp-toolsitstool に置き換えられています。yelp-xsl には、条件処理や動的グロッサリーなどの実験的な Mallard の拡張機能が少し含まれます。