Arquivo mensal: fevereiro 2011

SVN na família SUSE/openSUSE

Depois de sofrer com pequenos detalhes na instalação do SVN, decidi postar todas as minhas anotações efetuada durante a instalação e configuração. Sendo assim, abaixo o meu mini-howto.

Requisitos de software (RPMs):

  • apache2
  • apache2-doc
  • apache2-prefork
  • libapr1
  • libapr-util1
  • neon
  • subversion
  • subversion-server
  • subversion-tools
  • subversion-python
  • python-pygments
  • python-setuptools
  • viewvc

Após a instalação dos pacote acima, altere o path no arquivo /etc/sysconfig/svnserve.

 SVNSERVE_OPTIONS="-d -R -r /srv/svn/repos"

Adicione o usuario e grupo SVN:

 useradd -d /srv/svn -s /bin/false svn ; groupadd svn

Na pasta principal do repositório SVN crie as pasta como no exemplo abaixo:

# mkdir -p /srv/svn/repos
# mkdir -p /srv/svn/user_access
# mkdir -p /srv/svn/html

Levante o serviço SVN:

# rcsvnserve restart
Shutting down svnserve                    done
Starting svnserve                         done

Configurando o APACHE

Insira os modulos DAV e DAV_SVN:

# a2enmod dav
# a2enmod dav_svn

Edite o arquivo apache2 em sysconfig:

# vi /etc/sysconfig/apache2

Insira o conteudo abaixo:

APACHE_SERVER_FLAGS="SVN_VIEWCVS"

E também verifique a presenças dos módulos dav e dav_svn:

APACHE_MODULES="... dav dav_svn"

Gerenciando usuários

Crie um arquivo de senha e de grupo de usuarios:

# touch /srv/svn/user_access/svn_passwdfile
# touch /srv/svn/user_access/svn_groupfile
# chown wwwrun:root /srv/svn/user_access/*
# chmod 640 /srv/svn/user_access/*

Adicione o usuario e a senha:

# htpasswd2 /srv/svn/user_access/svn_passwdfile cabelo
New password:
Re-type new password:

Defina o grupo do usuário no arquivo svn_groupfile

neti_committers: cabelo
neti_readers: cabelo pedrinho guilherme

Criando um repositório:

A seguir, os comando para criar um repositório:

# cd /srv/svn/repos
# svnadmin create project1
# chown -R wwwrun:root project1/{dav,db,locks}

Edite o arquivo /etc/apache2/conf.d/subversion.conf como no exemplo abaixo:

<IfModule mod_alias.c>
Alias /repos    /rede1/svn/html
</IfModule>
<Directory /rede1/svn/html>
Options         +Indexes +Multiviews -FollowSymLinks
IndexOptions    FancyIndexing \
ScanHTMLTitles \
NameWidth=* \
DescriptionWidth=* \
SuppressLastModified \
SuppressSize
order allow,deny
allow from all
</Directory>
<Location /repos/project1>
DAV svn
SVNPath /srv/svn/repos/project1
# Limit write access to certain people
AuthType Basic
AuthName "Authorization for project1 required"
AuthUserFile /srv/svn/user_access/project1_passwdfile
AuthGroupFile /srv/svn/user_access/project1_groupfile
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require group project1_committers
</LimitExcept>
# Limit read access to certain people
<Limit GET PROPFIND OPTIONS REPORT>
Require group project1_committers
Require group project1_readers
</Limit>
</Location>

Configurando o ViewVC

No arquivo /srv/viewcvs/vewcvs.conf, insira os projetos:

# vi /srv/viewcvs/vewcvs.conf

Insira as linhas abaixo:

svn_roots:
project1 : /srv/svn/repos/project1 ,
project2 : /srv/svn/repos/project2

Reinicie o Apache:

# rcapache2 restart

Algumas Dicas:

Verificando as informações de um repositório

# svnlook info /srv/svn/repos/project1/
cabelo
2010-05-12 18:20:18 -0300 (Qua, 12 Mai 2010)
20
- Versao de entrega.

Criando um diretorio:

$ svn mkdir http://10.0.0.250/repos/project1/NOME-DIRETORIO

Importando um projeto para SVN

# svn import /tmp/myproject http://10.0.0.250/repos/project1 -m "initial import"
Fazendo um CheckOut:
$ svn co http://10.0.0.250/repos/project1
$ svn co http://10.0.0.250/repos/project1 -r 20
Comando commit  e update
# svn commit button.c
# svn commit --message "Corrected number of cheese slices."
# svn update
# svn commit --message "Add a few more things"
Backup e restore:
# svnadmin dump /srv/svn/repos/project1  > /tmp/backup.dump
# svnadmin load /srv/svn/repos/project1 < /tmp/backup.dump

Editando a string de log:

$ svnadmin setlog /path/to/repository  -r 10662 --bypass-hooks message_file.txt

Copiando, movendo, adicionando e excluindo arquivos.

#  svn add arquivo.ext
#  svn delete arquivo.ext
#  svn copy arquivo1.ext arquivo2.ext
#  svn move arquivo1.ext arquivo2.ext

Para modificar as propriedades no código fonte, basta inserir as tag abaixo e executar o comando conforme o exemplo:

/* $URL$
$Rev$
$Author$
$Date$
$Id$
*/
# svn propset svn:keywords "URL Rev Author Date Id"  was

Bom… por hoje é só…

Android NDK: Desmistificando o acesso a códigos nativos em C

Conforme prometido na palestra sobre Android na Campus Party 2011, publico no Viva O Linux um documento prático cujo foco foi a elaboaração de um programa helloworld prova de conceito utilizando código nativo e java (JNI). O objetivo é desmistificar a utilização de código C na plataforma Android. Espero que esta contribuição ajude na compreenção das pessoas que não sabem por onde começar esta jornada.

Leia AQUI o artigo na íntegra.

Nagios Vision: Tem humanos perto do seu servidor.

Acabo de testar a primeira versão alfa de um plugin do nágios, que detecta faces humanas utilizando os módulos de visão computacional da biblioteca OpenCV. Após a detecção utilizando o NSCA Cliente do nágios o servidor é notificado com alertas.

Os níveis de alertas são parametrizados de acordo com a distância da face. Após enviar a notificação ao Nágios, o plugin também envia um e-mail com a foto recém processada. Em breve um artigo no Viva O Linux explicando passo-a-passo todo o procedimento. Por enquanto deixo as ilustrações.

openSUSE 11.4

O que tem de novo:

“O openSUSE 11.4 também traz a remoção da camada de abstração HAL. Quem fica no lugar, como é tendência nas distros, é o udev. A camada HAL seria removida no 11.3 mas continuou por mais um tempo, até que os últimos pacotes que dependiam dela pudessem ser migrados.

O visual recebeu bastante atenção, incluindo os papéis de parede finais, telas de entrada e branding em geral. Foi adicionada a WebYaST, uma ferramenta de administração baseada em web originalmente criada para a versão Enterprise Server (SLES). Entre outros programas atualizados estão XOrg 7.6, VirtualBox 4.0.2, GnuCash 2.4 e Scribus 1.3.9. O KDE 4.6 RC2 está presente e só deverá ser atualizado para o 4.6.0 final com o primeiro Release Candidate.

Enquanto o pessoal do Gnome se prepara para a versão 3, o foco do openSUSE é estabilizar e melhorar o 2.32. Correções no PulseAudio, GDM e gnome-main-menu deverão constar no 11.4, garantindo uma experiência de uso sem problemas. A equipe do Gnome prepara um liveCD baseado no 11.4 que incluirá o Gnome 3 quando ele for lançado, em março. Apesar de pretender suportar o preview do Gnome Shell com o Clutter 1.5, não estão se apressando tanto para incluir o Gnome 3 no openSUSE antes do tempo.

O XFCE vem na versão 4.8, bastante significativa.”

fonte:Guia do Hardware.

Wiimote no openSUSE e no Android.

Neste post, veremos sem mistério como utilizar o controle do nintendo wii no openSUSE e no Celular android. No celular android é bem simples, basta instalar Wiimote Controller efetuando o download na sua página oficial ou utilizar o QR code abaixo . E a seguir e assistir o vídeo abaixo de como configura-lo.

No openSUSE, primeiramente devemos instalar os pacotes enumrados abaixo:

  1. libcwiid1
  2. libcwiid-devel (para os desenvolvedores )
  3. lswm
  4. python-cwiid
  5. wmgui
  6. wminput

wmgui é uma interface gráfica que permite a conexão com o controle sem precisar se preocupar com o id do dispositivo e tudo mais, muito prático, mas prefiro ainda a tradicional linha de comando.

Abaixo uma receita de bolo para colocar em funcionamento o controle do wii no seu sistema operacional openSUSE.

Adicionando o módulo do kernel.

# modprobe uinput

Listando o id (mac-adress) do controle.

# lswm
Put Wiimotes in discoverable mode now (press 1+2)...
00:1A:1A:C1:07:26

Modifique o arquivo /etc/cwiid/wminput/ir_ptr conforme o exemplo abaixo:

# vi /etc/cwiid/wminput/ir_ptr
#ir_ptr
include buttons
Plugin.ir_ptr.X = ABS_X
Plugin.ir_ptr.Y = ABS_Y

Agora utilize o comando wminput e pronto!

# wminput -c /etc/cwiid/wminput/default 00:1A:1A:C1:07:26
Put Wiimote in discoverable mode now (press 1+2)...

ATENÇÃO: Para o Wii funcionar como mouse, precisaremos do LED-IR de 940 nm, mais detalhes no Viva o Linux no artigo do Sergio.