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

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

Gnash 0.8.1のebuildとそのパッチ

(2007/11/21)ついに0.8.1の正式なebuildが入り、以下の作業を行う必要はなくなった。ebuild自体も色々と修正されている。


Gentoo Linuxebuildファイルはまだ公式には入っていないが、GKrellM 2.3.0と同様、Bugzillaにファイルが存在する。これを使用することで、バージョン0.8.1をインストールできる。使用するには、事前にローカルOverlayを使用できるように設定しておく必要がある。
http://bugs.gentoo.org/attachment.cgi?id=129599
gnash-0.8.1.ebuildというファイル名で保存すればよいのだが、実際には誤りがあるため、以下の修正を行う。エラーの原因は「x11-libs/gtkglext」の行なので、ここと「KEYWORDS」の行だけを編集してもよい。

--- gnash-0.8.1.ebuild.orig
+++ gnash-0.8.1.ebuild
@@ -13,17 +13,17 @@

 LICENSE="GPL-3"
 SLOT="0"
-KEYWORDS="~x86"
+KEYWORDS="~amd64 ~x86"
 IUSE="agg cairo opengl gtk kde konqueror gstreamer ffmpeg nsplugin xml video_cards_i810"

 RDEPEND="
        agg? ( >=x11-libs/agg-2.5 )
        cairo? ( x11-libs/cairo )
-       opengl?(
+       opengl? (
                virtual/opengl
-               gtk? x11-libs/gtkglext
+               gtk? ( x11-libs/gtkglext )
        )
-       gtk?(
+       gtk? (
                >x11-libs/gtk+-2
                x11-libs/pango
                dev-libs/glib

あとはローカルOverlayに入れてインストール。

$ sudo mkdir -p /usr/local/overlays/local/net-www/gnash
$ sudo cp gnash-0.8.1.ebuild /usr/local/overlays/local/net-www/gnash/
$ sudo ebuild /usr/local/overlays/local/net-www/gnash/gnash-0.8.1.ebuild digest
$ sudo emerge -av gnash

もし、

 * Select ONE render between: agg, opengl or cairo

!!! ERROR: net-www/gnash-0.8.1 failed.
Call stack:
  ebuild.sh, line 1654:   Called dyn_setup
  ebuild.sh, line 714:   Called qa_call 'pkg_setup'
  ebuild.sh, line 44:   Called pkg_setup
  gnash-0.8.1.ebuild, line 75:   Called die

!!! opengl, agg and cairo flags are mutually exclusive
!!! If you need support, post the topmost build error, and the call stack if relevant.

と出る場合、描画バックエンドを指定するUSEフラグ(agg/opengl/cairo)が複数指定されていることを示しているため、どれか1つだけが有効になるよう、/etc/portage/package.useで指定する。
例えば、「cairo」のUSEフラグだけ余計に付いていて、これを消したいのなら
ファイル名: /etc/portage/package.use

net-www/gnash -cairo

のようにする。