sábado, 30 de janeiro de 2010

Resumo do sábado => Avatar 3D / Instalação do kdebluetooth4 no Slack13

Enfim consegui assistir o Avatar 3D!

Sem sombra de dúvidas o ambiente 3D fez o filme ter uma classificação maior do que teria se fosse uma simples animação de computação gráfica. Não que o filme seja ruim sem isso, muito pelo contrário: O enredo é bacana. Mas com certeza ele não bateria o recorde de bilheteria.

O ambiente 3D é demais! Quando algo é atirado na direção da tela, é como se o objeto tivesse passado raspando por você. Um ator empunhando uma arma e girando 360 graus faz parecer que o cano dela está a apenas alguns centímetros da sua cabeça!

Valeu a pena. Mesmo o valor do ingresso sendo salgado ( 20 reais aqui em Santos para uma sessão de sábado a tarde no CineMark) valeu a pena.

Agora mudando de assunto: Vou falar do kdebluetooth4. Foi um parto fazer funcionar no Slackware 13. Mas funcionou!

Para quem não sabe, o kdebluetooth é um agente que roda em background e habilita o KDE a fazer troca de arquivos com outros dispositivos Bluetooth (Celulares, Smartphones, etc). Ele depende do BlueZ, um conjunto de bibliotecas e utilitários para gerenciar os dispositivos e conexões Bluetooth. Tem também duas versões: Uma para o KDE 3 e outra para o KDE4 (essa última a que eu instalei).

A principio parecia ser tarefa simples (sempre parece a primeira vista, mas o fato é que 80% das coisas que fiz no Linux até hoje deram certa dor de cabeça até funcionar). Bastava baixar uma versão disponível no linuxpackages.net, instalar e fim de papo.

Não haviam versões do kdebluetooth4 já empacotadas. O jeito era compilar a partir dos fontes. Se eu já tivesse todas as dependências, seria apenas o trivial: ./configure, make e make install. Então baixo a versão 0.3 do link abaixo:


Mas, como na narrativa de Joseph Climber "a vida é uma caixinha de surpresas"... Apesar de ter todas as dependências (incluindo o BlueZ 4.58, que substituiu a versão 3.36 que vem no Slack) davam erros na compilação. Coisas como a mensagem abaixo:

class Solid::Control::BluetoothInterface’ has no member named ‘findBluetoothRemoteDeviceUBI

Depois de pesquisar na net, descobri que o problema é que foram usados recursos implementados a partir do KDE 4.3 (um tal de solid Bluetooth). Instalar uma nova versão do KDE não estava nos meus planos, mas havia uma outra solução: O desenvolvedor do kdebluetooth (Tom Patzig) criou patches que podem ser aplicados ao KDE 4.1 e ao 4.2, permitindo que o kdebluetooth possa ser compilado e utilizado nessas versões.

Fui em busca dos fontes do kdebase-workspace no DVD do Slack13. Fica no diretório source/kde/kdebase-workspace/. Como há dependências entre vários módulos do KDE, copiei todo o conteúdo do diretório "source/kde" para o HD:

cp -R /media/SlackDVD/source/kde ~/

Criei um diretório temporário e descompactei o conteúdo do arquivo "source/kde/src/kdebase-workspace-4.2.4.tar.xz":

mkdir -p ~/kde/temporario
cd ~/kde/temporario
tar xvf ~/kde/src/kdebase-workspace-4.2.4.tar.xz


. Baixei o patch e copiei para esse diretório também. O patch para o KDE 4.2 (solid-bluetoothTrunkTo42.diff) foi baixado do endereço abaixo (fica no fim da página):


Antes de aplicar o patch, tive que edita-lo para acertar os caminhos para que ele pudesse encontrar os arquivos. Talvez não fosse necessário, mas só consegui aplicá-lo depois de ter feito o seguinte:

# De:
--- bluez-bluetoothinterface.cpp (.../branches/KDE/4.2/kdebase/workspace/solid/bluez) (revision 912529)
+++ solid/bluez/bluez-bluetoothinterface.cpp (.../trunk/KDE/kdebase/workspace/solid/bluez) (revision 912529)

# Para:
--- ./solid/bluez/bluez-bluetoothinterface.cpp (.../branches/KDE/4.2/kdebase/workspace/solid/bluez) (revision 912529)
+++ ./solid/bluez/bluez-bluetoothinterface.cpp (.../trunk/KDE/kdebase/workspace/solid/bluez) (revision 912529)

Fiz isso em todos os pontos do patch (aqueles com um --- e um +++ no começo da linha). Dai pude aplicá-lo com o comando abaixo:

cd ~/kde/temporario
patch -p1 <>

Feito isso, reempacotei o fontes alterados:

cd ~/kde/temporario
tar cvf kdebase-workspace-4.2.4.tar.xz *
cp kdebase-workspace-4.2.4.tar.xz ~/kde/src/kdebase-workspace-4.2.4.tar.xz

E sobrepus pelo original que copiei junto dos demais fontes para o meu HD.

Depois disso foi a hora da compilação: Entrei no diretório ~/kde/kdebase-workspace e executei o script kdebase-workspace.SlackBuild:

cd ~/kde/kdebase-workspace
./kdebase-workspace.SlackBuild

Após mais de uma hora de compilação terminou. O novo pacote foi gerado em /tmp/kdebase-workspace-4.2.4-i486-1.txz, e o atualizei com os comandos abaixo:

upgradepkg --install-new --reinstall /tmp/kdebase-workspace-4.2.4-i486-1.txz
/usr/bin/update-mime-database /usr/share/mime 1> /dev/null 2> /dev/null &

Beleza! Voltei a tentar compilar o kdebluetooth4 (versão 0.3) e... passou!

Ao rodá-lo, ele começava a subir e parava com uma mensagem de erro: Estava faltando instalar o obex-data-server que eu não tinha. Baixei-o do caminho abaixo, compilei, instalei e ai deu tudo certo:


Apesar de já existir a versão 0.4.5, ela estava dando erros de compilação. A versão 0.4.4 compilou sem problemas.

Pelo menos até agora ta tudo redondinho. Transferi um arquivo do PALM para o PC via bluetooth e ele veio sem problemas

Bem era isso. Bom fim de sábado a todos!


Nenhum comentário:

Postar um comentário