2006年10月18日(水) [過去の今日]
#1 firefoxのビルドエラー
パッケージにしないとlibxpcom.soを見つけてくれなくて起動できないので、パッケージを作るのだが、
make[1]: ディレクトリ `/usr/local/src/firefox2.0rc3/mozilla/ff-opt-static/browse r/installer' に入ります Creating package directory... rm -f -rf ../../dist/xpt /usr/local/bin/perl -I/usr/local/src/firefox2.0rc3/mozilla/xpinstall/packager -e 'use Packager; \ Packager::Copy("../../dist", "../../dist/firefox", \ "packages-static", "unix", 1, 0, 1);' Error: package file "SCALAR(0x814f720)" is not a file or is unreadable. See '-e --help' for more information. Exiting... make[1]: *** [stage-package] エラー 4 make[1]: ディレクトリ `/usr/local/src/firefox2.0rc3/mozilla/ff-opt-static/browser/installer' から出ます make: *** [all] エラー 2 make: ディレクトリ `/usr/local/src/firefox2.0rc3/mozilla/ff-opt-static/browser/installer' から出ます
なんて感じにエラーがでる。
どうもPackager.pmのcheck_arguments()関数内で$packageがリファレンスに化けてる? 原因不明。
ということで以下のような修正を施してやると、見事パッケージングできた。
--- xpinstall/packager/Packager.pm.orig 2006-10-18 09:14:19.000000000 +0900 +++ xpinstall/packager/Packager.pm 2006-10-18 09:09:17.000000000 +0900 @@ -462,6 +460,7 @@ } # check package file + $package = $$package if ( ref($package)); if ( $package eq "" ) { print "Error: package file (--file) not specified.\n"; $exitval += 8;
タイムスタンプがおかしいのはご愛嬌ってことで。
しかし、パッケージングできたもののメモリを異常に食うな……。まだなにかがおかしい?
(@049)
#2 トラックバックキー
Piro氏のblog を見てて思い付いた。
トラックバックspamを避けるには、トラックバックキーを使えばいい。URI末尾にパスワード的文字列を付けるものだ。Piro氏のblogがそうなのだが、しかし手動で付けるのはいかにも不便だ。ヒントを考えるのも煩わしい。
ならばいっそ、自動で付ければいい。トラックバックを送りたい人にはCGIかなにかでキーを生成してもらい、そのキーをCookieに保存してもらう。当該Cookieが送られてきたクライアントには、表示するトラックバックの送り先にキーを付けてHTMLを返せばいい。
キーの生成はシェアウェアのシリアルみたいに、計算で真偽が判定できるものが望ましいな。これなら何度生成し直してもらっても枯渇しないし、かぶってもそもそも問題にならない。
仕様として推奨されてるHTMLへのトラックバック先の埋め込みだが、これは諦めることになるかなあ。まあ無くてもあんまり不都合はなさそうだけど。
(@874)