O que há de novo para desenvolvedores

As seguintes alterações são importantes para desenvolvedores utilizando a plataforma de desenvolvimento do GNOME 2.28. Se você não está interessado nas mudanças para os desenvolvedores, você pode pular para Seção 6 ― Internacionalização.

Assim como o Ambiente GNOME, o GNOME 2.28 é o lançamento mais recente da plataforma de desenvolvimento GNOME, um conjunto de bibliotecas com API e ABI estáveis e disponíveis sob a GNU LGPL, que podem ser usadas para o desenvolvimento de aplicativos multiplataforma.

Consertando o uso de bibliotecas obsoletas

Começando com o GNOME 3.0, várias partes obsoletas do GNOME serão removidas. Estes componentes obsoletos incluem bibliotecas como a libart_lgpl, libbonobo, libbonoboui, libglade, libgnome, libgnomecanvas, libgnomeprint, libgnomeprintui, libgnomeui e libgnomevfs. Para aplicativos que são empacotados como partes do Ambiente GNOME, uma série de tarefas de limpeza foram adotadas para garantir que nenhum código obsoleto será utilizado. Isto irá garantir uma transição mais suave para o GNOME 3.0.

Desenvolvedores são enfaticamente aconselhados a seguir estes exemplos em seus próprios aplicativos também. Além disso, para qualquer desenvolvedor (ou potenciais desenvolvedores) que querem nos ajudar, a página do wiki GNOME goals lista as várias tarefas que ainda não foram concluídas. Uma visão geral automaticamente criada e atualizada do trabalho restante para módulos que têm suporte para a ferramenta de compilação jhbuild pode ser encontrada aqui.

5.1 Limpeza de Plataforma

Grandes esforços foram prometidos para remover modulos obsoletos e funcionalidades no caminho para o GNOME 3.0.

No GNOME 2.28, não haverá mais aplicativos que dependam do esound, libgnomevfs, libgnomeprint ou libgnomeprintui.

Outras melhorias da plataforma do GNOME no GNOME 2.28 incluem:

  • A dependência do libart_lgpl foi removida de dois módulos (eog e gtkhtml).
  • A dependência do libbonobo(ui) foi removida de cinco módulos (gnome-control-center, gcalctool, gnome-media, gtkhtml e accerciser).
  • A dependência do libglade foi removida de 28 módulos (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 e zenity).
  • A dependência do libgnome foi removida de 14 módulos (anjuta, gnome-control-center, dasher, evolution-webcal, gconf, gdl, gdm, gnome-desktop, gnome-media, gnome-system-tools, gok, gtkhtml, vino e yelp).
  • A dependência do libgnomecanvas foi removida de três módulos (anjuta, gtkhtml e zenity).
  • A dependência do libgnomeprint(ui) foi removida de um módulo (gnome-games).
  • A dependência do libgnomeui foi removida de 16 módulos (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 e yelp).
  • A dependência do libgnomevfs foi removida de três módulos (dasher, gnome-mag e gnome-utils).
  • Muitos módulos agora proporcionam uma saída mais limpa e melhor quando compilados utilizando AM_SILENT_RULES ou Shave. Para mais informações veja http://live.gnome.org/GnomeGoals/NicerBuilds.
  • Alguns módulos começaram a usar o GIntrospection - veja http://live.gnome.org/GnomeGoals/AddGObjectIntrospectionSupport para mais detalhes.

Vários aplicativos também removeram o uso de símbolos obsoletos do GTK+ e do GLib e adotaram a nova política de apenas incluir cabeçalhos de nível superior do GTK+ e do GLib.

5.2 GTK+ 2.18

GTK+ 2.18 é o último lançamento da caixa de ferramentas GTK+, que é o coração do GNOME. O GTK+ 2.18 inclui novas funcionalidades para desenvolvedores, assim como uma limpeza e uma extensiva correção de erros para o GTK+ 3.0 que vem vindo.

O seletor de arquivos tem uma série de melhorias. Ele agora lembra o estado de ordenação e tem definições padrões melhores, tais como a ocultação de arquivos de backup e a exibição da coluna Tamanho. O uso de reticências na barra de localização também teve algumas melhorias.

O GTK+ também tem uma série de melhorias, incluindo:

  • Widgets do GtkEntry podem agora também ser utilizados para mostrar uma barra de progresso.
  • O GtkEntry tem uma separação modelo-visualização.
  • GtkLabel podem mostrar URIs embutidas.
  • Impressão agora tem suporte a imprimir uma seleção.
  • Controles de definições de páginas podem ser embutidas no diálogo de impressão.
  • Ícones de estado tem uma propriedade título, para uma acessibilidade melhorada.
  • Um novo widget, GtkInfoBar, foi adicionado para mostrar mensagens na janela principal em vez de um diálogo.
  • O GTK pode ser compilado com uma versão moderna do automake (automake 1.7 não é mais necessário) e em um modo silencioso com o comando "make V=0".

5.3 GLib

O GNIO foi mesclado com o GIO, e as APIs agora são capazes de trabalhar com endereços IPv4 e IPv6, resolver hostnames, ver IP reverso, socket de E/S de baixo nível e trabalhar com conexões de rede e serviços.

GArray, GMappedFile e GTree agora são referências contadas.

O laço principal tem suporte a contextos padrões por thread.

Suporte foi adicionado para acesso de leitura-escrita com o GIOStream e suas subclasses.

GLib agora também inclui suporte de metadados por arquivo.

5.4 Documentação do GNOME

Suporte para o Mallard, a nova linguagem XML do GNOME para documentação, foi adicionada ao Yelp e ao gnome-doc-utils.

Para escritores de documentação, Mallard é uma linguagem de marcação XML com todos os recursos, projetada explicitamente para ajuda orientada a tópicos, com uma curva de aprendizado mais suave que a do Docbook.

A ajuda do Empathy é a primeira documentação do GNOME a ser escrita em Mallard, e também é a primeira documentação a mudar para a licença Creative Commons Share-Alike 3.0, para a qual todas as documentações do GNOME serão movidas no futuro.

5.5 GNOME Bluetooth

Suporte a plug-ins foi adicionado e está disponível durante a adição de dispositivos, adicionando suporte a aplicativos do GNOME para usar dispositivos Bluetooth.

Widgets de seleção de dispositivos Bluetooth modernos, incluindo um botão e seletor, foram adicionados.

5.6 Navegador Web Epiphany

Com a alteração do Epiphany para o Webkit, uma série de aprimoramentos estão disponíveis para desenvolvedores no Epiphany.

O WebKitGTK+ inclui um processamento de Javascript extremamente rápido, um pequeno uso de memória, uma API do GObject, e um inspetor web embutido. O Epiphany também inclui um suporte novo para extensões Seed (JavaScript), e com esta adição o suporte a Python foi removido.

O Epiphany também usa o libsoup para sua implementação HTTP, e proxies agora trabalham da mesma maneira em todo o GNOME. Melhorias faltando no libsoup incluem cache de HTTP e codificação de conteúdo.

Por último, o menu de contexto na visualização web ainda não é customizado para o Epiphany, apesar da visualização padrão ser utilizada.

5.7 Miniaplicativo Gerenciador de Tempo

Todas as funções estão disponíveis através de uma introspecção na API do D-Bus.

5.8 GNOME-Media

O GNOME-Media removeu o suporte para o vumeter, CDDB e GNOME-CD.

5.9 Totem

O backend xine-lib foi removido do Totem, e uma API assíncrona de análise foi adicionada.

5.10 Vinagre

Vinagre, o Visualizador de Área de Trabalho Remota do GNOME, implementou um novo sistema de plug-ins. O suporte a novos protocolos depende apenas do desenvolvimento de plug-ins para o Vinagre. Os novos plug-ins para o Vinagre incluem o VNC e o SSH.

5.11 Brasero

O Brasero teve sua biblioteca e utilitários separados em libbrasero-burn e libbrasero-utils.