381: OpenBSD 7.0での動作確認


最新状況

タイトル OpenBSD 7.0での動作確認
状態 完了
カテゴリ ドキュメント
作成日時 2021-11-19 09:17:15
最終更新日時 2021-11-23 04:16:26

履歴

1 | 2021-11-19 09:17:15 | 提案
uma34p at gmail.com
2021年10月14日にリリースされたOpenBSD 7.0において、ONScripterの動作を確認しました
ので報告いたします。


1.概要
(1)OpenBSD 7.0(amd64 or i386)では、デフォルトインストール時点でX Window
System(ウインドウマネージャはFvwm)、clang 11.1.0及びfreetype 2.10.4が利用可能。

(2)最低限のツールとSDL関係のバイナリパッケージを追加するだけで、bzip2、jpeg、
smpeg、oggなど依存関係のあるライブラリ等も自動インストールされる。
(3)SDL_ttfはシステム側にバグが残っており、ソースにパッチを当ててビルド・インス
トールする必要あり。
(4)ONScripter本体は、Makefile.Linuxの若干の修正のみで問題なくビルド可能。


2.動作確認環境
OpenBSD 7.0をインストールした以下のノートPCで行いました。
(1)64ビット機:Gigabyte AERO 15 Classic-SA (Intel Core i7-9750H)
(2)64ビット機:Lenovo ThinkPad X220 (Intel Core i7-2640M)
(3)32ビット機:Lenovo ThinkPad G50 (Intel CoreDuo T2600)

なお、両機ともインターネットに接続可能な状態とし、xdm(ディスプレイマネージャ)又
はstartxコマンドでX Window Systemを起動しています。また、ビルドと動作には直接関係
しませんが、環境変数LANG=ja_JP.UTF-8を何らかの方法で指定しておきます。


3.準備
(1)システム側バイナリパッケージのインストール
ONScripterのビルドに必須のライブラリの他、ソースファイルの取得に必要なツール、後
の運用上「あると便利」なツールもインストールします。(以下、慣例に従いコマンド先
頭の#は管理者権限での実行、$は一般ユーザでの実行であることを示します。)

# pkg_add wget sdl-image sdl-mixer unzip-6.0p14-iconv

wgetのインストールによって、依存関係のあるbzip2もインストールされます(wgetと類似
の働きをするcurlライブラリの場合、bzip2とは関係付けられていません)。
同様に、sdl-imageとsdl-mixirのインストールによって、SDL本体、画像・音声関係のライ
ブラリもインストールされます。

unzipはゲームパッケージなどのzipファイルの展開に使用しますが、通常版とiconv版の
2つがあり、iconv版を選択することで、zipファイル内にシフトJISコードを含むファイル
名が含まれていた場合でも"unzip -Ocp932 zipファイル名"とすればUnicodeに
変換されて解凍されます。
加えてiconvもインストールされますので、例えばONScripterのREADMEであれば、
"iconv -f EUC-JP -t UTF-8 README | more"などすればxterm内で読むことがで
きるようになります。

(2)SDL_ttfのビルド・インストール
OpenBSDにもSDL_ttfのバイナリパッケージが存在しますが、以下のバグが修正されていな
い状況です。(リンクはDebianですが、それ以外のOSでも反映されているはずです。)

https://salsa.debian.org/sdl-team/sdl-ttf2.0/-/blob/master/debian/patches/fix_bug_661987_TTF_RenderGlyph_Shaded_is_broken

そのため、現状ではSDL_ttfのみソースファイルからビルドしインストールした後、
ONScripterのビルドに臨む必要があります。
ソースファイルからのビルドにあたって、以下のURLからOpenBSD側のパッチの有無も確認
しておきます。

http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/devel/sdl-ttf/patches/?hideattic=1#dirlist

以下の例は、SDL_ttfのソース、FreeBSDのパッチ(Debianのパッチと同じ内容)及び
OpenBSDのパッチをwgetで取得し、ソースの展開、パッチ当て、ビルド、インストールまで
を行ったものです。

$ wget https://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.11.tar.gz
$ wget
https://cgit.freebsd.org/ports/plain/graphics/sdl_ttf/files/patch-bug1433
$ wget
http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/ports/devel/sdl-ttf/patches/patch-Makefile_in
$ tar xzf SDL_ttf-2.0.11.tar.gz
$ cd SDL_ttf-2.0.11
$ mv ../patch-* .
$ patch -b < patch-bug1433
$ patch -b < patch-Makefile_in
$ ./configure; make
# make install


4.ONScripterのビルド
ホームページに記載のとおりビルドできます。

$ cd ..
$ wget https://onscripter.osdn.jp/onscripter-20200722.tar.gz
$ tar xzf onscripter-20200722.tar.gz
$ cd onscripter-20200722
$ cp Makefile.Linux Makefile
$ vi Makefile

OpenBSDのテキストエディタは、初期状態でviとmg(Micro Gnu emacs)がインストールされ
ていますので、いずれかで編集します。

今回は、aviとluaのオプションはコメントアウトしてビルドしました。
また、コンパイラがclang++となりますので、該当部分を変更します。
(以下、diff -upを取ったものを参考に示します。)

--- Makefile.Linux	Thu Jul 23 02:06:01 2020
+++ Makefile	Thu Nov 11 21:35:26 2021
@@ -42,17 +42,17 @@ LIBS += -logg -lvorbis -lvorbisfile
 DEFS += -DUSE_CDROM

 # optional: avifile
-DEFS += -DUSE_AVIFILE
-INCS += `avifile-config --cflags`
-LIBS += `avifile-config --libs`
-TARGET += simple_aviplay$(EXESUFFIX)
-EXT_OBJS += AVIWrapper$(OBJSUFFIX)
+#DEFS += -DUSE_AVIFILE
+#INCS += `avifile-config --cflags`
+#LIBS += `avifile-config --libs`
+#TARGET += simple_aviplay$(EXESUFFIX)
+#EXT_OBJS += AVIWrapper$(OBJSUFFIX)

 # optional: lua
-DEFS += -DUSE_LUA
-INCS += -I/usr/include/lua5.1
-LIBS += -llua5.1
-EXT_OBJS += LUAHandler$(OBJSUFFIX)
+#DEFS += -DUSE_LUA
+#INCS += -I/usr/include/lua5.1
+#LIBS += -llua5.1
+#EXT_OBJS += LUAHandler$(OBJSUFFIX)

 # optional: force screen width for PDA
 #DEFS += -DPDA_WIDTH=640
@@ -62,8 +62,8 @@ EXT_OBJS += LUAHandler$(OBJSUFFIX)


 # for GNU g++
-CC = g++
-LD = g++ -o
+CC = $(CXX)
+LD = $(CXX) -o

 #CFLAGS = -g -Wall -pipe -c $(INCS) $(DEFS)
 CFLAGS = -O3 -Wall -fomit-frame-pointer -pipe -c $(INCS) $(DEFS)

編集したMakefileを保存し、ビルドします。

$ make

最後に、パスの通っているディレクトリへONScripterをコピーします。
デフォルトインストール状態で既に~/binへパスが通っていますので、コピー先として妥当
と考えられます。

$ mkdir ~/bin
$ cp onscripter ~/bin


以上

2 | 2021-11-23 04:16:26 | 完了
ogapee at aqua.dti2.ne.jp
ご報告くださいましてありがとうございます。

取り急ぎ ONScripter のページの動作確認プラットフォームにOpenBSDを追加して、このペ
ージにリンクを張りました。

[リプライをつける]
Bug Tracking System 影舞 0.8.8
Powered by Ruby 1.8.7