pockestrap

Programmer's memo

Arch Linux に Gnash をいれた

環境

Gnashとは

GNUが実装するFlashの実装らしいです。ぐぐって。

ビルドしよう!

AURからのみ提供されているので、自分でビルドする必要があります。

というわけで意気揚々とyaourt -S gnashしたらコケました。

Gnash - The GNU Flash player - Bugs: bug #42574, Gnash building is broken in... [Savannah]

なんかバグがあるっぽくてworkaroundな修正をしないとアレっぽいです。 というわけでパッチをあててビルドしましょう。

パッチをあててビルドしよう!

まずはソースを落としてきましょう。結構時間かかった。

$ yaourt -G gnash
$ cd gnash

上のバグページに書いてあるものをパッチにします。こんな感じ。

diff --git a/libbase/GnashImageGif.cpp b/libbase/GnashImageGif.cpp
index 26865c1..4cec676 100644
--- a/libbase/GnashImageGif.cpp
+++ b/libbase/GnashImageGif.cpp
@@ -121,7 +121,7 @@ GifInput::GifInput(boost::shared_ptr<IOChannel> in)
 GifInput::~GifInput()
 {
     // Clean up allocated data.
-    DGifCloseFile(_gif);
+    DGifCloseFile(_gif, 0);
 }
 
 size_t

これをてきとーにgiflib.patchとかの名前でPKGBUILDがあるディレクトリに保存します。 そして、PKGBUILDでこのパッチを使うように修正します。

--- PKGBUILD.bak 2014-08-04 16:44:55.684175134 +0900
+++ PKGBUILD  2014-08-04 16:44:48.314175051 +0900
@@ -17,9 +17,11 @@
 backup=(etc/gnashrc etc/gnashthumbnailrc etc/gnashpluginrc)
 install=gnash-gtk.install
 source=('gnash::git://git.sv.gnu.org/gnash.git#commit=a3180f2'
-        nodebug.patch)
+        nodebug.patch
+        giflib.patch)
 sha256sums=('SKIP'
-            '0ebb104a7632af997c7e6b268755949fa0c1eea5e32015b95a22d63d0e431551')
+            '0ebb104a7632af997c7e6b268755949fa0c1eea5e32015b95a22d63d0e431551'
+            'SKIP')
 
 
 prepare() {
@@ -27,6 +29,7 @@
 
   # Disable very, very verbose debugging (gigabytes of logs)
   patch -Np1 -i ../nodebug.patch
+  patch -Np1 -i ../giflib.patch
 
   ./autogen.sh
 }

あとは通常通りmakepkg -sでパッケージが出来ます。時間かかるけど。

つかう

やったーこれでタイピングゲームができるぞ…!!

f:id:Pocke:20140804165141p:plain

あれ…ずれてる……(´・ω・`)

でも一応ゲームは出来ました。よいかんじ。