MacPortsでインラインパッチをあてたemacs-appをインストールしてみた

 iTunes Store(Japan)

Warning: number_format() expects parameter 1 to be double, object given in /home/iex3/www/www/wp-content/plugins/AmazonLink/AmazonLink.php on line 432
この記事の所要時間: 941

MacPortsでインラインパッチをあてたemacs-app 23.2 (aqua) 、所謂Cocoa Emacs23をインストールしてみました。

環境

  • MacOSX 10.6.7
  • Xcode 4.0.1
  • emacs-app 23.2

手順

  1. インラインパッチ(inline_patch-23.2-beta3)を適当な場所にダウンロードし、展開する。
  2. % cd ~/tmp/
    % curl -o http://jaist.dl.sourceforge.jp/macemacsjp/47986/inline_patch-23.2-beta3.tar.gz
    % tar zxvf inline_patch-23.2-beta3.tar.gz
    
  3. 参考サイトの「Cocoa Emacs が落ちる」によるとインラインパッチに処理抜けがあり、修正しないとダイアログウィンドウが表示されると落ちるそうです。
    ということで、インラインパッチを適用したコードに上記の修正をあてるパッチを作ったのでそれをもってきて展開する。
  4. --- src/nsterm.m.orig   2011-03-26 17:35:56.000000000 +0900
    +++ src/nsterm.m        2011-03-26 17:34:02.000000000 +0900
    @@ -3920,6 +3920,8 @@
     
       if (mac_store_change_input_method_event())
         {
    +      if (!emacs_event)
    +        return;
           emacs_event->kind = NS_NONKEY_EVENT;
           emacs_event->code = KEY_MAC_CHANGE_INPUT_METHOD;
           EV_TRAILER ((id)nil);
    

    nsterm.m.20110326.patch.tar.gz

    % curl -o http://www.iex3.info/wp-content/uploads/2011/03/nsterm.m.20110326.patch.tar.gz
    % tar zxvf nsterm.m.20110326.patch.tar.gz
    
  5. 下準備もできたのでMacPortsでソースを取得します。
  6. % sudo port -f patch emacs-app
    Password:
    --->  Fetching emacs-app
    --->  Attempting to fetch emacs-23.2.tar.bz2 from ftp://ftp.dti.ad.jp/pub/GNU/emacs
    --->  Verifying checksum(s) for emacs-app
    --->  Extracting emacs-app
    --->  Applying patches to emacs-app
    
  7. ソースの位置まで移動します。
  8. % cd port dir emacs-app/work/emacs-23.2
    
  9. インラインパッチを当てます。
  10. % sudo patch -p 0 < ~/tmp/inline_patch-23.2-beta3/emacs-inline.patch
    patching file lisp/term/ns-win.el
    patching file src/Makefile.in
    patching file src/keyboard.c
    patching file src/macim.m
    patching file src/nsfns.m
    patching file src/nsterm.h
    patching file src/nsterm.m
    patching file src/s/darwin.h
    Hunk #1 succeeded at 163 (offset 18 lines).
    

    インラインパッチの修正パッチを当てます。

    % sudo patch -p 0 < ~/tmp/nsterm.m.20110326.patch
    patching file src/nsterm.m
    

    configureをします。

    % sudo ./configure --with-us --without-x
    (省略)
    You must run "make install" in order to test the built application.
    The installed application will go to nextstep/Emacs.app and can be
    run or moved from there.
    The application will be fully self-contained.
    
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating lib-src/Makefile.c
    config.status: creating oldXMenu/Makefile
    config.status: creating doc/emacs/Makefile
    config.status: creating doc/misc/Makefile
    config.status: creating doc/lispintro/Makefile
    config.status: creating doc/lispref/Makefile
    config.status: creating src/Makefile.c
    config.status: creating lwlib/Makefile
    config.status: creating lisp/Makefile
    config.status: creating leim/Makefile
    config.status: creating src/config.h
    config.status: executing default commands
    creating src/epaths.h
    creating lib-src/Makefile
    creating src/Makefile
    
  11. 最後に、MacPortsからビルドしてインストールします。
  12. % sudo port -f install emacs-app
    --->  Computing dependencies for emacs-app
    --->  Dependencies to be installed: ncurses ncursesw
    --->  Fetching ncursesw
    --->  Verifying checksum(s) for ncursesw
    --->  Extracting ncursesw
    --->  Configuring ncursesw
    --->  Building ncursesw
    --->  Staging ncursesw into destroot
    --->  Installing ncursesw @5.8_0
    --->  Activating ncursesw @5.8_0
    --->  Cleaning ncursesw
    --->  Fetching ncurses
    --->  Attempting to fetch ncurses-5.8.tar.gz from ftp://ftp.dti.ad.jp/pub/GNU/ncurses
    --->  Attempting to fetch ncurses-5.8.tar.gz from http://mirror.facebook.net/gnu/gnu/ncurses
    --->  Attempting to fetch ncurses-5.8.tar.gz from http://mirrors.kernel.org/gnu/ncurses
    --->  Verifying checksum(s) for ncurses
    --->  Extracting ncurses
    --->  Applying patches to ncurses
    --->  Configuring ncurses
    --->  Building ncurses
    --->  Staging ncurses into destroot
    --->  Installing ncurses @5.8_1
    --->  Activating ncurses @5.8_1
    --->  Cleaning ncurses
    --->  Configuring emacs-app
    --->  Building emacs-app
    --->  Staging emacs-app into destroot
    --->  Installing emacs-app @23.2_3
    --->  Activating emacs-app @23.2_3
    --->  Cleaning emacs-app
    

確認

/Applications/MacPorts/emacs.app が出来上がっているかと思うので、それを起動。

インライン設定を有効にする。設定ファイル(~/.emacs.d/init.el)に以下の1文を記述する。

(setq  default-input-method "MacOSX")

記述後、emacsの再起動もしくは M-x eval-current-buffer を実行します。
通常時はEmacsの画面下のモードライン左端は下のようになにも表示されてませんが、

通常時のモードライン左端

通常時の
モードライン左端


日本語入力にすると、ことえりを利用している場合 『あ』
ことえり利用時の表示

ことえり
利用時の表示


Google日本語入力を利用している場合 『ぐ』
Google日本語入力利用時の表示

Google日本語入力
利用時の表示


が表示されればおkだと思います。

まとめ

MacPortsからインラインパッチをあてたCocoa Emacs23を入れました。
以上ですw

参考サイト

  1. MacPorts で インラインパッチをあてた emacs-app @23.2 (aqua) をインストールしてみた。いわゆる Cocoa Emacs23。 - 牌語備忘録
  2. Cocoa Emacs が落ちる