Open2

ubuntu22.04でxwidgetsつきでemacs30.1をビルドする

nonamecatnonamecat

概要

ubuntu22.04に普通にビルドしようとすると、aptで通常入るlibwebkit2gtk-4.1-0のバージョン(2.46.6-0ubuntu0.22.04.1)との兼ね合いで
webkit2gtk-4.1 >= 2.12 webkit2gtk-4.1 < 2.41.92
のチェックに引っかかり、--with-xwidgets オプション付きでのビルドができない
https://emacs.stackexchange.com/questions/83176/building-emacs-with-xwidgets-on-ubuntu-24-04

ビルド時に2.41.92以下という縛りを無くせばビルドできるようになった。実際ビルドしてみて、xwidgetsが使えることを確認した。ただし、明らかに正式なやり方ではないので、なにか問題を起こす可能性はある。

手順

依存パッケージのインストール

sudo apt update
sudo apt install build-essential autoconf texinfo libgtk-3-dev libwebkit2gtk-4.0-dev libjansson-dev libgccjit0 libgccjit-11-dev libgnutls28-dev libtiff-dev libgif-dev libjpeg-dev libpng-dev libxpm-dev libncurses-dev libxml2-dev

Emacs 30.1 ソースコードの取得

wget https://ftp.gnu.org/gnu/emacs/emacs-30.1.tar.xz
tar -xf emacs-30.1.tar.xz
cd emacs-30.1

ビルド用スクリプトの生成

configure.ac の 4461行目を
WEBKIT_BROKEN=2.50.92
のように、ダミーの大きい数字に置き換える

その後に、以下を実行する
./autogen.sh

configure スクリプトの実行

./configure --with-x-toolkit=gtk3 --with-xwidgets --with-native-compilation=aot --with-tree-sitter

ビルド

make -j$(nproc)

インストール

sudo make install

動作確認

export WEBKIT_DISABLE_COMPOSITING_MODE=1
をしたら、M-x xwidget-webkit-browse-url が実行できた

export WEBKIT_DISABLE_COMPOSITING_MODE=1
は.profileに記述

nonamecatnonamecat

plotlyで作成したhtmlもemacs内で見れる

M-x xwidget-webkit-browse-url で呼び出すときに、 file:// をつけて開く

インタラクティブなホバリングもできる