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を使うかもしれず、その際に必要になったらまた和訳して公開するかもしれません。が、今のところ取り掛かる予定がありません。申し訳ないです。