Nouveautés pour les développeurs

Les changement suivants sont importants pour les développeurs utilisant GNOME 2.28 comme plate-forme de développement. Si vous n'êtes pas intéressé par les changements affectant les développeurs, vous pouvez passer directement à la section Section VI ― Internationalisation.

Tout comme le bureau GNOME, GNOME 2.28 est la dernière version de la plate-forme de développement GNOME, un ensemble de bibliothèques aux API et ABI stables, disponibles sous la GNU LGPL, qui peuvent être utilisées pour le développement d'applications multiplates-formes.

Se défaire de l'utilisation de bibliothèques obsolètes

À partir de GNOME 3.0, plusieurs parties obsolètes de GNOME seront supprimées. Ces composants obsolètes regroupent des bibliothèques comme libart_lgpl, libbonobo, libbonoboui, libglade, libgnome, libgnomeui, libgnomeprint, libgnomeprintui, libgnomeui et libgnomevfs. Pour les applications qui font partie du bureau GNOME, un certain nombre de tâches de nettoyage ont eu lieu pour s'assurer qu'aucun code obsolète n'était plus utilisé. Cela assurera une transition harmonieuse vers GNOME 3.0.

Les développeurs sont fortement encouragés à suivre cet exemple dans leurs propres applications. Aussi, pour tous les développeurs (ou développeurs potentiels) qui voudraient nous aider, la page wiki GNOME goals présente les différentes tâches qui doivent encore être réalisées. Une vue d'ensemble automatiquement mise à jour du travail restant à faire pour les modules qui sont pris en charge par l'outil de construction jhbuild se trouve ici.

V.I. Nettoyage de la plate-forme

De gros efforts ont été entrepris pour supprimer les modules et fonctionnalités dépréciés par le passage à GNOME 3.0.

Dans GNOME 2.28, plus aucune application ne dépend d'esound, libgnomevfs, libgnomeprint ou libgnomeprintui.

Les autres améliorations à la plate-forme GNOME dans GNOME 2.28 comprennent :

  • Une dépendance envers libart_lgpl a été supprimée de deux modules (eog et gtkhtml).
  • Une dépendance envers libbonobo(ui) a été supprimée de cinq modules (gnome-control-center, gcalctool, gnome-media, gtkhtml et accerciser).
  • Une dépendance envers libglade a été supprimée de 28 modules (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 et zenity).
  • Une dépendance envers libgnome a été supprimée de 14 modules (anjuta, gnome-control-center, dasher, evolution-webcal, gconf, gdl, gdm, gnome-desktop, gnome-media, gnome-system-tools, gok, gtkhtml, vino et yelp).
  • Une dépendance envers libgnomecanvas a été supprimée de trois modules (anjuta, gtkhtml et zenity).
  • Une dépendance envers libgnomeprint(ui) a été supprimée d'un module (gnome-games).
  • Une dépendance envers libgnomeui a été supprimée de 16 modules (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 et yelp).
  • Une dépendance envers libgnomevfs a été supprimée de trois modules (dasher, gnome-mag et gnome-utils).
  • De nombreux modules offrent maintenant une sortie de construction plus belle et plus propre lorsqu'on les compile en utilisant AM_SILENT_RULES ou Shave.Pour plus d'informations, voir http://live.gnome.org/GnomeGoals/NicerBuilds.
  • Certains modules ont commencé à utiliser GIntrospection — voir http://live.gnome.org/GnomeGoals/AddGObjectIntrospectionSupport pour plus d'informations.

De nombreux modules ont également cessé d'utiliser des symboles GTK+ et GLib dépréciés et ont appliqué la nouvelle politique de n'inclure que des en-têtes de niveau supérieur de GTK+ et GLib.

V.II. GTK+ 2.18

GTK+ 2.18 est la dernière version de la bibliothèque de conception d'interfaces graphiques GTK+ qui est au cœur de GNOME. GTK+ 2.18 amène de nouvelles fonctionnalités pour les développeurs, mais aussi un important travail de correction de bogues et de nettoyage pour préparer l'arrivée de GTK+ 3.0.

Le sélecteur de fichiers a été amélioré. Il se souvient à présent de sa méthode de tri et ses réglages par défaut sont meilleurs, comme le masquage des fichiers de sauvegarde et l'affichage de la colonne Taille. Les abréviations dans la barre de chemin ont aussi été améliorées.

Plusieurs autres améliorations ont été apportées à GTK+, dont :

  • Les composants GtkEntry peuvent maintenant aussi afficher une barre de progression.
  • GtkEntry a une séparation modèle-vue.
  • Le composant GtkLabel peut contenir des URI.
  • Il est possible d'imprimer une sélection.
  • Les contrôles de mise en page peuvent être intégrés dans le dialogue d'impression.
  • Les icônes d'état ont une propriété titre pour une meilleure accessibilité.
  • Une nouveau composant, GtkInfoBar, a été ajouté pour afficher des messages dans la fenêtre principale au lieu d'une boîte de dialogue.
  • GTK peut être compilé avec une version moderne d'automake (automake 1.7 n'est plus indispensable) et en mode silencieux avec la commande « make V=0 ».

V.III. GLib

GNIO a été fusionné avec GIO et celui-ci contient désormais des API pour travailler avec IPv4 et IPv6, résoudre des noms d'hôtes, faire des recherches d'IP inversées, gérer les entrées et sorties socket bas niveau et les connexions et services réseaux.

GArray, GMappedFile et GTree sont maintenant comptés en référence.

La boucle principale prend en charge les contextes par défaut par thread.

GIOStream et ses sous-classes prennent en charge les accès en lecture-écriture.

GLib prend maintenant aussi en charge les métadonnées par fichier.

V.IV. Documentation GNOME

La prise en charge de Mallard, le nouveau langage XML de documentation de GNOME a été ajoutée à Yelp et gnome-doc-utils.

Pour les rédacteurs de documentation, Mallard est un langage à balises XML conçu explicitement pour l'aide thématique, demandant un temps d'apprentissage plus court que Docbook.

L'aide d'Empathy est la première documentation GNOME à être écrite en Mallard ; c'est également la première à passer sous une licence Creative Commons Partage des Conditions Initiales à l'Identique 3.0 vers laquelle toutes les documentations GNOME se tourneront à l'avenir.

V.V. GNOME Bluetooth

La prise en charge des greffons a été ajoutée et est disponible dès la mise en place du périphérique, permettant à des applications GNOME d'utiliser des périphériques Bluetooth.

Des composants de sélection de périphériques Bluetooth modernes, y compris un bouton et un sélecteur, ont été ajoutés.

V.VI. Navigateur Web Epiphany

Avec le passage d'Epiphany à Webkit, nombre d'améliorations sont disponibles pour les développeurs dans Epiphany.

WebKitGTK+ inclut un traitement Javascript extrêmement rapide, une plus petite occupation mémoire, une API GObject et un inspecteur web intégré. Epiphany contient également une nouvelle prise en charge des extensions Seed (JavaScript), mais la prise en charge de Python a été supprimée.

Epiphany utilise également libsoup pour son implémentation de HTTP et les serveurs mandataires fonctionnent désormais de la même manière dans tout GNOME. Le cache HTTP et le codage des contenus sont des fonctionnalités encore manquantes dans libsoup.

Enfin, le menu contextuel dans la vue web n'est pas personnalisé pour l'instant pour Epiphany et c'est celui de WebKit qui est utilisé.

V.VII. Applet gestionnaire de temps

Toutes les fonctions sont désormais disponibles via une API D-Bus introspectable.

V.VIII. GNOME-Media

La prise en charge de vumeter, CDDB et GNOME-CD a été retirée de GNOME-Media.

V.IX. Totem

Le moteur xine-lib a été retiré de Totem et une API de parcours asynchrone a été ajoutée.

V.X. Vinagre

Vinagre, le visionnneur de bureaux distants de GNOME, possède un nouveau système de greffons. La prise en charge de nouveaux protocoles n'est maintenant plus qu'une question d'écrire un greffon pour Vinagre. Les nouveaux greffons pour Vinagre comprennent VNC et SSH.

V.XI. Brasero

Brasero a séparé ses bibliothèques et utilitaires entre libbrasero-burn et libbrasero-utils.