« Previous - Version 8/34 (diff) - Next » - Current version
Álan Livio, 14/09/2010 15:01


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 Instalando o middleware para usuário.
Diferenciando apenas as formas como é baixado a arquitetura e o middleware. Ou seja utilizando :<diretorio>.
Este tutorial foi feito tomando como base o Ubuntu 9.10 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.

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 link.

Instalando as dependências

A maioria delas estão disponíveis nos repositórios do Ubuntu. Para instalá-las, faça:

$ sudo aptitude install automake subversion git-core build-essential  libssl-dev libcppunit-dev autoconf libcurl4-openssl-dev libreadline6-dev libexpat1-dev libxerces-c2-dev libmad0-dev libtiff4-dev libkrb5-dev libgpm-dev  x11proto-xext-dev libxext-dev libpng12-dev libjpeg62-dev libfreetype6-dev libavcodec-dev libavformat-dev libxine-dev libxine1 libxine1-ffmpeg libdirectfb-extra libtool liblua5.1-0-dev 

Linux-Fusion

$ git clone git://git.directfb.org/git/directfb/core/linux-fusion.git
$ cd linux-fusion
$ wget http://h264.lavid.ufpb.br/~alan/fusion_kernel_version.patch
$ patch -Np0 < fusion_kernel_version.patch
$ make 
$ sudo make install
$ sudo depmod -a
$ sudo modprobe fusion
$ sudo chmod 777 /dev/fusion*

//Adicione "fusion" ao arquivo /etc/initramfs-tools/modules 

$ sudo update-initramfs -u

DirectFB

$ wget http://www.directfb.org/downloads/Core/DirectFB-1.4/DirectFB-1.4.5.tar.gz
$ tar -xvvzf DirectFB-1.4.5.tar.gz
$ cd DirectFB-1.4.5
$ ./configure --enable-multi --enable-x11 --disable-osx --disable-sdl --disable-vnc --with-gfxdrivers=none
$ make 
$ sudo make install

Fusion-Sound

Baixar e descompactar o FusionSound
$ wget http://www.directfb.org/downloads/Core/FusionSound/FusionSound-1.1.1.tar.gz
$ tar -xvvzf FusionSound-1.1.1.tar.gz

<pre>
Aplicar patch de correção
</pre>

$ cd FusionSound-1.1.1
$ wget http://dev.openginga.org/attachments/264/FusionSound-1.1.1_compile_with_DirectFB-1.2.patch
$ patch -p0 < FusionSound-1.1.1_compile_with_DirectFB-1.2.patch
$ ./autogen.sh --prefix=/usr

$ make 
$ sudo make install

Libtool-1.5.26

wget http://ftp.gnu.org/gnu/libtool/libtool-1.5.26.tar.gz
tar -xzvf libtool-1.5.26.tar.gz
cd libtool-1.5.26
./configure --prefix=/usr/local/libtool-1.5.26
make 
sudo make  install

DirectFB-Extra

O DirectFB-Extra disponível no repositório não está compilada com tudo que precisamos. Então precisamos compilá-lo manualmente:

$ git clone git://git.directfb.org/git/directfb/extras/DirectFB-extra.git
$ 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

Lua

$ wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
$ tar -xvvzf lua-5.1.4.tar.gz
$ cd lua-5.1.4
$ make  linux
$ sudo make install

$ cd ..

$ wget http://luaforge.net/frs/download.php/2664/luasocket-2.0.2.tar.gz
$ tar -xvvzf luasocket-2.0.2.tar.gz
$ cd luasocket-2.0.2
$ make
$ sudo make install

$sudo ln -s /usr/local/lib/lua/5.1/socket/core.so /usr/local/lib/lua/5.1/socket/libcore.so

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.

jlibcpp

$ http://ufpr.dl.sourceforge.net/project/jlibcpp/jlibcpp-0.7.tar.gz
$ tar -xzvf jlibcpp-0.7.tar.gz
$ cd jlibcpp
$ make
$ sudo make install

Flexcm

$ svn co https://flexcm.svn.sourceforge.net/svnroot/flexcm flexcm -r 38
$ cd flexcm/flexcmee/flexcmee
$ ./make.sh
$ sudo ./make-install.sh

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:

system=x11
mode=960x540
pixelformat=ARGB

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.

Arquitetura do middleware

Este projeto contém os cabeçalhos que todos os componentes da GingaCDN deve seguir.

$ git clone git://dev.openginga.org/architecture.git (Ou use o mirror em git://gitorious.org/openginga/architecture.git)
$ cd architecture
$ git checkout stable
$ autoreconf
$ ./configure
$ sudo make install

Compilando o middleware

Para baixar a versão stable do código, faça:

$ git clone git://dev.openginga.org/middleware/openginga.git (Ou use o mirror em git://gitorious.org/openginga/openginga.git)
$ cd openginga
$ git checkout stable
$ git submodule init
$ git submodule update

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:

export JAVA_HOME=/opt/j2sdk1.4.2_19

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:

export JAVA_HOME=/opt/j2sdk1.4.2_20

Aṕos isso, estando no diretório do openginga, digite:

$ source env.sh
$ sudo make -E make

Depois de algum tempo, ele deve mostrar uma mensagem de sucesso. Para testar, execute-o fazendo:

$ cd openginga/gingacc
$ sudo -E ./start.sh

Lembrando que, sempre que você for executar o openginga, você já deve ter executado source env.sh ao menos uma vez no mesmo terminal.