portupgrade すると /usr/local/share/examples/tdiary/tdiary/rd_style.rb が失われてしまう。
pkg_delete した時点では消えないので、インストールする時に消しているっぽい。うむう。
SVNIndexXSLT を使うとリスト表示がかっこよくなるらしい。 リポジトリを直接かっこよく見せたい要望は今のとこないけどメモ。
Einar Karttunen さんがSWIGベースのRuby bindings を作ろうとしているような、していないような。
このメールのスレッド中で subversion/bindings/ruby の中身が削除されてた。
NHK教育の番組「夢りんりん丸」で流れてきた曲。NHKでも「こんにちわ」オケーになりつつあるのか?
とりあえず extconf.rb の途中でエラーが出る問題と闘ってみた。
要するにlibaprutil-0をリンクしようとするとXML関係の libexpat を要求してきて失敗していたのが原因。
svn-config --libsした結果を$libsに追加してやれば解決した。
svn-config --libsは-L(どっかのディレクトリ) も追加してくれるし、
APR関係のものも含んでいるので結局apr-configやらapu-configやらは削除してしまってこんな感じ。
require 'mkmf'
$CFLAGS << " -I../../include"
$CFLAGS << `svn-config --cflags`.chop
$CFLAGS << `svn-config --includes`.chop
$libs << `svn-config --libs`.chop
$libs = append_library($libs, Config::CONFIG['RUBY_INSTALL_NAME'])
# Extra libraries needed to compile
libraries = [
['apr-0', 'apr_initialize'],
['aprutil-0', 'apr_md5'],
['svn_subr-1', 'svn_pool_create'],
['svn_delta-1', 'svn_txdelta_next_window'],
['svn_client-1', 'svn_client_commit'],
['svn_wc-1', 'svn_wc_entry'],
['svn_ra-1', 'svn_ra_get_ra_library'],
]
libraries.each do |lib,func|
unless have_library(lib, func)
puts "You seem to be missing the #{lib} library."
puts "I can't compile the svn library without this."
# exit(1)
end
end
# These aren't required, but we'll link them if we have them
have_library('svn_fs-1', 'svn_fs_new')
have_library('svn_repos-1', 'svn_repos_open')
# SWIGランタイムサポートライブラリを追加
have_library('swigrb', 'SWIG_InitRuntime')
# Makefineの作成
create_makefile('svn/client')
create_makefileのところでディレクトリを指定しておくと、make installの先がサブディレクトリになる。
結果として利用者側のRubyスクリプトでrequireのところに指定したい文字列 require 'svn/client' と同一になる。
SWIGによるpythonバイディングの実装は、ほとんどの構造体についてSWIGおまかせで何とかなっているらしく、 なかなか秘密に迫れない。
現時点でportsがコミットされているので、portsをportupgradeなどであげた時点でうまくいくかを見ていただけると助かります。
上美谷さんのアドバイスの通りにしたつもりではいるんですが…
APR(少しだけ)和訳へリンクしていただいてありがとうございました。が、すいません、消してしまいました。横浜ベイキット(http://www.baykit.org/)のXiをCで実装する計画ではAPRを使うかもしれず、その際に必要になったらまた和訳して公開するかもしれません。が、今のところ取り掛かる予定がありません。申し訳ないです。