Sylpheed/Win32

Sylpheed の Win32 対応に関する情報です。

Win32 版について

現在開発版にて Win32 への対応を進めています。現在の Win32 版はオリジナルのツリーから分離したものではなく、単一のコードベースから Win32 版と Unix 版のバイナリを生成できます。

設定ファイルやメッセージのデータは Unix 版と完全に互換性があるので(ファイルのパス情報等は除く)、相互にデータを移行することができます。

また、以前の GTK1 ベースの sylpheed-win32 とは異なり、 GTK2 ベースとなった現在の Win32 版は安定性、実行速度、 Windows 環境との親和性などが大きく向上しています。現時点(2.3.1)でほとんどの機能については Unix 版とほぼ同等の完成度に達しています。ただし、Win32版のGTK+に起因する問題は一部存在します。

最終的に Win32 版は Unix 版と同等の機能が実装される予定ですが、現在は一部の機能(アクション機能など)が未実装となっています。

コンパイル済みバイナリ

以下の場所にインストーラ版とzipアーカイブ版のバイナリを置いています。GTK+など必要なファイルはすべて同梱されているので、インストール・展開してそのまま実行できます。

実行前に必ずREADME-win32-ja.txtを読んでください。

http://sylpheed.sraoss.jp/ja/download.html#win32

http://sylpheed.sraoss.jp/sylpheed/win32/

注意点

Sylpheed 2.2.9以下で起動時にクラッシュしてしまう場合は、システムのフォント(メニュー等)をMS UIゴシックやTahoma等の標準のものに変更してみてください。また、FreeCap?などのSOCKSプロキシ対応ラッパー経由で動作させると不安定になることがあります。(2.4.0rcで解決しました)

Sylpheedは1メール1ファイルのMH形式を使用しています。そのため、ファイルシステムがFAT32の場合はクラスタギャップが大きくなり、無駄が大きくなるため推奨しません。NTFSを推奨します。

初期バージョンでは、設定ファイルが %HOME% または %USERPROFILE% 以下にありましたが、現在は %APPDATA% 以下になっています。

通常はファイルの位置に変更はありませんが、 %HOME% を設定していた場合は位置が変わる可能性があります。

新しいバージョンにした際に初期設定を求められる場合はSylpheedを一旦終了し、 %HOME%\Application Data\Sylpheed 以下にあるファイル全てを %APPDATA%\Sylpheed 以下に全てコピーしてください。

また、現在のバージョンではコマンドラインオプション --configdir "ディレクトリ名"、あるいは sylpheed.exe と同じ場所にある sylpheed.ini ファイルの configdir=ディレクトリ名 で任意のディレクトリを設定ファイルの場所に指定できます。

迷惑メールフィルタのインストール

Sylpheed/Win32 では、 bsfilter と連携することで迷惑メールのフィルタリングを行うことができます。 bsfilter は公式ページまたは以下の場所からダウンロードできます。

注1: bsfilter-1.0.16 に同梱の bsfilterw.exe は動作に問題があるため、 bsfilter-1.0.17.rc4 以降を使用してください。
注2: bsfilter-1.0.17.rc1 は一部のメールで無限ループに陥る問題があります。 1.0.17.rc4 ではこの問題は修正されています。

インストール

インストールには以下の2つの方法があります。

  • sylpheed.exe と同じ場所に bsfilterw.exe を置く
  • パスの通った場所に bsfilterw.exe を置く。同じ場所に Sylpheed の iconv.dll をコピーする。
    • 例: 環境変数 PATH に C:\bin を追加し、 C:\bin\bsfilterw.exe に実行ファイル、 C:\bin\iconv.dll に DLL を置く

注: bsfilterw.exe の代わりに bsfilter.exe を使用すると、フィルタを行うたびにコンソールウィンドウが出てしまいます。

設定

ファイルの配置が完了したら、全般の設定→迷惑メールタブを開き、「迷惑メール対策を有効にする」にチェックを入れます。

「(プリセットを選択)」プルダウンメニューから「bsfilter」を選択すると、自動的に学習コマンドが設定されます。

「迷惑メールフォルダ」に迷惑メールの振り分け先フォルダを指定します。フォルダはあらかじめ作成しておいてください。

「受信時に迷惑メールと判定されたメッセージを振り分ける」にチェックを入れると、受信時に自動的に振り分けが行われます。

設定が完了したら、迷惑メールと迷惑メールではないメールをそれぞれ学習させます(「メッセージ→迷惑メールに指定」「メッセージ→迷惑メールではない」)。それぞれ50〜100通程度が目安です。両方学習させていないと、振り分けは正しく行われません。

もし誤って通常のメールが迷惑メールと判定されてしまった場合は、そのメールを「迷惑メールではない」と学習させてください。

ビルド方法(GTK+ 2.10.x)

1. MinGW と MSYS のインストール

Sylpheed の Win32 版のビルドには、sylpheed.sraoss.jp で配布している MinGW のパッケージを推奨します。 以下の場所にあるファイルをすべてダウンロードし、同じディレクトリに配置します。

http://sylpheed.sraoss.jp/sylpheed/win32/MinGW/

MinGW-5.0.3.exe を実行します。インストール対象は "candidate" を選択し、 runtime, w32api, binutils, core, gpp, make をインストールしてください。

MinGW 公式ページからダウンロードする場合は、 以下のページから、 MinGW と MSYS の最新版をインストールします。 (注: 最新版の MinGW ではうまくビルドできない場合があります)

http://www.mingw.org/download.shtml

以下のものを順にインストールします(バージョン番号は最新のものに読み替えてください)。

以下のページも参考にしてください。

2. GTK+ 開発環境のインストール

以下のページから、 gtk-dev-2.10.11-win32-1.exe をインストールします。

http://sourceforge.net/projects/gladewin32/

http://sourceforge.net/project/showfiles.php?group_id=98754&package_id=111411

gtk+-win32-devel → 2.10.11 → gtk-dev-2.10.11-win32-1.exe

3. ライブラリの更新

GTK+の公式サイトから以下のGTK+ 2.10.14のランタイムと開発用ファイルをダウンロードし、上記でインストールしたGTK+のフォルダ(デフォルトではC:\GTK)に上書きします。

http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.10/gtk+-2.10.14.zip

http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.10/gtk+-dev-2.10.14.zip

4. MSYS の設定の修正

インストール直後の状態では configure が GTK+ の検出に失敗するため、設定 を一部修正する必要があります。

  1. MSYS のコンソールウィンドウを立ち上げます。
  2. mkdir /target で /target (C:\MSYS\1.0\target) を作成します。
  3. /etc/fstab (C:\MSYS\1.0\etc\fstab) を vi その他で編集します。
    c:/MinGW /mingw
    c:/GTK /target (←この行を追加)
  4. MSYS を終了して立ち上げ直します。

また、GTK+等をビルドする場合はMSYSのバグに引っかかってしまうため、以下の対策が必要になります。

/target/bin/pkg-config.sh というファイル名で以下のシェルスクリプトを作成。

#!/bin/sh
if pkg-config "$@" > /dev/null 2>&1 ; then
  res=true
else
  res=false
fi
pkg-config "$@" | tr -d \\r && $res

~/.profile を以下の内容で作成する。

source .bashrc

export PKG_CONFIG="/target/bin/pkg-config.sh"

5. その他のライブラリ

OpenSSL に対応させたい場合は、以下のページから最新版のOpenSSLのバイナリをダウンロードしてインストールします。

http://www.slproweb.com/products/Win32OpenSSL.html

OpenSSL をインストールしたディレクトリ(C:\OpenSSL)から、以下のディレクトリにあるファイルをコピーします。

  • C:\OpenSSL\lib\MinGW 以下にあるファイルをすべて C:\MinGW\lib にコピーします。
  • C:\OpenSSL\include 以下にある openssl ディレクトリを C:\MinGW\include にコピーします。

C:\MinGW\lib 以下の ssleay32.a と ssleay32.def をそれぞれコピーして libssl32.a と libssl32.def にリネームします。

これで configure が OpenSSL を検出できるようになります。

ちなみに DLL は %SystemRoot?%\system32 以下にインストールされています。

注: 上記で配布されている0.9.8eはMSVCR71.DLLにリンクするようになったため、問題が生じます。以下にMinGWでのビルド方法を記述します。

1. Linux 等で tarball 内のリンクをデリファレンスして固めなおす

tar zxvf openssl-0.9.8l.tar.gz
tar --dereference -zcvf openssl-0.9.8l-deref.tar.gz openssl-0.9.8l

2. 上記のファイルを Windows に持ってきて展開する

tar zxvf openssl-0.9.8l-deref.tar.gz

3. スクリプトを修正する

そのままでは一部のヘッダファイルがコピーされないため、 util/mklink.pl を修正する

#$symlink_exists=eval {symlink("",""); 1};
$symlink_exists=0;

Configure の以下の行を修正する

# create the ms/version32.rc file if needed
#if ($IsMK1MF && ($target !~ /^netware/)) {
if ($target !~ /^netware/) {

必要であれば Configure の以下の行のコンパイルオプションを修正する(そのままでも可)

# MinGW
"mingw", "gcc:-mno-cygwin -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall \
-D_WIN32_WINNT=0x333:::MINGW32:-lwsock32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts} \
EXPORT_VAR_AS_FN:${x86_coff_asm}:win32:cygwin-shared:-D_WINDLL -DOPENSSL_USE_APPLINK:-mno-cygwin -shared:.dll.a",

4. make

perl util/mkdef.pl 32 libeay > ms/libeay32.def
perl util/mkdef.pl 32 ssleay > ms/ssleay32.def
./Configure mingw
 
make

windres ms/version32.rc -o version32.o

dllwrap --dllname libeay32.dll --output-lib libeay32.a --def ms/libeay32.def libcrypto.a version32.o -lwsock32 -lgdi32
dllwrap --dllname ssleay32.dll --output-lib libssl32.a --def ms/ssleay32.def libssl.a libeay32.a version32.o

5. ファイルのコピー

完成したファイルを適切な場所へコピーします。

cp *.dll apps/openssl.exe /usr/local/bin
cp libeay32.a libssl32.a ms/libeay32.def ms/ssleay32.def /usr/local/lib
cp -a include/openssl /usr/local/include

6. コンパイル

MSYS のコンソールを立ち上げ、 sylpheed-2.x.y.tar.bz2 を展開し、コンパイ ルします。

$ tar jxvf /path/to/sylpheed-2.x.y.tar.bz2
$ cd sylpheed-2.x.y
$ ./configure
$ make
$ make install

また、同梱の makewin32.sh を使用するとバイナリ配布と同じコンパイルオプションを使用したバイナリを生成できます。バイナリは ~/dist/ 以下にインストールされるので、適宜コピーしてください。

$ ./makewin32.sh

7. 実行

できた sylpheed.exe を Sylpheed のバイナリパッケージを展開したフォルダに上書きし、 Explorer 等から実行します。

LibSylph? 1.0をMinGWでビルドする方法

./configure && make では最後のリンクで libsylph.def がないといわれて失敗してしまうので、以下のようにして libsylph.def を生成する。

$ ./configure (options...)
$ make
(最後のリンクでエラー)
$ cd libsylph
$ dlltool -z libsylph.def --export-all-symbols .libs/*.o
$ cd ..
$ make

その他 DLL 関連 Tips

def ファイルから DLL インポートライブラリを作成する方法

$ dlltool -d library.def -l library.dll.a

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Wed, 11 Apr 2012 11:41:22 JST (743d)