domingo, 26 de agosto de 2007

obpager 1.8 no ubuntu feisty

Andei a experimentar o obpager, basicamente a única coisa que eu queria era algo que me dissesse em que desktop estou. Como o link para o .deb que está na página do projecto não funciona tive que o compilar. Apesar de ter instaladas as poucas dependências e respectivos headers a compilação falhava.
Primeiro não encontrava o header da xlib Xlib.h, porque o local onde este ficheiro se encontra não estava definido na Makefile. A solução foi editar o ficheiro Makefile e alterar a linha 18 de
INCLUDES = -I/usr/X11R6/include/X11 -I/usr/X11R6/include/X11/extensions -I./src
para
INCLUDES = -I/usr/X11R6/include/X11 -I/usr/X11R6/include/X11/extensions -I./src -I/usr/include/X11
Isto fez com que passasse a ter outro erro, o shape.h também não era encontrado, mais uma vez pelo mesmo problema. De novo a solução foi colocar a path no Makefile na mesma linha.
INCLUDES = -I/usr/X11R6/include/X11 -I/usr/X11R6/include/X11/extensions -I./src -I/usr/include/X11 -I/usr/include/X11/extensions/
Agora tinha um novo problema, ao compilar falhava com o seguinte erro:
g++: ./objs/src/main.o: No such file or directory
Um erro anterior sugeria qual o problema:
src/main.cc:161: error: `errno' undeclared (first use this function)
Uma pesquisa no google dizia que o problema se deve à versão do gcc. A solução seria então acrescentar ao ficheiro src/main.cc o seguinte:
#include <sys/errno.h>
Aqui está a thread que me levou à solução, o comentário que tem o diff, o 3º é o que resolve o problema apesar de o meu gcc ser o 4.1.2 e não o 3.4.
Após tudo isto o obpager ficou a funcionar.

Sem comentários: