janeiro 19, 2011

Instalado firefox no N900

Há um problema com o N900 no brasil, a ovi store não funciona direito. Muitas coisas la, gratis ou pagas, não estão acessíveis para nós. Uma delas é o Firefox.

Hoje há uma versão mobile do firefox (1.1) disponível na ovi store, que não conseguimos instalar, vou mostrar aqui como instalá-la.

Primeiro passo, vá ao navegador padrão do N900, e entre no site www.firefox.com/m clique em "Transferir agora", neste ponto, hoje dia 19/01/2011 obtive um erro, no qual não conseguiu achar o script de instalação. Para corrigir foi simples, acessei o endereço que foi passado pelo link, e vi onde eles nao estava entrando, que deveria entrar. Após isso só cliquei no link para a instalação. No final o link ficou esse: http://mozilla.cdn.leaseweb.com/mobile/releases/maemo/pt-BR/firefox.install

Após acessar ele, um repositório pede para ser instalado no telefone, clique em sim, e o firefox será instalado em seguida.

janeiro 18, 2011

N900

O N900 é um celular incrível da Nokia, com um bom processador, memória de 32Gb, teclado qwerty, tela touch resistiva que bate muita capacitiva por ai.
O Sistema operacional dele é baseado em debian, chamado de maemo.

Tenho o meu a um pouco mais de um ano, aprendi algumas coisas durante esse tempo, desenvolvi outras, e vou começar a postar algumas coisas com relação a ele aqui.

Em todo linux os aplicativos podem ser adquiridos de repositórios, com o N900 não é diferente. Ele já vem com alguns repositórios cadastrados, e há muitos outros pela internet afora.
Eu aconselho um, o extra do maemo.org, ele é um repositório gratuito, feito pela comunidade de desenvolvedores de apps pro n900, e para que um app chegue la, passa por vários passos, como teste e aceitação da comunidade.

Para entender esses passos, recomendo este post de um blog que eu acesso direto, e foi por onde eu entendi um pouco mais do mundo do N900/maemo. Apesar do dono do blog nao estar mais atualizando, os posts estão la para ajudar qualquer pessoa.

Para acrescentar um novo repositório, vá ao gerenciador de aplicativos, clique no menu e em repositórios de aplicativos. Uma lista dos repositórios instalados será apresentada. Você pode adicionar um novo repositório clicando no botão novo e indicando as informações abaixo:
Nome : Maemo Extras
Endereço : http://repository.maemo.org/extras/
Distribuição : (Em branco)
Componentes : free non-free

Após acrescentar este repositório, você pode ir em instalar e verificar as novas aplicações disponíveis.

janeiro 14, 2011

Criando um pacote RPM

Um pacote RPM é como o pacote deb do post anterior, porém utilizado em distribuições como o openSuSE e Mandriva. Neste post vou comentar como criar um pacote deste tipo.

Enquanto os pacotes deb são criados com os binários, o pacote RPM é criado com o código fonte. Na própria execução do comando o código é compilado. Este código tem q estar compactado em tar.bz2

Primeiro, temos que ter instalado o "rpmbuild", segue a linha
urpmi rpm-build

Como no caso do deb, temos que criar um arquivo de configurações, mas para o rpm ele é um pouco mais complexo. O nome dele deve ser terminado com .spec. Chamei o meu de calcula.spec
#
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#

# norootforbuild


Name:           libcalcula
Summary: Ferramenta para calcular alguns numeros
Version: 1.0.2
Release: 0
License: GPL
Group:  Calc
Url:  http://slothsalvation.blogger.com.br
Vendor:  Luiz
Packager: Luiz
#PreReq:
#Provides:
#BuildRequires:
Source:  %{name}-%{version}.tar.bz2
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}
AutoReqProv:    on

%description

Ferramenta para calcular alguns numeros

%prep
%setup
%build
#%make
make -j `/usr/bin/getconf _NPROCESSORS_ONLN`

%install
#makeinstall
make install DESTDIR=%{buildroot}

%clean
#rm -rf %{buildroot}
#rm -rf $RPM_BUILD_ROOT

%post
%postun

%files
%defattr(-,root,root)
#doc ChangeLog README COPYING

#binaries
%{_libdir}/%{name}.so*
%{_libdir}/%{name}.a
%{_libdir}/%{name}.la

%changelog
#* Fri Jan 14 2011 luiz@machine
Aqui fiz uso de algumas macros para caso eu mude algo, não precisar mudar em todo o arquivo, além de ficar mais fácil de entender que nome vai aonde.

Como pode ser visto na Linha do Source, usei o nome do tar como %{name}-%{version}.tar.bz2, que no meu caso seria libcalcula-1.0.2.tar.bz2.

Algo que se deve destacar é com relacao ao comando make, usei "make -j `/usr/bin/getconf _NPROCESSORS_ONLN`" para que seja feita uma busca do número de processadores na máquina, e utilizar todos na compilação.

Agora temos que criar uma estrutura onde os arquivos serão compilados, vou criar eles na pasta temp.
O próprio rpm tem algumas funcionalidades que podemos usar, como no caso esta linha, ela me retorna o caminho do source que o rpm vai usar
export SOURCEDIR=$(rpm --define "_topdir %{_tmppath}/libcalcula" --eval %{_sourcedir})

Agora podemos criar a estrutura de pastas.
mkdir -p $SOURCEDIR
mkdir -p $SOURCEDIR/../SPECS
mkdir -p $SOURCEDIR/../BUILD
mkdir -p $SOURCEDIR/../BUILDROOT
mkdir -p $SOURCEDIR/../RPMS/i586
Devemos entao copiar o arquivo spec para dentro da pasta SPECS
cp calcula.spec $SOURCEDIR/../SPECS

Agora usamos o comando rpmbuild dessa maneira para que ele compile e crie o pacote
rpmbuild --define "_topdir %{_tmppath}/libcalcula" -bb $SOURCEDIR/../SPECS/calcula.spec

Com isso temos o pacote compilado e pronto dentro da pasta
ls $SOURCEDIR/../RPMS/i586

janeiro 10, 2011

Criando um pacote deb

Um pacote deb serve para instalar programas, bibliotecas, etc em uma distribuição como debian e ubuntu.

Eu vou criar um para a instalação de uma biblioteca.

Primeiro passo, ter o código fonte do compilando sem erros, não queremos que de algum problema na criação do deb por erros do programa.

Devemos agora criar um diretório para que a estrutura do pacote seja montada. Este diretório pode estar na mesma pasta do código fonte ou em uma pasta temporária. Vou chamar este diretório de "install".
Dentro deste diretório devemos ter uma pasta cujo nome deve ser obrigatóriamente "DEBIAN", em maiúsculo.
mkdir <dir_src>/install/DEBIAN
Dentro da pasta DEBIAN vamos criar um arquivo chamado "control". Este arquivo traz informações como nome e versão do pacote, nome do mantenedor, dependências, descrições entre outras características.
O conteúdo deste arquivo é simples, sendo que os campos Package, Version, Architecture, Maintainer e Description são obrigatórios.
Package: libcalcula
Version: 1.0.2
Maintainer: Luiz
Architecture: i386
Description: Ferramenta para calcular alguns numeros

Com este arquivo pronto, o próximo passo é a criação da estrutura do nosso pacote.
Como vou colocar uma biblioteca no sistema, o arquivo destino dela sera /usr/lib/calcula.
A árvore a ser criada no diretório "install" deve conter todo o caminho para o diretório onde a biblioteca deve ser instalada. Então irei digitar o comando a seguir, criando a estrutura dos diretórios.
mkdir -p /usr/lib/calcula

Após a criação da árvore, vamos copiar os arquivos necessários (a biblioteca em si) para dentro dela.
A seguir podemos inserir o comando que vai efetivamente criar o pacote.
dpkg-deb -b /home/luiz/srccalcula /home/luiz
O primeiro caminho deve ser um caminho absoluto, já o segundo não precisa ser.
Após o comando ser executado, temos dentro do diretorio /home/luiz um arquivo chamado libcalcula_1.0.2_i386.deb.

Pronto, você já criou seu pacote deb, para instalar ele vc precisa somente do comando
dpkg -i <nome_do_pacote>

Caso você queira desmontar e analizar um pacote pronto, como é a estrutura, como foi modificado o arquivo contorl, pode utilizar os seguintes comandos:
Para extrair para uma pasta
dpkg-deb -x <nome_do_pacote.deb>  /tmp/pacote
Para extrair o arquivo de controle
dpkg-deb -e <nome_do_pacote.deb>  /tmp/pacote/DEBIAN

Criação de um shell script

Um shell script é um código interpretado pela shell do sistema operacional.
No caso, estou fazendo um script para linux.

Logo na primeira linha, devemos colocar o comando a seguir. Este comando indica que o arquivo é um script executável. Caso o script acusar um erro, o "-e" ali colocado fará com que o script pare em seguida. Se quisermos rodar o script até o final, ignorando erros, podemos retirar a opção.
#!/bin/bash -e 

As linhas seguintes são o script em si. Não vou entrar em detalhes de programação em shell script, apenas em alguns pontos básicos.
Para maiores detalhes, segue um link interessante.

A função echo serve para imprimir qualquer coisa no console. Pode ser somente um texto como na primeira linha do exemplo, ou uma variável como a segunda linha.
echo "texto"
echo "texto da variavel 1: $1"

Podemos passar parâmetros para o script, na linha de comando da sua chamada. Os parâmetros podem ser interpretados dentro do script pelas variáveis "$1", "$2", etc.
Para atribuição de variáveis, é obrigatório a utilização de nomes que não sejam de funções. A atribuição é feita da maneira abaixo, onde podemos também colocar outras variáveis como parte da nova variável.
VAR=texto
VAR2=texto$1

Os comandos executados em shell podem ser colocados da mesma maneira que são utilizados na shell.

O shell script é comumente salvo com a extensão "sh".