HomebrewのemacsのFormulaから--with-cocoaが消えてた
--with-cocoa
って全然使われてなかったんでしょうか
bug-gnu-emacsを見てたらこんなバグ報告(↑のリンク)を見つけました。
GNU Emacsの公式websiteに書かれているmacOS用のダウンロード手順としてbrew install emacs --with-cocoa
となっているが、現在はbrew cask install emacs
が正しいので修正すべきという報告です。それで最近websiteは修正されたようです。
homebrew-coreのemacsのFormulaが変わったみたいなのでどう変わったか見てみました。
--with-cocoa消える
もう半年くらい前の話なんですけど、なんと--with-cocoa
オプションが消えてました。
まずHomebrewの方針として、オプションつけてのインストールはソースからビルドされるため、CIテストを経てないインストールなのでインストール時にエラーが出ることあり、ユーザエクスペリエンス的によくないからオプションなくそうぜってことになったらしいです。(詳しくはここ)
emacsのFormulaもその影響で--with-cocoa
オプションが消えました。
以前は--with-cocoa
で--with-ns
か--without-ns
かが決まっていたのですが、この変更で--without-ns
に固定になりました。つまり、現在のhomebrew-coreのemacsのFormulaではemacsのCocoaなGUIアプリをインストールできなくなりました。
brew cask install emacs
すると、emacsformacosx.comで配布されているビルド済みのEmacs.appをダウンロードして、適切なパスに配置してくれます。しかし、これは自分のマシンでビルドした訳ではないため、自分のマシンに最適化されたバイナリではありません。
GUIなEmacsを自分のマシンでビルドしたいかつbrewで管理したいなら、--with-ns
するForlumaをbrew tap
する必要があります。Formulaは自分で作るかemacs-plusを使うのがいいと思います。
終わりに
そもそもHomebrewってだいたいソースからビルドしてるのかと思ってました。Bottleっていうバイナリがアップロードされてたら、そこからダウンロード、展開してるんですね。
そもそもソースコードからコンパイルするのがbrewのいいところなんだと思ってたので、Homebrewの上の人がバイナリ配布形式がいいよねっていう方針だと知ってびっくりしました。
インストール時にエラーが発生しないようなパッケージマネージャを目指すと、各マシンでビルドさせるのではなく、ビルドしたバイナリをサーバが保持してそれをダウンロードさせる方式になっていくものなのでしょうかね。
【追記】
- Emacs Homebrew - by shigemk2
- この記事の2ヶ月以上前に同じことを記事にしてる人がいました。