PPM 4.x問題その後

ActivePerl 5.8.8 build 818以降についてくるGUIPPMの件、先日theoryx5リポジトリの中の人が新しいPPM::Makeをリリースしてくれたのでいろいろテストを繰り返しているのですが、

  • 最新版のPPM::MakeでつくったppdファイルならPPM 4のGUIからでも依存関係を正しくたどってくれる(旧版のPPM::MakeでつくったppdファイルをそのままPPM 4で読もうとしても依存関係をうまく認識してくれない)
  • 最新版のPPM::Makeはpackage.lst/package.xmlというファイルをつくれるようになった。これは、なければないでPPM 4側がよしなにしてくれるんですが、用意しておくとPPM 4が検索をするときに元データとして使ってくれる。
  • ところがこのキャッシュ、なかなかのくせもので、うまく動いているときはいいんですが、壊れたパッケの情報を読ませたり、壊れたパッケを無理にインストールしようとしたりすると、どうもうまく情報を更新してくれなくなる模様(これはよくわかってない。ともかくDocuments and Settings/.../Application Data/ActiveStateの下にキャッシュDBがあるので、それを消してやると直るのはたしか。単に再インストールしただけだと古いキャッシュが残るのでダメ)
  • 動かないと言っていたpost-installスクリプトGUI上で直接post-installスクリプトを含むパッケージをインストールしようとすると警告が出るのを確認(ただし、依存ツリーの中に含まれている場合は相変わらず無視されてしまう模様)。また、CUIモードでインストールしたときには、従来とは異なるフェーズで実行されるのを確認。これでPPM 4でもPlaggerをインストールするめどは立ったかな、と。
  • ところが、翻訳作業のかたわらしこしこと再コンパイルを繰り返して、250件くらいのパッケージはPPM 4対応させた……はずだったのですが、最新版のPPM::Make、まだちょっとbuggyというか、いろいろあやしいことをしてくれるので(たとえば、わざとTest::系のパッケを依存ツリーから排除する仕組みになっているとかね)、ちょっとそのままではリリースできない感じ。つーか、下手したらもう一度最初からやり直しか?!と激しく萎えているところ。

ActiveStateのリポジトリを有効にしておくと依存関係のエラーが出やすいのでよそのリポジトリを使うときは確実にオフにしておいた方がいいとか(rep up/downがなくなった弊害)、こなれていないところが目立つのでやっぱり現状では5.8.8 build 817ないし5.8.7 build 815にダウングレードした方が無難かなとは思っていますが、いちおう作業はしていますのでbuild 819を使っている方は気長にお待ちあれ。