YAMAGUCHI::weblog

土足で窓から失礼いたします。今日からあなたの息子になります。 当年とって92歳、下町の発明王、エジソンです。

buildconfがpythonを見つけられない

Subversionのアップグレードをportupgradeで行ったらなぜかエラー発生.どうも devel/apr-svn のビルドでエラーが出てたみたいです.エラーメッセージを見てみたところ

buildconf: python not found.
           You need python installed
           to build APR from SVN.

でもしっかりPython2.5は入ってるんですよね.で,いろいろ探してみたらFreeBSDのユーザMLに同様のエラーが報告されてました.

とりあえずportinstall devel/apr-svnとしてやっていろいろファイル作ってみる.さてbuildconfの中身を見てみるか.

# find / -name buildconf
/usr/ports/devel/apr-svn/work/apr-1.2.8/buildconf
/usr/ports/devel/apr-svn/work/apr-util-1.2.8/buildconf
/usr/ports/www/apache22/work/httpd-2.2.6/buildconf
/usr/ports/www/apache22/work/httpd-2.2.6/srclib/apr/buildconf
/usr/ports/www/apache22/work/httpd-2.2.6/srclib/apr-util/buildconf

意外とbuildconfが少ないことに感動.早速中身を拝見してみると,

# cd /usr/ports/devel/apr-svn/work/apr-1.2.8/
# less buildcheck
build/buildcheck.sh || exit 1

とあるんで,今度はbuildcheck.shを見てみました.すると最初の方でpythonに関する記述が.どうやらこの辺を対処すればよさそうです.

# less build/buildcheck.sh
# any python
python=`build/PrintPath python`
if test -z "$python"; then
echo "buildconf: python not found."
echo "           You need python installed"
echo "           to build APR from SVN."
exit 1
else
py_version=`python -c 'import sys; print sys.version' 2>&1|sed 's/ .*//;q'`
echo "buildconf: python version $py_version (ok)"
fi

とりあえずpython2.5を呼べるようにしてあげればいいんで,いじってみます.-は削除した行,+は追加した行.

# cp bulidcheck.sh buildcheck.sh.org
# emacs buildcheck.sh
- python=`build/PrintPath python`
+ python=`build/PrintPath python2.5`

- py_version=`python -c 'import sys; print sys.version' 2>&1 |sed 's/ .*//;q'`
+ py_version=`python2.5 -c 'import sys; print sys.version' 2>&1 |sed 's/ .*//;q'`

つぎに再びbuildconfに戻ってpython2.5を呼べるようにします.

# emacs buildconf
- build/gen-bulid.py make
+ python2.5 build/gen-build.py make

ひとまずここで ./buildconf を呼んであげます.今度はapr-util-1.2.8に行ってちょろっと設定.

# cd /usr/ports/devel/apr-svn/work/apr-util-1.2.8
# emacs buildconf
- $apr_src_dir/build/gen-build.py make
+ python2.5 $apr_src_dir/build/gen-build.py make

これで

# cd /usr/ports/devel/apr-svn/
# make

でコンパイル通ります.あとはSubversionの設定です. /usr/local/etc/pkgtools.conf でdevel/subversionのmakeオプションをWITHOUT_BDB=yesとしてから

# portinstall devel/subversion

とするとインストール完了.はー,長かったー.