Como criar Pacotes Debian para aplicações em Qt para Maemo 4 e mostrá-la no Menu
Acredita-se que este artigo ainda seja válido no contexto original (quando ele foi escrito)
Dados do artigo
Artigo
Introdução
{{AbstractNeste artigo ,eu irei mostrar como criar um pacote .deb. Fazer isto e comum , mas a diferença esta em ser Qt para Maemo. Uma outra utilidade que irei mostrar neste artigo e como colocar uma aplicacao Qt no Menu do Dispositivo com Maemo.}}
Resumo sobre Pacotes Debian
Deb se trata de uma extensao com o formato de pacote de software Debian que e tambem conhecido como pacote de binarios. Deb faz referencia a uma parte do termo Debian. Pacotes Debian sao usados em distribuicoes baseadas em Debian como por exemplo o Ubuntu e outros.
Pre-requisitos
Voce precisa ter libqt4-dev ,ScratchBox and Maemo SDK instalados no seu computador e libqt4-dev instalada em seu Scratchbox tanto na versao X86 como na versao ARM e ainda no seu Dispositivo Maemo(N800,N810,N900). Para mais informaçoes sobre a instalaçao do ScratchBox clique aqui e para Qt/Maemo clique aqui.
Criando a Aplicaçao
Voce precisa criar um simples projeto Qt HelloWorld no seu computador. Eu criei um projeto com dois labels como e mostrado acima. Lembre-se de definir o tamanho do QWidget em 720 de largura por 420 de altura que e a resoluçao do Dispositivo Maemo.
Copiando a Aplicaçao para o Scratchbox
Primeiro , copie os codigos fontes da aplicaçao para uma pasta no Scratchbox. Em Geral , o endereço e /scratchbox/users/username/home/username/. Eu fiz assim:
flavio@flavio-desktop:~/workspace$ cp -r HelloWorld/ /scratchbox/users/flavio/home/flavio/
Compilando a Aplicaçao no Scratchbox
Inicialmente, voce precisa logar no Scratchbox:
~$ /scratchbox/login
Se necessario selecione o alvo(target) para ARM usando o comando sb-menu. Para compilar faça assim:
[sbox-DIABLO_ARMEL: ~] > cd HelloWorld [sbox-DIABLO_ARMEL: ~/HelloWorld] > qmake [sbox-DIABLO_ARMEL: ~/HelloWorld] > make
Criando a Arvore do Pacote Debian
Depois disto, voce precisa criar as seguintes pastas:
[sbox-DIABLO_ARMEL: ~/HelloWorld] cd .. [sbox-DIABLO_ARMEL: ~] > mkdir HelloWorldApplication [sbox-DIABLO_ARMEL: ~] > mkdir HelloWorldApplication/DEBIAN
Voce ira precisar criar um arquivo de controle para o seu pacote usando um simples editor de texto. Neste post eu usei o Vi.
[sbox-DIABLO_ARMEL: ~] > vi HelloWorldApplication/DEBIAN/control
Neste passo eu mostro os campos necessarios para preencher o arquivo de controle e a informacao necessaria para os mesmos. A sintaxe para os campos e muito simples: o nome do campo seguido por dois pontos e o valor do campo.
Package: HelloWorld Priority: optional Version: 1.0 Architecture: all Maintainer: Flavio Fabricio <flaviofabricio@gmail.com> Depends: libqt4-dev Description: This is a HelloWorld Application
Retorne para o diretorio da aplicaçao do HelloWorld e crie as seguintes pastas:
[sbox-DIABLO_ARMEL: ~] > cd HelloWorldApplication/ [sbox-DIABLO_ARMEL: ~/HelloWorldApplication] > mkdir usr
Criando /usr subdiretorios:
[sbox-DIABLO_ARMEL: ~/HelloWorldApplication] > cd usr/ [sbox-DIABLO_ARMEL: ~/HelloWorldApplication/usr] > mkdir bin [sbox-DIABLO_ARMEL: ~/HelloWorldApplication/usr] > mkdir lib [sbox-DIABLO_ARMEL: ~/HelloWorldApplication/usr] > mkdir share
Criando /share subdiretorios:
[sbox-DIABLO_ARMEL: ~/HelloWorldApplication/usr] > cd share/ [sbox-DIABLO_ARMEL: ~/HelloWorldApplication/usr/share] > mkdir applications [sbox-DIABLO_ARMEL: ~/HelloWorldApplication/usr/share] > mkdir pixmaps
Criando hildon subdiretorios que sao as pastas onde ficam os arquivos .desktop:
[sbox-DIABLO_ARMEL: ~/HelloWorldApplication/usr/share] > cd applications [sbox-DIABLO_ARMEL: ~/HelloWorldApplication/usr/share/applications] > mkdir hildon
Criando o arquivo que coloca a Aplicacao no Menu do Dispositivo Maemo
Voce precisa criar tambem um arquivo .desktop o qual o Maemo usa para colocar a aplicaçao no Menu.
[sbox-DIABLO_ARMEL: cd /HelloWorldApplication/usr/share/applications/hildon [sbox-DIABLO_ARMEL: ~/HelloWorldApplication/usr/share/applications/hildon]>vi helloworld.desktop
Aqui nos iremos adicionar o endereço do arquivo executavel, do arquivo de icone , etc...
[Desktop Entry] Categories=Qt; Encoding=UTF-8 Version=0.1 Type=Application Name=Qt HelloWorld Exec=/usr/bin/HelloWorld Icon=helloworld
Copiando a Aplicaçao compilada para arvore do Debian
[sbox-DIABLO_ARMEL: ~] > cd HelloWorld [sbox-DIABLO_ARMEL: ~/HelloWorld] > ls HelloWorld helloworld.cpp main.cpp helloworld.png HelloWorld.pro helloworld.h helloworld.ui ui_helloworld.h
Neste passo , voce ira copiar o arquivo executavel para a pasta /usr/bin. Este executavel e envocado por helloworld.desktop na linha Exec=/usr/bin/HelloWorld no arquivo descrito abaixo.
[sbox-DIABLO_ARMEL: ~/HelloWorld] > cp helloworld ../HelloWorldApplication/usr/bin/
Agora , voce ira copiar os arquivos fontes para pasta /usr/lib. Isto e recomendado , mas nao e requerido.
[sbox-DIABLO_ARMEL: ~/HelloWorld] > cp HelloWorld.pro ../HelloWorldApplication/usr/lib/ [sbox-DIABLO_ARMEL: ~/HelloWorld] > cp helloworld.cpp ../HelloWorldApplication/usr/lib/ [sbox-DIABLO_ARMEL: ~/HelloWorld] > cp helloworld.h ../HelloWorldApplication/usr/lib/ [sbox-DIABLO_ARMEL: ~/HelloWorld] > cp helloworld.ui ../HelloWorldApplication/usr/lib/ [sbox-DIABLO_ARMEL: ~/HelloWorld] > cp main.cpp ../HelloWorldApplication/usr/lib/
Voce ira precisar de uma imagem para usar como icone. Voce pode procurar alguma imagem em Google Imagens. Neste caso eu renomeei a imagem para helloworld.png. Esta imagem e chamada pelo arquivo helloworld.desktop na linha Icon=helloworld do arquivo descrito acima e salvo na pasta /usr/share/pixmaps/.
[sbox-DIABLO_ARMEL: ~/HelloWorld] > cp helloworld.png ../HelloWorldApplication/usr/share/pixmaps/
Criando o Pacote Debian
[sbox-DIABLO_ARMEL: ~/HelloWorld] > cd .. [sbox-DIABLO_ARMEL: ~] > dpkg-deb -b HelloWorldApplication
Enviando o Pacote .Deb para o Dispositivo Maemo
Eu usei o comando [Scp] com o endereço IP do dispositivo. O endereço IP do dispositivo e achado em Settings->Connection Manager , depois disto , clique em Connection Manager e na Quina Esquerda da Tela->internet connection->IP address.
[sbox-DIABLO_ARMEL: ~/HelloWorld] > scp HelloWorldApplication.deb root@10.0.0.13:/home/
Instalando o Pacote .Deb para o Dispositivo Maemo
Abri um novo terminal e digitei:
ssh root@10.0.0.13
Entrei com a senha do Dispositivo Maemo
root@10.0.0.13's password: Nokia-N810-43-7:~# cd .. Nokia-N810-43-7:/# cd /home/ Nokia-N810-43-7:/home# dpkg -i HelloWorldApplication.deb
Agora a aplicaçao esta instalada no Dispositivo Maemo .
Voce ira precisar clicar em Extras Menu e entao voce podera ver a aplicaçao HelloWorld Application:


(no comments yet)