Instalando o middleware para desenvolvedor

Version 6 (Álan Livio, 07/06/2010 15:46) → Version 7/34 (Vítor Baptista, 11/08/2010 22:31)

h1. Instalando o middleware para desenvolvedores

Este tutorial *se destina aos desenvolvedos de middleware*, ou seja os que estão cadastrados como *developer* no sistema.
A instalação é igual a instalação de um usuário, a qual pode ser vista em [[Compilando o código|Instalando o middleware para usuário]].
Diferenciando apenas as formas como é baixado a arquitetura e o middleware. Ou seja utilizando git@dev.openginga.org:<diretorio>.
Este tutorial foi feito tomando como base o "Ubuntu 9.10":http://www.ubuntu.com de 32 bits.
Caso tenha dúvidas ou queira compartilhar o sucesso instalando em outras distribuições, entre em contato pela nossa lista de e-mails.

h2. Adquirindo permissão de commit

O git diferente do svn, não usa senha, e sim chaves RSA para permitir o acesso a commit.
Para maiores detalhes leia a sessão Configurando o git do tutorial a seguir [[gingaj-emulator:Usando_o_git|link]].

h2. Instalando as dependências

A maioria delas estão disponíveis nos repositórios do Ubuntu. Para instalá-las, faça:
<pre>
$ sudo aptitude install subversion git-core build-essential libdirectfb-1.2-0 libdirectfb-dev libssl-dev libcppunit-dev autoconf libtool libxine-dev libxine1 libxine1-ffmpeg
</pre>

h3. DirectFB-Extra

O DirectFB-Extra disponível no repositório não está compilada com tudo que precisamos. Então precisamos compilá-lo manualmente:
<pre>
$ wget http://www.directfb.org/downloads/Extras/DirectFB-extra-1.2.0-rc1.tar.gz
$ tar -xvvzf DirectFB-extra-1.2.0-rc1.tar.gz
$ cd DirectFB-extra-1.2.0-rc1
$ ./configure --prefix=/usr (No final ele deve mostrar que o video provider do Xine está ativo)
$ make
$ sudo make install
</pre>

h3. jlibcpp

<pre>
$ svn co https://jlibcpp.svn.sourceforge.net/svnroot/jlibcpp jlibcpp
$ cd jlibcpp
// Comente as linhas 96, 118, 120 e 122 de jgui/joffscreenimage.cpp, que usam uma versão mais nova da directfb que a disponível pelo aptitude.
$ make
$ sudo make install
</pre>

h3. Flexcm

<pre>
$ svn co https://flexcm.svn.sourceforge.net/svnroot/flexcm flexcm
$ cd flexcm/flexcmee/flexcmee
$ ./make.sh
$ sudo ./make-install.sh
</pre>

h3. Sun J2SE SDK 1.4.2

Baixe em http://java.sun.com/javase/downloads/jdk/142/ e descompacte-o em /opt. Atualmente, a versão é 1.4.2_19, então o diretório ficaria _/opt/j2sdk1.4.2_19_. Anote-o pois precisaremos indicá-lo daqui a pouco para o middleware.

h3. Configurando o DirectFB para o X11

Recomendamos utilizar o FrameBuffer em cima do X11. Assim fica mais fácil de debuggar o middleware e/ou as aplicações. Para isto, crie o arquivo ~/.directfbrc contendo:
<pre>
system=x11
mode=960x540
pixelformat=ARGB
</pre>

O campo _system_ indica que a saída gráfica do DirectFB será em uma janela do X11. Caso queira trabalhar direto no FrameBuffer, modifique para _system=fbdev_. Já o campo mode, no X11, define o tamanho da janela criada. Utilize o comando _dfbdump_ para verificar se as configurações contidas no arquivo directfbrc foram definidas corretamente pela DirectFB.

Outros parâmetros podem ser especificados e estão disponíveis na documentação do DirectFB.

h3. Arquitetura do middleware

Este projeto contém os cabeçalhos que todos os componentes da GingaCDN deve seguir.
<pre>
$ git clone git@dev.openginga.org:architecture.git
$ cd architecture
$ autoreconf
$ ./configure
$ sudo make install
</pre>

h2. Compilando o middleware

Para baixar a versão _em desenvolvimento_ do código, faça:
<pre>
$ git clone git@dev.openginga.org:middleware/openginga.git
$ cd openginga
$ git submodule init
$ git submodule update
</pre>

Caso a versão do J2SDK que você baixou seja diferente de 1.4.2_19, precisamos modificar o arquivo env.sh (source:env.sh) que está na pasta raiz do openginga. Procure pela parte que diz:
<pre>
export JAVA_HOME=/opt/j2sdk1.4.2_19
</pre>

O modifique este caminho para o do J2SDK que você baixou nos passos anteriores. Por exemplo, se a versão que você tem for a 1.4.2_20, modifique-o para:
<pre>
export JAVA_HOME=/opt/j2sdk1.4.2_20
</pre>

Aṕos isso, estando no diretório do openginga, digite:
<pre>
$ source env.sh
$ make
</pre>

Depois de algum tempo, ele deve mostrar uma mensagem de sucesso. Para testar, execute-o fazendo:
<pre>
$ cd openginga/gingacc
$ ./start.sh
</pre>
Lembrando que, sempre que você for executar o openginga, você já deve ter executado *source env.sh* ao menos uma vez no mesmo terminal.