Novità per gli sviluppatori
La piattaforma di sviluppo di GNOME 2.22 fornisce agli sviluppatori indipendenti di software una base stabile per creare applicazioni di terze parti. GNOME e la sua piattaforma sono distribuiti con licenze che consentono la creazione di software sia libero che proprietaro da eseguire nell'ambiente GNOME.
La stabilità delle librerie della "Piattaforma GNOME" è garantita, sia a livello di API che di ABI, per tutti i futuri rilasci della serie GNOME 2.x. Le librerie nello "GNOME Desktop" non hanno questa garanzia, ma la maggior parte si mantiene coerente da un rilascio all'altro.
- 6.1. GVFS e GIO
- 6.2. Anjuta IDE
6.1. GVFS e GIO
GVFS è un file system virtuale in userspace con dei backend per protocolli come SFTP, FTP, DAV, SMB e ObexFTP. GVFS va a sostituire GNOME-VFS; quest'ultimo dovrebbe essere quindi considerato deprecato e gli sviluppatori non dovrebbero usarlo nelle nuove applicazioni.
GVFS consiste di due componenti:
- GIO, una nuova libreria condivisa che è parte di GLib e che fornisce l'API per GVFS; e
- GVFS stesso, un nuovo pacchetto contenente i backend per vari tipi di file system e protocolli come SFTP, FTP, DAV, SMB e ObexFTP.
La coppia GVFS/GIO punta a fornire un sistema VFS moderno e semplice da usare. Il suo obiettivo è fornire un'API che gli sviluppatori possano preferire al posto delle chiamate base POSIX di IO. Invece che clonare l'API POSIX di IO, viene fornita un'interfaccia di più alto livello, "documentocentrica". Così come per la lettura e la scrittura di file, GIO fornisce funzioni per il monitoraggio dei file, per l'IO asincrono e per il completamento dei nomi file.
GVFS opera mettendo in esecuzione un singolo demone principale (gvfsd) che tiene traccia dei mount GVFS attuali. Ogni mount è eseguito in un demone separato (anche se alcuni mount condividono un processo demone, la maggior parte non lo fa). Le applicazioni client interagiscono con i mount per mezzo di una combinazione di chiamate D-Bus (sul bus di sessione e usando D-Bus punto-a-punto) e di un protocollo personalizzato per i contenuti dei file. Lo spostamento dei backend al di fuori del processo minimizza il numero crescente di dipendenze per le applicazioni e rende l'intero sistema più robusto.
GVFS offre anche un mountpoint FUSE in ~/.gvfs/ in modo che i mount GVFS possano essere esposti alle applicazioni legacy che usano l'IO POSIX standard.
Diversamente da GNOME-VFS, le connessioni in GVFS sono "stateful". Ciò significa che un utente necessita solo di inserire la sua password una volta e non ripetutamente ogni volta a ogni successiva connessione.
Con il passaggio a GVFS, il mount e l'avvio automatici sono ora gestite direttamente da Nautilus invece che da gnome-volume-manager.
La documentazione delle API per usare GIO è disponibile in rete assieme a delle guide per la migrazione dall'IO POSIX e da GNOME-VFS a GIO.
- 6.1.1. Regressioni
6.1.1. Regressioni
Sebbene GVFS corregga molti problemi precedentemente presenti a causa dell'uso di GNOME-VFS, al momento ci sono alcune regressioni di funzionalità. Le più evidenti sono la mancanza delle viste fonts:// e themes://.
Queste mancanze saranno corrette al più presto possibile. Inoltre alcune applicazioni debbono ancora essere modificate per poter usare GVFS. Lo stato di tale passaggio è documentato in rete.
6.2. Anjuta IDE
L'ambiente di sviluppo Anjuta fa ora parte della Suite di sviluppo di GNOME. Anjuta è un IDE integrato con GNOME che offre molte funzioni per sviluppatori, come un debugger integrato, un editor di UI Glade integrato e un'interfaccia per Valgrind.
