Ok, hora de colocar a mão na massa!
Primeiramente é necessário instalar os requisitos de compilação:
# yum install gcc make mysql-devel vim-enhanced
O gerenciador de pacotes Yum se encarrega de instalar as dependências adicionais necessárias a cada um dos programas acima. Obviamente, quem por ventura já tiver esses pacotes instalados, pode ignorar essa etapa.
Em seguida obteremos os pacotes-fonte da Libevent e do MSN-Proxy:
# cd /usr/src
# wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
# wget http://ufpr.dl.sourceforge.net/project/msn-proxy/msn-proxy/msn-proxy-0.7/msn-proxy-0.7.tar.gz
Essas são as últimas versões estáveis disponíveis no momento de escrita desse artigo. Porém, caso algum dos links falhe, ainda pode-se obter os pacotes dos sites oficiais [1][2] de cada um dos programas.
Agora deve-se criar um diretório separado para a Libevent e instalá-la nele (para sistemas x86, basta substituir o subdiretório lib64 por lib em todos os caminhos citados daqui em diante).
# mkdir /usr/local/lib64/libevent-1.4.13
# cd /usr/src
# tar -xzvf libevent-1.4.13-stable.tar.gz
# cd libevent-1.4.13-stable
# ./configure --prefix=/usr/local/lib64/libevent-1.4.13 --exec-prefix=/usr/local/lib64/libevent-1.4.13
# make
# make install
O próximo e mais importante passo é a compilação do MSN-Proxy usando essa versão da Libevent recém-instalada. Para isso, serão necessárias algumas pequenas alterações no arquivo Makefile do programa.
# cd /usr/src
# tar -xzvf msn-proxy-0.7.tar.gz
# cd msn-proxy-0.7
# vim Makefile
O arquivo deve ser editado de modo que seu conteúdo fique da seguinte forma, a partir da linha 7:
# FreeBSD
#MYSQLINC=/usr/local/include
#MYSQLLIB=/usr/local/lib/mysql
# Linux (most)
MYSQLINC=/usr/include/mysql
MYSQLLIB=/usr/lib64/mysql
# Adicionados os caminhos da Libevent mais recente
LIBEVENT14LIB=/usr/local/lib64/libevent-1.4.13/lib
LIBEVENT14INC=/usr/local/lib64/libevent-1.4.13/include
CCFLAGS=-g -Wall -O2 -pipe -I/usr/local/include -I$(MYSQLINC) -I$(LIBEVENT14INC) -fno-builtin-log
LDFLAGS=-L/usr/local/lib -L$(LIBEVENT14LIB) -levent -L$(MYSQLLIB) -lmysqlclient
Note que as variáveis MYSQLINC, MYSQLLIB, CCFLAGS e LDFLAGS devem ser alteradas, e as variáveis LIBEVENT14LIB e LIBEVENT14INC adicionadas. Isso indica explicitamente ao compilador o caminho (de binários e cabeçalhos) da Libevent mais atual, para que o MSN-Proxy use essa versão ao invés da padrão do sistema. Os caminhos referentes à biblioteca de cliente MySQL são padrão da distribuição, mas podem ser conferidos explicitamente através do comando "mysql_config --libs --include".
Após editar e salvar o arquivo, basta compilar o programa normalmente:
# make
# make install
O último passo é criar links simbólicos para os binários dessa versão da Libevent nos locais corretos, de modo que o programa os encontre ao executar.
# ln -s /usr/local/lib64/libevent-1.4.13/lib/libevent-1.4.so.2.1.3 /usr/lib64/libevent-1.4.so.2
# ln -s /usr/local/lib64/libevent-1.4.13/lib/libevent_core-1.4.so.2.1.3 /usr/lib64/libevent_core-1.4.so.2.1.3
# ln -s /usr/local/lib64/libevent-1.4.13/lib/libevent_extra-1.4.so.2.1.3 /usr/lib64/libevent_extra-1.4.so.2.1.3
Pronto, o MSN-Proxy funcionará normalmente e as etapas adicionais para configuração dele podem ser realizadas como de costume.
Obs.: Lembre-se substituir os caminhos e nomes de arquivo caso esteja usando versões diferentes dos programas.
Referências
[1]
http://www.monkey.org/~provos/libevent/
[2]
http://sourceforge.net/projects/msn-proxy/