0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

macOSでGNU backgammonのGUIを使う

Posted at

要約

macでgnubgのGUIを使いたかった。

Homebrewにはいないし、MacPortsはbrewと同居させたくないので、上の記事のような方法は取れなかった。
また、MacPortsで入るgnubgはバージョンが古く、Sequoiaにも対応していなさそうであった。

とりあえずmac上でビルドしてみたが動かなかった。XQuartzとの相性が悪そうである。

次にDocker上のUbuntuでビルドして実行。
CLIでは動くものの、やっぱりGUIを見たかったのでブラウザから見られるようにした。

追記

一通りビルドなどを試したのちに、そういえばrepoにあるだろうとgnubgをインストールしてみるとすんなり動いた。
新しめなUIになっているのはGTK3に対応させたかららしい。

さらに、Debianのunstableで最新版のgnubgをインストールし起動したら、XQuartz経由でGUIが動いた。
文字入力も可能であった。数マッチ行い解析も動かしてみたが、ほぼ問題なく(音声出力周りがエラー、ボードを3D表示にすると落ちるが)動作していた。これが一番手っ取り早そうだ。

スクリーンショット 2025-03-29 17.59.53.png

環境

macOS: Sonoma 15.3.2

$ docker --version
Docker version 28.0.1, build 068a01e

以下で使用しているイメージはUbuntu24.04。

gnubgをビルドする

以下では、Docker上のUbuntuで作業している。

ライブラリとか。

apt install -U automake libtool bison flex libc6 pkg-config python-dev-is-python3 libglib2.0-dev libxml2-dev libfreetype6-dev libgtk2.0-dev libgtkglext1 libgtkglext1-dev libgstreamer1.0-dev libsqlite3-dev libreadline-dev

ソースをgnubgのリポジトリから落としてきて解凍してビルド。

./autogen.sh
./configure
make -j

ビルドが終わればmake installしてもよい。
以下のように、そのままの場所で使うときはデータの場所を--datadir--pkgdatadirで指定する必要がある。
GUI環境ではまだ動かせないので--ttyを使いCLIで動くようにしておく。

./gnubg -D . -P . -t

これでCLI版が動く。

GUIの起動

gnubg→xvfb→x11nvc→novnc→ブラウザと色々経由して画面を出力する。

  • xvfb: GUI出力をX11で仮想バッファに出力
  • x11vnc: X11の出力をVNCで出力
  • novnc: ブラウザ上で実行できるVNCクライアントを提供するwebサーバー
  • websockify: websocketをTCPに変換
apt install xvfb x11vnc novnc

Xauthorityファイルを生成。

xauth -f ./Xauthority add :10 MIT-MAGIC-COOKIE-1 $(openssl rand -hex 16)

上から順番に以下を別々のターミナルで起動。
Xauthorityファイルの位置が間違っているとx11vncが起動しないので生成した場所に合わせる。

xvfb-run -f ./Xauthority -n 10 ./gnubg -D . -P . --display=:10 -s "-screen 10 1920x1080x24"

x11vnc -auth ./Xauthority -display :10 -rfbport 5910 -forever -localhost

websockify --web=/usr/share/novnc 8010 localhost:5910

docker側で8010番ポートを転送しておく。

これでhttp://localhost:8010/vnc.htmlにアクセスすればVNCクライアントが開き、GUIで操作ができるようになる。

スクリーンショット 2025-03-29 21.03.09.png

微妙な点

文字入力ができない。OS側で入力辺りのことを何もしてないからだろうか。

微妙に使いにくいウィンドウサイズになってしまっている。

参考文献

gdk_gl_window_impl_x11_make_context_current crash · Issue #273 · XQuartz/XQuartz
GNU Backgammon, Building gnubg from source on Ubuntu
gnubg.git, INSTALL
changelogs.ubuntu.com/changelogs/pool/universe/g/gnubg/gnubg_1.07.001-3build6/changelog

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?