zphoto を Ubuntu 10.04.4 で使う

お手軽にフォトアルバムを作る必要があったので、ものすごく久々に zphoto を Ubuntu で使ってみました。

libming-dev, libpopt-dev, libimlib2-dev をインストール後に configure, make してみると、下記のようなエラーで止まってしまいました。

make[2]: Entering directory `/home/xxx/tmp/zphoto-1.2'
g++ -DHAVE_CONFIG_H -DLOCALEDIR=\"/usr/local/share/locale\" -DZPHOTO_TEMPLATE_DIR='"/usr/local/share/zphoto/templates/default/en"' -DZPHOTO_FONT='"/usr/local/share/zphoto/fonts/EfontSerifB.fdb"' -DZPHOTO_TEMPLATE_DIR_RELATIVE='"templates/default/en"' -DZPHOTO_FONT_RELATIVE='"EfontSerifB.fdb"' -I. -I. -I. -I.        -O2 -Wall -Wunused -Wuninitialized -c -o image.o image.cpp
image.cpp: In function 'int convert_needed_p(const char*, const char*)':
image.cpp:557: error: invalid conversion from 'const char*' to 'char*'
image.cpp:558: error: invalid conversion from 'const char*' to 'char*'
make[2]: *** [image.o] Error 1
make[2]: Leaving directory `/home/xxx/tmp/zphoto-1.2'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/xxx/tmp/zphoto-1.2'
make: *** [all] Error 2

このエラーを調べてみると、Getting Invalid conversion from const char* to char* on gcc 4.4.1 にもある通り、gcc(g++)のバージョンが 4.4 なのが問題のようです。g++のバージョン4.1を下記のようにしてインストールしました。

 % sudo aptitude install g++-4.1

後はMakefileのCXXをg++-4.1に変更することで、無事にコンパイルが通るようになりました。

% diff -u Makefile.org Makefile
--- Makefile.org     2012-03-26 22:39:09.413993750 +0900
+++ Makefile     2012-03-26 22:41:33.549992947 +0900
@@ -138,7 +138,7 @@
 CFLAGS = -g -O2 -Wall -Wunused -Wuninitialized -Wmissing-prototypes -Wmissing-declarations -pedantic
 CPP = gcc -E
 CPPFLAGS =
-CXX = g++
+CXX = g++-4.1
 CXXDEPMODE = depmode=gcc3
 CXXFLAGS = -O2 -Wall -Wunused -Wuninitialized
 CYGPATH_W = echo

コンパイルが必要なアプリを入れたのは何年かぶりですが、gcc4.4で同様の問題にハマっている人は結構多いみたいです。有名な問題(?)なんですね。