Under-Construction

▲Zaurus Top | ↑Up(自作のもの)


courier-imap_2.0.0_arm.ipk

Zaurus 上で動作する IMAP4 サーバ。代表的な IMAP サーバには次のようなものがあるが、速度に定評のある Courier にした。

UW-IMAPhttp://www.washington.edu/imap/
標準的な実装。いろいろなメールボックスに対応している。母艦の Vine-Linux でも使われているが、MH メールボックスで試してみたらとても遅かった。独自形式の mbx 形式だと早いらしい。
Cyrushttp://asg.web.cmu.edu/cyrus/imapd/
Courierhttp://www.courier-mta.org/
公式ページ日本語訳
速度に定評があるが、メールボックスが Maildir しか対応していない。

用意するもの

Courier IMAP 2.0.0
2.0.0 系のソースを配布元(http://www.courier-mta.org/download.php)より。2003/07/23時点では、courier-imap-2.0.0.20030716.tar.bz2 が最新。
db4(Barkray DB version 4)
Zaurus Software Indexのdb4のコーナーより最新版の ipk をダウンロード。

コンパイル

  1. db4 を ipk でインストールする。
  2. courier-imap のソースアーカイブを展開する。
  3. zaurus は shadow password なので、それ以外の auth module は without して configure を走らせる。
    bash-2.05$ ./configure \
    --without-authpam --without-authuserdb --without-authcram \
    --without-authvchkpw --without-authldap --without-authmysql \
    --without-authpgsql --without-authdaemon --without-authcustom \
    --without-authpwd
    
  4. ipk をインストールしただけでは、db4 のヘッダーファイルが無いので、ソースアーカイブの中から、ヘッダーファイルをコピー。
    http://www.sleepycat.com/update/snapshot/db-4.0.14.tar.gz
    ただし、${work} は、courier のオリジナルソースから私が変更したファイル(→courier-imap-diff.tar.gz)が置いてあるディレクトリを指す。以下同様。
    bash-2.05$ ls ${work}/bdbobj/*
    ${work}/bdbobj/bdbobj.h
    ${work}/bdbobj/cxx_common.h
    ${work}/bdbobj/cxx_except.h
    ${work}/bdbobj/db.h
    ${work}/bdbobj/db_cxx.h
    bash-2.05$ cp -i ${work}/bdbobj/* bdbobj/
    cp: overwrite `bdbobj/bdbobj.h'? y
    
  5. qpopper のmake でも引っ掛かったけど、zaurus は crypt をうまいことリンクできない。そのくせ、<crypt.h>は持っている。同様に、http://www.shadowpenguin.org/sc_documents/spsdocument13.htmlからソースを crypt3.c にもらってきて、authlib/checkpassword.c で #include "crypt3.c"。
    bash-2.05$ ls ${work}/authlib/*
    ${work}/authlib/checkpassword.c
    ${work}/authlib/crypt3.c
    bash-2.05$ cp -i ${work}/authlib/* authlib/
    cp: overwrite `authlib/checkpassword.c'? y
    
  6. ssl を使うつもりが無いのに、どーしても ssl 関係を作りたがる。configure でなんとか外そうと思ったけどできなかったので、Makefile を修正して tls 関係を除外。
    bash-2.05$ cp -i ${work}/tcpd/Makefile tcpd/
    cp: overwrite `tcpd/Makefile'? y
    
  7. configure で外したはずの authdaemon がらみのメッセージを、強引にインストールしようとしてエラーになるので修正。
       bash-2.05$ cp -i ${work}/Makefile .
       cp: overwrite `./Makefile'? y
    
  8. やっと、make & make install
    make install で、再度コンパイルに走るが、なんとかならんかな。
    bash-2.05$ make | tee make.log.txt
    bash-2.05$ su
    bash-2.05# make install | tee make.install.log.txt
    
  9. 全て /usr/lib/courier-imap/ 以下にインストールされる。行儀がよいぞ。
    SSL 関係の設定を削除する。
    bash-2.05# cd /usr/lib/courier-imap/
    bash-2.05# ls
    bin      etc      libexec  man      sbin     share    var
    bash-2.05# cd etc/
    bash-2.05# ls
    imapd-ssl.dist        pop3d-ssl.dist        quotawarnmsg.example
    imapd.cnf             pop3d.cnf
    imapd.dist            pop3d.dist
    bash-2.05# rm imapd-ssl.dist imapd.cnf pop3d-ssl.dist pop3d.cnf 
    bash-2.05# cp imapd.dist imapd
    bash-2.05# cp pop3d.dist pop3d
    
    bash-2.05# cd ../libexec/
    bash-2.05# rm imapd-ssl.rc pop3d-ssl.rc 
    bash-2.05# cp -i ${work}/usr_lib_courier-imap_etc/imapd.rc .
    cp: overwrite `./imapd.rc'? y
    
  10. man/ も削除する。
    bash-2.05# rm -rf man/
    bash-2.05# ls -R
    
    .:
    bin      etc      libexec  sbin     share    var
    
    ./bin:
    deliverquota  imapd         maildirmake   pop3d
    
    ./etc:
    imapd                 pop3d                 quotawarnmsg.example
    imapd.dist            pop3d.dist
    
    ./libexec:
    authlib        couriertcpd    makedatprog
    courierlogger  imapd.rc       pop3d.rc
    
    ./libexec/authlib:
    authshadow
    
    ./sbin:
    imaplogin      mkimapdcert    pop3login      userdb         vchkpw2userdb
    makeuserdb     mkpop3dcert    pw2userdb      userdbpw
    
    ./share:
    makeuserdb     mkpop3dcert    userdb
    mkimapdcert    pw2userdb      vchkpw2userdb
    
    ./var:
    
  11. スタート
    bash-2.05# cd libexec/
    bash-2.05# ./imapd.rc start
    
  12. テスト
    0001 とかで始まる行が2つあるが、一行目が入力、* で始まる行と 000? の2行目がサーバからの応答。
    bash-2.05$ telnet localhost 143
    * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE] Courier-IMAP ready. Copyright 1998-2003 Double Precision, Inc.  See COPYING for distribution information.
    0001 LOGIN zaurus XXXXXXXX  {クリアテキストでパスワードを入力}
    0001 OK LOGIN Ok.
    0002 LIST "" "INBOX"
    * LIST (\Unmarked \HasNoChildren) "." "INBOX"
    0002 OK LIST completed
    0003 LIST "" *
    * LIST (\Unmarked \HasNoChildren) "." "INBOX"
    0003 OK LIST completed
    0004 LOGOUT
    * BYE Courier-IMAP server shutting down
    0004 OK LOGOUT completed
    Connection closed by foreign host.
    
  13. パッケージング
    最低限のインストール量で済むように、courier-imapd と courier-pop3d の 2つに分ける。
    courier-imapd_2.0.0_arm.ipk
      + CONTROL/
      |  + control
      + usr/
         + lib/
            + courier-imap/
               + bin/
    	      + deliverquota
    	      + imapd
    	   + etc/
    	      + imapd
    	      + quotawarnmsg.example
    	   + libexec/
    	      + courierlogger
    	      + couriertcpd
    	      + imapd.rc
    	      + makedatprog
    	      + authlib/
    	         + authshadow
    	   + sbin/
    	      + imaplogin
    	   + var/
    
    courier-pop3d_2.0.0_arm.ipk
      + CONTROL/
      |  + control
      + usr/
         + lib/
            + courier-imap/
               + bin/
    	      + deliverquota
    	      + pop3d
    	   + etc/
    	      + pop3d
    	      + quotawarnmsg.example
    	   + libexec/
    	      + courierlogger
    	      + couriertcpd
    	      + pop3d.rc
    	      + makedatprog
    	      + authlib/
    	         + authshadow
    	   + sbin/
    	      + poplogin
    	   + var/
    

ダウンロード

post install


近藤靖浩