試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Debian/UbuntuのMail NotificationでSSL/TLSが使えない件についてとその対処(2010年11月現在)

UbuntuMail Notification(関連記事)をインストールしたのだが、POP3などのSSL/TLSによる接続の項目が無効になっていて選択ができなくなっていた。
(2011/11/23)Ubuntu 11.10からはSSL/TLSは有効になっている。

  1. 無効になっている理由
  2. GnuTLSを用いた代替の登場と周囲の動き
  3. SSL/TLSの機能が使えない問題への2010年11月現在の対処

無効になっている理由

調べてみると

  • Mail NotificationSSL/TLS通信にはOpenSSLライブラリが用いられている
  • Mail NotificationはGPLv3のライセンスを用いているが、OpenSSLライブラリはそれよりも制限の多いライセンスであり、ライセンスに互換性はないとされる
  • Ubuntuパッケージの上流であるDebianのパッケージでは(Debianにパッケージが採用されるために)SSLサポートを無効にする必要があった

といういきさつがあり、かなり前(2004年)の段階からこの問題はあったようだが、これはDebianではバグとはされず、「SSL/TLSサポート有効」に修正される予定もない(won't fix/修正意向なし)とされた。

GnuTLSを用いた代替の登場と周囲の動き

SSL/TLS通信の機能を提供する自由なソフトウェアとしての代替ライブラリにGnuTLSがあるのだが、作者はGnuTLSへの切り替えには消極的で、置き換えるには至っていない。
launchpad.netのバグ報告ページでは以下のような動きがこれまでにあった。この中で作者もコメントを多く書き込んでいる。

  • GnuTLSにはOpenSSLとAPI互換なライブラリ(gnutls-openssl)があり、試した人がいたのだが、幾つかの定義が不足しており使えなかった
  • AZ氏がGnuTLSを用いたバージョンの作成に着手
  • 作者が登場し、AZ氏による修正バージョンは使わないよう呼びかける(が、本家版でのGnuTLS対応のめどはない)
  • 作者は自分の作ったプログラムと同一のアプリケーション名(Mail Notification)で一部の機能を別の人の実装に置き換えられた際に問題(ぜい弱性など)が起きたときに自分の評判が悪くなることに対して神経質になっている?
  • AZ氏が(作者の意向を尊重して)別名でGnuTLSを用いた成果物「secure-mail-notification」を公開
  • 一方で、Ubuntu向けにSSL/TLS有効版をPPAリポジトリ(ppa:mail-notification-ssl/ppa)へアップロードする人が登場

残念ながら、2010年11月の時点ではAZ氏によるGnuTLS版はまだDebianUbuntuの公式のパッケージとしては利用できないが、GnuTLSを用いたバージョンが出てきたというのは大きい。

SSL/TLSの機能が使えない問題への2010年11月現在の対処

Ubuntuを用いている場合はSSL/TLS有効版をパッケージ化している人がいるので「ppa:mail-notification-ssl/ppa」を追加(PPAリポジトリの登録作業は「milkjfフォントとut(内海氏)版AnthyのUbuntu向けパッケージを作成(2010/11/20現在)」の要領を参照)してインストールする。Ubuntu 10.10まではパッケージがあるのを確認している。
自分でパッケージを修正してビルドしたい場合は

$ sudo apt-get build-dep mail-notification

でビルドに必要な(OpenSSL以外の)パッケージを入れた上で更にOpenSSLの開発パッケージ「libssl-dev」とdebuildの「devscripts」をパッケージマネージャやapt-getで入れておき、

$ apt-get source mail-notification

でソースを入手/展開して、mail-notification-[バージョン]/debian/rules

./jb configure ssl=no sysconfdir=[以下略]

の行を

./jb configure ssl=yes sysconfdir=[以下略]

としてからmail-notification-[バージョン]ディレクトリ内で署名なしパッケージのビルドを実行し

[mail-notification-[バージョン]]$ debuild -us -uc

最後に本体の.debパッケージをインストールする。mail-notification-evolutionのパッケージも作られるが、これは不要。

[mail-notification-[バージョン]]$ sudo dpkg -i ../mail-notification_*.deb

PPA版を用いた場合も自分で修正・ビルドしたものを用いた場合も、インストールした後はログアウト/再ログインするか

mail-notification -q

で一度終了した後に起動し直すかして変更を反映する。
(2010/11/27)ソースパッケージを修正してビルドする場合、mail-notification-[バージョン]/debian/changelogの1行目について

mail-notification (5.4.dfsg.1-2.2) unstable; urgency=low

のようになっているのを

mail-notification (5.4.dfsg.1-2.2+ssl1) maverick; urgency=low

のように「+[文字列][パッケージリビジョン]」などの形式でバージョンを元のものより高くしておかないとディストリのパッケージでアップグレードの際に上書きされてしまうようだ。上のようにバージョン文字列を記述した場合、インストールする.debファイルのファイル名はmail-notification_[バージョン]+ssl1_[アーキテクチャ名].debのようになる。
ただ、変更履歴の本来の形としては先頭に

mail-notification (5.4.dfsg.1-2.2+ssl1) maverick; urgency=low

  * Enable SSL support.

 -- My Name <myname@example.com>  Sat, 27 Nov 2010 12:34:56 +0900

のような記述を追加するほうが好ましいと思われる(個人的に使うだけなら必要はない)。
(2011/5/15)[ホームディレクトリ]/.devscriptsに「DEBUILD_DPKG_BUILDPACKAGE_OPTS="-j[2以上の整数]"」が書かれているとビルドに失敗することがあるので、記述している場合は一時的に「-j1」になるようにする。

使用したバージョン:

  • Mail Notification 5.4