[English page]
日本語入力システム Canna (『かんな』)
概要
Canna (『かんな』)は、UNIX/Linux系OSで動く、クライアント・サーバー型の日本語入力システムです。かな漢字変換エンジン (cannasersver), ユーザーインターフェースエンジン (libcanna), コンソール用のフロントエンドプロセッサ (canuum) が連携して動作することで、登録単語や学習内容を端末1台ごとでなくLAN全体で共通化ことができます。
Canna で日本語を入力するには、コンソールで canuum を起動するほかに、X11上でXIMサーバ kinput2 を利用したり、 Canna に直接対応したアプリケーションソフト (パッチを当てた Emacs など) を使う方法があります。
ダウンロード
最新リリースはCanna 3.7p5 (2025年08月15日)です。
旧バージョンはGitHub のリリースページにあります。なお、GitHubの開発版は
git clone https://github.com/canna-input/canna
で取れます。ただし、そのままではreleaseの形にならないので、mkrelease.shを(必要に応じて修正の後)走らせてください。
更新情報
- 3.7p5での互換性のない変更点
- 3.7p3までと同様に静的ライブラリを構築するようにした以外、特に非互換点は無いはずです。
- 3.7p4での互換性のない変更点
- Cygwin でDLLのファイル名を標準的なもの (cygcanna-1.dll) に変更しました。
- 誤って静的ライブラリが構築されなくなってしまいました。(3.7p5で修正)
- 3.7p2, 3.7p3での互換性のない変更点
- 3.7p1での互換性のない変更点
- Canna.confの実験的なオプションModernElfLinkに関する変更以外、特に非互換点は無いはずです。
- 3.7での互換性のない変更点
- バイナリ辞書の形式が変わりました。以前の形式の辞書もマウントできますが、新しく作った辞書は古いサーバではマウントできません。また、mkdic -fqで学習情報を作り直す必要があります。
- 共有ライブラリのバージョンが1.2になりました。SunOSなどでは、旧バージョンでコンパイルしたバイナリは動的リンクに失敗することがあります。バイナリ互換は保たれているはずなので、シンボリックリンクで対処して下さい。
- ワイドキャラクタAPIを変更しました。現在のところ、コンパイル時に無効にしない限り、古いAPIも利用できますが、できるだけ新しいAPIを利用してください。新ワイドキャラクタにいくつかのソフトを対応させるパッチを公開しています。
- canuumが補助ライブラリlibsptを利用するようになりました。
- (setq chikuji-continue nil)としておかないと(setq renbun-continue
nil)が効かない問題を修正しました。renbun-continueのデフォルト値はnilでしたが、tであるかのように動作していたため、この修正
に伴いrenbun-continueのデフォルト値をtに改めました。
- デフォルトのディレクトリ構成が変わりました。特にパッケージを作成する場合には注意してください。
- sample/*とcmd/crrdic/*を削除しました。いずれも以前から通常のインストールではコンパイルされていなかった古いプログラムです。
- 3.6p4での互換性のない変更点
- インストールされる初期化ファイルのサンプルが変わりました。特にパッケージを作成する場合には注意して下さい。
- 3.6p2での互換性のない変更点
- 共有ライブラリのバージョンが1.1に統一されました。SunOSなどでは、旧バージョンでコンパイルしたバイナリは動的リンクに失敗することがあります。バイナリ互換は保たれているはずなので、シンボリックリンクで対処して下さい。
- mkbindicは同じ読みの単語同士の順番は変えないようになりました。
これで優先順位の情報を保ったままバイナリ辞書を作れるようになります。
- 3.6p1で修正されたセキュリティ問題
不正なリクエストを送ることで、バッファオーバーフローの他、内部データの漏洩などを引き起こす問題がありました。
- 3.6での互換性のない変更点
- cannaserverはデフォルトではTCP接続は受け付けないようになりました。
TCPでの接続を許可するには、-inetオプションを付けてください。
なお、UNIXドメインでの接続の場合、サーバー名はunix[:番号]となります。
- 3.6で修正されたセキュリティ問題
- クライアントから非常に長いユーザー名、グループ名を送られると、バッファオーバーフローする問題がありました。
開発
Canna は元々 NEC で開発されました。それを有志で引き継いで、当初はSouceForge.jp、次いでGitHubを利用して開発を行っています。
GitHub のプロジェクトページはこちらです.
1990年代に設計されたソフトなので、このプロジェクトは主にメンテナンスと既存バージョンの配布を目的としており、積極的な新機能の開発の予定はありません。パッチやバグ報告などがありましたら、GitHubのIssuesに登録するか、こちらにメールを送ってください。
TODO
- 優先的に行うべきもの
- Imake などの古いビルドシステムへの依存をなくす。
- 移植性のない部分、あまりに古い文法で書かれている部分の手直し。
- 中程度の優先度のもの
- SourceForge 時代に試みていた文法ファイルの修正などの取り込み。
- 郵便番号辞書の更新。
- 優先度小
- JIS X 0213への対応。
- 最低限の認証システムを導入する。
Copyright (c) 2002-2025 Canna Project. All rights reserved.