Neues für Entwickler

Die folgenden Änderungen sind für Entwickler der GNOME 3.2 Plattform wichtig. Wenn Sie daran nicht interessiert sind, so springen Sie bitte vorwärts zu Abschnitt 5 ― Internationalisierung.

GNOME 3.2 enthält die neueste Freigabe der GNOME Entwickler-Plattform. Diese besteht aus stabilen API- und ABI-Bibliotheken, die unter der GNU LGPL verfügbar sind. Sie können für eine Entwicklung von Anwendungen für mehrere Plattformen eingesetzt werden.

Weitere Informationen über die Entwicklung mit GNOME finden Sie im GNOME Entwicklungszentrum (Englisch).

4.1. GLib 2.30

Die Basis-Softwarebibliotheken von GNOME namens GLib hat zahlreiche Verbesserungen erhalten:

  • GApplication kann ab sofort für nicht einzigartige Anwendungen verwendet werden.
  • GLib installiert nun separate Header für Unix-spezifische APIs: glib-unix.h. Unter anderem bietet diese eine mainloop-Quelle für Unix-Signale.
  • GDBus unterstützt das "object manager"-Muster mit einer Vielzahl neuer Schnittstellen.
  • GDBus hat nun einen Code-Generator: gdbus-codegen.
  • Atomare Operationen sind neu geschrieben worden, um die mit gcc gelieferten zu verwenden; Aufrufe mit expliziten Casts könnten problematisch sein.
  • Atomare Operationen für Zeiger sind hinzugefügt worden, einschließlich Bit-Sperren für Orte mit Zeigergrößen.
  • Die Richtlinie zur Verwendung von Einheiten empfiehlt nun SI-Einheiten; g_format_size_for_display wird jetzt ersetzt durch g_format_size.
  • Unterstützung für HMAC-Prüfsummen wurde hinzugefügt: GHmac.
  • Für Zertifikate und Schlüssel-Auslese wurde eine Schnittstelle hinzugefügt: GTlsDatabase. Eine Implementierung ist in glib-networking umgesetzt.

4.2. GTK+ 3.2

GTK+ 3.2 ist die neueste Ausgabe des GTK+ Toolkit, welches die Grundlage von GNOME bildet. GTK+ 3.2 enthält neue Leistungsmerkmale für Entwickler, aber auch intensive Fehlerbehebungen.

  • Einträge können nun Hinweise enthalten. Schauen Sie sich gtk_entry_set_placeholder_text an.
  • Viele weitere Widgets unterstützen nun Geometrieverwaltung. Es ist sehr bedeutend, dass vernünftige Größen für Beschriftungen und Fenstergrößen gesetzt werden.
  • Neue Oberflächenelemente:
    • GtkLockButton für privilegierte Operationen, eingesetzt in einigen Panels der Systemeinstellungen.
    • GtkOverlay zur Flusskontrolle über einem Inhaltsbereich, wie in Web-Browsern sichtbar.
    • GtkFontChooserDialog, ein neuer Schriftwählerdialog.
  • Deutlich verbesserte Unterstützung für CSS-Theming, z.B. durch Stil-Klassen für primäre und eingebettete Werkzeugleisten.
  • Das HTML-Backend Broadway, das in einem Browser mittels websockets anzeigt, wurde verbessert, ist aber noch experimentell. Dies ermöglicht Ihnen entweder eigene Anwendungen auf Ihrem Server auszuführen und diese von überall zu verwenden, oder es auf einen öffentlichen Server zu legen, die eine neue Instanz der Anwendung für jeden Benutzer anlegt. Beachten Sie, dass dazu GTK+ mit der Option --enable-x11-backend --enable-broadway-backend kompiliert werden muss und die Umgebungsvariable GDK_BACKEND zur Laufzeit.
  • Unterstützung für reftests wurde hinzugefügt, um das Schreiben von Testfällen zu erleichtern.
  • Es haben verschiedenste Geschwindigkeitsverbesserungen für GTK+ stattgefunden in den Bereichen des Zwischenspeicherns von Größenanfragen, dem Lesen von CSS Stilinformationen und der Berechnung von Widget-Größen.

4.3. Clutter 1.8

Die grafische GNOME-Bibliothek für Hardware-beschleunigte Benutzerschnittstellen namens Clutter liefert die folgenden Verbesserungen:

  • Neue Aktionen wie ClutterGestureAction zum Schreiben von Gestenerkennung, ClutterSwipeAction zum Erkennen von Wischgesten, ClutterDropAction zum Erstellen von Ablegezielen für Akteure bei Einsatz von ClutterDragAction und Unterstützung für Drücken-und-halten für ClutterClickAction.
  • ClutterState-Übergänge können an Objektsignale gebunden werden beim Erstellen einer Szene in ClutterScript.
  • Verbesserte Integration von Cairo drawing.
  • Cogl, die von Clutter verwendete Schnittstelle zur GPU-Programmierung, stellt eine separate Bibliothek dar.

4.4. Verwendung als veraltet markierte Bibliotheken

Weitere Fortschritte wurden bei der kontinuierlichen Arbeit gemacht, veraltete Technologien durch überlegene zu ersetzen.

  • GConf setzt nun per Vorgabe auf D-Bus und erfordert demnach nicht mehr ORBit2. Als Resultat konnten die veralteten Bibliotheken ORBit2 und libIDL aus GNOME entfernt werden.
  • Die Kernmodule von GNOME hängen nun nur von introspection-basierenden Python-Bindungen ab (pygobject-3) und somit werden pygtk, gnome-python und gnome-python-desktop nicht länger benötigt.
  • Einige Anwendungen (z.B. Accerciser, Dasher, GHex, der grafischen Fehlerdiagnose Nemiver und das Verwaltungswerkzeug für Passwörter und Verschlüsselung Seahorse) setzen ab nun GSettings als Datenspeicher ein anstatt GConf.
  • Einige Pakete, wie etwa der Web-Browser Epiphany, sind umgestellt worden von dbus-glib auf GDBus und von libunique auf G(tk)Application.

4.5. Leichteres Compilieren von GNOME mit JHBuild

Das Erstellungswerkzeug von GNOME, JHBuild, erstellt nicht mehr ein Modul für den Fall, dass die auf dem System installierte Version neu genug ist. Dies wird durch die Konfigurationseinstellung partial_build bestimmt und ist die Voreinstellung. Der Befehl jhbuild sysdeps listet auf, welche Systemmodule gefunden wurden, als auch die Module, die erstellt werden.

Wenn Sie das Erstellen von GNOME von Grund auf mit einer aktuellen Distribution beginnen, können schnell 50 Module aus der Liste zu übersetzender Module herausfallen.

4.6. Verschiedene Aktualisierungen für Entwickler

Weitere Verbesserungen der GNOME-Plattform in GNOME 3.2 sind:

  • Die klassischen (statischen) Python-Bindungen sind für PyGObject 3.0 entfernt worden. Es werden nur dynamische Python-Bindungen angeboten (via introspection). PyGObject 2 und 3 sind parallel installierbar, weil introspection per Voreinstellung in PyGObject 2 Paketen ausgeschaltet ist. Informationen über die Portierung von PyGObject 2 nach PyGObject 3 ist vorhanden.
  • Tracker Version 0.12 biete Unterstützung für Firefox ≥ 4.0, Thunderbird ≥ 5.0, MeeGoTouch, weitere zusätzliche SPARQL-Parameter, Extrahieren von Informationen aus EPub-Dateien und lokale XDG-Ordner für desktop-Dateien.
  • NetworkManager Version 0.9 bietet Unterstützung für introspection und eine vereinfachte D-Bus-API. Informieren Sie sich, wie man Anwendungen von NetworkManager 0.8 nach 0.9 portiert.
  • Als Teil des zuvor genannten Absicht, PKCS#11 einzusetzen und als Bindeglied zwischen Verschlüsselungs-Bibliotheken zu fördern, sind verschiedene Teil von gnome-keyring in von Arbeitsumgebung unabhängige Bibliotheken aufgeteilt worden.
  • GtkSourceView unterstützt nun Syntax-Hervorhebung von »Markdown«- und »Standard ML«-Dateien.
  • Evolution-Data-Server erhielt viele Fehlerbereinigungen bei der Unterstützung von introspection.
  • libfolks enthält jetzt ein Backend für Evolution-Data-Server, welches von der neuen Anwendung Kontakte verwendet wird.
  • Bei den Werkzeugen zur Verarbeitung von Dokumentation werden gnome-doc-utils und xml2po langsam durch yelp-tools und itstool ersetzt. yelp-xsl enthält einige experimentelle Mallard-Erweiterungen wie bedingte Verarbeitung und dynamische Glossars.