試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

StepManiaの概要とMandriva Linuxのパッケージについて

StepManiapydanceと同様、タイミングに合わせて指定のキーを押す(踏む)ルールの音楽ゲームで、GNU/Linux版も存在する(公式サイトにx86_32版がある他、ソースからビルドすることも可能)。
機能は豊富で、曲データが追加できるだけでなく譜面データの編集機能も存在し、他にも、テーマの変更によりアプリケーション全体の見栄えを大きく変えることもできる。

  1. Mandriva Linux 2009.0のパッケージでは動作に問題あり
    1. パッチを当ててRPMパッケージを作成することで問題は解決

Mandriva Linux 2009.0のパッケージでは動作に問題あり

Mandriva Linux 2009.0に用意されているパッケージには曲の最後まで進んでも結果の画面が出ずにまた同じ曲が始まる不具合があり、使い物にならない。
(2009/5/5)2009.1のパッケージではこの不具合は解消されているが、動画背景は動作していない。

パッチを当ててRPMパッケージを作成することで問題は解決
Gentoo Linuxのパッケージで使用されているパッチを入手してこれを当てるように.specファイルを修正し、RPMパッケージのビルドを行ったところ、この問題には対処できた。ただ、パッチを当てるようにするだけでは

(中略)
checking for jpeglib.h... yes
checking for lua-config50... no
checking for lua-config... no
checking for lua_open in -llua... yes
checking for luaopen_base in -llualib... no
checking for luaopen_base in -llualib50... no

*** liblualib is required to build StepMania; please make sure that
*** it is installed to continue the installation process.
+ make
make: *** No targets specified and no makefile found.  Stop.

となってしまったため、Luaライブラリの検出の部分を「検出済み」と見せかけるため

export ac_cv_lib_lualib_luaopen_base=yes

を.specファイル内の「%build」の先頭に記述して回避した。この手法はGentooのどこかのパッケージのebuildで使用されていたもの。これにより

(中略)
checking for jpeglib.h... yes
checking for lua-config50... no
checking for lua-config... no
checking for lua_open in -llua... yes
checking for luaopen_base in -llualib... (cached) yes
checking for inflate in -lz... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
(以下略)

上のように、検出済みとしての結果を再利用する格好でチェックが通過できている。
(2009/1/28)この部分は「Mandriva Linux 2009.0のStepManiaのパッケージで背景動画が動作しない件について」では別の方法で回避するようにしている。
以下はバージョン3.9-9mdv2009.0の.specファイルに対する修正。ファイル名の先頭が数字のパッチがGentooのもので、Gentooのミラーサーバのstepmania-patches-3.tar.bz2から取り出したもの。

--- stepmania-3.9-9mdv2009.0/SPECS/stepmania.spec
+++ stepmania-3.9-10kkr2009.0/SPECS/stepmania.spec
@@ -23,10 +23,15 @@
 Patch5:		StepMania-3.9-eventmask.patch
 Patch6:		StepMania-3.9-extraqual.patch
 Patch7:		StepMania-3.9-replace-this.patch
-Patch8:		StepMania-3.9-src-gettid.patch
-Patch9:		StepMania-3.9-src-averror.patch
-Patch10:	StepMania-3.9-src-int64_c.patch
-Patch11:	StepMania-3.9-src-avcodec_namespace.patch
+Patch8:		StepMania-3.9-src-averror.patch
+Patch9:		StepMania-3.9-src-int64_c.patch
+Patch10:	StepMania-3.9-src-avcodec_namespace.patch
+Patch11:	010_all_alsa.patch
+Patch12:	040_all_alias.patch
+Patch13:	060_all_gettid.patch
+Patch14:	090_all_vorbis.patch
+Patch15:	100_all_jpeg.patch
+Patch16:	110_all_gcc43.patch
 
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-buildroot
 
@@ -60,12 +65,19 @@
 %patch5 -p1 -b .eventmask
 %patch6 -p1 -b .extraqual
 %patch7 -p1 -b .replace
-%patch8 -p1 -b .gettid
-%patch9 -p1 -b .averror
-%patch10 -p1 -b .int64_c
-%patch11 -p1 -b .avcodec_namespace
+%patch8 -p1 -b .averror
+%patch9 -p1 -b .int64_c
+%patch10 -p1 -b .avcodec_namespace
+%patch11 -p1 -b .alsa
+%patch12 -p1 -b .alias
+%patch13 -p1 -b .gettid
+%patch14 -p1 -b .vorbis
+%patch15 -p1 -b .jpeg
+%patch16 -p0 -b .gcc43
 
 %build
+# can't detect Lua5?
+export ac_cv_lib_lualib_luaopen_base=yes
 %configure \
   --bindir=%{_gamesbindir} \
   --datadir=%{_gamesdatadir} \

この修正を行ったMandriva Linux向けパッケージを別館の配布ページで公開した。
(2014/10/12)配布ページは削除済み。

使用したバージョン: