O que há de novo para desenvolvedores

A plataforma GNOME 2.22 para desenvolvedores fornece uma base estável para desenvolvedores independentes de software criarem suas próprias aplicações. O GNOME e sua plataforma são licenciados de forma a permitir a criação tanto de software livre como de software proprietário, que rodem com base no GNOME.

As bibliotecas na plataforma GNOME têm garantia de serem estáveis - API e ABI - para o resto das séries 2.x. As bibliotecas no ambiente ("desktop") GNOME não têm esta garantia, mas a maioria se mantém estável de versão para versão.

6.1 GVFS e GIO

GVFS é um sistema de arquivos virtual (em espaço de usuário) com backends para protocolos como SFTP, FTP, DAV, SMB, ObexFTP, etc. O GVFS é o substituto do GNOME-VFS. Agora o GNOME-VFS é considerado obsoleto, e os desenvolvedores não devem usá-lo em novas aplicações.

O GVFS consiste em duas partes:

  • GIO, uma nova biblioteca compartilhada que é parte da GLib e fornece a API para GVFS; e
  • GVFS propriamente dito, que é um novo pacote contendo backends para vários tipos de sistemas de arquivos e protocolos, tais como SFTP, FTP, DAV, SMB e ObexFTP.

GVFS/GIO almeja ser um sistema de arquivos virtual moderno e fácil de usar. Seu objetivo é fornecer uma API que os desenvolvedores prefiram às chamadas POSIX padrão. Ao invés clonar a API de E/S POSIX, ele fornece uma interface de alto nível, centrada em documentos. Além de ler e escrever arquivos, GIO tem mecanismos para monitoramento de arquivos, E/S assíncrona e complementação de nomes de arquivos.

A forma como GVFS funciona é assim: ele executa um único processo principal (gvfsd), que fica de olho nas montagens atuais. Cada montagem roda em um processo separado (algumas montagens compartilham o mesmo processo, mas a maioria não). Os clientes se comunicam com os recursos remotos através de uma combinação de chamadas D-Bus e de um protocolo personalizado para os conteúdos dos arquivos. Mover os backends para processos separados minimiza o inchaço das dependências nas aplicações e torna o sistema como um todo mais robusto.

O GVFS também oferece um pontos de montagem FUSE em ~/.gvfs/ de forma que as pastas GVFS possam ser acessadas por aplicações legadas usando a E/S padrão POSIX.

Diferentemente do GNOME-VFS, as conexões no GVFS são permanentes. Isso significa que um usuário só precisa digitar sua senha uma única vez, e não a cada conexão sucessiva.

Com a migração para o GVFS, as montagens e execução de programas automáticas passaram a ser gerenciadas diretamente pelo Nautilus, e não mais pelo gnome-volume-manager.

A documentação está disponível online — tanto a API quanto guias de migração de POSIX e GNOME-VFS para GIO.

6.1.1 Regressões

Ainda que o GVFS tenha corrigido muitos problemas que existiam no GNOME-VFS, existem algumas regressões de funcionalidades. Em especial, falta suporte às URL's fonts:// e themes://.

Estes problemas serão resolvidos o mais rápido possível. Existem também algumas aplicações que ainda precisam ser migradas para o GVFS. O estado dessa migração está documentado online.

6.2 IDE Anjuta

O IDE Anjuta agora faz parte da Suíte de Desenvolvimento GNOME. Anjuta é um IDE (ambiente de desenvolvimento integrado) que oferece muitas funcionalidades para desenvolvedores, tais como um depurador integrado, um editor de interfaces GLADE e uma interface para o Valgrind.

Figura 9 ‒ Anjuta em ação.