つうさにメモブログ

つうさにがメモをブログとして書いていくところ

HomebrewのemacsのFormulaから--with-cocoaが消えてた

--with-cocoaって全然使われてなかったんでしょうか

debbugs.gnu.org

bug-gnu-emacsを見てたらこんなバグ報告(↑のリンク)を見つけました。

GNU Emacsの公式websiteに書かれているmacOS用のダウンロード手順としてbrew install emacs --with-cocoaとなっているが、現在はbrew cask install emacsが正しいので修正すべきという報告です。それで最近websiteは修正されたようです。

homebrew-coreのemacsのFormulaが変わったみたいなのでどう変わったか見てみました。

--with-cocoa消える

github.com

もう半年くらい前の話なんですけど、なんと--with-cocoaオプションが消えてました。

まずHomebrewの方針として、オプションつけてのインストールはソースからビルドされるため、CIテストを経てないインストールなのでインストール時にエラーが出ることあり、ユーザエクスペリエンス的によくないからオプションなくそうぜってことになったらしいです。(詳しくはここ

emacsのFormulaもその影響で--with-cocoaオプションが消えました。

以前は--with-cocoa--with-ns--without-nsかが決まっていたのですが、この変更で--without-nsに固定になりました。つまり、現在のhomebrew-coreのemacsのFormulaではemacsCocoaGUIアプリをインストールできなくなりました。

brew cask install emacsすると、emacsformacosx.comで配布されているビルド済みのEmacs.appをダウンロードして、適切なパスに配置してくれます。しかし、これは自分のマシンでビルドした訳ではないため、自分のマシンに最適化されたバイナリではありません。

GUIEmacsを自分のマシンでビルドしたいかつbrewで管理したいなら、--with-nsするForlumaをbrew tapする必要があります。Formulaは自分で作るかemacs-plusを使うのがいいと思います。

終わりに

そもそもHomebrewってだいたいソースからビルドしてるのかと思ってました。Bottleっていうバイナリがアップロードされてたら、そこからダウンロード、展開してるんですね。

そもそもソースコードからコンパイルするのがbrewのいいところなんだと思ってたので、Homebrewの上の人がバイナリ配布形式がいいよねっていう方針だと知ってびっくりしました。

インストール時にエラーが発生しないようなパッケージマネージャを目指すと、各マシンでビルドさせるのではなく、ビルドしたバイナリをサーバが保持してそれをダウンロードさせる方式になっていくものなのでしょうかね。

【追記】