さくらインターネット(スタンダード)にsary を入れる

すみません最終的に失敗したという記録です.

参考ページ 横着プログラミング 第9回: sary: Suffix Array のライブラリとツール

環境

筆者のページによるとGLIB2.0だとダメで1.2が必要だそうです。
glib-1.2.10.tar.gzを入手 from ftp://ftp.gtk.org/pub/gtk/v1.2/

glibのビルド。

% tar zxvf glib-1.2.10.tar.gz
% cd glib-1.2.10
% ./configure --prefix=$HOME/local_test
% make
gstrfuncs.c: In function 'g_printf_string_upper_bound':
gstrfuncs.c:870: error: expected ')' before string constant
gstrfuncs.c:1037: error: expected ')' before string constant
(中略)

Error code 1

あららエラーでコケます.

Linux上で同じ症状の人を見つけました。
Glib compile error

intramawebさんの質問に対し、limeric22さんが
gstrfuncs.cを修正して,つけるとうまくいくよと回答しています。

修正前:g_warning (G_GNUC_PRETTY_FUNCTION
修正後: g_warning (G_GNUC_PRETTY_FUNCTION,

これに対しstudiojさんがpatch書いたよコメント

追加 #define G_GNUC_PRETTY_FUNCTION

これに対しbpringlemeirさんがコメント
提供されたパッチはOKだけど、こう直したほうがいいんじゃないの?

削除 g_warning (G_GNUC_PRETTY_FUNCTION
削除 "(): unable to handle positional parameters (%%n$)");
追加 g_warning ("%s(): unable to handle positional parameters (%%n$)", G_GNUC_PRETTY_FUNCTION);

この後ちゃんと動いたよという報告がされている。

何箇所か直さなければならないのが面倒なので

#define G_GNUC_PRETTY_FUNCTION

を追加してみました。

試してみましょう。

%make
(中略)
creating type-test
%make install

glibのビルドに成功しました。

つぎはsaryのビルドです。

% tar zxvf sary-1.2.0.tar.gz
% cd glib-1.2.10
% ./configure --prefix=$HOME/local
checking for GLIB - version >= 2.0.0... gnome-config: not found
gnome-config: not found
gnome-config: not found
gnome-config: not found
gnome-config: not found
gnome-config: not found
no
Could not run GLIB test program, checking why...
The test program failed to compile or link. See the file config.log for the
exact error that occured. This usually means GLIB is incorrectly installed.
configure: error:
GLIB 2.0.0 or better is required. The latest version of GLIB
is always available from ftp://ftp.gtk.org/.

GLIB 2.0.0以上が必要なの?

横着プログラミング 第9回: sary: Suffix Array のライブラリとツール

sary では最新の GLIB 2.0 ではなく一世代前の GLIB 1.2 *7 を利用している。

作って理解するAjax --- No.3インクリメンタル検索を実現 [サーバー編] | 日経 xTECH(クロステック)

saryは,GLibライブラリ(バージョン2.0以降)が導入されているUNIX系OSで動作します。

どっちよー?

saryのChangeLogを見たら

Require GLIB 2.0.0 or later instead of GLIB 1.2.x

あらららら。
今までの苦労はいったい...

教訓としては「最新の情報をちゃんと調べましょう」
というところでしょうか。

と言うわけで今日はあきらめます。