filter/win32/xdoc2txt.pl OpenXML に対応2008年05月01日 01時06分06秒

xdoc2txt.pl を OpenXML に対応しました。(HEAD, development-2-1, stable-2-0)

xdoc2txt version 1.26 以降がインストールされておれば、OpenXML(.docx, .xlsx, .ppsx, .pptx) に対応します。

xdoc2txt version 1.26 以前でも OpenXML に対応しているようですが、どのバージョンから対応しているのか調べるのが大変なので、パッチ作成当時最新版の 1.26 以降対応ということにしています。 なお、stable-2-0 で最新版の xdoc2txt 1.28 での動作確認はしました。

nmzcat と %FIELD_ALIASES と変数の初期化2008年05月02日 13時05分49秒

nmzcat は %FIELD_ALIASES (つまり、フィールドの別名)を考慮していないようです。このため、

$ nmzcat msg00000.html

では、author が取り出せていません。

$Document->get_field_info('author');

で、直接 $self->{'_field_info'}{author}; を参照しています。 多くのメディアタイプでは author に著者が入りますが、filter/mhonarc.pl ではfrom に著者が入るためです。

これはこういう仕様だと考えて、nmzcat に "from:" の表示項目も追加するという方法もありますが、$self->{'_field_info'} が %FIELD_ALIASES を考慮した方が良いのではないかと思います。

%FIELD_ALIASES を考慮しようとすると、mknmz の complete_field_info と clean_field_index に相当する処理を行った上でget_field_info でエイアスの参照を行う必要があるでしょう。


ところで、development-2-1 の filter/html.pl の htmlparser_filter では、$fields->{'title'}, $fields->{'author'} を undef で初期化しています。

このため、init_doc で行った '_field_info' の初期化を壊すので、

$ nmzcat msg00000.html

では、$self->{'_field_info'}{author} が未定義となり、

Use of uninitialized value in concatenation (.) or string at /usr/local/bin/nmzcat line 82.

が発生します。 undef で初期化している部分をコメントアウトすれば、このエラーは消えますが、htmlparser_filter 内の処理で $fields->{'title'}, $fields->{'author'} は undef で初期化していることが前提のようなので、別の問題がでそうです。

というところまで調べて力尽きました。

各フィルタの細々とした修正2008年05月02日 20時50分46秒

フィルタの細々とした修正を行いました。

filter/doccat.pl : (HEAD)

重複するエントリがあったので、これを削除しました。

filter/*.pl: (HEAD)

normalize_document -> normalize_jp_document に変更が 必要なところを変更しました。

filter/*.pl: (development-2-1)

normalize_document -> normalize_eucjp_document に変更が必要なところを変更しました。

filter/*.pl: (HEAD, development-2-1, stable-2-0)

行末の空白を削除しました。

filter/{msword, excel, powerpoint, rtf}.pl: (HEAD, development-2-1, stable-2-0)

  • サブルーチンのリファレンスを使った内部フィルタの切り替えに変更
  • 不要になった File::Basename の削除
  • getSummaryInfo で summary の処理にバグがあったのを修正(stable-2-0 のみ)

filter/Makefile.am に koffice.pl を追加2008年05月03日 04時53分59秒

HEAD と development-2-1 の filter/Makefile.am に koffice.pl が抜けていたので、追加しました。

filter/ooo.pl を Archive::Zip に対応するパッチ2008年05月03日 04時54分36秒

filter/ooo.pl を Archive::Zip に対応するパッチの改良版を作りました。(development-2-1)

前回のものに加えて、IO::String が利用できる環境ではテンポラリファイルを作成しない処理も加えました。

koffice.pl にも同等の対応が可能です。 msofficexml.pl, xps.pl については、更にzip ファイル内のメンバを検索する機能を追加する必要はありますが、Archive::Zip に対応することは可能だと思います。

動作環境:

  • Perl 5.8 以降
  • Archive::Zip
  • (IO::String)

filter/zip.pl を修正2008年05月09日 03時12分18秒

zip.pl: (HEAD, development-2-1, stable-2-0)

  • タブをスペースに変換
  • タイプミスを含む、些細なバグを修正

Microsoft Office 互換機能パック Service Pack 1 (SP1)2008年05月27日 11時55分24秒

Office 互換機能パックSP1

Microsoft Office 互換機能パック Service Pack 1 (SP1)

http://www.microsoft.com/downloads/details.aspx?FamilyID=9a1822c5-49c6-47bd-8bec-0d68693ca564&DisplayLang=ja

  • 安定性とパフォーマンスの向上
  • セキュリティの強化

Windows XP Service Pack 32008年05月27日 23時41分02秒

Windows XP SP3

Windows XP Service Pack 3 - ISO-9660 CD イメージ ファイル

http://www.microsoft.com/downloads/details.aspx?FamilyID=2fcde6ce-b5fb-4488-8c50-fe22559d164e&DisplayLang=ja

  • XP 最後の サービスパック
  • ここでは ISO-9660 CD イメージを紹介しますが、Windows Update でインストールする方が簡単でしょう。
  • いろいろ不具合もあるようですので、インストールを行うかどうかは慎重に判断しましょう。

Microsoft Virtual PC 2007 SP12008年05月27日 23時58分17秒

Virtual PC 2007 SP1

Microsoft Virtual PC 2007 SP1

Virtual PC 2007 のサービスパック

http://www.microsoft.com/downloads/details.aspx?FamilyID=28c97d22-6eb8-4a09-a7f7-f6c7a1f000b5&DisplayLang=ja

対象:

  • Windows Server 2008
  • Windows Vista SP1
  • Windows XP SP3

Fedra 8 のあててはいけないパッチ2008年05月28日 21時02分20秒

久々に Fedora 8 の namazu.spec を確認したところ、愕然としました。

確認したのは、namazu-2.0.18-3.fc8.src.rpm で、ここにはパッチが3つ含まれています。

1. namazu-newgettext3.patch

2. namazu-fixinutf8.patch

3. namazu-multilib.patch

このうち、1 のパッチは環境変数 LANGUAGE のふるまいに関するもので、作成意図は妥当なのですが、残念ながらパッチにバグがあり、意図通りには動作しません。

2 のパッチに関しては、RedHat9 時代に既に問題があるパッチであることは指摘していましたが、未だに当たっているとは驚きです。 このパッチはあててはいけない問題のあるパッチです。

詳しくは

http://www.namazu.org/ml/namazu-devel-ja/msg04227.html

http://www.namazu.org/ml/namazu-devel-ja/msg03625.html

をご覧下さい。

3 のパッチは、multilib 対応のためのパッチでしょうが、意図不明です。 RPM では prefix が /usr の場合、nmz-config --libs で -L/usr/lib が含まれるが、これを削除しているということなのだとは思います。 なお、-L/usr/lib が含まれると何か不具合がでるというこはないと思うので削除する必要はないのではないかとも思います。(私が認知していないだけで、実害があるのかもしれませんが...。)

しかし、SRPM でインストール先を変更してビルドした時には単純に -L オプションを削除したのでは、問題が生じるのではないかと思います。 そのため -L/usr/lib の場合のみ削除するというのであればまだわかるのですが、それなら、似たようなものとして --cflags で -I/usr/include を削除するように書いているので、単純な削除ではなく、こちらに合わせた修正が良いのではないかと思います。 これについては -L/usr/lib の場合は削除するように今後ソースを修正しようかとは思います。

ということで、(程度の差はあれ) Fedra の Namazu パッケージに含まれる3つのパッチはどれも問題があります。 Fedra は RPM パッケージではなく、ソースからコンパイルしてインストールするか、標準の namazu.spec を使ってコンパイルとインストールを行いましょう。

追記:

3 のパッチですが、configure で libdir のパスが '${exec_prefix}/lib' で固定されているため、64bit の場合、-L/usr/lib では問題があるということのようです。(-L/usr/lib64 なら問題なし?) ただ、それを解決するための方法として -L を削除するのは、安直な気はします。

本質的には configure (の元となる configure.in) に手を加えるべきでしょうね。これは 新しいバージョンの autoconf を使って configure を作り直すだけで良いのかもしれません。

また、64bit 環境の場合は、とりあえず --libdir オプションで直接 /usr/lib64 を指定すれば良いのではないかと思います。

(multilib の知識が不足するので、不確かではありますが...)