📝

Emacs 29.4 インストール(AUR)

2024/08/29に公開

Emacs 29.3のときと同じようにソースからビルドしてもよかったけど、せっかくOSを入れ替えたのでAURの作法でやってみました。

まだaurに不慣れで、変なことしてるかもなのでツッコミよろしくです!

完成品

下記のようなのが入ります。

$ emacs --batch --eval '(message  (string-replace "\n" "" (emacs-version)))'
GNU Emacs 29.4 (build 3, x86_64-pc-linux-gnu, GTK+ Version 3.24.43, cairo version 1.18.0) of 2024-08-29

$ emacs --batch --eval '(message system-configuration-features)'
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

環境

Wayland環境です。
SwayだけでDEなしのデスクトップですが、Arch Linuxでもこの方法で行けると思います。

1. aurをとってくる

素晴らしいお手本があります。

このお手本そのままでもNATIVE_COMPなEmacsができるので、基本これに沿って行きます。

paru -S base-devel
cd ~/Downloads
git clone https://aur.archlinux.org/emacs-git.git/ emacs-git-aur
cd emacs-git-aur

2. aurを変更する

このままビルドするとgitの最新ができてしまうので、

  • リリース 29.4を使いたい
  • いつも使っているビルドオプションを使いたい

なのでPKGBUILDファイルを変更して、以下の3点をカスタマイズします。

  • gitのタグをemacs-29.4に切り替え
  • ビルドオプション--without-popを追加
  • ビルドオプション--with-small-ja-dicを追加

変更後のファイルをgistに置きました。

下記のようにPKGBUILDファイルをバックアップした上でダウンロード(上書き)します。

cp PKGBUILD{,.orig}           # バックアップ
wget https://gist.githubusercontent.com/hidsh/153e3a19eacdaaf031fed4d1897b10fc/raw/43890cb4f19042c03266431cbae8e76663022341/PKGBUILD

diff PKGBUILD.orig PKGBUILD   # 差分を確認

3. ビルド、インストール

ビルドしてインストールします。

makepkg -siC

sudo pacman -Syu
sudo pacman -U emacs-git-29.4.166187-1-x86_64.pkg.tar.zst

which emacs            # => /bin/emacs

4. ignore updating this package

sudo vim /etc/pacman.conf

#IgnorePkg   =
IgnorePkg   = emacs-git

おわりに

初めてBUILDPKGをいじりましたが、初見ということもあり手間取りました。

最初は、emacsのソースをgit cloneするときに、29.4のタグだけを取得したくて

source=("emacs-git::git+https://git.savannah.gnu.org/git/emacs.git#emacs-29.4"
  "nemacs")

のようにしたのですが、エラーになりました。
しかたないので、全取得したあとでタグを切り替えるようにしています。

また、元のコメントにもあるのですがCHECK = "YES"にするとやっぱりエラーになります。
なので、ここは変更せずに直接ビルドするしかないようです(メンテナはケアする気がなさそ)。

あと、(これはEndeavorOSの仕様かもしれませんが)インストールするとなぜか/binに入ります。
長いことapt民だったこともあり、/usr/binに入るのに慣れきっていたのでちょっと意外に感じます。
まあ/usr/binよりも/binのほうが短くていいですが、しばらく違和感続くかも。

・・・aurまだよくわからん x_x;

Discussion