EMpathy: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
mSem resumo de edição
Linha 116: Linha 116:
descrição: Janela principal do EMpathy
descrição: Janela principal do EMpathy


======  ======
 


[[Category:Lab_Macambira]]
[[Category:Lab_Macambira]]

Edição das 15h29min de 25 de julho de 2011

O Empathy e' um aplicativo de chat com diversos protocolos e suporte a audio e video. No Unity do Ubuntu 11.04, este aplicativo faz parte do desktop, podendo ser acessado atravez do icone indicador ou applet no canto superior direito do sistema (icone no formato de uma nuvem de chat).

Empathy Home Page

Ver tambem a pagina wiki VideoConferência

Compilacao Ubuntu 11.04

 Bibliotecas necessárias 

gnome-common >= 2.3.0
gettext
libglib2.0-dev
gtk-doc-tools
libxml2-dev
libtelepathy-glib-dev
libmissioncontrol-client-dev
libtelepathy-farsight-dev
libx11-dev
libgtk2.0-dev
libcanberra-gtk-dev
libgstreamer-plugins-base0.10-dev
libebook1.2-dev
libnotify-dev
libunique-dev
libgnome-keyring-dev

Métodos para obtenção das dependencias

primeiro de tudo:

$ sudo aptitude build-dep empathy

Esse comando instalará várias dependencias, mas nem sempre todas.

então tente para as que faltam:

@ sudo aptitude install <nome da dep>
ou
$ sudo apt-get install <nome da dep>

Eu particularmente prefiro o aptitude ao apt-get

caso ainda faltem dependencias, só pegando na internet e instalando manualmente =/


Videos de Compilação

Video 1 - Primeira tentativa

Video 2 - Instalando Dependências

Video 3 - EMpathy Compilado

Dependencias Adicionais Necessarias via Git

Vala / valac teve que ser instalado do git:

 git clone git://git.gnome.org/vala

Folks teve que ser instalado do git:

 git clone git://git.gnome.org/folks

Libnotify

 git clone git://git.gnome.org/libnotify

Telepathy / telepathy-glib / telepathy-logger

 git clone git://anongit.freedesktop.org/telepathy/telepathy-glib
git clone git://anongit.freedesktop.org/telepathy/telepathy-logger


Gnome-keyring / gcr-3 / p11-kit-1

 git clone git://anongit.freedesktop.org/p11-glue/p11-kit
git clone git://git.gnome.org/gnome-keyring

Erros de Compilacao

Existe um bug no Ubuntu 11.04 natty. Quando rodamos make, o seguinte erro aparece:

 /bin/grep: /lib/x86_64-linux-gnu/libgcrypt.la: No such file or directory
/bin/sed: can't read /lib/x86_64-linux-gnu/libgcrypt.la: No such file or directory
libtool: link: `/lib/x86_64-linux-gnu/libgcrypt.la' is not a valid libtool archive

Para resolver, veja na pagina do bug do Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libgcrypt11/+bug/751142

O que eu terminei fazendo (Usuário:V1z) foi um link simbolico, ja que o pacote libgcrypt ta bugado:

 cd /lib/x86_64-linux-gnu
ln -s /usr/lib/x86_64-linux-gnu/libgcrypt.la

Estudos

O que é Vala

Vala é uma nova linguagem de programacão que tem como objetivo trazer características de uma linguagem de programacão moderna para os desenvolvedores GNOME sem usar uma ABI diferente comparado as aplicacões e bibliotecas escritas em C.

Valac, o compilador Vala, é um compilador "self-hosting" que traduz código Vala para código C e cabecalhos. Valac usa o sistema de tipo do GObject para criar classes e insterfaces declaradas no código-fonte Vala.

A linguagem Vala é parecida com C#, apenas com alguns ajustes para se encaixar melhor no C/GObject.

Valac produz código C e arquivos de cabecalho a partir de código Vala como se você tivesse escrito sua biblioteca ou aplicacão diretamente em C.

Uma boa IDE para desenvolver em Vala é o Mono-Develop

Source-Code

O código está dividido em pastas:

  • /src : Se encontram os principais arquivos de código.
  • /libempathy-gtk : Se encontram os códigos responsáveis pela UI.
  • /libempathy : Se encontram os códigos mais "baixo nível". O código que "faz a coisa funcionar" propiamente dito.
main()

local: /src/empathy.c (linha: 704)


Arquivos/Funcões Importantes (na caça ao bug #645522)
empathy-contact-selector

local: /libempathy-gtk/empathy-contact-selector.c

descrição: Responsável pela seleção de contatos da lista. (Uma forma de reproduzir o bug é selecionando qualquer contato quando a "view offline contacts" estiver ativo.)

empathy-main-window

local: /src/empathy-main-window.c

descrição: Janela principal do EMpathy

Resolvendo o Bug #655270

Solucao esperada:

  • o mesmo callback usado ao clicar no 'X' deve ser usado no quit.


Resolvendo esse bug:

  • trata-se da primeira mensagem CRITICAL. Portanto, fiz:
     diff --git a/src/empathy.c b/src/empathy.c
     index 6e2b165..8ca94ac 100644
     --- a/src/empathy.c
     +++ b/src/empathy.c
     @@ -725,6 +725,7 @@ main (int argc, char *argv[])
            "flags", G_APPLICATION_HANDLES_COMMAND_LINE,
            NULL);
      
     +  g_log_set_always_fatal(G_LOG_LEVEL_CRITICAL);
        retval = g_application_run (G_APPLICATION (app), argc, argv);
      
        notify_uninit ();

Mais comentarios:

   - agora o bug da um coredump q posso usar no ddd
     - ddd evince core
     - (up up up...) chega-se em empathy_app_finalize, linha
     gtk_widget_destroy(self->window), em empathy.c:175
   - isso ainda nao resolveu muita coisa; apenas confirmou a solucao esperada.
   - vamos entender o que acontece com contrl-F e o [X] ao lado da caixa de texto
     - sera que usando view->find tambem da o mesmo pau? sim!
     - menu item "Find in Contact List"
     - busca no codigo fonte por essa string nao retorna! procurei '\<edit\>'
     - na verdade essa string do menu item esta' em src/empathy-main-window.ui.
     Acho que isto e' do glade ou de outro GUI builder.
     - Para efeitos do codigo, estamos trabalhando com 'edit_search_contacts'
     - a UI chamou isto de um objeto GtkAction. 
         - Bate com o gnome2 guide? Nao! parece q e' algo mais baixo nivel que glade. 
         - alias, o empathy nao parece ser uma gnome app.
     - Callback: em empathy-main-window.c:1525 
       - main_window_edit_search_contacts_cb (GtkCheckMenuItem  *item,
       - conectado em empathy_main_window_init por empathy_builder_connect, 
        - empathy-main-window.c:2226
             - empathy_builder_connect (gui, window,.........
               "edit_search_contacts", "activate", main_window_edit_search_contacts_cb,
             - gui e' um GtkBuilder * (glade?)
             - window e' um EmpathyMainWindow (filho de GtkWindow)