35 久しぶりに Emacs 新調の試み (Yamamoto Mitsuharu 版)

(現在工事中)

最近、テキスト・エディターというと、 emacs, Vim, Visual Studio Code を使っている。 我ながら節操がない。

このうち Visual Studio Code は、今の所 Python の .ipynb 専用である。 小さな設定ファイルとか、Makefile のようなものは Vim (/usr/bin/vi) を使うことが多いだろうか。 その他、例えば TEX 文書の作成 (入力・編集) は大体 Emacs で処理している。

以前はメールの読み書きも全部 Emacs でやっていたけれど、 それをしなくなったので、相当使用頻度が落ちている。


えーと、Emacs のバージョンは今何を使っているんだっけ…最近、 表示させていないから…
~/.emacs.d/init.el をのぞく
(setq inhibit-startup-message t)
としているからか。一時的にコメント・アウトして表示させる
GNU Emacs 27.1 (build 1, x86_64-apple-darwin19.6.0, NS appkit-1894.60 Version 10.15.6 (Build 19G73))
 of 2020-08-11
Copyright (C) 2020 Free Software Foundation, Inc.
そうそう、27.何とか だった。 (「Emacs 新しいまとめ (2022年3月版)」 これには 27.2 のことが書いてあるな… 「Emacs-25.3/26.3(Mojave, Catalina, BigSur)/27.2/28.x にインラインパッチをあてて使う(macOS)」)

今だとどの Emacs を使うのかな… 少し前だと Yamamoto Mitsuharu 版に人気があったみたい。

https://www.math.s.chiba-u.ac.jp/~matsu/mac/mac01.html(松田茂樹氏のページ) に Yamamoto 版のインストールの仕方が書いてある。これが分かりやすい。

https://bitbucket.org/mituharu/emacs-mac/src/master/(山本 光晴氏のページ) が本山か。 山本氏は引退されたのかな。数学者なので同業者というのかしら。

世の中少し前まで、これを使っている人が多かったけれど、 これからどうしようかな、となっているみたい。

私も以前使っていたのか (「Emacsの新調 (emacs mac port by Mitsuharu Yamamoto)」)。 10年前のことだね。

まあ、これを使ってみよう。

松田氏のページに書いてある手順のバージョンのところを、 入手可能な新しいものに変えた手順でやってみる。 …パッチは千葉大数学・情報数理学科の ftp サーバーにある。 最近のWWWブラウザーは、ftp の機能なくて、 Mac だと Finder を呼んだりするんだ。 Finder は tar.gz 取って来ると展開したりしちゃうんだよね。 うーぬ…curl は ftp もやってくれるんだね。

という訳で以下のようにやることになった。
私はこうやりました
curl -O https://mirror.twds.com.tw/gnu/emacs/emacs-29.1.tar.gz
curl -O ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-29.1-mac-10.0.tar.gz
curl -O ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-hires-icons-3.0.tar.gz

tar xzf emacs-29.1.tar.gz
tar xzf emacs-29.1-mac-10.0.tar.gz
tar xzf emacs-hires-icons-3.0.tar.gz
cd emacs-29.1
patch -p1 < ../emacs-29.1-mac-10.0/patch-mac
cp -r ../emacs-29.1-mac-10.0/mac .
cp ../emacs-hires-icons-3.0/etc/images/* etc/images
cp ../emacs-29.1-mac-10.0/src/* src
cp ../emacs-29.1-mac-10.0/lisp/term/mac-win.el lisp/term
cp nextstep/Cocoa/Emacs.base/Contents/Resources/Emacs.icns mac/Emacs.app/Contents/Resources/Emacs.icns
./configure --enable-mac-app
make >& make.log
sudo make install
(ちなみに make 自体は100秒もかからない。
make >&make.log  82.42s user 7.50s system 93% cpu 1:36.66 total
隔世の感がある。)

configure の終了時に以下のようなメッセージが表示される。メモメモ。
configure: WARNING: This configuration installs a 'movemail' program
that does not retrieve POP3 email.  By default, Emacs 25 and earlier
installed a 'movemail' program that retrieved POP3 email via only
insecure channels, a practice that is no longer recommended but that
you can continue to support by using './configure --with-pop'.
configure: You might want to install GNU Mailutils
<https://mailutils.org> and use './configure --with-mailutils'.
(まあ、メールのことなので、多分もうどうでも良い。)

大抵の Mac で普通に make できた (古い Intel Mac で、 macOS が1つ古くて、Xcode だけ新しくて、 configure にトラブったのがあったけれど、Claude Code 君に任せて、make できた)。

> このディレクトリは emacs を make するためのディレクトリィです。途中でエラーになりました。make.log に経緯が残っているかも知れません。make 出来ればそうして下さい。

●Emacsのビルドエラーを調査します。まずmake.1ogとディレクトリの状態を確認します。

Read 1 file, listed 1 directory, ran 1 shell command

●問題が特定できました。configureがposix_spawn_file_actions_addchdirをコンパイル時に検出しましたが、実行時のmacOsライブラリにこのシンボルが存在せず、tema
Cs起動時にクラッシュしています。これはEmacs 29.1のmacOsビルドで知られている不具合です。環境を確認します。

....

● ビルドが成功しました。要点は以下の通りです。
原因
Xcode 26.3が提供するmacos 26.2. SDKを使ってconfigureしていたため、posix-spawn_file_actions_addchdirという関数(実際はmacOs
26.0以降でしか実装されていない)を「使用可能」と誤検出していました。実行環境はmacOs 15.7.7なので、ビルド後のtemacs起動時に
dyld[1724]: Symbol not found: _posix_spawn_file_actions_addchdir
でクラッシュし、bootstrap-emacs.pdmp生成(ダンプ処理)で make が失敗していました。
対処
ac_cv_func_posix_spawn_file_actions_addchdir=no と ac_cv_func_posix_spawn_file_actions_addchdir_np=no を指定して再度./configure
--enable-mac-app(元と同じオプション)を実行し、この関数を使わないようにビルドし直しました。
結果
$ /Users/mk/emacs-29.1/src/emacs --version
GNU Emacs 29.1
makeは exit code 0で完了し、src/emacs が生成・起動確認できました。ログは make2.10gに保存してあります(元の失敗ログmake.10g は残しています)。
なお-enable-mac-appのみで--with-ns は指定されていないため、これは✕11/MacPorts構成のビルドで、Emacs.app バンドルは作られません。make install
はまだ実行していません(インストール先を変更する操作のため)。必要であれば指示してください。
Claude 君すごいですね (最近は make でエラーになってすぐに原因が分からないと SOS してる)。 こういうのは結果オーライでいいかな。 こうして、日頃触る可能性のあるすべての Mac で emacs を更新できた (あ、授業用の Mac だけまだか、自宅からいじれないから)。


site-lisp を何とかしないと… とりあえずこれまで使っていたのを使うことにする。
cd /usr/local/share/emacs
sudo mv site-lisp site-lisp.org
sudo ln -s /Applications/Emacs-takaxp/Emacs.app/Contents/Resources/site-lisp .

Image emacs-screenshot

特に何もせず、これまで通り YaTeX が動くので、とりあえずこれで行ってみよう。

ctrl-¥で日本語の On/Off をするのね。なんか懐かしいね。

bitbucket の方を見ると、 emacs-29.4-mac-10.1 というのがあるのか。 それは千葉大の ftp サイトにはないと。 はてさてどうするのか?? 今日はもう寝よう。



桂田 祐史