ruby1.9の各アーキテクチャでのbuild状況 3

投稿者 akira 2007-05-27 15:00:00 GMT

さっそくbuildできないぞバグ(FTBFS)をくらってる(hppa Bug#426267、ia64 Bug#426134)。というかここんとこは毎回くらってる。なんとかしなきゃ。

ちなみにDebianでのbuild状況はbuilddのページで参照できる。久々に見たらなんだか見易くなってるな。

ruby1.9_1.9.0+20070526-1

投稿者 akira 2007-05-25 15:00:00 GMT

とりあえず更新。

$ ruby1.9 -ve callcc
ruby 1.9.0 (2007-05-26 patchlevel 0) [i486-linux]
-e:1:in `callcc': no block given (LocalJumpError)
        from -e:1:in `<main>'

ところでgemが標準添付になるんだとか。あのおかしなファイルの持ち方のまま入るんかな。それはかなりイヤ……。そもそもメリットがなあ。

ruby1.9_1.9.0+20070521-1

投稿者 akira 2007-05-20 15:00:00 GMT

ようやくというかなんというか、パッケージを更新しました。ずいぶんほっぽってしまって申し分けないです。

いいかげんRubyからも遠ざかりぎみだったのでYARVになったというのに何をすればいいのか分からず。またぼちぼちと追いかけていきますかね。

$ ruby1.9 -ve callcc
ruby 1.9.0 (2007-05-21 patchlevel 0) [i486-linux]
-e:1:in `callcc': callcc() function is unimplemented on this machine (NotImplementedError)
        from -e:1:in `<main>'

imapfilter.rb

投稿者 akira 2007-04-23 15:00:00 GMT

先日から少しずついじっているimapfilter.rbがだいぶ形になってきた。

今のところ一次受けメールボックスをスキャンして、振り分けルールと迷惑メールのチェックルールを実行して、その結果を受けての各種振り分け(やコピー)を行うことができる。また、迷惑メール用メールボックスへの投入→迷惑メールフィルタに登録、同メールボックスからの削除(+FLAGS \Deleted)→迷惑メールフィルタからの削除といったこともできる。メールボックスを指定することでバッチ的に振り分けを行うとかもできるはず。

まだdaemon化ができるようにしていないのでそれをするのと、コマンドラインからルールのexclude/includeを指定できるようにするといったあたりが近々のToDo。IDLE、NAMESPACE、UIDPLUSへの対応が少し長めのToDo。UIDPLUS(というかUID EXPUNGE)は早めに対応したほうが良さそうかな。あとはbug出しも必要か。

RubyForgeあたりに突っ込むと使ってくれる人がいたりするだろか? (あいかわらずお粗末なコードでだいぶはずかしいが)

imapfilter.rb

投稿者 akira 2007-04-16 15:00:00 GMT

一時的にとはいえcyrus環境にしたせいでメールの取りまわしが面倒なことになってしまった。しょうがないのでIMAPメールボックスをスキャンしてあれこれするスクリプトを書いてみた。

ruby-1.8.6-0vl1

投稿者 akira 2007-03-19 15:00:00 GMT

VineSeed MLに書いた通り、パッケージングがだいたい終わって、あとはアップロードするだけ。アップロード先を忘れぎみなので確認中 ;-)

今回の作業で最もてこずったのは、実はVMware上にVine Linux環境を整えることだったりする。クリーンインストールをしようとしたらパッケージ展開中にVMwareが無反応になること、五回。結局、問題のパッケージ展開中にVMwareへの入力を一切しないようにしたら最後までいった。よく分かんない。

それはさておき。ruby-1.8.6-0vl1とともにrubygemsとRedClothのパッケージを作った。rakeパッケージも作った。でもってgemをインストールした状態をパックする形でRails 1.2.3をパッケージ化してみた。

ただ、こういう形だと「単にgem installすればいいじゃん」っていう話が当然あるわけで、実際のところ利用される可能性はほとんどないのかもしれない。ないならないで、これらのパッケージはなかったことにする。利用されるようなら何か考えてみる。

考えてみるポイントの一つは、gemから変換したのではない通常のパッケージとの共存について。今回、最初に通常のパッケージとしてrakeパッケージを作ったのだけど、gem変換パッケージであるrailsを作ろうとしたときに(使うときにも)、結局はgemであるrakeが必要になってしまう。となるとgem変換のrakeパッケージを作らねばならず、まあ、実際作って作業を進めたのだけど、内容は(ほぼ)同じだけど構成の違う二種類のパッケージが出来てしまう。これは多分あまりよろしくないんじゃないかと思う。

もっとも、そういうパッケージがどれほど作られるのかにもよる。たいした数にならなければさほど問題ではない。また、利用者が構成はなんでもいいから(たとえば)rakeコマンドが動けば良いというのであれば、それもとりたてて問題にはならないかもしれない(つまりRubyGemsなんていやじゃ、という人があまりいなければ)。

当面はVineSeed MLでの意見待ち、かな。

ruby1.8_1.8.6-1

投稿者 akira 2007-03-12 15:00:00 GMT

knuさん、関係者の皆様、Ruby 1.8.6のリリースお疲れ様でした。

というわけでruby1.8_1.8.6-1を作ってDebianにアップロードした。久しぶりのアップロードなんでドキドキする。各プラトホームでうまくbuildできるといいなあ。

Vine用にも早めにパッケージングする予定だけれど、我が家のVine環境が壊滅状態なので、そこから回復させるか、あるいは、どこかで間借りするか、だなあ。どうしましょかね。

ところでRuby 1.8.6の動作確認をしていたらRailsがまずそうなことに気付いた。とりあえずclass Time; public :to_date; endしておけば回避はできるようだけど、privateにしてある理由があるのだとすると、というかあるのだろうから、これではまずいのかも。さて、どうしたものか。

追記1(2006-03-14): Railsの次のリリースに対応コードが入るとのこと。

追記2(2006-03-14): 修正の入ったRails 1.2.3が出てるみたい。

追記3(2006-03-14): Rake 0.7.1にも影響があった。こちらはfileutilsのprivateメソッドの変更によるもの。rake.rbの725行目をfu_check_options options, [:noop, :verbose]とすることで回避できるのかな。

Subversionへの移行

投稿者 akira 2006-12-26 15:00:00 GMT

commiterの一人としてはに従ってsvn+ssh://svn@ci.ruby-lang.org/ruby/でアクセスするということかな。committerとしてでなく参照のみのアクセスはおよびwww.ruby-lang.orgのSVNへの移行という記事の通り。

現状、Subversionのrepositoryにはruby_1_8_5もあるけれど、にある通り、このブランチだけは以前のCVSのrepositoryのほうを使う、と。

1.8.5→1.8.5-p2の変更内容

投稿者 akira 2006-12-26 15:01:00 GMT

Ruby 1.8.5から1.8.5-p2での変更内容はおよびwww.ruby-lang.orgの「Ruby 1.8.5-p2リリース」にある程度書いてある。が、ちょっと埋もれぎみかも。配布物(のNEWSとか)には記載がないので差分やCVSのログを見てみる。こんな内容だと思う。

1.8.5-p1
CVE-2006-5467への対応。関連するアナンスはwww.ruby-lang.orgの「CGIライブラリのDoS脆弱性について」にある。元となる修正はruby-cvs:18240で以下の内容。
  • ChangeLog:1.2673.2.1886->1.2673.2.1887
  • lib/cgi.rb:1.68.2.17->1.68.2.18
Debian/unstable(以下同様)では1.8.5-3で対応済み。
1.8.5-p2
JVN#84798830(CVE-2006-6303)への対応。関連するアナンスはwww.ruby-lang.orgの「もう一つのCGIライブラリのDoS脆弱性について」にある。元となる修正はruby-cvs:18573で以下の内容。
  • ChangeLog:1.2673.2.1998->1.2673.2.1999
  • lib/cgi.rb:1.68.2.18->1.68.2.19
Debianでは1.8.5-4で対応済み。

1.8.5-p2→1.8.5-p12の変更内容 1

投稿者 akira 2006-12-26 15:02:00 GMT

Ruby 1.8.5-p2から1.8.5-p12での変更内容についての(コア開発者以外向けの、およびどのパッチレベルで何が修正されたのかといった)情報がやはり見当たらない(まあ、少なくともまとまった情報は見当にらない)感じなので、再び差分やCVSのログを見てみる。はっきりとした説明が私には難しいものもあるけど、こんな内容なんだと思う。

1.8.5-p3
Hash[]にハッシュオブジェクトを与えると回収されない内部テーブルが生成されてしまい、メモリリークにつながる。元となった変更はruby-cvs:17998で、変更内容は以下の通り。
  • ChangeLog:1.2673.2.1825->1.2673.2.1826
  • hash.c:1.128.2.16->1.128.2.17
関連する報告はなど。Debian/unstable(以下同様)では1.8.5-1で対応済み。
1.8.5-p4
ext/dbm/extconf.rbでDBMライブラリの検出結果が無視されるためにdbmライブラリが構築されない。元となった変更はruby-cvs:18092で、変更内容は以下の通り。
  • ChangeLog:1.2673.2.1841->1.2673.2.1842
  • ext/dbm/extconf.rb:1.16.2.1->1.16.2.2
関連する報告はなど。Debianでは1.8.5-1で対応済み。
1.8.5-p5
().."」というコードを与えるとsegvする。元となった変更はruby-cvs:18517で、変更内容は以下の通り。
  • ChangeLog:1.2673.2.1979->1.2673.2.1980
  • parse.y:1.307.2.46->1.307.2.47
関連する報告はなど。Debianでは1.8.5-4で対応済み。
1.8.5-p6
BignumオブジェクトとFloatオブジェクトのかけ算でsegvする。元となった変更はruby-cvs:18549で、変更内容は以下の通り。
  • ChangeLog:1.2673.2.1992->1.2673.2.1993
  • bignum.c:1.100.2.28->1.100.2.29
関連する報告はなど。Debianでは1.8.5-4で対応済み。
1.8.5-p7
ブロック変数の使用に際するメモリ使用量を低減する(のだと思う)。元の話はブロック変数をたくさん使いすぎてメモリを使いすぎ、結果的にOOM killerにやられちゃってるのではないかというような話(なんだと思う)。元となった変更はruby-cvs:18577で、変更内容は以下の通り。
  • ChangeLog:1.2673.2.1999->1.2673.2.2000
  • parse.y:1.307.2.47->1.307.2.48
関連する報告はなど。Debianでは未対応。
1.8.5-p8
NetBSDなどでRUBY_SITE_LIBが空になってしまい$LOAD_PATHにsite_rubyが含まれなくなる。元となった変更はruby-cvs:18590で、変更内容は以下の通り。
  • ChangeLog:1.2673.2.2002->1.2673.2.2003
  • configure.in:1.212.2.64->1.212.2.65
関連する報告はなど。Debianでは未対応。
1.8.5-p9
変更が二つあるように思える。一つは、win32環境で[BUG] cross-thread violation on rb_gc()が起きるというもので関連する報告はなど。もう一つは、C関数のglob_helperの呼び出され方によってはメモリリークが起きる可能性があるというもの(……だと思うんだけど、よく分かんない)。これはで一つめに対するパッチが示されるのと同時に報告とパッチが示されている。ともかく元ととなった変更はruby-cvs:18497で、変更内容は以下の通り。
  • ChangeLog:1.2673.2.1973->1.2673.2.1974
  • win32/win32.c:1.103.2.56->1.103.2.57
  • dir.c:1.92.2.35->1.92.2.36
win32/win32.cへの変更が一つめに、dir.cへの変更が二つめに、それぞれ対応していて、それぞれ独立してるんじゃないかなと思うのだけど、どうなんだろう。Debianでは1.8.5-4でdir.cへの変更を加えている。
1.8.5-p10
require 'rdoc/usage'NameErrorが起きる。元となった変更はruby-cvs:18237で、変更内容は以下の通り。
  • ChangeLog:1.2673.2.1885->1.2673.2.1886
  • lib/rdoc/ri/ri_options.rb:1.2.2.13->1.2.2.14
関連する報告はなど。Debianでは1.8.5-2で対応済み。
1.8.5-p11
Ruby/TkのコールバックブロックからRuby/Tkのコードからなるスレッドを止めると、タイミングによってkilled thread (ThreadError)が起きる。元となった変更はruby-cvs:18566で、変更内容は以下の通り。
  • ChangeLog:1.2673.2.1995->1.2673.2.1996
  • ext/tk/tcltklib.c:1.40.2.13->1.40.2.14
関連する報告はなど。Debianでは未対応。
1.8.5-p12
ChangeLogやバージョンの変更だけ、かな?

後でDebianとVineでの対応を考えよう。VineSeedでの現状の対応状況はDebian/unstableとほぼ同じだと思う。