Redmine で色々とハマった件

Posted by okkez Wed, 23 Apr 2008 11:49:00 GMT

環境は以下のとおり

  • CentOS5.1
  • Subversion 1.4.2
  • Apache2.2.4
  • Ruby1.8.5
  • RubyGems 1.1.1

うろ覚えだけどこんな感じ。

リポジトリブラウザが見えない

これは簡単。

$ sudo /etc/init.d/httpd start

という風に実行すると環境変数$HOMEを引き継ぐという sudo の罠にハマっただけ。 CentOS の場合は$HOMEは基本的にそのユーザしかアクセスできないので $HOME/.subversion 以下に ある情報にアクセスしようとしてエラーになっていた。

$ sudo -H /etc/init.d/httpd start

でOK

リポジトリブラウザでファイル名やディレクトリ名が日本語である場合の不具合

ファイル名やディレクトリ名に日本語が使用されている場合に、正確に内容が表示されないことがあった。 原因は、環境変数 LANG がセットされていないことであった。

HTTP_LANG=ja_JP.UTF-8

を /etc/sysconfig/httpd にセットすればOK

チケット一覧のエクスポートで文字化け

丸付き数字や機種依存文字を使用していると文字化けするので RAILS_ROOT/lang/ja.yml を以下のように修正する。

Index: lang/ja.yml =================================================================== — lang/ja.yml (リビジョン 1322) +++ lang/ja.yml (作業コピー) @@ -49,8 +49,8 @@ general_text_yes: ‘はい’ general_lang_name: ‘Japanese (日本語)’ general_csv_separator: ‘,’ -general_csv_encoding: SJIS -general_pdf_encoding: UTF-8 +general_csv_encoding: CP932 +general_pdf_encoding: CP932 general_day_names: 月曜日,火曜日,水曜日,木曜日,金曜日,土曜日,日曜日 general_first_day_of_week: ‘7’

Windows クライアントが多い場合はこれでほぼ文字化けが無くなる。UTF-8環境で使う人ばかりなのであれば 両方共 UTF-8 にしてもいいかもしれない。多分、PDFのエクスポートがダメっぽいけど。

ついでなので、書いておくと上記修正で文字化けは無くなるけど、セルの最後の一文字が消滅する場合がある。 これは、 Redmine が悪いのではなくておそらく rfpdf がおかしいのだと思う。

# znz さんのパッチをあてても直らなかった。

これについては、現在調査中。

Trac からの移行が失敗する

Ruby1.8系の String#[] は文字単位ではなくてバイト単位なので RDBMS の文字の数え方とずれる。 ActiveSupport がなんとかしてくれそうな気がしたけど自分で適当に修正した。

class String alias [] original_indexer def [](start_pos, end_pos) self.split(//)[start_pos, end_pos].join end end

こんな感じで。String#[] は色々な呼び出し方ができるのでこんなパッチはイケてないのでよいこは真似してはいけませんよ。

本来なら以下のようなメソッドを定義してタスク中で String#[] を呼んでいる部分を修正するのが良いはず。

class String def mb_substr(start_pos, end_pos) self.aplit(//)[start_pos, end_pos].join end end

一応、本家にはチケットあげたのでそのうち直るはず。

Posted in | コメントはありません | タグ | atom

Trackbacks

Use the following link to trackback from your own site:
http://typo.okkez.net/trackbacks?article_id=redmine_defetcts&day=23&month=04&year=2008

Comments

Leave a response

Leave a comment